It seems like every week there’s another article about “Network Installation Services” – even if we don’t realize it. I believe Apple really hit the nail on the head with their iPhone App Store, as evidenced by the copy-cat implementations in the WebOS App Catalog, Chrome Store, and Mac App Store – the most recent being Amazon’s App Store. It’s as if the iPhone’s lack of a CD drive forced everyone to realize that end-users don’t want to swap discs, read instructions, or ask for help.
So why do the companies I meet have manual processes? For example:
- The Electrical Engineer submits a request by email…
- And the EE waits.
- The Information Technology specialist responds to the email, probably scheduling a time to setup the program.
- And the EE waits more.
- The IT comes and installs the software on the workstation.
- And the EE and the IT wait together. Small talk happens, but they’re both silently wishing to resume working towards their project-related deadlines.
This is such a proliferative problem that there’s an application installation solution for every size company:
Microsoft System Center Configuration Manager (formerly SMS)
With its exorbitant cost and steep learning curve, I’ve never been in a situation where I could recommend Microsoft SCCM as a solution. Software licenses for 100 users may only cost around $5000 (double the cost of competitors such as LanDesk or IBM Tivoli), but your real cost will be the implementation and maintenance of the system. Anyone running SCCM will have a dedicated specialist managing it – a keystone for the department who manages every desktop, laptop, and server in the company! If you can’t afford 35 man-hours per week dedicated to writing Microsoft-specific code, this isn’t the solution for you.
On the other hand, there are great advantages to be had with automated, centralized application management. Every large organization I know that has it implemented – such as Covidien and Stanford University – tells me it’s the “bee’s knees”. Proper configuration means that every computer going to a user’s desk has the most recent patches, the proper applications, and identical settings (Office 2003 compatibility mode comes to mind, as an example).
Citrix XenApp Application Virtualization
Citrix XenApp, on the other hand, has been my solution for all the medium-sized companies I work with. In short, it runs on a Windows Server and enables access to all your applications from a central location; that is, you install the application on your Windows Server and everyone (or a subset security group) is able to access the application. This is my favorite solution to suggest because of the input-to-output ratio it has: I setup the Windows Server once, install the application on it, test it from my laptop, and then never touch it again.
You can run the application on the server and “stream video” to the end user (similar to Remote Desktop and Microsoft Terminal Server). Citrix refers to this as Session Virtualization. This is especially valuable for two situations:
- A remote user is working with an application that uses a local database or other local resource. Instead of sending all of the corporate data to out through the Internet, the application runs on the server in your Data Center and only displays the output to the user. We use this to allow Software Engineers in India to modify snippets of code using Rational ClearCase while doing the complete application builds locally, instead of transferring the entire codebase across the Pacific every night.
- It’s extremely easy to justify the cost of Citrix XenApp immediately by purchasing fewer, less-expensive licenses that are locked to a single computer. By configuring XenApp to allow only one user at a time, you may be able to reduce an annual 5-floating-license purchase to a single node-locked license.
An alternate delivery solution – Application Virtualization – involves downloading the entire application to the user’s computer and then run the files locally. This is how Adobe Flash and Oracle Java applications are run. This allows users to run processor-intensive applications using their local computing power instead of relying on a shared server resource. Although it typically takes a few minutes to initially download the files, I’ve benchmarked MATLAB and Simulink performance within 3% of a “normal” desktop install.
Ideally, configure your Citrix XenApp server to use both Session Virtualization and Application Virtualization to provide the best performance to your users and the lowest cost to your managers.
Silent or Scripted Installers
Lastly, I’ll mention that everyone should be using scripted installers at a very minimum. The feature is included – free! – with almost every application you buy; the second time you install a program you’ll have recouped the time spent configuring your installation script. Check the Installation Documentation that came with your purchase, or just scour the internet for hints. Here are some links to get you started with configuring silent installers for common programs:
- My secret shortcut: one-click installs of FireFox, Flash, Java JRE, Acrobat, and everything else from Ninite.com
- Configure a silent installation of Office 2010
- Silently installing Adobe Creative Suite 5 products
- See page 16 of the SolidWorks 2011 Installation Guide
Subscribe to the blog to keep informed on Engineering application management, remote installation services, and other topics of interest to IT and engineering professionals.
Application Integration Engineer, SPK