In the past few weeks, I've spoken with representatives of JBoss and TIBCO. Both of these companies are proponents of the idea that Web-based applications are best built using an application framework that does a number of things for the developer including the following:
- Isolate the application from the underlying systems to improve reliability and availability
- Allow an application to call on services that might be located on one or more different physical or virtual machines as if they were local resources
- Isolate the application from different types of data sources so data can be processed in a uniform way
Both of these companies share some common attributes including the points that both have developed quite a strong following, both are heavily oriented towards supporting standards and both are pragmatically targeting real-world problems IT professionals face daily.
Notion of application virtualization
In the past, I've presented application virtualization as technology that encapsulates an application or stands between an application and the underlying environment to provide enhanced capabilities including:
- platform neutrality
- increased levels of performance through parallelism
- increased levels of reliability/availability by allowing functions to fail over from one system to another
- increased levels of scalability by presenting a large workload to a number of instances of the application
- enhanced application mobility by delivering an encapsulated application to a remote device either by streaming it down to the device, allowing a simple file copy to the device or some other approach to application migration
- allowing a monolythic application to automatically be treated as a multi-tier application by forcing user interface, application processing, data management and storage management functions of an application to run on separate systems (without also requiring the application to be re-architected
This is one of the layers of the Kusnetzky Group Model of virtualization software. Sorting out the different layers of virtualization is a post offering an overview of the model.
May I have the envelope please
The key question is "should tools supporting service oriented architecture (SOA) applications be considered a form of application virtualization? If you believe this technology either should or shouldn't be categorized in this fashion please tell me why you hold that belief.