
Typically, when I ask enterprise developers where they'll store application data the response is immediate, a relational database. The directory server isn't even an afterthought. There's a long laundry list of reasons why: no one gets fired for choosing Oracle, its already there, familiarity with SQL, plethora of RDBMS tools, LDAP writes are slow, JNDI interface - are you kidding?!... While all of these are legitimate retorts, LDAP, and in particular OpenDS, bring with it clear advantages for certain classes of applications.
A short list of OpenDS differentiators include:
It's a database! LDAP isn't just a dumping ground for user profile data, it's a full-fledged hierarchical database. If your data is modeled in a parent-child fashion, not unusual in a XML world, then LDAP might be a better fit. LDAP data modeling is very different than relational modeling though at a simplistic level you might map tables to entries and columns to attributes.
Change schema over protocol: Schema is modifiable over the standard LDAP protocol - no vendor specific tools or syntax required. Building an application that requires frequent and/or unpredictable schema changes is difficult with relational databases and, I've found, often handled by creating generic trees (parent child relationships). Highly, dynamic “Web 2.0'ish” applications come to mind; e.g., generic Atom server where arbitrary schema changes are expected.
Out-of-the-box synchronization: Synchronizing directory databases is a standard feature and requires minimal administration. It just works...at least that's the idea. A very cool feature for H/A and solving data adjacency issues.
Read/write performance parity: At the moment I'm unable to release specifics on OpenDS performance, but those of you with memories of slow write performance are in for a pleasant surprise
Embedded mode: OpenDS need not run in a separate process, rather it can be directly embedded in your application. This is especially useful for cases where one may need the benefits of a LDAP (the other bullets) database with zero external administration.
Scalability: OpenDS, stripped down, runs on PDA's and scales to telcos.
Extensibility: Aside from standard plugin extensions there are numerous hooks within OpenDS that are easily modified by a Java developer. OpenDS is 100% Java after-all. A deployer is free to customize protocol handlers, client connection handlers, configuration, monitors, loggers, and even the backend (we use Berkley DB).
Internationalization over protocol: Fetching language specific directory attributes is easily done over protocol using LDAP attribute options. For example, you may search for the English specific “description” attribute by searching “description;lang-en: software products” or the German version “description;lang-de: Softwareprodukte”
Matching rules: Directory servers provide a flexible facility for determining attribute value equality. Typical equality matching is supported out-of-the-box; e.g., case ignore, greater/less than, etc. The differentiating feature is the ability to write your own matching rules for specific attributes. An interesting application of this is fuzzy matching rules; instead of implementing approximate matches in your application logic this can be done within the data repository. For example, if I search for all Atom entries with the an attribute named “category” and the value “foo” I may have a matching rule that finds and return all entries that contain category values with “bar” and “baz” as well.
More to follow...
Posted by Nico on February 07, 2007 at 05:14 PM CST #
Posted by Nico on February 07, 2007 at 05:15 PM CST #
Posted by Hristo on February 12, 2007 at 01:34 AM CST #
Posted by Bolesław Dawidowicz on February 12, 2007 at 05:24 AM CST #
Posted by James on February 12, 2007 at 10:53 AM CST #
Posted by anonymous burrito on February 12, 2007 at 03:43 PM CST #
Posted by Marty Heyman on February 13, 2007 at 01:55 PM CST #
Posted by Dominique De Vito on April 03, 2007 at 09:53 AM CDT #
Posted by Trey Drake on April 03, 2007 at 03:39 PM CDT #
Good topic, the big issue in telco industry, when NgHLR introduce the market, could anybody can share information with me ?? which one the best solution for telco industry, which is the characteristic of the box is we never touch the equipment for 5 years :p
Posted by jamop on March 13, 2008 at 09:20 PM CDT #