Virtualizing the Application
But what's really getting a lot of attention right now is virtualization as applied to the application. Again, there are various approaches.
One approach is not newthe application virtual machine approach. The goal here is to let application binaries run on different computer operating systems and architectures. Applications are compiled to a standard portable binary format, and a VM installed on the target machine executes the binary. Highly familiar example implementations of this concept include p-code in the UCSD P-System and more recently, the Java Virtual Machine (JVM) and Microsoft's Common Language Runtime (CLR) for .NET.
But while the use of application virtual machines might be called "application virtualization," that term is now being commonly applied to an approach that is only now becoming practical, due to fast LANs. This is on-demand software delivery through application streaming.
Application streaming contrasts with server-based computing in that, in application streaming, the application runs on the desktop, not on the server. But it is not installed on the desktop; it streams, in an on-demand fashion, to the workstation.
For this to work, there needs to be software running on the workstation that implements a sealed-off virtual environment, a sandbox, in which the application executes. This is the virtualization.
Once you've started running the applicationand chances are you'll only need 10-15 percent of the code to runmore software components can download in the background, and components you aren't using now can be cached locally and used again.
One benefit of this is that the application executes at native speed, since it is running locally. Another benefit is that, once the application has arrived at the target computeror better make that "device," since it need not be a workstationthe device can run the application without being online. And the load on the server that streams the application is less, so more clients can run the application at onceor fewer back-end servers will be required to serve the same number of clients.
Among the companies active in the application streaming area are Softricity (www.softricity.com); Thinstall (whose name reflects the company's roots in the older thin-client paradigm, www.thinstall.com); Appstream (whose name is clearly more trendy, www.appstream.com); Ardence (www.ardence.com); and Trigence (www.trigence.com).