P4L1. Remote Procedure Calls Flashcards
What is RPC?
Remote Procedure Calls: An IPC mechanism that specifies that the processes interact via a procedure call interface. It’s intended to simplify the development of cross-address space & cross-machined interactions.
What are the benefits of RPC?
+ higher-level interface for data movement and communication + automates error handling + hides complexities of cross-machine interactions
What are RPC requirements?
- Client/Server Interactions 2. Procedure Call Interface 3. Type Checking 4. Cross-Machine Conversion 5. Higher-level Protocol
RPC Steps
-1. register: server “registers” procedure, args types, location… 0. bind: client finds and “binds to desired server 1. call: client makes RPC call; control passed to stub, client code blocks 2. marshal: client stub “marshals” arguments (serialize args into buffer) 3. send: client sends message to server 4. receive: server receives message; passes message to server-stub; access ctrl 5. unmarshal: server stub “unmarshals” args (extracts and creates data structures) 6. actual call: server stub calls local procedure implementation 7. result: server performs operation and computes result of RPC operation
What is an Interface Definition Language (IDL)?
An IDL is used to describe the interface the server exports: - procedure name, arg & result types - version # RPC can use IDL that is: - language agnostic (e.g., XDR in SunPRC) - language specific (e.g., Java in Java RMI)
What is binding?
What is a registry?
A registry is a database of available services with information about how to connect to them.
How should RPC handle pointers as arguments?
Either pointers as arguments should be disallowed or the RPC should build in some kind of support to serialize pointed data
What is Sun RPC?
What are its design choices for binding, IDL, pointers, and failures?