Web services have their place, but the real focus for distributed application builders should be on Jini, according to supporters of the obscure Sun Microsystems Inc. technology.
About 150 developers attending the recent sixth Jini Community Meeting heard updates on new Jini initiatives, such as Project Rio, a scheme for clustering computers. They also learned about the payoffs and pitfalls of using Jini in everything from telecom carrier operational systems to mortgage rate calculations to military weapons systems.
The resounding themes at the meeting included a look at how Jini’s radical simplicity and distributed design make it possible to build applications as a set of relatively small, intelligent, interacting services. Attendees also examined how Jini services can be quickly and easily changed, without requiring changes elsewhere in the network and how Web services will have to be complemented by distributed functions like those found in Jini, if they are to prove reliable, scalable and adaptable enough for enterprise computing.
Introduced by Sun in 1999, Jini is a set of APIs and network protocols that developers use to create programs, dubbed Jini services, on a network that can find what they need from other Jini services to do their jobs.
The Jini runtime environment creates a set of basic services, such as “lookup,” which is a distributed directory.
When a new Jini service is added to a network, it seeks out the lookup service, and registers itself. The lookup service then notifies other Jini services that have a standing order to be contacted when such a new service shows up on the network.
“The lookup service is like a matchmaker,” said Jools Enticknap, a consultant who’s working with a leading British telecom company to deploy a Jini network. “Once it matches two services, it steps out of the way.”
Initially positioned as a means to create networks of embedded appliances or consumer devices, a use that hasn’t materialized, Jini has been written off numerous times in the past two years.
But Enticknap and others at the meeting said such pronouncements were premature and that Jini has a range of uses in enterprise networks.
Freddie Mac, a U.S. federal mortgage agency, attaches a Java interface to existing, complex financial computations that are written in C++, then uses Jini services to run them on a cluster of three Unix PCs and two low-end Sun servers to get faster performance and improved scalability.
Freddie Mac programmers take advantage of a Jini concept called the Java Space, a kind of common bulletin board used by Jini services to find assignments and post results of the jobs they complete.
“With Java Spaces, there is no central control point or decision point: You can add new machines or new services, and not one line of your code has to be changed,” said Oliver Zeng, lead technology consultant with the agency’s fixed-income research group.
Few programmers interviewed at the conference said they were working with Web services, explaining that they’re tackling more complex problems than simply using XML and Simple Object Access Protocol to exchange data in agreed-on formats.
But Enticknap is using Jini as the link between back-end services, including billing and provisioning, and Web services on the front end. This setup lets a company make extensive back-end changes and have these distributed to the various Web services automatically, and without interruptions, he said.
Meeting attendees expressed skepticism that Web services could fulfil the overheated expectations.
“In Jini, you have a flexibility and adaptability that’s not evident in Web services,” said Nigel Warren, director of technology for IntraMission, a British company that has created a Jini-based product for the telecom industry.
“The key issue with Web services is, first, will they scale, and second, how will I change them?” he said.