Skip to main content

The Open-Source Jini Landscape

Posted by slohmeier on October 13, 2005 at 2:20 PM PDT

About six months ago Sun released the Jini Starter Kit under the Apache Software License 2.0. That enabled other projects that use the service implementations and utilities from the Starter Kit to follow suit. By the time this weblog entry is written, 18 projects in the Jini community are using an open-source license and 15 others have plans to do so.

The following list of projects is partly based on the replies I got to a request on the jini-users@java.sun.com mailing list. Thanks to all project owners who participated.

Next week at the ninth Jini Community Meeting, Jim Hurley will also provide a comprehensive overview of the state of the community.


Legend

AL2 Apache License, 2.0
BSD BSD license
CPL Common Public License
LGPL Library/Lesser GPL
GPL General Public License
SPL Sun Public License
TBD "To be determined". The project owners decided to open-source their project, but didn't chose a license yet.
... (future) The project owners already chose the mentioned license and plan to make a release in the more or less near future.

Starter Kit When you're new to Jini, among the first things you will do is to download the Jini Starter Kit. It is provided by Sun and contains reference implementations of all standard services as well as a bunch of tools that help you create your own Jini services.

Jini Starter Kit AL2 Contains the contributed Jini technology implementations from Sun. Includes the Jini specifications, documentation, JavaDoc, Jar files, sources, sample config files and tools.

Grid Using Jini to leverage the power of more or less huge networks of computers by automatically distributing compute-intensive tasks.

JGrid TBD The JGrid project develops a Jini-based grid infrastructure whose components can dynamically join and leave the system, and provides users with simple and seamless access to grid services using wide-area service discovery.
Rio AL2 (future) Project Rio provides a dynamic service platform that is capable of adapting to unforeseen changes on the network; it therefore relies on policy-based and quality of service mechanisms.

Enterprise Projects that are used to create and administer distributed systems for corporate enterprises.

Athena AL2 (future) Athena is a transactional bridge that allows your databases and other non-RDBMS datasources to participate in Jini distributed transactions.
Blitz BSD The Blitz project provides an open-source implementation of JavaSpaces. Recent changes involve supporting JINI 2.1, implementing the JavaSpace05 interface, fault-tolerance, replication and tools for debugging.
Eros AL2 (future) Eros provides a specialised logging handler that integrates java.util.logging API. Any logs at the levels WARNING and SEVERE will be sent to a Jini service that persists them in a central store (usually a database) where they can be queried later by administration personnel.
Logman TBD Provides a java.util.logging.LogManager implementation that is a Jini Service and thereby allows logging to be administered remotely via a ServiceUI.
Thor AL2 (future) Thor is a Jini service that serves as a hierarchical registry to provide configuration data for distributed applications. The configuration data served by Thor can be modified through a ServiceUI and changes can become effective at runtime.

JMX Using Java Management Extensions to manage and monitor Jini services.

Elena AL2 The Elena project researches and implements JMX tools for managing distributed Jini services.
Flavio AL2 Flavio is about JMX for Jini service managment and includes a Jini-based JMX JSR160 connector.

Integration Combining Jini with other protocols and technologies.

IP Surrogate 'C' lib AL2 The IP Surrogate C library allows you to integrate existing 'C/C++' programs into Jini service federations.
Judy CPL The purpose of this project is to begin bridging the gap between Jini and Web Services by providing Web Services to Jini clients, and in turn, providing Jini services to Web Service clients.
UPnP Lookup AL2 A Jini lookup service that stores information about UPnP devices and their services. When a service proxy is requested, it returns a Java Proxy that uses SOAP to talk directly to the UPnP device.

Frameworks and Containers Software that cares for your Jini services and makes it easier to develop them.

Astor GPL Astor is a framework for developing distributed components using scripting languages such as Groovy, Rhino, BeanShell, Jython, Sleep and Velocity.
Cheiron AL2 (future) Cheiron provides a Jini service container to standardize the way Jini services are being developed and deployed. It is currently partly licensed under a BSD-style license.
Flowagent TBD FlowAgent is a service-oriented workflow system for cross-enterprise integration based on Jini.
Harvester AL2 (future) The Harvester application container allows services to be build using a servlet-like API, and manages your codebase and provides an http server for codebase downloads.
JSWT AL2 (future) The Jini Services Writers Toolkit implements the Model-View-Controller architecture and provides building blocks for various tasks Jini services and clients have to perform (e.g. discovery and leasing).
Neon AL2 Neon is a framework for deploying classes that need to use Jini services, without having to write infrastructure code (e.g. to perform discovery) for each and every of these classes. It includes a dynamic messaging subsystem called Zenith.
Start Now TBD Provides various ready-to-use classes for developing Jini services and clients.

Low-Level Infrastructure Projects concerned about eliminating tripwires in deployment aspects that nobody likes to care about.

Codehost LGPL The Codehost project provides a classloader that works without a classpath or codebase by deriving the location of a class from the domain name prefix in the class name.
JRap LGPL The Jini Resource-Access Project provides a Jini service that acts as a network store for resource bytes and a URL protocol handler that dynamically discovers and accesses this store.

Tools Little helpers supporting you while you're implementing and deploying Jini software.

Envelope TBD The envelope project is used to examine the network setup between Jini clients and services.
Lamplighter AL2 (future) Lamplighter is an installer framework and post-installation configuration system for distributing projects and customisation to end-user environments.
Maven Jini Plugin AL2 A Maven plugin that provides goals for generating Jini service templates and starting/stopping standard Jini services.
Multicast Monitor Tool AL2 A command line tool for monitoring Jini multicast annoucement and multicast discovery packets.
Netbeans Jini Module SPL A Jini module for the NetBeans IDE that can be used to create Jini services from templates and provides an out-of-box lookup service launcher and an integrated lookup service browser.

Project Automation Projects that save developers time.

CruiseControl BSD-style CruiseControl is a framework for a continuous build process. The 'distributed' contrib package that uses Jini to distribute the builds is contained in the directory contrib/distributed of the CruiseControl source distribution.
QATests AL2 (future) QATests is a specialized QA testing environment for Jini that is also used by Sun to perform production testing of their Jini implementation.

Desktop Services you can show to your mum and dad and projects that make it easier to create them.

AdminUI TBD The AdminUI project provides ServiceUI compatible classes that can be used to create a similar looking basic UIs, that can serve as a basis for custom ServiceUIs.
Music GPL A ServiceUI-enabled Jini service that plays MP3 files.
ServiceUI AL2 ServiceUI is an API that provides a standard way to associate UI's with Jini services. It is a Jini community standard and there are already plenty of services that provide a user-interface based on this API (i.e. that are ServiceUI-enabled).

Logistics Rub your Jini bottle the next time you're hungry for pizza ...

Singularity AL2 The Singularity project develops RFID middleware technology for use in supply chain management and the EPCglobal Network.
Related Topics >>