Application virtualization provides many benefits including rapid application deployment, self-healing via reset, application isolation (e.g. running multiple versions of IE side-by-side) and improved security just to name a few. A challenge associated with application virtualization is packaging the application. Symantec Workspace Virtualization simplifies packaging by allowing the application install to capture the application to a virtual application layer; however, this mechanism can produce inconsistent packages depending on the environment in which it is captured. The virtual application library control (VALC) is an ActiveX control that is installed along with the SWV Layer Definition Tool that makes creating consistent virtual application layers as simple as a single click.
The VALC is installed along with the SWV Layer Definition Tool. The installer can be downloaded from here on Symantec Connect. Expand the archive and run the contained .MSI installer. Follow the default prompts in the installation wizard and all the components will be installed, including the VALC.
Launching and Using the Control
The VALC is made accessible from a shortcut that is added beneath the “Layer Definition Tool” with in the Symantec folder on the Start menu (Figure 1).
Figure 1 - Virtual Application Library Control Shortcut
The is shortcut points to a local html file named CLDFCtrl.htm that contains the HTML tags necessary to embed the VALC ActiveX control within an IE browser. By default Internet Explorer security settings prohibit loading ActiveX controls without explicitly allowing the control to load in the browser (See Figure 2).
Figure 2 - IE Security Banner when loading VALC
Once the VALC control is permitted to load, the control will be displayed as follows:
Figure 3 - Virtual Application Library Control
The VALC, as it loads, runs several “readiness checks” to ensure that the proper version of SWV is installed and that the current user has sufficient rights to create virtual application layers from LDF Packages. The results of these readiness checks are displayed in the “Status” window. The VALC loads a catalog file that presents a tree control, separated into categories of available packages that can be created very simply by highlighting the desired virtual application and clicking the “Create Layer” button. If the layer already exists on the system the “Create Layer” button will be disabled. That’s it! All the details related to packaging an application are all handled by the LDF package. The LDF package is a self-extracting archive that contains an XML-formatted file that defines all components of the virtual application, including public file-source information that is used to create a virtual application layer.
How it works
The VALC provides a single interface for discovering and creating virtual application layers using Symantec Workspace Virtualization. It downloads a catalog file that contains definitions for each LDF package and presents them via a tree-view control to the user. When selected and the "Create Layer" button is clicked, the VALC downloads the LDF package and extracts it by invoking the self-extracting LDF package. A brief flash of the console prompt will be observed as the package is extracted. The LDF package contents are extracted to the folloing folder:
A folder is created beneath this path for each LDF package that is invoked. If the LDF file needs to be modified in some way it can be modified in this folder and SWVLDF.exe can be used to create the virtual application layer.
The SWVLDF ActiveX control can be configured using HTML tags. Following is an example of how the ActiveX control is configured within CLDFCtrl.htm:
<TITLE>Symantec Workspace Virtualization Virtual Application Catalog</TITLE>
<OBJECT ID="CLDFCtrl" CLASSID="CLSID:76B30EA0-E284-441E-BCC0-FC7374E2C2CB">
<PARAM NAME="ConfigSrc" VALUE="http://www.symantec.com/connect/sites/default/files/vzldfcat.zip">
<PARAM NAME="VersionBase" VALUE="0">
<!-- Use the following PARAM (WorkingDirectory) to change the working directory. This is where downloaded files are stored, etc. By default this is the windows temp directory (e.g. for Windows XP: c:\Documents and Settings\<current user>\Local Settings\Temp and on Windows 7: C:\Users\<current user>\AppData\Local\Temp
<!-- <PARAM NAME="WorkingDirectory" VALUE="C:\temp\"> -->
<PARAM NAME="SWVMinVersion32" VALUE="6.4.1266.0">
<PARAM NAME="SWVMinVersion64" VALUE="6.4.1266.0">
<PARAM NAME="SWVDownloadURL" VALUE="http://www.symantec.com/business/products/trialware.jsp?pcid=pcat_infrastruct_op&pvid=wkspc_virt_1">
<PARAM NAME="DownloadDomain" VALUE="http://www.symantec.com/connect/sites/default/files/">
<!-- Logging: 0=OFF, 1=ON - log file will be created in "WorkingDirectory" (see param above) -->
<PARAM NAME="Logging" VALUE="0" />
<!-- Logging Level: 0=Errors only, 1=Warnings, 2=Information, 3=Trace (verbose!) -->
<PARAM NAME="LoggingLevel" VALUE="2" />
<P>This component requires Internet Explorer.</P>
The <PARAM NAME> tags can be used to set properties of the SWVLDF ActiveX control properties. Following is a description of each of these properties:
- ConfigSrc – Defines the location of the LDF Packages “Catalog File”. The default is to download this from Symantec Connect, however, for testing purposes the path can be set to a local copy of the file (see appendix for example of the vzldfcat.xml). Note: the SWVLDF control will download the most current version of vzldfcat.zip from Symantec Connect. This file is not “published” on Connect. The file download is made available but it is not available as a download to the public. Updated versions are of the form: vzldfcat_#.zip where # is incremented for each new update of the vzldfcat file. The tool will take care of ensuring it downloads the most current version of the catalog file.
- VersionBase – Specifies the base version of the vzldfcat_#.zip. Incrementing this value causes the tool to attempt downloading a more current version from Symantec Connect (this can improve the startup time of the tool).
- WorkingDirectory – defines the directory where the LDF Packages are downloaded and executed.
- SWVMinVersion32 – Specifies the minimum version of SWV the tool with work with. If the installed version does not meet this minimum requirement the readiness checks will fail.
- SWVMinVersion64 – Same as SWVMinVersion32 only for the 64 bit version.
- DownloadDomain – Specifies the base domain from which LDF packages can be downloaded.
- SWVDownloadURL – Specifies the URL from which trialware version of SWV can be downloaded. (Shown to user is status if SWV is not installed on the current system. Ideally, SWV would be downloaded and installed automatically in the event is doesn’t exist on the current system).
- Logging – Specifies whether all SWVLDF operations should be logged to a file. If set to “1” (true) then a date-based log file will be created in the “WorkingDirectory” location.
- LoggingLevel – Defines the level of logging displayed to the VALC “Status” window. Following are the possible values: 0=Errors only, 1=Warnings, 2=Information, 3=Trace.
This information can be used to embed this control in your own HTML web pages or for use in a any development environment that supports embedding ActiveX controls. The good news is that no knowledge of this information is required to make use of VALC, however, if there are scenarios within your business that would benefit from embedding this control it can be customized according to the properties defined in this section.
Virtual Application Catalog File
The VALC retrieves a catalog file from the Symantec Connect site to build and present the library of available LDF Packages. It is possible to configure the <PARAM> tags to point to a local copy of the catalog file on the local file system.
The Virtual Application Catalog file is an XML formatted file that defines the LDF Package Categories, LDF Packages, LDF Package download URLs, versions and dependencies required to describe the package and to retrieve the packages from the public repository.
The Virtual Application Catalog file accommodates defining LDF package dependencies so layer dependencies can be honored. For example, if the Eclipse IDE is selected the tool will check its “depends” attribute and download and create the “Java 6 update 22” first, then download and create the Eclipse layer.
Following is an example of a LDF package catalog definition followed by a description of each field:
name="Eclipse Java Indigo Win32"
Description of <ldf-package> element attributes (<ldf-packages > container element may contain more that one <ldf-file> elements. Most have one but it is possible to have an LDF Package that has multiple LDF files)
- name – Visible name of the LDF package
- id – unique identifier for the LDF packaged used for purposes of defining and resolving LDF package dependencies.
- src – specifies the download URL for the LDF package.
- depends – specifies
- desc – description of the LDF packages.
- os - primary OS platform (not enforced, just informational).
- arch – hardware platform for which the created app is targeted (not enforced).
- run-type – specifies whether the LDF package can be executed without human intervention (default is auto, no packages require human intervention).
Description of <ldf-file> tag attributes:
- name – name of an LDF file to be processed.
- action – Defines the action to be performed. Only supported operation is: import – create layer from the LDF.
- layerid– the layer ID of the layer to be created. This is used primarily to test if the layer already exists on the system before trying to download and create it.
- flags – the flags for the “action” operation. (V is the most common, which is to create the virtual application layer without version checking. Version Checking is unnecessary because LDF packages are using CRC checking for file match).
The details of the catalog file are blissfully hidden from the user; however, they are presented in this section for scenarios in which one may desire to create their own catalog file for LDP packages they produce.
The Virtual Application Library Control greatly facilitates the creation of virtual application layers by presenting a “single-click” interface that presents categories of LDF packages in a single location. The VALC takes care of ensuring that virtual application layers that depend on other layers have all required dependencies downloaded and created as part of the layer creation process.
As the library of LDF packages grows, and is made available via the VALC, the burden of creating packages shifts from IT to the community that builds and tests these packages. Imagine a day when most virtual application packages are made available from Symantec Connect and IT can allocate the time previously used to package virtual applications to focus on the interesting problems that face the enterprise! The VALC provides a big step in that direction.
NOTE: If there are applications you’d like to see appear in the Virtual Application Library make them known in the comment section beneath this article! Also voice your opinion on the idea of building an open community for creating and refining LDF packages.
Download for the SWV Layer Definition Tool installer: http://www.symantec.com/connect/downloads/symantec-workspace-virtualization-layer-definition-tool
Information about LDF Format
How to create and LDF from an existing virtual application layer:
Detail on how to virtualize IE (goes into detail on LDF XML format):
How to customize Virtual IE Settings within and LDF:
Library of all available LDF Packages: