If you’ve been getting involved in any enterprise SOA initatives, you may have come across the term “service virtualization”. Novice SOA practioners and architects just getting into the SOA mindset are sometimes confused as to what exactly this means. I think it is best explained by a metaphor to a real-world “virtual” service.
Perhaps the most popular “virtual” service is a stock broker. Stocks are traded on several different exchanges throughout the world. Stocks may be traded on NASDAQ, NYSE, London Stock Exchange, and many more around the world. Each of these exchanges have their own rules governing fee’s, taxes, transactional flows, currency, trading times etc.
We, as consumers of these services, don’t want to concern ourselves with the specific implemenation rules of the different exchanges. We leave this complexity of buying and selling rules to the virtual service – the stock broker.
In this example, specific exchanges provide concrete implemenations while the stock broker provides a virtual service. Virtual services provide this level of abstraction and shielding from specific implementations for the end-point consumer.