Extensible Messaging and Presence Protocol

Z Multimediaexpo.cz

Extensible Messaging and Presence Protocol (XMPP), neboli „rozšiřitelný protokol pro posílání zpráv a zjištění stavu“, původně vznikl jako protokol pro instant messaging 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 Enhancement 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.

Síť využívající XMPP protokol 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ě, na kterých je možno si založit uživatelské konto. Identifikátory uživatelů (takzvané Jabber ID, zkráceně JID) jsou v základním tvaru syntakticky i sémanticky podobné e-mailovým adresám, tedy uzivatel@server. To ale není vše. 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. Na jedno uživatelské konto může tedy 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.

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 vlastně brány mezi XMPP sítí a IM sítí pracující na jiném protokolu.

IM služba společnosti Google, nazvaná Google Talk, taktéž pracuje na protokolu XMPP. Google dokonce s touto službou přinesl rozšíření sloužící k internetové telefonii, jehož specifikace zveřejnil a následně se staly základem XEP dokumentů pod názvem Jingle, které se dále rozvíjejí. Dnešní XMPP klienti většinou buď toto rozšíření již podporují, nebo se pracuje na jeho implementaci (většina je založena na knihovně libjingle, která je kompatibilní s Google Talk, ale trochu se liší od specifikací XEP, což by se mělo v příštích verzích této knihovny opravit)

Související odkazy