I have been doing a lot of thinking lately about virtualization and cloud computing. The more I look at the foundational requirements for virtualization the more I am convinced that there is a close relationship. How can I say this? In the simplest terms, if you think about the fact that the foundation of SOA is a loosely coupled approach. So, if you are going to combine components from various systems into a “virtual application”, how do you maintain state of this entity? While there are many techniques used today for SOA implementations (some are more loosely coupled than others), the reality is that it will come down to virtualization.
Let’s start with a definition.
Virtualization is a technique for abstracting the physical characteristics of computing resources in order to more easily leverage hardware systems, applications, operating systems,networks, graphics, data, or storage so they can be repurposed based on customer need. In addition, in order to virtualize a resource, it is basically put into a “container”. This is the same technique used in the traditional approach to SOA. What makes virtualization important for SOA is the ability to move the presentation and availability of these resources across physical networks and devices.
Don’t get me wrong — this is not simple and we won’t see virtualized SOA in the next few months. However, this is the direction that any vendor that is really serious about creating an environment that will allow customers to have the flexibility to leverage their intellectual property across customers, partners, suppliers, and employees.
While much of the focus over the past few years has been around server and presentation virtualization, I suspect that the future discussions over the coming years will be around the management of virutalization. In other words, you have physical resources, data, images, application components in containers, etc. How to you make sure that they maintain the state that you desire? How do you ensure that this version of your resources acts like a well oiled machine? Clearly, it will be by management software. This is the same discussions the industry has been having around SOA manageability. In fact, it is the same exact discussion. The names may change — the jargon may change but the issues are a continuum of solving the problem of making the right resources available in the right manner to the right entity at the right time with the right response.