+ All Categories
Home > Technology > remote method invocation

remote method invocation

Date post: 14-Nov-2014
Category:
Upload: ravi-theja
View: 564 times
Download: 1 times
Share this document with a friend
Description:
 
Popular Tags:
17
RMI RMI Concurrent & Distributed software Concurrent & Distributed software BY Ravi Theja Y
Transcript
Page 1: remote method invocation

RMIRMI Concurrent & Distributed softwareConcurrent & Distributed software

BYRavi Theja Y

Page 2: remote method invocation

Remote Procedure Calls (RPC)

•Goal: To provide a procedural interface for distributed (i.e., remote) services

•To make distributed nature of service transparent to the programmer

Remote Method Invocation (RMI)

•Goal: RPC + Object Orientation

•Allows objects living in one process to invoke methods of an object living in another process

Page 3: remote method invocation

Middleware layers

Middleware layers

Page 4: remote method invocation

Request and Reply communication

Page 5: remote method invocation

Conventional Procedure CallParameter passing in a local procedure call: the stack before the call to read(fd,buf,bytes)The stack while the called procedure is active

Page 6: remote method invocation

Remote Procedure Call

Principle of RPC between a client and server program.

Page 7: remote method invocation

Remote Procedure Calls 

Remote procedure call (RPC) abstracts procedure calls between processes on networked systems.

Stubs – client-side proxy for the actual procedure on the server.

The client-side stub locates the server and marshalls the parameters.

The server-side stub receives this message, unpacks the marshalled parameters, and performs the procedure on the server.

 

Page 8: remote method invocation

Steps of a Remote Procedure Call1. Client procedure calls client stub in normal way

2. Client stub builds message, calls local OS

3. Client's OS sends message to remote OS

4. Remote OS gives message to server stub

5. Server stub unpacks parameters, calls server

6. Server does work, returns result to the stub

7. Server stub packs it in message, calls local OS

8. Server's OS sends message to client's OS

9. Client's OS gives message to client stub

10. Stub unpacks result, returns to client

Page 9: remote method invocation

RMI

RMI = RPC + Object-orientationJava RMICORBA• Middleware that is language-independent

Microsoft DCOM/COM+SOAP• RMI on top of HTTP

Page 10: remote method invocation

Interfaces in distributed systems

Programs organized as a set of modules that communicate with one another via procedure calls/method invocationsExplicit interfaces defined for each module in order to control interactions between modulesIn distributed systems, modules can be in different processesA remote interface specifies the methods of an object that are available for invocation by objects in other processes defining the types of the input and output arguments of each of them.

Page 11: remote method invocation

Object modelObject referencesObjects accessed via object referencesObject references can be assigned to variables, passed as arguments and returned as resultsInterfaces provides a signature of a set of methods (types of arguments, return values and exceptions) without specifying their implementationsActions (invocations)ExceptionsGarbage Collection

Distributed ObjectsRemote object referencesAn identifier that can be used throughout a distributedsystem to refer to a particular remote objectRemote interfacesCORBA provides an interface definition language (IDL) for specifying a remote interfaceJAVA RMI: Java interface that extends Remote interfaceActions: remote invocationsRemote Exceptions may arise for reasons such as partial failure or message lossDistributed Garbage Collection: cooperation between local garbage collectors needed

Page 12: remote method invocation

Remote and local method invocations

A remote object and its remoteinterface

Page 13: remote method invocation

RMI Programming

RMI softwareGenerated by IDL compilerProxy• Behaves like remote object to clients (invoker)• Marshals arguments, forwards message to remote object, unmarshals results, returns results to clientSkeleton• Server side stub;• Unmarshals arguments, invokes method, marshals results and sends to sending proxy’s methodDispatcher• Receives the request message from communication module, passes on the message to the appropriate method in the skeleton

Page 14: remote method invocation

Role of proxy and skeleton in remote method invocation

Page 15: remote method invocation

Calculator.java

import java.rmi.Remote;import java.rmi.RemoteException; public interface Calculator extends Remote{ public long add(long a,long b) throws RemoteException;}

Calculatorserver.javaimport java.rmi.Naming; public class CalculatorServer { CalculatorServer() {try { Calculator c = new CalculatorImpl(); Naming.rebind("rmi://127.0.0.1:1099/CalculatorService", c); } catch (Exception e) { e.printStackTrace(); }} public static void main(String[] args) { new CalculatorServer(); }}

Calculatorimpl.javaimport java.rmi.RemoteException;import java.rmi.server.UnicastRemoteObject;public class CalculatorImpl extends UnicastRemoteObject implements Calculator{    protected CalculatorImpl() throws RemoteException     {        super(); }    public long add(long a, long b) throws RemoteException     {        return a+b; }}-------------------------------------------------------------------------------------------

Calculatorclient.java

import java.rmi.Naming; public class CalculatorClient {    public static void main(String[] args)     {        try        {Calculator c = (Calculator) Naming.lookup("//127.0.0.1:1099/CalculatorService");            System.out.println("addition : "+c.add(10, 15));        }         catch (Exception e)         {            System.out.println(e);        }}}

Page 16: remote method invocation

RMI systems

CORBA – language independentDCOM - MicrosoftJava RMISOAP (Simple Object Access Protocol)HTTP is request-reply protocolXML for data representation

Page 17: remote method invocation

Thank you


Recommended