The communication infrastructure provides the connectivity between systems. The communication infrastructure is a messy place that:
Needs to support a variety of communication patterns (e.g., request/reply, request/callback, asynchronous messaging, publish/subscribe) and the associated Web services standards (e.g., WS-ReliableMessaging and WS-Eventing).
Needs to support message routing.
Needs to provide multi-level security (e.g., transport-level security, message-level security, authentication, authorization, role-based access control, or single sign-on).
The best way to do this is using an SOA where there is a clean separation between the logical service contracts and the physical contracts that define the bindings to particular data formats and protocols. Figure illustrates this by showing three views of the same system:
Multilayer view of multi-channel communications access.
Figure(a) At the highest level of abstraction, the client application (i.e., service requester) uses the business service based on the logical service contract, without any regard for the underlying communication infrastructure.
Figure(b) At the next lower level of abstraction, we see that the logical connection between the service requester and the business service is realized by the service invocation being routed through the channel access tier and the service access tier. The interfaces between all four tiers (service requester, channel access tier, service access tier, and business service) are defined by service contracts. (However, the service requester only needs to be concerned about the contract it uses because the complexity of the lower levels is hidden from the service requester.)
Figure(c) At the next lower level of abstraction, we see that the logical connection between the service requester and the business service is realized using several different data formats and transports (again, the complexity of the lower levels is hidden from the service requester). For instance:
SOAP over HTTP/S is used between the service requester and the channel access tier.
SOAP using WS-ReliableMessaging is used between the channel access tier and the service access tier.
COBOL Copybooks over WebSphere MQ is used between the service access tier and the business service.
In this case, the channel access tier and the service access tier are responsible for payload mapping, protocol conversion, and routing based on information in the physical portion of the logical contract and in a manner that conforms to the higher-level logical contract.