This figure below presents the notion of exchange that is a main concept of SOA paradigm.
A exchange is composed of information to route exchange such as source address, destination endpoint and service name. It can also contains other metadata information to manage non-functional global contexts.
During the lifecycle of an exchange, it is composed of one or several messages:
- MessageIn: It represents the client request.
- MessageOut: It represents the provider response (used only for InOut exchange pattern).
- MessageError: It represents the provider error (used only for InOut exchange pattern).
- MessageAck: It represents the acknowledgement of provider (used only for InOnly exchange pattern).
A message contains these following items:
- An header: That contains meta-data to manage the routing of exchange or others non-functional aspects such as security, reliability or transactional features.
- A body: That contains the xml payload of client request or provider response.
- Attachements: That contains all attachments provided with the messages.
The model of this exchange is represented below: