rmi

14
Master Java - Level 2/ Session 11 / 1 of 14 Remote Method Invocation (RMI) Session 11

Upload: aravindngec

Post on 12-Nov-2014

2.356 views

Category:

Technology


0 download

DESCRIPTION

RMI-REMOTE METHOD INVOCATION

TRANSCRIPT

Page 1: RMI

Master Java - Level 2/ Session 11 / 1 of 14

Remote Method Invocation (RMI)

Session 11

Page 2: RMI

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

Page 3: RMI

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)

Page 4: 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.

Page 5: 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

Page 6: RMI

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

Page 7: RMI

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

Page 8: RMI

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

Page 9: RMI

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.

Page 10: RMI

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

Page 11: RMI

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.

Page 12: RMI

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

Page 13: RMI

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

Page 14: RMI

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