Unformatted text preview: nnection to the remote service object. You only have
to worry about skeleton classes and objects in JDK 1.1 and JDK 1.1 compatible system
Remote Reference Layer
The Remote Reference Layers defines and supports the invocation semantics of the RMI
connection. This layer provides a RemoteRef object that represents the link to the remote service
The stub objects use the invoke () method in RemoteRef to forward the method call. The
RemoteRef object understands the invocation semantics for remote services.
The JDK 1.1 implementation of RMI provides only one-way for clients to connect to remote
service implementations: a unicast, point-to-point connection. Before a client can use a remote
service, the remote service must be instantiated on the server and exported to the RMI system. (If
it is the primary service, it must also be named and registered in the RMI Registry).
The Java 2 SDK implementation of RMI adds a new semantic for the client-server connection. In
this version, RMI supports activatable remote objects. When a method call is made to the proxy 5 Manisha Akolkar INTERNATIONAL INSTITUTE OF INFORMATION TECHNOLOGY
P-14, Pune Infotech Park, Hinjaw adi, Pune – 411 027
for an activatable object, RMI determines if the remote service implementation object is dormant.
If it is dormant, RMI will instantiate the object and restore its state from a disk file. Once an
activatable object is in memory, it behaves just like JDK 1.1 remote service implementation
Other types of connection semantics are possible. For example, with multicast, a single proxy
could send a method request to multiple implementations simultaneously and accept the first
reply (this improves response time and possibly improves availability). In the future, Sun may add
additional invocation semantics to RMI.
The Transport Layer makes the connection between JVMs. All connections are stream-based
network connections that use TCP/IP.
Even if two JVMs are running on the same physical computer, they connect through their host
computer's TCP/IP network protocol stack. (This is why you must have an operational TCP/IP
configuration on your computer to run the Exercises in this course). The following diagram shows
the unfettered use of TCP/IP connections between JVMs. As you know, TCP/IP provides a persistent, stream-based connection between two machines
based on an IP address and port number at each end. Usually a DNS name is used instead of an
IP address; this means you could talk about a TCP/IP connection between flicka.magelang.com:
3452 and rosa.jguru.com: 4432. In the current release of RMI, TCP/IP connections are used as
the foundation for all machine-to-machine connections.
On top of TCP/IP, RMI uses a wire level protocol called Java Remote Method Protocol (JRMP).
JRMP is a proprietary; stream-based protocol that is only partially specified is now in two
versions. The first version was released with the JDK 1.1 version of RMI and required the u...
View Full Document
- Summer '10
- RMI, Pune Infotech Park