Релиз Spice 0.6, системы для организации доступа к виртуализированным десктоп-окружениям

Вышел стабильный релиз Spice 0.6, системы для организации удаленной работы с рабочим столом, функционирующим в виртуальном окружении (для организации работы тонких клиентов). В отличие от таких протоколов как VNC (Virtual Network Computing), ICA (Citrix Independent Computing Architecture) и RDP (Microsoft Remote Desktop Protocol), в Spice рендеринг содержимого экрана и обработка аудиопотоков производится на стороне клиента, а не на сервере, что, позволяет значительно повысить эффективность вывода мультимедиа информации из локально запущенных виртуальных окружений, с привлечением средств акселерации вывода видео, звука, а также 2D и 3D графики. Кроме того, Spice дает возможность без лишней нагрузки на сервер организовать доступ к локальным аудио и USB устройствам, принтерам и другому оборудованию, находящемуся на стороне тонкого клиента.

Другой особенностью SPICE является возможность прозрачной балансировки нагрузки, позволяющей распределять выполнение приложений по разным серверам, автоматически адаптируясь к возможностям графической подсистемы на стороне клиента и загруженности сетевого окружения. Производительности сервера с 16GB ОЗУ достаточно для одновременной работы 50 клиентов выполняющих типичные десктоп приложения, или 40 клиентов 20% из которых просматривают видео или прослушивают аудио. Изначально SPICE был разработан компанией Qumranet, но переведен в разряд свободных технологии и передан под покровительство проекта freedesktop.org, после поглощения Qumranet компанией Red Hat.

В версии Spice 0.6 представлены следующие новшества:

  • Поддержка трансляции внеэкранных областей (Off-screen surfaces), используемых при задействовании технологии DirectDraw, при аппаратном ускорении вывода видео и 3D-акселерации. В частности, одним из следствий поддержки "Off-screen surfaces" является возможность обеспечения работы многомониторных конфигураций;
  • Реализация WAN-режима, оптимизированного для минимизации трафика при доступе к рабочему столу, функционирующем на удаленном сервере, размещенном вне локальной сети;
  • Поддержка архитектуры ARM7;
  • Добавление новых функций libspice-server API для обработки опций конфигурации;
  • Преобразование SpiceVDIPort API в стандартное представление SpiceCharDevice API;
  • Добавление возможности согласования параметров с Spice-агентом;
  • Решение проблем со сборкой при использовании python 2.5, устранение утечек памяти в коде клиента и исправление других ошибок.

Текущие возможности:

  • Обработка и передача 2D графики;
  • Передача M-JPEG видеопотоков с эвристическим определением типа;
  • Поддержка различных алгоритмов сжатия изображений, включая QUIC, LZ и GLZ.
  • Обработка и передача команд управления курсором;
  • Кэширование изображений, палитр и курсоров;
  • Возможность live-миграции виртуального окружения с одного сервера на другой без прерывания работы;
  • Наличие QXL и VDI драйверов для Windows;
  • Поддержка многомониторных конфигураций;
  • Наличие клиентского ПО для Linux и Window, возможность легкого портирования на другие платформы;
  • Двунаправленная передача аудио, звуковые данные сжимаются с помощью технологии CELT;
  • Поддержка шифрования, с использованием OpenSSL;
  • Два режима управления мышью - на стороне клиента (более дружелюбный пользователю) и сервера (более точное позиционирование и полная синхронизация);
  • Lip-sync - синхронизация видео и аудио потоков;
  • Возможность выполнения Spice-агентов, работающих в гостевом окружении и выполняющих задачи для клиента.

Находящиеся в разработке возможности:

  • Сетевые туннели - задействование виртуального сетевого интерфейса для совместного использования сетевыми ресурсами. В настоящий момент работа ведется в направлении обеспечения доступа к сетевым принтерам;
  • Организация совместного использования сетевых ресурсов, например, принтеров;
  • Возможность организации совместной работы с буфером обмена на клиенте и сервере;
  • Возможность клиентам пробрасывать USB устройства и CD привода на сервер;
  • Direct Draw - организация прямого вывода на экран;
  • Разработка дружественной пользователю системы конфигурирования;
  • Добавление поддержки выбора активного экрана клиентом (переключение вывода на другие экраны);
  • Поддержка акселерации видео
  • Поддержка 3D-акселерации
  • Создание клиента для MacOS X;
  • Поддержка одновременного соединения нескольких клиентов к одному рабочему столу.

© OpenNet