Protokół lokalizacji mobilnej
Protokół lokalizacji mobilnej ( MLP ) jest protokołem na poziomie aplikacji służącym do odbierania pozycji stacji mobilnych (MS: telefony komórkowe, urządzenia bezprzewodowe itp.) niezależnie od podstawowej technologii sieciowej.
MLP służy jako interfejs między serwerem lokalizacji a aplikacją lokalizacyjną. Podstawowe usługi MLP oparte są na usługach lokalizacyjnych zdefiniowanych przez 3GPP. Protokół lokalizacji mobilnej (MLP) jest opisany w specyfikacji LIF TS 101.
Tło
Celem tej technologii jest zdefiniowanie prostej i bezpiecznej metody dostępu, która umożliwia aplikacji mobilnej wysyłanie zapytań o informacje o lokalizacji z sieci bezprzewodowej , niezależnie od stosowanej technologii sieciowej i metod pozycjonowania.
MLP może być używany przez aplikację lokalizacyjną do żądania informacji o lokalizacji stacji mobilnej z serwera lokalizacyjnego (GMLC/MPC lub inny podmiot w sieci bezprzewodowej). Protokół ten został przygotowany przez Location Interoperability Forum (LIF: Open Mobile Alliance w dzisiejszych czasach) w celu zapewnienia prostego i bezpiecznego interfejsu API (Application Programmer's Interface), ale może być również używany do innych rodzajów serwerów lokalizacyjnych i podmiotów w sieci bezprzewodowej.
Interfejs API jest oparty na XML i jest zdefiniowany do transportu w protokole HTTP lub SOAP . Obecnie definiuje się tylko mapowanie do HTTP. Ze względów bezpieczeństwa do przenoszenia HTTP (HTTPS) można używać protokołów kryptograficznych Secure Socket Layer (SSL) lub Transport Layer Security (TLS). Oprócz protokołu HTTPS Mobile Location Protocol, który wykorzystuje uwierzytelnianie za pomocą użytkownika i hasła, informacje są przenoszone w części nagłówkowej wiadomości MLP.
Cechy:
Ostatnią wersją roboczą specyfikacji MLP jest OMA-TS-MLP v 3.3 z marca 2009. Wersja 3.3 zapewnia następujące funkcje:
Standardowa usługa natychmiastowej lokalizacji (SLIS)
Używany do żądania lokalizacji jednego lub większej liczby abonentów mobilnych (MS). Jest używany, gdy wymagana jest natychmiastowa reakcja. Odpowiedź może zostać zwrócona w więcej niż jednej wiadomości, jeśli żądanie zawierało więcej Abonentów Mobilnych.
Natychmiastowa pomoc w nagłych wypadkach (ELIS)
Służy do żądania lokalizacji jednego lub kilku państw członkowskich biorących udział w wezwaniu pomocy. Odpowiedź może zostać zwrócona w więcej niż jednej wiadomości, jeśli serwer to obsługuje.
Standardowa usługa raportowania lokalizacji (SLRS)
Ta usługa jest inicjowana przez MS poprzez wysłanie mobilnego żądania lokalizacji [TS23271] przez sieć bezprzewodową. Jest wykonywany, gdy Abonent Mobilny chce, aby klient LCS otrzymał lokalizację MS.
Usługa zgłaszania lokalizacji w sytuacjach awaryjnych (ELRS)
Ta usługa jest inicjowana przez sieć, gdy MS inicjuje lub zwalnia połączenie alarmowe. Raport jest generowany i wysyłany z Serwera Lokalizacji do predefiniowanego klienta LCS.
Wyzwalana usługa raportowania lokalizacji (TLRS)
Ta usługa jest używana, gdy klient LCS chce śledzić kilka MS. Wyzwalaczami mogą być liczniki czasu lub zdarzenia MS, takie jak zmiana lokalizacji.
Usługa natychmiastowej lokalizacji historycznej (HLIS)
Usługa ta służy do żądania zgłaszania historycznych lokalizacji jednego państwa członkowskiego, gdy oczekuje się dużej ilości danych.
Wspólne definicje elementów:
Definicje elementów tożsamości
<!ELEMENT msid (#PCDATA)> <!ATTLIST msid type (MSISDN | IMSI | IMEI | MIN | MDN | EME_MSID | IPV4 | IPV6) "MSISDN" enc (ASC | B64 | CRP) "ASC"> <!ELEMENT msid_range (start_msid, stop_msid)> <!ATTLIST msid_range type (MSISDN | IMSI | IMEI | MIN | MDN | EME_MSID | IPV4 | IPV6) "MSISDN" enc (ASC | B64 | CRP) "ASC"> <!ELEMENT msids ((msid, session? | msid_range)+)> <!ELEMENT esrd (#PCDATA)> <!ATTLIST esrd type (NA) "NA"> <!ELEMENT esrk (#PCDATA)> <!ATTLIST esrk type (NA) "NA"> <!ELEMENT session (#PCDATA) session Type (APN | dial) #REQUIRED> <!ELEMENT start_msid (#PCDATA)> <!ELEMENT stop_msid (#PCDATA)>
Definicje elementów funkcyjnych
<!ELEMENT add_info (#PCDATA)> <!ELEMENT eme_event (eme_pos+)> <!ATTLIST eme_event eme_trigger (EME_ORG | EME_REL) #REQUIRED> <!ELEMENT tlrr_event (time | area_change | ms_action)> <!ELEMENT ms_action EMPTY> <!ATTLIST ms_action type (MS_AVAIL) #REQUIRED> <!ELEMENT interval (#PCDATA)> <!ELEMENT loc_type EMPTY> <!ATTLIST loc_type type (CURRENT | LAST | CURRENT_OR_LAST | INITIAL) "CURRENT"> <!ELEMENT poserr (result, time)> <!ELEMENT prio EMPTY> <!ATTLIST prio type (NORMAL | HIGH) "NORMAL"> <!ELEMENT pushaddr (url)> <!ELEMENT req_id (#PCDATA)> <!ELEMENT result (#PCDATA)> <!ATTLIST result resid CDATA #REQUIRED> <!ELEMENT start_time (#PCDATA)> <!ATTLIST start_time utc_off CDATA "0000"> <!ELEMENT stop_time (#PCDATA)> <!ATTLIST stop_time utc_off CDATA "0000"> <!ELEMENT time (#PCDATA)> <!ATTLIST time utc_off CDATA "0000"> <!ELEMENT url (#PCDATA)> <!ELEMENT Time_remaining (#PCDATA)>
Definicje elementu lokalizacji
<!ELEMENT pos (msid, (pd | poserr), gsm_net_param?)> <!ELEMENT eme_pos (msid, esrd?, esrk?, (pd | poserr))> <!ELEMENT trl_pos (msid, (pd | poserr))> <!ELEMENT trl_pos <!ATTLIST trl_trigger (TIMER | PERIODIC | MS_AVAIL) <!ELEMENT pd (time, shape, (alt, alt_acc?)?, speed?, direction?, lev_conf?)> <!ELEMENT alt (#PCDATA)> <!ELEMENT alt_acc (#PCDATA)> <!ELEMENT direction (#PCDATA)> <!ELEMENT easting (#PCDATA)> <!ELEMENT geo_info (coord_sys, datum, format? Zone?)> <!ELEMENT coord_sys (#PCDATA) <!ELEMENT datum (#PCDATA) <!ELEMENT format (#PCDATA)> <!ELEMENT lat (#PCDATA)> <!ELEMENT ll_point (lat, long)> <!ELEMENT long (#PCDATA)> <!ELEMENT northing (#PCDATA)> <!ELEMENT utm_point (easting, northing, zone, zone_des)> <!ELEMENT speed (#PCDATA)> <!ELEMENT x (#PCDATA)> <!ELEMENT xy_point (x, y)> <!ELEMENT y (#PCDATA)> <!ELEMENT zone (#PCDATA)> <!ELEMENT zone_des (#PCDATA)> <!ELEMENT lev_conf (#PCDATA)>
Definicje elementów kształtu
<!ELEMENT shape (point | circle | circ_arc | ellipse | polygon )> <!ELEMENT point (ll_point | utm_point | xy_point)> <!ELEMENT angle (#PCDATA)> <!ELEMENT circ_arc (point, in_rad, out_rad, start_angle, stop_angle)> <!ELEMENT circle (point, rad)> <!ELEMENT ellipse (point, angle, semi_major, semi_minor)> <!ELEMENT in_rad (#PCDATA)> <!ELEMENT out_rad (#PCDATA)> <!ELEMENT polygon (point+)> <!ELEMENT rad (#PCDATA)> <!ELEMENT semi_major (#PCDATA)> <!ELEMENT semi_minor (#PCDATA)> <!ELEMENT start_angle (#PCDATA)> <!ELEMENT stop_angle (#PCDATA)>
Jakość definicji elementów pozycji
<!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 type (NO_DELAY | LOW_DELAY | DELAY_TOL) "DELAY_TOL"> <!ELEMENT resp_timer (#PCDATA)>
Definicje elementów parametrów sieci
<!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 cc (#PCDATA)> <!ELEMENT vmscno (#PCDATA)> <!ELEMENT vlrno (#PCDATA)> <!ELEMENT lac (#PCDATA)> <!ELEMENT cellid (#PCDATA)> <!ELEMENT ta (#PCDATA)>
Definicje elementów kontekstu
<!ELEMENT client (id, pwd?, serviceid? servicetype?)><!ELEMENT sessionid (#PCDATA)><!ELEMENT id (#PCDATA)><!ELEMENT originator (id, serviceid?)><!ELEMENT pwd (#PCDATA)><!ELEMENT serviceid (#PCDATA)><!ELEMENT servicetype EMPTY><!ATTLIST servicetype type (ACTIVE | PASSIVE) "PASSIVE"><!ELEMENT subclient (id, pwd?, serviceid?)><!ATTLIST subsclient last_client (YES | NO) "NO"> ]