Remote Invocation Flashcards

1
Q

What is Remote Invocation?

A

It allows a program running on one computer to execute code on another computer over a network.

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

What are the Steps of Remote Invocation?

A
  1. Client Request.
  2. Communication.
  3. Server Processing.
  4. Response.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What does the Request- Reply Protocol do?

A

-Identifiers are used to identify both messages and senders.
-Duplicate request messages can be discarded to avoid serving the same request more than once.
-If a duplicate request message is received after a reply has already been sent the server should redo the operation.
-Server could also maintain a history of replies but this has a memory overhead.

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

What are the 3 Request Styles?

A

-Request (R) protocol = used when no reply expected
-Request-reply (RR) protocol
-Request-reply-acknowledge (RRA) protocol

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

Describe how the Client Stub acts in the Remote Procedure Call.

A

-RPC client maintains a local stub with identical signature.
-Stub acts as placeholder for remote procedure.
-Stub gathers required parameters and sends them to RPC client runtime.

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

Describe how the Client Runtime acts in the Remote Procedure Call.

A

-The client runtime defines the environment, libraries and setup used such as time out options.
-It uses the transport layer to communicate with the server process.
Steps happen in reverse until the Server Application.

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

What are the call semantics in the Remote Procedure Call?

A

-Maybe: no fault-tolerance
-At-least-once: retransmit request messages
-At-most-once: retransmit request messages, filter duplicates, retransmit replies
-Exactly-once: Only for local procedure calls

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

How do RPC interfaces operate?

A

-An interface specifies the procedures provided by a server.
-It separates the implementation from the specification.
-Clients cannot directly access the server module’s variables.
-Addresses cannot serve as inputs or outputs for remote calls.

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

RPC interfaces are usually defined in an Interface Definition Language. Can you give an example?

A

message Card { required string cardNumber = 1; required Timestamp expiry = 2;
required int32 CVC = 3;
}
enum Currency { GBP = 1; USD = 2; }
message Charge { required Card card = 1;
required int64 amount = 2;
required Currency currency = 3;
}
message Status { required bool status = 1; optional string errorMessage = 2; }
service PaymentService
{
rpc processPayment(Charge) returns Status {}
}

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

What is Remote Method Invocation (RMI)?

A

-RMI is the Object-oriented equivalent of RPC.
-RMI enables the full use of object-oriented programming.
-Objects can be used as parameters.
-Remote object references are used to identify remote objects.

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

RMI needs to consider using Garbage Collection. Can you describe it?

A

-A distributed object needs to coordinate w the garbage collector to ensure its lifecycle is handled correctly using reference counting.

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