Subject: LDAP implementation of simple relations

From: FOREST Laurent <[email-masked]>
Date: Wed, 2 May 2001 14:06:23 -0400

Hello,

I am quite new to the LDAP area and I have the following question.
Sorry, it is a bit long, but I need to set the context.

I have to design an LDAP dictionary with some simple "N-to-M" relations
between entries.
An example of this relation is: a subscriber can subscribe to zero, one or
more service package(s). Both subscribers and packages are entries in the
dictionary.

    _____________   N           M  ___________
    |Subscriber | <--------------> | Package |
    -------------                  -----------

The question is: what is the best way to implement simple relations like
that in LDAP?

An obvious solution is to include attributes of type Distinguished Name in
the subscriber Object Class:
   Subscriber 1
      address
      Package 2 DN    # this subscriber subscribed to Package 2
      ...
   Subscriber 2
      address
      Package 1 DN    # this subscriber subscribed to Package 1
      ...      

   Package 1
      <attributes of Package 1>
   Package 2
      <attributes of Package 2>

When a subscriber entry is searched, then the LDAP client can search for the
Distinguished Name corresponding to the subscriber's packages and get the
corresponding package details.

However, this increases the number of LDAP requests to be performed each
time a susbcriber is queried.
I guess the performance impact of these multi-requests operation can be
reduced by putting the Package entries in the server memory cache.
I also guess the performance impact can be reduced still more by putting the
Package entries in the client memory cache. But in this case, how to refresh
the client cache when the package entries are modified on the server?

Thank you

Laurent