P4L1 Remote Procedure Calls Flashcards
Name 3 benefits of RPC
-
High-level interface.
- High level interface for data movement and communication
-
Error handling.
- Handles a lot of the errors that may arise from low-level communication/transmission interactions, freeing the developer from having to explicitly re-implement error handling in each program.
-
Hides complexities.
- Hides complexities of cross-machine interactions
Name 5 RPC requirements
- Remote procedure calls are synchronous. Blocking
- Type checking
- Hide representations of data types
- RPC should support different types of protocols - whether UDP, TCP or others - to communicate.
- RPC should also incorporate some higher level mechanisms like
- access control
- authentication
- fault tolerance.
List the 9 RPC steps
Registration
Binding
Call
Marshaling
Once the buffer is available, the RPC runtime will actually send the message to the server, via whatever transmission protocol the client and server have agreed upon during the binding process.
The data is then received by the RPC runtime on the server machine, which performs all of the necessary checks to determine which server stub the request needs to be delivered to.
The server stub will unmarshall the data, extracting the necessary byte sequences from the buffer and populating the appropriate data structures.
Once the arguments are allocated and set to the appropriate values, the actual procedure call can be made. This calls the implementation of the procedure that is actually part of the server process.
The server will compute the result of the operation, which will be passed to the server side stub and returned to the client.
Name the RPC Step
The server must execute a _________ step to let the world know what procedures it supports, what arguments it requires, and what location it can communicated with at.
Registration
Name the RPC step
The client makes the actual RPC ______. Control is passed to the stub, blocking the rest of the client.step.
Call
Name the RPC step
The client finds and discovers the server that supports the functionality it needs. For connection-based protocols (like TCP/IP), the actual connection will be established in this step.
Binding
Name the RPC step
The client stub then creates a data buffer, and populates it with the arguments that are passed in. This process is called _________.
The arguments may located in noncontiguous memory locations within the client address space. The transport level, however, requires a __________ buffer for transmission.
marshalling
contiguous
List 6 ways an RPC call can fail and return a timeout message.
- Client packet is lost
- Server packet is lost.
- Network link is down
- Server machine is down
- Server process failed
- Server process overloaded