Lesson 2: Middleware Flashcards

1
Q

Why would we choose middleware? Give 4 arguments

A
  • It’s mostly invisible
  • It provides a standard way of doing things
  • It ties together parts of complex systems
  • It lets you focus on the core task
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

State the requirements for remote invocation, client-side

A
  • creating sockets
  • converting arguments to bit stream
  • interpreting received bit stream
  • fault tolerance measures
  • multi-threading
  • closing sockets
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

State the requirements for remote invocation, server-side

A
  • creating sockets
  • interpreting received bit stream
  • converting return values, exception to bit stream
  • fault tolerance measures
  • multi- threading
  • closing sockets
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Why do we need middleware?

A

There is no OS architecture for a multicomputer hardware architecture
(multiple computers, no direct memory access). Middleware enables communication between the nodes in this multicomputer architecture.

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

Describe method invocation for local objects regarding: object, object reference and interface

A

Object: consists of a set of data and a set of methods.

Objects reference: an identifier via which objects can be accessed.

Interface: signatures of methods, no implementation

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

Describe method invocation for remote objects regarding: object, object reference and interface

A

Remote objects: objects that can receive remote invocation.

Remote object reference:
An identifier that can be used globally throughout a distributed system to refer to a particular unique remote object

Remote interface:
Every remote object has a remote interface that specifies which of its methods can be invoked remotely.

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

What is the purpose of a remote object reference?

A

To create unique IDs for objects in a distributed system.
Uniqueness over time, uniqueness over space.

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

What is contained in a remote object reference?

A

Host, process, object and object type.

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

Give differences between local and remote invocations.

A

Local:
- use object reference
- any public method
- invocation: exactly once

Remote:
- use remote object reference
- limited access, remote interface
- invocation: unknown

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

What are the middleware layers?

A
  • RPCs and RMIs
  • Request Reply protocol
  • External Data Representation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Give some fault tolerance techniques

A

Retry-request message
Duplicate request filtering
Retransmission of results:
-> re-execute call or
-> history table of results, retransmit reply

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

What is marshalling?

A

Marshalling is the term used to transform an object in memory to a bitstream.

You can use an external standard (external data representation) or you can use a standard and send this standard along.

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

What is a proxy and what is it responsible for?

A

A proxy is responsible for making RMI transparent to clients by behaving like a local object to the invoker. It implements the methods in the interface of the remote object that it represents but instead of executing an an invocation, the proxy forwards it to a remote object.

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

What is a skeleton and what is it responsible for?

A

A skeleton is the reverse of a proxy at the server-side. It is responsible for making RMI transparent to servers by behaving like a local invoker to the object.

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

How does the middleware provide transparency?

A

It makes the invocation syntax similar to the local invocation.
It hides the underlying complexity by using the same invocation syntax. The use of a remote interface will reflect when an object is remote.

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

What does the communication module do?

A
  • implements the invocation semantics
  • runs a request-reply protocol
  • ensures communication between proxy & server side
17
Q

What is the dispatcher? What does it do?

A

It receives all request messages from the communication module. For each request message, it uses the method id to select the appropriate method in the appropriate skeleton, passing on the request message.

18
Q

What is the responsibility of the remote reference module?

A

It is responsible for translating between local and remote object references and for creating remote object references

19
Q

How does the remote object table of the remote reference module look?

A

At the server side it contains an entry for each remote object held by any process. At the client side, it has an entry for each local proxy.

20
Q

When filling the remote object table, how do you get the initial reference? (Binding service)

A

Option 1: Contact the server.
Go to the server and ask for the name

Option 2: Contact a binding server. This is a dictionary service for middleware (or DNS for RPC)