|
Service Oriented Architecture and Web Services represent a significant opportunity to develop business systems that can adapt to business requirements in a timely and effective manner. However, operational characteristics of real SOA deployments may derail much of the expected return on investment.
Service virtualization addresses the critical operational, integration and life cycle issues that can derail or delay Service Oriented Architecture implementations. Without addressing these issues through service virtualization and it's supporting abstraction layer, many of the benefits of an SOA are constrained at best and at worst, may not be achieved at all. This white paper is part of a series describing policy, deployment and operational issues and solutions associated with Service Oriented Architectures and Web Services.
The overview paper, "Architecting the Infrastructure for SOA and XML" provides a useful introduction to the broader topic areas.
Virtualization and Abstraction Virtual services abound in the real world, although often we are so familiar with them that we do not recognize them as such.
Stock Brokerage Services In the world of stock trading many different exchanges exist for companies to list with, but few of us are aware of them, and even few of us are in a position to trade on their implemented services directly. Instead we use a virtual service known as a stock broker, who handles requests to buy or sell stock in companies irrespective of what stock exchange a company is listed on. We rely on him to handle the various rules of the exchanges, to correctly handle the interfaces for settlement of trades. We expect stock brokerage services to provide added values such as aggregating transactions and monitoring the transaction for completeness and for tax reporting purposes. Stock brokers are expected to know when changes occur like the movement of a company stock listing from one board or exchange to another, and to analyze the flow of trades to make recommendations about the likely direction that future trading will take. In this analogy, stock exchanges provide concrete or implemented services; the broker provides a virtual service; and the additional values that we derive are provided by the abstraction layer provided by the stock broker.
Networking Services Virtual service examples that we are familiar with in the networking world include services such as name servers and load balancers. A name server (e.g. DNS) allows a network node to maintain a known stable name by which it accessed by even when its network address is changed. Changes to the address or location of the node are concealed from applications using the DNS name to access a network node. Application developers do not need to understand how the network infrastructure works, and are not required to include additional complexity in their code to handle exception events or provide configuration and management. The virtual service is the exposed or published DNS name of the network node, while the implemented service is the physical node being accessed. The abstraction layer provided by the DNS includes value added capabilities such as caching to reduce the cost of name translations. Similarly, a load balancer exposes a single virtual instance of a server identity while supporting multiple instances of the implemented server. The load balancer abstraction layer then provides additional value by distributing the load for the virtual service in various ways across implemented services, or providing fault detection and failover to handle loss of an implemented service. In each of these cases, there is a virtual or exposed service that we interact with (generally through a publication or discovery process), and then instances in various forms of the actual implemented service that supply the physical service. In addition, in each case, there is an abstraction layer that provides the logic that handles change, or adds value on top of the originally exposed service. The naming service abstraction layer simply makes and distributes changes in addresses. The load balancer abstraction layer takes care of load distribution, fail over and fault detection.
|