Разработка многопротокольного сервера сеанса для использования в гетерогенной сети графических терминалов
Обоснование
Это продолжение работы Светы в весеннем семестре прошлого учебного года.
Во время анализа, проведённого в прошлом году, было выявлено, что большинство технологий обеспечения доступа к графическому сеансу имеют схожую архитектуру, и возможно их объединить, тем самым предоставив доступ к одному и тому же сеансу по различным терминальным протоколам. Для этого необходимо реализовать «многопротокольный сервер сеанса» (в прошлом мы называли его «универсальным Xproxy»). В рамках курсовой работы Светы за 3-й курс была предложена архитектура многопротокольного сервера сеанса, и начата его реализация.
В этом году мы хотели бы довести начатое до работающей системы.
Как и в прошлом году, мы пока собираемся ограничиться протоколами NX и VNC. Но при этом архитектура и реализация должны допускать добавление других протоколов.
Работа не является чисто программистской. Там как минимум должна быть разработана спецификация мультиплексора интерфейса DDX (интерфейса аппаратно-зависимой части X сервера). Также предполагается придумать и опробовать на практике несколько приёмов работы с большим объёмом исходников, не разбираясь в их работе (то есть считая их «чёрным ящиком»).
Основные этапы работы
- Получение работающей версии NXagent, собранной на базе дерева xorg и при помощи системы сборки xorg.
- «Строгое выделение» интерфейса DDX (с возможным его расширением):
- исключение ситуаций, когда сборка конкретного DDX использует #ifdef-ы и прочие подобные вещи в части дерева xorg, декларируемой как аппаратно-независимая;
- исключение прямой модификации кодом DDX структур данных, относящихся к аппаратно-независимой части; замена всех таких операций на дополнительные функции уровня интерфейса DDX.
- Разработка минимального мультиплексора интерфейса DDX.
В результате должен получиться X сервер, который принимает соединения и от vncviewer (клиента VNC), и от NXproxy (клиента NX), но не полностью «обслуживающий» оба соединения. Например, некоторые обновления экрана на этом этапе возможно будут «видны» только по одному из протоколов. - Разработка «вширь» полного мультиплексора интерфейса DDX. В результате постепенно соединения по VNC и по NX начнут «обслуживаться» полностью
- спецификация мультиплексора интерфейса DDX,
- реализация многопротокольного сервера сеанса с поддержкой протоколов VNC и NX.
- сборка NXagent на базе xorg может быть интересна сама по себе, её планируется сделать доступной сообществу через рассылки проекта NX,
- возможно, приёмы, которые будут использоваться для работы с деревом исходников X сервера, также окажутся интересными сами по себе, и их описание войдёт в курсовую работу.