Introduction to Distributed Systems Slides for CSCI 3171 Lectures E. W. Grundke.

Slides:



Advertisements
Similar presentations
1 Communication in Distributed Systems REKs adaptation of Tanenbaums Distributed Systems Chapter 2.
Advertisements

RPC Robert Grimm New York University Remote Procedure Calls.
Remote Procedure Call Design issues Implementation RPC programming
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Tam Vu Remote Procedure Call CISC 879 – Spring 03 Tam Vu March 06, 03.
Remote Procedure CallCS-4513, D-Term Remote Procedure Call CS-4513 Distributed Computing Systems (Slides include materials from Operating System.
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
Remote Procedure Call Chin-Chih Chang. Remote Procedure Call Remote Procedure Call (RPC) is a protocol that allows programs to call procedures located.
OCT 1 Master of Information System Management Organizational Communications and Distributed Object Technologies Lecture 5: Distributed Objects.
Centralized Architectures
Outcomes What is RPC? The difference between conventional procedure call and RPC? Understand the function of client and server stubs How many steps could.
Practical Issues of RPCCS-4513, D-Term Remote Procedure Call Practical Issues CS-4513 Distributed Computing Systems (Slides include materials from.
Communication in Distributed Systems –Part 2
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
EEC-681/781 Distributed Computing Systems Lecture 4 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
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.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
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.
Introduction to Distributed Systems Slides for CSCI 3171 Lectures E. W
Communication Tran, Van Hoai Department of Systems & Networking Faculty of Computer Science & Engineering HCMC University of Technology.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
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.
Introduction to Distributed Systems Slides for CSCI 3171 Lectures E. W. Grundke.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved RPC Tanenbaum.
CSE 451: Operating Systems Winter 2015 Module 22 Remote Procedure Call (RPC) Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
1 Developing Application in Distributed Computing Environment (DCE)
Chapter 5: Distributed objects and remote invocation Introduction Remote procedure call Events and notifications.
 Communication Distributed Systems IT332. Outline  Fundamentals  Layered network communication protocols  Types of communication  Remote Procedure.
Chapter 4: Inter-process Communications
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.
1 Conventional Procedure Call read(fd,buf,nbytes) a)Parameter passing in a local procedure call: the stack before the call to read b)The stack while the.
Remote Procedure Call RPC
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
Computer Science Lecture 3, page 1 CS677: Distributed OS Last Class: Communication in Distributed Systems Structured or unstructured? Addressing? Blocking/non-blocking?
Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke.
© 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.
Prof. Leonardo Mostarda University of Camerino
CSE 486/586 Distributed Systems Remote Procedure Call
Remote Procedure Call present by :Enas Alkhoshi
CMSC621: Advanced Operating Systems Advanced Operating Systems
Communication Chapter 2.
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
DISTRIBUTED COMPUTING
Outline Communication Primitives - continued Theoretical Foundations
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
Lecture 7: RPC (exercises/questions)
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
Remote Procedure Call Hank Levy 1.
Last Class: Communication in Distributed Systems
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Presentation transcript:

Introduction to Distributed Systems Slides for CSCI 3171 Lectures E. W. Grundke

2 References D. E. Comer Computer Networks and Internets, 3rd ed. (Chapter 35: RPC and Middleware) Prentice-Hall 2001 A. Tanenbaum and M. van Steen (TvS) Distributed Systems: Principles and Paradigms Prentice-Hall 2002 G. Coulouris, J. Dollimore and T. Kindberg (CDK) Distributed System: Concepts and Design Addison-Wesley 2001

3 Acknowledgement Some slides from : TvS: ist_sys_1e/ ist_sys_1e/ CDK:

Remote Procedure Calls (RPC)

5 Motivation Writing clients and servers is error-prone (certainly in C!) (much low-level detail, yet common basic patterns) Instead: - hide communications behind a “function call” - specify a high-level interface only - let an automated tool generate the actual client/server code Advantage: - Focus programmer attention on the application, not on the communications. - Familiar function-calling paradigm

6 What is RPC? Call a procedure (function, subroutine, method, …) in a program running on a remote machine, while hiding communication details from the programmer. Note: Think C, not java! We deal with objects later!

7 Standards for RPC RFC 1057: Remote Procedure Call RFC 1014: External Data Representation Author: Sun Microsystems Inc. Others: see Comer. Sun RPC Demo with the rpcgen tool: stevens/SUNrpc.html

8 Conventional Procedure Call a)Parameter passing in a local procedure call: the stack before the call to read b)The stack while the called procedure is active TvS 2.7

9 Conventional Parameter Passing Techniques Call-by-value Call-by-reference Call-by-copy/restore

10 Complications for Remote Calls How to make it look like a function call, but actually use a client and server? Answer: use “stubs” (“proxies”) How to handle parameters and return values? Platform differences (e.g. endian issues) Pass-by-reference Answer: use “external data representation”

11 Timing (Synchronous RPC) RPC between a client and server program. TvS 2.8

12 Steps of a Remote Procedure Call 1.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 TvS 2.9

13 Passing Value Parameters Steps involved in doing remote computation through RPC 2-8 TvS 2.10

14 Parameter Specification and Stub Generation a)A procedure b)The corresponding message. TvS 2.12

15 Passing Reference Parameters Reference variables (pointers): pointers to arrays pointers to structures (objects without methods) What if the structure contains other pointers? The server may need a whole “graph” of structures! “Parameter marshalling”

16 Interface Definition Language (IDL) Specifies an interface types constants procedures parameter data types Does not specify an implementation Compiled into client and server stubs

17 Asynchronous RPC a)The interconnection between client and server in a traditional RPC b)The interaction using asynchronous RPC 2-12 TvS 2.14

18 Asynchronous RPC: Deferred Synchronous RPC A client and server interacting through two asynchronous RPCs TvS 2.15

19 Distributed Computing Environment (DCE) A middleware system Developed by The Open Group (previously OSF) Includes distributed file service directory service security service distributed time service Adopted by Microsoft for distributed computing

20 DCE: Binding a Client to a Server 2-15 TvS 2.17

External Data Representation

22 Motivation Data in running programs: Not just primitives, but arrays, pointers, lists, trees, etc. In general: complex graphs of interconnected structures or objects Data being transmitted: Sequential! Pointers make no sense. Structures must be flattened. All the heterogeneities must be masked! (endian, binary formats, etc.) CDK 4.3

23 What is an External Data Representation? “An agreed standard for the representation of data structures and primitive values.” Internal to external: “marshalling” External to internal: “unmarshalling” Examples: Sun XDR CORBA’s Common Data Representation (CDR) Java Object Serialization

24 CORBA CDR Defined in CORBA 2.0 in 1998 Primitive types: Standard data types, both big/little endian, conversion by the receiver. Constructed types: sequence, string, array, struct, enumerated, union (not objects) Data types are not specified in the external format: receiver is assumed to have access to the definition (via IDL). (unlike Java Object Serialization!) CDK 4.3

25 CORBA CDR Example The flattened form represents a Person struct with value: {”Smith”, ”London”, 1934} CDK 4.3 Unsigned long ”on__” “London” ”Lond” Length of string ”h____” 8-11 “Smith” ”Smit” 4-7 Length of string Index in sequence 4 bytes wide Notes of bytes