Ostatnio często zauważam różne nieporozumienia wynikłe z mylenia XMPP i Jabbera. Jabber i XMPP to nie to samo. XMPP nie jest nową nazwą dla Jabbera. W poniższym artykule chciałbym tę sprawę wyjaśnić.
Jabber to technologia zapoczątkowana w 1998 roku przez Jeremie’ego Millera. Od tego czasu powstało wiele serwerów i klientów Jabbera, z których korzystają między innymi czytelnicy 7thGuard.net. Sam protokół jednak nie został nigdy w pełni opisany, a jego dostępna specyfikacja powstała raczej jako dokumentacja stanu istniejącego niż standard, który powinien być zaimplementowany.
Gdy Jabber się rozwinął okazało się, że brakuje oficjalnej specyfikacji – standardu zaaprobowanego przez IETF (najważniejszą organizację standaryzacyjne w internecie) i opublikowanego jako RFC. Dlatego rozpoczęte zostały prace nad nową wersją protokołu, pod nazwą XMPP. Protokół ten jest już praktycznie ukończony i czeka tylko na ostatnie szlify i zatwierdzenie przez IESG (jednostkę decyzyjną IETF). Dotychczas stosowany protokół Jabbera ma słabe punkty, a do tego IESG ma swoje wymagania – dlatego XMPP nie mogło być kopią obecnego protokołu. XMPP zakłada kompatybilność wstecz, jednak na tyle różni się od starego protokołu, że stare serwery i klienty nie są zgodne z XMPP.
XMPP jest przyszłością Jabbera – nowe serwery i klienty będą wykorzystywać właśnie ten protokół, jednak przez jakiś czas wciąż będzie używany stary. Żaden serwer, ani klient automatycznie nie stał się klientem czy serwerem XMPP, tylko dlatego że wymyślona została nowa nazwa.
Powstają już implementacje XMPP w klientach i serwerach. Jabberd 2.0 (serwer przygotowywany pod opieką JSF) będzie obsługiwał ten protokół i już dostępne są jego wersje „beta”. Podobnie z klientami – np. tkabber ma już bardzo zaawansowaną obsługę XMPP i potrafi połączyć się z jabberd 2.0 wykorzystując ten protokół. Mimo to chyba nie istnieje jeszcze żadna pełna implementacja nowego protokołu.
Główne różnice pomiędzy starym protokołem, a XMPP to:
- XMPP do uwierzytelniania użytkowników wykorzystuje protokół SASL
- ten sam protokół SASL może być użyty do uwierzytelniania serwerów między sobą
- XMPP zawiera rozszerzenie StartTLS pozwalające na szyfrowanie połączenia na standardowym porcie (użycie TLS jest negocjowane już po połączeniu i „przywitaniu”)
- zmieniony został sposób przesyłania informacji o błędach – w XMPP informacja ta zamiast mało precyzyjnych kodów błędu i komunikatu w jednym języku (zwykle angielskim) zawiera dokładniejsze informacje pozwalające klientowi wyświetlenie komunikatu zrozumiałego dla użytkownika, albo automatyczne podjęcie odpowiedniego działania.
- wprowadzone zostały reguły prywatności (privacy rules) pozwalające na określenie od kogo użytkownik życzy sobie (bądź nie) odbierać wiadomości, a komu udzielać informacje o swojej dostępności. Reguły te zastąpią między innymi „niewidzialność” znaną z obecnych implementacji.
Trzeba też zaznaczyć, że XMPP określa sposób połączenia się klienta do serwera, 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ść Jabbera, opisana JEPami 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ą Jabbera, a nie XMPP.
Mam nadzieję, że powyższy artykuł przybliżył czytelnikom nieco protokół XMPP i ułatwi jego popularyzację bez niepotrzebnych nieporozumień i zafałszowań.
Więcej informacji:
Artykuł pochodzi z serwisu JabberPL.org
Archiwalny news dodany przez użytkownika: Jacek Konieczny.
Kliknij tutaj by zobaczyć archiwalne komentarze.