RMI (Remote Method Invocation)

The RMI (Remote Method Invocation) is an API that provides a mechanism to create distributed application in java. The RMI allows an object to invoke methods on an object running in another JVM.

The RMI provides remote communication between the applications using two objects stub and skeleton.

Understanding stub and skeleton

RMI uses stub and skeleton object for communication with the remote object. A remote object is an object whose method can be invoked from another JVM. Let's understand the stub and skeleton objects:

Stub

The stub is an object, acts as a gateway for the client side. All the outgoing requests are routed through it. It resides at the client side and represents the remote object. When the caller invokes method on the stub object, it does the following tasks:

  1. It initiates a connection with remote Virtual Machine (JVM),
  2. It writes and transmits (marshals) the parameters to the remote Virtual Machine (JVM),
  3. It waits for the result
  4. It reads (unmarshals) the return value or exception, and
  5. It finally, returns the value to the caller.

skeleton

The skeleton is an object, acts as a gateway for the server side object. All the incoming requests are routed through it. When the skeleton receives the incoming request, it does the following tasks:

  1. It reads the parameter for the remote method
  2. It invokes the method on the actual remote object, and
  3. It writes and transmits (marshals) the result to the caller.


Understanding requirements for the distributed applications

If any application performs these tasks, it can be distributed application.

  1. The application need to locate the remote method
  2. It need to provide the communication with the remote objects, and
  3. The application need to load the class definitions for the objects.

Java RMI Example

  • Create the remote interface
  • Provide the implementation of the remote interface
  • Compile the implementation class and create the stub and skeleton objects using the rmic tool
  • Start the registry service by rmiregistry tool
  • Create and start the remote application
  • Create and start the client application
  • RMI Example

    In this example, we have followed all the 6 steps to create and run the rmi application. The client application need only two files, remote interface and client application. In the rmi application, both client and server interacts with the remote interface. The client application invokes methods on the proxy object, RMI sends the request to the remote JVM. The return value is sent back to the proxy object and then to the client application.


    create the remote interface

    For creating the remote interface, extend the Remote interface and declare the RemoteException with all the methods of the remote interface. Here, we are creating a remote interface that extends the Remote interface. There is only one method named add() and it declares RemoteException.

    Provide the implementation of the remote interface

    EXAMPLE

    Flash Soon


    Start the registry service by the rmiregistry tool

    create the stub and skeleton objects using the rmic tool.

    EXAMPLE

    Flash Soon


    EXAMPLE

    Flash Soon


    EXAMPLE

    Flash Soon



    Advertisement

    Copyright 2017 Design& Development