jSLP has been donated to the Eclipse ECF Project. Sources can be found at :pserver:dev.eclipse.org:/cvsroot/rt/ch.ethz.iks.slp. New releases of jSLP will appear under the Eclipse umbrella.
jSLP is a pure Java implementation of SLP, the Service Location Protocol, as specified in RFC 2608 . The API is derived from RFC 2614 with some modifications . The implementation runs on every Java2 VM, for instance, also on a J2ME CDC Profile. The footprint of less than 80 kBytes for the full version with SA, UA, and Daemon makes it very feasible for small and embedded devices.
So far, the only two existing possibilities to use SLP with Java were either to use the OpenSLP Java API or make use of the SLP implementation that ships with Solaris. The former requires an slpd daemon to run on the machine, this is not always possible (e.g. on mobile or embedded devices). The latter has the same limitations and runs only on Solaris hosts. JSP 140 was launched to develop a more usable API for Java but this request has been withdrawn.
jSLP fills this gap and provides both SLP User Agent (UA) and SLP Service Agent (SA) functionality. It supports peer to peer service discovery via multicast convergence and unicast client server discovery with a Directory Agent (DA) like OpenSLP in the network. Since it is pure Java without any native code parts or system daemons, jSLP can run on mobile devices and might help to build service oriented middleware systems that do not rely on heavyweight XML-based discovery protocols.
There are two versions of jSLP available. The standalone distribution is designed to run with arbitrary Java programs. The OSGi version enables the OSGi framework to locate services via SLP. The recent R-OSGi project integrates jSLP to remotely access OSGi services from distributed OSGi platforms.
Java Management Extensions (JMX, JSP 160 ) defines the integration of JMX and SLP, the examples run with jSLP if the divergences between RFC 2614 and jSLP are regarded.
jSLP was developed by Jan S. Rellermeyer for R-OSGi (Remote OSGi), part of the flowSGi project, which is an ongoing research project at Institute for Pervasive Computing , ETH Zurich .