Executive Summary:
Microsoft’s SoftGrid is an application virtualization solution. Microsoft’s SoftGrid provides a sandbox-type environment called SystemGuard that lets virtualized applications run on users’ systems without requiring local operating system (OS) installation. The SystemGuard virtual application environment contains all the elements a virtualized application might need to access.
|
I'm always astounded by the sheer volume of technologies that exist just in the Microsoft
infrastructure space. Deciding which technologies to make a priority, and determining
which ones will make your life easier (including whether a technology might change
how you manage and maintain your organization), is a constant process.
As the sidebar "The Benefits of Application Virtualization," explains, recent
advances in client and server management and OS virtualization have made software
deployment easier than ever, but problems with application compatibility and manageability persist. Application virtualization lets you run applications locally, which
prevents server-based computing's resource wastage, single points of failure, and limitation to working online. Microsoft's SoftGrid application virtualization solution provides a sandbox-type
environment called SystemGuard that lets applications run on users' systems without requiring local OS
installation.
SoftGrid's Virtual Environment
SystemGuard is a virtual application environment that contains all the elements an application might
need to access, such as files, registry information, COM objects, and environment information. Although
SoftGrid-enabled applications don't require installation on the host OS, they do communicate with the
OS in a controlled manner to avoid duplicating too much data in the virtualized space.
As Figure 1, shows, the application communicates with what it sees as normal OS facilities
within the SystemGuard environment, with full read and write access. SystemGuard then communicates
with the actual OS, using strict controls. Configuration information can be read but never modified.
Profile and document data can be changed in the OS, which lets you save data and maintain an application's environmental preferences between sessions.
The virtual environment consists of several
virtual elements for OS areas that applications
use. For example, the Virtual Registry works
as an overlay to the actual OS registry. If an
application tries to read from the registry and
the registry data isn't in the Virtual Registry
overlay, the read request is passed to the OS,
as Figure 2, shows. Write requests are always made into the Virtual Registry overlay.
The same process works for the Virtual File
System. For example, this overlay ensures
that dynamic link libraries (DLLs) used by an
application are always read from the SystemGuard environment first to avoid any conflicts
with local versions. If an application relies
on a service, the Virtual Services component
lets the service function within SystemGuard,
unknown to any other application running on the OS. Virtual subsystems also exist for the
COM environment, .ini files, process environment, and fonts.
Overhead
SoftGrid's SystemGuard adds less overhead to
your environment than you might think. Other
than the disk space used to cache the application, which is generally less than for a locally
installed application, a virtualized application uses less than 1 percent more CPU than
a nonvirtualized application. This is because
most of the additional processor usage occurs
when SystemGuard first initializes and an
application opens, not while the application
is running. In addition, memory usage is actually lower for running virtualized applications
versus nonvirtualized applications.
Memory overhead can be broken down
into paged pool and nonpaged pool. Most
applications operate within paged pool memory. Paged pool content can be paged to disk
as necessary, and the memory used for a virtualized application is the same as for a locally
installed application. The only additional
memory used is 20MB for the SoftGrid client.
Nonpaged pool memory is used for important
OS information that can't be paged to disk.
Configuration data (e.g., registry data) is
typically pulled into the kernel during computer start-up. As applications are installed, the
registry grows and takes up more space, leading to longer boot times (for HKEY_LOCAL_
MACHINE and HKEY_CLASSES registry areas)
or longer logons (for HKEY_CURRENT_USER
areas).
For SoftGrid applications, nothing is written
to the machine registry. Information needed by
the application is loaded at runtime as necessary. Imagine having 40 applications installed
locally but running only 10 of them—the
registry would bloat significantly as nonpaged
pool memory was used up. Running virtualized applications saves 75 percent of nonpaged
pool memory.
Network bandwidth is also saved because
SoftGrid pulls virtualized applications and
components to the client on demand. Initially,
the client has just an application's shortcut
icon on the desktop. When an application is
used, SoftGrid pulls the application down in a
sequenced form, allowing very fast application
start-up. Only the parts of the application that
are needed are pulled down, which uses less
disk space on the client.
Another interesting benefit is that when
you use SoftGrid with terminal servers, the
"therapeutic reboot" isn't necessary. SoftGrid
has a highly contained execution footprint
and performs an efficient garbage collection
process when an application closes.
SoftGrid Components
The SoftGrid suite has five major components
that let you create SystemGuard applications
and deploy them to clients.
- System Center Virtual Application
Server—Streams SoftGrid-enabled applications to clients and verifies whether a client is
authorized for an application.
- SoftGrid Data Store—Stores information
about the SoftGrid environment.
- SoftGrid Management Web Service—
The interface between the SoftGrid Management Console and the SoftGrid Data Store.
Uses Microsoft .NET Framework 1.1 or later and requires Microsoft IIS 5.0 or later with ASP
.NET extensions enabled.
- SoftGrid Client—A locally installed service running on a user's machine that communicates with the virtual application server
to receive the streamed application and cache
it for use even when the client isn't connected
to the network. The client also contains the
SystemGuard environment for runtime virtualized application execution.
- SoftGrid Sequencer—A wizard-based
tool that's used to create a streamable application from the original application media. This
process will be familiar to users of software
such as WinINSTALL, which creates a .msi
file based on installing an application. The
sequencing of an application actually consists
of three phases: the package configuration,
which is an information gathering stage; the
application installation, during which the wizard monitors the OS for changes the application makes during installation, including
file-system changes, component registration,
and registry changes; and the actual launching
of the application, which is important because
on first use SoftGrid prioritizes the data to
stream to the client based on what is first used
when the application starts (known as Feature
Block 1—FB1—of the stream) rather than
waiting for the entire stream to send before the
application can start.