Service Virtualization has now become a much discussed about topic in the SOA arena.Recently I came across a paper by Aaron Skonnard of Pluralsight on this topic.A very concise and self explanatory paper obviously with a focus on Microsoft Platform based implementation.Inspired by that I thought of sharing my understandings too (though at very initial stage)
So what is virtualization?It is the mechanism of abstracting the underlying details of any computing resource like server,network,storage etc from it's user.For example,server virtualization hides the details like the physical identity of the server,number of CPU etc from the end user.Similar concept can be applied to the services as well where the service consumers will work with virtualized version of the service without even knowing where and how it is hosted and other implementation details.
Here is the Service Intermediary provides the loose coupling between the client and the provider.This along with the service metadata repository forms the key component of service virtualization infrastructure.More details on this pattern can be found at:
http://www.ibm.com/developerworks/wikis/display/esbpatterns/Service+Virtualization
Microsoft is coming up with its implementation of the service virtualization pattern with the Managed Services Engine project, currently at CTP stage (can be found at Codeplex).Managed Services Engine provides an infrastructure for service virtualization using WCF and Windows Servers.The key components are:
- The Service Runtime Engine, responsible for managing the discovery and execution of services.
- The Service Metadata Repository built using SQL Server database.
- The Admin UI and Tools built using WPF for configuring the Services.
One of the key benefits of virtualization will be the ability to take advantage of the cloud computing offerings, by hosting and managing the services in the cloud.But the cloud offerings and products needs to mature prior to this.Another major advantage will be collaborative development and maintenance of services by multiple stakeholders of the enterprise as shown below:
Thus each stakeholder will have his own view of the "Services" and can work without any expertise or knowledge of the other's domain.But this somehow is leading to model based development approach where each stakeholder is working on his own domain specific model.There is a common platform mapping and transforming these models from one level to another till execution.This somehow looks like what the project "Oslo" is trying to achieve(if I am correct).Then how these two merge together or I am getting something wrong?
Now I need to explore MSE in greater details......
References:
