Novell Home

About Loopback and Null Drivers

Novell Cool Solutions: Feature

Digg This - Slashdot This

Posted: 28 Nov 2007
 

Problem

A Forum reader recently asked:

"I see all this stuff on Cool Solutions about the Loopback driver. I got to my driver list in IDM 3.5.0 and I don't see Loopback driver anywhere - but the documentation does talk about Loopback driver. So how/where does one find and set up the Loopback driver?"

And here's the reply from Rob Schneider ...

Solution

You're not the first with this problem.

About the Loopback Driver

In the "olden days" it was called the "Move Proxy" driver, yet referred to everywhere as the LoopBack driver. Now in Designer 2.1, I see it is there under the Service drivers, and LoopBack, Manual Task, and Null all qualify as "loopback" drivers. Heck, you can use an eDir driver to do loopback - so really, the fact that Novell named a driver for this is part of the issue.

Basically, a loopback driver is any driver that you program to respond to an event by taking action against the Directory that is the source of the event. That said, use the Loopback or Null drivers, since they come with less built-in "junk" that you have to "undo" to make it work.

The Loopback driver basically needs Subscriber event transforms, all acting on the Source directory (remember, there is NEVER a Destination object, attribute, etc.) and a rule that vetos everything. Sometimes this is found in the Event Transform, but depending on how you process events, it can also be in the Command Transform of the Subscriber.

Purpose

Why a loopback driver? These reasons immediately come to mind:

1. (Obvious) You need to take action against the source directory.

2. An event occurs that can be sourced in any number of other drivers. Why write code in every driver when you can put a single piece of code in the loopback driver to catch that event, regardless of where it was initially triggered?

3. You need a cozy place to consolidate all of this type of rules, rather than having it spread out in the subscriber channel of multiple drivers (which is where and how I did it, before I realized I was doing loopback and that there was a loopback driver.)

4. I'm sure there are more reasons ...

Further best practice - check out Novell's IDM Resource Kit, which has a model of the "dream" IDM environment, including the use of 3 loopback drivers for different business processes. It makes good sense.

Example Rule

Suppose that when you create a new user, you want to create the full name automatically - and if you change a user, it will change the last name as well.

Here's the rule I have for that purpose, as a headstart. The actual rule you implement will depend on your "standard" for full name. This rule assumes full name means Given Name <space>Surname.

<rule>
<description>Construct Full Name from Given Name and Surname</description>
<comment xml:space="preserve">The Given Name and Surname are used to set the 
full name whenever the attributes are set or modified.</comment>
  <conditions>
    <or>
      <if-class-name op="equal">User</if-class-name>
    </or>
    <or>
      <if-operation mode="case" op="equal">add</if-operation>
      <if-operation mode="case" op="equal">modify</if-operation>
    </or>
    <or>
      <if-op-attr name="Given Name" op="changing"/>
      <if-op-attr name="Surname" op="changing"/>
    </or>
  </conditions>
  <actions>
    <do-set-src-attr-value name="Full Name">
      <arg-value type="string">
        <token-src-attr name="Given Name"/>
        <token-text xml:space="preserve"> </token-text>
        <token-src-attr name="Surname"/>
      </arg-value>
    </do-set-src-attr-value>
  </actions>
</rule>


Novell Cool Solutions (corporate web communities) are produced by WebWise Solutions. www.webwiseone.com

© 2014 Novell