The Artima Developer Community
Sponsored Link

Jim Waldo on Distributed Computing
A Conversation with Jini's Chief Architect, Jim Waldo
by Frank Sommers with Bill Venners
First Published in JavaWorld, November 2001

<<  Page 4 of 11  >>


Protocols in the Enterprise

Frank Sommers: Enterprise-wide networked systems use many protocol types. Not only network protocols, such as TCP/IP, but also "homemade" protocols, invented by a company's own programmers. Many enterprises maintain these in manuals and operational books, which often descend from generations of MIS managers. When such a protocol changes, everything using that protocol breaks. How does Jini address this issue?

Jim Waldo: Protocol means a lot of things. The low-level networking protocols, like TCP, describe how you send packets of information. Jini does not deal at that level; it assumes that your network can move packets of bits from one place to another. The next protocol layer is how those bits get interpreted, such as protocols like XML and IIOP (Inter-ORB Protocol). Jini allows a service to use whatever protocol is appropriate for it.

In the Jini world, the client doesn't talk to the service directly using one of those protocols. Instead, the client gets a Java object from a lookup service that implements the right interface representing the service. That object was put into the lookup service by the ultimate service providing the information or the computation that the client needs. In effect, the client injects a piece of the service into its own address space, and makes method calls on that Java object. That object generates the wire protocols to talk to the service. This means that different services can use different protocols.

Traditionally in distributed computing systems, those who have agreed on a wire protocol have gained interoperability. Jini and Java RMI (Remote Method Invocation) really changed the rules by saying that since you're getting the object that talks to the service from the service, how that wire protocol information is exchanged is a private matter between the object piece from the service that gets injected into the client, and the service.

This means you can hide the protocols behind the Java objects that move around the network. If you had private protocols that work well for you, or can't be changed, you can wrap them in a Java object and actually use them while developing new services with more modern protocols. Whatever protocol is best for that service the client can also use. And different implementations of the same service can use different protocols in the Jini world. That's a fundamental change in the way we build distributed systems.

<<  Page 4 of 11  >>

Sponsored Links

Copyright © 1996-2018 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use