Message Transport

2.Message Transport

Each component needs a Message Transport service for sending and receiving messages. Message Transport service connects to Node Manager service through local socket. Messages from the component are routed by Node Manager service.

Message Transport service becomes READY when Node Manager Ready messages are received. When READY, Message Transport service can send messages to Node Manager service, and post received messages to services of the component.

The Message Transport service periodically sends Query Link messages to the components that it sends messages to. The recipient components reply Report Link messages that allow the Message Transport to calculate the round-trip time to the components.

Require: none

Inherit from: none

2.1 Service Behavior

2.1.1 State Diagram

Figure 1 Message Transport State Diagram

2.1.2 State Actions

State Actions
  • Make local socket connection to Node Manager.
  • Raise ieLSConnectChange when connects successfully or fail.
  • Periodically sends Component Ready to Node Manager.
  • Wait for Node Manager Ready.
  • Periodically sends Component Ready to Node Manager.
  • Check if Node Manager Ready timeout.
  • Dispatch received messages to services.

2.1.3 Internal Events

Event Parameters Purpose
ieLSConnectChange Connected = [true | false] Indicate local socket connection state.
ieNodeManagerReady Ready = [true | false] Indicate Node Manager Ready state.
ieSendMessage Request to send the message
ieReceiveMessage Dispatch received messages

2.1.4 Transitions

Transition Trigger Condition Action
A ieLSConnectChange Connected = true
B ieLSConnectChange Connected = false
C ieNodeManagerReady Ready = true
D ieNodeManagerReady Ready = false
E ieLocalSocketConnect Connected = false

2.2 Protocol

2.2.1 Incoming Message Set

# ID Message
1 H:0x00000001
Report Link
2 H:0x00000001
Node Manager Ready

2.2.2 Outgoing Message Set

# ID Message
1 H:0x00000001
L: 0x00000101
Query Link
2 H:0x00000001
L: 0x00000103
Component Ready

2.3 Parameters

  1. CYCLEINTERVAL double, time interval in seconds of each cycle, default=0.1
  2. LOCALSOCKETFILEPATH string, local socket file path, default=”/tmp/ulils”.
  3. CONNECTRETRYWAIT double, time in seconds to wait before making new local socket connection, default=2.0
  4. LINKTESTINTERVAL double, time interval in seconds for checking the message round trip time between components, default=150.0.
  5. LINKTESTDURATION double, time interval in seconds that the link test proceeds, default=5.0
  6. NODEMANAGERREADYTIMEOUT double, timeout in seconds for not receiving the node manager ready messages, default=5.0.
  7. COMPREADYRATE double, time interval in seconds for sending comp ready message, default=1.0.