RG033 – How VDX works

By Max Ranzau


RES Software offers you to try out the brand new VDX product and also the chance to win 100 VDX licenses on the www.reverseseamless.com website. All you have to do is click the Win-button and register your details. Note however that if you also want to download the eval you will currently have to register twice.

If you are completely new to the concept of VDX or reverse seamless, it’s best technically explained like this: Citrix invented a special displaymode for remotely published applications back in the late nineties. It allowed an application being executed on a remote server to look like it was part of the local desktop. They called this displaymode Seamless Windows. A few years later RES Software developed and patented the RES Subscriber, which did (and still does) the exact opposite: Make a local application blend into a remote desktop, hence the desciption Reverse Seamless This is extremely useful these days where VDI is being deployed everywhere and many problems come to the surface in the shape of apps which are ill suited for one reason or another to run over the wire in a remote environment.  Both Citrix’s and RES’s technology has the following in common: It’s really all just smoke and mirrors. No graphics are being sent over the wire, just a few control commands. What makes the illusion complete is some really nifty windows clipping. In the case of VDX, it makes it possible to spoof the user to believe it’s possible to sandwich a local application window in between a remote app and a remote desktop – running in the same window!.

For those of you already familiar with the Workspace Extender and the Subscriber products, these are seperate components which have been with us for a long time. While similar in concept, they do not have anything to do with VDX. There is a seperate article on these now legacy components here. To make sense of the differences between VDX and these other products I have written a seperate post about this topic.

While the intro video from RES explains nicely how to get started with VDX, this article offers some notes on how the product licensing and the evaluation works. There are 4 components included in the package. Except for the admin pack, each component is provided in both x86 and x64 .MSI installers:

  • VDX License server – Doesnt’ require IIS like other licensing servers, however you will need to have the .Net 4 Client Profile installed as a prerequisite.
  • VDX Engine – The piece you install onto the remote VDI/TS/Citrix environment
  • VDX Plugin – No, it’s not a browser plugin. It’s the VDX piece that goes onto your local client. Currently only Windows clients are supported. Stay tuned..
  • VDX Admin Pack – Includes more docs and the tools to tweak the operation of VDX. It also includes a stand alone copy of the License server console so you can administer licenses from an administrative workstation.

VDX License Server basics

Let’s first talk about the license server. The core purpose is obvious, so let’s clarify a couple of things about the way it works. First of, this particular license server has nothing to do with the licensing of Workspace Manager or Automation Manager. It only dishes out licenses for VDX and nothing else. The type of licenses used by VDX are perhaps best described as expiring seat licenses. What this means in plain english, is that if a given client running the VDX plugin hasn’t been online for 45 days, the VDX seat license is automagically returned to the license pool and thus can be used by someone else after that. You can also manually revoke a license if, for example a laptop is stolen or lost.

If the license server is not available, any client that has claimed a license already will be able to continue using until the 45 days or whatever is left, expires. This is actually very important from a Disaster Recovery point of view. We know this method already from Citrix who used to timebomb the usage of their Local Host Cache before switching to a central datastore. Practically this means; if your VDX license server blows up, you’ve got 1½ months to fix it.

The license server comes with it’s own license console, which is identical to the one bundled into the VDX admin pack. If you install both the admin pack and the license server on the same rig, you’re going to get two shortcuts to a license console. They both do the same though. To better understand the licensing basics there are 3 main scenarios we want to discuss:

  1. You already have RES Workspace Manager 2011 installed with Enterprise licenses, on the same machine as where the VDX Engine is running.
  2. You don’t have Enterprise licenses for WM2011
  3. You do not install a license server

Scenario 1: If you already have have RES Workspace Manager 2011 installed and have enabled the new VDX integration node in the WM console. In this case the VDX engine component will be launched by the workspace composer instead of the HKLM\…\Windows\Run key. There are two seperate subscenarios of this:

  • You have the Enterprise edition licenses for WM2011. If this is the case, VDX licenses are included, thus you do not have to install the VDX license server in order to serve up reverse seamless windows. It has to be the Enterprise edition of the WM2011 licenses for this to work
  • You have Bronze, Silver or Gold. VDX is not included in these editions. You can however purchase licenses and import them into Workspace Manager under the Setup|Licensing node.

VDX will in these instances store it’s licenses within the Workspace Manager 2011 datastore, so in both subscenarios you do NOT need the license server. VDX will work with PowerFuse 2010 or earlier too, however VDX cannot recognize these older versions as a license source. You will need the VDX license server for all those environments. Alternatively you still have the Subscriber and the Workpace extenders available for use with PF2010 and earlier. See future article RG034 for more information on the new Workspace Manager 2011 editions.

Scenario 2: If you do not have WM2011 Enterprise installed, the the VDX Engine will look for a license server. The default method is discovery via multicast. Using the VDX editor tool in the VDX Admin Pack you can edit a config file for the VDX engine. More on this later. One of the may options in this config file to specify a license server host. There’s more about the communication further ahead. When you install the license server, it will give you the choice to run in production mode or evaluation mode. If you chose the latter, you will get 10 VDX seats for 30 days to try out the product.

Scenario 3: If you do not install a license server, or a license server cannot be contacted, the VDX Engine will operate in trial mode evaluation mode, allowing you only to try reverse seamless windows in a 5 minute grace period per session. In other words after 5 minutes of each session VDX will stop functioning and you would have to logout and log back in for it to work again. Any extended local apps will be remain runningm but all the Z-mode clipping is turned off and you can’t start new extended apps until you log out and back in again. Then you’ll get another 5 minutes. Here on the right is a screenshot of what the expiry looks like.

Presuming that you do need to run a VDX license server, there are a couple of interesting things to know. The license server installs as a OS Service, shortnamed RESVLS. The full executable runs with localsystem credentials. The license server uses .Net TCP (part of .Net 3+ as I understand it). There is more information about it here. It looks like the default TCP port for .Net TCP is tcp/808. You can however change this port for both the License Server, License Console and the VDX Engine. This is documented in the VDX guide, page 16 and 18.


VDX Engine Basics

As you probably have seen in the video by now, getting the VDX Engine on the remote system up and running is really just next, next, finish. The VDX Engine executable; VDXengine.exe installs into the HKLM\…\Windows\Run\ key, thus launches inside every session.When it launches, you will be provided with a system-tray icon () which when clicked provides a launch menu that can fire up the extended applications. The interesting bit is that the menu being displayed is actually an extended application by itself. That way VDX doesn’t have to send information about the entire start-menu across the wire to the remote session.

In this section I want to cover a couple of the more interesting aspects of the engine component, specifically configuration and Z-order. As for configuring the VDX Engine, there are no less than 4 different ways that you can go about doing this:

  1. Configure it using an xml file
  2. Use a policy template
  3. Use registry settings
  4. Use RES Workspace Manager 2011

1) Of the 4 choices the XML file offers the most granular configuration options. For example it is only with the XML file that you can configure license server locations. Additionally you can configure what should happen when you click on a Mimetype (such as mailto, http://, etc.) or a regular filetype – either locally on the client computer or inside the remote session. You can also configure static shortcuts to client applications. You can modify the icons for both mimetypes, filetypes and static shortcuts. Finally, it’s also possible to configure conditions on file- and mimetypes. With a condition you can ensure an icon for an extended app is only shown if it actually exists on the local computer. Also you can add AD users and groups to a condition, creating a simple access control. I suspect we’ll see some interesting articles in the future based on this.

The VDX engine will look for the XML file when it launches within a session. The default path for this file is %programfiles%\RES Software\VDX Engine\configuration.xml. However the file does not exists here to begin with, you have to create it either manually using a template or using the VDX Editor that is part of the VDX Admin Pack.

You can specify the path of the configuration.xml file, simply by adding the path after the executable in HKLM\…\Windows\Run\RESVDXEngine key. Format is VDXengine.exe <path-to-configuration.xml>. The nice thing is that you can use either a c:\local\path, a \\UNC\path or even a http://server/path to the file.

In order to create the configuration.xml, it’s a good idea use the template file in the same path, called configuration_example.xml. If you have installed the VDX admin pack you can also find this template file in %programfiles%\RES Software\VDX Admin Pack\SupportFiles. Click on the icon to the right to view the file.

2) The second option for configuring the VDX Engine is using a Group Policy Object template. This is probably your weapon of choice if you already are immersed in GPO’s and have no plans to look into RES Workspace Manager at the moment. Note however that the GPO settings are limited in capability, compared to the XML file as you can only configure general settings for VDX through GPO’s. More on these in the next section. The policy registry keys are stored in either HKCU or HKLM\SOFTWARE\Policies\RES\VDX Engine.

Here’s a preview of the policy template. Do make sure you always use the latest policy template, included with the VDX Admin Pack. Once it’s installed, you will find the .adm file under %programfiles%\RES Software\VDX Admin Pack\SupportFiles.

3) Your third option is to configure the VDX Engine’s behavior is through the registry directly. As with the group policy, the configuration options are currently limited compared to the XML configuration file, mentioned in option 1. Based on the releasenotes I have put together a registry guide for VDX which you can find in technote RG032.

4) The fourth method of managing VDX is to enable VDX integration in Workspace Manager 2011. In the product console, go to Setup |  Integration | RES VDX. As you can see from the screenshot here on the right, the options available to configure here, are the same as you are able to set on the Settings tab of the VDX editor. All other options for shortcut generation and redirections still need to be configured through the configuration.xml file as described above.

A very important note about enabeling VDX integration. You can enable VDX integration in all Bronze, Silver and Gold editions of the product –

However, as mentioned in scenario 1 above, it’s only when you have Workspace Manager 2011 Enterprise licenses that VDX does not require seperate licenses. If you are in doubt what licenses you have, look in the Setup | Licensing node of the Workspace Manager Console.  Even though you may have enterprise edition, you are still allowed to try out lower tier editions of Workspace Manager. In the screenshot on the right you can see that I’ve set my WM edition to Bronze. This does not affect the ability to receive licenses for VDX through workspace Manager.


Understanding Z-order and display modes

The one thing that really sets VDX apart from anything else out there, is the ability to handle the Z-order of the windows, which effectively are being merged from both the remote and the local desktop. Z-order refers to the depth order of the windows. If you imagine a bunch of papers spread out on a regular (wooden) desktop, the papers on top will cover papers underneath. That’s logical. Where it becomes iffy is when some of those papers actually do not exist on that desktop, but still have to pass the impression across to the user that they all on one desk.

This is what Z-order takes care of. As you can see by looking into the VDX trace-logs, you can see that VDX tracks the size and movement coordinates of each and every window on both desktops in order to pull off the illusion that you actually can, as we talked about above, sandwich a local window in between a remote desktop and a remote application running on it. It is important to note that the old Subscriber and Workspace extender does not provide Z-order. There are 3 different display scenarios which are supported by Z-order. These are described on page 6 of the VDX guide document. I will try to explain them a bit here:

Scenario #1 – Single monitor: Here both the remote and the local desktop are running on the same display. The remote desktop will be on top and hide the local desktop and it’s startmenu. The remote desktop will display both local and remote applications. If a local application (X) is overlapped by a remote app (Y),  Z-order will make sure to clip the local app.

Scenario #2Dual monitor with spanned desktop: Both the remote and the local desktops will be stretching across both monitors. It will look and work like scenario #1 except for the fact that it’s running across two viewports.

Scenario #3 –  Dual monitor with seperate desktops: In this setup the two desktops are running on each their own display, which means two seperate startmenus will be shown. The interesting scenario is what happens when an application is attempted dragged from one desktop to another. An application can obviously not be dragged away from the viewport of the desktop it covers. In other words, if a remote desktop covers only one monitor, you can’t drag any apps from it locally. The same goes for a local desktop that only exists on one monitor.

The VDX Engine together with the VDX plugin will per default try to detect the scenario at hand and hide the start menu when appropriate. You can override this behavior by tweaking the registry settings for the VDX engine, which are described in RG032 here. Tip: Pay attention to the values DetectAlreadyRunningClientApps and HideClientTaskbar.

Further Reading

Here at the end of the article, I want to make sure you have all the information available about VDX at your disposal.  Make sure you download the 3 existing PDF documents which are available from the portal. I would suggest that you read them in the order they are shown below. The PDF icons below link directly to the documents which are free to download from the RES Support portal. Mirrorlinks are provided also

Getting started with VDX [Mirror]. An easy 3 pager which takes you through the basic installation steps, shown in the video.

VDX Guide [Mirror] This is the document where all the goodies are. Make sure you read pages  is how to configure Plugin<->Engine redirections on pages 13-17. Also check troubleshooting on page 22-23.

VDX Licensing [Mirror] Here you can read about the licensing model, how to install the admin pack and license server and how to register and activate VDX licenses.

No Comments

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment

Comments are welcome as always. Just do the math below. * Time limit is exhausted. Please reload the CAPTCHA.