Implementing Remote Procedure Calls Andrew Birrell and Bruce Nelson Presented by Kai Cong.

Slides:



Advertisements
Similar presentations
Message Passing Vs Distributed Objects
Advertisements

RPC Robert Grimm New York University Remote Procedure Calls.
Remote Procedure Call Design issues Implementation RPC programming
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Lecture.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Seminar „Web Services“
Tam Vu Remote Procedure Call CISC 879 – Spring 03 Tam Vu March 06, 03.
Fast Communication Firefly RPC Lightweight RPC  CS 614  Tuesday March 13, 2001  Jeff Hoy.
Remote Procedure CallCS-4513, D-Term Remote Procedure Call CS-4513 Distributed Computing Systems (Slides include materials from Operating System.
Distributed Systems Lecture #3: Remote Communication.
Tutorials 2 A programmer can use two approaches when designing a distributed application. Describe what are they? Communication-Oriented Design Begin with.
Implementing Remote Procedure Calls Authors: Andrew D. Birrell and Bruce Jay Nelson Xerox Palo Alto Research Center Presenter: Jim Santmyer Thanks to:
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
Outcomes What is RPC? The difference between conventional procedure call and RPC? Understand the function of client and server stubs How many steps could.
490dp Prelude: Design Report Remote Invocation Robert Grimm (borrowing some from Hank Levy)
Remote Procedure CallCS-4513 D-term Remote Procedure Call CS-4513 Distributed Computing Systems (Slides include materials from Operating System Concepts,
Communication in Distributed Systems –Part 2
Remote Procedure Calls. 2 Client/Server Paradigm Common model for structuring distributed computations A server is a program (or collection of programs)
.NET Mobile Application Development Remote Procedure Call.
Remote Procedure CallCS-502 Fall Remote Procedure Call CS-502, Operating Systems Fall 2007 (Slides include materials from Operating System Concepts,
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Other Topics RPC & Middleware.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
1 Chapter 2. Communication. STEM-PNU 2 Layered Protocol TCP/IP : de facto standard Our Major Concern Not always 7-layered Protocol But some other protocols.
CSCI 6962: Server-side Design and Programming Web Services.
11 September 2008CIS 340 # 1 Topics To examine the variety of approaches to handle the middle- interaction (continued) 1.RPC-based systems 2.TP monitors.
Remote Procedure Calls Adam Smith, Rodrigo Groppa, and Peter Tonner.
Implementing Remote Procedure Calls Authored by Andrew D. Birrell and Bruce Jay Nelson Xerox Palo Alto Research Center Presented by Lars Larsson.
Politecnico di Milano © 2001 William Fornaciari Operating Systems R P C Remote Procedure Call Lecturer: William Fornaciari Politecnico di Milano
 Remote Procedure Call (RPC) is a high-level model for client-sever communication.  It provides the programmers with a familiar mechanism for building.
Distributed Objects and Middleware. Sockets and Ports Source: G. Coulouris et al., Distributed Systems: Concepts and Design.
CSE 451: Operating Systems Winter 2015 Module 22 Remote Procedure Call (RPC) Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
Page 1 Remote Procedure Calls Paul Krzyzanowski Distributed Systems Except as otherwise noted, the content of this presentation.
Shuman Guo CSc 8320 Advanced Operating Systems
Chapter 5: Distributed objects and remote invocation Introduction Remote procedure call Events and notifications.
Remote Procedure Calls CS587x Lecture Department of Computer Science Iowa State University.
Remote Procedure CallCS-502 Fall Remote Procedure Call (continued) CS-502, Operating Systems Fall 2007 (Slides include materials from Operating System.
Mark Stanovich Operating Systems COP Primitives to Build Distributed Applications send and receive Used to synchronize cooperating processes running.
Remote Procedure Call and Serialization BY: AARON MCKAY.
09/14/05 1 Implementing Remote Procedure Calls* Birrell, A. D. and Nelson, B. J. Presented by Emil Constantinescu *ACM Trans. Comput. Syst. 2, 1 (Feb.
Implementing Remote Procedure Calls Andrew D. Birrell and Bruce Jay Nelson 1894 Xerox Palo Alto Research Center EECS 582 – W16.
Distributed objects and remote invocation Pages
1 Chapter 2. Communication. STEMPusan National University STEM-PNU 2 Layered Protocol TCP/IP : de facto standard Our Major Concern Not always 7-layered.
Implementing Remote Procedure Calls Andrew Birrell and Bruce Nelson Presented by Phil Howard.
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
Computer Science Lecture 4, page 1 CS677: Distributed OS Last Class: RPCs RPCs make distributed computations look like local computations Issues: –Parameter.
Java Distributed Computing
“Request /Reply Communication”
Prof. Leonardo Mostarda University of Camerino
Java Distributed Computing
Implementing Remote Procedure Calls
Implementing RPC by Birrell & Nelson
Inventory of Distributed Computing Concepts and Web services
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
DISTRIBUTED COMPUTING
Lecture 4: RPC Remote Procedure Call Coulouris et al: Chapter 5
CSE 451: Operating Systems Autumn 2003 Lecture 16 RPC
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
Remote Procedure Call (RPC) RPC – RMI - Web Services.
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Spring 2012 Module 22 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Autumn 2009 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Remote Procedure Call Hank Levy 1.
CS-502, Operating Systems Fall 2009 (EMC)
Remote invocation (call)
Remote Procedure Call Hank Levy 1.
CSE 451: Operating Systems Autumn 2010 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
Remote Procedure Call Hank Levy 1.
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Presentation transcript:

Implementing Remote Procedure Calls Andrew Birrell and Bruce Nelson Presented by Kai Cong

Conventional Procedure Calls main proc 1 proc 5 proc 2 proc 3 proc 4 proc 6 proc 7 proc 8 Within a program On a single computer!!!

Extension of the Procedural Model main proc 1 proc 5 proc 2 proc 3 proc 4 proc 6 proc 7 proc 8 computer 1 computer 2 Across a network between programs On different computers!!!

4 Remote Procedure Call (RPC) ClientServer Request Reply Computing Blocked

RPC – How it works client procedure call client stub locate (un)marshal (de)serialize send (receive) server procedure server stub (un)marshal (de)serialize receive (send) client processserver process RPC Runtime module

Issues Binding Passing data Implementation Exceptions RPC systems

The binding operation is to bind an importer of an interface to an exporter of an interface. After binding, calls made by the importer invoke procedures implemented by the remote exporter. static binding vs dynamic binding Binding

static binding(not presented by the paper) –hard coded stub –simple –efficient –not flexible –stub recompilation is necessary if the location of the server changes –use of redundant servers is not possible Static Binding

dynamic binding –Interface: type and instance –Database load balancing –flexible –redundant servers is possible Dynamic Binding

client procedure call client stub bind (un)marshal (de)serialize find send receive RPC Runtime module server procedure server stub register (un)marshal (de)serialize receive send client processserver process Database Dynamic Binding RPC Runtime module 7

Issues Binding Passing data Implementation Exceptions RPC systems

Passing Data Can't use the stack! Can't use shared memory! Generally use message passing

Passing data Build a message that includes: Who and what's being called Identity of the caller Data values in known byte order Using an intermediate data representation

Issues Binding Passing data Implementation Exceptions RPC systems

Implementation

Function prototype is (almost) all that's needed to build the client stub –Also need binding information Function prototype is (almost) all that's needed to build server stub –Also need method to wait for message

Implementation Stub compiler –Generates stubs for client and server –Language dependent –Compile into machine-independent format Transport protocol –PUP, XML, SOAP, DCOM, CORBA, …

Implementation Clients Threaded Servers Event Driven

Issues Binding Passing data Implementation Exceptions RPC systems

What can happen in "normal" procedures ? –Procedure generates an exception –Procedure infinite loops –Procedure generates wrong results Exceptions

What can happen in "remote" procedures? –Client stub generates an exception –Transmission failure  knowable failure  unknowable failure –Remote procedure generates an exception –Remote procedure infinite loops –Remote procedure generates wrong results

Issues Binding Passing data Implementation Exceptions RPC systems

RPC Systems  Sun RPC  DCE RPC  DCOM  CORBA  Java RMI  XML RPC, SOAP/.NET, AJAX, REST  Protocol Buffers (Google)  Thrift (Facebook)

Conclusion Remote Procedure Call should look and feel like local call Remote Procedure Call should be independent of where it executes Remote Procedure Call should be "efficient“