.NET Mobile Application Development Remote Procedure Call.

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 (RPC)
Remote Procedure Call Design issues Implementation RPC programming
Tam Vu Remote Procedure Call CISC 879 – Spring 03 Tam Vu March 06, 03.
Distributed Object & Remote Invocation Vidya Satyanarayanan.
Remote Procedure CallCS-4513, D-Term Remote Procedure Call CS-4513 Distributed Computing Systems (Slides include materials from Operating System.
Implementing Remote Procedure Calls Andrew Birrell and Bruce Nelson Presented by Kai Cong.
Remote Object Invocation
Copyright © George Coulouris, Jean Dollimore, Tim Kindberg This material is made available for private study and for direct.
Tutorials 2 A programmer can use two approaches when designing a distributed application. Describe what are they? Communication-Oriented Design Begin with.
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
OCT 1 Master of Information System Management Organizational Communications and Distributed Object Technologies Lecture 5: Distributed Objects.
Outcomes What is RPC? The difference between conventional procedure call and RPC? Understand the function of client and server stubs How many steps could.
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)
Chapter 5: Distributed objects and remote invocation Introduction Remote procedure call Events and notifications.
Communication Tran, Van Hoai Department of Systems & Networking Faculty of Computer Science & Engineering HCMC University of Technology.
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.
RPC Design Issues Presented By Gayathri Vijay S-8,CSE.
Politecnico di Milano © 2001 William Fornaciari Operating Systems R P C Remote Procedure Call Lecturer: William Fornaciari Politecnico di Milano
Systems Prog. & Script. - Heriot Watt Univ 1 Systems Programming & Scripting Lecture 11: The Distributed Object Model.
 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.
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,
IS473 Distributed Systems CHAPTER 5 Distributed Objects & Remote Invocation.
Chapter 5: Distributed objects and remote invocation Introduction Remote procedure call Events and notifications.
Distributed Objects & Remote Invocation
Distributed Objects and Remote Invocation Source: George Colouris, Jean Dollimore, Tim Kinderberg & Gordon Blair (2012). Distributed Systems: Concepts.
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
Mark Stanovich Operating Systems COP Primitives to Build Distributed Applications send and receive Used to synchronize cooperating processes running.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
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.
Web Services An Introduction Copyright © Curt Hill.
Computer Science Lecture 3, page 1 CS677: Distributed OS Last Class: Communication in Distributed Systems Structured or unstructured? Addressing? Blocking/non-blocking?
.NET Mobile Application Development XML Web Services.
1 Distribuerede systemer og sikkerhed – 28. februar 2002 From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.
Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke.
Distributed objects and remote invocation Pages
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
Distributed Systems Lecture 8 RPC and marshalling 1.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
Lecture 5: RPC (exercises/questions). 26-Jun-16COMP28112 Lecture 52 First Six Steps of RPC TvS: Figure 4-7.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Topic 3: Remote Invocation Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Distributed Web Systems Distributed Objects and Remote Method Invocation Lecturer Department University.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Introduction to Distributed Systems Slides for CSCI 3171 Lectures E. W. Grundke.
03 – Remote invoaction Request-reply RPC RMI Coulouris 5
Prof. Leonardo Mostarda University of Camerino
Chapter 5 Remote Procedure Call
Programming Models for Distributed Application
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
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Lecture 6: RPC (exercises/questions)
Remote invocation (call)
Lecture 6: RPC (exercises/questions)
Lecture 7: RPC (exercises/questions)
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
Last Class: Communication in Distributed Systems
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Presentation transcript:

.NET Mobile Application Development Remote Procedure Call

Introduction  In previous sessions we have considered >distributed applications and their characteristics >mobile devices, applications and services; characteristics and limitations  Remote Procedure Call (RPC) >is an historically important distributed computing technology; many of today’s distributed computing technologies (e.g. XML Web services) are refinements of RPC.  In this session we consider RPC to gain an appreciation of how modern RPC-based distributed technologies work

RPC – A History  Remote Procedure Call (RPC) >Historically, one of the most important distributed software technologies and still extensively used today ­MSBlast/LovSan worm exploited weakness in Windows RPC layer in Summer 2003  Allows a client to call a procedure in a process on a remote computer  Arguments can be passed to the remote procedure and values returned from it  Communicating with a distributed component is (almost !) as simple as a normal procedure call

Interfaces  Interfaces >Control possible interactions between software modules >Specify procedures / variables that can be accessed from other modules  RPC and interfaces >interface used to define procedures of a module that are available for calling remotely >Parameters marked as ­Input – sent to remote module in request message ­Output – returned from remote module in reply message >Only procedures can be accessed; variables cannot be accessed directly >Either defined by the source language or externally with an Interface Definition Language (IDL)

Middleware and RPC  RPC is middleware >RPC programming model is layered above basic communication and process management provided by OS ­Offers location transparency ­Independence from underlying data transport protocols ­Uses standard data representation to mask differences in hardware and OS data representation  RPC uses a request-reply protocol >Parameters to remote procedure sent as request message to remote module >Remote module executes procedure with given parameters >Return values passed back in reply message

RPC Semantics  Semantics of remote procedure invocation differ to those of local invocations due to need to deal with potential network failures  Invocation semantics of RPC vary between implementations but are generally either >at-most-once ­Remote procedure is guaranteed to be executed exactly zero or one times >at-least-once ­Remote procedure is guaranteed to be executed one or more times >What are the semantics of a local procedure call?

RPC Implementation  Client has communication module and one stub procedure for each procedure in the service interface >Stub is ­Proxy for remote procedure called locally by client ­Marshals arguments into message which is sent to remote module by communication module  Server has communication module and dispatcher plus one server stub and one procedure for each procedure in service interface >Dispatcher chooses server stub to receive message >Server stub ­Unmarshals arguments from message and invokes procedure ­Marshals return values from procedure into message which is sent to client by communication module

RPC Implementation…

RPC Operation  Implementation of RPC is designed to cope with potential failures  At A (client stub/communication module) >arguments packed into buffer for transfer across network >RPC identifier generated; timer set  At B (dispatcher) >arguments unpacked from message >RPC identifier noted

Remote Procedure Call  At C (server stub / server procedure) >procedure is called with arguments  At D (server stub / communication module) >return arguments packed into buffer >another timer is set  At E (client stub / communication modules) >arguments unpacked from message >timer set at A is disabled >acknowledgement sent for this RPC identifier >timer set at D is disabled

RPC and Failures  Client Failure >May occur after sending request >Orphan remote call will still go ahead >Timer at D will expire; no acknowledgement will be received >Server made permanent state changes as result of call? >When client restarts it may repeat call; no way for RPC service to detect the repeat  Server Failure >May occur before call is received or during the call ­at B, after request is received but before procedure is called ­at C, during the procedure call ­at D, after procedure call but before result is sent >Timeout at A will occur >Most systems do not handle roll-back of state changes for incomplete RPC calls

 How should RPC be integrated with programming languages?  Distribution transparency >Should remote procedure calls appear the same as local calls in the code (i.e. hiding the distribution from the programmer)? >Arguments for and against transparency. If transparency is allowed, remote call semantics may differ  Argument marshalling >Should user-defined types be allowed as arguments? How does system pack them into messages?  Type checking >Can compiler perform static, compile-time checking of arguments for remote procedure calls? RPC Language Integration

 In this session we have discussed >Remote Procedure Call >RPC implementation and operation >RPC language integration issues  In the next session we will consider the creation and use of XML Web services, a modern cross-platform distributed computing technology which supports RPC- like interaction between components of a distributed application Summary

Reading and Resources Reading  Coulouris, Dollimore & Kindberg, Distributed Systems - Concepts and Designs, 3 rd edition, Addison-Wesley, 2001