Download presentation
Presentation is loading. Please wait.
1
Practical Issues of RPCCS-4513, D-Term 20071 Remote Procedure Call Practical Issues CS-4513 Distributed Computing Systems (Slides include materials from Operating System Concepts, 7 th ed., by Silbershatz, Galvin, & Gagne, Modern Operating Systems, 2 nd ed., by Tanenbaum, and Distributed Systems: Principles & Paradigms, 2 nd ed. By Tanenbaum and Van Steen)
2
Practical Issues of RPCCS-4513, D-Term 20072 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
3
Practical Issues of RPCCS-4513, D-Term 20073 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.htmlhttp://h30097.www3.hp.com/docs/base_doc/DOCUMENTATI ON/HTML/AA-Q0R5B-TET1_html/TITLE.html
4
Practical Issues of RPCCS-4513, D-Term 20074 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 …
5
Practical Issues of RPCCS-4513, D-Term 20075 Implementation Model for DCE
6
Practical Issues of RPCCS-4513, D-Term 20076 Differences for ONC program & version # rpcgen
7
Practical Issues of RPCCS-4513, D-Term 20077 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
8
Practical Issues of RPCCS-4513, D-Term 20078 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
9
Practical Issues of RPCCS-4513, D-Term 20079 Sun ONC (continued) #include 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
10
Practical Issues of RPCCS-4513, D-Term 200710 Note on XDR (the interface definition language for ONC) Much like C Exceptions –string type – maps to char * –bool type – maps to bool_t
11
Practical Issues of RPCCS-4513, D-Term 200711 Sun ONC Online tutorial http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATI ON/HTML/AA-Q0R5B-TET1_html/TITLE.htmlhttp://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
12
Practical Issues of RPCCS-4513, D-Term 200712 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
13
Practical Issues of RPCCS-4513, D-Term 200713 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
14
Practical Issues of RPCCS-4513, D-Term 200714 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
15
Practical Issues of RPCCS-4513, D-Term 200715 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
16
Practical Issues of RPCCS-4513, D-Term 200716 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
17
Practical Issues of RPCCS-4513, D-Term 200717 Java RMI CS-4513 examples –http://web.cs.wpi.edu/~cs4513/b05/week4-javarmi.pdfhttp://web.cs.wpi.edu/~cs4513/b05/week4-javarmi.pdf –http://web.cs.wpi.edu/~goos/Teach/cs4513-d05/http://web.cs.wpi.edu/~goos/Teach/cs4513-d05/ –http://web.cs.wpi.edu/~rek/DCS/D04/Comm_Part2.pdfhttp://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
18
Practical Issues of RPCCS-4513, D-Term 200718 Questions?
19
Practical Issues of RPCCS-4513, D-Term 200719 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
20
Practical Issues of RPCCS-4513, D-Term 200720 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 …
21
Practical Issues of RPCCS-4513, D-Term 200721 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 …
22
Practical Issues of RPCCS-4513, D-Term 200722 Solutions Some or all of these things are typically provided in the major distributed object standards DCOM, CORBA, etc. “Global” registry is central component
23
Practical Issues of RPCCS-4513, D-Term 200723 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
24
Practical Issues of RPCCS-4513, D-Term 200724 Reading Assignment “Grapevine: An Exercise in Distributed Computing,” Communications of the ACM, April 1982 PDF link
25
Practical Issues of RPCCS-4513, D-Term 200725 Break
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.