How can we allow a service consumer to deal with a synchronous interface whilst protecting the underlying service infrastructure from unacceptable load?
ContributorsSatadru Roy, Chris Madrid
Service Virtualization helps insulate service infrastructure details such as service endpoint location, service inter-connectivity, policy enforcement, service versioning and dynamic service management information from service consumers.
Figure 1 -The base patterns that comprise Service Virtualization.
As shown in the figure, Service Virtualization consists of the following patterns each one of which enables a different facet of virtualization:
- Enterprise Service Bus, which itself is a compound pattern comprising of the Broker, Asynchronous Queuing and Intermediate Routing patterns. This pattern helps with the inter-connectivity of services by handling communication protocol, data structure and format disparities between service endpoints and it also handles reliable messaging with intelligent dispatch capabilities enabling Communication Virtualization.
- Enterprise Inventory, which provides a standardized, enterprise-wide registry or repository of services. The registry or repository also facilitates service lookup and dispatch insulating the consumer from the physical location details of the service provider. The registry may even manage multiple versions of the same service and its schema artifacts and direct consumers to appropriate versions of services resulting in a complete Location Virtualization.
- Policy Centralization, which enables consistent processing and enforcement of policies across multiple services to allow Policy Virtualization.
- Redundant Implementation, which provide a high-availability infrastructure and can allow for dynamic provisioning or decommissioning of services in response to spikes or drops in service demand thus allowing for Service Environment Virtualization.
The following figure illustrates how these patterns can be combined to provide a virtualized service environment that hosts services, handles service lookup and communication, supports version-based service dispatch at runtime, enforces policies, and manages dynamic service provisioning.
Figure 2 - A Service Virtualization infrastructure allows transparent service lookup and dispatch through an Enterprise Inventory, enforces policy through a policy enforcement point, employs elements of an ESB to handle service communication and leverages Redundant Implementation to achieve transparent quality of service management.