XMPP (Jabber) — atvērtā XML protokols tūlītējai ziņapmaiņai un statusam
Extensible Messaging and Presence Protocol (XMPP) (iepriekš saukts Jabber) ir tūlītējās ziņapmaiņas protokols. Tā pamatā ir XML. XMPP definē ziņojumu, klātbūtnes (presence) un pārziņas (IQ) ziņojumu formātus — tos sauc par "stanzas" — kas ļauj apmainīties ar informāciju starp klientiem un serveriem.
Tas atšķiras no vairuma protokolu, jo ir atvērts standarts. Tas nozīmē, ka ikviens, kam ir domēna vārds un interneta pieslēgums, var izmantot savu serveri. Lielākā daļa programmatūras un klientu ir atvērtā koda. XMPP ir federēts — tas nozīmē, ka dažādu organizāciju serveri var savstarpēji sazināties tāpat kā e‑pasts.
Cita programmatūra, piemēram, Google Talk un Gizmo5, izmanto XMPP protokolu. Tas ir instalēts tūkstošiem serveru visā internetā. Uz šo protokolu balstītu programmatūru izmanto vairāk nekā pieci simti miljoni lietotāju. Klienti ir Pidgin un iChat.
Kā XMPP darbojas
Katram XMPP lietotājam ir unikāls identifikators — JID (Jabber ID), parasti formātā lietotājs@serveris. Klients izveido savienojumu ar serveri (client‑to‑server), nosūta un saņem stanzas ar ziņojumiem, klātbūtnes informāciju un IQ pieprasījumiem. Serveri savukārt var sazināties savā starpā (server‑to‑server), ļaujot saziņai starp dažādiem domēniem.
Galvenās iezīmes
- Klātbūtnes pārraudzība — redzi, kurš ir tiešsaistē, aizņemts vai prom.
- Teksta ziņojumi — momentāna vienas‑pret‑vienu vai grupu saziņa.
- Grupu tērzēšana (MUC) — vairāklietotāju čati ar atsevišķām telpām.
- Paplašināmība — funkcionalitāti var pievienot, izmantojot XMPP paplašinājumus (XEPs).
- Federācija — decentralizēta arhitektūra bez viena pakalpojumu sniedzēja.
- Atbalsts failu pārsūtīšanai, audio/video (Jingle) un vCard/profiliem.
Drošība un paplašinājumi
XMPP atbalsta mūsdienīgas drošības prasības: TLS šifrēšanai transporta slānī un SASL autentifikācijai. Lai pievienotu papildus funkcijas vai labāku saderību, kopiena izstrādā un uztur XMPP paplašinājumus — XEP (XMPP Extension Protocol). Tie aptver tēmas no failu pārsūtīšanas, balss/video zvaniem (Jingle), līdz klātbūtnes statusiem un end‑to‑end šifrēšanai.
Bieži izmantotie paplašinājumi un tehnoloģijas: BOSH (HTTP binding) un WebSocket, kas ļauj XMPP darbību pārlūkprogrammās un caur HTTP starpniekiem. Serveru un klientu savstarpējai saderībai ir svarīgi atbalstīt noteiktus XEP standartus.
Serveri un klienti
Ir pieejams daudz XMPP serveru programmatūras: piemēram, ejabberd, Prosody un Openfire. Tie atšķiras pēc viegluma, mērogojamības un paplašināšanas iespējām. Populārie klienti ietver Pidgin, iChat, Gajim, Psi, Conversations (Android), Monal (iOS) u.c.
Praktiskie aspekti
- Tīkla porti: parasti klienta savienojumiem izmanto 5222 (c2s) un serveru savstarpējai komunikācijai 5269 (s2s). Portu 5223 (sensible SSL) lietošana ir novecojusi.
- Offline ziņas: serveris var saglabāt ziņas, ja saņēmējs nav pieejams, un piegādā tās, kad lietotājs pieslēdzas.
- Drošība: ieteicams konfigurēt TLS un spēcīgu autentifikāciju, kā arī regulāri atjaunināt servera programmatūru.
Priekšrocības un trūkumi
Plusi: decentralizācija un federācija, liela paplašināmība, plašs atvērtā koda ekosistēmas atbalsts, spēja darboties gan uz mobilajām ierīcēm, gan serveros, atvērts protokols bez rūpnieciskiem bloķējumiem.
Mīnusi: dažādie XEP līmeņi var radīt savstarpējas nesaderības starp implementācijām, dažiem pakalpojumu sniedzējiem ir bijušas īpašas vai nesankcionētas paplašinājumu versijas (kas var traucēt federācijai), prasības pēc pareizas konfigurācijas un drošības iestatīšanas.
Kā sākt ar XMPP
- Izvēlies klientu (piem., Pidgin, Conversations, Gajim) un serveri (publisku vai savu).
- Reģistrē kontu uz servera vai uzsāc savu serveri, izmantojot savu domēna vārdu.
- Aktivizē TLS/SASL, konfigurē pietiekamu paroles politiku un, ja nepieciešams, pievieno paplašinājumus (XEP), lai atbalstītu failu pārsūtīšanu, balss/video u.c.
- Pārbaudi sasaisti ar citiem serveriem, lai nodrošinātu federāciju un saderību.
XMPP ir spēcīgs rīks gan personiskai, gan uzņēmuma līmeņa real‑time komunikācijai. Tā atvērtais raksturs ļauj to pielāgot dažādiem mērķiem — no vienkāršas tērzēšanas līdz sarežģītiem sadarbības risinājumiem un IoT scenārijiem.
Vēsture
Džeremijs Millers sāka Jabber projektu 1998. gadā. Pirmā lielā publiskā versija tika izdota 2000. gada maijā. Šī agrīnā programmatūra bija XMPP pamatā. Tā bija konkurente SIMPLE, kura pamatā bija SIP protokols.
2001. gada augustā tika nodibināts Jabber programmatūras fonds (JSF). JSF galvenais uzdevums bija pārvaldīt XMPP XML protokolus, tos dokumentējot. Tāpat šīs organizācijas uzdevums bija koordinēt daudzos uzņēmumus, kas izmantoja XMPP tehnoloģiju.
2002. gadā Interneta inženierijas darba grupa izveidoja darba grupu, lai formalizētu protokolu. Grupas nosaukums bija Extensible Messaging and Presence Protocol Working Group jeb XMPP WG.
2007. gadā Jabber Software Foundation (JSF) kļuva par XMPP Standards Foundation (XSF).
XMPP un HTTP
XMPP var izmantot HTTP, lai nosūtītu datus uz serveriem. Tas ir noderīgi, ja ir stingri ugunsmūri, jo datus var nosūtīt caur tīmekli, nevis caur citu portu (5222 un 5223 portu).
Ir arī atvērti publiski serveri, kas izmanto standarta porti (80 un 443), lai lietotāji varētu izveidot savienojumu no vairuma ugunsmūru.
Jautājumi un atbildes
J: Kas ir XMPP?
A: XMPP ir saīsinājums no Extensible Messaging and Presence Protocol (Paplašināms ziņojumapmaiņas un klātbūtnes protokols). Tas ir tūlītējas ziņojumapmaiņas protokols, kura pamatā ir XML, un tas ir atvērts standarts.
J: Ar ko XMPP atšķiras no citiem protokoliem?
A: XMPP atšķiras no citiem protokoliem, jo tas ir atvērts standarts. Tas nozīmē, ka ikviens, kam ir domēna vārds un interneta pieslēgums, var palaist savu serveri.
J: Kādas programmatūras izmanto XMPP protokolu?
A: Google Talk un Gizmo5 ir programmatūras piemēri, kas izmanto XMPP protokolu. Lielākā daļa programmatūras un klienti ir atvērtā koda.
J: Cik daudzos serveros internetā ir instalēts XMPP?
A: XMPP ir instalēts tūkstošiem serveru visā internetā.
J: Cik lietotāju izmanto programmatūru, kas balstīta uz XMPP protokolu?
A: Vairāk nekā pieci simti miljoni lietotāju izmanto programmatūru, kas balstīta uz XMPP protokolu.
J: Kādi klienti izmanto XMPP?
A: Daži klienti, kas izmanto XMPP, ir Pidgin un iChat.
J: Kāda ir galvenā priekšrocība tam, ka XMPP ir atvērts standarts?
A: Galvenā XMPP kā atvērtā standarta priekšrocība ir tā, ka ikviens, kam ir domēna vārds un interneta pieslēgums, var palaist savu serveri.