rmi
DESCRIPTION
RMI-REMOTE METHOD INVOCATIONTRANSCRIPT
Master Java - Level 2/ Session 11 / 1 of 14
Remote Method Invocation (RMI)
Session 11
Master Java - Level 2/ Session 11/ 2 of 14
Session Objectives Describe the Java Distributed Model
Analyse RMI Architeture
Discuss RMI packages
Explain how to implement RMI client and server
Master Java - Level 2/ Session 11/ 3 of 14
Distributed Application A Distributed application is an application whose
processing is distributed across multiple networked computers.
The various models that can be used for developing distributed applications Distributed Component Object Model(DCOM) Common Object Request Broker Architecture(CORBA) Remote Method Invocation(RMI)
Master Java - Level 2/ Session 11/ 4 of 14
Remote Method Invocation (RMI)
Java Virtual MachineJava Virtual Machine
Client ObjectClient Object
Java Virtual MachineJava Virtual Machine
Server ObjectServer ObjectTCP
The distributed object model used by Java allows objects in one JVM to invoke methods of objects in a separate JVM. This is known as RMI.
Master Java - Level 2/ Session 11/ 5 of 14
RMI System Layers
The RMI system consists of three layers in its architecture:
Stub/Skeleton Layer
Remote Reference Layer
Transport Layer
Master Java - Level 2/ Session 11/ 6 of 14
RMI Architecture
Java Virtual Machine
Client Object
TCP
Object ‘S’ Stub
Remote ReferenceLayer
Remote ReferenceLayer
TransportLayerTransportLayer
Java Virtual Machine
Server Object ‘S’
Object ‘S’ Skeleton
Remote ReferenceLayer
Remote ReferenceLayer
TransportLayerTransportLayer
Master Java - Level 2/ Session 11/ 7 of 14
Remote Method Invocation API
The five packages in RMI API are: java.rmi java.rmi.registry java.rmi.server java.rmi.activation java.rmi.dgc
We shall be examining the first three in detail
Master Java - Level 2/ Session 11/ 8 of 14
The java.rmi Package The java.rmi package declares
The Remote interface
The MarshalledObject class
The Naming class
The RMISecurityManager class
A number of exceptions that are used with remote method invocations
Master Java - Level 2/ Session 11/ 9 of 14
The java.rmi.registry Package
The interfaces and class of the java.rmi.registry package are used to handle remote objects by name and also to register those remote objects
The java.rmi.registry package provides
The Registry interface
The RegistryHandler interface
The LocateRegistry class.
Master Java - Level 2/ Session 11/ 10 of 14
The java.rmi.server Package
The java.rmi.server package supports both client and server aspects of RMI like a class implementation of Remote interface, client stub and server skeleton
Classes and Interfaces declared are :
RemoteObject class
RemoteServer class
UnicastRemoteObject class
RemoteStub class
Skeleton interface
RMIClassLoader class
RMISocketFactory class
Master Java - Level 2/ Session 11/ 11 of 14
Implementing RMI
Implement RMI server Create Remote Interface Create a class that implements the remote interface Create stub and skeleton classes Copy Remote interface and stub to client Create and register remote objcet
Implement the RMI client Call the remote interface by using the ‘lookup()’ method of the Naming class.
Master Java - Level 2/ Session 11/ 12 of 14
RMI flow - I
Server Virtual MachineServer Virtual MachineClient Virtual MachineClient Virtual Machine
Client
Stub
Remote Object
Skeleton
RegistryRegistry VirtualVirtual MachineMachine
Server
Remote ObjectRegistered
1
21. Server Creates Remote1. Server Creates Remote object.object.
2. Server Registers Remote2. Server Registers Remote object with RMI registryobject with RMI registry
Master Java - Level 2/ Session 11/ 13 of 14
RMI flow - II
3. Client requests object from3. Client requests object from registryregistry
4. Registry returns remote 4. Registry returns remote reference through interfacereference through interface
Server Virtual MachineServer Virtual MachineClient Virtual MachineClient Virtual Machine
Client
Stub
Remote Object
Skeleton
Registry Virtual MachineRegistry Virtual Machine
Server
Remote ObjectRegistered
3 4
Master Java - Level 2/ Session 11/ 14 of 14
RMI flow - III
5. Client invokes stub method5. Client invokes stub method
6. Stub talks to skeleton6. Stub talks to skeleton
7. Skeleton invokes remote 7. Skeleton invokes remote object method.object method.
Server Virtual MachineServer Virtual MachineClient Virtual MachineClient Virtual Machine
Client
Stub
Remote Object
Skeleton
Registry Virtual MachineRegistry Virtual Machine
Server
Remote ObjectRegistered
5 6
7