Введение. В последнее время интерес людей к путешествиям растет. Но не всегда и не у всех есть возможность принять участие в экскурсии по городу с реальным экскурсоводом ввиду неудобства по времени, денежным затратам или вообще отсутствия таковых в определенном городе. К тому же всё больше и больше людей предпочитают осматривать достопримечательности самостоятельно, без помощи посторонних лиц.
Получение оперативной информации обо всем, в том числе и об объектах культурного наследия, является приоритетом в наши дни. Вследствие чего такие информационные продукты, как мобильные экскурсоводы, приобретают всё большую популярность среди пользователей мобильных устройств.
Цель исследования. Целью данной работы является разработка программного комплекса «Виртуальный экскурсовод», состоящего из серверной части и мобильных клиентов. Программный комплекс «Виртуальный экскурсовод» предназначается для проведения самостоятельных экскурсий по городу Томску. С помощью мобильного приложения и подключения к сети Интернет пользователь сможет осуществлять манипуляции по карте, просматривать самую разнообразную информацию об объектах культурного достояния г. Томска, следовать по заранее проработанным экскурсионным маршрутам.
Проектирование архитектуры программного комплекса. Важным этапом в разработке программного комплекса является стадия проектирования. Для достижения универсальности и гибкости в работе программного комплекса предложено использовать многозвенную архитектуру, состоящую из нескольких промежуточных компонентов.
На рисунке 2 представлена обобщенная архитектура разрабатываемого программного комплекса.
Рис. 1. Схема архитектуры системы
Разрабатываемый программный комплекс включает четыре основных составляющих:
-
база данных, развернутая на сервере;
-
веб-приложение для работы администратора;
-
веб-служба, развернутая на сервере, предоставляющая доступ клиентскому приложению к БД;
-
клиентское приложение, работающее на мобильном устройстве пользователя.
Веб-служба является связующим звеном программного комплекса, предоставляет набор программных интерфейсов для доступа к БД. Использование веб-службы позволяет организовать наиболее защищенный доступ к БД приложений администратора и пользователя с использованием набора методов веб-сервиса [6].
Приложение администратора представлено тонким клиентом на стороне компьютера администратора (браузером) и веб-приложением, опубликованным на веб-сервере программного комплекса. Веб-приложение отвечает на запросы со стороны администратора, обеспечивая работу с информацией БД через веб-службу.
Мобильное клиентское приложение также обращается к веб-службе для работы с информацией БД и к внешнему картографическому веб-сервису за получением геоинформационной подложки.
Схема логических блоков мобильного клиента изображена на рисунке 3.
Рис. 2. Внутренняя структура мобильного клиента
В процессе проектирования мобильного клиента было решено, что приложение будет ориентировано на работу под управлением операционной системы Android, так как именно она является наиболее распространённой на данный момент [2] среди операционных систем мобильных устройств.
Клиент разворачивается на мобильной операционной системе Android и должен иметь доступ к сети Интернет как для получения и отображения картографической информации, так и для работы с различными данными об объектах культурного наследия с сервера, их просмотра и внесения изменений в оценочные характеристики объектов. Для ускорения быстродействия мобильного клиента принято решение об обязательном кешировании всей получаемой информации по историческим объектам и своевременной её синхронизации.
Проектирование баз данных. В целом программный комплекс использует базу данных, содержащую самую разнообразную информацию об исторических объектах г. Томска, такую как название объекта, даты постройки, обобщённое описание, иллюстративный материал (фотографии, видеоролики) и т.д. Схема данных этой основной БД достаточно сложна и содержит более 30 взаимосвязанных сущностей, что не позволяет полностью её описать в рамках данной статьи. Проектирование и верификация моделей БД выполнялось с применением средств Oracle TOAD и Sybase Power DataBase Designer.
В ходе работы мобильный клиент использует свою локальную БД, дублирующую необходимую для работы приложения информацию из БД основного сервера (рис. 4), для уменьшения расхода трафика посредством сокращения объема данных, загружаемых по сети. Фрагмент модели спроектированной локальной базы данных мобильного клиента представлен на рис. 3.
Рис. 3. Фрагмент физической модели локальной БД клиента
При необходимости предоставления пользователю какой-либо тематической информации мобильный клиент выясняет наличие и актуальность этой информации в локальной БД и в случае её отсутствия или неактуальности производит запрос к основному серверу БД. При получении новой информации с сервера приложение добавляет данные в локальную БД.
Проектирование алгоритмического обеспечения. В процессе разработки алгоритмического обеспечения программного комплекса решалось множество промежуточных задач для оптимизации и увеличения быстродействия работы в целом. В качестве примера рассмотрим предложенный к использованию механизм кеширования на мобильном клиенте.
Для обеспечения актуальности информации в локальной БД мобильного клиента в её таблицах заведены поля, показывающие дату последнего обновления информации в базе. При запуске приложения мобильный клиент получает с основного сервера список с краткой информацией об объектах с датами их обновления на сервере. Далее, если пользователь хочет открыть в приложении более подробную информацию по какому-либо объекту, то:
1) клиент проверяет, есть ли необходимая информация в локальной базе данных;
2) если в локальной БД нет информации об объекте или дата обновления информации об объекте в локальной базе данных раньше даты обновления информации об объекте базы данных сервера, клиент запрашивает данные из базы данных сервера и записывает их в локальную базу данных (причем дата обновления для локальной базы устанавливается текущая, на момент внесения изменений);
3) клиент берет данные из локальной базы данных для дальнейшей работы с ними.
Кроме алгоритмического обеспечения мобильного клиента, достаточно большой объем алгоритмического обеспечения разрабатывался для веб-сервиса, веб-приложения администратора и СУБД. Например, на стороне веб-сервиса разработка алгоритмического обеспечения заключалась в создании унифицированных веб-методов, позволяющих работать по различным протоколам (пригодным и для мобильного клиента, и для веб-приложения администратора) и с различными данными (текстовый контент, аудио/видео/фотоинформация).
Проектирование пользовательского интерфейса. Внешний вид приложения играет важную роль в его жизненном цикле. Чем приятней на вид и удобней в использовании приложение (часто из первого следует второе), тем больше людей и чаще будут им пользоваться.
Для создания иконок меню были использованы такие программные продукты, как Adobe Photoshop 6.0 [5], Corel Draw! 10.0 [3], позволяющие создать стильные иконки, соответствующие современным пользовательским требованиям, а именно минимализму и эстетичности. На рисунке 5 изображено главное окно приложения с открытым главным меню.
Рис. 4. Главное окно мобильного приложения с открытым меню
На рисунке 6 изображен эскиз интерфейса системы администрирования. Дизайн системы администрирования был разработан в программном продукте Pencil [4]. Данный программный продукт позволяет быстро и оперативно моделировать эскиз будущего интерфейса.
Рис. 5. Главное окно системы администрирования
Прочие компоненты программного комплекса (веб-сервис и БД) не нуждаются в каком-либо дизайне пользовательского интерфейса.
Реализация. Процесс реализации программного комплекса состоит из этапов реализации его отдельных составляющих: базы данных, веб-сервиса, веб-приложения администрирования, мобильного клиента.
Спроектированная на одном из предыдущих этапов модель БД основного сервера программного комплекса была развернуты на выделенном SQL-сервере MS SQL Server 2012 Express Edition под управлением ОС Windows Server 2008 R2.
Кодирование веб-приложения администрирования и веб-сервиса осуществлялась в среде Visual Studio 2012, с использованием технологии MVC [1] и библиотек Jquery, AJAX, jquery UI на языках программирования С#, Javascript.
Так как Android является собственностью компанией Google, то в качестве средств разработки было решено использовать рекомендуемые Google программные инструменты. Все ниже описанные инструменты являются полностью бесплатными, обладают официальной документацией, большой базой знаний в виде примеров.
В связи с этим разработка мобильного клиента осуществлялась на языке программирования Java в среде Eclipse IDE с использованием Android Development Tools Plugin for Eclipse (как набора поставляемых компанией библиотек) и Android SDK для компиляции кода. Все эти средства рекомендованы компанией Google для разработки приложений под операционную систему Android.
Разработка и тестирование приложения для мобильного клиента выполнялись на виртуальном эмуляторе устройства с ОС Android, в связи с чем достаточно много внимания было уделено адаптации и настройке виртуального мобильного устройства (настройка операционной системы в целом, модернизация эмулятора Android-устройства для тестирования картографических возможностей приложения).
Заключение. В ходе работы был разработан прототип программного комплекса, позволяющий наполнять БД исторических объектов г. Томска и осуществлять автоматизированные экскурсии по городу Томску с помощью соответствующего приложения для мобильного устройства под управлением ОС Android.
Разработанный веб-сервис предоставляет достаточно универсальный программный интерфейс для работы с информацией по историческим объектам г. Томска, и методы веб-сервиса могут быть использованы не только мобильным приложением «Виртуальный экскурсовод», но и другими приложениями, работающими на различных платформах и имеющими различное назначение.
Рецензенты:
Ким В.Л., д.т.н., профессор кафедры вычислительной техники Института кибернетики ФГБОУ ВПО «НИ ТПУ», г. Томск.
Авдеева Д.К., д.т.н., профессор, директор ООО «Медприбор», г. Томск.