Matt's Linux Blog

My linux problems (and their respective solutions)

Saturday, May 26, 2007

 

Making an LDAP Address Book

I have taken on the task of creating a new networked address book for my parents. No one told me to do it; I took the task because I saw a need, and it gives me a perfect excuse to sharpen my technological skills. I have chosen LDAP to store the data. Usually, I would have used MySQL and designed a database, but LDAP allows me to have a hierarchical tree of objects, each node storing some data.

How is an address book hierarchical? In paper form, there isn't much reason for it to be. However, in electronic form, it makes perfect sense (to me, at least). Mainly, it's because families have children. That way, there can be one node for the family (a mailing address for "Alice, Bob, and Charlie Smith"). Under that, there will be separate nodes for Alice, Bob, and Charlie, which hold no address information, but may hold personal information about each family member. This way, it is equally easy to address an envelope to a family member as it is to address one to the whole family.

The main application of this address book (as many families' address books) comes around December, when it's time to send Christmas cards. Thus, I will be including a field ("attribute" in LDAP speak) called "sendCard", which will tell the application I build whether or not to print a label when it comes that time of year.

I have finished designing the hierarchy of the directory. The root is "dc=home,dc=mmlx,dc=us", which corresponds to the domain name "home.mmlx.us". I will have a subtree "ou=People" holding people represented in the directory, "ou=Users" holding entries for people that can use the directory, and "ou=Groups" holding groups for access control purposes. I'll draw up a nice diagram when I have time.

I'm about half done with the schema, which tells the database what data can exist for particular types of objects. I have designed the "mullPerson" object class, which holds the data one would expect to hold for a person. I am then going to define a "mullFamily" object class, which will hold address data, but not personal data. I'll publish those schema somewhere before I conclude the project, but if you want to see them now, just email me.

So far, I have found these to be good resources:

Labels: ,


Comments: Post a Comment

Subscribe to Post Comments [Atom]





<< Home

Archives

May 2007   June 2007   August 2007   October 2007   April 2008   May 2008   January 2009   May 2011  

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]