DISTRIBUTED OBJECTS AND REMOTE INVOCATION DISTRIBUTED OBJECTS AND

DISTRIBUTED OBJECTS AND REMOTE INVOCATION DISTRIBUTED OBJECTS AND

DISTRIBUTED OBJECTS AND REMOTE INVOCATION DISTRIBUTED OBJECTS AND REMOTE INVOCATION 1 DISTRIBUTED OBJECTS AND REMOTE INVOCATION Topics Middleware Remote Method Invocation Remote Procedure Call 2

DISTRIBUTED OBJECTS AND REMOTE INVOCATION Introduction Objects that can receive remote method invocations are called remote objects and they implement a remote interface. Programming models for distributed applications are: Remote Procedure Call (RPC) Client calls a procedure implemented and executing on a remote computer Call as if it was a local procedure 3

DISTRIBUTED OBJECTS AND REMOTE INVOCATION Introduction Remote Method Invocation (RMI) Local object invokes methods of an object residing on a remote computer Invocation as if it was a local method call Event-based Distributed Programming Objects receive asynchronous notifications of events happening on remote computers/processes 4

DISTRIBUTED OBJECTS AND REMOTE INVOCATION Introduction Middleware Software that provides a programming model above the basic building blocks of processes and message passing is called middleware. The middleware layer uses protocols based on messages between processes to provide its higher-level abstractions such as remote invocation and events. (Figure 1) 5

DISTRIBUTED OBJECTS AND REMOTE INVOCATION Introduction Figure 1. Middleware layers 6 DISTRIBUTED OBJECTS AND REMOTE INVOCATION Introduction Transparency Features of Middleware Location transparency: In RMI and RPCs, the client calls a procedeure/method without knowledge of

the location of invoked method/procedure. Transport protocol transparency: E.g., request/reply protocol used to implement RPC can use either UDP or TCP. 7 DISTRIBUTED OBJECTS AND REMOTE INVOCATION Introduction Transparency of computer hardware They hide types of hardware architectures

Transparency of operating system It provides independency of the underlying operating system. Transparency of programming language used E.g., by use of programming language independent Interface Definition Languages (IDL), such as CORBA IDL. 8 DISTRIBUTED OBJECTS AND REMOTE INVOCATION Introduction // In file Person.idl

struct Person { string name; string place; long year; }; interface PersonList { readonly attribute string listname; void addPerson(in Person p) ; void getPerson(in string name, out Person p); long number(); }; CORBA IDL example 9 DISTRIBUTED OBJECTS AND REMOTE INVOCATION

Introduction Interfaces for RMI and RPC An explicit interface is defined for each module. An Interface hides all implementation details. Accesses the variables in a module can only occur through methods specified in interface. 10 DISTRIBUTED OBJECTS AND REMOTE INVOCATION

Introduction Interface in distributed system No direct access to remote variables is possible Using message passing mechanism to transmit data objects and variables Request-reply protocols Specify input, output as attribute to parameters Input: transmitted with request message Output: transmitted with reply message 11

DISTRIBUTED OBJECTS AND REMOTE INVOCATION Introduction RPC and RMI interfaces are often seen as a client/server system Service interface (in client server model) Specification of procedures and methods offered by a server Remote interface (in RMI model)

Specification of methods of an object that can be invoked by objects in other processes 12 DISTRIBUTED OBJECTS AND REMOTE INVOCATION Introduction Interface Definition Languages (IDL) Impossible to specify direct access to variables in remote classes Hence, access only through specified interface Desirable to have language-independent IDL that compiles into access methods in

application programming language Example: CORBA IDL (Figure 2) IDL is designed to allow objects implemented in different languages to invoke one-another 13 DISTRIBUTED OBJECTS AND REMOTE INVOCATION Basic Communication Primitives (Client) doOperation()

.. (wait) .. .. Continue Request Message (Server) getRequest() Reply Message Select

Object/Procedure Execute Methods Send Reply 14 DISTRIBUTED OBJECTS AND REMOTE INVOCATION External Data Representation & Marshalling Information stored in running program is represented as data structure In the form of communication, data structure is converted to sequence of bytes, it may be data values of many types

While exchanging data: The data structure is converted to an agreed external format (eg ASCII, BASE64) before transmission and converted to local on receipt DISTRIBUTED OBJECTS AND REMOTE INVOCATION External Data Representation & Marshalling An agreed standard for the representation of data structure and primitive values is called an external data representation Marshalling: Is the process of taking a collection of data items & assembling them into a form suitable

for transmission Un-marshalling: Is the process of disassembling them on arrival to produce an equivalent collection of data items at destination DISTRIBUTED OBJECTS AND REMOTE INVOCATION Remote Method Invocation (RMI) Click to PDF 17 DISTRIBUTED OBJECTS AND REMOTE INVOCATION

Java RMI Java RMI extends the Java object model to provide support for distributed objects in the Java language. It allows object to invoke methods on remote objects using the same syntax as for local invocation. It is a single language system remote interfaces are defined in the Java language. 18 DISTRIBUTED OBJECTS AND REMOTE INVOCATION

Java RMI An object making a remote invocation needs to be able to handle RemoteExceptions that are thrown in the event of communication subsystem failures A remote object must implement Remote interface. The next example is a simple Hello world program that is implemented in Java RMI 19 DISTRIBUTED OBJECTS AND REMOTE INVOCATION Java RMI- Example 1 This example is from java.sun.com for more

explanation see the site: http://java.sun.com/j2se/1.5.0/docs/guide/rmi/hello/hello-world.html#1 In this example we do the followings: Define the remote interface Implement the server Implement the client Compile the source files Start the Java RMI registry, server, and client 20 DISTRIBUTED OBJECTS AND REMOTE INVOCATION Java RMI

Hello.java - a remote interface import java.rmi.Remote; import java.rmi.RemoteException; public interface Hello extends Remote { String sayHello() throws RemoteException; } 21 DISTRIBUTED OBJECTS AND REMOTE INVOCATION Java RMI // Implement the server import java.rmi.registry.LocateRegistry; import java.rmi.RemoteException;

import java.rmi.server.UnicastRemoteObject; public class Server implements Hello { public Server() {} public String sayHello() { return "Hello, world!"; } 22 DISTRIBUTED OBJECTS AND REMOTE INVOCATION Java RMI public static void main(String args[]) { try { Server obj = new Server(); Hello stub = (Hello) UnicastRemoteObject.exportObject(obj, 0);

// Bind the remote object's stub in the registry Registry registry = LocateRegistry.getRegistry(); registry.bind("Hello", stub); System.err.println("Server ready"); } catch (Exception e) { System.err.println("Server exception: " + e.toString()); e.printStackTrace(); } } } 23 DISTRIBUTED OBJECTS AND REMOTE INVOCATION Java RMI

// Implement the client import java.rmi.registry.LocateRegistry; import java.rmi.registry.Registry; public class Client { private Client() {} 24 DISTRIBUTED OBJECTS AND REMOTE INVOCATION Java RMI public static void main(String args[]) { String host = (args.length < 1) ? null : args[0]; try { Registry registry = LocateRegistry.getRegistry(host);

Hello stub = (Hello) registry.lookup("Hello"); String response = stub.sayHello(); System.out.println("response: " + response); } catch (Exception e) { System.err.println("Client exception: " + e.toString()); e.printStackTrace(); } } } 25 DISTRIBUTED OBJECTS AND REMOTE INVOCATION Java RMI

The source files for this example can be compiled as follows: javac Hello.java Server.java Client.java Start the Java RMI registry : rmiregistry Start the Server: java Server Start the Client: java Client 26 DISTRIBUTED OBJECTS AND REMOTE INVOCATION Java RMI RMIregistry The RMIregistry is the binder for Java RMI. The RMIregistry runs on every server that

hosts remote objects. It maps local object names of the form //computerName:port/objName to object references. Clients need to query a particular host to get reference. 27 DISTRIBUTED OBJECTS AND REMOTE INVOCATION Java RMI shows the inheritance structure of the classes supporting Java RMI servers.

Figure 9 Figure 9. Classes supporting Java RMI 28 DISTRIBUTED OBJECTS AND REMOTE INVOCATION Run RMI on Eclipse http://www.ejbtutorial.com/java-rmi/a-step-bystep-implementation-tutorial-for-java-rmi JAVA RMI Implementation Tutorial steps http://www.ejbtutorial.com/java-rmi/a-step-bystep-implementation-tutorial-for-java-rmi http://www.genady.net/rmi/v20/docs/tutorials/ print_server.html

Practice yourself from this link using java eclipse 29 DISTRIBUTED OBJECTS AND REMOTE INVOCATION Remote Procedure Call (RPC) A remote procedure call (RPC) is similar to a remote method invocation (RMI). A client program calls a procedure in another program running in a server process. RPC is generally implemented over a requestreply protocol. The software that support RPC is shown in Figure 3. 30

DISTRIBUTED OBJECTS AND REMOTE INVOCATION Remote Procedure Call (RPC) Figure 3. Role of client and server stub procedures in RPC in the context of a procedural language 31 DISTRIBUTED OBJECTS AND REMOTE INVOCATION Remote Procedure Call (RPC) RPC only addresses procedure calls. RPC is not concerned with objects and object references.

A client that accesses a server includes one stub procedure for each procedure in the service interface. A client stub procedure is similar to a proxy method of RMI. A server stub procedure is similar to a skeleton method of RMI. 32 DISTRIBUTED OBJECTS AND REMOTE INVOCATION RPC Execution Server Routine Client Routine

1 5 10 Server Stub Client Stub 2 Network Routines 6

9 4 3 8 Network Routines 7 DISTRIBUTED OBJECTS AND REMOTE INVOCATION RPC execution

1. The client calls local procedures (client Stub), the stub packages the arguments for the remote procedure and create more network messages (marshalling) 2. The client stub send MSG to the remote system via system call at the local kernel 3. The connection oriented/less protocol transfers the MSG to the remote system (RR Protocol). 4. The server stub procedure unmarshals the arguments of MSG and converts them 34 DISTRIBUTED OBJECTS AND REMOTE INVOCATION RPC execution

5. Server Stub executes a local procedure call to invoke actual server function passing it the argument that it received from the argument client stub. 6. When server procedure is executed, it sends return values to server stub. 7. The server stub converts the return values, marshal them into one or more MSG and send them back to client 8. Messages are sent back to client stub 9. Client stub reads the network MSG from local kernel. 10. Client stub returns to another function call 35

Recently Viewed Presentations

  • 1 chronicles 1:1  13:14 A CD of this

    1 chronicles 1:1 13:14 A CD of this

    1 chronicles 1:1 - 13:14. A CD of this message will be available (free of charge immediately following today's message. This message will be available via podcast later this week at calvaryokc.com
  • Dan Frost - AESA

    Dan Frost - AESA

    Eva Marie Stahl ([email protected]) Associate Director of Policy. ... In addition, ESSA also includes the Full-Service Community Schools competitive grant program to help schools plan, implement and operate community schools. Another approach to aligning school and community is using ...
  • CBM for E-questionnaires Revealing the myths

    CBM for E-questionnaires Revealing the myths

    Temporary for 2006-reporting. Permanent for 2007-reporting. ... Worked well here, only colours - no additional symbols. Column 3 - questions. Button for "Forward" at bottom of column 1 - not intuitive. TPs thought it meant send in to SSB. Change...
  • COMBAT SPORTS Pale (Wrestling) 708 B.C. Pyx (Boxing)

    COMBAT SPORTS Pale (Wrestling) 708 B.C. Pyx (Boxing)

    korykos = punching bag Euthymos of Lokris Euthymus of Locris, three times winner in the boxing event in Olympia. Statue based inscription (to be admired by mortals) and "produced by Pythagoras of Samos" (not the mathematician). See Arete 166a and...
  • Advanced manufacturing Lab, Industrial Enginnering Dep ...

    Advanced manufacturing Lab, Industrial Enginnering Dep ...

    As we are using SSADM as our example structured method, we'll look at the. logical data structure (LDS), which is the name given to the entity model in. SSADM. LDSs are simpler than DFDs in that they have only two...
  • Mozambique Floods 2000 - vle.wildern.hants.sch.uk

    Mozambique Floods 2000 - vle.wildern.hants.sch.uk

    Mozambique Floods 2000 Case study to highlight the physical and human causes of the flood and how the risk and effects of flooding are managed in an LEDC.
  • Differences-in-Differences and A (Very) Brief Introduction to ...

    Differences-in-Differences and A (Very) Brief Introduction to ...

    Univariate Time series - 2 Methods of Economic Investigation Lecture 19 Last Time Concepts that are useful Stationarity Ergodicity Ergodic Theorem Autocovariance Generating Function Lag Operators Time Series Processes AR(p) MA(q) Today's Class Building up to estimation Wold Decomposition Estimating...
  • Literary Terms - Moore Public Schools

    Literary Terms - Moore Public Schools

    The perspective from which a narrative is told. 1st person: told from the perspective of a character in the story using pronouns such as I or me. The audience is limited to the viewpoint of that character. ... The time...