Thursday, September 15, 2011

OpenDS: How to put an elephant inside the Refrigerator


Ok, I lied. OpenDS will not help you put the elephant inside the fridge. But why did you want to put that poor creature there, in the first place? No, I’m not going to talk about elephants or fridges. Today, its all about the process of“putting”. From the very beginning in the history of computing, storing data has been a big question. If we look at the road-map, we can highlight the growth something like this:
  • How to save data?
  • How to save data efficiently so as lesser space is consumed?
  • How to save data, so that it takes very less space, and can be retrieved fast?

Every new day brought in new technologies in the hardware part, as well as the software part in compressing data. That is when the third idea started catching up. Yes, organizing data is definitely important/critical task than saving it. And that is how directories and directory access protocols came into picture. A directory is a set of objects with attributes organized in a logical and hierarchical manner. A directory is just like an index in the CD library. The library may contain Terabytes of data, or thousands of movies. But, without the indexing, you are going to have a very tough time to find the data that you need.
The earlier prototypes of its kind were X.500 DAP, which was based on theOSI protocol stak. Cutting short, I would say: X.500 was way too heavy that the folks at the University of Michigan came out with a lighter DAP which was based on the TCP/IP. It was light, and it was named in a light way:Lightweight DAP(LDAP). Now, it is ***NOT*** LDAP, that I’m gonna talk about. There is someone new with a very recent history; arrived to steal the thunder. Folks, let us talk about OpendDS.
OpenDS Software is a free, open source directory service, written in Java which implements a wide range of LDAP and related standards. It also offers multi-master replication, access control, and many extensions.The software is developed in Java, making it cross-platform compatible; that is, Linux, mac, Windows or whatever- OpenDS will run. It is to be noted, that even after all those talks about Directory, it will have not “just” the Directory Server, but also other essential directory-related services like directory proxy, virtual directory, namespace distribution and data synchronization.
Hey!! Helloo?? what is new in OpenDS? Why so much noise about this?
  • Performance. We can add another bunch of feature, but performance remains the key feature of the system.
  • Scalability upward- Able to handle billions of entries in a single instance.
  • Scalability downward- Able to run under low-memory environments, surviving just the essential components. Imagine; OpenDS will run in a cell phone. :D
  • Security: A whole lot of expertise in access control, encryption, authentication, auditing, password and account management and all those things your security auditor will ever ask for.
  • Availability: The most crucial of them all. Whatever happens, the system should be up and running.
  • List goes on and on and on. So, lets stop the list here.
A big huge feature that I’ve missed completely is the replication mechanism. By this, we can very effectively reduce the load on the single machine, and hence improving the performance, and even aid in scaling up the system by adding new machines to the loop. The list of available strategies in connecting the entire server up is quite huge, and if I start talking about that, this post will go like, forever. So, I’m stopping this here for now. Wait for the detailed connection strategies in the sequel. Till then, ta!