NOT QUITE A VIRTUAL SLAM DUNK
Application platforms such as those from BEA, IBM, Microsoft, Red Hat, and Sun ought to be relatively easy to virtualize. First, they're already partly virtualized, meaning they run inside a Java or .Net virtual machine that isolates apps from the underlying operating system. This was done to simplify development by making applications more portable and secure, but it also should aid with agility. In addition, all these major application platform vendors, except BEA, sell OS-level virtualization technology (see table, p. 35), so they're in a position to help make the two work together better.
Combining OS-level virtualization with Java VMs is essentially a management challenge. At present, virtual instances of operating systems are created and managed by software that's bundled with hypervisors from vendors such as VMware and XenSource. This hypervisor-level software is good at understanding how a virtual server's resources relate to physical hardware, but it can't see inside applications.
Conversely, SOA and Web services management tools can't see outside an application platform. Most provide management agents that run inside Java VMs, but they don't know whether the underlying server is virtualized or not.
The biggest player in Java is IBM, through its WebSphere line. IBM has offered virtualization in mainframes for 40 years and still pitches its System i and System p as platforms for Java apps. Both have full OS virtualization built in to their AIX and i5/OS operating systems, respectively, and can support Web services either by running Linux or Windows inside a virtual machine or directly through Java VMs. This affords a lot of flexibility, but the need to standardize on IBM proprietary hardware and software will put off many enterprises.
IBM doesn't have its own hypervisor for standard x86 servers, but it does contribute to the Xen open source project and partners with hypervisor vendors, including VMware. Its main virtualization offering here is WebSphere Extended Deployment (XD), which provides for clustering multiple Java VMs. Administrators can set internal service-level agreements for specific services; the system then will configure Java VMs based on demand by creating new virtual instances and prioritizing the resources available to each. This capability isn't limited to IBM products, so WebSphere XD will work with most Java VMs and operating systems. However, it's limited to Java apps because it doesn't reach down into the hypervisor layer.
Windows servers running .Net are a part of most Web services installations, and Microsoft has big plans in both SOA and virtualization. In SOA, Microsoft last year announced Oslo, a long-term strategy aimed at simplifying application development by replacing code with a Visio-style model. Microsoft's virtualization plans are much closer to fruition. It already offers Virtual Server, which allows users to run older versions of Windows Server on top of the latest version, and plans to ship in the third quarter its Hyper-V hypervisor as both a component of Windows Server 2008 and a standalone product. There's little integration between the two--mostly because Oslo is still vaporware and may not ship before the end of the decade.
Red Hat has become an important Java player thanks to its acquisition of JBoss, which the company is now extending up the stack from the platform into SOA middleware. Because it's free and open source, JBoss has spread rapidly, even though most users aren't paying Red Hat customers. "We're in as many enterprises as BEA and IBM," says Shaun Connolly, VP of product management for JBoss at Red Hat.
Red Hat also baked the Xen hypervisor into its Red Hat Enterprise Linux, in order to offer a complete stack--albeit one that must run RHEL and so doesn't truly compete with XenSource and VMware. Red Hat says that most of the demand for virtualized services is in testing scenarios. Because Web services are relatively easy to create and can have a major impact on other parts of a hardware or software infrastructure, testing them in virtual environments is necessary to ensure compliance with industry standards and internal policies.
Sun's Solaris has its own built-in virtualization technology, called Containers. This is really application virtualization: Only one copy of the operating system runs, but apps are still separated. Applications do need to be able to run on Solaris, though the company offers a compatibility layer that emulates Linux APIs.
Sun also is entering the hypervisor market with xVM, open source management software technology that it hopes can reduce what Sun calls "VM sprawl," the growth of unmanaged--and sometimes entirely unknown--virtual machines throughout an enterprise. Though built on Xen, xVM includes failover and predictive self-healing technology that can isolate faulty hardware components without affecting individual VMs. By shipping a combo of Xen and management software, Sun is competing directly with specialist Xen vendors XenSource and Virtual Iron Software, and with VMware. Most of the non-Xen technology in xVM is ported from Solaris, though it doesn't require Solaris or any other Sun hardware or software.