Newsletter sign-up
View all newsletters

Sign up for our technology specific newsletters.

Enterprise Java
Email Address:

Why Jini matters

Much heralded but less often understood, Sun's Jini system promises to use Java to extend the boundaries of network computing -- and it may just work

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone
Visualize two scenarios:

Your browser, computer, electronic organizer, disk drive, video camera, telephone, CD player, and microwave oven all have an integral Java virtual machine -- but without interconnectivity.

It's Friday night at midnight. You're a systems administrator leading a team that must upgrade 250 personal computers to a new version of Windows by 8:00 a.m. on Monday. Is there an easy way to do this?

These are two possibilities, among others, that Sun Microsystems's Jini (pronounced "GEE-nee") software is designed to remedy. The mighty Sun marketing machine has flooded the Internet with heroic prose in an attempt to define just what Jini is. It's spontaneous networking; it's a ubiquitous network; it's an infinitely connected network of services into which anyone will be able to plug-and-participate anytime, from anywhere, using the simplest possible technology. Jini is what consumers and computer scientists alike have imagined computer networks could be someday: as easy to connect to as a telephone dial tone, as persistent and reliable as a radio, as easy to operate as a TV, and as powerful as all the devices connected to it.

It can also leap tall buildings in a single bound. It's a bird. It's a plane. It's Jini.

What is Jini?

Enough already. Jini is a network operating system for a broad range of electronic devices and software services.

Sun denies Jini's positioning as a network operating system. Rather, the company calls Jini a networking infrastructure running on top of Java to create a "federation" of virtual machines. The Jini system can be segmented logically into three categories: infrastructure, programming model, and services. In other words, it's a network operating system.

Sun's sensitivity to positioning is understandable, because Jini provides only a small number of services. The system is as much of a framework as a complete system; however, this will change over time. Meanwhile, some of Sun's partners (especially Novell) are sensitive to creating a new operating system for the network. Finally, Windows NT is an operating system for networked computers, and Jini and NT are decidedly different. It is also different from Millennium, Microsoft's quiet project to develop a distributed operating system.

Sun has provided many resources on the Internet to describe Jini (see Resources). An excellent overview of Jini by Rawn Shah can be found in the August edition of JavaWorld.

How is Jini different?

Jini has the potential to create large federations of electronic devices to which users can connect with a standard computer device, or they can get these services (memory, storage, and computation) from the network itself. As a result, Jini is different from traditional operating environments in at least ten important ways:

  1. It's small. The Jini core requires only a Java virtual machine, 4 KB of resident memory, and some computational cycles. The Jini system is about 600 KB.

  2. The system is fully object-based. That is, its components include methods that can be executed remotely, and when a method is incompatible with its execution environment (floating-point code, for example), it can load the correct method automatically.

  3. Jini's basic control structures are simple. Objects communicate via the standard Java RMI interface through basic operations in JavaSpaces (a system that manages features such as object processing, sharing, and migration): read, write, and take.

  4. All services are available through a simple lease facility. Leases are time-dependent (with renewal upon expiration) and allow multiple leases to a service.

  5. Jini includes the standard Java security constructs. Given the distributed nature of the environment, this is very important, because security is in effect where the object is executed.

  6. With JavaSpaces, Jini includes facilities for transactions (with two-phase commit) and persistency (initially with Object Design's ObjectStore PSE Pro for Java).

  7. Within Jini, groups of basic information such as security policies are accessible. Those groups can be aggregated almost indefinitely into large networks.

  8. Jini supports the Java programming model. Java services and protocols (JavaBeans, and so on) are available to the large base of existing programmers.

  9. Source will be licensed for free (or something close to that).

  10. Most importantly, Jini provides plug-and-execute capabilities where a new device can gain instant recognition (by a boot, join, and discover protocol) by the network and have access to any services for which it has authority. Sun compares this to the dial tone in the standard telephone network, and is considering using the JavaTone brand to describe the overall environment.


Why does Jini matter?

The existing network computing environment is excessively complicated. Client operating systems such as Windows 98 and Windows NT Workstation consist of between 10 million to 20 million lines of code. The size and complexity of these systems mandate expensive and resource-intensive computing devices that must be constantly updated a new versions of software are made available.

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone
Comment
Login
Forgot your account info?
Add comment
Anonymous comments subject to approval. Register here for member benefits.
Have a JavaWorld account? Log in here. Register now for a free account.
Resources
  • Basic information on Jini can be found at the following URL. You will need an Adobe Acrobat reader to view the "Jini Architecture Overview," "JavaSpaces Specification," and "Why Jini Now?" documents http://java.sun.com/products/jini
  • Rawn Shah's overview of the Jini environment, "The Skinny on Jini," can be found at http://www.javaworld.com/jw-08-1998/jw-08-jini.html