Remote Method Invocation

Java Remote Method Invocation (RMI) enables the programmer to create distributed Java technology-based to Java technology-based applications, in which the methods of remote Java objects can be invoked from other Java virtual machines*, possibly on different hosts. A Java technology-based program can make a call on a remote object once it obtains a reference to the remote object, either by looking up the remote object in the bootstrap naming service provided by RMI or by receiving the reference as an argument or a return value. A client can call a remote object in a server, and that server can also be a client of other remote objects. RMI uses object serialization to marshal and unmarshal parameters and does not truncate types, supporting true object-oriented polymorphism.

Source : site de Sun
The Java distributed object model preserves the Java object model in the following ways:
  1. reference to a remote object can be passed as an argument or returned as a result in any local or remote method invocation.
  2. Developers can use natural Java mechanisms for the type-checking and casting of remote objects.
  3. Clients of remote objects interact with remote interfaces.
  4. If a remote object reference is passed, the receiver will get a reference to the same remote object.
The Java distributed object model extends the Java object model in several ways:
  • Non-remote arguments to - and results from - a remote method invocation are passed by deep copy rather than by value.
  • The semantics of some of the methods defined by class Object are specialized for remote objects.

Remote Method Invocation Three-Layer Architecture

The RMI system consists of a three-layered architecture:
  • Stub/Skeletons: Client-side stubs (proxies) and server-side skeletons.
  • Remote Reference Layer: Reference/invocation behavior (e.g., unicast, multicast).
  • Transport: Connection set up and management and remote object tracking.

Java Remote Method Invocation Features

Distributed Polymorphism

RMI extends object polymorphism capabilities - the central feature of object-oriented programming - to distributed computing for the Internet. RMI enables objects to be passed by value and retain their true type when used in distributed applications.

Distributed Garbage Collection

RMI's automatic memory management for client/server and peer-to-peer distributed applications uses reliable reference counting with high fault tolerance to protect against network failure.
Dynamic Stub and Class Loading on Demand. RMI securely loads stub and application classes from the network on an as-needed basis, minimizing the requirement to load the entire application at load time, reducing network traffic and enabling the deployment of just-in-time distributed software.

Remote Object Invocation for the Internet

RMI supports communication among applets and applications over the Internet and intranets. It can use the HTTP protocol to accommodate secure object invocation across corporate firewalls.

RMI / SSL

It is possible to use RMI with SSL due to RMI enhancements available in the java 2 SDK, Standard Edition, v1.2 (Java 2 SDK).
détails... (site de Sun)

Requirements

  • Software: The Java Platform (JDK)
  • Hardware: Same as JDK



Article extrait du site Loribel.com.
https://loribel.com/info/acronyms/rmi.html