Distributed Systems: Invocation Semantics and Architectural Layers

Classified in Computers

Written on in English with a size of 2.41 KB

1. Maybe Semantics

Used in protocols like UDP or CORBA methods that return results. It is uncertain whether an object has been executed once or not at all. This approach does not apply any measures of fault tolerance and can suffer from omission failures if the invocation or the response is lost. If a timeout is set, the answer could be received after its expiry (asynchronous). This semantic is useful in applications where it is acceptable to have two failed invocations.

2. At-Least-Once Semantics

Used in consultations or SUN RPC. The client receives a result, ensuring the method was executed at least once, or receives an exception stating no results were obtained. This can achieve broadcast messages for those that did not respond. Depending on whether the failure occurred during the request or the response, arbitrary failures may occur (e.g., the method is executed twice). This is a valid semantic when the method is idempotent.

3. At-Most-Once Semantics

Used in TCP, Java RMI, and CORBA. The client is guaranteed that the method was executed exactly once or receives an exception indicating it was not run. This implements all measures of fault tolerance. There are no errors of omission because if a fault occurs, the message is retried. As it only runs once or not at all, there can be no arbitrary failures.

System Architectural Layers

  • Presentation Layer: Module Initialization, Session Manager, Dialogue Manager, Adaptation and Validation of Input, Channel Adapter, Presentation Templates, Content Management.
  • Business Layer: Operations Implementation, Business Services.
  • Integration Layer: Data Access Manager, Access Services Manager, and specific adaptation managers.

Synchronous Communication and Multicast

This approach generates additional guarantees regarding the order of delivery for multicast messages:

  • Integrity: A process delivers each message only once. If a process delivers a message, it was sent by a member of its view.
  • Agreement: Correct processes deliver the same messages in each view.
  • Validity: Correct processes always deliver the messages they send.
  • Failure Delivery: If a machine fails, a notice of the failure is delivered immediately.

Related entries: