Extensible Messaging and Presence ProtocolExtensible Messaging and Presence Protocol (XMPP, dawniej Jabber[1]) – protokół bazujący na języku XML umożliwiający przesyłanie w czasie rzeczywistym wiadomości oraz statusu. Protokół ma zastosowanie nie tylko w komunikatorach, ale również w innych systemach natychmiastowej wymiany informacji. Mimo iż nazwa konta na serwerach XMPP jest skonstruowana podobnie jak adres e-mail, nie dotyczy ona tej samej usługi, więc nie może być wykorzystywana przez oprogramowanie pocztowe. Istnieją jednak firmy, które w ramach jednego konta oferują zarówno adres e-mail jak i Jabber ID (np. Google wraz z Gmailem czy Microsoft i jego usługa Hotmail[2][3][4]). Serwisy społecznościowe Facebook i Nk.pl, poprzez implementację języka XMPP na swoich serwerach, pozwalały w przeszłości na korzystanie z wbudowanego w swoim serwisie czatu, z poziomu dowolnego komunikatora opartego na tym protokole[5][6][7]. Protokół XMPP zasadniczo używany jest do błyskawicznej komunikacji między użytkownikami, ale nie ma przeszkód, by używać go jak poczty elektronicznej tj. uruchamiać pobieranie wiadomości co pewien czas. IETF opublikowało RFC[8] dotyczące XMPP. ZastosowaniaGłównym jego zastosowaniem jest wymiana wiadomości w komunikatorach internetowych. Serwery XMPP umożliwiają także za pomocą tzw. transportów komunikację z użytkownikami innych protokołów, jak Gadu-Gadu, Tlen.pl czy ICQ. Protokół nie musi być wykorzystywany jedynie do komunikacji między użytkownikami, przykładem czego był system blogowania przez XMPP – Jogger. Cechy XMPP![]() XMPP posiada kilka cech wyróżniających go spośród konkurencyjnych sieci.
XMPP a JabberJabber został zapoczątkowany w 1998 roku przez Jeremiego Millera. Od tamtego czasu powstało wiele serwerów oraz klientów XMPP, które korzystają z tego protokołu. Sam protokół z kolei nie został nigdy w pełni opisany, a jego dokumentacja jest opisem stanu istniejącego i nie może być brana pod uwagę jako standard, który powinien zostać zaimplementowany. XMPP (o dawnej nazwie Jabber) został ustandaryzowany przez IETF. Pomimo jego wstecznej kompatybilności, bardzo stare serwery nie są w pełni zgodne z XMPP. Implementacje XMPP można zobaczyć w takich serwerach jak jabberd2 oraz klientach, jak np. Tkabber. Protokół pochodny od XMPP był wykorzystywany w polskim komunikatorze Tlen.pl (teraz jednak dąży on do coraz większej kompatybilności z XMPP). XMPP określa sposób podłączenia się klienta do serwera, połączenia serwerów między sobą, raportowania błędów, wymiany podstawowych informacji między serwerami i klientami oraz sposób zarządzania listą kontaktów i regułami prywatności. Pozostała funkcjonalność, opisana XEP-ami, nie jest już częścią XMPP – XMPP nie określa i nie będzie określał sposobu przesyłu plików czy dostępu do listy transportów na serwerze. To wszystko to tylko rozszerzenia będące częścią Jabber, a nie XMPP. Ewolucja
Dokumenty RFC
Przykładowa sesja JabberKlient (kuusipuu) łączy się z serwerem Jabberowym (amessage.de port tcp numer 5222), wysyła wiadomość (temat: „test 1449” i treść: „test 1449”) do innego klienta (tero) i wylogowuje się. kuusipuu (otwarcie połączenia): <?xml version="1.0"?>
<stream:stream xmlns:stream="http://etherx.jabber.org/streams"
xmlns="jabber:client" to="amessage.de">
amessage.de: <stream:stream xmlns='jabber:client'
xmlns:stream='http://etherx.jabber.org/streams' from='amessage.de'
id='1461777714'>
kuusipuu (autoryzacja użytkownika): <iq type="set" id="auth_2" to="amessage.de" >
<query xmlns="jabber:iq:auth">
<username>kuusipuu</username>
<password>mypassword</password>
<resource>Work</resource>
</query>
</iq>
amessage.de: <iq from="amessage.de" id='auth_2' type='result'/>
kuusipuu (wysyłanie wiadomości i zamknięcie połączenia): <message to="[email protected]" >
<subject>test 1449</subject>
<body>test 1449</body>
</message>
<presence type="unavailable" >
<status>Logged out</status>
</presence>
</stream:stream>
amessage.de: </stream:stream>
Zobacz teżPrzypisy
Linki zewnętrzne |