Message Routing
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:
- You model a data flow from Application A to Application B.
- Application A sends a request message,
ProcessorGet, to application B. - Application B generates a reply document,
AcknowledgeorShow. The logical ID from theFrom Logical IDrequest message is added to theto logical IDin the reply message. - The reply message is received by ION. The
“to logical IDis 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:
- You model a data flow from application A to application B.
- You model a data flow from application B to application A.
- Application A sends a request message,
ProcessorGet, to application B. - Application B generates a reply document,
AcknowledgeorShow. The logical ID fromto logical IDrequest message is added to theto logical IDin the reply message. - The reply message is received by ION and the relevant data flow is found.
- The message is routed to application A according to data flow for reply message,
to logical IDis 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.
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.