"Transport" composite

The transport composite is currently in the JBI-Messaging composite, but will be moved out petals-fractal-transport.png

The "Transporter" is used to send or receive message through the platform.

"Dispatcher" component (implementing the Transporter)

void send(exchange,componentName,containerName,timeToLive)

  • Send the specified exchange to the specified container. According to the
  • transport policy, the message is may be not persisted by the Transport
  • layer, so it can be lost in case of problem.

MessageExchangeImpl sendSync(exchange,componentName,containerName,timeToLive)

  • Send the specified exchange to the specified container and wait until the
  • response is received or the timeout is reached. According to the
  • transport policy, the message is may be not persisted by the Transport
  • layer, so it can be lost in case of problem.

void addDestination(componentName)

  • Inform the Transporter that the specified component is
  • installing. The transporter may need to initialize a device to handle new
  • bound destination.

void removeDestination(componentName)

  • Inform the Transporter that the specified component is
  • uninstalling. The Transporter may need to cleanup the
  • device that handles the bound destination.

MessageExchangeImpl receive(componentName,timeoutMS)

  • Poll a received message for the given component
    • The time to wait if greater than 0
    • A non blocking call if equal to 0
    • Infinite Blocking call if less than 0

void startTraffic()

  • Start the Traffic with the components. this method activates all the
  • communication traffics between components. This method is called once the
  • JBI recovery step is done.

void stopTraffic()

  • Prepare the stopping of the component. It means that all ongoing message
  • traffic must terminate during the method invocation and all new message
  • traffic is rejected.

List getTransporters()

ProtocolMonitor getProtocolMonitor(protocolName)

  • Retrieve the monitor agent for the given protocol.

"Protocol" components (dream, joram, local)

Depending on the required reliability, the Dispatcher forward the message to send to the correct Protocol.

Each Protocol is also responsible for listening incoming messages from another distant Petals Protocol instance (or local, for the Local Protocol). When a message is received, the Protocol contacts the Dispatcher to inform it of a new message. Next, the Dispatcher contacts the various Protocol to retreived the received messages.


Transporter