Unformatted text preview: urces and Generate Stubs
This is a two-step process. In the first step you use the javac compiler to compile the source files,
which contain the implementation of the remote interfaces and implementations, the server
classes, and the client classes. In the second step you use the rmic compiler to create stubs for
the remote objects. RMI uses a remote object's stub class as a proxy in clients so that clients can
communicate with a particular remote object.
Make Classes Netw ork Accessible
In this step you make everything--the class files associated with the remote interfaces, stubs, and
other classes that need to be downloaded to clients--accessible via a Web server.
Start the Application
Starting the application includes running the RMI remote object registry, the server, and the client.
Naming Remote Objects
During the presentation of the RMI Architecture, one question has been repeatedly postponed:
"How does a client find an RMI remote service? " Now you'll find the answer to that question.
Clients find remote services by using a naming or directory service. This may seem like circular
logic. How can a client locate a service by using a service? In fact, that is exactly the case. A
naming or directory service is run on a well-known host and port number.
(Well-known meaning everyone in an organization knowing what it is).
RMI can use many different directory services, including the Java Naming and Directory Interface
(JNDI). RMI itself includes a simple service called the RMI Registry, rmiregistry. The RMI Registry
runs on each machine that hosts’ remote service objects and accepts queries for services, by
default on port 1099.
On a host machine, a server program creates a remote service by first creating a local object that
implements that service. Next, it exports that object to RMI. When the object is exported, RMI
creates a listening service that waits for clients to connect and request the service. After
exporting, the server registers the object in the RMI Registry under a public name.
On the client side, the RMI Registry is accessed through the static class Naming. It provides the
method lookup() that a client uses to query a registry. The method lookup() accepts a URL that
specifies the server host name and the name of the desired service. The method returns a
remote reference to the service object. The URL takes the form:
where the host_name is a name recognized on the local area network (LAN) or a DNS name on
the Internet. The name_service_port only needs to be specified only if the naming service is
running on a different port to the default 1099.
The first step is to write and compile the Java code for the service interface. The
Calculator interface defines all of the remote features offered by the service: 8 Manisha Akolkar INTERNATIONAL INSTITUTE OF INFORMATION TECHNOLOGY
P-14, Pune Infotech Park, Hinjaw adi, Pune – 411 027 public interface...
View Full Document
- Summer '10
- RMI, Pune Infotech Park