Overview Implementing Remote Procedure Calls* Birrell, A. D. and Nelson, B. J. Brief introduction RPC issues Implementation Examples Current RPC implementations Presented by Emil Constantinescu Review Conclusions 1 *ACM Trans. Comput. Syst. 2, 1 (Feb. 1984), 39-59 2.... in a nutshell (1).... in a nutshell (2) CALLER RPCs represent a set of communication paradigms that allow one procedure to another procedure on a different. invokes a procedure on the ee s CALLEE s the request 1. one procedure (er) s another procedure (ee) 2. the er s for the from the ee s computes the s 3. the ee s the request, computes the s, and then send them to the er s sends the s 4. the er resumes upon receiving the s from the ee resumes 3 4.... in a nutshell (3) RPC Issues (1) Attractive aspects: simple semantics efficiency generality 5 PURPOSE: Make distributed computing easy! MAIN PRINCIPLE: The procedure's communication patterns are transparent to the user. The procedure invocation looks just like a procedure. CALLER invokes a procedure on the ee s resumes s s CALLEE s the request computes the s sends the s transparency, mimics the procedure precise semantics failure communication failure address based s the address space is not shared programming integration integration into programming environment data integrity 6 1
RPC Issues (2) RPC Implementation (1) Basic Concepts data transfer protocols net protocols binding er determines the location the identity of the ee security open communication net 7 program module procedure_x(arg1,arg2,ret1) 8 program export procedure_x NAME type type type procedure_x arg1 arg2 ret1 procedure_y arg1 ret1 procedure_z arg1 ret1 ret2 import procedure_x remote program program module implement procedure_x(arg1,arg2,ret1) { } RPC Implementation (2) Overview RPC Implementation (3) Local vs. Remote - stub et - stub et - stub - stub importer exporter importer exporter 9 10 *Garry Nutt; Operating systems; 2nd Edition, Addison Wesley RPC Implementation (4) Local vs. Remote remote RPC Implementation (5) / Stub / Stub: s are serialized/marshaled handles language binding (IDL, object passing) pass by value not by reference 11 *Garry Nutt; Operating systems; 2nd Edition, Addison Wesley 12 2
RPC Implementation (6) RPC Implementation (7) Binding deals with data (re)transmission data acknowledge et routing encryption exception handling binding Caller Callee et et Binding is concerned with location identity implements ImportInterface ExportInterface has issues granularity security Caller Callee et et 13 14 RPC Implementation (8) RPC flow RPC Implementation (9) Semantics Semantics & Data Transfer issues scalable, connectionless scheme, reduced acknowledgements unique ID/incremental ets at least/most or exactly once semantics REP. Execute Reply No REP. Execute Crash No REP. Crash 15 * Garry Nutt; Operating systems; 2nd Edition, Addison Wesley 16 * A. Tanenbaum and M.v. Steen; Distributed Systems: Principles and Paradigms, Prentice Hall, 2002 RPC Implementation & Issues program integration - stub address based s 17 et et binding - stub data transfer security data integrity RPC Implementations (1) DCE RPC (Distributed Computing Environment RPC) SUN RPC DCOM (Distributed COM) CORBA (Common Object Request Broker Arch.) XML RPC SOAP (Simple Object Access Protocol) 18 3
RPC Implementations (2) RPC Implementations (3) DCE RPC low level handles the binding & transport object abstraction Sun RPC DCOM & CORBA object abstractions XML RPC & SOAP somewhat lightweight use HTTP and XML Port 80 19 A. Tanenbaum and M.v. Steen; Distributed Systems: Principles and Paradigms, Prentice Hall, 2002 20 Conclusions & Future Research About the paper (1) Transparency is imperative, and leads to effectiveness Maintain procedure ing semantics Binding strategies influences efficiency Emulate shared address space Timeout implementation Paper: Birrell, A. D. and Nelson, B. J. Implementing Remote Procedure Calls ACM Transactions on Computer Systems published in 1984 first paper to formalize RPC concepts started to appear in 1976 21 22 About the paper (2) References Special treatment for missing remote implementation (late binding) What if the client crashes? Machine specific binary data representation RPC in the HPC field? Birrell, A. D. and Nelson, B. J.; Implementing remote procedure s; ACM Trans. Comput. Syst. 2, 1 (Feb. 1984), 39-59 Garry Nutt; Operating systems; 2 nd Edition, Addison Wesley Andrew Tanenbaum and Maarten van Steen; Distributed Systems: Principles and Paradigms, Prentice Hall, 2002 23 24 4
Paper Implementation (1) Binding Any Questions? 25 26 Paper Implementation (2) Simple RPC Paper Implementation (3) Complicated RPC 27 28 Paper Implementation (4) Results 29 5