Воробъёв Л. О. Разработка интегрированной CASE-системыдля обучения студентов программированию / Л. О. Воробъёв, В. А. Полетаев, Д. Д. Моргайлов // Информатика, управляющие системы, математическое и компьютерное моделирование в рамках II форума Инновационные перспективы Донбасса (ИУСМКМ‑2016) / Донец. национал. техн. ун-т; — Донецк, 2016. — C. 163–168 [Ссылка на сборник]
УДК 004.771

Проектирование системы удаленного управления программным обеспечением

Полетаев В. А., Чернышова А. В.
Донецкий национальный технический университет, г. Донецк
кафедра программной инженерии

Полетаев В. А., Чернышова А. В. Проектирование системы удаленного управления программным обеспечением. Статья обосновывает необходимость проектирования и разработки программной системы, реализующей инструменты взаимодействия с программным обеспечением компьютера с использованием переносного устройства с сенсорным экраном. В статье описывается спроектированная архитектура такой программной системы.

Общая постановка проблемы

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

Современные переносные устройства с сенсорными устройствами ввода лишены этого недостатка поскольку структура интерфейса, с которым взаимодействует пользователь, изменяется для каждой рассматриваемой задачи. Высокая скорость беспроводных компьютерных сетей позволяет использовать эти устройства как интерфейс взаимодействия пользователя и другой вычислительной системы.

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

Анализ существующих решений

Существуют программные решения, которые реализуют интерфейс управления компьютером с помощью аппаратных и программных средств мобильных устройств.

Одним из таких программных продуктов является кроссплатформенное приложение Unified Remote [1] с закрытым исходным кодом, реализующее управление ПО компьютера с помощью генерации событий периферийных устройств, просмотр состояния экрана с мобильного устройства. Программный продукт поддерживает большое количество предварительно спроектированных экранов с компонентами взаимодействия, предназначенными для взаимодействия с наиболее популярным ПО.

Недостатком этой программной системы является сложность разработки пользователем экранов с целью адаптации программной системы для работы с необходимым ему программным обеспечением или для решения задач, не предусмотренных разработчиками продукта. Это связанно с использованием конфигурационных файлов в формате XML и сценариев выполнения, написанных на языке программирования Lua, для определения внешнего вида и функционирования экрана. Система предоставляет ограниченные средства для расположения компонентов управления на экране.

Другим популярным решением, решающим задачу управления компьютерной системой, является программный продукт Remote Control Collection [2]. Программная система предоставляет несколько конфигураций компонентов управления за счет генерации событий периферийных устройств.

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

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

Постановка задачи

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

Структура интерфейса управления

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

К выполняемым действиям относятся:

  1. генерация событий пользовательского ввода с периферийных устройств: клавиатуры и мыши – и передача их операционной системе средствами системных вызовов Windows API;
  2. выполнение инструкций командного интерпретатора ОС;
  3. задержка во времени перед выполнением следующего действия последовательности;
  4. реализация изменения состояния интерфейса с помощью отображения и скрытия элементов управления.

Пример экрана, спроектированного для управления процессом показа слайдов системой Microsoft PowerPoint, показан на рисунке 1.

Пример экрана для управления показом слайдов PowerPoint
Рисунок 1 – Пример экрана для управления показом слайдов PowerPoint

Проектирование программной системы

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

Программная система написана на языке программирования Java, поскольку среда выполнения Java доступна на обеих аппаратно-программных платформах.

Для увеличения характеристик качества программного продукта классы и интерфейсы, входящие в состав программной системы, сгруппированы на подсистемы (рисунок 2).

Модули программной системы
Рисунок 2 – Модули программной системы

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

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

Поскольку сообщения протокола имеют различную структуру и назначение, то использование одного формата данных для эффективного обмена сообщениями невозможно. В программной системе реализован механизм сериализации данных [3]. Модуль сериализации преобразует значения скалярных и составных типов в двоичное представление — производит сериализацию, а также осуществляет обратный процесс — десериализацию.

Программная система должна выполнять определенную пользователем последовательность действий при взаимодействии с компонентами на мобильном устройстве. Во избежание создания и уничтожения большого количества потоков, и для обеспечения выполнения последовательностей действий используется подсистема планирования и выполнения действий.

Генерация событий периферийных устройств: мыши и клавиатуры — осуществляется вызовом функций Windows API. Взаимодействие управляемого кода, выполняемого виртуальной машиной Java, на котором написана программная система, с неуправляемым кодом WinAPI реализовано с помощью технологии JNI [4], позволяющей вызывать функции динамически подключаемой библиотеки, написанной на языке C/C++.

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

Для создания и редактирования экранов используется визуальный редактор, предоставляющий инструменты изменения параметров компонентов и экрана, определения последовательностей действий при обработке событий пользовательского ввода.

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

Выводы

Выполнен анализ проблемы разработки программных систем, расширяющих возможности управления компьютерными системами с помощью переносных устройств. Проанализированы преимущества и недостатки существующих на рынке программных систем. Проведен анализ предметной области, спроектирована архитектура системы, проведен объектно-ориентированный анализ, программа реализована на языке программирования Java. Программа позволяет воздействовать на программное обеспечение сервера с помощью определенных пользователем элементов управления на экране переносного устройства с сенсорным экраном под управлением операционной системы Android.

Литература

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