Use a Service Access pattern to provide loosely coupled service access to services from applications that are not service enabled.
The Service Access pattern provides the mediations to transform application input into standard web service requests, and also a mediation point for the application of standard functions such as logging.
When an enterprise architecture moves towards a service-oriented architecture, it is often necessary to accommodate existing systems that run large parts of the business, but that do not have the capability to access services.
Existing applications do not fit naturally into a service-oriented architecture (SOA) environment, and changes to such systems are expensive and require scarce skills. The problem is to find a way of integrating such systems with newer service-oriented packages and applications. In particular, it is necessary to create a bridge between applications that emit messages either directly or by using adapters, and the synchronous HTTP protocol that is generally used with web services.
This pattern is appropriate when an enterprise wants existing applications to utilize the services available in an SOA environment, but the applications cannot easily be upgraded to call services directly.
This pattern is used where client applications provide an XML messaging interface containing data that is processed by calls to web services. The pattern can be extended with transforms to support client applications with non-XML messaging interfaces.