JNDI Service Providers |
Project overview |
|
Summary The Java Naming and Directory InterfaceTM (JNDI) is an application programming interface (API) that provides generic and uniform access to multiple naming and directory services (NIS, DNS, LDAP, ...). JNDI features a pluggable interface meaning implementations for existing, new and future naming services can easily be plugged in. Such pluggable implementations are called service providers. In this project two JNDI service providers were developed:
These two providers are an addition to the list of existing service providers for NIS, LDAP, DNS, CORBA, ... JNDI ![]() Additionally JNDI provides a generic distributed event model and support for federation. Federation is the process of "hooking" together naming systems so that the aggregate system can process composite names--names that span multiple naming systems (eg: ldap://myhost.com/n=jiniServer/jxtaGroup/myJxtaObject). Many examples of composite names and federation are possible in the computing world, for example, URLs (RFC 1738) and the World Wide Web. One way that the JNDI federation model differs from these models is that it provides a single programmatic interface for accessing federations. Not just one API for one federation, but one API for many different types of federations. Jini Jini network technology, which includes JavaSpaces Technology and Jini extensible remote invocation (Jini ERI), is an open architecture that enables developers to create network-centric services -- whether implemented in hardware or software -- that are highly adaptive to change. Jini technology can be used to build adaptive networks that are scalable, evolvable and flexible as typically required in dynamic computing environments. The key features of Jini are:
HDNS is a fault-tolerant, distributed naming service initially developed for the Harness project. HDNS uses JGroups for reliable multicast communication. The service consist of a group of nodes which maintain consistent replicas of the registration data. Read requests can thus be handled entirely by any of the nodes, facilitating load balancing and reducing access latencies. Write requests, in turn, are propagated to the each member of the group, enforcing strong consistency of the replicas. The service can withstand a crash of all but one of the group members. These characteristics make HDNS an adequate choice in situations where read requests are predominant, and high failure resilience is required. The code available here was developed with the H2O project. H2O is an open-source research project of Distributed Computing Laboratory, Dept. of Math and Computer Science, Emory University. The research is supported in part by U.S. DoE grant DE-FG02-02ER25537 and NSF grant ACI-0220183. |
News |
19 Aug 2005HDNS 2.0 and JNDI common 2.0 have been released. |
16 Jun 2005Jini service provider 1.0_01 and HDNS service provider 1.0_01 have been released. It is a bug-fix release. |
7 Jun 2005First launch of the website. |
Highlights |
| Component Re-use JNDI service providers can easily be swapped out and used in other projects thus reducing development effort and code duplication. Ease of use JNDI has a straightforward, generic interface that is part of the standard Java SDK. Thus it is easy to use and add JNDI in existing projects. Integration JNDI enables access homogenity meaning new, existing and future heterogeneous naming services can all be integrated behind one, uniform interface thus reducing complexity and increasing cross-site integration. Federation Both providers support federation meaning they can be linked with other JNDI supported naming services to form complex, scalable, hierarchical, distributed federations of grid information services. URLs Both providers support URLs meaning the resources can be easily accessed through URLs, even accross different, federated, naming services. For example jini://myhost/ldap/n=MyLdapObject. |
JNDI common overview |
| This package contains extensions of JNDI DirContext
that may optionally be implemented by the service
provider to provide extended semantics. ExtendedDirContext An extension of DirContext that enables set, get, increment and decrement operations on the integer attribute. AtomicDirContext An extension of ExtendedDirContext which enables atomic operations on the integer attribute such as: increment-and-get, decrement-and-get, get-and-increment, get-and-decrement. ConcurrentDirContext An extension of AtomicDirContext which enables distributed synchronization (using named locks) on the naming service. For instance, HDNS service provider efficiently implements ExtendedDirContext and AtomicDirContext. |
Jini service provider overview |
| Extensive JNDI support for Jini The Jini provider extends previous work which only supported lookup operations to full support for event notification and lookup, bind, rebind, rename & unbind operations. Features of this provider:
jini://host:port/object/ |
HDNS overview |
Features of the server:
hdns://host:port[;host:port]/object Two different distributions:
|
Documentation |
Papers [bibtex]
Tutorials
API documentation
|
Download |
|
Each SPI is available as a binary distribution, choose your format: |
Source Code |
|
Build-it-yourself development source bundle is available (needs Apache ANT), choose your format:
Additionaly, sources and development history are available via anonymous CVS.
The sources may be also browsed via ViewCVS. |
Related links |
|