Message Routing

Documents can be routed in data flows either implicitly and explicitly.

With implicit routing, or routing by to logical ID, a to logical ID header is used to find an appropriate endpoint. The header is sent together with the message. The implicit routing is mainly used together with Request-Reply BOD messaging pattern.

The implicit data flow:

  1. You model a data flow from Application A to Application B.
  2. Application A sends a request message, Process or Get, to application B.
  3. Application B generates a reply document, Acknowledge or Show. The logical ID from the From Logical ID request message is added to the to logical ID in the reply message.
  4. The reply message is received by ION. The “to logical ID is read and the message is routed directly to the Application A.

Explicit routing, or routing by data flow, uses the data flow model to find the endpoint. Explicit routing of reply messages means that you can control the flow of reply messages in the same way as for request messages.

The explicit data flow:

  1. You model a data flow from application A to application B.
  2. You model a data flow from application B to application A.
  3. Application A sends a request message, Process or Get, to application B.
  4. Application B generates a reply document, Acknowledge or Show. The logical ID from to logical ID request message is added to the to logical ID in the reply message.
  5. The reply message is received by ION and the relevant data flow is found.
  6. The message is routed to application A according to data flow for reply message, to logical ID is ignored.

Explicit routing of reply messages can be used to control reply messages. In situations where the to logical ID cannot be used to route the message to the correct target. Explicit routing has priority over implicit routing. If a message with to logical ID is received and Data Flow is found, the Data Flow route is used instead of to logical ID.

Note: When a data flow is used to route reply messages, that is also containing valid to logical ID, there are two ways to route. When data flow is active, to logical ID is ignored and routing is done according to data flow. When data flow gets deactivated, routing according to data flow is not possible. The message is delivered with implicit routing according to to logical ID possibly to different connection points.