Протокол мобильного определения местоположения ( MLP ) — это протокол уровня приложения для получения местоположения мобильных станций (MS: мобильные телефоны, беспроводные устройства и т. д.) независимо от базовой сетевой технологии. [1] [2] [3] [4]
MLP служит интерфейсом между сервером местоположения и приложением, основанным на местоположении. Базовые услуги MLP основаны на службах определения местоположения, определенных 3GPP. Протокол мобильного определения местоположения (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 путем отправки запроса местоположения мобильного устройства [TS23271] через беспроводную сеть. Это выполняется, когда мобильный абонент хочет, чтобы клиент LCS получил местоположение MS.
Эта услуга инициируется сетью, когда MS инициирует или отпускает экстренный вызов. Отчет генерируется и отправляется с сервера местоположения предопределенному клиенту LCS.
Эта услуга используется, когда клиент LCS хочет отслеживать несколько MS. Триггерами могут быть таймеры или события MS, например смена местоположения.
Эта услуга используется для запроса отчетов об исторических местоположениях одной MS, когда ожидается большой объем данных.
<!ELEMENT msid (#PCDATA)><!ATTLIST мсидтип (MSISDN | IMSI | IMEI | MIN | MDN |ЕМЕ_МСИД | ИПВ4 | ИПВ6)"МСИСДН"enc (ASC | B64 | CRP) "ASC"><!ELEMENT msid_range (start_msid, stop_msid)><!ATTLIST msid_rangeтип (MSISDN | IMSI | IMEI | MIN | MDN |ЕМЕ_МСИД | ИПВ4 | ИПВ6)"МСИСДН"enc (ASC | B64 | CRP) "ASC"><!ELEMENT msids ((msid, session? |msid_range)+)><!ELEMENT esrd (#PCDATA)><!ATTLIST esrdтип (НА) «НА»><!ELEMENT esrk (#PCDATA)><!ATTLIST esrkтип (НА) «НА»><!ELEMENT сеанс (#PCDATA)сессияВведите (APN | набор номера) #ОБЯЗАТЕЛЬНО><!ELEMENT start_msid (#PCDATA)><!ELEMENT stop_msid (#PCDATA)>
<!ELEMENT add_info (#PCDATA)><!ELEMENT eme_event (eme_pos+)><!ATTLIST eme_eventeme_trigger (EME_ORG |ЕМЕ_REL)#ОБЯЗАТЕЛЬНО><!ELEMENT tlrr_event (время | изменение_области | ms_action)><!ELEMENT ms_action EMPTY><!ATTLIST ms_actionвведите (MS_AVAIL) #ОБЯЗАТЕЛЬНО><!Интервал ELEMENT (#PCDATA)><!ELEMENT loc_type EMPTY><!ATTLIST loc_typeтип (ТЕКУЩИЙ | ПОСЛЕДНИЙ |CURRENT_OR_LAST | ИСХОДНЫЙ)«ТЕКУЩИЙ»><!ELEMENT позёр (результат, время)><!ELEMENT предварительно ПУСТОЙ><!ATTLIST ранеетип (НОРМАЛЬНЫЙ | ВЫСОКИЙ) «НОРМАЛЬНЫЙ»><!ELEMENT pushaddr (url)><!ELEMENT req_id (#PCDATA)><результат!ELEMENT (#PCDATA)><!ATTLIST результатрезидентный CDATA #ОБЯЗАТЕЛЬНО><!ELEMENT start_time (#PCDATA)><!ATTLIST время началаutc_off CDATA "0000"><!ELEMENT stop_time (#PCDATA)><!ATTLIST стоп_времяutc_off CDATA "0000"><!ELEMENT время (#PCDATA)><!ATTLIST времяutc_off CDATA "0000"><!ELEMENT URL (#PCDATA)><!ELEMENT Оставшееся время (#PCDATA)>
<!ELEMENT pos (msid, (pd | посерр), gsm_net_param?)><!ELEMENT eme_pos (msid, esrd?, esrk?, (pd | позер))><!ELEMENT trl_pos (msid, (pd | позер))><!ELEMENT trl_pos<!ATTLIST trl_trigger (ТАЙМЕР | ПЕРИОДИЧЕСКИЙ| MS_AVAIL)<!ELEMENT pd (время, форма, (alt, alt_acc?)?, скорость?,направление?, lev_conf?)><!ELEMENT alt (#PCDATA)><!ELEMENT alt_acc (#PCDATA)><!ELEMENT направление (#PCDATA)><!ELEMENT перемещение (#PCDATA)><!ELEMENT geo_info (coord_sys, датум, формат? Зона?)><!ELEMENT coord_sys (#PCDATA)<!ELEMENT данные (#PCDATA)<Формат!ELEMENT (#PCDATA)><!ELEMENT lat (#PCDATA)><!ELEMENT ll_point (широта, долгота)><!ELEMENT длинный (#PCDATA)><!ELEMENT северное перемещение (#PCDATA)><!ELEMENT utm_point (восточное, северное, зона, Zone_des)><!Скорость ELEMENT (#PCDATA)><!ELEMENT x (#PCDATA)><!ELEMENT xy_point (x, y)><!ELEMENT y (#PCDATA)><!Зона ELEMENT (#PCDATA)><!ELEMENT Zone_des (#PCDATA)><!ELEMENT lev_conf (#PCDATA)>
<!ELEMENT форма (точка | круг | дуга окружности | эллипс | многоугольник )><!ELEMENT точка (ll_point | utm_point | xy_point)><!Угол ELEMENT (#PCDATA)><!ELEMENT circ_arc (point, in_rad, out_rad, start_angle, stop_angle)><!ELEMENT окружность (точка, рад)><!ELEMENT эллипс (точка, угол, полу_большой, полу_минор)><!ELEMENT in_rad (#PCDATA)><!ELEMENT out_rad (#PCDATA)><!ELEMENT многоугольник (точка+)><!ELEMENT рад (#PCDATA)><!ELEMENT semi_major (#PCDATA)><!ELEMENT полу_минор (#PCDATA)><!ELEMENT start_angle (#PCDATA)><!ELEMENT stop_angle (#PCDATA)>
<!ELEMENT eqop (resp_req?, resp_timer?, (ll_acc | hor_acc)?,alt_acc?, max_loc_age?)><!ELEMENT qop ((ll_acc | hor_acc)?, alt_acc?)><!ELEMENT ll_acc (#PCDATA)><!ELEMENT hor_acc (#PCDATA)><!ELEMENT resp_req EMPTY><!ATTLIST resp_reqтип (NO_DELAY | LOW_DELAY |DELAY_TOL)"DELAY_TOL"><!ELEMENT resp_timer (#PCDATA)>
<!ELEMENT gsm_net_param (cgi?, neid?, NMR?, ta?)><!ELEMENT cgi (mcc, mnc, lac, cellid)><!ELEMENT neid (vmscid | vlrid)><!ELEMENT vmscid (cc, ndc, vmscno)><!ELEMENT vlrid (cc, ndc, vlrno)><!ELEMENT NMR (#PCDATA)><!ELEMENT mcc (#PCDATA)><!ELEMENT ndc (#PCDATA)><!ELEMENT копия (#PCDATA)><!ELEMENT vmscno (#PCDATA)><!ELEMENT vlrno (#PCDATA)><!ELEMENT лак (#PCDATA)><!ELEMENT Cellid (#PCDATA)><!ELEMENT ta (#PCDATA)>
<!ELEMENT клиент (id, pwd?, serviceid? servicetype?)><!ELEMENT идентификатор сеанса (#PCDATA)><!Идентификатор элемента (#PCDATA)><!ELEMENT инициатор (id, serviceid?)><!ELEMENT pwd (#PCDATA)><!ELEMENT идентификатор службы (#PCDATA)><!ELEMENT тип службы ПУСТОЙ><!ATTLISTтип службытип (АКТИВ | ПАССИВ) «ПАССИВ»><!Субклиент ELEMENT (id, pwd?, serviceid?)><!ATTLIST субклиентпоследний_клиент (ДА | НЕТ) «НЕТ»>]