DOC PREVIEW
UCSD CSE 120 - Remote Procedure Call

This preview shows page 1-2-3 out of 8 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

1&6(3ULQFLSOHVRI2SHUDWLQJ6\VWHPV)DOOLecture 14: Remote Procedure CallGeoffrey M. VoelkerNovember 19, 2001 CSE 120 – Lecture 14 – Remote Procedure Call 2:K\LV53&,QWHUHVWLQJ"● Remote Procedure Call (RPC) is the most common means for remote communication● It is used both by operating systems and applications◆ NFS is implemented as a set of RPCs◆ DCOM, CORBA, Java RMI, etc., are all basically just RPC● Someday (soon?) you will most likely have to write an application that uses remote communication (or you already have)◆ You will most likely use some form of RPC for that remote communication◆ So it’s good to know how all this RPC stuff works»“Debunking the magic”2November 19, 2001 CSE 120 – Lecture 14 – Remote Procedure Call 3&OLHQWVDQG6HUYHUV● The prevalent model for structuring distributed computation is the client/server paradigm● A server is a program (or collection of programs) that provide a service (file server, name service, etc.)◆ The server may exist on one or more nodes◆ Often the node is called the server, too, which is confusing● A client is a program that uses the service◆ A client first binds to the server (locates it and establishes a connection to it)◆ A client then sends requests, with data, to perform actions, and the servers sends responses, also with dataNovember 19, 2001 CSE 120 – Lecture 14 – Remote Procedure Call 40HVVDJHV● Initially with network programming, people hand-coded messages to send requests and responses● Hand-coding messages gets tiresome◆ Need to worry about message formats◆ Have to pack and unpack data from messages◆ Servers have to decode and dispatch messages to handlers◆ Messages are often asynchronous● Messages are not a very natural programming model◆ Could encapsulate messaging into a library◆ Just invoke library routines to send a message◆ Which leads us to RPC…3November 19, 2001 CSE 120 – Lecture 14 – Remote Procedure Call 53URFHGXUH&DOOV● Procedure calls are a more natural way to communicate◆ Every language supports them◆ Semantics are well-defined and understood◆ Natural for programmers to use● Idea: Have servers export a set of procedures that can be called by client programs◆ Similar to module interfaces, class definitions, etc.● Clients just do a procedure call as it they were directly linked with the server◆ Under the covers, the procedure call is converted into a message exchange with the serverNovember 19, 2001 CSE 120 – Lecture 14 – Remote Procedure Call 65HPRWH3URFHGXUH&DOOV● So, we would like to use procedure call as a model for distributed (remote) communication● Lots of issues◆ How do we make this invisible to the programmer?◆ What are the semantics of parameter passing?◆ How do we bind (locate, connect to) servers?◆ How do we support heterogeneity (OS, arch, language)?◆ How do we make it perform well?4November 19, 2001 CSE 120 – Lecture 14 – Remote Procedure Call 753&0RGHO● A server defines the server’s interface using an interface definition language (IDL)◆ The IDL specifies the names, parameters, and types for all client-callable server procedures● A stub compiler reads the IDL and produces two stub procedures for each server procedure (client and server)◆ The server programmer implements the server procedures and links them with the server-side stubs◆ The client programmer implements the client program and links it with the client-side stubs◆ The stubs are responsible for managing all details of the remote communication between client and serverNovember 19, 2001 CSE 120 – Lecture 14 – Remote Procedure Call 853&6WXEV● A client-side stub is a procedure that looks to the client as if it were a callable server procedure● A server-side stub looks to the server as if a client called it● The client program thinks it is calling the server◆ In fact, it’s calling the client stub● The server program thinks it is called by the client◆ In fact, it’s called by the server stub● The stubs send messages to each other to make the RPC happen “transparently”5November 19, 2001 CSE 120 – Lecture 14 – Remote Procedure Call 953&([DPSOHServer Interface:int Add(int x, int y);Client Program:…sum = server->Add(3,4);…Server Program:int Add(int x, int, y) {return x + y;}● If the server were just a library, then Add would just be a procedure callNovember 19, 2001 CSE 120 – Lecture 14 – Remote Procedure Call 1053&([DPSOH&DOOClient Program:sum = server->Add(3,4);Server Program:int Add(int x, int, y) {}Client Stub:Int Add(int x, int y) {Alloc message buffer;Mark as “Add” call;Store x, y into buffer;Send message;}RPC Runtime:Send message to server;Server Stub:Add_Stub(Message) {Remove x, y from bufferr = Add(x, y);}RPC Runtime:Receive message;Dispatch, call Add_Stub;6November 19, 2001 CSE 120 – Lecture 14 – Remote Procedure Call 1153&([DPSOH5HWXUQClient Program:sum = server->Add(3,4);Server Program:int Add(int x, int, y) {}Client Stub:Int Add(int x, int y) {Create, send message;Remove r from reply;return r;}RPC Runtime:Return reply to stub;Server Stub:Add_Stub(Message) {Remove x, y from bufferr = Add(x, y);Store r in buffer;}RPC Runtime:Send reply to client;November 19, 2001 CSE 120 – Lecture 14 – Remote Procedure Call 1253&0DUVKDOOLQJ● Marshalling is the packing of procedure parameters into a message packet● The RPC stubs call type-specific procedures to marshal (or unmarshal) the parameters to a call◆ The client stub marshals the parameters into a message◆ The server stub unmarshals parameters from the message and uses them to call the server procedure● On return◆ The server stub marshals the return parameters◆ The client stub unmarshals return parameters and returns them to the client program7November 19, 2001 CSE 120 – Lecture 14 – Remote Procedure Call 1353&%LQGLQJ● Binding is the process of connecting the client to the server● The server, when it starts up, exports its interface◆ Identifies itself to a network name server◆ Tells RPC runtime its alive and ready to accept calls● The client, before issuing any calls, imports the server◆ RPC runtime uses the name server to find the location of a server and establish a connection● The import and export operations are explicit in the server and client programs◆ Breakdown of transparencyNovember 19, 2001


View Full Document

UCSD CSE 120 - Remote Procedure Call

Documents in this Course
Threads

Threads

14 pages

Deadlocks

Deadlocks

19 pages

Processes

Processes

14 pages

Paging

Paging

13 pages

Processes

Processes

18 pages

Threads

Threads

29 pages

Security

Security

16 pages

Paging

Paging

13 pages

Processes

Processes

32 pages

Lecture 2

Lecture 2

13 pages

Paging

Paging

8 pages

Threads

Threads

14 pages

Paging

Paging

13 pages

Paging

Paging

26 pages

Paging

Paging

13 pages

Lecture

Lecture

13 pages

Processes

Processes

14 pages

Paging

Paging

13 pages

Security

Security

17 pages

Threads

Threads

15 pages

Processes

Processes

34 pages

Structure

Structure

10 pages

Lecture 3

Lecture 3

13 pages

Lecture 1

Lecture 1

28 pages

Threads

Threads

15 pages

Paging

Paging

30 pages

Load more
Download Remote Procedure Call
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Remote Procedure Call and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Remote Procedure Call 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?