1НФОРМАЦ1ИН1 I ТЕЛЕКОМУН1КАЦ1ИН1 ТЕХНОЛОГИ
https://orcid.org/0000-0002-9222-644X https://orcid.org/0000-0002-2723-4144
УДК 004.02
е.в. Н1К1ТЕНКО*, е.в. риндич*
МОБ1ЛЬНИИ ANDROID - ДОДАТОК СИСТЕМИ СУПРОВОДЖЕННЯ ПОДОРОЖ1
Чершпвський нацiональний технологiчний ушверситет, м. Чершпв, Украша
Анотаця. Розроблено концептуальну модель предметног областг та архтектуру системи супро-водження подорож1, а саме планування маршруту мандр1вки з урахуванням взаемодИ з користува-чем системи. Запропонована архитектура мобыьного Android-додатка розроблена з урахуванням особливостей кл1ент-серверног архтектури i е гнучкою, осктьки не обмежена використанням конкретних програмнихршень: фреймворюв чи бiблiотек. Запропонована система вiдноситься до класу систем супроводження подорожi й надае можливiсть користувачу створювати, редагува-ти, видаляти елементи маршруту подорожi. Також система нацшена на роботу дектькох кори-стувачiв з одним маршрутом одночасно. Кожен користувач мае можливiсть створити декшька маршрутiв одночасно. До одного маршруту можна додати багато користувачiв одночасно, таким чином вiдтворюючи взаемозв'язок «багато до багатьох». Архтектура мобыьного Android-додатка е реалiзацiею miент-серверног архтектури з тдходом до архтектури мережевих про-токолiв REST, який забезпечуе доступ до ШформацШних ресурав у локальнт або глобальнт мере-жi. 1нформащя вiдправляеться на серверну частину вiд клiентiв, де вона обробляеться й збериа-еться у реляцттй базi даних PostgreSQL. Для практичног реалiзацiг використано мову програму-вання Java, ORM-технологiю, формат обмту даними JSON та платформу Android. Одтею з голо-вних функцт розробленог системи е побудова маршруту подорожi з урахуванням факторiв взае-модп багатьох користувачiв та факторiв, як були обрат як найважливrni. Запропоноват ре-зультати мають практичне значення i можуть бути використаш в тших сферах, пов'язаних з логiстикою.
Ключовi слова: Android, JSON, Java, REST, ORM, SQL, PostgreSQL, miент-серверна архтектура, веб-сервер, мобтьний додаток, туризм, тформацЫн технологи, системи супроводу подорожi, системи тдтримки прийняття ршень, мобтью iнформацiйнi технологи, база даних, розумне мiсто.
Аннотация. Разработаны концептуальная модель предметной области и архитектура системы сопровождения путешествия, а именно планирование маршрута путешествия с учетом взаимодействия с пользователем системы. Предложенная архитектура мобильного Android-приложения разработана с учетом особенностей клиент-серверной архитектуры и является гибкой, поскольку не ограничена использованием конкретных программных решений: фреймворков или библиотек. Предложенная система относится к классу систем сопровождения путешествия и дает возможность пользователю создавать, редактировать, удалять элементы маршрута путешествия. Также система нацелена на работу нескольких пользователей с одним маршрутом одновременно. Каждый пользователь имеет возможность создать несколько маршрутов одновременно. В один маршрут можно добавить много пользователей одновременно, таким образом воспроизводя взаимосвязь «многие ко многим». Архитектура мобильного Android-приложения является реализацией клиент-серверной архитектуры с подходом к архитектуре сетевых протоколов REST, который обеспечивает доступ к информационным ресурсам в локальной или глобальной сети. Информация отправляется на серверную часть от клиентов, где она обрабатывается и хранится в реляционной базе данных PostgreSQL. Для практической реализации использованы язык программирования Java, ORM-технология, формат обмена данными JSON и платформа Android. Одной из главных функций разработанной системы является построение маршрута путешествия с учетом факторов взаимодействия многих пользователей и факторов, которые были выбраны
© НЫтенко е.В., Риндич е.В., 2020
ISSN 1028-9763. Математичш машини i системи, 2020, № 1
как важные. Предложенные результаты имеют практическое значение и могут быть использованы в других сферах, связанных с логистикой.
Ключевые слова: Android, JSON, Java, REST, ORM, SQL, PostgreSQL, клиент-серверная архитектура, веб-сервер, мобильное приложение, туризм, информационные технологии, системы сопровождения путешествия, системы поддержки принятия решений, мобильные информационные технологии, база данных, умный город.
Abstract. The conceptual model of the subject area and the architecture of the travel support system have been developed, namely the planning of the travel itinerary regarding the interaction with the user of the system. It is proposed architecture of the mobile Android application that was designed by reference to specific features of the client-server architecture and is flexible because it is not limited to use the specific software solutions: frameworks or libraries. The proposed system belongs to the class of travel support systems and enables the user to create, edit, and delete elements of the travel itinerary. The system also targets multiple users with one itinerary at a time. Each user has the ability to create multiple itineraries at one time. You can add multiple users to one itinerary at a time, thus creating many-to-many relationships. The architecture of the mobile Android application is the implementation of client-server architecture with an approach to REST network protocol architecture that provides access to information resources on a local or global network. The information is sent to the server part of the clients, where it is processed and stored in a PostgreSQL relational database. For practical implementation, Java programming language, ORM technology, JSON data format, and Android platform were used. One of the main functions of the developed system is the construction of the itinerary taking into account the factors of the interaction of many users and the factors that they have chosen as the most important. The proposed results are of practical importance and can be used in other areas related to logistics. Keywords: Android, JSON, Java, REST, ORM, SQL, PostgreSQL, client-server architecture, web server, mobile application, tourism, information technology, travel tracking systems, decision support systems, mobile information technology, database, smart city.
DOI: 10.34121/1028-9763-2020-1-53-60
1. Постановка проблеми
Туризм e одшею з основних галузей CBiTOBOi економши, в якш постшно задiяно велику кшьюсть ресурав. Головною задачею, яка виршуеться тд час подорожей, e планування маршрутсв. Ця задача також е невщ'емною частиною у становленш та оргашзаци нов^нього, урбашзованого, розумного (smart) мюта. Оптимальне планування маршрутсв для подорожей дозволяе заощаджувати часов^ паливш та людсью ресурси. Оптимiзованi маршрути дають змогу знизити негативний вплив на еколопю та тдвищити швидюсть транспортування загалом.
Система планування маршрутсв для подорожуючих, як одна з можливих галузей для оптимiзащi шляхiв, передбачае попереднш збip даних вщ коpиcтyвачiв про icнyючi точки маршруту. На оcновi зiбpаних даних вщ коpиcтyвачiв програмного додатку можна побуду-вати маршрут, який буде задовольняти yмовi мшмальних паливних та часових витрат, ^м того, пpоаналiзyючи даш, можна передбачити час, який знадобиться на подолання створеного маршруту. Використовуючи геопозицшш технологи, маршрут може бути змь нено або вщредаговано для запоб^ання можливосп потрапляння транспортного засобу в затор, непридатну для пересування дорогу тощо [1].
Метою статтг е дослщження особливостей арх^ектури та побудови мобшьного додатку, який матиме змогу збер^ати даш про icнyючi маршруты пункти i на оcновi цих даних будувати та вщображати оптимальний маршрут подороже Архитектура мобшьного додатка повинна бути не вyзькоcпeцiалiзованою, а гнучкою, що в подальшому дозволить використовувати ii в багатьох галузях.
2. Анал1з дослщжень 1 публжацш
Туризм представляв собою сферу, що задовольняе потреби у послугах, пов'язаних iз вщ-починком пiд час подорожь Туристична галузь, яка вiдноситься до господарсько1 дiяльно-стi, в останш роки розвиваеться досить динамiчно i е одним з важливих секторiв пщприе-мницько'1 дiяльностi. Для надання послуг окремим туристам та туристичним групам турис-тичш фiрми, екскурсшш бюро, страховi та транспортнi компани, готелi, кафе та ресторани використовують iнформацiйнi технологи [2].
Об'ектом розробки е Android-додаток [3], який буде надавати ^енту оптимальний шлях мандрiвки на основi попередньо зiбраних даних вщ користувачiв додатка. Додаток буде взаемодiяти з головним сервiсом, який саме i буде займатися розрахунками маршру-тiв подорожей. Цей сервю, у свою чергу, буде взаемодiяти з iншими сервiсами, якi будуть виступати в ролi допомiжних. Для додатка е важливим взаемодiя з геопозицшними сервь сами, що дозволяе проводити коригування маршруту внаслщок несприятливих для про-кладання маршруту умов, а також з базою даних, об'екти яко1 повинш бути взят до уваги при оптимiзацii шляху. Адже ця система передбачае побудову маршрутв на основi координат, що можуть мютити рiзнi прюритети для вiдвiдування, в даному випадку це ощнки привабливостi тих чи шших мiсць для мандрiвникiв.
3. Розробка Ап^о1^додатка для подорожей
Система супроводження подорож передбачае, що користувач цього сервюу повинен мати змогу вибирати та редагувати маршрут власноруч. Побудова маршруту виконуеться згщно з налаштуваннями та обраними користувачем певними мюцями для вщвщування в заданш територп або зонi, яку оператор додатка бажае включити до складу маршруту, що створю-еться або редагуеться.
Дана розробка мае ряд переваг:
можливють заздалегщь планувати мандрiвку;
- можливiсть переглядати опис та ощнку iншими користувачами мюць для подоро-
жi;
- можливють доповнювати базу даних новими пам'ятними, розважальними та сер-вюними мiсцями;
- оптимiзацiя та розрахунок витрат часу на подорожц
- можливють дiлитися з iншими користувачами запланованою мандрiвкою.
Використання Android-додатку дозволяе повшстю вiдмовитися вiд потреби розробки ушкальних пристро'в, якi будуть виконувати лише специфiчнi функцп. Це дае можли-вiсть повторного використання даного проекту по всьому св^у та в шших галузях без не-обхщносп реашзацп iндивiдуальних апаратних та програмних засобiв.
Система надання маршрутв мандрiвникам, яка в подальшому може бути викорис-тана для шших галузей, де необхщш збереження та оптимiзацiя маршрутiв, представляеть-ся такими сутностями: мюто, мандрiвна група, мандрiвник, точка подорожi, сервер зби-рання шформаци вiд мандрiвникiв, подорож.
На рис. 1 представлена концептуальна модель без орiентацii на конкретш програмш та технiчнi засоби виконання задач предметно1 областi.
Кожне мюто може мати декiлька мандрiвних маршрутв, атрибутами даних сутнос-тей е назва мюта та маршруту. Кожний маршрут в свою чергу може мати велику кшькють мюць для подорожей, яю характеризуються власними координатами.
Вс мандрiвники вiдсилають iнформацiю, що стосуеться вже юнуючих або нових мiсць для подорожей, на головний сервер (систему збирання шформацп), i далi iншi манд-рiвники використовують цю ж шформащю для побудови сво'х виняткових маршрутiв. На серверi знаходиться модератор, який контролюе роботу та працездатшсть системи.
Рисунок 1 - Концептуальна модель предметно! област
Шсля надходження шформацп до мандр1вниюв про маршрут подорожi та мюцезна-ходження вс1х точок для подорож1, за необхщносп вщбуваеться оптим1защя маршруту.
Для Android-додатка щодо надання маршрут1в мандр1вникам головним користува-чем е мандр1вник (рис. 2). Оператор може виконувати запуск та призупинення Android-додатка. Безпосередньо у програм1 для мандр1вника е можливють вибору заздалепдь збе-реженого набору пам'ятних мюць, для яких буде побудовано оптимальний маршрут подороже Користувач може переглядати вщгуки та оцшки про мюця вщвщування, додавати в систему нов1 мюця для подорожей та дшитися ними з шшими користувачами. При необхщносп оператор може редагувати маршрути, додаючи нов1 мюця для подорожi з системи або, навпаки, видаляти !х.
Рисунок 2 - Дiаграма використання для ролi «диспетчер»
Розроблена арх^ектура Android-додатка для надання маршрупв мандрiвникам наведена на рис. 3. Основними функщональними елементами арх^ектури системи е: оператор, шар представлення, сервю додатка, доступ до даних, кластер СКБД.
Оператор - користувач, який може здшснювати контроль над системою. Оператор мае доступ до графiчного представлення.
Сервю Android-додатка уособлюе у собi головний модуль, який вщповщае за надання операторам шформацп про побу-дованi оптимальш шляхи для подорож i мютить такi модулi:
- модуль взаемодп з Android-додатком;
- модуль взаемодп з шшими геопо-зицшними сервiсами;
- модуль, вiдповiдальний за надання мандрiвнику основних можливостей щодо планування мандрiвки.
Модуль взаемодп з Android-додатком представлений у виглядi сервiсу з доступом за протоколом http. Керуючи параметрами в запил до сервiсу та адресами сервюу, оператор мае змогу викли-кати ту чи шшу функцiю сервiсу.
Модуль взаемодп з шшими геопо-зицiйними сервiсами при виконанш оп-тимiзащi маршруту бере даш про наявнi дороги, перешкоди, затори та iншi специфiчнi для кожного конкретного маршруту географiчнi i транспортнi особливостi побудови.
Модуль, вщповщальний за надання мандрiвнику основних можливостей щодо планування мандрiвки, займаеться менеджментом даних про мандрiвки та мюця для подоро-жування й надае ix до модуля, який займаеться передачею даних до Android-додатка манд-рiвника.
Android-додаток - це частина системи, за допомогою яко'1' виконуеться представлення даних мандрiвнику. Android-додаток програми мiстить такi модуле
- модуль взаемодп з сервюом по оптимiзацii шляxiв;
- модуль представлення оптимальних маршрутiв.
Для збериання шформацп в базi даних PostgreSQL було створено п'ять таблиць (рис. 4): «travel», «place», «comment», «place_photo», «user».
Таблиця «travel» призначена для збер^ання шформацп про мандрiвку: ii назву, список користувачiв, для яких вона доступна, користувача, який ii створив, шдикатор, чи е мандрiвка арxiвованою.
Таблиця «place» мютить iнформацiю про мiсця, якi можуть бути використаш для складання мандрiвки: назва, опис, список коментарiв шших користувачiв, координати.
Таблиця «comment» мютить iнформацiю про коментарi до пам'яток: щентифшатор, текст, iдентифiкатор користувача, який створив коментар, рейтинг-оцшка пам'ятки.
Таблиця «place_photo» мiстить iнформацiю про фотографп пам'ятки: iдентифiкатор, фото, iдентифiкатор пам'ятки, до яко'1' вiдноситься фото.
Таблиця «user» мютить iнформацiю про зареестрованих користувачiв додатка: щен-тифiкатор, iм'я, прiзвисько, дата створення запису, електронна адреса, логш, пароль, роль у система
Рисунок 3 - Арх1тектура системи Android-додатку
Рисунок 4 - Схема бази даних
Для роботи з базою даних спочатку n0Tpi6H0 налаштувати популярный фреймворк Hibernate, який створений для того, щоб зв'язати об'eктно-орieнтовану модель даних Í3 традицiйною реляцiйною базою даних. Фреймворк Hibernate створюе зв'язок мiж табли-цями в базi даних та Java-класами за допомогою XML-файшв [4, 5].
Файл вiдображення (mapping file) описусться у виглядi XML-файшв. Цi файли i бу-дуть вщповщати за взаeмодiю об'eктiв з Hibernate та базою даних. При цьому mapping file можна використовувати замють Java-анотащй
На рис. 5 наведено алгоритм отримання маршруту для мандрiвки ^ента у Android-додатку.
Для отримання шформацп про оптимальний маршрут мандрiвник повинен увшти до системи, ввiвши сво! реeстрацiйнi данi. Якщо попередньо облiковий запис не було створено, тодi потрiбно зарееструватися в системi, пiсля чого слщ ввести всi необхiднi данi: мандрiвка, для яко! повинен бути побудований маршрут, додатковi умови для побудови маршруту (тший, авто, велосипедний маршрут).
Шсля вводу необхiдних даних користувач мае натиснути кнопку «Route», до сервюу щодо надання маршрутiв для подорожей буде надюлано запит зi всiма необхiдними параметрами, тсля чого додаток перейде в режим очшування даних зi сторони сервюу. Якщо сервiс знайде потрiбний ^енту маршрут i вiдправить його до Android-додатка клiента, на мапi вщобразиться оптимальний маршрут подорожi.
На рис. 6 наведено алгоритм отримання даних вщ мандрiвника, додавання в систему ново! пам'ятки, мiсця для подорожування.
Працюючи, сервiс очiкуе на запити кшенпв згiдно з адресою запиту та його параметрами. При запил на додавання ново! пам'ятки в систему сервю виконуе таку послщов-нiсть:
- отримати даш вiд клiента, зчитати параметри, передаш в запитi;
- перетворити JSON-об'ект у звичайний для Java-клас (POJO);
- перетворити фото, передаш користувачем, в масиви байпв;
- вщправити данi про збережену пам'ятку на Android-додаток клiента.
Згщно з вимогами системи, класи подшяються на пакети вщповщно до ix функщо-нального призначення в система
Рисунок 5 - Алгоритм запиту маршруту мандр1вки вщ сервюу
Рисунок 6 - Алгоритм додавання до сервюу новоi пам'ятки
«сere ate^
s!/ i
Package service
i
1
«ere ate»
1
_\ t
Package controller
1
«creíate»
V
Package model
Рисунок 7 - Д1аграма пакет1в сервюу для Android-додатка
лiзацii. Для зберiгання рмна СКБД.
На рис. 7 наведена дiаграма пакелв сервiсу для Android-додатка та зв'язки, наявш мiж цими пакетами.
Головнi компоненти системи знаходяться в пакет з на-звою «Controller», який вiдповiдае за надання програмно'1' бiзнес-логiки шшим пакетам, що беруть участь у представлены даних користувачу додатка. «Controller» використовуе пакет iз класами, що е ноаями даних. Yd класи для збереження та передачi шфор-мацп мiж модулями знаходяться в пакет пiд назвою «Model». Пакет iз класами, якi будуть вщповщати за передачу даних на сторону кшенпв, називаеться «Service».
8. Висновки
Додаток було розроблено за допомогою REST-арх^ектури, мови програмування Java, ORM-технолопй, формату обмiну даними JSON та платформи Android. Сервю системи було розроблено в середовищi розробки IntelliJ IDEA, Android-додаток у середовищi розробки Android Studio. Для реалiзацii графiчного iнтерфейсу (GUI) були використанi нативш для Android-системи засоби реа-даних використовуеться СКБД PostgreSQL - вщкрита кросплатфо-
На сучасному етат розвитку шформацшних систем впровадження нових та розши-рення функцюнальних можливостей вже iснуючих систем може значно пщвищити проду-ктившсть вiдповiдних галузей та в подальшому стати додатковим стимулом до ïx розвитку. Представлена розробка може бути використана в багатьох галузях, де потрiбне пла-нування оптимальних маршрупв, а також передбачено, що мiсця для подорожування мо-жуть бути створеш динамiчно самими користувачами додатка.
СПИСОК Л1ТЕРАТУРИ
1. Риндич С.В. Серв1сно-ор1ентована арх1тектура шформацшних систем у сфер1 надання транспортних послуг. BicnuK Чертг1всъкого державного технолог1чногоуниверситету. Техтчт науки. 2013. № 1. С. 155-160.
2. Артеменко О.1., Пашчник В.В., Егорова В.В. 1нформацшш технологи в галуз1 туризму. Анатз застосувань та результата дослщжень. Вюник Нащоналъного утверситету «Лъвiвсъка полiтехнi-ка». 1нформацШт системи тамережi. 2015. № 814. С. 3-22.
3. Нштенко С.В., Риндич С.В. 1нструментальний зас1б вщдаленого спостереження за показниками датчиюв. Математичт машини i системи. 2018. № 1. С. 51-58.
4. Johnson R., Hoeller J., Donald K. et al. Spring Framework Reference Documentation. 2004. URL: http://docs.spring.io/spring/docs/current/spring-frameworkreference/htmlsingle/#beans.
5. Bauer C., King G. Hibernate in action. Greenwich CT: Manning, 2005. Т. 4. P. 400.
Стаття надтшла до редакцИ' 13.01.2019