The RMI Architecture (System) has a FOUR layer,
(1) Application Layer
(2) Proxy Layer
(3) Remote Reference Layer
(4) Transport Layer
RMI Architecture Diagram:
(1) Application Layer:
It’s a responsible for the actual logic (implementation) of the client and server applications.
Generally at the server side class contain implementation logic and also apply the reference to the appropriate object as per the requirement of the logic in application.
(2) Proxy Layer:
It’s also called the “Stub/Skeleton layer”.
A Stub class is a client side proxy handles the remote objects which are getting from the reference.
A Skeleton class is a server side proxy that set the reference to the objects which are communicates with the Stub.
(3) Remote Reference Layer (RRL):
It’s a responsible for manage the references made by the client to the remote object on the server so it is available on both JVM (Client and Server).
The Client side RRL receives the request for methods from the Stub that is transferred into byte stream process called serialization (Marshaling) and then these data are send to the Server side RRL.
The Server side RRL doing reverse process and convert the binary data into object. This process called deserialization or unmarshaling and then sent to the Skeleton class.
(4) Transport Layer:
It’s also called the “Connection layer”.
It’s a responsible for the managing the existing connection and also setting up new connections.
So it is a work like a link between the RRL on the Client side and the RRL on the Server side.