The Open-Source Jini Landscape
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 firstname.lastname@example.org 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.
|AL2||Apache License, 2.0|
|CPL||Common Public License|
|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.|