XMPP (Jabber): atviras XML pagrindu veikiantis momentinių pranešimų protokolas
XMPP (Jabber) — atviras XML pagrindu veikiantis momentinių pranešimų protokolas: lengvai diegiamas serveriuose, palaiko atvirą kodą, plačiai naudojamas ir mastelio keičiantis sprendimas.
"Extensible Messaging and Presence Protocol" (XMPP) (anksčiau vadintas "Jabber") yra momentinių pranešimų protokolas. Jį įkvėpė XML ir jis naudoja XML žinutes (vadinamas „stanzas“) duomenims perduoti tarp klientų ir serverių.
Skirtingai nuo daugelio kitų protokolų, XMPP yra atviras standartas. Tai reiškia, kad kiekvienas, turintis domeno vardą ir interneto ryšį, gali pasitelkti arba paleisti savo XMPP serverį ir susijungti su kitais serveriais (federacija). Dauguma su XMPP susijusių programinės įrangos projektų ir klientų yra atvirojo kodo, todėl bendruomenė gali kurti papildinius ir plėtinius.
Kita programinė įranga, pavyzdžiui, "Google Talk" ir "Gizmo5", naudoja XMPP protokolą. Jis įdiegtas tūkstančiuose interneto serverių. Šiuo protokolu pagrįsta programine įranga naudojasi daugiau kaip penki šimtai milijonų vartotojų. Tarp klientų yra "Pidgin" ir "iChat".
Kaip veikia XMPP
XMPP ryšiai grindžiami keliais pagrindiniais elementais:
- JID (Jabber ID) – adresas formatu vartotojas@domenas (kartais su resursu: vartotojas@domenas/įrenginys), naudojamas identifikacijai ir adresavimui;
- Stanzas – XML žinutės tipai: message (žinutėms), presence (buvimo būsena) ir iq (informacijos užklausoms/atsakymams);
- Serverių federacija – skirtingi XMPP serveriai gali siųsti žinutes tarp savo vartotojų, panašiai kaip el. pašto serveriai;
- SRV įrašai – DNS SRV įrašai leidžia rasti domenui priskirtą XMPP serverį ir jo prievadą.
Išplėtimas ir standartai
XMPP yra sukurtas būti išplėčiamu. Pagrindinis standartas apibrėžia bazinę bazę, o konkrečios funkcijos įgyvendinamos per išplėtimus, vadinamus XEP (XMPP Extension Protocols). Yra XEP'ai grupiniam pokalbiui (MUC), failų perdavimui, buvimo būsenų valdymui, sąrašų sinchronizavimui, multi-login palaikymui ir daugeliui kitų funkcijų. XMPP standartus ir išplėtimus koordinuoja XMPP Standards Foundation priežiūros grupės ir atviros organizacijos.
Saugumas ir privatumas
- Transporto saugumas: dauguma realių diegimų naudoja TLS, kad užšifruotų ryšį tarp kliento ir serverio bei tarp serverių;
- Autentifikacija: SASL mechanizmai teikia saugią prisijungimo autentifikaciją;
- End-to-end šifravimas: XMPP palaiko papildomus sprendimus kaip OMEMO ir OpenPGP, kad būtų užtikrintas visapusiškas žinučių šifravimas tarp pusių;
- Privatumo mechanikos: vartotojai gali valdyti kontaktų sąrašus, juodąjį sąrašą, bei matomumą (presence) prieš kitus.
Serveriai, klientai ir nasloniniai naudojimo atvejai
Yra daug serverių implementacijų (pvz., ejabberd, Prosody, Openfire) ir klientų asmeninėje bei verslo aplinkoje. XMPP naudojamas:
- momentiniams pokalbiams ir buvimo būsenoms;
- grupiniams pokalbiams (MUC);
- realiam laikui veikiančioms žinioms (pvz., pranešimų paslaugoms, pranešimams apie įvykius);
- multimedijos aplikacijoms per Jingle (balso ir vaizdo ryšiams);
- tiltams prie kitų tinklų – per vartus/pamainas galima bendrauti su kitomis nuomonių ar IM tinklais;
- IoT ir mašinų tarpusavio ryšiui, kur reikia lengvo, atviro ir išplėčiamo pranešimų protokolo.
Privalumai ir trūkumai
XMPP privalumai:
- atviras standartas ir federacija – nėra centralizuoto kontrolės taško;
- lanksti išplėtimų sistema (XEP) leidžia pridėti naujų funkcijų be pagrindinio protokolo keitimo;
- geri saugumo mechanizmai ir galimybė naudoti end-to-end šifravimą;
- plati įrankių ir klientų ekosistema.
Trūkumai / iššūkiai:
- kai kuriais atvejais didelės masto federacija ir serverių sąveika reikalauja sudėtingesnės administracijos;
- priklausomai nuo diegimo, kai kurie XEP'ai gali nebūti palaikomi visų klientų ir serverių;
- mobiliojo ryšio ir pranešimų siuntimo optimizacija reikalauja papildomų sprendimų (pvz., push pranešimų integracija).
Trumpa istorija ir ateitis
XMPP pradėtas kaip atvirojo kodo projektas „Jabber“ 1998–1999 m. vėliau tapo tarptautiniu atviru standartu, kurį prižiūri standartus koordinuojančios organizacijos. Per metus jis išlaikė populiarumą dėl atvirumo ir universalumo, o nauji išplėtimai (pvz., mobilumo optimizavimas, modernūs E2E šifravimo standartai) užtikrina, kad XMPP liks aktualus tiek realaus laiko komunikacijai, tiek mašininiams ryšiams ateityje.
Istorija
1998 m. Jeremie Milleris pradėjo "Jabber" projektą. Pirmoji didelė vieša versija buvo išleista 2000 m. gegužės mėn. Ši ankstyvoji programinė įranga buvo XMPP pagrindas. Tai buvo SIMPLE, kuris buvo pagrįstas SIP protokolu, konkurentas.
2001 m. rugpjūtį buvo įkurtas "Jabber" programinės įrangos fondas (JSF). Pagrindinis JSF vaidmuo buvo tvarkyti XMPP XML protokolus, juos dokumentuojant. Be to, ši organizacija turėjo koordinuoti daugelio XMPP technologiją naudojančių bendrovių veiklą.
2002 m. Interneto inžinerijos darbo grupė sukūrė darbo grupę, kuri oficialiai įformino protokolą. Grupė buvo pavadinta Išplėtojamojo pranešimų siuntimo ir buvimo protokolo darbo grupe (Extensible Messaging and Presence Protocol Working Group, XMPP WG).
2007 m. "Jabber Software Foundation" (JSF) tapo "XMPP Standards Foundation" (XSF).
XMPP ir HTTP
Duomenims į serverius siųsti XMPP gali naudoti HTTP. Tai naudinga, kai yra griežtos ugniasienės, nes duomenis galima siųsti per žiniatinklį, o ne per kitą prievadą (5222 ir 5223 prievadai).
Taip pat yra atvirų viešųjų serverių, kuriuose naudojami standartiniai prievadai (80 ir 443 prievadai), kad naudotojai galėtų prisijungti iš už daugumos ugniasienių.
Klausimai ir atsakymai
K: Kas yra XMPP?
A: XMPP reiškia Extensible Messaging and Presence Protocol (išplečiamasis pranešimų siuntimo ir buvimo protokolas). Tai XML įkvėptas momentinių pranešimų protokolas, kuris yra atviras standartas.
K: Kuo XMPP skiriasi nuo kitų protokolų?
A.: XMPP skiriasi nuo kitų protokolų, nes yra atviras standartas. Tai reiškia, kad kiekvienas, turintis domeno vardą ir interneto ryšį, gali paleisti savo serverį.
K: Kokia programinė įranga naudoja XMPP protokolą?
A.: "Google Talk" ir "Gizmo5" yra programinės įrangos, naudojančios XMPP protokolą, pavyzdžiai. Dauguma programinės įrangos ir klientų yra atvirojo kodo.
K: Kiek interneto serverių turi įdiegtą XMPP protokolą?
A: XMPP įdiegtas tūkstančiuose interneto serverių.
K: Kiek vartotojų naudoja XMPP protokolu pagrįstą programinę įrangą?
A.: XMPP protokolu pagrįstą programinę įrangą naudoja daugiau kaip penki šimtai milijonų vartotojų.
K: Kokie klientai naudoja XMPP?
A: Tarp XMPP naudojančių klientų yra "Pidgin" ir "iChat".
K: Koks yra pagrindinis XMPP kaip atviro standarto privalumas?
A: Pagrindinis XMPP kaip atviro standarto privalumas yra tas, kad kiekvienas, turintis domeno vardą ir interneto ryšį, gali paleisti savo serverį.
Ieškoti