Professional Documents
Culture Documents
Streaming Technology
Whitepaper
Executive Summary
Spoon allows applications to be delivered to any desktop, without
downloads, installs, and hassles. Spoon streaming, a key component in the
Spoon platform, is a powerful new technology that enables most
applications to launch over 5 to 20 times faster than traditional download-
and-setup-based delivery methods. With Spoon streaming and app
virtualization,
Enterprises can provide their employees, partners, and vendors with access
to the applications they need – instantly, reliably, anywhere – via the web,
portals, or directly to their desktops; and
2
Solution Overview
EASILY STREAM YOUR APPS TO THE WEB, PORTALS, AND DESKTOPS
Spoon streaming delivers applications over the web, portals, and desktops
over 5 to 20 times faster than traditionally downloaded applications, with no
installs or hassles. Spoon streaming works with standard web servers and
does not depend on proprietary streaming protocols, device drivers, or
network infrastructure. And because Spoon streamed applications execute in
an isolated virtual machine environment, they are accessible even on locked-
down desktops, without administrative privileges, and across operating
system variants, including Windows 7.
3
Spoon streaming, together with the tightly integrated best-in-class Spoon
app virtualization engine, offers unprecedented application delivery
performance; universal publishing via the web, internal portals, and directly
to desktops; a seamless end-user experience, including transition to offline
execution and the desktop shell; comprehensive application and platform
support; and fast and easy implementation.
Unprecedented Performance
Spoon streaming allows most applications to launch over 5 to 20 times faster
than traditional download-based software distribution.
QuickBooks 2009
OpenOffice 3
Outlook 2007
Second Life
Acrobat Reader
Safari 4
WinAmp
4
Publish Everywhere – Web, Portals, and Desktops
Spoon supports streaming of applications to existing Internet web sites,
internal web portals, and directly to enterprise desktops.
Spoon web delivery works with existing web sites and web servers and
requires the addition of just a single line of HTML code. And the Spoon
streaming web experience is fully customizable through a simple Javascript
interface.
Spoon web delivery uses a small browser plugin that integrates Spoon
streaming and virtualization functionality directly into the user’s web
browser. The plugin takes only a few seconds to configure, does not require
any browser restart, and can be installed without administrative privileges on
the desktop.
5
Portal delivery allows applications to be launched from within existing web
portal systems, including Microsoft SharePoint, IBM WebSphere, and Novell
Teaming, as well as custom-developed portal solutions. Portal delivery
displays Spoon streamed applications directly within the portal interface.
Desktop delivery allows Spoon Desktop delivery allows streamed applications to be launched directly from
streamed applications to be the shell, just like a locally installed application. Local registration creates all
launched with the same experience of the Start menu shortcuts, desktop icons, file associations, and uninstall
as desktop applications, including menu items that would exist had the application been installed locally.
the Start menu, desktop shortcuts, Spoon “wires up” these shell integration points to the virtual environment
and file associations.
and streams the application on demand.
6
dependencies and conflicts; and a fully user-mode implementation of all
components, eliminating the need for administrative privileges, device
drivers, and reboots.
Flexible host device isolation modes assure that streamed applications can
interact where appropriate with other applications and the host device – for
example, to save documents to the user’s My Documents folder – while
maintaining the isolation required to avoid conflicts with other virtualized
applications or previously installed software. Virtualized applications can
optionally be configured to be visible to one another where appropriate. For
example, one application in an office productivity suite may be allowed to
interact with resources from another suite application; or, a game publisher
might configure all of its titles to share player profiles and high scores.
Spoon supports all client and server editions of the following operating
system platforms:
Windows XP
Windows Embedded XP
Windows Server 2003
Windows Vista
Windows Server 2008
Windows 7
Windows Embedded 7
7
Unreal, Unity, Torque, and other popular game engines
Mono .NET Framework
Microsoft Visual C runtime (MSVCRT)
Microsoft DirectX client (all versions)
Spoon works transparently with most popular DRM and copy protection
systems, including Armadillo.
Applications are virtualized for use with Spoon using the Spoon Studio
authoring environment. Studio monitors and analyzes the installation of an
application onto a clean desktop and constructs a virtual machine package
based on deltas between the pre- and post-install machine state. Studio
allows the application builder to apply any desired configuration options
directly into the virtual machine state so that it arrives in a completely ready-
8
to-run state. For example, business management applications can arrive with
enterprise policy settings wired in, or games with desired options pre-set.
Enterprises that primarily use widely available applications can find hundreds
of pre-built applications on the online Spoon.net application library or in one
of the ready-to-use application templates in Studio. Of course, any custom
or proprietary line-of-business applications would continue to be virtualized
with Studio.
Spoon Virtual Machine and Spoon Stream files (in .svm and .spoon formats,
respectively) can then be uploaded to a Spoon Server, the Spoon.net online
library, or any Spoon-enabled third-party product. The Spoon.net online
library offers hundreds of popular applications as ready-to-run Spoon stream
format packages. Enterprises can import streamed applications published on
Spoon.net into Spoon Server with a single click.
9
Spoon Streaming Technology
A RADICALLY NEW APPROACH TO APPLICATION STREAMING
10
The composition of these two breakthrough techniques – adaptive delivery
of semantically decomposed application modules – coupled with the
standalone, zero-installation capabilities of the Spoon user-mode app
virtualization engine achieves a completely new level of performance and
usability.
Adaptive Streaming
For most Internet users today, “streaming” brings to mind web-based music
Spoon dynamically computes a
statistically optimal delivery and video players – media begins playing before it has fully downloaded and
sequence based on observed user playback proceeds while the transfer continues in the background. In fact,
behavior, and adapts the delivery this is the conceptual principle underlying existing application streaming
stream as the user flows through systems – a linear progression through an application according to a one-
the application session. dimensional track.
Unfortunately, unlike music and videos, applications and users do not follow
a single, predetermined path from start to finish as the application session
unfolds. Worse, once application demands deviate from the expected path,
one-dimensional streaming systems are forced to make round trips to the
streaming server to bring in the data pages required to continue execution.
On TCP networks, these roundtrips are often extremely time-consuming,
especially over the Internet and other WAN systems. All the while, the
application is frozen and the user waits patiently – or fumes in frustration.
11
To use an analogy, previous streaming systems function much like a train
riding on a single track. Such a train is efficient only until the traveler needs
to deviate from the single static path, at which point a train becomes
extraordinarily inefficient. Spoon adaptive streaming, by contrast, provides a
comprehensive train network, with many tracks and stations leading to all
important destinations in the city. As the user flows through the application
session, the streaming engine shunts the transmission flow “train” to the
appropriate path, continuously updating the stream to achieve the
statistically optimal ordering and prediction path inferable from all available
data. The result is a smooth and efficient ride through the application
session.
Modular Decomposition
Traditional streaming systems make a second essential modeling error with
respect to application structure. Rather than view applications in terms of
semantically meaningful objects such as features, stages, or other functional
modules, traditional systems decompose applications into pages (typically
corresponding to 4K disk pages) or files. Because these naïve
decompositions do not map in a one-to-one manner onto the resource
consumption structure implied by the application and user behavior, the
resulting transfer pattern is highly inefficient – involving either many small
page accesses which induce costly roundtrips to a streaming server, or
Modular decomposition
dramatically improves network wasteful transfers of files. And in both cases, multiple requests may be
transfer efficiency and enables required to pull down the potentially widely dispersed resources required to
distribution over HTTP and CDNs. implement a particular section of the application.
12
server, a key source of inefficiency in existing streaming systems. And
because modular reduction reduces streaming to simple file transfers, Spoon
streaming works over traditional file distribution mechanisms, including
HTTP/HTTPS and content distribution networks (CDNs) such as Amazon
CloudFront, Akamai, and LimeLight.
The Prefetch
The prefetch consists of resources One module of special importance is the prefetch, defined as the subset of
required to launch the application. virtual application package contents that must be available in order for the
It is typically 5 to 20% of the VM application to launch. Since the application launches only once the prefetch
package size and can further be is transmitted and Spoon virtualization eliminates all other installation and
optimized by software developers.
configuration steps, the size of the prefetch is linearly proportional to the
startup latency of the application.
The prefetch size is typically between 5% and 20% of the total application
package size, but is determined entirely by the specific data consumption
patterns of a particular application. An application that consumes a large
amount of data up front will by necessity have a larger prefetch size;
conversely, an application that consumes only a small amount of data early
on will have a smaller prefetch.
13
While Spoon can be used over any Internet connection, Spoon streaming is
not recommended for use with sub-500kbps connections due to the
likelihood of execution interruptions. Instead, such users should download
the entire Spoon VM and execute the application locally when the entire
application package is available.
14
Implementing Spoon Streaming
POWERFUL, FLEXIBLE, AND EASY-TO-USE AUTHORING AND
DEPLOYMENT TOOLS
Virtualizing Applications
Spoon provides an easy-to-use virtual environment authoring tool, Spoon
Studio, which makes it easy to virtualize and stream existing desktop
applications. No source code or application modifications are required.
15
Studio also enables a virtually unlimited range of additional application pre-
configuration customizations. Examples include customized start pages and
favorites in browsers, pre-populated user names and options in games, and
pre-configured enterprise policies in productivity applications.
All virtual machine state is wrapped into the Spoon VM payload which is
subsequently analyzed, modeled, optimized, and packaged for distribution
through the Spoon streaming engine.
Note that virtualization itself, even when not used in conjunction with Spoon
streaming, offers tremendous advantages to software publishers and
enterprise desktop managers. Application virtualization eliminates
application conflicts and runtime dependencies (such as the .NET Framework,
Java, and Adobe AIR runtimes) and allows applications to execute in isolation
from the host desktop device. Virtualized apps can even run on locked-
down desktops, enhancing availability and security, and across multiple
operating system variants, including legacy applications on Windows 7. Of
course, Spoon streamed applications automatically inherit all of the
advantages inherent to execution within the Spoon virtualized operating
system environment.
16
The Studio build process is fully command-line scriptable and can be
configured via a simple XML configuration interface, making it easy to
incorporate into automated build processes.
Profiling Applications
Because Spoon streaming is based on machine learning technology, Spoon
needs to “watch” an application execute one or more times in order to
construct its model of the application. Once the application has been
virtualized, Studio is used to capture profiles of typical application
executions. Profiling simply involves launching the application from within a
special profiling mode in Studio and using it as would a typical end-user
while Studio records the application’s interaction with the virtual kernel
environment.
Most applications can be streamed effectively after profiling just one or two
sample runs. Highly complex applications, particularly those consisting of
multiple sub-applications or where a user may follow a variety of widely
divergent execution paths, may require additional runs along representative
execution paths to achieve optimal performance.
Building Models
Once profiles have been gathered, the statistical model of the application is
ready to be built. The model combines all of the information contained in
the aggregated profile data to produce the modular decompositions,
prefetch, and statistical decision-making paths (following the earlier analogy,
the train tracks and stations) to be used to stream the application. Models
can be updated at any time using any pool of profiles as source data.
The model build process takes anywhere from under a minute, for small
applications, to several minutes, for more complex applications. Model
building can aggregate the one or two profiles used for most applications, to
hundreds for highly complex applications.
17
Model building produces a model file and associated set of modules, which
are simply copied to a web server, CDN, or other network-accessible file
sharing system. Alternately, all of the stream payload contents can be
packaged into a single Spoon stream file, which can be mounted on any
Spoon-compliant system, including Spoon Server and the Spoon.net online
library, with a single click.
SpoonReg “http://xyz.com/myapp.config”
18
Try Spoon Now at Spoon.net
Spoon.net has hundreds of streamed applications available online. Try it
now and experience Spoon streaming technology for yourself.
Free evaluation versions of Spoon Server and Spoon Studio are also
available.
© 2010 Spoon. All rights reserved. Reproduction in whole or in part in any form or medium
without express written permission is prohibited. Spoon is a registered trademark. Other
trademarks are the property of their respective owners. Patents pending. Spoon believes the
information in this publication is accurate as of the date of publication. Such information is
subject to change without notice.
19