Object Mobility in the Jini Environment Simplify the Installation and Configuration of Jini Applications by Frank Sommers First Published in JavaWorld, January 2001
Object mobility on the network is the cornerstone of Jini technology, and one of the most powerful ways in which Jini is able to contribute to a more robust, less error-prone computing environment. Jini exploits the JVM's ability to dynamically download and link code from anywhere on the network, and takes advantage of object serialization to transport objects between Java VMs in a distributed Jini federation. To allow both objects and classfiles to independently traverse the network, Jini builds on the codebase annotation technology employed by Java RMI: the codebase URLs for an object's class are annotated to the object's serialized stream. These techniques together allow a client to have only a well-known Java language interface type locally available. The Jini discovery protocols can find lookup services and retrieve any object that guarantees the contract specified by the service interface. Classes required to interact with the service are then dynamically downloaded to the client from the service's codebase URLs.
As for the island of Utopia? Sir Thomas More was imprisoned and executed by Henry VIII in 1532, so he unfortunately won't be able to report on a utopian computing landscape. However, he would certainly see the promise that Jini and mobile code can bring to a more ideal computing world.
About the Author
Frank Sommers is founder and CEO of AutoSpaces.com, a startup focusing on
bringing Jini technology to the automotive software market. He also serves
as VP of technology at Nowcom, a Los Angeles-based outsourcing
firm. He has been programming in Java since 1995, after attending the first
public demonstration of the language on the Sun Microsystems campus in
November of that year. His interests include parallel and distributed
computing and the discovery and representation of knowledge in databases, as
well as the philosophical foundations of computing. When not thinking about
computers, he composes and plays piano, studies the symphonies of Gustav
Mahler, or explores the writings of Aristotle and Ayn Rand. Frank would like to thank John McClain, member of Sun's Jini development team, for his valuable comments on this article.
"Sun Lets Jini Starter Kit 1.1 Out of the Bottle" (JavaWorld, December 8, 2000) -- Jini architect Jim Waldo talks to Frank Sommers about the importance of having the Java service interface available to both client and service: http://www.javaworld.com/javaworld/jw-12-2000/jw-1208-waldo.html
Bill Venners's Under the Hood series provides a wealth of information on the internals of the Java Virtual Machine, including class loading: http://www.artima.com/underthehood/index.html