Read This Update First

Thursday, February 24, 2011

Please be sure to read How to ThinApp SmartStation Part 2 first before proceeding.  There are some interesting limitations that I discovered during pilot testing that you should be aware first.  Your environment could be different than mine with a different set of requirements so your mileage may vary with this approach.  Good luck!

The SmartStation Dilemma

Many small-to-mid-sized brokerage firms like the one that I work for utilize an application called Thomson Financial SmartStation.  This application is a behemoth of an application that needs to be installed on just about every computer on our network.  Brokers utilize the application to get real-time quotes, do market research and execute trades of all kinds.  This application is the main tool utilized by our core business and without it we’d be considered self-clearing which would add a lot of administrative overhead to the work that we do.

But with many applications that are this large in size, updates to the application come very and I mean very slowly.  For example, the application didn’t support Internet Explorer 7 (that’s not a typo) until Summer of 2010!  Thus, we had to run Internet Explorer 6 on a vast majority of our workstations because of this.   This application is also the main reason why a movement to Windows 7 won’t occur until they complete the web-based version of the application (a move most applications made a long time ago).

Enter VMware ThinApp 4.6

We recently upgraded our VMware virtual infrastructure licensing level to vSphere 4 Enterprise Plus.  For our vCenter server we moved up to vCenter Server 4 Standard.  There are some features that I wanted to explore in the Enterprise Plus product, like distributed switches, that weren’t present at the Enterprise level.  The vCenter Server 4 Standard level will allow me to manage an unlimited number of ESX and ESXi servers and was necessary for a project that I plan on getting to later this year.

Along with this licensing upgrade we got a number of FREE products from VMware!  I love free stuff and among the goodies was a license for ThinApp 4.6.  In short, this application provides a means for virtualizing applications.  The idea is that you can package your legacy applications and run them in a controlled virtual environment no matter the operating system that the application will be deployed on.  The application will appear as a normal application to end users.

So instantly I thought it’d be cool if I could virtualize this SmartStation application preserving the ideal operating environment for the application which would in turn eliminate the restrictions on what O/S we can run on all of our workstations.

The Clean Environment

Based on the recommendations found in the ThinApp 4.6 User’s Guide, create a clean virtual environment from which to capture applications.  In this VM I installed Windows XP SP3 with all of the latest updates and a pretty large hard drive (100GB) for storing even the largest of applications.

Take a Snapshot First

Before beginning the capturing process, take a snapshot of the VM in its clean state so that you can go back to this state for installing other applications.  Thus if you plan on using this VM for virtualizing other applications in the future, this is the way to go.

About Adobe Reader

Recently, we’ve been having issues with newer versions of Adobe Reader crashing SmartStation.  According to my SCCM reports, we have many different versions of Adobe Reader installed on the workstations in our domain.  So to ensure that the correct version of Adobe Reader (version 8.2.4) is installed along with SmartStation, we will need to use the Application Link feature of ThinApp.

So after taking a snapshot and before doing a prescan for SmartStation, do a prescan for Adobe Reader 8.2.4 and create a ThinApp out of it first.  Be sure to create the .dat file as it will be needed when doing a ThinApp of SmartStation.  Do not rollback to a pre-installed state of Adobe Reader.  We want to keep all of the changes to the filesystem and registry that have been made.  Make a snapshot of this state as this will be considered the Clean Environment or Baseline state from which we create the SmartStation ThinApp.

ThinApp Postscan for SmartStation

Now that we have our Baseline environment along with the .dat file for Adobe Reader launch the ThinApp Setup Capture tool from the Start > Programs menu.  Click Next past the Welcome screen then click the Prescan button to perform a prescan of the system.

SmartStation Installation Steps

There are several steps that are specific to our environment and implementation of SmartStation that may or may not apply to you.  The following are the steps that we perform for every installation of SmartStation that we deploy.

  1. Install Thomson ONE SmartStation 4.5 Build 31 from the MSI provided to us by Wachovia.  The installation usually is performed in 3 steps with 3 separate MSI files for each step.
  2. Install Thomson Reuters BETALink 10.2 Build 37 which as of the time of writing this article is the latest version.  It was recently released as part of the Fall 2010 upgrade.
  3. Install the BETALink Workspaces Configuration utility which is the 3rd and final component of the installation.
  4. Go to C:\Program Files\Thomson Financial\Thomson ONE and launch RDCSetup.exe.  This particular utility is for configuring how the computer will connect back to the Thomson ONE servers.  We have a private point-to-point connection to their network so we enter IP Addresses for both the Primary and Secondary servers.
  5. (Optional) – Create a C:\Temp\Workspace folder.  This is an optional step that I only do as a matter of convenience just in case our Help Desk guys want to use a Workspaces backup and Recovery tool.
  6. (Optional) – Copy the SS45-Backup and SS45-Restore tools to the installation directory for SmartStation (as listed in Step 4).  If you don’t have these utilities don’t worry as they are not required.  You can contact the Wachovia Help Desk and they will send them to you if you’d like to have them.

After all of these configuration steps have been performed, launch SmartStation and login as a user.  Allow the application to run for 1 minute then close the application.

A Brief Word About Workspaces

The SmartStation application creates Workspaces for each user.  Workspaces is a collection of preferences, settings and customizations that are set by the user.  These Workspaces are very important to our users as many of them have customized quotes screens and other things that allow access to information that is the most important to them.  We back these folders up on the network with a network script that is ran at logoff.

So in the event that a users’ computer crashes we can restore their Workspaces to their new computer and they will not have to reconfigure everything from memory.  It’s very convenient and keeps our users happy.  However, I have decided that I do not want these Workspaces folders stored in the user profiles because they are rather large and could dramatically increase logon times.  So the ThinApp application must be able to meet the requirement that in the event of a disaster, a users’ Workspaces can be restored.  We’ll discuss how this is done a little bit later.

Postscan Steps

Go back to the VMware ThinApp Setup Capture wizard and click the Postscan button.  After the Postscan is complete, select the following as Entry Points:

  • SmartStation.exe
  • ILXConf.exe
  • RDCSetup.exe
  • SS45-Backup.exe and SS45-Restore.exe

Click the Next button.  Allow Everyone to run the package.  We have no restrictions in our environment but if only a specific set of users should run the package feel free to restrict it as required in your environment.

For Isolation select Full write access to non-system directories (Merged isolation mode).  Click the Next button.

The all important Sandbox

The sandbox location is probably the most crucial of the configuration settings for us.  This is were we can effectively store the Workspaces folders on the network.  So I thought of a good way to do this for our environment that might also be good for others as well.  This is what I did:

  1. On our NAS server I created a shared folder called SANDBOXES$ (share permissions Everyone: Full Control).  Created with NTFS permissions of CREATOR OWNER:   Modify on Subfolders and files only, Domain Admins: Full control, Domain Users: Read, Write & Execute on This folder only.  I also enabled Access-based Enumeration on the folder so that users can only see the Workspaces folders that they themselves created and no-one else’s.  We can’t have other users deleting or even seeing the Workspaces of other users.
  2. Selected Custom location or network drive and entered \\[NAS_server_name]\SANDBOXES$\%UserName%.  I read in the ThinApp user guide that environment variables are acceptable values for this field which was a HUGE PLUS!  Now each user can have their own folder with all of their sandboxes inside it (of course granted I keep this consistent across all of my ThinApp applications).

Finishing Up

Sending Quality Assurance information is fine with me.  I also removed all of the spaces in the Inventory name just because I don’t like spaces.

Select Use separate .DAT file and do not use an entry point for the Primary data container.  Select Generate MSI package because I plan on deploying this using System Center Configuration Manager 2007 in the future.  Click the Save button to save the project files.

Edit Package.ini File

There are a few edits that need to be made to the Package.ini file before building the ThinApp.  So at the Ready to Build step click the Edit Package.ini button.  Make the following edits to the file:

  1. MSIInstallDirectory remove the “(VMware ThinApp)” at the end because I don’t like spaces.
  2. RequiredAppLinks remove the “;” to uncomment it.  For the value enter the name of the Adobe Reader .dat file (ex. AdobeReader_8.2.0.dat).  Don’t worry about a path.  If you don’t enter a path you will need to copy the Adobe Reader .dat file to the installation directory of the ThinApp application when you install it on the target computer.  This is something that I will make a part of a Task Sequence step in SCCM when I deploy it in the future.
  3. Click File > Save to save the Package.ini file.

Click Build to build the application and grab a cup of coffee because it will be a few minutes.

Build Complete. What’s Next?

Once the build is complete I copy the entire project folder to a folder on our NAS for safe-keeping.  This is so that I can rebuild the project at any time in the future.  Plus, once I rollback to the Baseline snapshot to create other ThinApp’s, these project files will be gone.  I don’t keep snapshots around too long as a matter of best practice.

With the MSI I create a Task Sequence that deploys it and also copies the Adobe Reader .dat file to the installation directory.

In the event that a computer crashes all of the Workspaces have been stored on the network in real-time which is even better than a logoff script.  This is great in that logoff times are faster and the data stored within the Workspaces is more reliable.