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
Multicast:
-
Message: 1...n
-
Confirmation (optional): 1...n
Single Request Single Response:
-
Request: 1
-
Response: 1
Single Request Multi Response:
- Request: 1
- Response: 1...n
Multi Request Multi Response:
-
Request: 1...n
-
Response: 1...m
Architecture:
The architecture of ubermep is shown in the picture below. The transport layer of ubermep is given through the uberlay-projekt.
Protocol:
The structure of the protocol used is the followed:
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:
Unreliable Multicast:
Reliable Unicast:
Reliable Multicast:
Single Request Single Response:
Request:
Response:
Multi Response:
The patterns: Single Request Multi Response and Multi Request Multi Response are combined in one message-type: Multi Response.
Request:
Response:
RPC:
Request:
Response:
Next step: Examples