Разработка и реализация X-Client для ОС Windows
Анализ Х11 – протокола, позволяющего передавать окна приложений, которые запускаются на удаленном компьютере с помощью X-Client’a, а так же принимать и пробрасывать основные события на локальном X-Server’e. Описание реализации X-Client’a для Windows OS.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 15.01.2019 |
Размер файла | 204,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Разработка и реализация X-Client для ОС Windows
Малыгин А.О. студент 5-го курса, кафедры Информатики, математико- механического факультета СПбГУ, carbon2320@gmail.com
Научный руководитель
Баклановский М.В.
Аннотация
протокол приложение удаленный локальный
X11 - протокол позволяющий передавать окна приложений, которые запускаются на удаленном компьютере с помощью X-Client'a, а так же принимать и пробрасывать события на локальном X-Server'e
Данный документ представляет собой описание реализации X-Client'a для Windows OS, эвристические методы решения и рассмотрение случаев необходимости использования тонкого клиента в целом.
X Window System - открытое, платформо-независимое, “серверно-клиентское” программное обеспечение (более известное как X11[1]), которое позволяет управлять оконным графическим интерфейсом пользователя в распределенных сетях по протоколу X11.
Хочется акцентировать внимание на том, что использование концепции клиент-серверной модели отлично от обычного представления. В X11 используются следующие термины:
· X-Client в концепции клиент-серверной модели, означает сервер, который, в свою очередь, запускает приложение и передает управление на X-Server;
· X-Server в концепции клиент-серверной модели, означает клиент, который принимает управление от X-Client'а и занимается следующими задачами:
· построение окна и передача оконному менеджеру для отображения;
· обработка событий мышки и клавиатуры, передача их на X-Client;
Во многих Unix подобных системах используется протокол X11, как основной. А для отображения окон используются оконные менеджеры. Например, в GNOME[6], используют “Metacity”[7], а в Mac OS используют QUARTZ[9], как одни из стандартных оконных менеджеров.
Постановка задачи
Многим пользователям доводилось работать с неизвестными, только что загруженными, непроверенными приложениями, которые часто вызывают недоверие и заставляют беспокоиться о конфиденциальности тех данных, которые хранятся у них на компьютере. При установке таких приложений, стоит задуматься о целостности информации. Даже, если у вас есть антивирус, не стоит думать, что базы данных антивируса обновляются раньше, чем создается очередной, новый вирус. Отсюда возникает задача безопасности целостности системы в целом.
Предлагается запускать приложения на удаленной, (возможно, виртуальной), машине. При помощи X-Client'a передавать окно приложения на локальную машину, а при помощи X-Server'а рисовать его и передавать происходящие события мышки и клавиатуры обратно. Тем самым, мы получаем, подобие песочницы, которая гарантирует нам целостность наших данных.
На текущий момент, по протоколу X11 возможно передавать окна следующим образом в следующих операционных системах:
1. C Linux на Linux, т.к. протокол X11 лежит в основе системы;
2. C Linux на Windows OS, т.к. существуют решения X-Server'а для Windows OS (Например, MobaXTerm[8]);
Но, не были реализованы следующие варианты, поскольку в основе Windows OS не лежит протокол X11:
1. C Windows на Linux
2. C Windows OS на Windows OS
Хочется отметить, что в данном случае рассматриваются отдельные окна одного приложения, а не весь рабочий стол в целом co всеми имеющимися приложения. Это делает клиент тонким, с точки зрения приложения.
На рис.1 схематично изображено описанное выше представление возможностей передачи окна приложения.
Рисунок 1: Реализованные решения передачи окна по протоколу X11.
Стоит отметить, что реализация такого X-Client'а для Windows OS, позволит работать с разными типами приложений, запущенных на разных операционных системах, например, таких как Windows 3.1, Windows XP, Windows 7, Linux (рис.2).
А так же, X-Client'а удобно использовать в разделенном рабочем пространстве.
Рисунок 2: Демонстрация тонкого клиента и отображения приложений с разных операционных систем.
Реализация X-Client'а для Windows OS
В первую очередь, было изучено большое количество информации по существующим решениям. Вследствие чего, было найдено следующее проприетарное ПО: “Citrix MetaFrame”[2]. После этого, была получена информация из официального сообщества разработчиков X11[1], о том, что можно реализовать свое оконное приложение, используя протокол X11 и библиотеку xlib[4] для Windows OS. Отсюда возник вопрос о таком приложении, которое сможет передавать любые окна по этому протоколу и появилась идея реализации универсального X-Client для Windows OS. Поскольку, переписывание всех существующих приложений на X11 не представляется возможным, а также изменения GDI[3] на X11 без исходного кода, является трудоемкой задачей, то было принято решение передавать фреймовый буфер.
Отсюда возникли следующие задачи:
1. Захват изображения приложения;
a. Получение окна приложения;
b. Удаление рамки приложения;
c. Удаление прозрачности приложения;
d. Захват многооконного приложения;
e. Отображение курсора;
2. Передача фрейма по протоколу X11;
a. Сжатие изображения;
b. Создание окна из изображения;
c. Передача пустого курсора;
d. Расчет размеров окна;
3. Получение и обработка событий X-Server'а;
a. Получение кликов мышки;
b. Пересчет координат мышки;
c. Получения символов клавиатуры;
d. Получение escape последовательностей клавиатуры;
e. Подбрасывание событий в приложение;
Замечу, что многие из задач трудно разрешимы, как для разных версий Windows OS, так и для одной. Многие методы решения являются эвристическими. Например, для разных приложений Windows OS используются разные стили окна, скажем, тройная рамка или одинарная, а может и двойная. На помощь приходит Windows API[5], который позволяет настроить стили приложения. А также отсутствие иерархии окон в Windows OS задают неразрешимость и решаются только эвристическими методами.
На данный момент был реализован тестовый X-Client для Windows OS на C#, который позволяет находить все открытые, не свернутые, оконные приложения, представлять их в виде списка, для удобства просмотра и выбора окна для передачи на X-Server. А так же, приложение позволяет менять стили окна и убирать рамку и сохранять фрейм. На языке C было реализовано сжатие фрейма, передача его на X-Server и обработка событий клавиатуры. При помощи очереди сообщений, события подбрасываются в буфер приложения с текущим хендлером и обрабатываются им. Так же, реализован полуавтоматический алгоритм передачи фреймов, который в дальнейшем будет полностью автоматизирован.
В ближайших планах, реализовать автоматизацию обновления фреймов и обработку escape последовательностей клавиатуры, а так же, обработку событий мышки и пересчет размера окна.
Заключение
В документе были представлены общие сведения о X Windows System, основные понятия этой системы, задачи и возможные решение безопасности конфиденциальных данных, а так же, план реализации X-Client'a для Windows OS.
Литература
1. Сообщество разработчиков X11 http://www.x.org
2. Citrix MetaFrame http://www.citrix.com/
3. GDI http://msdn.microsoft.com/en-us/library/ms533797.aspx
4. Xlib http://tronche.com/gui/x/xlib/
5. Windows API http://msdn.microsoft.com/en-us/library/windows/desktop/ff818516(v=vs.85).aspx
6. GNOME http://www.gnome.org/
7. Metacity http://xwinman.org/metacity.php
8. MobaXTerm http://mobaxterm.mobatek.net/
9. QUARTZ http://quartz-scheduler.org/
Размещено на Allbest.ru
...Подобные документы
Семейство ОС Windows 2000. Windows 2000 Server. Windows 2000 Advanced Server. Windows 2000 Datacenter Server. ОС Windows Server 2003. Организация сети на основе Windows 2000. Службы каталогов, DHCP, DNS, WINS. Конфигурирование сервера.
курсовая работа [307,1 K], добавлен 06.10.2006Общая характеристика Microsoft Windows Server 2008: особенности, гибкость, защита, контроль. Усовершенствования операционной системы: Server Core, службы терминалов, Windows PowerShell, самовосстанавливающаяся NTFS, Server Manager, улучшение надежности.
реферат [452,3 K], добавлен 15.12.2009Описание преимуществ использования серверной системы Windows Server 2003. Усовершенствования служб Active Directory и приложений. Новшества технологий кластеризации, файловых и корпоративных служб, работы в сети и связи, в управлении хранилищами.
реферат [108,2 K], добавлен 25.11.2010Универсальная многоцелевая сетевая операционная система Windows NT Server. Использование Windows NT Workstation как невыделенного сервера в одноранговых сетях и в качестве клиента сетей. Операционные системы Windows 2003, Windows Vista и Windows 7.
презентация [6,2 K], добавлен 23.10.2013Разработка плана здания с помощью графического редактора AutoCAD. Описание предметной области и схемы модели данных. Разработка приложения, позволяющего работать с базой с помощью диалогового окна Windows. Программный код формы, прописывание кодов.
курсовая работа [2,2 M], добавлен 30.07.2010Изучение возможностей операционной системы Windows Server 2003 - ОС семейства Windows NT от компании Microsoft, предназначенной для работы на серверах. Анализ основных изданий ОС: Web Edition, Standard Edition, Еnterprise Edition, Datacenter Edition.
презентация [3,4 M], добавлен 23.05.2010Основные выпуски (редакции) операционных систем Windows Vista и Windows Seven, их недостатки и преимущества. История создания, совместимость приложений с операционными системами. Новшества, которые принесла в мир компьютерных технологий каждая из систем.
реферат [66,3 K], добавлен 17.02.2011Изучение персонального компьютера, стоящего в учебном классе на рабочем месте пользователя. Процессор, сетевая плата. Подключение по локальной сети. Физический адрес, маска подсети, основной шлюз и DNS-серверы. Свойства Novel client для Windows.
лабораторная работа [1,7 M], добавлен 16.04.2013Разработка 32-разрядных приложений Windows с помощью системы виртуального объектно-ориентированного программирования Delphi. Работа с коммуникационными портами. Виртуальное проектирование Windows. Назначение контактов COM порта (разъём DB-9S.).
реферат [32,7 K], добавлен 28.08.2009Характеристика предметної області: FTP-server для ОС Windows. Шляхи встановлення FTP-серверу в ОС Windows. Опис мови та середовища програмування, компонентів та функцій програми. Аналіз реалізованої програми FTP-клієнта. Тестовий запуск та опис програми.
курсовая работа [1,7 M], добавлен 22.06.2017Все окна в ОС Windows имеют стандартную структуру. Выполнение лабораторной работы предусматривает приобретение навыков использования мышки как основного способа управления работой компьютера в среде Windows.
лабораторная работа [191,1 K], добавлен 22.05.2007Программирование в операционной системе Windows. Работа с потоками и процессами ОС. Методы их создания. Основы вызова API-функций. Пример создания диалогового окна без использования файла ресурсов. Разработка программы с помощью 32-битного ассемблера.
курсовая работа [107,6 K], добавлен 18.05.2014Реализация программы, созданной средствами языка C#. Предназначение Windows-приложения для решения комплекса задач. Определение состава форм с графиком функции. Вычисление коэффициентов полинома. Создание текстового поля для введения корней многочлена.
курсовая работа [234,8 K], добавлен 13.11.2016История Windows. Особенности Windows XP. Файловая система и структура. Основные принципы работы с системой. Начало и завершение работы, главное меню. Запуск и завершение программ. Окна и диалоги, панель задач. Установка Windows XP.
курсовая работа [344,0 K], добавлен 24.04.2007Основы организации приложения в Windows. Посылка и передача сообщений для окон. Создание и отображение главного окна приложения. Деактивация приложения, его фазы. Сообщения клавиатуры и функции для работы с ней. Определение состояния отдельных клавиш.
лекция [65,7 K], добавлен 24.06.2009Создание системной утилиты, работающей с реестром ОС Windows; структура, функции и роль реестра. Разработка программного обеспечения: интерфейс, структурная схема вызовов окон приложений; реализация и тестирование программы, процедуры; листинг модулей.
курсовая работа [1,2 M], добавлен 01.06.2013Проектирование, кодирование и отладка службы Windows: "Контроль приложений", осуществляющей контроль набора приложений и управление ими; разработка приложения, управляющего этой службой. Взаимодействие службы и приложения; тестирование и сопровождение.
курсовая работа [1,1 M], добавлен 22.05.2013Элементы интерфейса Windows NT. Средства взаимодействия пользователей с системой. Выполнение настройки компьютера. Ярлыки на рабочем столе. Типа окон: приложений, документов и диалоговые окна. Интерфейс администратора сети. Понятие web-браузера.
презентация [8,8 K], добавлен 23.10.2013Сведения об окружности, ее радиус и площадь. Разработка программы для вычисления площади круга и длины окружности по заданному радиусу с использованием Windows.Forms-приложений. Пошаговая инструкция; описание главного окна, код, примеры работы программы.
курсовая работа [818,6 K], добавлен 14.09.2014Программа операционной системы. Перемещение и копирование объектов. Окна Windows, операционное меню, настройка свойств папки, вызов справки Windows. Работа с дисками, папками и файлами, с приложениями и документами. Стандартные программы Windows.
контрольная работа [21,9 K], добавлен 29.01.2011