Никита Ющенко / Света Гайворонская, 4 курс, mod-sem [linux]

На этом форуме публикуются и уточняются постановки задач студентам, а также отслеживается ход их выполнения

Модератор: staff

Закрыто
Бычков Иван
Аспирант
Сообщения: 179
Зарегистрирован: 23 сен 2008 01:19 pm

Никита Ющенко / Света Гайворонская, 4 курс, mod-sem [linux]

Сообщение Бычков Иван »

Тема работы

Разработка многопротокольного сервера сеанса для использования в гетерогенной сети графических терминалов

Обоснование

Это продолжение работы Светы в весеннем семестре прошлого учебного года.

Во время анализа, проведённого в прошлом году, было выявлено, что большинство технологий обеспечения доступа к графическому сеансу имеют схожую архитектуру, и возможно их объединить, тем самым предоставив доступ к одному и тому же сеансу по различным терминальным протоколам. Для этого необходимо реализовать «многопротокольный сервер сеанса» (в прошлом мы называли его «универсальным Xproxy»). В рамках курсовой работы Светы за 3-й курс была предложена архитектура многопротокольного сервера сеанса, и начата его реализация.

В этом году мы хотели бы довести начатое до работающей системы.
Как и в прошлом году, мы пока собираемся ограничиться протоколами NX и VNC. Но при этом архитектура и реализация должны допускать добавление других протоколов.

Работа не является чисто программистской. Там как минимум должна быть разработана спецификация мультиплексора интерфейса DDX (интерфейса аппаратно-зависимой части X сервера). Также предполагается придумать и опробовать на практике несколько приёмов работы с большим объёмом исходников, не разбираясь в их работе (то есть считая их «чёрным ящиком»).

Основные этапы работы
  • Получение работающей версии NXagent, собранной на базе дерева xorg и при помощи системы сборки xorg.
  • «Строгое выделение» интерфейса DDX (с возможным его расширением):
    • исключение ситуаций, когда сборка конкретного DDX использует #ifdef-ы и прочие подобные вещи в части дерева xorg, декларируемой как аппаратно-независимая;
    • исключение прямой модификации кодом DDX структур данных, относящихся к аппаратно-независимой части; замена всех таких операций на дополнительные функции уровня интерфейса DDX.
    В результате должны получиться версии NXagent и Xvnc, различающихся только уровнями DDX
  • Разработка минимального мультиплексора интерфейса DDX.
    В результате должен получиться X сервер, который принимает соединения и от vncviewer (клиента VNC), и от NXproxy (клиента NX), но не полностью «обслуживающий» оба соединения. Например, некоторые обновления экрана на этом этапе возможно будут «видны» только по одному из протоколов.
  • Разработка «вширь» полного мультиплексора интерфейса DDX. В результате постепенно соединения по VNC и по NX начнут «обслуживаться» полностью
Основные ожидаемые результаты
  • спецификация мультиплексора интерфейса DDX,
  • реализация многопротокольного сервера сеанса с поддержкой протоколов VNC и NX.
Дополнительные результаты
  • сборка NXagent на базе xorg может быть интересна сама по себе, её планируется сделать доступной сообществу через рассылки проекта NX,
  • возможно, приёмы, которые будут использоваться для работы с деревом исходников X сервера, также окажутся интересными сами по себе, и их описание войдёт в курсовую работу.
Света Гайворонская
Аспирант
Сообщения: 14
Зарегистрирован: 15 дек 2008 11:53 am

Сообщение Света Гайворонская »

Зимний отчет по курсовой работе.

Разработка многопротокольного сервера сеанса для использования в сети графических терминалов

В рамках курсовой работы на 3-м курсе было установлено, что различные технологии организации тонких клиентов имеют схожую архитектуру, и был предложен проект многопротокольного сервера сеанса, который обеспечит доступ к одному и тому же сеансу с тонких клиентов различных видов.
В настоящее время ведётся работа по реализации многопротокольного сервера сеанса согласно предложенному ранее проекту. В частности, поставлена цель реализовать сервер сеанса, доступный по протоколам NX и VNC.

В прошлом году была сделана попытка привести имеющиеся реализации nxagent и xvnc к общей базе - модульному дереву xorg версии 7.0 Работа в этом семестре была начата с анализа причин прошлогодних трудностей; в результате был составлен план действий по более системному выполнению этого этапа (приведения к общей базе). Существующие реализации (nxagent и xvnc) теперь строго рассматриваются как чёрные ящики. То есть, необходимо добиться, чтобы внутри модульного дерева xorg должен собираться физически тот же самый код, что и в исходных версиях nxagent и xvnc.

Основная работа велась с nxagent. Основные шаги :
* подключение nxagent в системе сборки дерева xorg;
* обеспечение эквивалентности списка компилируемых файлов;
* обеспечение эквивалентности содержимого компилируемых файлов.
В рамках первого этапа было сделано:
1.добавлена поддержка параметра конфигурации для подключения nxagent к cборке дерева xserver
2.добавлена поддержка системой параметров конфигурации для указания пути к используемым nxagent компонентам, не входящих в дерево xserver или измененные в рамках проекта NX.
3.изменен код конфигурационного скрипта для возможности проводить сборку nxagent и других компонент в одно и то же время.
4.изменен код конфигурационного скрипта для проверки наличия библиотек, требуемых nxagent, в том числе внешние библиотеки и измененные в рамках nx (например, проверка наличия nx-версии библиотеки X11)
5.Написаны необходимые мейк-файлы
В рамках второго этапа :
1.Написаны скрипты для распознавания собираемых исходных файлов в обоих случаях.
2.Выявлены основные классы различий в списках собираемых исходных кодов и причины этих различий; все несовпадения устранены
Третий этап выполняется в настоящее время.

Приведение к общей базе планировалось закончить к середине семестра , но из-за болезни научного руководителя (и соответственно плохой доступности его помощи в преодолении технических проблем) этот этап затянулся до сих пор.

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