Architecture - nrohwedder/ubermep GitHub Wiki

Previous step: Requirements

Message Exchange Pattern:

At first we need to define the Message Exchange Patterns used.

Definition:

Legend:

  • {Message}: Number of Messages to be send; the elements of a message are: address, payload

  • {Confirmation}: Number of Confirmations to be send; elements: address

  • {Request}: Number of Requests to be send; elements: address, paylad

  • {Response}: Number of Responses to be send; elements: address, payload

Unicast:

  • Message: 1

  • Confirmation (optional): 1

frame

Multicast:

  • Message: 1...n

  • Confirmation (optional): 1...n

frame

Single Request Single Response:

  • Request: 1

  • Response: 1

frame

Single Request Multi Response:

  • Request: 1
  • Response: 1...n

frame

Multi Request Multi Response:

  • Request: 1...n

  • Response: 1...m

frame

Architecture:

The architecture of ubermep is shown in the picture below. The transport layer of ubermep is given through the uberlay-projekt.

frame

Protocol:

The structure of the protocol used is the followed:

frame

where * marks the fields that are not communicated if not used.

Explanation:

  • id: needed to identify the message
  • type: specifies the type of a message
  • reliable: specifies if a message is reliable or not
  • curr. message: shows the number of the current message, only used for Multi Response - responses
  • nr. of message: shows the number of the amount of messages to be send, only used for Multi Response -responses
  • payload: the content of a message

Legend: In the following the elements x and - are defined as:

  • x := set
  • - := not set

Unreliable Unicast:

frame

Unreliable Multicast:

frame

Reliable Unicast:

frame

Reliable Multicast:

frame

Single Request Single Response:

Request:

frame

Response:

frame

Multi Response:

The patterns: Single Request Multi Response and Multi Request Multi Response are combined in one message-type: Multi Response.

Request:

frame

Response:

frame

RPC:

Request:

frame

Response:

frame

Next step: Examples