CDK Concept: Understanding Exchange Patterns
Basic Concepts
- An exchange pattern
- consists of multiple steps, all of which must be completed before the exchange is complete.
- always begins with a Consumer.
- always ends with a Status, unless...
- is terminated if a message exchange is received with ERROR status.
- A message exchange
- has IN, OUT, and Fault (normalized) messages.
- can only have one exchange pattern for its lifetime.
- can have PROVIDER or CONSUMER role depending on the pattern's current step.
- is not complete unless Completing message exchanges
- ALWAYS COMPLETE MESSAGE EXCHANGES!
Here is the key for the diagrams below:
InOut
- Consumer sends a message exchange with the IN normalized message (i.e. the request payload)
- Role: Consumer
- Status: Active
- Provisioner accepts the message exchange and processes the IN message
- Role: Provider
- Status: Active
- Provisioner sends the message exchange back with:
- an OUT message
- a Fault message
- a status of ERROR
- Role: Consumer
- Status: Active | Error
- Consumer sets status of DONE or ERROR and sends acknowledgement to Provider
- Role: Provider
- Status: Done | Error
InOnly
- Consumer sends a message exchange with the IN normalized message (i.e. the request payload)
- Role: Consumer
- Status: Active
- Provisioner accepts the message exchange and processes the IN message
- Role: Provider
- Status: Active
- Provisioner sends the message exchange back with a Status of ERROR or DONE
- Role: Consumer
- Status: Done | Error
RobustInOnly and InOptionalOut
Neither of these exchange patterns are used much and are not supported by most, if not all, of Sun's JBI components. If you plan to support these patterns, the same rules apply regarding completing them.
Mailing List
For questions and comments, please subscribe to an appropriate list at
OpenESB Mailing Lists
.
Developer:
Kevan.Simpson@Sun.COM
Number of visits: 1
This page (revision-5) was last changed on
22-Feb-09 16:55 PM, -0800
by KevanSimpson.
This page was created on
22-Feb-09 16:08 PM, -0800 by KevanSimpson.
More info...