What’s So Tough About Distributing Objects?
OK, so we think distributing objects is a good idea, but why do
distributed object systems like CORBA and, to a lesser degree, Java
RMI, seem so big and complicated? In Chapter 2 we
saw how the core Java API, especially the
java.net
and java.io
packages, gives us easy access to the network and key network
protocols. They also let us layer application-specific operations on
top of the network pretty easily. It seems like all that we’d
need to do is extend these packages to allow objects to invoke each
other’s methods over the network, and we’d have a basic
distributed object system. To get a feeling for the complexity of
distributed object systems, let’s look at what it would take to
put together one of our own using just the core Java API, without
utilizing the RMI package or the object input/output streams in the
java.io
package.
Creating Remote Objects
The essential requirements in a distributed object system are the ability to create or invoke objects on a remote host or process, and interact with them as if they were objects within our own process. It seems logical that we would need some kind of message protocol for sending requests to remote agents to create new objects, to invoke methods on these objects, and to delete the objects when we’re done with them. As we saw in Chapter 2, the networking support in the Java API makes it very easy to implement a message protocol. But what kinds of things does a message protocol have to do ...
Get Java Distributed Computing now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.