In a vein similar to Microsoft's Application Virtualization (App-V) and VMware's ThinApp, Novell's ZENworks Application Virtualization 9.0 is a solution for packaging programs into a single self-contained executable that can be run without any special privileges in a virtual "bubble" that isolates the application from the OS and other programs. ZENworks also provides a means for users to stream virtual applications from the Internet or a network share. Streaming an application is similar in concept to how videos load on sites such as YouTube -- users can start using the core application features while the remaining code downloads in the background.
Although ZENworks shares some common methodologies with App-V, one major technical difference between the two products is how applications are virtualized. ZENworks relies on before-and-after snapshots of a PC to determine the differences and create a package, whereas App-V monitors an application's native installer to create a package.
When I launched the ZENworks UI, which is referred to as the studio, the configuration wizard offered to scan the PC's desktop for installed applications, which can be packaged using a readymade "recipe," (i.e., a set of predetermined actions required to successfully virtualize a physical application). The wizard detected Adobe Acrobat Reader 10.1, but I was a little surprised to find that none of my Microsoft Office 2010 suite applications were detected for reasons I'll reveal later. Nevertheless, I decided to go ahead and package Acrobat Reader. ZENworks contacted an online server for the latest recipes and proceeded to package the application after I chose the destination directory. Once that was completed, I ran the virtual package and Acrobat Reader started and worked without any problems, as if I had installed the physical application on the PC.
Alternatively, the wizard offers a list of templates that you can use to package commonly used applications. There were many templates for Adobe programs in the list, but I was surprised to find templates for Office 2010 applications, although they only supported the 64-bit versions. That's likely why my Office applications weren't detected when my PC was scanned; per Microsoft's recommendation, I have the 32-bit versions installed because I don't need to address large memory spaces using any of the suite programs. The lack of support for x86 Office seems to be a rather odd omission on Novell's part.
Despite previous bad experiences with before-and-after snapshots to create installer packages in other applications, I decided to try this technique to package the Citrix Systems GoToMeeting client. In retrospect, this probably wasn't the best candidate for this test, but it's a relatively simple application. I used the handy wizard, making a few simple decisions along the way, such as which file format to use and the output directory. Unfortunately, the resulting package wouldn't even launch, with no indication of what the problem was or whether something had gone wrong in the snapshot process.
The ZENworks studio includes support for adding runtimes to a package. So, if your developers are working on a .NET application, they can use the studio's Runtimes tab to select the correct version of the Microsoft .NET Framework (up to version 4.0) and have all the necessary library files added to the package. When the virtual application is launched, there's no requirement for the .NET Framework to be preinstalled on the client PC. Runtimes are also available for Java, Adobe Flash Player, Adobe Shockwave Player, and Microsoft SQL Server 2005 Express Edition. (There's no support for the newer versions of SQL Server.)
Modifying my packages' file and registry entries in the studio was easy. I could also add files and registry keys as necessary if they had been missed for whatever reason. Other settings are also easily edited, such as the ability to change whether child processes are spawned in or out of the virtualized environment, which could be important for security and compatibility. After you configure the file, registry, and package settings, they can be exported as a shared component (.svm file) and reused across multiple virtual applications.
In the Setup pane shown in Figure 1, you can create basic Windows Installer (.msi) packages for virtual applications, without needing to use a database table editor such as Orca.exe. I was able to edit the basic .msi file information, add desktop shortcuts, and file associations.
Although it’s not a requirement, you can prevent virtual applications from running if the ZENworks Configuration Management Agent is installed on the client device. The agent gives you more control over which PCs virtual applications can be run on. If you want, you can have the virtual packages automatically expire and create custom messages that warn users a predefined number of days in advance of the expiration.
A Tool for Developers
I tried repeatedly to contact Novell to provide support for this product, but was unable to get a response. My time with ZENworks Application Virtualization and my previous experience of capturing applications using before-and-after snapshots lead me to believe that it's better suited for developers or systems administrators who know how to work with Windows Installer databases and other installer technologies. Anyone who expects that using the snapshot method to virtualize complex applications is an easy, quick option might find that it's actually a time-consuming process or even that they're out of their depth. As such, I can't recommend this application for those people looking for a reliable, user-friendly packaging solution.
ZENworks Application Virtualization 9.0