Docstoc

Week 2 -- Practical RPC

Document Sample
Week 2 -- Practical RPC Powered By Docstoc
					Remote Procedure Call Practical Issues
CS-4513 Distributed Computing Systems
(Slides include materials from Operating System Concepts, 7th ed., by Silbershatz, Galvin, & Gagne, Modern Operating Systems, 2nd ed., by Tanenbaum, and Distributed Systems: Principles & Paradigms, 2nd ed. By Tanenbaum and Van Steen)

CS-4513, D-Term 2007

Practical Issues of RPC

1

Review
• Message-oriented communication
• • • • Connections Establishing a connection with a service Reliable communication via TCP Connection-less communication via UDP

• Remote Procedure Call
• • • • Procedural interface between client and service IDL & stub compiler (hides communication details) Hiding data representation differences Restrictions on passing objects by reference
Practical Issues of RPC 2

CS-4513, D-Term 2007

Practical RPC Systems
• DCE (Distributed Computing Environment)
• Open Software Foundation • Basis for Microsoft DCOM • Tanenbaum & Van Steen, §4.2.4

• Sun’s ONC (Open Network Computing)
• Very similar to DCE • Widely used
• rpcgen • http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATI ON/HTML/AA-Q0R5B-TET1_html/TITLE.html
CS-4513, D-Term 2007 Practical Issues of RPC 3

Practical RPC Systems (continued)
• Java RMI (Remote Method Invocation)
• java.rmi standard package

• Java-oriented approach — objects and methods

• CORBA (Common Object Request Broker
Architecture)
• Standard, multi-language, multi-platform middleware • Object-oriented • Heavyweight

• …
CS-4513, D-Term 2007 Practical Issues of RPC 4

Implementation Model for DCE

CS-4513, D-Term 2007

Practical Issues of RPC

5

Differences for ONC
program & version #

rpcgen

CS-4513, D-Term 2007

Practical Issues of RPC

6

Validating a Remote Service
• Purpose
• Avoid binding to wrong service or wrong version

• DCE
• Globally unique ID
– Generated in template of IDL file

• Sun ONC
• Program numbers registered with Sun • Version # and procedure # administered locally

CS-4513, D-Term 2007

Practical Issues of RPC

7

RPC Binding — Sun ONC
• Service registers with portmapper on server OS
• Program # and version # • Optional static port #

• Client
• Must know host name or IP address
• clnt_create(host, prog, vers, proto) – I.e., RPC to portmapper of host requesting to bind to prog, vers using protocol proto (tcp or udp)

• (Additional functions for authentication, etc.) • Invokes remote functions by name
CS-4513, D-Term 2007 Practical Issues of RPC 8

Sun ONC (continued)
• #include <rpc/rpc.h>
• Header file for client and server

• rpcgen
• The stub compiler
– Compiles interface.x – Produces .h files for client and service; also stubs

• See also
• rpcinfo

• RPC Programming Guide
CS-4513, D-Term 2007 Practical Issues of RPC 9

Note on XDR (the interface definition language for ONC)
• Much like C • Exceptions
– string type – maps to char * – bool type – maps to bool_t

CS-4513, D-Term 2007

Practical Issues of RPC

10

Sun ONC
• Online tutorial
• http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATI ON/HTML/AA-Q0R5B-TET1_html/TITLE.html

• CS-4513 code samples
• http://web.cs.wpi.edu/~rek/DCS/D04/SunRPC.html • http://web.cs.wpi.edu/~goos/Teach/cs4513-d05/ • http://web.cs.wpi.edu/~cs4513/b05/week4-sunrpc.pdf

• Any other resources you can find

CS-4513, D-Term 2007

Practical Issues of RPC

11

Java RMI
• Based on objects & methods
– I.e., an object may be located remotely – Accessed via methods – RMI causes methods to be invoked by RPC

• Stubs may be local or remote
– Subject to security policy

CS-4513, D-Term 2007

Practical Issues of RPC

12

Java RMI Binding
• Remote objects must be registered with RMI registry
– May specify a port – Security policy compiled with object

• Client looks up object via Naming method
– Specifies host (& port, if needed) – Remote stubs delivered with lookup, subject to security policy
CS-4513, D-Term 2007 Practical Issues of RPC 13

Java Remote Object details
• Interface must extend java.RMI.Remote
• Must be public • No new methods introduced by java.RMI.Remote

• Should also extend
• java.rmi.server.UnicastRemoteObject

• Replaces some Object class methods for proper operation in distributed environment

• Must throw java.rmi.RemoteException
• May impact definition of existing interfaces
CS-4513, D-Term 2007 Practical Issues of RPC 14

Java Remote Object details (continued)
• Compiling object and stubs
• Object compiled to bytecodes with javac • Stubs compiled with rmic

• RMI registry must be running before remote object can be launched
• rmiregistry command (part of JDK distribution)

• Multiple registries possible on different ports

• Remote object registers itself
• java.rmi.Naming interface
CS-4513, D-Term 2007 Practical Issues of RPC 15

Java Client details
• Initialize RMI security manager
• System.setSecurityManager(…)

• If no security manager, only local stubs may be loaded

• Client must find and bind to remote object
• lookup() method in java.RMI.Naming

• Location of remote object specified in URL style
– E.g., ―rmi://garden.wpi.edu:1099/ObjectName‖

• Remote stubs loaded by lookup
– Per security policy
CS-4513, D-Term 2007 Practical Issues of RPC 16

Java RMI
• CS-4513 examples
– http://web.cs.wpi.edu/~cs4513/b05/week4-javarmi.pdf – http://web.cs.wpi.edu/~goos/Teach/cs4513-d05/ – http://web.cs.wpi.edu/~rek/DCS/D04/Comm_Part2.pdf
• Uses terms ―proxy‖ and ―skeleton‖ for ―client-side stub‖ and ―service-side stub‖ respectively • Identifies issues with SYNCHRONIZED remote objects

• Tanenbaum & Van Steen
• §10.3, esp. §10.3.4

• Any other resources you can find
CS-4513, D-Term 2007 Practical Issues of RPC 17

Questions?

CS-4513, D-Term 2007

Practical Issues of RPC

18

Fundamental Issue
• With Sun ONC and Java RMI, client must know name or address of server machine in order to bind to remote service
• IP address or remote name • (Sometimes) port number

• I.e., services are bound to server machines

CS-4513, D-Term 2007

Practical Issues of RPC

19

Problems
• Location of remote objects not always known

• Location of remote objects not always constant
• Pointers/References to remote services are only useful to fixed servers

• Distributed & replicated services are difficult, at best • Location independence is impossible • …
CS-4513, D-Term 2007 Practical Issues of RPC 20

Needed
• Location-independent object registry
• Any object can register itself

• Location-independent object naming
• Name of object does not imply location

• Distributed, replicated registry
• If any instance goes down, others can serve

• Distributed, replicated remote objects
• Any instance may serve in many cases

• …
CS-4513, D-Term 2007 Practical Issues of RPC 21

Solutions
• Some or all of these things are typically provided in the major distributed object standards
• DCOM, CORBA, etc.

• ―Global‖ registry is central component

CS-4513, D-Term 2007

Practical Issues of RPC

22

But …
• None really get it right for broad spectrum of distributed systems & applications

• E.g., CORBA
• Very heavyweight (too cumbersome) • Object can live in only one location
– Inefficient for very commonly accessed objects – Distributed, replicated object difficult to support

CS-4513, D-Term 2007

Practical Issues of RPC

23

Reading Assignment
• ―Grapevine: An Exercise in Distributed Computing,‖ Communications of the ACM, April 1982
• PDF link

CS-4513, D-Term 2007

Practical Issues of RPC

24

Break

CS-4513, D-Term 2007

Practical Issues of RPC

25


				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:16
posted:8/17/2009
language:English
pages:25
Shah Muhammad  Butt Shah Muhammad Butt IT professional
About IM IT PROFESSIONAL