RPC and RMI. 2501ICT Nathan
|
|
- Kerry Hudson
- 6 years ago
- Views:
Transcription
1 RPC and RMI 2501ICT Nathan
2 Contents Client/Server revisited RPC Architecture XDR RMI Principles and Operation Case Studies Copyright René Hexel. 2
3 Client/Server Revisited Server Accepts commands over Network connections Executes code according to commands No direct control over this code Client Communicates with server Sends commands Awaits results Copyright René Hexel. 3
4 Remote Methods/Procedures Extension to the Client/Server concept Client-Programmable Interface Similar to Function/Method calls Method Invocations over Network RPC / RMI Remote Procedure Calls Remote Method Invocations Implementation: Middleware Copyright René Hexel. 4
5 Middleware Programming Model above Basic Networking Layer Applications RPC / RMI Request/Reply Protocol External Data Represent. Operating System Copyright René Hexel. 5
6 Interfaces Modules run as separate Tasks Similar to Process/Thread Model Data exchange via Messages Carry Parameters and Return Values Integration Direct Objective-C Distributed Objects, RMI for C++ Interface Definition Languages (IDLs) Copyright René Hexel. 6
7 Interface Definition Languages Uniform Interface Across Programming Languages CORBA CORBA IDL Java Java RMI Sun XDR IDL for RPC Copyright René Hexel. 7
8 RPC Originally designed for NFS Networking File System Extension Function Call Interface Clients can call Procedures across Network Connections Service Interface Provides Function and Data Prototypes Request/Response Protocol Copyright René Hexel. 8
9 RPC Architecture client process server process Request client program client stub procedure Communication module Reply server stub procedure Communication module dispatcher service procedure Copyright René Hexel. 9
10 Stub Procedures Proxy between local and remote procedures Server Skeletons that receive calls from dispatcher and pass them on to the Server Application Client Stubs that can be called using local (statically compiled) code Copyright René Hexel. 10
11 Sun XDR Example const MAXLEN = 80; typedef Person { char name[maxlen]; char address[maxlen]; int year_of_birth; }; program PERSONLIST { version VERSION { void ADDPERSON(Person)=1; int GETYEAROFBIRTH(Person)=2; }=2; }=9999; Copyright René Hexel. 11
12 XDR Properties No Symbolic Interface Names Program, Version, and Procedure Numbers Only Single Input Parameter Compound Structure to encapsulate multiple parameters! Binding via Portmapper Globally register RPCs Unique signatures required! Copyright René Hexel. 12
13 Distributed Objects Extension of the local OO Model Design Issues Suitable Semantics for Remote Invocations? How can RMI semantics be made similar to local method call semantics? Let s Compare Local Object Model vs. Distributed Object Model Copyright René Hexel. 13
14 Local Object Access Access via Object References Target: Object whose Method is invoked Interfaces Signatures of a Set of Methods Does not specify actual Implementation Actions and Exceptions Normal and abnormal Method terminations Garbage Collection Freeing unused Space Copyright René Hexel. 14
15 Distributed Object Access Remote Object References Provide Access to Remote Objects Remote Interfaces Set of Methods to be invoked Actions and Exceptions Synchronous or Asynchronous termination Copyright René Hexel. 15
16 RMI Architecture Objects distributed over Network Location is transparent Client/Server applications represented by objects Peer-to-Peer architecture Roles of Client or Server only specific for a particular method call Copyright René Hexel. 16
17 Remote Method Illustration A remote invocation B local C invocation local E invocation local remote invocation F invocation D Copyright René Hexel. 17
18 Remote Object Interface remote object Data remote interface { m1 Impl. m2 m3 of methods m4 m5 m6 Copyright René Hexel. 18
19 Distributed Objects API Language Specific Framework for Distributed Objects Applications must Locate remote Objects Communicate with remote Objects Invoke remote methods Handle remote exceptions Copyright René Hexel. 19
20 Distributed Objects API Messages Transport Parameters and Results Interface Specifies Services provided by an Object Describes Messages an Object can Respond to Instance Variables Only accessed and changed through invoking Methods Requirement for Access Methods! Copyright René Hexel. 20
21 Object Proxy Local Proxy for Remote Objects Local object that represents an instance of a remote object Transparent integration into Programs Methods are invoked on the proxy pretending the server object is a local object NSDistantObject class Copyright René Hexel. 21
22 RMI Process RMI In a Nutshell Server makes available its remote objects Client invokes methods on a local proxy Request is marshalled and sent onto server Request is unmarshalled on server Remote object executes method for the request and returns result to client Transparent to Program Copyright René Hexel. 22
23 RMI Schematic object A client proxy for B Request server skeleton & dispatcher for B s class remote object B Reply Remote Communication Communication Remote reference reference module module module module Copyright René Hexel. 23
24 RMI Transport Layer Uses TCP (UDP also possible) Transport Layer Functions Locate RMI server Establish socket connection to server Pass connection back to client Remote Reference Layer Add remote object to a table of reachable objects Monitor connection status Copyright René Hexel. 24
25 Parameter Marshalling Encoding Parameters Required for Network Transport Remote Interface Parameter Call By Reference: byref qualifier Call By Copy: bycopy qualifier Efficiency in: parameter is only sent to the server out: parameter is returned from the server inout: parameter is sent in both directions Copyright René Hexel. 25
26 Registration/Naming Service Allows Finding a Server by Name Intermediary between Object Client and Server NSConnection class Server Side Registration [NSConnection registername: myname]; Client Side Access [NSConnection rootproxyforconnectionwithregisteredname: myname host: * ]; Copyright René Hexel. 26
27 Distributed Object Server NSConnection *c = [NSConnection defaultconnection]; [c setrootobject: myobject]; if ([c Name] == NO) { /* Handle the error */ } Copyright René Hexel. 27
28 Distributed Object Client id proxy = [NSConnection Name * ]; if (proxy == nil) { /* Handle the error */ } [proxy somemethod]; // invokes method on server Copyright René Hexel. 28
29 Asynchronous Calls Client won t wait for Server for methods defined as oneway void More flexible Server operates independently of client Useful to support collaborative functionality e.g. chat programs, BBS s, etc. What if return value is needed? Explicit synchronisation required Callbacks Copyright René Hexel. 29
30 Callbacks Allow Server to call Client method Client acts as an RMI server Implicitly: registering an object name Explicitly: object references (byref parameters) Peer-to-Peer Relationship No dedicated clients and servers Each peer is both a client and a server Copyright René Hexel. 30
31 CORBA Common Object Request Broker Architecture Machine and Language-Independent Distributed OO Architecture Supports RMI CORBA IDL Compiled for different programming languages Copyright René Hexel. 31
32 CORBA IDL Example struct Person { string name; string address; long year_of_birth; }; interface PersonList { readonly attribute string listname; void addperson(in Person p); void getperson(in string name, out Person p); long getyearofbirth(); } Copyright René Hexel. 32
33 The CORBA Architecture ORBs Object Request Brokers Help a Client to invoke a method on an object GIOP Locate/activate object, communicate client s request General Inter-Orb Protocol Standardised communication Protocol IIOP IP Implementation of GIOP Copyright René Hexel. 33
34 CORBA RMI Multi-Language RMI System More Versatile Object Model Client s don t need to be objects CORBA Naming Service Allows services to register (bind) objects Pseudo-Objects init, connect, conversion objects Copyright René Hexel. 34
35 CORBA Components client implementation repository interface repository object adapter server skeleton client program proxy for A ORB core Request Reply ORB core Servant A or dynamic invocation or dynamic skeleton Copyright René Hexel. 35
36 CORBA Language Support CORBA is cross-platform No native implementation Language bindings through toolkits Toolkit examples AdORB: CORBA API for Objective-C ORBit: CORBA API for C ORBit C++: CORBA API for C++ Copyright René Hexel. 36
37 References Objective-C Distributed Objects ogrammingmanual/manual_7.html istrobjects/index.html ORBit Tutorial: ORBit C++: C++ RMI Copyright René Hexel. 37
38 Appendix Java RMI
39 Java RMI Java-Specific Framework for Distributed Objects Applications must Locate remote Objects Communicate with remote Objects Provide Mechanisms for loading/passing Bytecode of an Object Copyright René Hexel. 39
40 Generating Proxies Involves rmic Java RMI Compiler Procedure for generating proxies Interface and implementation Compiled normally, using javac Generate stubs Use rmic on implementation class file, e.g. rmic myremoteclassimpl will generate myremoteclassimpl_stub.class myremoteclassimp_skel.class Copyright René Hexel. 40
41 Java RMI Programming The RMI Development Steps are: Identify remote objects and their interfaces Provide implementation for distributed objects Compile sources Use rmic to create stubs Start a registry Web server with access to the server classes Start the applications Copyright René Hexel. 41
42 Java Remote Interfaces Remote Objects Any non-private object accepting method calls Needs interface defining their exported behaviour Defining Remote Interfaces Extends java.rmi.remote Each method throws java.rmi.remoteexception Copyright René Hexel. 42
43 Java Remote Interface Example import java.rmi.remote; import java.rmi.remoteexception; public interface MyRemote extends Remote { public Object getxxxx() throws RemoteException; } Copyright René Hexel. 43
44 Java RMI Clients Are just like any other Java Programs! Can have access to a running Server Using Naming e.g. testserver = (xmplserver) Naming.lookup( rmi://somehost/xmplserver ); Copyright René Hexel. 44
45 Java RMI and Threading Server Processes Threads are generated and controlled automatically Multiple Threads for multiple connections Client Processes Threads are created upon service requests Synchronisation Not handled automatically! Copyright René Hexel. 45
46 Synchronising RMI Threads Critical Regions are Global Server Methods Global Server Data Need to be protected To avoid inconsistencies To prevent race conditions Use Synchronisations constructs Semaphores, synchronized, Copyright René Hexel. 46
47 Java RMI Programming The RMI Development Steps are: Identify remote objects and their interfaces Provide implementation for distributed objects Compile sources Use rmic to create stubs Start a registry Web server with access to the server classes Start the applications Copyright René Hexel. 47
48 Java Remote Interfaces Remote Objects Any non-private object accepting method calls Needs interface defining their exported behaviour Defining Remote Interfaces Extends java.rmi.remote Each method throws java.rmi.remoteexception Copyright René Hexel. 48
49 Implementing Java Remote Interfaces Classes need to Declare the remote interface they implement Provide a constructor Provide implementations for all remote methods in the interface Remote Object Implementations Usually export themselves to RMI Optionally register with the naming service Copyright René Hexel. 49
50 Remote Object Activation Problems Addressed by ROA: What happens if remote object crashes? Need to be restarted from scratch! All instance data lost Remote objects are resource intensive! But usually only needed on occasion Only activate as needed Lazy Activation Addresses these efficiency issues Copyright René Hexel. 50
51 Java Lazy Activation New API in Java 2 Create remote objects that instantiate only when needed (conserve resources) No need for manual start: Extend java.rmi.activation.activatable: public myclass(activationid id, MarshalledObject data) throws RemoteException Register actionable object w/ activation daemon Start the RMI activation daemon rmid Copyright René Hexel. 51
52 Java Activatable Objects Requirements An activation ID class variable ActivationID id; A Serializable data variable of any type, e.g. Date mymarshalledobject; rmid can re-instantiate an object by its ID Client cannot call default constructor Has no idea about activation ID or marshalled object Create another constructor for client Copyright René Hexel. 52
53 Java Object Activation Server Codebase URL: String codebase = ; Create activation group descriptor for server: ActivationGroupDesc lag = new ActivationGroupDescriptor(null, null); Register activation group: ActivationGroupID lagid = ActivationGroup.getSystem().registerGroup(lAg); Copyright René Hexel. 53
54 Java Object Activation Server (2) Create actual activation group: ActivationGroup.createGroup(lAgID, lag, 0); Create MarshalledObject used to initialise the server object: Date linitobject = new Date(); MarshalledObject lmo = new MarshalledObject(lInitObject); Copyright René Hexel. 54
55 Java Object Activation Server (3) Construct Activation Descriptor ActivationDesc lad = new ActivationDesc(lAgID, ExampleDateServ, codebase, lmo); Register with activation daemon: ExampleDateServ ldateserver = (ExampleDateServ)Activatable.register(lAD); Bind instance to a name: Naming.rebind( DateServer, ldateserver); Copyright René Hexel. 55
56 Java Object Activation Setup Compile javac *.java Generate Stubs and Skeletons rmic ExampleDateServ Start RMI registry and Daemon rmiregistry rmid Copyright René Hexel. 56
57 Running Java Server and Client Start Server Application java -Djava.security.policy=all.policy ExampleDateServ Start Client Application java -Djava.security.policy=all.policy ExampleDateClient Start Client Applet appletviewer Test.html Copyright René Hexel. 57
58 CORBA in Java RMI-IIOP Access Java RMI interfaces via CORBA Use -iiop option on rmic Java to IDL Use -idl option on rmic IDL to Java idlj compiler Copyright René Hexel. 58
Distributed Objects and Remote Invocation. Programming Models for Distributed Applications
Distributed Objects and Remote Invocation Programming Models for Distributed Applications Extending Conventional Techniques The remote procedure call model is an extension of the conventional procedure
More informationRPC flow. 4.3 Remote procedure calls IDL. RPC components. Procedure. Program. sum (j,k) int j,k; {return j+k;} i = sum (3,7); Local procedure call
4.3 Remote procedure calls RPC flow Client process Server process Program i = sum (3,7); Procedure sum (j,k) int j,k; {return j+k; Client stub Program Return Call Unpack Pack result para s Invisible to
More informationChapter 5: Distributed objects and remote invocation
Chapter 5: Distributed objects and remote invocation From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 4, Addison-Wesley 2005 Figure 5.1 Middleware layers Applications
More informationJAVA RMI. Remote Method Invocation
1 JAVA RMI Remote Method Invocation 2 Overview Java RMI is a mechanism that allows one to invoke a method on an object that exists in another address space. The other address space could be: On the same
More informationChapter 15: Distributed Communication. Sockets Remote Procedure Calls (RPCs) Remote Method Invocation (RMI) CORBA Object Registration
Chapter 15: Distributed Communication Sockets Remote Procedure Calls (RPCs) Remote Method Invocation (RMI) CORBA Object Registration Sockets Defined as an endpoint for communcation Concatenation of IP
More informationContents. Java RMI. Java RMI. Java RMI system elements. Example application processes/machines Client machine Process/Application A
Contents Java RMI G53ACC Chris Greenhalgh Java RMI overview A Java RMI example Overview Walk-through Implementation notes Argument passing File requirements RPC issues and RMI Other problems with RMI 1
More informationObject Interaction. Object Interaction. Introduction. Object Interaction vs. RPCs (2)
Introduction Objective To support interoperability and portability of distributed OO applications by provision of enabling technology Object interaction vs RPC Java Remote Method Invocation (RMI) RMI Registry
More informationLecture 5: Object Interaction: RMI and RPC
06-06798 Distributed Systems Lecture 5: Object Interaction: RMI and RPC Distributed Systems 1 Recap Message passing: send, receive synchronous versus asynchronous No global Time types of failure socket
More informationDistributed Systems. 5. Remote Method Invocation
Distributed Systems 5. Remote Method Invocation Werner Nutt 1 Remote Method Invocation 5.1 Communication between Distributed Objects 1. Communication between Distributed Objects 2. RMI 2 Middleware Middleware
More informationOutline. EEC-681/781 Distributed Computing Systems. The OSI Network Architecture. Inter-Process Communications (IPC) Lecture 4
EEC-681/781 Distributed Computing Systems Lecture 4 Department of Electrical and Computer Engineering Cleveland State University wenbing@ieee.org Outline Inter-process communications Computer networks
More informationThe UNIVERSITY of EDINBURGH. SCHOOL of INFORMATICS. CS4/MSc. Distributed Systems. Björn Franke. Room 2414
The UNIVERSITY of EDINBURGH SCHOOL of INFORMATICS CS4/MSc Distributed Systems Björn Franke bfranke@inf.ed.ac.uk Room 2414 (Lecture 3: Remote Invocation and Distributed Objects, 28th September 2006) 1 Programming
More informationDISTRIBUTED OBJECTS AND REMOTE INVOCATION
DISTRIBUTED OBJECTS AND REMOTE INVOCATION Introduction This chapter is concerned with programming models for distributed applications... Familiar programming models have been extended to apply to distributed
More informationAgent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Distributed and Agent Systems RMI
Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Distributed and Agent Systems RMI Prof. Agostino Poggi What is RMI? Its acronym means Remote
More informationRMI: Design & Implementation
RMI: Design & Implementation Operating Systems RMI 1 Middleware layers Applications, services RMI and RPC request-reply protocol marshalling and external data representation Middleware layers UDP and TCP
More informationCHAPTER - 4 REMOTE COMMUNICATION
CHAPTER - 4 REMOTE COMMUNICATION Topics Introduction to Remote Communication Remote Procedural Call Basics RPC Implementation RPC Communication Other RPC Issues Case Study: Sun RPC Remote invocation Basics
More informationChapter 5: Remote Invocation. Copyright 2015 Prof. Amr El-Kadi
Chapter 5: Remote Invocation Outline Introduction Request-Reply Protocol Remote Procedure Call Remote Method Invocation This chapter (and Chapter 6) Applications Remote invocation, indirect communication
More informationRemote Invocation Vladimir Vlassov and Johan Montelius
KTH ROYAL INSTITUTE OF TECHNOLOGY Middleware Remote Invocation Vladimir Vlassov and Johan Montelius Application layer Remote invocation / indirect communication Socket layer Network layer ID2201 DISTRIBUTED
More informationDistributed Systems. Distributed Object Systems 2 Java RMI. Java RMI. Example. Applet continued. Applet. slides2.pdf Sep 9,
Distributed Object Systems 2 Java RMI Piet van Oostrum Distributed Systems What should a distributed system provide? Illusion of one system while running on multiple systems Transparancy Issues Communication,
More informationApplications. RMI, RPC and events. Request reply protocol External data representation. Operating System
Figure 5.1 Middleware layer Applications RMI, RPC and events Request reply protocol External data representation Middleware layers Operating System Instructor s Guide for Coulouris, Dollimore and Kindberg
More informationDistributed Information Systems
Distributed Objects and Remote Invocation Programming Models For Distributed Applications Objectives RPC and RMI. Remote invocation semantics. Implementation of RMI. References DSCD: Chapter 5 Conventional
More information03 Remote invocation. Request-reply RPC. Coulouris 5 Birrel_Nelson_84.pdf RMI
03 Remote invocation Request-reply RPC Coulouris 5 Birrel_Nelson_84.pdf RMI 2/16 Remote Procedure Call Implementation client process Request server process client program client stub procedure Communication
More informationModulo II Socket, RMI e Corba
Modulo II Socket, RMI e Corba Prof. Ismael H F Santos April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Sistemas Distribuídos Cliente-Servidor April 05 Prof. Ismael H. F. Santos -
More informationVerteilte Systeme (Distributed Systems)
Verteilte Systeme (Distributed Systems) Karl M. Göschka Karl.Goeschka@tuwien.ac.at http://www.infosys.tuwien.ac.at/teaching/courses/ VerteilteSysteme/ Lecture 3: Communication (Part 2) Remote Procedure
More informationDesarrollo de Aplicaciones en Red RMI. Introduction. Considerations. Considerations. RMI architecture
session Desarrollo de Aplicaciones en Red José Rafael Rojano Cáceres http://www.uv.mx/rrojano RMI Remote Method Invocation Introduction Java RMI let s work calling remote methods. Underneath it works with
More informationRemote Objects and RMI
Outline Remote Objects and RMI Instructor: Dr. Tongping Liu Distributed/Remote Objects Remote object reference (ROR) Remote Method Invocation (RMI) Case study and example: Java RMI Other issues for objects
More informationCORBA (Common Object Request Broker Architecture)
CORBA (Common Object Request Broker Architecture) René de Vries (rgv@cs.ru.nl) Based on slides by M.L. Liu 1 Overview Introduction / context Genealogical of CORBA CORBA architecture Implementations Corba
More information5.4. Events and notifications
5.4. Events and notifications Distributed event-based systems extend local event model Allowing multiple objects at diff. locations to be notified of events taking place at an object Two characteristics:
More informationDS 2009: middleware. David Evans
DS 2009: middleware David Evans de239@cl.cam.ac.uk What is middleware? distributed applications middleware remote calls, method invocations, messages,... OS comms. interface sockets, IP,... layer between
More informationIBD Intergiciels et Bases de Données
IBD Intergiciels et Bases de Données RMI-based distributed systems Fabien Gaud, Fabien.Gaud@inrialpes.fr Overview of lectures and practical work Lectures Introduction to distributed systems and middleware
More informationLast Class: RPCs. Today:
Last Class: RPCs RPCs make distributed computations look like local computations Issues: Parameter passing Binding Failure handling Lecture 4, page 1 Today: Case Study: Sun RPC Lightweight RPCs Remote
More informationMessage Passing vs. Distributed Objects. 5/15/2009 Distributed Computing, M. L. Liu 1
Message Passing vs. Distributed Objects 5/15/2009 Distributed Computing, M. L. Liu 1 Distributed Objects M. L. Liu 5/15/2009 Distributed Computing, M. L. Liu 2 Message Passing versus Distributed Objects
More information5 Distributed Objects: The Java Approach
5 Distributed Objects: The Java Approach Main Points Why distributed objects Distributed Object design points Java RMI Dynamic Code Loading 5.1 What s an Object? An Object is an autonomous entity having
More informationChapter 5 Distributed Objects and Remote Invocation
CSD511 Distributed Systems 分散式系統 Chapter 5 Distributed Objects and Remote Invocation 吳俊興 國立高雄大學資訊工程學系 Chapter 5 Distributed Objects and Remote Invocation 5.1 Introduction 5.2 Communication between distributed
More informationGrid Computing. Java Remote Method Invocation (RMI) RMI Application. Grid Computing Fall 2006 Paul A. Farrell 9/5/2006
Grid Computing Paradigms for Distributed Computing 2 RMI Fall 2006 Traditional paradigms for distributed computing The Grid: Core Technologies Maozhen Li, Mark Baker John Wiley & Sons; 2005, ISBN 0-470-09417-6
More informationLecture 5: RMI etc. Servant. Java Remote Method Invocation Invocation Semantics Distributed Events CDK: Chapter 5 TVS: Section 8.3
Lecture 5: RMI etc. Java Remote Method Invocation Invocation Semantics Distributed Events CDK: Chapter 5 TVS: Section 8.3 CDK Figure 5.7 The role of proxy and skeleton in remote method invocation client
More informationCS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University
CS 555: DISTRIBUTED SYSTEMS [RMI] Frequently asked questions from the previous class survey Shrideep Pallickara Computer Science Colorado State University L21.1 L21.2 Topics covered in this lecture RMI
More informationDistributed Systems. 6. Remote Method Invocation. Werner Nutt
Distributed Systems 6. Remote Method Invocation Werner Nutt 1 Remote Method Invocation 6.1 Communication between Distributed Objects 1. Communication between Distributed Objects 2. Java RMI 3. Dynamic
More informationCS 5523 Operating Systems: Remote Objects and RMI
CS 5523 Operating Systems: Remote Objects and RMI Instructor: Dr. Tongping Liu Thank Dr. Dakai Zhu and Dr. Palden Lama for providing their slides. Outline Distributed/Remote Objects Remote object reference
More informationLecture 06: Distributed Object
Lecture 06: Distributed Object Distributed Systems Behzad Bordbar School of Computer Science, University of Birmingham, UK Lecture 0? 1 Recap Interprocess communication Synchronous and Asynchronous communication
More informationActivation of remote objects
Activation of remote objects The Activatable class Prior to the release of Java 2 SDK, an instance of a UnicastRemoteObject could be accessed from a server program that created an instance of the remote
More informationDistributed Objects SPL/ SPL 201 / 0 1
Distributed Objects 1 distributed objects objects which reside on different machines/ network architectures, benefits, drawbacks implementation of a remote object system 2 Why go distributed? large systems
More informationDistributed Environments. CORBA, JavaRMI and DCOM
Distributed Environments CORBA, JavaRMI and DCOM Introduction to CORBA Distributed objects A mechanism allowing programs to invoke methods on remote objects Common Object Request Broker middleware - works
More informationObject-based distributed systems. INF 5040/9040 autumn Lecturer: Frank Eliassen
Object-based distributed systems INF 5040/9040 autumn 2010 Lecturer: Frank Eliassen Frank Eliassen, SRL & Ifi/UiO 1 Plan Request-response protocols Characteristics of distributed objects Communication
More informationRemote Method Invocation
Remote Method Invocation A true distributed computing application interface for Java, written to provide easy access to objects existing on remote virtual machines Provide access to objects existing on
More informationToday: Distributed Objects. Distributed Objects
Today: Distributed Objects Case study: EJBs (Enterprise Java Beans) Case study: CORBA Lecture 23, page 1 Distributed Objects Figure 10-1. Common organization of a remote object with client-side proxy.
More informationActivation of remote objects
Activation of remote objects The Activatable class Prior to the release of Java 2 SDK, an instance of a UnicastRemoteObject could be accessed from a server program that created an instance of the remote
More informationDistributed Programming in Java. Distribution (2)
Distributed Programming in Java Distribution (2) Remote Method Invocation Remote Method Invocation (RMI) Primary design goal for RMI is transparency Should be able to invoke remote objects with same syntax
More informationJava RMI Activation: A running example We have the following classes: MyRemoteInterface: the remote interface. Client: the client that invokes a
Java RMI Activation: A running example We have the following classes: MyRemoteInterface: the remote interface. Client: the client that invokes a method on the remote object. ActivableImplementation: the
More informationRMI. (Remote Method Invocation)
RMI (Remote Method Invocation) Topics What is RMI? Why RMI? Architectural components Serialization & Marshaled Objects Dynamic class loading Code movement Codebase ClassLoader delegation RMI Security Writing
More informationDistributed Programming with RMI. Overview CORBA DCOM. Prepared By: Shiba R. Tamrakar
Distributed Programming with RMI Overview Distributed object computing extends an object-oriented programming system by allowing objects to be distributed across a heterogeneous network, so that each of
More informationCSci Introduction to Distributed Systems. Communication: RPC In Practice
CSci 5105 Introduction to Distributed Systems Communication: RPC In Practice Linux RPC Language-neutral RPC Can use Fortran, C, C++ IDL compiler rpgen N to generate all stubs, skeletons (server stub) Example:
More informationIntroduction & RMI Basics. CS3524 Distributed Systems Lecture 01
Introduction & RMI Basics CS3524 Distributed Systems Lecture 01 Distributed Information Systems Distributed System: A collection of autonomous computers linked by a network, with software to produce an
More informationMTAT Enterprise System Integration. Lecture 2: Middleware & Web Services
MTAT.03.229 Enterprise System Integration Lecture 2: Middleware & Web Services Luciano García-Bañuelos Slides by Prof. M. Dumas Overall view 2 Enterprise Java 2 Entity classes (Data layer) 3 Enterprise
More informationDistributed Computing
Distributed Computing Computing on many systems to solve one problem Why? - Combination of cheap processors often more cost-effective than one expensive fast system - Flexibility to add according to needs
More informationWritten by: Dave Matuszek
RMI Remote Method Invocation Written by: Dave Matuszek appeared originally at: http://www.cis.upenn.edu/~matuszek/cit597-2003/ 28-May-07 The network is the computer * Consider the following program organization:
More informationRemote Procedure Call
Remote Procedure Call Suited for Client-Server structure. Combines aspects of monitors and synchronous message passing: Module (remote object) exports operations, invoked with call. call blocks (delays
More informationDistributed Software Systems
RMI Programming Distributed Software Systems RMI Programming RMI software Generated by IDL compiler Proxy Behaves like remote object to clients (invoker) Marshals arguments, forwards message to remote
More informationDistributed Systems Lecture 2 1. External Data Representation and Marshalling (Sec. 4.3) Request reply protocol (failure modes) (Sec. 4.
Distributed Systems Lecture 2 1 Today s Topics External Data Representation and Marshalling (Sec. 4.3) Request reply protocol (failure modes) (Sec. 4.4) Distributed Objects and Remote Invocations (5.1)
More informationLecture VI: Distributed Objects. Remote Method Invocation
Lecture VI: Distributed Objects. Remote Method Invocation CMPT 401 Summer 2007 Dr. Alexandra Fedorova Remote Method Invocation In an object-oriented language (usually Java) A way to call a method on an
More informationAgent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Distributed and Agent Systems
Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Distributed and Agent Systems Prof. Agostino Poggi What is CORBA? CORBA (Common Object Request
More informationNetwork Computing (EE906) Part 4: Distributed Object Technology
Network Computing (EE906) Part 4: Distributed Object Technology EE906-DOT Objectives Learn and Understand about Basic principles of socket and its programming Java RMI and its programming CORBA architecture
More informationGeneric architecture
Java-RMI Lab Outline Let first builds a simple home-made framework This is useful to understand the main issues We see later how java-rmi works and how it solves the same issues Generic architecture object
More informationJAVA RMI Java, summer semester
JAVA RMI Overview Remote Method Invocation usage of remote object objects in a different VM (on the same computer or over the network) as there would be local objects (almost) calls just take longer time
More informationJava and Distributed Systems
Java and Distributed Systems Dr. Stephan Fischer GMD-IPSI Dolivostr. 15 D-64293 Darmstadt sfischer@darmstadt.gmd.de Contents Remote Method Invocation Java and CORBA Jini Discussion Java RMI (1) RMI applications:
More informationRMI. Remote Method Invocation. 16-Dec-16
RMI Remote Method Invocation 16-Dec-16 The network is the computer Consider the following program organization: method SomeClass call AnotherClass returned object computer 1 computer 2 If the network is
More informationCS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University
CS 555: DISTRIBUTED SYSTEMS [RPC & DISTRIBUTED OBJECTS] Shrideep Pallickara Computer Science Colorado State University Frequently asked questions from the previous class survey XDR Standard serialization
More informationCommunication. Distributed Systems Santa Clara University 2016
Communication Distributed Systems Santa Clara University 2016 Protocol Stack Each layer has its own protocol Can make changes at one layer without changing layers above or below Use well defined interfaces
More informationCommunication. Communication. Distributed Systems. Networks and protocols Sockets Remote Invocation Messages Streams. Fall /10/2001 DoCS
Communication Distributed Systems Fall 2002 Communication Process Process Networks and protocols Sockets Remote Invocation Messages Streams 9/10/2001 DoCS 2002 2 Layered Protocols (1) Layers, interfaces,
More informationDistributed object component middleware I - Java RMI
Prof. Dr. Claudia Müller-Birn Institute for Computer Science, Networked Information Systems Distributed object component middleware I - Java RMI Nov 15th, 2011 Netzprogrammierung (Algorithmen und Programmierung
More informationDistributed Systems Principles and Paradigms. Distributed Object-Based Systems. Remote distributed objects. Remote distributed objects
Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science steen@cs.vu.nl Chapter 10: Version: December 10, 2012 1 / 22 10.1 Architecture 10.1 Architecture Remote
More informationInfo 408 Distributed Applications programming 2 nd semester of Credits: 5 Lecturer: Antoun Yaacoub Ph.D.
Lebanese University Faculty of Sciences I Master 1 degree Computer Sciences Info 408 Distributed Applications programming 2 nd semester of 2018-2019 Credits: 5 Lecturer: Antoun Yaacoub Ph.D. RMI Serialization
More informationDistributed Objects. Chapter Distributing Objects Overview
Middleware Architecture with Patterns and Frameworks c 2003-2009, Sacha Krakowiak (version of February 27, 2009-12:58) Creative Commons license (http://creativecommons.org/licenses/by-nc-nd/3.0/) Chapter
More informationDistributed object component middleware I - Java RMI
Prof. Dr. Claudia Müller-Birn Institute for Computer Science, Networked Information Systems Distributed object component middleware I - Java RMI Nov 15th, 2011 Netzprogrammierung (Algorithmen und Programmierung
More informationREMOTE METHOD INVOCATION INTRODUCTION TO RMI, A JAVA API FOR RPC-STYLE INVOCATION OF REMOTE OBJECT METHODS
RMI Remote Method RMI Invocation REMOTE METHOD INVOCATION INTRODUCTION TO RMI, A JAVA API FOR RPC-STYLE INVOCATION OF REMOTE OBJECT METHODS Peter R. Egli 1/19 Contents 1. What is RMI? 2. Important RMI
More informationCommunication Basics, RPC & RMI. CS403/534 Distributed Systems Erkay Savas Sabanci University
Communication Basics, RPC & RMI CS403/534 Distributed Systems Erkay Savas Sabanci University 1 Communication Models 1. Remote Procedure Call (RPC) Client/Server application 2. Remote Method Invocation
More informationDistributed Objects. Object-Oriented Application Development
Distributed s -Oriented Application Development Procedural (non-object oriented) development Data: variables Behavior: procedures, subroutines, functions Languages: C, COBOL, Pascal Structured Programming
More informationJAC444 - Lecture 11. Remote Method Invocation Segment 2 - Develop RMI Application. Jordan Anastasiade Java Programming Language Course
JAC444 - Lecture 11 Remote Method Invocation Segment 2 - Develop RMI Application 1 Remote Method Invocation In this lesson you will be learning about: Designing RMI application Developing distributed object
More informationRMI (Remote Method Invocation) Over the year, there have been 3 different approaches to application development:
RMI (Remote Method Invocation) History: Over the year, there have been 3 different approaches to application development: 1. the traditional approach. 2. the client / server approach and 3. the component-
More informationRemote Method Invocation
Remote Method Invocation RMI Dr. Syed Imtiyaz Hassan Assistant Professor, Deptt. of CSE, Jamia Hamdard (Deemed to be University), New Delhi, India. s.imtiyaz@jamiahamdard.ac.in 1 Agenda Introduction Creating
More informationProgramming with RMI Reminder
Programming with RMI Reminder (Sources: Gordon S Blair, Paul Grace) Aims After completing the following you should get a reminder of: 1. the fundamental concepts of Java Remote Method Invocation; 2. the
More informationKINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR (ODD SEMESTER) QUESTION BANK
KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR 2011 2012(ODD SEMESTER) QUESTION BANK SUBJECT CODE / NAME: IT1402-MIDDLEWARE TECHNOLOGIES YEAR/SEM : IV / VII UNIT
More informationPROFESSOR: DR.JALILI BY: MAHDI ESHAGHI
PROFESSOR: DR.JALILI BY: MAHDI ESHAGHI 1 2 Overview Distributed OZ Java RMI CORBA IDL IDL VS C++ CORBA VS RMI 3 Distributed OZ Oz Language Multi paradigm language, strong support for compositionality and
More informationCOMMUNICATION PROTOCOLS: REMOTE PROCEDURE CALL (RPC)
COMMUNICATION PROTOCOLS: REMOTE PROCEDURE CALL (RPC) 1 2 CONVENTIONAL PROCEDURE CALL (a) (b) Parameter passing in a local procedure call: the stack before the call to read. The stack while the called procedure
More informationSlides for Chapter 5: Remote Invocation
Slides for Chapter 5: Remote Invocation From Coulouris, Dollimore, Kindberg and Blair Distributed Systems: Concepts and Design Edition 5, Addison-Wesley 2012 Text extensions to slides David E. Bakken,
More informationChapter 4 Remote Procedure Calls and Distributed Transactions
Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 4 Remote Procedure Calls and Distributed Transactions Outline
More informationC 1. Recap: Finger Table. CSE 486/586 Distributed Systems Remote Procedure Call. Chord: Node Joins and Leaves. Recall? Socket API
Recap: Finger Table Finding a using fingers CSE 486/586 Distributed Systems Remote Procedure Call Steve Ko Computer Sciences and Engineering University at Buffalo N102" 86 + 2 4! N86" 20 +
More informationDistributed Systems 8. Remote Procedure Calls
Distributed Systems 8. Remote Procedure Calls Paul Krzyzanowski pxk@cs.rutgers.edu 10/1/2012 1 Problems with the sockets API The sockets interface forces a read/write mechanism Programming is often easier
More informationpresentation DAD Distributed Applications Development Cristian Toma
Lecture 9 S4 - Core Distributed Middleware Programming in JEE presentation DAD Distributed Applications Development Cristian Toma D.I.C.E/D.E.I.C Department of Economic Informatics & Cybernetics www.dice.ase.ro
More informationCommunication and Distributed Processing
Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 4 Remote Procedure Calls and Distributed Transactions Outline
More informationDistributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan.
Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan Reading List Remote Object Invocation -- Tanenbaum Chapter 2.3 CORBA
More information03 Remote invoaction. Request-reply RPC. Coulouris 5 Birrel_Nelson_84.pdf RMI
03 Remote invoaction Request-reply RPC Coulouris 5 Birrel_Nelson_84.pdf RMI 2/23 Remote invocation Mechanisms for process communication on a Built on top of interprocess communication primitives Lower
More informationDesarrollo de Aplicaciones en Red. El modelo de comunicación. General concepts. Models of communication. Message Passing
Desarrollo de Aplicaciones en Red El modelo de comunicación José Rafael Rojano Cáceres http://www.uv.mx/rrojano 1 2 General concepts As we saw in a Distributed System the logical and physical component
More information55:182/22C:182. Distributed Application Frameworks Java RMI, CORBA, Web Services (SOAP)
55:182/22C:182 Distributed Application Frameworks Java RMI, CORBA, Web Services (SOAP) Broker Architecture Example Java Remote Method Invocation (RMI) Invoking a method which lies in a different address
More informationRMI Case Study. A Typical RMI Application
RMI Case Study This example taken directly from the Java RMI tutorial http://java.sun.com/docs/books/tutorial/rmi/ Editorial note: Please do yourself a favor and work through the tutorial yourself If you
More informationCOMP 6231: Distributed System Design
COMP 6231: Distributed System Design Remote Invocation and RMI Based on Chapters 5, 7 of the text book and the slides from Prof. M.L. Liu, California Polytechnic State University COMP 6231, Fall 2013 Remote
More informationDistributed Systems Middleware
Distributed Systems Middleware David Andersson, 810817-7539, (D) Rickard Sandell, 810131-1952, (D) EDA 390 - Computer Communication and Distributed Systems Chalmers University of Technology 2005-04-30
More informationCommunication and Distributed Processing
Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 4 Remote Procedure Calls and Distributed Transactions Outline
More informationWhat is CORBA? CORBA (Common Object Request Broker Architecture) is a distributed object-oriented client/server platform.
CORBA What is CORBA? CORBA (Common Object Request Broker Architecture) is a distributed object-oriented client/server platform. It includes: an object-oriented Remote Procedure Call (RPC) mechanism object
More informationLast Class: Network Overview. Today: Distributed Systems
Last Class: Network Overview =>Processes in a distributed system all communicate via a message exchange. Physical reality: packets Abstraction: messages limited size arbitrary size unordered (sometimes)
More informationUNIT 4 CORBA 4/2/2013 Middleware 59
UNIT 4 CORBA 4/2/2013 Middleware 59 CORBA AN OBJECT ORIENTED RPC MECHANISM HELPS TO DEVELOP DISTRIBUTED SYTEMS IN DIFF. PLATFORMS OBJECTS WRITTEN IN DIFF., LANG, CAN BE CALLED BY OBJECTS WRITTEN IN ANOTHER
More information