ini technology is an open architecture that enables Java developers to build distributed systems that are highly adaptive to change. As the complexities associated with building and managing service-based systems become clearer, more and more developers
are relying on Jini technology's dynamic networking capabilities and service-oriented architecture to build distributed systems today.
Jini technology introduced the concept of dynamic networking, a very simple, yet unique networking approach. The fundamental difference between dynamic networking and traditional networking is one of perspective. If you build your system with the assumption that the environment it will run in is dynamic, and therefore actively consider that the system will need to detect and respond to changes in its runtime environment, then you are working in a dynamic networking mindset. If you don't think about this at all as you design and code your system, then you're not working in a dynamic networking mindset. Today's deployment environments are increasingly dynamic, and in these environments systems that are built to respond to change both flexibly and automatically often perform better than their static counterparts, which rely largely on human intervention to deal with change.
Exactly What Is Jini Technology?
Jini technology is a set of specifications that describe how to build adaptive distributed systems that run on the Java platform. The specifications presume, fundamentally, that any aspect of a distributed system is subject to change without notice, and so they provide systems designers and developers with the mechanism needed to recognize, acknowledge, and build their systems to accommodate change.
Jini technology specifications are straightforward and minimalist. They describe the following:
- A very simple dynamic system assembly mechanism that enables clients to find and connect to services in a dynamic network
- An associated programming model that extends the Java programming model to function in a dynamic, distributed environment
- Key infrastructure services, such as shared memory and transaction management services, which enable important functionality to be delivered in a dynamic, distributed environment
Sun Microsystems created Jini technology and contributed it to the Jini Community in 1999. At this same time, Sun also contributed the first implementation of the original Jini technology specifications, packaged together with supporting utilities and examples as the Jini Technology Starter Kit.
Today, Jini technology remains freely available, and individual and corporate members of the Jini Community are advancing it through the open Jini Community Decision Process. Sun continues to advance and provide the Jini Technology Starter Kit free of charge to the Jini Community. In addition, numerous commercial and non-commercial implementations of Jini technology, created by members of the Jini Community, are also available.
First Things First: the Java Platform
The core of most modern systems architectures is a distributed object model, and Jini technology has been developed around the Java object model. This means much more than simply presenting Jini services through Java interfaces; it also means that you have access to the sorts of capabilities, built into Java technology, that make dynamic networking really work. Things such as:
- A single, object-oriented language for both defining and implementing service interfaces
- A powerful service ontology in the form of a true object type system
- A rich runtime environment, which includes "sandbox" security
- A distributed object model that encapsulates network communications and client-side service code as service implementation details
- Dynamic service delivery via downloadable code
- A remote method invocation mechanism that recognizes the possibility of network failure
Using the Java platform mandates certain minimal system requirements for Jini technology systems, most notably:
- Agreements between Jini clients and services must be described using Java interfaces
- Each Jini client and service must be at least wrapped (though not necessarily entirely coded) in a Java language implementation of their interfaces
- At least one Java virtual machine must be running somewhere on the network.
For that price, Jini technology gives you unique and powerful dynamic networking capabilities that only the Java platform can support.
If you're starting to get even a fuzzy sense of what Jini technology and Java dynamic networking are all about at this point, you're doing great. A closer look now at what Jini technology does and how it works ought to help you pull it all together.
First, consider what Jini technology does. Put simply, Jini technology:
- Tracks the services currently available in dynamic runtime environments
- Identifies services among those currently available that can satisfy client needs
- Assembles services as needed into a running system
- Enables coordinated interaction of distributed components
Part 1 of this introduction explains how Jini technology tracks services, identifies their capabilities, and assembles them into systems. Part 2 will continue with an introduction to the ways in which Jini technology supports distributed component interactions. It will conclude with a review of some of the kinds of applications that Jini technology is being used in today.