Протокол определения местоположения мобильных устройств ( MLP ) — это протокол уровня приложений для получения данных о местоположении мобильных станций (MS: мобильные телефоны, беспроводные устройства и т. д.) независимо от базовой сетевой технологии. [1] [2] [3] [4]
MLP служит интерфейсом между сервером определения местоположения и приложением определения местоположения. Базовые службы MLP основаны на службах определения местоположения, определенных 3GPP. Протокол определения местоположения Mobile Location Protocol (MLP) описан в спецификации LIF TS 101. [5]
Целью данной технологии является определение простого и безопасного метода доступа, который позволяет мобильному приложению запрашивать информацию о местоположении из беспроводной сети , независимо от базовой сетевой технологии и методов позиционирования.
MLP может использоваться приложением на основе определения местоположения для запроса информации о местоположении мобильной станции с сервера определения местоположения (GMLC/MPC или другого объекта в беспроводной сети). Этот протокол был подготовлен Форумом по взаимодействию местоположений (LIF: Open Mobile Alliance в настоящее время) для предоставления простого и безопасного API (интерфейса прикладного программиста), но также может использоваться для других типов серверов определения местоположения и объектов в беспроводной сети.
API основан на XML и определен для передачи в HTTP или SOAP . В настоящее время определено только сопоставление с HTTP. По соображениям безопасности для передачи HTTP (HTTPS) могут использоваться криптографические протоколы Secure Socket Layer (SSL) или Transport Layer Security (TLS). Помимо протокола мобильного местоположения HTTPS, который использует аутентификацию по пользователю и паролю, информация передается в заголовочной части сообщения MLP.
Последний проект спецификации MLP — OMA-TS-MLP v 3.3 от марта 2009 года. [5] Версия 3.3 предоставляет следующие возможности:
Используется для запроса местоположения одного или нескольких мобильных абонентов (MS). Используется, когда требуется немедленный ответ. Ответ может быть возвращен в более чем одном сообщении, если запрос содержал больше мобильных абонентов.
Используется для запроса местоположения одной или нескольких MS, участвующих в экстренном вызове. Ответ может быть возвращен в более чем одном сообщении, если сервер поддерживает это.
Эта услуга инициируется MS путем отправки Mobile Originated Location Request [TS23271] через беспроводную сеть. Она выполняется, когда Mobile Subscriber хочет, чтобы клиент LCS получил местоположение MS.
Эта услуга инициируется сетью, когда MS инициирует или завершает экстренный вызов. Отчет формируется и отправляется с Location Server на предопределенный LCS-клиент.
Эта услуга используется, когда клиент LCS хочет отслеживать несколько MS. Триггерами могут быть таймеры или события MS, такие как изменение местоположения.
Эта услуга используется для запроса отчетов об исторических местоположениях одной MS, когда ожидается большой объем данных.
<!MSID ЭЛЕМЕНТА (#PCDATA)><!ATTLIST msidтип (MSISDN | IMSI | IMEI | MIN | MDN |EME_MSID | IPV4 | IPV6)"MSISDN"enc (ASC | B64 | CRP) "ASC"><!ELEMENT msid_range (начальный_msid, конечный_msid)><!ATTLIST msid_rangeтип (MSISDN | IMSI | IMEI | MIN | MDN |EME_MSID | IPV4 | IPV6)"MSISDN"enc (ASC | B64 | CRP) "ASC"><!ЭЛЕМЕНТ msids ((msid, сеанс? |msid_range)+)><!ЭЛЕМЕНТ esrd (#PCDATA)><!ATTLIST esrdтип (NA) "NA"><!ЭЛЕМЕНТ esrk (#PCDATA)><!ATTLIST esrkтип (NA) "NA"><!ЭЛЕМЕНТ сеанса (#PCDATA)сессияТип (APN | dial) #ОБЯЗАТЕЛЬНО><!ЭЛЕМЕНТ start_msid (#PCDATA)><!ELEMENT stop_msid (#PCDATA)>
<!ELEMENT add_info (#PCDATA)><!ELEMENT eme_event (eme_pos+)><!ATTLIST eme_eventeme_trigger (EME_ORG |ЭМЭ_РЕЛ)#ТРЕБУЕТСЯ><!ЭЛЕМЕНТ tlrr_event (время | изменение_области | мс_действие)><!ЭЛЕМЕНТ ms_action ПУСТО><!ATTLIST ms_actionтип (MS_AVAIL) #ТРЕБУЕТСЯ><!Интервал ЭЛЕМЕНТА (#PCDATA)><!ELEMENT loc_type ПУСТО><!ATTLIST loc_typeтип (ТЕКУЩИЙ | ПОСЛЕДНИЙ |ТЕКУЩИЙ_ИЛИ_ПОСЛЕДНИЙ | ИНИЦИАЛ)"ТЕКУЩИЙ"><!ELEMENT poserr (результат, время)><!ЭЛЕМЕНТ приоритет ПУСТО><!ATTLIST приотип (НОРМАЛЬНЫЙ | ВЫСОКИЙ) "НОРМАЛЬНЫЙ"><!ELEMENT pushaddr (url)><!ELEMENT req_id (#PCDATA)><!ЭЛЕМЕНТ результат (#PCDATA)><!ATTLIST результатостаточный CDATA #ОБЯЗАТЕЛЬНО><!Время_начала_ЭЛЕМЕНТА (#PCDATA)><!ATTLIST время_началаutc_off CDATA "0000"><!ELEMENT stop_time (#PCDATA)><!ATTLIST время_остановкиutc_off CDATA "0000"><!Время ЭЛЕМЕНТА (#PCDATA)><!ATTLIST времяutc_off CDATA "0000"><!URL ЭЛЕМЕНТА (#PCDATA)><!ELEMENT Оставшееся_время (#PCDATA)>
<!ЭЛЕМЕНТ pos (msid, (pd | poserr), gsm_net_param?)><!ELEMENT eme_pos (msid, esrd?, esrk?, (pd | посерр))><!ЭЛЕМЕНТ trl_pos (msid, (pd | poserr))><!ЭЛЕМЕНТ trl_pos<!ATTLIST trl_trigger (ТАЙМЕР | ПЕРИОДИЧЕСКИЙ| MS_AVAIL)<!ELEMENT pd (время, форма, (alt, alt_acc?)?, скорость?,направление?, lev_conf?)><!ЭЛЕМЕНТ alt (#PCDATA)><!ЭЛЕМЕНТ alt_acc (#PCDATA)><!Направление ЭЛЕМЕНТА (#PCDATA)><!ELEMENT восточное направление (#PCDATA)><!ELEMENT geo_info (coord_sys, datum, формат? Зона?)><!ЭЛЕМЕНТ coord_sys (#PCDATA)<!ЭЛЕМЕНТ данных (#PCDATA)<!Формат ЭЛЕМЕНТА (#PCDATA)><!ЭЛЕМЕНТ широта (#PCDATA)><!ЭЛЕМЕНТ ll_point (широта, долгота)><!ELEMENT длинный (#PCDATA)><!ELEMENT северное направление (#PCDATA)><!ELEMENT utm_point (восточное направление, северное направление, зона, zone_des)><!Скорость ЭЛЕМЕНТА (#PCDATA)><!ЭЛЕМЕНТ x (#PCDATA)><!ЭЛЕМЕНТ xy_point (x, y)><!ЭЛЕМЕНТ y (#PCDATA)><!ЭЛЕМЕНТ зоны (#PCDATA)><!ЭЛЕМЕНТ zone_des (#PCDATA)><!ELEMENT lev_conf (#PCDATA)>
<!ЭЛЕМЕНТ форма (точка | круг | дуга_окружности | эллипс | многоугольник )><!ЭЛЕМЕНТ точка (ll_point | utm_point | xy_point)><!Угол ЭЛЕМЕНТА (#PCDATA)><!ELEMENT дуга_окружности (точка, вх_радиус, вых_радиус, начальный_угол, конечный_угол)><!ЭЛЕМЕНТ круг (точка, рад)><!ЭЛЕМЕНТ эллипс (точка, угол, большая полуось, малая полуось)><!ЭЛЕМЕНТ in_rad (#PCDATA)><!ЭЛЕМЕНТ out_rad (#PCDATA)><!ЭЛЕМЕНТ многоугольник (точка+)><!ЭЛЕМЕНТ рад (#PCDATA)><!ЭЛЕМЕНТ полу_большой (#PCDATA)><!ЭЛЕМЕНТ полу_минор (#PCDATA)><!ЭЛЕМЕНТ начальный_угол (#PCDATA)><!ELEMENT stop_angle (#PCDATA)>
<!ELEMENT eqop (resp_req?, resp_timer?, (ll_acc | hor_acc)?,alt_acc?, max_loc_age?)><!ЭЛЕМЕНТ qop ((ll_acc | hor_acc)?, alt_acc?)><!ЭЛЕМЕНТ ll_acc (#PCDATA)><!ЭЛЕМЕНТ hor_acc (#PCDATA)><!ЭЛЕМЕНТ resp_req ПУСТО><!ATTLIST resp_reqтип (NO_DELAY | LOW_DELAY |DELAY_TOL)"DELAY_TOL"><!ELEMENT resp_timer (#PCDATA)>
<!ELEMENT gsm_net_param (cgi?, neid?, NMR?, ta?)><!ЭЛЕМЕНТ cgi (mcc, mnc, lac, cellid)><!ELEMENT neid (vmscid | vlrid)><!ЭЛЕМЕНТ vmscid (cc, ndc, vmscno)><!ELEMENT vlrid (cc, ndc, vlrno)><!ЭЛЕМЕНТ нмр (#PCDATA)><!ЭЛЕМЕНТ mcc (#PCDATA)><!ЭЛЕМЕНТ ndc (#PCDATA)><!ЭЛЕМЕНТ cc (#PCDATA)><!ELEMENT vmscno (#PCDATA)><!ELEMENT vlrno (#PCDATA)><!ЭЛЕМЕНТ lac (#PCDATA)><!ELEMENT cellid (#PCDATA)><!ЭЛЕМЕНТ та (#PCDATA)>
<!ЭЛЕМЕНТ клиент (id, пароль?, serviceid? servicetype?)><!ЭЛЕМЕНТ идентификатор сеанса (#PCDATA)><!Идентификатор ЭЛЕМЕНТА (#PCDATA)><!ЭЛЕМЕНТ создатель (id, serviceid?)><!ЭЛЕМЕНТ пароль (#PCDATA)><!ELEMENT serviceid (#PCDATA)><!ELEMENT servicetype ПУСТО><!ATTLIST тип службытип (АКТИВНЫЙ | ПАССИВНЫЙ) "ПАССИВНЫЙ"><!ЭЛЕМЕНТ субклиент (id, пароль?, serviceid?)><!ATTLIST субклиентпоследний_клиент (ДА | НЕТ) "НЕТ">]