Sun Java Solaris Communities My SDN Account Join SDN
 
Article

The Jini Technology Development Community

 
 

Articles Index | Jini Index | Wireless Initiative

Jini technology is an experiment in cooperative distributed computing. It is meant to destroy the idea of a monolithic application and enable the delivery of distributed services to clients everywhere on the network.

For the technology to succeed, it needs a strong developer community: A strong community will give Jini technology the critical mass it needs to establish ubiquity while accelerating the development of innovative Jini services. Just as Jini's core strength lies in spontaneous assembly of distributed networks of clients and services. Sun hopes a core strength of the Jini community will be self assembly of developers and industry around mutually beneficial development projects. See Jini Technology in the Home and Enterprise for some examples of how this might work and benefit consumers as well as enterprises.

This article describes how the Jini technology development community is growing and adapting its development process, and how you can participate. Plus a real-world example of the ease-of-use Jini technology brings to networked devices and services.

Note: The next Jini Community meeting will be held in October 1999 in Annapolis, Maryland.

The Jini Technology Development Community

Jini Technology in the Home and Enterprise—a Real-World Example

Jini technology gives real-world ease-of-use a boost for many types of networked devices and services.

For example, consider the steps needed to install and configure a new VCR today versus installing a VCR into the Jini technology-enabled home entertainment system of the future.

In a traditional home entertainment system today, the consumer must:

  1. Plug in the VCR, running cables to TV and other equipment as well as plugging in the power.

  2. Use VCR and TV controls to tune to the channels available from a cable or satellite tuner; many consumers have problems with this step.

  3. Set the clock on the VCR so that programmable recording will work; many consumers give up before getting past the dreaded blinking 12:00.

With Jini technology, the consumer's life will be dramatically simplified. All he or she will have to do is plug in the VCR power and cabling as before, then stand back as Jini-based services automatically take care of the rest of the installation.

After the consumer plugs in the VCR, Jini technology can configure the system as follows:

  1. The VCR announces its presence to the Jini network.

  2. The VCR requests the tuner interface and configures its channels accordingly.

  3. The VCR requests the clock interface provided by the home gateway server and sets its internal clock to be synchronized with this reference clock used by all of the other devices in the home entertainment system.

Just as it frees consumers to do more interesting things than mess with programming their audiovideo equipment, Jini can also be used to help automate a number of enterprise system administration duties and free sysadmins to do more interesting work. At the same time that many consumer appliance and electronics manufacturers are building Jini technology into future generations of devices, Jini Community working groups are hard at work defining the interfaces that will automate the addition of printers and storage devices into Jini technology-enabled enterprise computing environments. And at the same time that storage devices are being individually Jini-enabled, a number of the companies involved in enterprise storage management are coming together to co-define a Java and Jini technology-based storage management platform for the enterprise, Jiro.

For more information all of these initiatives, including an interesting ABC News article and video piece on Jini technology, please refer to the Resources at the end of this article.

Under the process being jointly defined by community members, interested developers can join discussions, review and exchange source code, and become involved in working groups by registering on the Jini Community site (see Resources). To register, you must agree to the terms of the Sun Community Source License (SCSL), which is used to protect secured areas of the community site. To empower the community and enable rapid growth and acceptance of Jini, Sun is making core Jini technology, including the source code for Sun's implementation, available for download under the SCSL.

The SCSL is an amalgam of open-source principles and many for-profit licensing models of the past. It has been crafted in the spirit of openness avowed in Eric Raymond's now-famous paper, "The Cathedral and the Bazaar." The protections provided by the SCSL are put in place so that community members can be free to share their innovations in a nonthreatening forum while also ensuring the value to the community of the Jini trademark is preserved. For more information on the SCSL or to read Raymond's paper, please refer to the related URLs in the Resources below.

Note that when you "click through" the SCSL on the Jini site, you are asked whether you represent yourself or your company. If you accept on behalf of your company, all other employees of your company are subject to the license terms and conditions to which you agree. Make sure you read through the license carefully and check with management if you have any doubt about whether you're qualified to act on behalf of your company.

Support for the Jini Community

To help developers better understand the nascent Jini community, its processes and procedures, and the SCSL license and its implications, Sun hosted a Jini community birds-of-feather (BOF) session at JavaOne developer conference in June 1999. Prominent jini-user mailing list members and Sun representatives Ken Arnold and Jimmy Tores outlined Sun's ideas of how the community might structure and run itself, then answered questions from attendees.

Arnold explained that the supporting framework for the Jini community comprises:

  • SCSL for Jini
  • Jini community process being developed by community members
  • Jini.org web site
  • Jini development team at Sun, acting as shepherds for new projects and working groups
  • Jini trademark and logo

What, you might ask, is meant by having the development team of Jini technology act as shepherds? The idea is that Sun wants to help Jini projects run by other members of the community, such as the printer working group organized by a number of prominent printer manufacturers. Sun provides assistance by having one or more Jini technology experts assist the working group with any Jini technology-specific questions they might have. This allows the working group to focus on domain-specific issues, (in this example, the details of distributed printing), which they and their companies know much better than does Sun.

In the end, shepherds are meant to foster the rapid development of sets of standard interfaces for various network services, such as printing or storage, that the entire community can agree upon, and from which everyone can benefit.

Example of a Jini Project Lifecycle

There are three basic models under which community members can choose to run Jini development projects within the community.

  • Share the project with all members, using freely available space on the Jini site. The project is jointly developed with other interested members of the Jini development community as a public project. Code is protected by the SCSL and site login, but developed interfaces are returned to the community.
  • Develop the project without community input, but publish the design and code after completion for others to use. Sometimes referred to as cut and run, this model allows a community member to contribute something that he or she developed on their own, but believes might be more generally applicable. The developer has the option to contribute only the design and interfaces without implementation.
  • Build a Jini technology-based project completely internal to one's own organization, not sharing the design or code with the community. Sometimes called the microcosm approach. If the project is shared with any other Jini community member organization, however, it must be shared with all others as per the SCSL.

Assuming a project is developed under the first model, publicly codeveloped with all interested members, the lifecycle might be something like this:

  • Initially, a small group develops early codebase. This may be developed within a private Jini site area, hidden for the initial 60 days from communitywide view by the infancy provision available for new projects.
  • Group posts the alpha design to the licensee-protected Jini community site. Code is protected by SCSL license, or by another licensing mechanism if the group so chooses.
  • Group solicits feedback and new developers, then iterates on the design-release cycle.
  • Release candidate is tested for compatibility using the Jini testing kit. This ensures interoperability with the Jini core technology, and thus protects the value of the Jini brand for all community members. The kit currently tests Jini services only, but the next release will also include client and lookup service tests as well.
  • Project is released publicly for all to use. If individual community members want to market their particular implementations, they may do so.

The Jini licensing model is deliberately more liberal than the Java SCSL licensing model. If a Java licensee breaks compatibility with core technologies (the Java Virtual Machine1 specification, for instance), interoperability is destroyed for all other licensees in a fundamental, damaging way. If a Jini licensee specifies a poorly designed interface, however, this will not directly injure other community members: the market will simply not use the interface and that licensee will suffer the consequences alone. So, the Jini development model encourages good, cooperative design that works well with other Jini services and clients.

Conclusions

The Jini technology community is rapidly consolidating around an open and cooperative development model. As the Jini processes have solidified, working groups have begun forming to define Jini interfaces for many different types of clients and services.

Jini technology will succeed to the extent that the new community model of development succeeds. Join the community today and help make it happen!

Resources

  • The Jini Community home page details how you can get involved with Jini technology development. Community members can create development areas for nascent Jini projects, discuss development issues with other Jini developers, and in general benefit from the Jini Community and their experience.
  • How does the Jini Community make community-wide decisions? Read a working draft document proposing a process. To be discussed at the October 1999 Jini Community meeting.
  • The next Jini Community meeting will be held in October 1999 in Annapolis, Maryland. Read through the draft agenda and sign up to participate.
  • Participate in the great Jini debate -- join Jini mailing lists to discuss the technology, the community, and specific Jini ideas and projects. Requires agreement to SCSL (username and password for login).
  • The Jini project information page outlines the various Jini projects being worked on by members of the community.
  • Sun's main Jini technology site contains community as well as technical information.
  • Still confused about the Sun Community Source License for Jini? Read the SCSL FAQ.
  • Download the Jini technology code. Requires SCSL agreement:
  • Need more information on the technical underpinnings of Jini? Learn more about the benefits and usage of Jini technology in this presentation.
  • Why did Netscape open up the code for Communicator? Why are Linux and Apache so successful? Why has Sun followed suit and begun to open up many of its technologies under a community source model? Read the declaration of open source principles that gave these developments motion in Eric Raymond's The Cathedral and the Bazaar
  • Visit the Jiro.com site to learn more about Jini technology's use in enterprise storage management.
  • ABC News recently aired an interesting piece on Jini technology, Out of the Bottle. Watch the video linked to from the top of this page for more examples of how the Jini Community is working to enable networked services.

_______
1 As used on this web site, the terms "Java Virtual Machine" or "JVM" mean a virtual machine for the Java platform.

coffeecup

Note: An earlier version of this article was first published by JavaWorld magazine in their JavaOne ShowDaily coverage, June 1999. This article has been revised recently by the author for the Java Developer Connection (JDC), and is published with permission from JavaWorld. Copyright Web Publishing Inc., an IDG Communications company.

About the Author

Bill Day is a technology evangelist at Sun Microsystems. He writes a monthly technical column, Java Device Programming, for JavaWorld magazine as well as a weekly Q&A column for Java Career Dispatch, JavaWorld's Career newsletter. Bill has contributed feature articles to CNN.com, SunWorld, Gamasutra, and Sun's Java technology site. He speaks frequently on Java technology-based multimedia and consumer device programming.