A core benefit of service-orientation is the ability to reuse existing assets across multiple applications as service consumers. This reduces the time to develop new applications, increasing agility and reducing cost, but it also increases the potential for change to one application (service provider) to cause many other applications (service consumers) to fail. Development governance change management and consumer contract provisioning solutions will help address this challenge, but in many cases changes will be required so the enterprise must ensure that services consumers are effectively abstracted and protected from these changes.
Virtualization – Service virtualization provides companies with the ability to create virtual services that offer a stable interface (location, transport, standards, policies, messages) even when the physical service changes. Virtualization offers high-availability and load-balancing, performance and SLA monitoring and management, routing, versioning, and mediation capabilities to mitigate the impact of change at the provider on service consumers.
Versioning – Services go through a development lifecycle just like any application, in fact services are often published by an application that has its own lifecycle. As a natural part of this lifecycle applications and services will be versioned, and will often go through significant changes as part of this process. If the only consumers of a service are part of the same application, and as such are versioned at the same time as the service itself, then there is no challenge, however this is not the case with services that are published for general reuse. If a service is used by multiple consumers there a several models available to protect the consumers from changes to the service as part of a versioning process. One model is simply to track all the service consumers through a consumer contract provisioning process and inform them of any upcoming changes. Another model is use a virtualization solution to maintain a virtual service that models the old interface using transformation as necessary to communicate with the new interface. The best practice is to combine these two approaches using the contract model to inform consumers of change and encourage them to adopt new interfaces, while using virtualization to mitigate the impact of changes.
Mediation – As the complexity of service interfaces grow to provide enhanced security and reliability capabilities, the set of consumers capable of consuming the services shrinks. Mediation solutions provide tolerance to ensure that the widest possible set of consumers can consume a service by making sure that the service is tolerant of different message types, policies, transport, and many other variables.
SOA Software’s products are used by Fortune 500 companies to ensure continuous operation of their service-oriented applications leveraging powerful change impact mitigation capabilities.
SOA Software’s Service Manager provides a platform-independent, policy-driven SOA virtualization and mediation solution to ensure that services can be confidently consumed by applications on any platform without risk of change causing outages.
SOA Software’s Policy Manager provides comprehensive consumer contract provisioning capabilities to track service consumers and notify them of versioning events.
One of Service Manager’s core strengths is its mediation capabilities. It offers a range of mediations including:
Service Manager can mediate between a wide range of standards, message styles (SOAP, POX, etc), message exchange patterns (REST, SOAP, MOM, etc), transports (http, https, JMS), reliablity models (WS-RM, WS-RX, MOM, etc), security tokens (SAML, Kerberos, X.509, session cookies, etc). Mediation is enabled declaratively through the standalone intermediary based on impedances between inbound messages and the requirements, capabilities, and policies of the destination service.
For more information about SOA Software’s market-leading products, click here.