Spoon is a radical new virtualization technology that allows software to be run instantly over the web. Application state and storage contents synchronize automatically across all devices.

Spoon works by materializing a virtual environment on the endpoint device, dynamically transferring application components required for execution, capturing application interactions with the storage system into a sandbox, and differentially synchronizing the sandbox contents back to the cloud.

Spoon's patented technology stack combines application and storage virtualization with innovative web-based network and synchronization protocols, machine learning algorithms, and proprietary semistructured large data storage systems.

Application Virtualization

The heart of Spoon is the Spoon Virtual Machine, a lightweight implementation of core operating system APIs, including the filesystem, registry, process, and threading subsystems, completely implemented within the Windows user-mode space. Applications executing within the Spoon virtual environment interact with a virtualized filesystem, registry, and process environment, rather than directly with the host device operating system. The virtualization engine handles requests within the virtualized environment internally or, when appropriate, routes requests to the host device filesystem and registry, possibly redirecting or overriding requests as determined by the virtual application configuration.

The Spoon virtual machine supports application delivery via a small browser plugin, as an embedded technology in third-party systems, or as standalone agentless executables. Because Spoon is a user-mode technology, Spoon can execute applications without any separate client installs, device drivers, or administrative privileges.

The Spoon engine supports merge, override, write-copy, and hide isolation semantics, down to individual file and folder granularity. This allows virtual machine contents to be entirely isolated from, merged with, or hide corresponding locations on the host device. The Spoon virtualization engine dynamically remaps shell folder locations such as My Documents so that proper application behavior is preserved across client operating system versions. Similarly, registry key values containing explicit path names or prefixes are dynamically remapped to the appropriate values for the executing host device.

Spoon also supports virtualization of system services such as web servers and local database engines, component object model (COM) servers, and network services such as DNS. The Spoon virtual machine also virtualizes advanced operating system features including kernel object namespace isolation and side-by-side (SxS) manifests.

The Spoon virtual microkernel has been carefully optimized to add only negligible storage and runtime performance overhead. Spoon's local caching behavior can be adjusted from zero to full local caching, even allowing large numbers of applications to be used from storage-constrained thin client devices.

A cross-platform emulation layer allows many legacy applications and browsers to run properly on new operating systems such as Windows 7 and 8. A generalized multi-platform virtualization layer dynamically adapts virtual machine behavior based on the endpoint platform, allowing a single universal binary to be deployed across all devices.

Storage Virtualization

Spoon automatically captures all interactions with the virtual environment and records storage system and other application state deltas into an isolated sandbox. Spoon also supports integration with native operating system files through shell extensions.

Data is synchronized to Spoon.net using Spoon Sync, a proprietary differential synchronization protocol optimized to rapidly transfer extremely large objects across the web and other wide area networks. Spoon Sync achieves order-of-magnitude efficiency improvements over existing protocols, particularly for multi-gigabyte objects. Spoon has developed novel mathematical techniques to allow compression of large files while preserving differentiability for synchronization and deduplication purposes.

Virtual machine and storage system state is stored in SpoonDB, a custom, distributed schemaless ("NoSQL") database developed by Spoon. SpoonDB is optimized for storage and transport of the extremely large binary objects and complex state transitions encountered with virtual machine workloads. SpoonDB supports both client- and server-side operation, local caching, replication for reliability and performance, queueing, and native support for the Spoon Sync protocol.

Data for Spoon-based applications flows through SpoonIO, a web-hosted instance of SpoonDB providing a virtual, web-scale equivalent of the traditional I/O bus. SpoonIO supports industry-standard encryption, authentication, and identity protocols, including SSL and, via SpoonID, Active Directory and LDAP.

An Alternative to Remoting and Streaming

Spoon takes a radically new approach to the application delivery problem. Unlike traditional remote desktop access or paging-based application streaming, Spoon uses patented machine learning techniques to decompose applications into feature components and dynamically deliver these to a virtual environment on the endpoint device based on statistical modeling of user behavior. This hybrid client/server approach combines the best of local execution and the cloud while dramatically improving reliability and scalability.

Adaptive delivery uses machine-learning technology to dynamically modify the download delivery path in real time based upon observed behavior as the user progresses through the application. Other streaming systems depend on linear, non-adaptive transmission resulting in high-latency page-level network roundtrips. Non-adaptive methods dramatically reduce performance when users deviate from a predefined execution path.

Modular decomposition automatically breaks applications into large, functional modules which include semantically related code and data. Previous streaming systems use naive, page- or file-level access granularity blind to the semantics of the underlying application. While the technique of decomposing large applications into functional modules for more efficient distribution has been used for decades, Spoon introduces a complete automation of the process using novel statistical learning technologies. By eliminating the requirement for manual decomposition and optimization by human developers and exploiting the advantages of virtualization, Spoon generates highly efficient decompositions into application modules which can then be transferred using standard transmission methods.

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 application virtualization engine achieves a completely new level of performance and efficiency.

Spoon's application delivery technology works over standard HTTP and routers and does not require the use of any proprietary streaming protocols, device drivers, or other custom network infrastructure.

Assure Licensing Compliance and Information Integrity

The fully integrated SpoonLM license manager enhances compliance with licensing and organizational policies. SpoonLM supports models based on total users or devices, concurrent users or devices, time-based expirations, and combinations thereof. SpoonLM also supports time-limited evaluations and in-application purchasing. The SpoonLM subsystem also provides data to the Spoon server's integrated reporting and analytical services.

Spoon is compatible with all popular DRM systems. The Spoon VM preserves all underlying DRM or licensing system behavior, allowing transparent interaction with existing processes.

Identity information is provided through the SpoonID service. SpoonID supports aggregation of multiple external identity systems, including Active Directory and LDAP sources, along with filtering and group mapping capabilities. SpoonID also provides a default internal identity store and support for user extensibility through an API.

Spoon is available as both a hosted service (Spoon.net) and on-premises server ( Spoon Enterprise Server). Customers requiring on-premises control of their data can host Spoon services on their own servers and networks.

Comprehensive Platform and Application Support

Spoon supports virtualization of applications designed for both Intel x86 (32-bit) and x64 (64-bit) processor architectures.

Spoon VM supports client and server editions of the following operating systems:

Windows 8

Windows 7

Windows Embedded 7

Windows Server 2008

Windows Vista

Windows Server 2003

Windows Embedded XP

Windows XP

Spoon includes first-class support for virtualizing all major application runtimes, including:

Microsoft .NET Framework (all versions)

Sun Java runtime (all versions)

Adobe AIR, FLash, and Shockwave (all versions)

Unity, Unreal, Torque, and other popular game engines

Mono .NET Framework

Microsoft Visual C runtime (MSVCRT)

Microsoft DirectX client (all versions)

Including a runtime into the Spoon VM package eliminates the application's dependency on the runtime and therefore the problematic requirement for users to complete a separate runtime install before using the application. Spoon also eliminates application failure due to potential use of an incorrect runtime version or runtime interactions with other pre-installed software.

Spoon.net tests Spoon with major desktop applications daily and routinely updates the Spoon VM, ensuring ongoing compatibility and reliability.

The Spoon browser plugin supports all popular browsers, including:

Internet Explorer 6, 7, 8, 9, and 10

Firefox (all versions)

Chrome (all versions)

Safari (all versions)

Opera (all versions)