Extensible Messaging and Presence Protocol Logo protokołu XMPP.
Funkcjonować | Wiadomości błyskawiczne |
---|---|
Akronim | XMPP |
Data utworzenia | 1999 |
Port | 5222 (klient - serwer) i 5269 (serwer - serwer) |
RFC | RFC 6120 - RFC 6121 - RFC 6122 - RFC 3922 - RFC 3923 |
Extensible Messaging and Presence Protocol (co można przetłumaczyć jako "rozszerzalny wiadomości i protokołu Obecność"), często skracane jakoXMPP, jest zbioremotwartychstandardowychprotokołów z Internet Engineering Task Force (IETF) doprzesyłania wiadomości błyskawicznych, a bardziej ogólnie zdecentralizowane architektura wymiany danych. XMPP to także system współpracy i wymiany multimediów niemal w czasie rzeczywistym dzięki rozszerzeniuJingle, któregoprzykładami zastosowań są usługiVoice over IP(telefonia internetowa),wideokonferencjei wymiana plików.
XMPP składa się z protokołu TCP / IP opartego na architekturze klient-serwer, umożliwiającego zdecentralizowaną wymianę wiadomości natychmiastowych lub innych niż wiadomości błyskawiczne między klientami, w formacie Extensible Markup Language (XML). XMPP jest w ciągłym i otwartym rozwoju w ramach IETF .
Serwery mogą być prywatne ( intranet ) lub publiczne, to znaczy połączone z innymi serwerami publicznymi przez Internet (jak w przypadku Facebooka ). Wszystkie serwery publiczne tworzą tak zwaną sieć Jabber (lub sieć XMPP).
XMPP jest zatem używany na całym świecie przez setki publicznych i prywatnych serwerów oraz miliony użytkowników. Wielu graczy przemysłowych korzysta z XMPP, takich jak Apple , Cisco , Gizmo5 , GNOME , Google , IBM , Oracle Corporation itp.
Protokół XMPP jest podzielony na dwie różne części:
XMPP został zaprojektowany szerzej i bardziej otwarcie niż tylko popularne, zastrzeżone komunikatory internetowe . Jest więc używany przez firmy i administracje w kontekście wymiany danych między aplikacjami ( ETL , EAI , ESB ) w ramach systemów informatycznych, ale także w kontekście przetwarzania sieciowego , powiadomień o alertach lub nadzoru informacyjnego, systemu i sieci lub przetwarzania w chmurze . Wreszcie, XMPP jest również używany w dziedzinie udostępniania i współpracy w czasie zbliżonym do rzeczywistego, takich jak tablica interaktywna (TBI) lub wspólne edytowanie i opracowywanie, ale także gry w Internecie (zwłaszcza gry karciane). I plateau).
W 1998 roku Jeremie Miller wynalazł Jabber, oparty na XML protokół komunikatorów internetowych . Inspiracją dla jego twórczości był stworzony w 1996 roku ICQ , pierwszy tego typu system.
W styczniu 1999 r. Ogłosił publicznie w serwisie Slashdot „ kompletną platformę obliczeniową typu open source do przesyłania wiadomości błyskawicznych z przejrzystą komunikacją z innymi systemami komunikatorów internetowych”. Zaprojektowano protokół, funkcjonalny serwer ( jabberd ) i klientów testowych (WinJab i Gabber).
W sierpniu 1999 roku Jeremie Miller wezwał do standaryzacji protokołu przez IETF w celu promowania otwartych standardów i interoperacyjności. Grupa robocza IMPP została następnie utworzona i opublikowana w lutym 2000 r. RFCs 2778 i 2779, ale nie osiągnięto konsensusu.
Serwer jabberd 1.0 o otwartym kodzie źródłowym został wydany w maju 2000 roku i stabilizuje protokół. W czerwcu Jeremie Miller publikuje projekt internetowy, ale termin minął. W wersji 1.2 Jabberd wprowadzono dialback, który zapobiega kradzieży tożsamości serwera.
Fundacja Jabber Software Foundation została utworzona w sierpniu 2001 r. W celu koordynowania rosnącej liczby programistów open source i firm wdrażających technologie Jabber, a także w celu zarządzania dokumentacją, tworzeniem i utrzymaniem protokołów XML.
W 2002 r. Internet-Drafts są ponownie przesyłane do IETF jako XMPP Core i XMPP IM, po czym tworzona jest grupa robocza XMPP.
RFC 3920 XMPP Core i XMPP IM-3921 i RFC 3922 i 3923 CPIM E2E zostało przyjęte w październiku 2004 r.
W 2007 roku JSF stał się XSF for XMPP Standards Foundation i oferował usługi urzędu pośredniczącego w zakresie certyfikacji TLS / SSL.
Firma Apple wprowadziła obsługę Jabbera w swoim oprogramowaniu do przesyłania wiadomości iChat , które byłodostarczane z systemem OS X Tiger w maju 2005 r.
Google od 2005 do 2013 rokuFirma Google wypuściła Google Talk w sierpniu 2005 r., Zastrzeżonego klienta XMPP połączonego z serwerami Google. Ten klient zapewnia głos (telefonię internetową) za pośrednictwem protokołu Jingle , którego specyfikacje są publikowane w bibliotece libjingle. Następnie JSF zajmuje się jego standaryzacją. Kilka miesięcy później serwery te zostają otwarte dla sieci Jabber. W maju 2013 r. Google ogłosił zamiar porzucenia XMPP na rzecz zastrzeżonego protokołu Google+ Hangouts .
Facebook od 2008 do 2015 rokuW maju 2008 roku programiści Facebooka ogłosili wsparcie dla XMPP dla ich aplikacji do czatu . Wdrożenie wejdzie w życie 10 lutego 2010 roku, jednak serwer nie jest połączony z pozostałą częścią sieci Jabber. W lipcu 2015 r. Facebook usunął obsługę XMPP, zmuszając go do przechodzenia przez własne API.
Testy ICQ / AIM i Yahoo!W styczniu 2008 roku AOL , ówczesny dostawca oprogramowania do komunikacji błyskawicznej ICQ i AIM (kompatybilnego i opartego na protokole OSCAR ), założył eksperymentalny serwer umożliwiający połączenie przez XMPP. Jest więc bazą ponad 50 milionów użytkowników który rozszerza sieć Jabber. W lutym 2008 r. Yahoo! , właściciel Yahoo! Messenger ogłasza również zainteresowanie XMPP. Od tego czasu serwery mogą łączyć się z innymi serwerami XMPP
Skype w 2011 rokuW czerwcu 2011 r. Skype ogłosił utworzenie łącznika XMPP w rozwijanej wersji oprogramowania klienckiego dla systemu Windows. Jednak użycie jest ograniczone do tekstu, a nie wideo / audio. Ta integracja wydawała się mieć na celu połączenie z Facebookiem, który korzystał z XMPP .
WLM w 2011 rokuWe wrześniu 2011 roku Microsoft ogłosił, że Windows Live Messenger (zwany także MSN (od MicroSoft Network)) będzie oferował sposób łączenia się z ich komunikatorami za pośrednictwem protokołu XMPP przy użyciu systemu uwierzytelniania OAuth w kontekście nowego systemu operacyjnego Windows 8 i zwłaszcza związane z nim usługi online. Jednak integracja zostanie przeprowadzona tylko na poziomie klient-serwer, uniemożliwiając osobom obecnym w innych domenach XMPP (takich jak gmail.com lub jabber.org) interakcję z nimi, a zachowanych specyfikacji jest niewiele.
Po tym ogłoszeniu szybko nastąpiła integracja z alternatywnymi klientami poczty e-mail obsługującymi wiele protokołów.
Warto zauważyć, że Microsoft ma udziały w Facebooku i kupił Skype w maju 2011
We wrześniu 2008, Cisco ogłosiła umowę nabycia spółki Jabber Inc. . Przejęcie to nie ma wpływu ani na XSF, fundację non-profit, ani na protokół XMPP.
XMPP to serce Jabbera; XMPP jest dla Jabbera tym, czym Hypertext Transfer Protocol (HTTP) dla sieci WWW .
Protokół jest obsługiwany przez XMPP Standards Foundation (dawniej Jabber Software Foundation ) i jest standaryzowany przez Internet Engineering Task Force (IETF) pod nazwą XMPP.
Jeremie Miller rozpoczął projekt w 1998 r., A pierwsza publiczna wersja została wydana w maju 2000 r. Głównym rezultatem projektu jest jabberd , darmowy serwer, który umożliwia oprogramowaniu klienckiemu łączenie się i rozmawianie. Ten serwer jest używany do tworzenia prywatnej sieci Jabbera (za zaporą ) lub do łączenia się z innymi federacyjnymi serwerami publicznymi w Internecie, aby rozmawiać online ze swoimi korespondentami.
Można stworzyć wiele aplikacji Jabbera:
Dzięki Jingle , rozbudowa multimedialnego XMPP za możliwe jest przedłużenie strumieni do jakiejkolwiek zawartości binarnej: telefonia internetowa , wideokonferencje , itd.
Sieć użytkowników Jabbera jest zdecentralizowana, co oznacza, że składa się z kilku połączonych ze sobą serwerów. Działa podobnie jak poczta e-mail : wiadomości błyskawiczne są przesyłane od jednego użytkownika do drugiego za pośrednictwem odpowiedniego serwera. Innym podobieństwem jest to, że użytkownik jest identyfikowany przez nazwę użytkownika i nazwę serwera, przy czym oba pola są oddzielone znakiem „@”. Ten identyfikator nosi nazwę Jabber ID lub po prostu „adres Jabber”.
Na przykład, jeśli użytkownik [email protected] chce komunikować się z [email protected] , oprogramowanie klienckie Boba najpierw wysyła wiadomość na jego serwer ( jabber.org ). Następnie serwer Boba skontaktuje się z serwerem Gillesa ( jabber.cz ) przez Internet i przekaże mu wiadomość. Wreszcie serwer jabber.cz będzie mógł skontaktować się z oprogramowaniem klienckim Gillesa, jeśli jest w trybie online i przekazać mu wiadomość (w przeciwnym razie wiadomość pozostanie w stanie oczekiwania na serwerze i zostanie dostarczona, gdy Gilles będzie online). Oczywiście wszystkie te kroki są wykonywane natychmiast i przejrzyście dla użytkownika, podobnie jak wysyłanie e-maili.
|
↔ |
|
← |
|
→ |
|
↔ |
|
„Adres Jabbera” to identyfikator użytkownika Jabbera.
Składa się z dwóch lub trzech części:
Te dwa lub trzy pola są przedstawiane jako użytkownik @ serwer / zasób lub po prostu jako użytkownik @ serwer , na przykład adres e-mail.
Na przykład użytkownik bob na serwerze jabber.org korzystający z zasobu Praca będzie miał następujący adres Jabbera:
[email protected]/Work lub po prostu [email protected] , jako adres e-mail.
Lista kontaktów użytkownika Jabbera jest przechowywana na serwerze. Użytkownik znajdzie swoją listę kontaktów, jeśli połączy się z Jabberem na innych stacjach roboczych lub z innymi klientami.
Obecność i stanyKiedy klient Jabbera łączy się (lub rozłącza) z serwerem, ten ostatni automatycznie ogłasza obecność online (odpowiednio rozłączenie) użytkownika wszystkim jego kontaktom.
Można też uczynić siebie „niewidzialnymi”: użytkownik wydaje się wtedy odłączony w oczach swoich korespondentów, podczas gdy widzi powiadomienia o obecności swoich kontaktów.
Istnieje kilka stanów obecności: „online”, „offline”, „nieobecny” itp.
Zasoby i priorytetyZasób jest opcjonalną częścią adresu Jabbera. Jest to ostatnie pole tego pola, oddzielone od pozostałych ukośnikiem („/”).
Zasób, swobodnie konfigurowalny przez użytkownika w oprogramowaniu klienckim, zazwyczaj wskazuje lokalizację, w której znajduje się użytkownik Jabbera. Na przykład wartości Dom , Praca , Laptop lub Oprogramowanie są wspólne. Zasób staje się przydatny, gdy użytkownik loguje się z wielu lokalizacji lub z wieloma klientami w tym samym czasie. Jego kontakty mają wtedy wybór wysłania mu wiadomości do jednego lub drugiego z jego zasobów lub do domyślnego, to znaczy tego o najwyższym priorytecie . Jeśli kilka zasobów połączonych w tym samym czasie ma równe priorytety, to wiadomość jest adresowana do ostatnio podłączonego zasobu.
Priorytet jest liczbą całkowitą między -128 i +127. Jest opcjonalny i konfigurowalny w większości klientów Jabbera. W przypadku nieobecności serwer uważa, że jego priorytet jest równy 0. Jego głównym zastosowaniem jest dostarczanie bez zasobu wiadomości przeznaczonych na adres Jabbera.
TransportWiele serwerów Jabbera oferuje usługę transportową (zwaną także bramą ), która umożliwia użytkownikowi rozmowę z użytkownikami innych systemów komunikacji błyskawicznej.
Użytkownik może zarejestrować się do tych transportów, podając swoje określone informacje do sieci docelowej (na przykład w przypadku ICQ konieczne jest podanie UIN ( nazwa identyfikacyjna użytkownika ) i hasło). Po wykonaniu tej czynności użytkownik może dodać kontakty za pomocą tej innej sieci, tak jak w przypadku kontaktu korzystającego z Jabbera. Obecnie dostępne są transporty dla najczęściej używanych protokołów, takich jak IRC , MSN Messenger , Yahoo! Komunikator i komunikator ICQ / AOL Instant Messenger (AIM). Istnieją również inne rodzaje transportu, takie jak usługi e-mail.
Korzystając z transportu, użytkownik jest ograniczony do możliwości klienta i zastosowanego transportu; prawdopodobnie nie będzie miał wszystkich funkcji oficjalnego klienta docelowej sieci.
Kontakty z innych sieci pojawiają się na liście kontaktów jako kontakty Jabber z określonymi adresami Jabber: identyfikator @ transport . Na przykład:
Jednak niektóre Firmy obsługujące te zastrzeżone protokoły i usługi blokują lub blokują dostęp do ważnych serwerów Jabber, takich jak jabber.org i jabber.com , w swojej sieci. W związku z tym niemożliwe jest korzystanie z odpowiednich transportów na tych serwerach. Niektóre Firmy również zmodyfikowały swój protokół, według niektórych Aby przeciwdziałać używaniu ich sieci przez alternatywnych klientów lub przez transporty Jabbera.
Grupa badawczaDo grupy dyskusyjne i konferencje ( „muc” za „ multi Chat użytkownika ” lub „ w pokoju konferencyjnym ”) tworzenie rozmowy do ponad dwóch użytkowników, jak kanały IRC .
Możliwe jest tworzenie grup publicznych lub prywatnych, zapraszanie kontaktów do grupy, moderowanie grup („ wyrzucanie ” i „ blokowanie ” jak na IRC), rejestrowanie dyskusji i utrwalanie pokoju.
Przesyłanie plikówJabber umożliwia przesyłanie plików bezpośrednio między użytkownikami lub za pośrednictwem pośredniczącego serwera proxy , z możliwością przerwania i wznowienia przesyłania.
BrzękJingle umożliwia prowadzenie sesji głosowych w sieci IP i wideokonferencji . Jingle został zintegrowany z kilkoma klientami Jabbera, takimi jak Psi , Kopete , Spark i Pidgin od 2008 roku . Był używany przez Google Talk do 2014 roku, zanim został zastąpiony przez Google Hangout .
Subskrypcja publikacjiMechanizm publikowania-subskrybowania jest w trakcie opracowywania i standaryzacji, XEP-0060 obejmuje to możliwość dystrybucji i przechowywania informacji na serwerach Jabber, a także subskrypcji tych kanałów informacyjnych.
Mechanizm ten może między innymi umożliwiać konfigurowanie publikacji briefów i artykułów, subskrypcji tych wątków, rozszerzonej obecności, wspólnych zakładek, systemów aukcyjnych i giełdowych, katalogów online, systemów workflow , powiadomień o wydarzeniach ...
Rozszerzona obecnośćMechanizm rozszerzonej obecności jest w trakcie opracowywania i standaryzacji polega na posiadaniu możliwości nadawania dynamicznych informacji związanych ze stanem użytkownika, a mianowicie jego nastroju, aktywności, geolokalizacji, słuchanej muzyki, profilu, pseudonimu, przeglądania stron internetowych, czatów grupowych, gier, filmów oglądane, a na pewno więcej w przyszłości.
Rozszerzona obecność opiera się na uproszczeniu i specjalizacji mechanizmu publikacja-subskrypcja.
Jingle dzięki swojej szerokiej konstrukcji, skalowalności i standaryzacji oferuje szerokie spektrum zastosowań:
Protokół XMPP (Jabber) został opublikowany jako „ szkic ” przez IETF , aby mógł stać się standardem komunikatorów internetowych.
W 2002 roku powstała grupa XMPP i pracowała nad standaryzacją protokołu. Tak więc 4 października 2005 r. Specyfikacje protokołów zostały opublikowane jako RFC . Od tego czasu XMPP Standards Foundation przekazała kontrolę nad swoimi głównymi technologiami IETF, jednocześnie kontynuując rozwój licznych rozszerzeń protokołu (seria XEP).