•Everything is an object
•Distributed system is just a
distributed program
•Java Class Hierarchy describes devices/services
•Mobile Code via Remote Method Invocation
•Leasing and distributed garbage collection provides self-healing
•Individual devices/services can be simple, don’t require a Java Virtual Machine
•Services available on demand
Jini Technology Principles

| Jini Technology Principles
| With an overall design goal of simplicity, it should come as no surprise that Jini technology is based on objects. Objects allow the network, its applications, and its devices to behave as a distributed system, where access to them is made possible through services.
| Using the Java Class Hierarchy, Jini technology provides a means to describe devices and the services which access them. The Jini team built on top of the Remote Method Invocation (RMI) technology of the Java technology platform, extending objects to remote resources, which also provide flexibility in enabling code to be truly mobile.
| Other design characteristics, including leasing and distributed garbage collection addresses an important Jini technology goal — facilitating self-healing of the network. Specifically, leasing provides a contract between objects, where each device registers for a certain leased period, and before the lease expires the device must re-negotiate the lease. This way, even if the device is unplugged during the lease period, once the lease expires the device’s registry will be removed automatically. Automatic garbage collection not only makes the programming task easier, it also dramatically cuts down on bugs.
| Another important Jini technology principle is that individual devices/services can be very simple, and don’t necessarily require a Java Virtual Machine. While in general, we assume that each Jini-connected device has some memory and processing power, devices without processing power or memory may be connected to a Jini federation. But those devices are controlled by another piece of hardware and/or software, called a proxy, that presents the device to the Jini system and which itself contains both processing power and memory. This provides an extremely flexible environment that is able to support existing legacy devices.
| The last important design principle for Jini technology is services on demand. With Jini technology, services are central, and the underlying technology is incidental. Any network resource can be a service, and all services are independent objects, freely distributable on the network. And services are there and available whenever they are needed. Let’s take a moment now to explore Jini technology in more detail.