practical issues of rpccs-4513, d-term 20071 remote procedure call practical issues cs-4513...
Post on 21-Dec-2015
220 views
TRANSCRIPT
Practical Issues of RPCCS-4513, D-Term 2007 1
Remote Procedure CallPractical Issues
CS-4513Distributed 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)
Practical Issues of RPCCS-4513, D-Term 2007 2
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 RPCCS-4513, D-Term 2007 3
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/DOCUMENTATION/HTML/AA-Q0R5B-TET1_html/TITLE.html
Practical Issues of RPCCS-4513, D-Term 2007 4
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
• …
Practical Issues of RPCCS-4513, D-Term 2007 5
Implementation Model for DCE
Practical Issues of RPCCS-4513, D-Term 2007 6
Differences for ONCprogram & version #program & version #
rpcgen
Practical Issues of RPCCS-4513, D-Term 2007 7
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
Practical Issues of RPCCS-4513, D-Term 2007 8
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
Practical Issues of RPCCS-4513, D-Term 2007 9
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
Practical Issues of RPCCS-4513, D-Term 2007 10
Note on XDR(the interface definition language for ONC)
• Much like C
• Exceptions– string type – maps to char *– bool type – maps to bool_t
Practical Issues of RPCCS-4513, D-Term 2007 11
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
Practical Issues of RPCCS-4513, D-Term 2007 12
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
Practical Issues of RPCCS-4513, D-Term 2007 13
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
Practical Issues of RPCCS-4513, D-Term 2007 14
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
Practical Issues of RPCCS-4513, D-Term 2007 15
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
Practical Issues of RPCCS-4513, D-Term 2007 16
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
Practical Issues of RPCCS-4513, D-Term 2007 17
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
Practical Issues of RPCCS-4513, D-Term 2007 18
Questions?
Practical Issues of RPCCS-4513, D-Term 2007 19
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
Practical Issues of RPCCS-4513, D-Term 2007 20
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
• …
Practical Issues of RPCCS-4513, D-Term 2007 21
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
• …
Practical Issues of RPCCS-4513, D-Term 2007 22
Solutions
• Some or all of these things are typically provided in the major distributed object standards
• DCOM, CORBA, etc.
• “Global” registry is central component
Practical Issues of RPCCS-4513, D-Term 2007 23
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
Practical Issues of RPCCS-4513, D-Term 2007 24
Reading Assignment
• “Grapevine: An Exercise in Distributed Computing,” Communications of the ACM, April 1982
• PDF link
Practical Issues of RPCCS-4513, D-Term 2007 25
Break