Extensible Messaging and Presence Protocol (XMPP) (někdy známý jako Jabber), neboli „rozšiřitelný protokol pro posílání zpráv a zjištění stavu“ je otevřený komunikační protokol založený na XML, jehož základ je standardizován.
Hlavní výhodou XMPP oproti jiným protokolům je jeho otevřenost a nezávislost na rozmarech nějaké firmy. Díky tomu existuje spousta klientů pro nejrůznější operační systémy a platformy). Také podporuje tzv. transporty, díky kterým můžete z jednoho klientského programu komunikovat i s uživateli jiných sítí (ICQ, AIM, MSN…).
Původně vznikl jako protokol pro instant messagingovou síť Jabber. Brzy se ale ukázalo, že kromě IM může být s výhodou použit i pro vzájemnou komunikaci programů nebo pro ovládání různých automatických služeb (botů). Později byl adoptován jakožto standard Internetu do RFC dokumentů – základní normy jsou RFC 3920 (obecná specifikace protokolu) a RFC 3921 (samotný instant messaging a zobrazení stavu). RFC obsahující některá další rozšíření XMPP protokolu jsou například RFC 3922 a RFC 3923.
O vývoj protokolu se stará XMPP Standards Foundation. Rozšíření nad rámec RFC jsou vydávána v podobě tzv. XEP (XMPP Extension Protocol), kterých je momentálně kolem dvou set (v různém stavu, od prvních návrhů až po standardy). XMPP je implementací obecného značkovacího jazyka XML. Specifikace jsou zcela otevřené a dostupné všem, kdo mají zájem o implementaci software s podporou XMPP. Servery XMPP protokolu běží standardně na TCP portu 5222. Pro vzájemnou komunikaci serverů je pak vyhrazen port 5269.
Jak XMPP pracuje?
Síť XMPP je založena na architektuře klient-server (klienti zpravidla nekomunikují přímo) a je decentralizována stejně jako e-mail. To znamená, že neexistuje žádný centrální server, který by spojoval uživatele, jako je tomu například u ICQ. Každý může zřídit svůj vlastní server, přičemž bude moci komunikovat s uživateli na jiných serverech. Uživatel tak má svobodu volby serveru, ke kterému má důvěru a který mu nabízí lepší služby, a možnost změny stejně jako v případě e-mailu. Samozřejmě existuje spousta serverů, na kterých se lze zdarma zaregistrovat bez potřeby tvorby vlastního serveru.
Síť využívající XMPP protokol tedy není centralizovaná do jednoho místa, jako je zvykem u většiny ostatních IM, ale je distribuovaná na servery po celém světě.
Uživatel se připojuje vždy pouze ke svému serveru, protože jenom tento server je schopen ověřit jeho identitu například pomocí uživatelského jména a hesla. Pokud vznikne potřeba komunikovat s uživateli na jiných serverech, připojí se uživatelův server na vzdálený server a předá si s ním potřebné informace. Toto je nutné vykonávat například i v případě, že je třeba zjistit „prezenci“, tedy zdali je uživatel na vzdáleném serveru přihlášen a v jakém je stavu. Kromě serverů a klientů se v síti vyskytují ještě různé služby – například služba víceuživatelských diskuzí (funkčně velmi podobné IRC), uživatelské adresáře a transporty. (Transporty jsou brány mezi XMPP sítí a IM sítí pracující na jiném protokolu.)
Uživatelské jméno neboli Jabber ID
Uživatel je identifikován uživatelským jménem a názvem serveru. Tyto dvě hodnoty jsou odděleny znakem @. Tedy například uzivatel@server.cz. Tento řetězec se nazývá Jabber ID nebo také JID.
Obvykle se vyskytují ve tvaru uzivatel@domena/zdroj. Část zdroj dovoluje uživateli individuální připojení na jeden účet z více míst. Uživatel si může dále své konto rozdělit podle potřeby, například se může jeho klient z domova hlásit jako uzivatel@server/doma, a zároveň třeba i uzivatel@server/prace. Zdroj však není nutný uvádět pro kontaktování uživatele, ale může být vyžadován například při přenosu souborů.
Na jedno uživatelské konto tedy může být přihlášeno i více klientů najednou a mezi nimi se rozhoduje buď podle celé adresy (pokud jí druhá strana zadá) nebo podle nastavené priority.
JID může, až na několik výjimek, obsahovat libovolné znaky unicode, tzn. i česká písmena s diakritikou.
Co se děje při komunikaci mezi dvěma uživateli, ukazuje názorný příklad.
Uživatel1 má účet na serveru server1.cz, takže její JID má tvar uzivatel1@server1.cz. Chce si povídat s uživatelem2, jehož JID je uživatel2@server2.com. Když napíše zprávu, tak se provede několik akcí:
- XMPP klient uživatele1 pošle její zprávu serveru server1.cz.
- Pokud je server2.com blokován, tak je zpráva smazána (a zpět je zasláno chybové hlášení).
- Pokud ne, tak server1.cz otevře spojení k serveru server2.com s předá mu zprávu.
- Pokud je však server1.cz na serveru2.com blokován, tak zpráva bude smazána.
- Pokud není a uživatel2 není právě připojen, tak se zpráva na serveru2.com uschová a bude doručena při nejbližší příležitosti. Pokud je však uživatel 2 na příjmu, tak Server2.com rovnou doručí zprávu klientovi uživatele2.
Historie XMPP
Nyní si uvedeme krátkou historie XMPP:
rok 1998 – Jeremie Miller založil projekt Jabber.
srpen 1999 – Jeremie podepsal prohlášení zaručující podporu Jabber komunity IETF standardizaci.
květen 2000 – Uvolněn první software.
červen 2000 – Jeremie a další členové projektu Jabber se upsali koncepci IMPP dokumentující Jabber protokol. Kvůli nesoustředěnosti tehdejší komunity se však nepodařilo plně následovat IMPP či jiné IETF snahy.
rok 2001 – Vytvořena Jabber Software Foundation (JSF) pro zajištění organizace nad rostoucím počtem open source projektů a komerčních entit budujících či používajících technologie XMPP. Jedním z hlavních cílů JSF byla dokumentace XML protokolu a jeho další rozvíjení.
únor 2002 – Nově podepsána koncepce IETF. Výsledkem úspěchu tohoto podpisu bylo rozhodnutí prozkoumat možnosti zformování IETF Working Group pro diskuse o Jabber protokolu pod názvem XMPP, výsledkem čehož byly podepsány tři nové koncepce 21. 6. 2002
29. leden 2004 – IESG uznala XMPP Core a XMPP IM jako navrhované standardy
4. říjen 2004 – IETF uznala XMPP jako standard pro IM.
Proč Jabber?
- Můžete se komunikovat s přáteli, spolužáky i spolupracovníky z celého světa.
- Můžete se připojit z čehokoli – z PC (z GNU/Linux, MS Windows, Mac OS X a dalšího), z mobilního telefonu i z www prohlížeče.
- Můžete posílat a sdílet soubory (dokumenty, fotografie…).
- Můžete se zapojit do konferencí, kde můžete potkat nové přátele a kontakty.
- Můžete si založit a moderovat vlastní chatovací místnosti, kde se budou probírat vaše témata.
- Můžete se využívat specifických služeb pro jednotlivé poskytovatele.
Pingback: XMPP ala Jabber – náhrada Hangouts, chatu Facebooku či ICQ (díl 3.).
Pingback: XMPP ala Jabber – náhrada Hangouts, chatu Facebooku či ICQ (díl 4.).