Tuesday August 01, 2006 | cn=Directory Manager All about Directory Server |
Introducing the OpenDS Directory ServiceThe Sun Java System Directory Server has a distinguished heritage and a proven track record, with thousands of customers and billions of entries deployed. However the codebase is over ten years old and its origins are from a time when performance, scalability, and feature set requirements then were very different from what we're seeing today and expect to see in the future. It has also grown quite complex, and making a change to one area of the code may require an in-depth understanding of several other components. We're still working on improving this code, and the upcoming Directory Server 6.0 release will be the best we've had yet, but we are also preparing for the future and we think that an open development model needs to be a big part of that.Last year, we decided to start from scratch, designing a new server from the ground up. Drawing from our years of experience, customer feedback, and some of our own ideas, we began working on what we hope will become even more enduring and successful than our current Directory Server. We're calling the new codebase OpenDS, and last Friday we rather quietly pushed the code out to https://opends.dev.java.net/. OpenDS is an open source Directory Service written entirely in Java. I say "Directory Service" because we will include more than just the core LDAP-accessible database. Much like our current Directory Server Enterprise Edition, we'll also include directory proxy functionality (including virtual directory and data distribution capabilities), the ability to synchronize with Active Directory and potentially other sources, and various client-side tools. To date, our development has primarily focused on the Directory Server itself, and we have basic support for all core LDAPv3 operations, and several extensions like controls, extended operations, and SASL mechanisms. However there are still a number of components to be added, like the access control subsystem, virtual attribute capabilities, and administrative interfaces, and there is significant work to be done in other areas like password policy and logging. We very much wish to have an open development process, and we welcome community participation. You can provide comments and feedback, file bugs and enhancement requests, participate in mailing lists, or even write code. I'm sure that there will be a lot of questions about OpenDS, and our FAQ (I suppose in this case, that's "Frequently Anticipated Questions") at https://opends.dev.java.net/public/docs/OpenDS-FAQ.html aims to address many of them. If you still have other questions, then check out other parts of the site like our Documentation Depot or join our mailing lists. We'd love to have you help us achieve our goal of making OpenDS better than any other directory product out there. Posted by cn_equals_directory_manager ( Aug 01 2006, 03:33:21 PM CDT ) Permalink Comments [12] Post a Comment: Comments are closed for this entry. |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Yes, yes, I've read the FAQ, and I'm sure the team that developed OpenDS had the best intentions, but if Sun really wanted to show their commitment to the open source community, and wanted to promote Java, they should have contributed to Apache DS.
And considering that Apache DS has been around for a long time now, and has not gained significant traction in the open source community, with what hubris does Sun think OpenDS will succeed wildly where Apache DS has not?
Posted by Rich Megginson on August 01, 2006 at 05:55 PM CDT #
Posted by Emmanuel Lécharny on August 01, 2006 at 06:07 PM CDT #
OpenDS is an entirely open project. All of the code is publicly available, and all of our development will be done in the open. Our issue tracker contains all of the features that we're currently targeting to include. We welcome participation from anyone who's willing to join us. However, we do have a customer base to support and we will not abandon them or put ourselves into a position that is less suited to meeting their needs. That is certainly not incompatible with open source or open development, but it would be extremely difficult to accomplish in an environment in which we were not involved from the ground up.
I think that it remains to be seen whether the Apache Directory will be a success as they are still fairly early in their life. I wish them all the best and hope that we can work together wherever it makes sense to do so.
Posted by Neil Wilson on August 01, 2006 at 06:55 PM CDT #
Posted by Jim Yang on August 01, 2006 at 07:30 PM CDT #
Posted by Emmanuel Lécharny on August 01, 2006 at 08:45 PM CDT #
Posted by emmanuel Lécharny on August 01, 2006 at 08:47 PM CDT #
The only thing I wanted to add was a note on our use of the Berkeley DB Java Edition. First, let me say that we are NOT open sourcing Berkeley DB JE, because Sleepycat did that under their own license. We're merely using it under its existing open source license, and that use is completely compatible with both the Sleepycat License and the CDDL. Anyone that wants to use OpenDS can use our backend based on the Berkeley DB Java Edition as a part of it without any cost or restrictions (if they want official support for JE, then they can of course buy it from Oracle). For any commercial release based on the OpenDS source that we may have in the future, we have already purchased the appropriate license and support contract, so we and our customers are covered.
Posted by Neil Wilson on August 01, 2006 at 09:20 PM CDT #
yes, for sure, this licence issue is a complicated one. I just think that when Sun decided to introduce a new one - for reason I really don't get - was just making things a little bit more obscure from a user point of view. However, that's life. Darwin's law will work out if it was a good move :)
Regarding BDB JE, the real problem is that we can't deliver a server which will be based on it. We can't tell our user "guys, BDB JE is OK, we are bound to it, but, sorry, you have to download and install it by yourself", at least for the very first version. That does not mean at all we are not considering using it. The backend API we have wrote perfectly address this problem : we wanted to be able to switch from JDBM to any other backend, for many reasons, like reliablity, speed, functions (transactions, backup, failover, DB replication etc). JDBM is just our RI. So I guess that at the end the solution chosen by both projects - OpenDS and ApacheDS - will be the very same : an abstraction layer above a storage system. We didn't invented it : OpenLdap already implemented it :)
Neil, I'm more than happy to see that Sun is coming with a java based Ldap server : it shows that DS are again gaining some traction. Alex Karasulu and the other fellows who started to write ApacheDS 4 years ago were very insightful. </br> I'm sure that as we have now 4 ldap servers which are clearly open source, or at least free to use, we will be able to see an emulation and a improvement of each one.
And, at the end, this will be great fun :)
PS: why don't you use something like http://www.fckeditor.net/ ? Formating text is really difficult in a stupid HTML textbox :)
Posted by emmanuel Lécharny on August 02, 2006 at 01:46 AM CDT #
Posted by tkudo's weblog on August 02, 2006 at 03:43 AM CDT #
Posted by Robert Banz on August 02, 2006 at 08:56 AM CDT #
Another great benefit that Java offers over C is a tremendous amount of debuggability. Java makes it possible to get a great insight into what's actually going on, both from inside and outside the JVM. And it's allowed us to build a significant number of such features into the server. For example, you can get a stack trace from the server any time you want by retrieving the "cn=JVM Stack Trace,cn=monitor" entry, or by interacting with the server over JMX. We've also embedded a simple profiler in the server, so that if it's running more slowly than you would expect you can enable the profiler for a few seconds to capture information about what's happening (without needing to restart, and without significantly degrading performance any further).
Finally, we're adding a ton of reliability and serviceability features into the server that aren't directly tied to the Java platform. We've got a monitoring and alerting framework, where the server can let you know (through a pluggable mechanism like e-mail, JMX notifications, or SNMP traps) that there's a problem. We also intend to provide much better integration with existing monitoring frameworks like SMC, Big Brother, Nagios, MRTG, and HP OpenView.
We have no intention of developing something that is slow or unreliable or in any other way inferior to our current server. We want to be better in every way, and we've got a great start to that.
Posted by Neil Wilson on August 02, 2006 at 09:36 AM CDT #
Posted by Ludo on August 02, 2006 at 11:48 AM CDT #