One of the most demanding tasks of a system administrator is managing software assets. Regardless of the size of your organization, you will always have a number of COTS applications, some special ones and some legacy applications that you plan to redo some day but have not yet been able to do. Most sizeable organizations will have a number of different operating systems running in their client machines as well. An application that runs on Windows XP may not work on Vista or Windows 7. There could even be legacy applications that demand only a specific OS.
Every time an application or an OS changes an exercise has to be undertaken to judge compatibility and functioning. Application management is therefore not a trivial exercise in any sizeable organization.
The DLL Jungle
For example, Windows applications rely on DLLs (dynamically linked libraries) for functions such as interchanging information, printing, graphics displays, communication needs etc. These functions are not built into programs, they are simply called when required– hence the name ‘libraries’. Each application installation carries these DLLs in its installation package. Version management of the DLL is often an issue which is why you often get warnings about DLL versions when you install new programs. There could even be situations when different applications require different versions of the same DLL and you need to somehow make them co-exist on a system.
Without getting into excessive detail, it is enough to note that managing application software is not a simple task.
Although application / software virtualization had been introduced several years ago, its use is still developing. Many organizations are still using installer packages and electronic software distribution to distribute their software. While the distribution itself may occur over networks, compatibility issues remain.
How does Virtualization Help?
Application virtualization (AppV) decouples the applications from the operating system. It also transforms application distribution management because when an application has been virtualized once, the virtualization engine will now ensure that it runs on any version of the OS it has been virtualized for. There even are programs available that will take all your installer packages and convert them to run in the AppV environment.
If AppV is used as a software delivery system, then it loads the entire software on the host computer, whereas if it is used as a streaming system then only just that much is first served which will get his application working. If one takes the example of MS Word in a virtualized environment, this would mean just the essential code to open an existing file or open a new file. The remaining code is streamed to the user even as he works. This improves the user experience and reduces the load on the network.
Maintaining a pristine OS
There is a need to maintain a pristine operating system to ensure security and stability. However, if every application you install is going to load its own DLLs and alter the OS parameters, then stability and security both suffer. Application virtualization creates a kind of a surrounding layer around the OS which protects it from any changes the application would make during its installation.
It is important to understand is that a virtualized application is not the application software but with a running instance. Since the application is presented to the OS as a running instance, the application virtualization layer translates the application’s requirements for the OS. The application cannot alter the OS and this helps keep the OS secure and stable.
Running Different Versions of Programs
Application virtualization insulates applications from the OS and from each other; it therefore allows different versions of the same software to run on the same machine with ease. This is possible even if the applications themselves have major conflicts with each other. Take for example the various versions of MS Access. Access 97, XP, 2003 and 2007 have a number of incompatibilities with each other. Yet you can run these programs on the same virtualized environment with ease and even cut and paste data from one to the other. This is because of the application virtualization layer insulating the applications from each other and the underlying OS.
Selecting an Application Virtualization Solution
Any good application virtualization solution must meet a minimum number of requirements. These are listed below:
Besides making the management of software simpler, application virtualization has other benefits as well. These are:
With application virtualization, companies are setting new standards of application and OS stability and get better visibility into their application environment. In the quest for more efficient and simpler computing, application virtualization is an important step.
To help you understand how to minimize vulnerabilities in web applications, Qualys provides this guide as a primer to web application security. The guide surveys typical web application vulnerabilities, compares options for detection, and introduces the QualysGuard Web Application Scanning solution. more
With the growth of the Internet and the increasing reliance on web and mobile applications, it’s no surprise that data breaches associated with applications are also increasing. So how does your organization address application security today? more