Simple Protocol For Independent Computing Environments
   HOME

TheInfoList



OR:

In
computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes, and development of both hardware and software. Computing has scientific, e ...
, SPICE (the Simple Protocol for Independent Computing Environments) is a remote-
display Display may refer to: Technology * Display device, output device for presenting information, including: ** Cathode ray tube, video display that provides a quality picture, but can be very heavy and deep ** Electronic visual display, output devi ...
system built for virtual environments which allows users to view a computing "desktop" environment – not only on its computer-server machine, but also from anywhere on the
Internet The Internet (or internet) is the global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a '' network of networks'' that consists of private, pub ...
 – using a wide variety of machine architectures.
Qumranet Qumranet, Inc. was an enterprise software company offering a desktop virtualization platform based on hosted desktops in Kernel-based Virtual Machines (KVM) on servers, linked with their SPICE protocol. The company was also the creator, maintainer ...
originally developed SPICE using a closed-source codebase in 2007.
Red Hat, Inc Red is the color at the long wavelength end of the visible spectrum of light, next to orange and opposite violet. It has a dominant wavelength of approximately 625–740 nanometres. It is a primary color in the RGB color model and a secondary ...
acquired Qumranet in 2008, and in December 2009 released the code under an
open-source license An open-source license is a type of license for computer software and other products that allows the source code, blueprint or design to be used, modified and/or shared under defined terms and conditions. This allows end users and commercial compa ...
and made the protocol an open standard.


Security

A SPICE client connection to a remote desktop server consists of multiple data channels, each of which is run over a separate TCP or UNIX socket connection. A data channel can be designated to operate in either clear-text, or
TLS TLS may refer to: Computing * Transport Layer Security, a cryptographic protocol for secure computer network communication * Thread level speculation, an optimisation on multiprocessor CPUs * Thread-local storage, a mechanism for allocating vari ...
modes, allowing the administrator to tradeoff the security level vs performance. The TLS mode provides strong encryption of all traffic transmitted on the data channel. In addition to encryption, the SPICE protocol allows for a choice of authentication schemes. The original SPICE protocol defined a ticket based authentication scheme using a shared secret. The server would generate an RSA public/private keypair and send its public key to the client. The client would encrypt the ticket (password) with the public key and send the result back to the server, which would decrypt and verify the ticket. The current SPICE protocol also allows for use of the SASL authentication protocol, thus enabling support for a wide range of admin configurable authentication mechanisms, in particular Kerberos.


Implementations

While only one server implementation exists, several programmers have developed new implementations of the SPICE client-side since the open-sourcing of SPICE. ; spice-protocol : The spice-protocol module defines the SPICE wire protocol formats. This is made available under the BSD license, and is portable across the Linux and Windows platforms. ; spice : The spice module provides the reference implementation for the server side of the SPICE protocol. The server is provided as a dynamic library which can be linked to any application wishing to expose a SPICE server. , QEMU uses this to provide a SPICE interface for virtual machines. The spice codebase is available under the
LGPL The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
v2+ license. : A client part of the spice codebase named spicec was removed in December 2014. ; spice-gtk : The spice-gtk module implements a SPICE client using the
GObject The GLib Object System, or GObject, is a free software library providing a portable object system and transparent cross-language interoperability. GObject is designed for use both directly in C programs to provide object-oriented C-based APIs ...
type system and the GTK widget toolkit. This comprises a low-level library, spice-client-glib, which implements the client protocol code, and a high-level set of widgets which provide a graphical client capability using GTK. This is made available under the LGPLv2+ license, and is portable across the Linux,
OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
and Windows platforms. ; spice-html5 : The spice-html5 module implements a SPICE client that uses JavaScript and is intended to run inside a web browser supporting HTML5. While it implements the SPICE protocol, it cannot talk directly to a regular SPICE server. It must connect to the server indirectly via WebSocket proxy. This is made available under a combination of the GPLv3+ and LGPLv3+ licenses.


Applications

The SPICE protocol originated to provide improved remote desktop capabilities in a fork of the KVM codebase. ; QEMU/KVM : The QEMU maintainers merged support for providing SPICE remote desktop capabilities for all QEMU virtual machines in March 2010. The QEMU binary links to the spice-server library to provide this capability and implements the QXL paravirtualized framebuffer device to enable the guest OS to take advantage of the performance benefits the SPICE protocol offers. The guest OS may also use a regular VGA card, albeit with degraded performance as compared to QXL. ; Xspice : The
X.Org Server X.Org Server is the free and open-source implementation of the X Window System display server stewarded by the X.Org Foundation. Implementations of the client-side X Window System protocol exist in the form of ''X11 libraries'', which serve a ...
driver for the QXL framebuffer device includes a wrapper script which makes it possible to launch an Xorg server whose display is exported via the SPICE protocol. This enables use of SPICE in a remote desktop environment, without requiring QEMU/KVM virtualization. ; virt-viewer : The virt-viewer program uses the spice-gtk client library to connect to virtual machines using SPICE, as an alternative to its previous support for
VNC Virtual Network Computing (VNC) is a graphical desktop-sharing system that uses the Remote Frame Buffer protocol (RFB) to remotely control another computer. It transmits the keyboard and mouse input from one computer to another, relaying the g ...
. ; oVirt : SPICE is integrated into
oVirt oVirt is a free, open-source virtualization management platform. It was founded by Red Hat as a community project on which Red Hat Virtualization is based. It allows centralized management of virtual machines, compute, storage and networking r ...
private-cloud management software, allowing users to connect to virtual machines through SPICE.


See also

*
Red Hat Virtualization Red Hat Virtualization (RHV) formerly known as Red Hat Enterprise Virtualization, is an x86 virtualization product developed by Red Hat, and is based on the KVM hypervisor. Red Hat Virtualization uses the SPICE protocol and VDSM (Virtual Deskt ...
* HP Remote Graphics Software


References


External links

*
SPICE protocol
{{DEFAULTSORT:Spice (Protocol) Application layer protocols Red Hat software Remote desktop Remote desktop protocols Thin clients Virtualization software for Linux