Инновационные перспективы Донбасса(ИУСМКМ‑2016) / Донец. национал. техн. ун-т; — Донецк, 2016. — C. 163–168 [Ссылка на сборник]
Проектирование системы удаленного управления программным обеспечением
Полетаев В. А., Чернышова А. В. Проектирование системы удаленного управления программным обеспечением. Статья обосновывает необходимость проектирования и разработки программной системы, реализующей инструменты взаимодействия с программным обеспечением компьютера с использованием переносного устройства с сенсорным экраном. В статье описывается спроектированная архитектура такой программной системы.
Общая постановка проблемы
Возрастающая сложность программного обеспечения и разнородность решаемых с его использованием задач приводит к сложности разработки достаточно гибкого пользовательского интерфейса, который бы приводил к решению задачи за минимальное время. Эта проблема частично решается путем использования макросов, доступных в некоторых программных и аппаратных решениях, таких как программируемые дополнительные клавиатуры. Недостатком подобных аппаратных средств является либо недостаточная гибкость предоставляемого интерфейса взаимодействия с компьютером, связанная с его абстрактностью, либо недостаточная универсальность, связанная с ориентированностью на выполнение конкретной задачи.
Современные переносные устройства с сенсорными устройствами ввода лишены этого недостатка поскольку структура интерфейса, с которым взаимодействует пользователь, изменяется для каждой рассматриваемой задачи. Высокая скорость беспроводных компьютерных сетей позволяет использовать эти устройства как интерфейс взаимодействия пользователя и другой вычислительной системы.
Возникает задача анализа возможностей использования переносных устройств для управления компьютером и создания программной системы, реализующей этот интерфейс взаимодействия.
Анализ существующих решений
Существуют программные решения, которые реализуют интерфейс управления компьютером с помощью аппаратных и программных средств мобильных устройств.
Одним из таких программных продуктов является кроссплатформенное приложение Unified Remote
[1] с закрытым исходным кодом, реализующее управление ПО компьютера с помощью генерации событий периферийных устройств, просмотр состояния экрана с мобильного устройства. Программный продукт поддерживает большое количество предварительно спроектированных экранов с компонентами взаимодействия, предназначенными для взаимодействия с наиболее популярным ПО.
Недостатком этой программной системы является сложность разработки пользователем экранов с целью адаптации программной системы для работы с необходимым ему программным обеспечением или для решения задач, не предусмотренных разработчиками продукта. Это связанно с использованием конфигурационных файлов в формате XML и сценариев выполнения, написанных на языке программирования Lua, для определения внешнего вида и функционирования экрана. Система предоставляет ограниченные средства для расположения компонентов управления на экране.
Другим популярным решением, решающим задачу управления компьютерной системой, является программный продукт Remote Control Collection
[2]. Программная система предоставляет несколько конфигураций компонентов управления за счет генерации событий периферийных устройств.
Программа имеет ограниченные возможности по выполнению пользовательских команд – поддерживается только возможность запуска не более 12 программ или сценариев командного интерпретатора, осуществляемого при нажатии кнопок на экране мобильного устройства.
В результате анализа преимуществ и недостатков существующих программных систем на рынке ПО сделан вывод о необходимости создания программной системы, реализующей возможность гибкой конфигурации компонентов управления, осуществляющих взаимодействие с программным обеспечением сервера.
Постановка задачи
Целью работы является проектирование и реализация программной системы, которая содержит простой редактор конфигурации интерфейса взаимодействия между клиентом и сервером и обеспечивает его функционирование с целью воздействия на прикладное программное обеспечение компьютера.
Структура интерфейса управления
Взаимодействие пользователя с программным обеспечением компьютера осуществляется с помощью создаваемых пользователем экранов и помещенных на них компонентов управления. Компоненты отображаются на экране мобильного устройства и генерируют события, которые передаются серверному программному обеспечению средствами протокола TCP. При обработке событий ввода пользователя серверной программной системой выполняется определенная пользователем последовательность действий, направленная на воздействие на программное обеспечение.
К выполняемым действиям относятся:
- генерация событий пользовательского ввода с периферийных устройств: клавиатуры и мыши – и передача их операционной системе средствами системных вызовов Windows API;
- выполнение инструкций командного интерпретатора ОС;
- задержка во времени перед выполнением следующего действия последовательности;
- реализация изменения состояния интерфейса с помощью отображения и скрытия элементов управления.
Пример экрана, спроектированного для управления процессом показа слайдов системой Microsoft PowerPoint, показан на рисунке 1.

Проектирование программной системы
Программная система состоит из двух компонентов: клиентской и серверной части. Серверная программная система функционирует на компьютере под управлением операционной системы Windows 7 или новее. Клиентская система функционирует под управлением мобильной ОС Android с уровнем API 18 или выше, что соответствует версии 4.3 или новее.
Программная система написана на языке программирования Java, поскольку среда выполнения Java доступна на обеих аппаратно-программных платформах.
Для увеличения характеристик качества программного продукта классы и интерфейсы, входящие в состав программной системы, сгруппированы на подсистемы (рисунок 2).

Модуль сетевого взаимодействия осуществляет обмен сообщениями между клиентом и сервером, а также управляет процессом подключения новых клиентов к серверу. Модуль осуществляет управление состоянием соединения.
Первым этапом жизненного цикла соединения является безопасная аутентификация и установление безопасного канала связи. Модуль безопасной аутентификации осуществляет генерацию и обмен ключами для электронной цифровой подписи, инициализацию шифрования сообщений. Кроме этого модуль осуществляет проверку пароля и токена, в зависимости от конфигурации сервера может отказать или принять установление соединения.
Поскольку сообщения протокола имеют различную структуру и назначение, то использование одного формата данных для эффективного обмена сообщениями невозможно. В программной системе реализован механизм сериализации данных [3]. Модуль сериализации преобразует значения скалярных и составных типов в двоичное представление — производит сериализацию, а также осуществляет обратный процесс — десериализацию.
Программная система должна выполнять определенную пользователем последовательность действий при взаимодействии с компонентами на мобильном устройстве. Во избежание создания и уничтожения большого количества потоков, и для обеспечения выполнения последовательностей действий используется подсистема планирования и выполнения действий.
Генерация событий периферийных устройств: мыши и клавиатуры — осуществляется вызовом функций Windows API. Взаимодействие управляемого кода, выполняемого виртуальной машиной Java, на котором написана программная система, с неуправляемым кодом WinAPI реализовано с помощью технологии JNI [4], позволяющей вызывать функции динамически подключаемой библиотеки, написанной на языке C/C++.
Пользователь взаимодействует с программной системой с помощью инструментов администрирования, которые позволяют управлять состоянием сервера, просматривать и изменять параметры программной системы, просматривать и изменять информацию о подключенных устройствах, а также управлять списком добавленных экранов.
Для создания и редактирования экранов используется визуальный редактор, предоставляющий инструменты изменения параметров компонентов и экрана, определения последовательностей действий при обработке событий пользовательского ввода.
Клиентская часть программной системы при успешном подключении к серверу и выборе пользователем экрана отображает компоненты, обрабатывает действия пользователя и генерирует сообщения для отправки на сервер, которые используются для определения последовательности выполняемых действий.
Выводы
Выполнен анализ проблемы разработки программных систем, расширяющих возможности управления компьютерными системами с помощью переносных устройств. Проанализированы преимущества и недостатки существующих на рынке программных систем. Проведен анализ предметной области, спроектирована архитектура системы, проведен объектно-ориентированный анализ, программа реализована на языке программирования Java. Программа позволяет воздействовать на программное обеспечение сервера с помощью определенных пользователем элементов управления на экране переносного устройства с сенсорным экраном под управлением операционной системы Android.
Литература
- Unified Remote — Remote Control App for your Computer [Электронный ресурс]: офиц. сайт — Электрон. дан. — Режим доступа: https://www.unifiedremote.com/. — Загл. с экрана
- Help — Remote Control Collection [Электронный ресурс]: офиц. сайт — Электрон. дан. — Режим доступа: http://remote-control-collection.com/help/. — Загл. с экрана
- Использование средств рефлексии языка Java при реализации протоколов прикладного уровня / В. А. Полетаев [и др.] // Информатика, управляющие системы, математическое и компьютерное моделирование в рамках III форума
Инновационные перспективы Донбасса
(ИУСМКМ — 2017): VIII Международная научно-техническая конференция, 25 мая 2017, г. Донецк: / Донец. национал. техн. ун-т; редкол. Ю. К. Орлов и др. — Донецк: ДонНТУ, 2017. — 802 с - Java Native Interface Specification: 1 — Introduction [Электронный ресурс] — Электрон. дан. — Режим доступа: https://docs.oracle.com/javase/10/docs/specs/jni/intro.html. — Загл. с экрана