Разработка алгоритмов и программного обеспечения для формирования пользовательского интерфейса на удалённом устройстве в условиях кроссплатформенного взаимодействия программ
ОСНОВНЫЕ ПОНЯТИЯ И ОПРЕДЕЛЕНИЯ 5
ВВЕДЕНИЕ 7
1. Обзор существующих решений 9
1.1. Тонкие клиенты 9
1.1.1. Веб-браузер как тонкий клиент 9
1.1.2. Обзор Visual Terminal 10
1.2. Программы удаленного доступа 12
1.2.1. Обзор TeamViewer 12
1.2.2. Обзор Remote Mouse 14
2. Алгоритмы обеспечивающие динамическое формирование интерфейса
2.1. Алгоритм взаимодействия клиента и сервера 15
2.2. Алгоритм работы функции передачи файлов на стороне сервера
2.3. Алгоритм работы функции приема файлов на стороне клиента
3. Обзор и выбор средств для разработки программной системы, реализующей разработанные алгоритмы 20
3.1. Сетевые возможности Unreal Engine 4 20
3.1.1. Репликация данных в стандартной сетевой подсистеме
Unreal Engine 4 20
3.1.2. Описание класса FSocket 24
3.1.3. Использование стандартных библиотек 26
3.1.4. Выводы 29
3.2. Обзор инструментов для разработки сетевых мобильных приложений .... 30
3.2.1. AndroidStudio 30
3.2.1.1. Разработка интерфейса 31
3.2.1.2. Разработка сетевой части 33
3.2.2. Unreal Engine 4 34
3.2.2.1. Разработка сетевой части 35
3.2.2.2. Разработка интерфейса 36
3.2.3. Qt Creator 38
3.2.4. Выводы 41
4. Разработка программной системы, реализующей разработанные алгоритмы 42
4.1. Разработка серверной подсистемы 43
4.1.1. Разработка визуальной части 43
4.1.1.1. Создание необходимых трехмерных моделей 43
4.1.1.2. Разработка интерфейса и функций обеспечивающих обновление
состояния игрового поля 47
4.1.2. Разработка логики 51
4.1.3. Разработка сетевой части 57
4.2. Разработка клиентской подсистемы 59
4.2.1. Разработка сетевой части 59
4.2.2. Разработка масштабируемого интерфейса 61
4.3. Выводы 63
ЗАКЛЮЧЕНИЕ 64
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 65
Приложения должны быть в работе, но в данный момент отсутствуют
В связи с тем, что рынок информационных услуг постоянно расширяется, производители программного обеспечения выпускают все более интеллектуальные, а значит, и объемные программные комплексы. Росла сложность вычислений - росли требования к компьютерам, на которых эти вычисления выполнялись. Чтобы снизить стоимость оборудования была разработана архитектура клиент-сервер. На сервере выполнялись вычисления, а доступ к результатам осуществлялся при помощи сетевого соединения с клиентского приложения.
В связи с появлением мобильных устройств под управлением полноценных операционных систем клиентские приложения стали появляться и на них. Это так называемые «толстые» и «тонкие» клиенты. Так же можно выделить такие решения как программы удаленного доступа.
В «толстом» клиенте реализована вся логика по обработке данных, а сервер выступает лишь в роли хранилища данных. С этим связаны и главные недостатки такого типа решений. Для каждого серверного приложения необходима установка и настройка соответствующего приложения на клиенте. Необходимость обновления. Большие затраты на разработку клиента для нескольких платформ.
В качестве «тонкого» клиента обычно выступает веб-браузер. Главным минусом здесь является то, что различные браузеры могут по-разному формировать одну и ту же страницу с интерфейсом. Особенно это касается относительно старых решений. Скорее всего, решение двух-трехлетней давности, запущенное в современном веб-браузере, будет отображаться не так, как это задумал разработчик.
Минусом программ удаленного доступа является неудобство их использования на различных платформах, в частности на мобильных устройствах. Адекватно управлять целым компьютерным рабочим столом с экрана мобильного телефона не представляется возможным.
В связи с существованием описанных выше недостатков у существующих решений, была сформулирована следующая цель: разработать алгоритмы и реализующее их программное обеспечение для формирования пользовательского интерфейса на удалённом устройстве в условиях кроссплатформенного взаимодействия программ.
Для достижения поставленной цели необходимо декомпозировать её на следующие задачи:
1) разработка алгоритма взаимодействия клиента и сервера, а также алгоритмов их функционирования;
2) исследование сетевых возможностей UnrealEngine 4;
3) обзор и выбор средств кроссплатформенной или мобильной разработки;
4) разработка клиент-серверной программной системы, реализующей возможность динамического формирования интерфейса на удаленном устройстве.
Для исследований был выбран Unreal Engine 4, как одна из самых быстро развивающихся и мощных трёхмерных систем визуализации с открытым исходным кодом.
В результате проделанной работы были исследованы основные особенности создания приложений на основе Unreal Engine 4 и его сетевые возможности. Исследованы библиотеки сетевого программирования. Также исследованы средства разработки для мобильных устройств. В результате проделанной работы было создано следующее программное обеспечение:
1) Консольная программа-сервер. Осуществляет прием сообщений и вывод их в терминал. Осуществляет отправку файлов на клиент.
2) Программа-клиент для операционной системы Android. Разработана с помощью AndroidStudio. Выполняет отправку введенного сообщения.
3) Кроссплатформенная программа-клиент на основе UnrealEngine 4. Оправляет различные сообщения на сервер, в зависимости от нажатой кнопки.
4) Приложение «Монополия» с серверной частью на основе UnrealEngine 4. Принимает сообщения от клиентов, обрабатывает их, и в зависимости от сообщения, выполняет то или иное действие (игровые действия, отправка файлов).
5) Кроссплатформенная программа-клиент. Разработана на языке С++ и QML. Выполняет прием файлов, динамически формирует интерфейс на основе принятых файлов.
Данной работе был посвящен доклад на XVIII молодежной международной научно-технической конференции «Наукоемкие и интеллектуальные системы 2016» [11].
Разработанный в ходе работы проект был показан на благотворительном фестивале будущего и развития «Импульс», который состоялся 23 апреля 2016 года.
1. Гимейн Л.А., Козменко С.М. Документооборот и электронные архивы. Насколько «тонок» клиент? [Электронный ресурс]: статья.- CADmaster №5(35) 2006 (дополнительный). Режим доступа:
http: //www. cadmaster.ru/magazin/articles/cm 3 5 tdms. html#hcq=eI 12 sKp(дата обращения 31.05.16).
2. UnrealEngine 4 Documentation [Электронный ресурс] // UnrealEngineTechnology: сайт. Режим доступа: https://docs.unrealengine.com(дата обращения 14.12.15).
3. Федорук, В.Г. Сетевое программирование в ОС UNIX. [Электронный ресурс] // Учебно-методические материалы к курсу «Разработка программных систем» для бакалавров. Режим доступа:
http: //fedoruk.comcor.ru/Dev bach/netprg 1 .html(дата обращения 14.12.15).
4. AndroidDevelopers [Электронный ресурс]// сайт. Режим доступа: http://developer.android.com/index.html(дата обращения 14.12.15).
5. QtDocumentation [Электронный ресурс]// Qt: сайт. Режим доступа: http://doc.qt.io/ (дата обращения 14.12.15).
6. Unreal Engine Community Wiki [Электронный ресурс] // Unreal Engine Technology: сайт. Режим доступа:https://wiki. unrealengine. com/Main Page(дата обращения 14.12.15).
7. Паттерны проектирования [Электронный ресурс] // CPP- REFERENCE:сайт. Режим доступа:http: //cpp-reference.ru/patterns/(дата обращения 14.12.15).
8. (Перевод) Введение в разработку C++ в UE4 [Электронный ресурс] //Хабрахабр: интернет-портал. Режим доступа: http://habrahabr.ru/post/254931/(дата обращения 14.12.15).
9. (Перевод) Введение в разработку C++ в UE4 Часть 2[Электронный ресурс] // Хабрахабр: интернет-портал. Режим доступа: http://habrahabr.ru/post/257827/(дата обращения 14.12.15).
10. UnrealEngine 4 для развития своих способностей[Электронный ресурс] // Хабрахабр: интернет-портал. Режим доступа: http://habrahabr.ru/post/249965/(дата обращения 14.12.15).
11. Сериков, И.С. Сетевая репликация данных в кроссплатформенном ПО для формирования интерфейса на удаленном устройстве [Текст] / 18-ая Молодежная международная научно-техническая конференция "Наукоемкие технологии и интеллектуальные системы 2016". - г. Москва, МГТУ им. Н. Э. Баумана. 20 апреля 2016 г. - С. 111-114.