P4L1 - Remote Procedure Calls Flashcards

1
Q

What is the purpose of RPC?

A
  • To remove boilerplate
  • To hide cross-machine complexities
  • To decouple the communication protocol from the procedure-call logic. (You can focus on what the cross-machine function does and not how it communicates)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

List the benefits of RPC

A
  1. Offers a high-level interface for data movement and communication
  2. Handles a lot of the errors that may arise from low-level communication/transmission interactions
  3. Hides complexities of cross-machine interactions
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

T/F: By default, RPCs have asynchronous call semantics

A

False, RPCs have synchronous call semantics

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

T/F: RPC is meant to be more than a transport-level protocol and it should support different types of protocols (UDP,TCP or others)

A

True!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Describe the high level structure of RPC

A

Client sends a request to perform some operation which the server has implemented. Server calls implementation of the operation and returns the result to the client

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Describe steps of RPC

A
  1. Register - server “registers” procedure, arg types, location…
  2. Bind - Client finds and “binds” to the desired server
  3. Call - Client makes RPC call; control passed to client stub
  4. Marshall - Client stub “marshals” arguments into buffer
  5. Send - Client sends messages to server
  6. Receive - Server receives message; passes to server-stub
  7. Unmarshal - Server stub unmarshals the args
  8. Actual Call - Server stub calls local procedure
  9. Result - Server performs operation and computes result
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

T /F: When using RPC, the client and server don’t need to be developed together

A

True!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

RPC systems rely on the use of ____ ____ ____ which serve as a protocol of how the client-server agreement will be expressed

A

Interface Definition Languages (IDL)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

T/F: An RPC system can use an IDL that is language-agnostic

A

True

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is the purpose of the IDL

A

It is used to define the interface. It helps the RPC system generate stubs and to generate information that is used in the service discvoery process

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

T/F: The IDL is used for the implementation of the service

A

False!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

_____ is the mechanism used by the client to determine which server to connect to, based on the service name and the version number

A

Binding

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

To support binding, there needs to be some systems software that maintains a database of all available services, known as ____

A

registry

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

A registry is essentially the _____ _____ for the services

A

yellow pages

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

T/F: Pointers are able to be used in RPC

A

If configured, the REFERENCED data can be copied instead of the pointers during marshalling

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

How are partial failures handled in RPC?

A

RPC incorporate a special error notification that tries to capture what went wrong with an RPC request

17
Q

What is SunRPC?

A

RPC package developed by Sun for UNIX systems

18
Q

List the design choices of the SunRPC

A
  1. One registry per machine
  2. Language-Agnostic IDL known as XDR
  3. Allows use of poitners
  4. Has mechanisms for dealing with errors
19
Q

The server specifies the interface that it supports in a ____ file for SunRPC

A

.x

20
Q

What is the name of the registry process that runs on every machine with SunRPC

A

portmapper

21
Q

What is another popular RPC system other than SunRPC

A

Java RMI - Java Remote Method Invocation