Документ взят из кэша поисковой машины. Адрес оригинального документа : http://uneex.lorien.cs.msu.su/FrBrGeorge/GraphicTerminalClient
Дата изменения: Unknown
Дата индексирования: Sun Apr 10 00:45:32 2016
Кодировка: UTF-8
FrBrGeorge/GraphicTerminalClient - UNИX

Терминальные клиенты для запуска графических приложений

Задача

Запуск приложений, активно использующих двумерные и трехмерные графические функции, на удаленном компьютере (сервере) с просмотром на локальном (клиенте).

Преимущества

  1. Унификация ПО
  2. Упрощенное администрирование клиентских компьютеров

Недостатки

  1. Сложность доступа к внешним устройствам клиентского компьютера
  2. Падение производительности
  3. Зависимость от качества сети
  4. Более сложный принцип масштабирования

Варианты решения

  1. ?Публикация приложений?: базовая установка ОС на клиент + запуск специфических приложений на сервере
    • +: ?прозрачный? запуск

    • +: меньшая нагрузка на сервер

    • +/-: разнообразие клиентских ОС и профилей

    • --: необходимость синхронизации локального и удаленного файловых пространств

  2. ?Удаленный рабочий стол?: специфическая минимальная установка ОС на клиент (т. н. прошивка) + запуск всех приложений на сервере с доступом по терминальному протоколу

    • +: возможность отключения и подключения сеанса, в т. ч. при смене рабочего места

    • -: необходимость доступа к локальным внешним устройствам

    • -: большая загрузка сервера

  3. ?Удаленная виртуальная машина?: прошивка на клиенте + запуск на сервере персонального виртуального окружения с полной клиентской ОС
    • +: установка индивидуальной ОС в каждое виртуальное окружение

    • -: необходимость доступа к локальным внешним устройствам

    • -: еще большая загрузка сервера

    • -: потеря производительность за счет виртуализации

Подзадачи

  1. 2D-рендеринг
  2. 3D-рендеринг
  3. Рендеринг потокового видео
  4. Доставка изображения

Сопутствующие подзадачи:

  1. Подготовка, модификация и доставка прошивки.

Учет аппаратных ресурсов

  1. Загрузка сервера и клиента
  2. Производительность рендеринга
  3. Пропускная способность сети

Ссылки

3D-рендеринг

Если исключить вопросы прямой производительности и пропускной способности, главная задача ? обеспечить производительный 3D-рендеринг, т. к. 2D не потребляет слишком много ресурсов, и может быть просчитан на процессоре как клиента, так и сервера.

3D-рендеринг на клиенте

3D-рендеринг на сервере

Распознавание и обработка потокового видео

Если часть довольно большой картинки постоянно меняется, возникает проблема доставки потока.

/!\ TODO: исследовать возможности распознавания и/или декларации таких областей (NX? VNC?), отказа от декодирования видео на сервере (с передачей кодированного потока на клиент) и т. п.

Стенд

  1. ?Публикация приложений?: virtualgl ? X11+VGL
    • + ?Прозрачная? отсылка к 3D-рендерингу на сервере, не требуется адаптация приложений

    • - Большое потребление сетевых ресурсов (по утверждению авторов, >100Mb/s, /!\ померять)

    • -- Использование одного X-сервера всеми приложениями (разных пользователей!) ? издевательство над безопасностью

    • SETUID и SETGID игнорируют LD_PRELOAD, приходится извращаться
  2. ?Удаленный рабочий стол?: virtualgl + VNCserver ? VNCclient
    • + Регулировка объема доставляемого потока качеством картинки VNC

    • - Использование одного X-сервера VNC-серверами различных пользователей

  3. ?Удаленная виртуальная машина?: virtualgl + VirtualBox + VNCserver ? VNCclient

    • - Недостаточная поддержка 3D-рендеринга в VirtualBox (гостевая ОС видит видеокарту "VirtualBox", а не, скажем, NVIDIA)

    • - Отсутствие поддержки VirtualBox в libvirt и отсутствие 3D-рендеринга в подсистемах виртуализации, поддерживающихся libvirt

    • /!\ Не проверена работоспособность 3D-рендеринга в гостевых ОС Linux

FrBrGeorge/GraphicTerminalClient (последним исправлял пользователь FrBrGeorge 2011-12-25 11:18:35)