Q. What are the biggest misconceptions that developers have about Jini network technology?Read Jini Network Technology Fulfilling its Promise: A Conversation with Jim Waldo
A. "Probably the biggest misconception is that it is concerned primarily with devices. This was, unfortunately, the original marketing message used for Jini technology, so this misconception is to a large extent our own fault. It was one of those cases where an illustration of what Jini technology could do -- attach a device and it's found and used, detach the device and it disappears -- was mistakenly thought of as all that the technology could do.
The message about devices hid the fact that Jini software is really a general service-oriented architecture. Jini technology is really about advertising, finding, and using services on a network. Services are advertised by what they do, their Java technology interface, rather than what they are called, and the code needed to access the service can be dynamically downloaded from the service itself so that the client of the service need only know the Java interface. Devices are one way to implement a service, but there are lots of others, including software services.
Another common misconception is the belief that Jini technology is based on a proprietary network protocol, and so can't be used with XML, or CORBA, or SOAP, or some other communications mechanism. This misconception is somewhat more troubling, because it suggests that some people are missing what I think is the essential innovation on top of which Jini software is built.
Most distributed systems are built on top of a wire protocol -- this is what allows communication to happen. The service knows what bits to put on the wire, and the client knows how to interpret those bits and respond. Both the client and the service are built with the code that knows how to take what is understood within the process that is doing the communication and translate that to the wire protocol, and to take the bits transmitted over the wire and translate them into something that can be understood by the receiving process.
Jini software changes this by leveraging the Java environment's ability to move objects, including the code for that object, from one place to another. So when a client finds a Jini service that the client wants to use, the client receives an implementation of the interface that identifies the service from the service itself. That implementation is responsible for the communication between the client and the service -- the client makes the calls that are defined in the interface, and the implementation of the interface is responsible for packing this up and transmitting it on the wire in such a way that the service can understand. So the service can use XML and SOAP, or CORBA, or even a protocol that it has invented especially for itself for the communication. The client doesn't have to know or care. In fact, different instances of services that implement the same interface can use very different communication mechanisms. Rather than using a proprietary protocol, Jini technology lets services use the protocol that is right for them."
NOTE: Cambridge, MA is hosting the Seventh Jini Community Meeting March 23-25, 2004.