a) a good book to read.
b) an implementation of it on Win32.


When I started exploring LDAP, about 5 years ago, there was no other usable documentation other than the umich ones and RFC's.
I started using LDAP to replace an access application which would read a dbfile from a network drive. The client for which I was working was using the netscape mailclient and had just placed a major order of 3000+ licences, about a month before netscape made a
"no license fee" policy.
Netscape's mailclient supports the LDAP-protocol(so does outlook), so I started investigating and installed umich's slapd on a HP 712/60 with 64Mb of memory(pizzabox). I would have to store about 3000 directory entries. So I did an access export to CSV, wrote a perl-script to convert the CSV to LDIF, and loaded the LDIF in slapd. Did some customizations to the mailclient to support other attributes and within a week I had a fully operational LDAP-server running, with respond-times in the msecs.
I was amazed. I rolled into my current workplace with a project to convert a company's "cgi-based shell scripts grepping on text files generated by an oracle dump" into an LDAP solution. I have had very good experiences with netscape server-software in the past, and I liked the administration of it through HTML-forms. They also provide a HTML->LDAP gateway, which is quite usable. I did the same trick as before, only there was a difference. It had to run on NT4, and systemmanagement was outsourced. The NT-admins thought it was a bad idea to install perl on it, so I decided to go for cygnus awk.
In the next half year, I was frequently called about a non-responsive system. It seemed the LDAP-server would no longer accept any new incoming connections. This would happen once every week. After a stop&start it was all OK again. After migrating to a sparc 250, I have had about a few hours of unscheduled downtime, at a running time of two year. We also got unix usermanagement as our responsibility, and my main plan was to implement it all in LDAP. Two years later, I've got a database which contains all human resources/nis users/nis groups/SMTP aliases/SMTP revaliases/DNS data/bootp data/lotus notes adresses/userquota/groupquota/IP network info; about 60000 records. The database is scanned for changes frequently through a changelog mechanism, using the LDAP protocol. When relevant changes occur, the data is read, formatted and distributed to various backends.
The version we currently use is 4.11. It's a shame the HTML admin-interface form 3.x is gone. They bundled a java app for administration, which, after several days of irritation, was uninstalled and forgotten about. I wrote my own win32 app for browsing directories. it's at http://www.sysman.nl/software/ldapper/index.html .
The HTML-interface is fine for basic record editing, but beware of problems using Internet Explorer and javascript. Major changes to the database(adding an IP-range) are mostly performed from commandline. There's also GQ, a linux directory browser/editor.
I like LDAP because of it's simplicity. Last week I spend about a day constructing an SQL-query to get some custom reporting from an SMS database, which resulted in a query which uses 10 inner joins, from which 5 of them rejoin the master table. phew...
In ldap I can just say :
ldapsearch surname=*gestel*

to give all people whose surname contains gestel
ldapsearch objectclass=ipnetwork netmask defaultgateway

gives a list of all networks,their subnetmasks and gateway address
ldapsearch (&(objectclass=bootpObject)(bootpTemplate=xterminal)) macaddress

gives a list of mac adresses of all xterminals
I also did some presentation on LDAP some time ago. Some of the slides are at http://empeg.dyndns.org/ldap

As for other servers, I just looked at http://verzeichnisdienst.de/ldap/Server/ and saw some interesting stuff : eudora and ibm both provide freeware LDAP-servers for NT/2000. Nescape can be quite expensive.
As for documentation, the books shipped with netscape directory server are very usable. I think they've got them online at http://developer.netscape.com

I'm must stop now, The children are at grandpa/ma and I am typing all this geeky stuff, when I could be drinking a trappist in the sun. I think I'll have to drag my wife from her computer. She's been chatting for 3 hours now...

Frank van Gestel
_________________________
Frank van Gestel