172 ТРУДЫ БГТУ. 2012. № 6. Физико-математические науки и информатика. С. 172-175
УДК 004.42
Г. М. Сергеенко, магистрант (БГТУ);
В. В. Смелов, кандидат технических наук, доцент (БГТУ)
ПРИНЦИПЫ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ГЕОЛОКАЦИОННЫХ СИСТЕМ
Статья посвящена практическим методам разработки геолокационных систем на основе опыта применения программного интерфейса HTML5 Geolocation. Представлены результаты анализа возможностей работы с этим интерфейсом различных веб-браузеров. Даны практические рекомендации по проектированию архитектуры геолокационных приложений, применяющих HTML5 Geolocation, а также рассмотрены все используемые методы определения координат.
The article is devoted to developing practical methods of geolocation systems, based on experience with the software interface of HTML5 Geolocation. The results of the analysis capabilities with a user interface to these different webbrowsers. Practical recommendations for the design of architectural tours geolocation applications that use HTML5 Geolocation, and the exact same address allapplication-nyaemye methods for the determination of the coordinates.
Введение. Отслеживание географического местоположения объектов всегда было одной из актуальных прикладных задач, решаемых при разработке информационных систем. На сегодняшний день для реализации программного обеспечения (ПО) таких задач разработано много программных библиотек [1, 2]. До недавнего времени не существовало единой спецификации по определению географического местоположения объектов, поэтому применяемые ранее решения реализовывали это различными способами. После выхода предварительной версии спецификации HTML5, содержащей раздел о геолокации, появилась возможность создавать веб-приложения, использующие единый интерфейс доступа к средствам геолокации.
В статье рассматриваются принципы разработки приложений, использующих интерфейс HTML5 Geolocation API для вычисления местоположения пользователя.
Геолокация и ее применение в современных информационных технологиях. Геолокация - географическое положение соединенного с сетью Интернет компьютера или мобильного устройства, получаемое на основе IP-адреса, MAC-адреса, а также данных, встроенных в программное и аппаратное обеспечения, или другой информации. Геолокация используется для предоставления сервисов, зависящих от региональных особенностей, для отслеживания движения объектов в реальном времени в транспортных системах, для прокладывания маршрутов и поиска оптимальных путей. Геолокация широко применяется в поисковых системах, таких как Google, Bing. Они используют новейшие алгоритмы таргетинга - вывод рекламных объявлений в зависимости от региона пользователя.
С развитием мобильного Интернета широкое распространение получили геолокационные сервисы. Запустив приложение в смартфоне, можно получить информацию о маршрутах городского транспорта, расписании сеансов в кинотеатре, адресах ближайших магазинов и ресторанов и т. д. Сервисы, основанные на геолокации, - это дополненная реальность, учитывающая пространственное расположение пользователя. Эти новшества требуют от разработчиков изобретательности, чтобы создать удобные в использовании приложения. Геолокация упрощает применение многих сервисов, в особенности рассчитанных на мобильные телефоны нового поколения. Именно поэтому в современных мобильных устройствах присутствуют GPS-навигация (информирование о географических координатах: широте, долготе и высоте) и компас (ориентация по сторонам света).
Особенности архитектуры геолокационных систем. ПО современной геолокационной системы можно представить как взаимодействие компонентов трех уровней: уровня данных, бизнес-логики и презентационного уровня. Уровень данных используется для хранения и предоставления данных (база данных либо совокупность файлов в формате XML) более высокому уровню - бизнес-логике. Уровень бизнес-логики представляет собой реализацию функциональных возможностей системы (обработка запросов, вычисление координат, авторизация пользователей и т. д.). Уровень представления реализует пользовательский интерфейс средствами HTML5.
Методы определения местоположения объекта. Основная задача геолокационной системы - определение координат объекта. При создании веб-приложения, ориентированного на геолокацию, целесообразно данную задачу
решать средствами программного интерфейса HTML5 Geolocation API. Негативной стороной применения HTML5 является использование некоторыми пользователями браузеров устаревших версий, не реализующих этот стандарт. Степень соответствия HTML5 различных браузеров отображена на рис. 1 [3, 4].
0°%
S0%
100
Opera ll.60
Apple Safari S.l
Mozila Firefox l0
Рис. 1. Степень соответствия различных браузеров спецификации HTML5
Использовать программный интерфейс HTML5 Geolocation API удобно: необходимо запросить местоположение пользователя, и, если пользователь дает на это свое согласие, браузер возвращает соответствующую информацию. Данные о текущем местоположении предоставляются устройством (например, ноутбуком или мобильным телефоном), на котором установлен браузер, поддерживающий возможности геолокации. Информация о местоположении передается в виде набора координат (географическая широта и долгота), а также дополнительных метаданных. При работе с HTML5 Geolocation API координаты всегда возвращаются в виде десятичных градусов. Кроме широты и долготы, функции HTML5 Geolocation предоставляют точность определения координат данного местоположения. В зависимости от устройства, на котором выполняется браузер, могут формироваться дополнительные метаданные: высота над уровнем моря (altitude), точность определения высоты над уровнем моря (altitude accuracy), курс (heading) и скорость (speed). Если какое-либо из этих значений недоступно, вместо него возвращается значение null. Спецификация HTML5 Geo-location не содержит никаких предписаний относительно того, какую технологию должно использовать устройство для определения своего физического местоположения, а ограничивается формулировкой требований к программному интерфейсу, обеспечивающему извлечение этой информации. Спецификация требует
предоставления информации о точности вычисленных координат, поскольку нет полной гарантии их истинности.
Источником исходной геолокационной информации для устройства могут служить: IP-адрес; данные триангуляционной съемки (данные глобальной системы позиционирования GPS); МАС-адреса в сетях Wi-Fi; идентификационные номера телефонов в сетях GSM и CDM, а также данные, определенные самим пользователем. Для повышения точности определения координат часто используются данные из нескольких источников.
Получение геолокационной информации с помощью IP-адресов. В прошлом геолокация по IP-адресам была единственным способом определения возможного местоположения пользователя, но возвращенные результаты часто оказывались ненадежными. Геолокация этого типа основана на определении почтового адреса пользователя, зарегистрировавшего этот IP-адрес. Если же пользователь использует услуги Интернет-провайдера, предоставляющего IP-ад-рес, его местоположение часто разрешалось по адресу провайдера, который может быть географически удален от пользователя.
Методы получения геолокационной информации с помощью технологии GPS. Cell of Origin - простейший метод, позволяющий вычислять местонахождение мобильного телефона по известному CellID (Cell identifier -идентификатор ячейки). Метод не требует модификации сетевого оборудования и клиентского терминала, для этого достаточно установки программного комплекса MLC (Mobile Location Center - центр мобильной локализации). Координаты вычисляются на основе примерного знания расположения и радиуса ячеек сотовой сети, в которых мобильные телефоны обслуживаются базовой станцией. Точность определения местоположения зависит от густоты сети базовых станций, текущих местных радиоусловий и конфигурации сот. В центре крупного города точность обычно составляет несколько сотен метров, а на окраинах и в небольших городах - около километра. В сельской местности точность снижается до 35 км, а в режиме Extented Cell (ECell) - до 120 км. За пределами зоны покрытия сотовой сети данный метод не работает и геолокационные сервисы недоступны.
TOA (Time of Arrival - оценка времени прибытия сигнала) основан на измерении и сравнении интервалов времени прохождения сигнала от мобильного телефона абонента до нескольких базовых станций. Требует модернизации оборудования сотовой сети. Точность может достигать 125 м. Базовые станции, принимающие сигнал
174
Г. М. Сергеенко, В. В. Смелов
мобильного телефона, должны быть оснащены LMU (Location Measurement Unit - блок определения местоположения). По разности времени поступления сигнала управляющим компьютером сети сотовой связи с помощью алгоритма трилатерации рассчитывается местоположение передатчика. Полученные координаты передаются соответствующему сетевому приложению (серверу услуги) или клиенту.
OTD (Observed Time Difference - наблюдаемая разность времени прибытия сигнала) основан на измерении и сравнении интервалов времени прохождения сигналов от нескольких базовых станций до мобильного телефона абонента. Требует модернизации сетевого оборудования, но это значительно дешевле TOA. Управляющий контроллер мобильного телефона измеряет время прохождения сигнала от нескольких базовых станций, одна из которых оснащена блоком LMU. Для получения информации о своем местоположении абонент совершает звонок, при котором его телефон до установки речевого соединения посылает специальное сигнальное сообщение, MLC производит необходимые вычисления для расчета местоположения, после чего пакет данных с координатами местонахождения абонента пересылается на сотовый телефон.
A-GPS (Assisted Global Positioning System -вспомогательная глобальная система позиционирования) основана на встраивании в мобильные телефоны модуля GPS и переносе части вычислительных функций на Mobile Location Center для снижения энергопотребления и ускорения определения местоположения.
Поскольку процесс определения местоположения с помощью GPS может быть длительным, часто используют асинхронные запросы с индикацией их завершения.
Получение геолокационной информации с помощью технологии Wi-Fi. Сети Wi-Fi используются главным образом для определения местоположения в городских условиях путем измерения расстояний до нескольких известных точек доступа Wi-Fi. В отличие от GPS, сети Wi-Fi позволяют получать очень точные результаты как внутри, так и вне помещений.
Получение геолокационной информации с помощью сетей мобильной связи. Мобильные телефоны используются для получения геолокационной информации путем измерения расстояний до нескольких базовых приемопередающих станций. Этот метод дает довольно точные результаты. Его часто используют в сочетании с информацией, полученной от источников Wi-Fi и GPS.
Определяемые пользователем геолокационные данные. Вместо того чтобы определять местоположение программным путем, можно предоставить пользователю возможность самостоятельно ввести необходимые данные. Приложение может разрешить пользователям вводить свой почтовый индекс, адрес и другую информацию.
Обеспечение безопасности в геолокационных системах. Спецификация HTML5 Geolo-cation предписывает предоставление механизма, обеспечивающего конфиденциальность личных данных пользователя. Информация о местоположении становится доступной только после разрешения пользователя. Принцип работы защиты личных данных пользователя изображен на рис. 2.
Рис. 2. Защита личных данных пользователя
Пользователь вызывает веб-приложение, использующее информацию о местоположении. После загрузки веб-страницы с помощью вызова функций Geolocation API в браузер направляется запрос на получение координат. Браузер запрашивает у пользователя разрешение на предоставление этих данных. Если пользователь разрешает, то браузер получает информацию о местоположении (IP-адрес, координаты, найденные триангуляционным способом с использованием сетей Wi-Fi или систем GPS-навигации) от устройства, на котором он выполняется. После этого браузер отсылает информацию доверенной внешней локационной службе, возвращающей информацию о местоположении. Приложение не имеет прямого доступа к устройству; оно лишь направляет браузеру запрос о предоставлении возможности обратиться к устройству от его имени. При попытке
доступа к веб-странице, использующей HTML5 Geolocation, запускается механизм защиты личной информации.
Обработка информации о местоположении. После получения данных геолокации с помощью сервисов Google Maps, Bing Maps, Яндекс координаты объекта можно отобразить на карте (рис. 3). От данных геолокации, на хранение которых не было получено разрешения пользователя, необходимо избавляться сразу же после выполнения задачи, которая их запросила, а данные, подлежащие пересылке, рекомендуется шифровать.
jr (< >
Ньк? Милфорд ^
и MC4V Mütütd
\
риверэдж о
River Ed^i || m
Думонт
Dum ant
Карта Спутник -"L—I—
Мей|
Mayw
т
® >Ш
Tfaosck
'ткккенсак
Бергенфигд
Befgenftefct £
Никербокер Кантри Кпаб
Knlckäfhdckw Country Club.
Йонк<
' Vwike
Intetslat* Park'
HuLkcn^ik
Богота
©
Юг J
Рвджфигщ iSlÖÖfiK Пари
finnn - ■ Rlrtn»fl*IH Purti
Тенафлай
ТепаЯу
Падпоу
♦ Ludlmv
Парк Пвписейдс/ Интерстейт /
■ i'ark
I I
SjlS Энглвуд ; Филдсточ
Клифс I p'sWsw
inglewood Cliffs
Оверлеи / (jftj
Голф Коре
Over&eck "'вь. GeffCoLia^fe
\ ® Леонид ^
In1 Щ #
Паписейдс щ £ &
Парк
©
$
päis Да нны.^ t а£т|ц|| ©2012 Google - Условия^ с пользования
Рис. 3. Отображение объекта на карте
Заключение. Увеличение количества сетевых сервисов, использующих геолокационные данные, позволяет создавать приложения, которые учитывают месторасположение пользователя. При разработке таких приложений необходимо обратить внимание на следующее:
1) спецификация HTML5 Geolocation не зависит от способа определения местоположения пользователя;
2) при применении HTML5 Geolocation важно учитывать точность геолокации;
3) спецификация HTML5 Geolocation реализована только в современных версиях браузеров;
4) следует обратить внимание на вопросы безопасности личных данных при работе с геолокационной системой.
Литература
1. Holdner, A. HTML5 Geolocation / A. Holdner // O'Reilly Media. - 2011. - № 72. - P. 65.
2. Allan, A. Geolocation in iOS: Mobile Positioning and Mapping on iPhone and iPad / А. Allan // O'Reilly Media. - 2011. - № 31. - P. 23.
3. HTML5 Test Suite Conformance result [Электронный ресурс]. - 2012. - Режим доступа: http://w3ctest.org/html/tests/reporting/report.htm. -Дата доступа: 28.02.2012.
4. HTML5 & CSS3 Support [Электронный ресурс]. - 2012. - Режим доступа: http://www. findmebyip/litmus/. - Дата доступа: 28.02.2012.
Поступила 25.02.2012