RPC 4
RPC 4
RPC 4
Distributed design
Computer networks and communication at a high level
Basics of Client/Server architectures
• programming concept
• interoperability
• binding to services
• delivery guarantees
Remote Procedure Call (RPC)
Putting all together: RPC
programming languages
Cesare Pautasso (Gustavo Alonso) binding
Computer Science Department
Swiss Federal Institute of Technology (ETHZ) interface definition language
[email protected] programming RPC
http://www.iks.inf.ethz.ch/
RPC in the context of large information systems (DCE, TP-Monitors)
DBMS
ELSE Lookup_customer Lookup_customer Customer efficient manner ways (not necessarily
Check_inventory Delete_customer database compatible)
RPC followed the programming
IF enough_supplies Update_customer techniques of the time RPC allows designers to build
THEN Place_order (procedural languages) and fitted distributed systems but does
ELSE ... Server 2 quite well with the most typical not solve many of the problems
New_product programming languages (C), distribution creates. In that
thereby facilitating its adoption regard, it is only a low level
DBMS
INVENTORY CONTROL Lookup_product Products
CLIENT Delete_product by system designers construct
database
Lookup_product Update_product RPC allowed the modular and RPC was designed with only one
Check_inventory hierarchical design of large type of interaction in mind:
IF supplies_low Server 3 distributed systems: client/server. This reflected the
THEN client and server are separate hardware architectures at the
Place_order time when distribution meant
Place_order the server encapsulates and
DBMS
Cancel_order Inventory small terminals connected to a
Update_inventory
Update_inventory and order hides the details of the back mainframe. As hardware and
...
Check_inventory
database end systems (such as networks evolve, more flexibility
databases) was needed
©IKS, ETH Zürich. 21 ©IKS, ETH Zürich. 22
Dispatcher
Worker
design, less overhead)
should there be a centralized
name server (binder)?
Listener
©IKS, ETH Zürich. 23 ©IKS, ETH Zürich. 24
RPC Pitfalls DCE
The Distributed Computing
Local CALL Local Local Client TCP Server Remote Environment is a standard Distributed Applications
Server implementation of RPC and a
P P P Stub IP Stub P distributed run-time environment
provided by the Open Software
Although RPC strives to keep the Calls may fail due to network Foundation (OSF). It provides: Distributed Time
remote call transparent, there are problems RPC File Service Service
a number of limitations The server address must be Cell Directory: A sophisticated
No Shared Memory between configured on the client, unless Name and Directory Service
client and server dynamic binding is used Time: for clock synchronization RPC
Arguments and Results are passed Nobody can snoop the across all nodes
by copy (not by reference). parameters of a local call Security: secure and
(unless you use a debugger or Cell Directory Security
Difficult to exchange pointers and authenticated communication Service
you force a core dump…), but Service
complex data structures all parameters of every RPC are Distributed File: enables sharing
Cannot pass a file opened on the visible on the network of files across a DCE
client as a parameter to the server environment DCE Thread Service
The caller of a local procedure
(and viceversa) can be trusted because it is the Threads: support for threads
Remote calls are orders of same program. Can the server and multiprocessor
magnitude slower than local ones, trust the client of a remote architectures Transport Service/ OS
do not call too often! procedure in the same way?
©IKS, ETH Zürich. 25 ©IKS, ETH Zürich. 26