XMPP je Extensible Messaging a Přítomnost Protokolu, sada otevřených technologií pro rychlé zasílání zpráv, přítomnost multi-party chat, hlasové a video hovory, spolupráce, lehký middleware, syndikace obsahu, a generalizované směrování dat XML.
XMPP byl původně vyvinut v Jabber open-source komunitě poskytnout otevřenou, decentralizovanou alternativu k uzavřené instant messaging služby v té době. XMPP nabízí oproti těmto službám několik klíčových výhod:
-
Open — XMPP protokoly jsou zdarma, otevřené, veřejné a snadno pochopitelné; navíc, více implementace existovat ve formě klienty, servery, serverové komponenty a kódu knihovny.
-
Standard-Internet Engineering Task Force (IETF) formalizoval jádro XML streaming protokoly jako schválené instant messaging a přítomnost technologie. SPECIFIKACE XMPP byly publikovány jako RFC 3920 a RFC 3921 v roce 2004 a nadace XMPP Standards Foundation nadále publikuje mnoho protokolů rozšíření XMPP. V roce 2011 byly základní RFC revidovány, což vedlo k nejaktuálnějším specifikacím (RFC 6120, RFC 6121 a RFC 7622).
-
Neprokáže — první Jabber/XMPP technologií byly vyvinuty Jeremie Miller v roce 1998 a nyní jsou poměrně stabilní; stovky vývojáři pracují na tyto technologie, tam jsou desítky tisíc XMPP servery běží na Internetu dnes, a miliony lidí, kteří používají XMPP pro rychlé zasílání zpráv prostřednictvím veřejných služeb, jako je Google Talk a XMPP nasazení v organizacích po celém světě.
-
Decentralizované — architektura XMPP sítě je podobná e-mailu; jako výsledek, každý, kdo může provozovat vlastní XMPP server, který umožňuje jednotlivcům a organizacím, aby převzít kontrolu nad jejich komunikační zkušenosti.
-
Bezpečné — žádné XMPP server může být izolované od veřejné sítě (např. na firemním intranetu) a robustní zabezpečení pomocí SASL a TLS byl postaven do jádra XMPP specifikace. Kromě toho komunita vývojářů XMPP aktivně pracuje na šifrování typu end-to-end, aby ještě více zvýšila bezpečnostní lištu.
-
Extensible — použití síly XML, každý může vytvořit vlastní funkce na horní části základní protokoly; udržovat interoperabilitu, společné rozšíření jsou zveřejněny v XEP série, ale takové zveřejnění není povinné a organizace může udržovat jejich vlastní rozšíření, pokud je to žádoucí.
-
Flexibilní — XMPP aplikace mimo IM zahrnují správu sítě, syndikace obsahu, nástroje pro spolupráci, sdílení souborů, hraní her, vzdálené monitorování systémů, webových služeb, lehký middleware, cloud computing, a mnohem více.
-
Různorodé — široké spektrum firem a open-source projekty, je použití XMPP vytvářet a nasazovat real-time aplikací a služeb; budete nikdy dostat „uzamčen v“, když budete používat XMPP technologií.
Tato stránka poskytuje úvod do různých technologií XMPP, včetně odkazů na specifikace, implementace, výukové programy, a účelová diskusní místa.
klíčové technologie XMPP:
- Core — informace o základní XMPP technologií pro XML streaming
- Jingle — SIP-kompatibilní multimediální signalizaci pro hlasové, video, přenos souborů a další aplikace
- Multi-User Chat — flexibilní, multi-strana komunikace
- PubSub — upozornění a oznámení pro údaje syndication, bohaté přítomnosti, a více
- BOSH — HTTP závazné pro XMPP (a další) provoz
Jádro
V jeho jádru, XMPP je technologie pro streamování XML přes síť. Protokol, který vznikl z komunity Jabber open-source v 1999, byl původně navržen tak, aby poskytoval otevřenou, bezpečnou a decentralizovanou alternativu ke službám instant messaging (IM) orientovaným na spotřebitele, jako jsou ICQ, AIM a MSN. Základní technologie byly formalizovány pod názvem Extensible Messaging and Presence Protocol (XMPP) na IETF v roce 2004. Mezi tyto základní technologie patří:
- základní XML streaming vrstva
- Kanál šifrování pomocí TLS (Transport Layer Security)
- Silná autentizace pomocí Simple Ověřování a Security Layer (SASL)
- Použití UTF-8 pro kompletní podporu Unicode, včetně plně internacionalizován adresy
- Vestavěným-in informace o dostupnosti sítě („přítomnost“)
- Přítomnost předplatné pro dva-způsob autorizace
- Přítomnost povolena seznamy kontaktů („seznamy“)
Specifikace
základní XMPP technologií jsou stanoveny ve dvou dokumentech Rfc vydávané IETF:
- RFC 6120: XMPP Core
- RFC 6121: XMPP IM
- RFC 7622: XMPP Adresu Formát
první XMPP Rfc (RFC 3920 a RFC 3921) byly vyrobeny podle IETF je XMPP Pracovní Skupiny v říjnu 2004. V roce 2011 byly revidovány, což vedlo k současným specifikacím.
implementace
existuje mnoho implementací základních specifikací XMPP. Podrobnosti naleznete na následujících stránkách:
- Klientů
- Servery
- Kód Knihovny
Jingle
V podstatě, Jingle poskytuje způsob, jak pro Jabber klienty nastavit, spravovat a strhnout multimediální relace. Takové zasedání může podporovat širokou škálu typů aplikací (jako je hlasový chat, video chat, a přenos souborů) a používat širokou škálu médií způsobů dopravy (například TCP, UDP, RTP, nebo dokonce v-band XMPP sám). Signalizace pro vytvoření relace znělky je odeslána přes XMPP, a obvykle je médium odesláno přímo peer-to-peer nebo prostřednictvím přenosového média. Jingle poskytuje zásuvné rámec pro oba typy aplikací a médií transportů; v případě, hlasu a video chat, Jingle jednání obvykle vede k použití Real-time Transport Protocol (RTP), jako média, dopravy, a proto je kompatibilní s existujícími multimediální technologie, jako je Session Initiation Protocol (SIP). Kromě toho, sémantika Jingle signalizační byl navržen tak, aby být v souladu s SIP a Session Description Protocol (SDP), což je jednoduché, poskytnout signalizační brány mezi XMPP sítí a SIP sítě.
Specifikace
Jingle je definován v počtu specifikace:
- XEP-0166: Jingle
- XEP-0167: Jingle RTP Relace
- XEP-0176: Jingle ICE-UDP Způsobu Dopravy
- XEP-0177: Jingle Raw UDP Způsobu Dopravy
- XEP-0181: Jingle DTMF
- XEP-0234: Jingle File Transfer
Implementace
Poznámka: Mnoho z těchto implementací podpory starší Google Talk protokol a jsou modernizovány na podporu Jingle, jak je definováno ve specifikacích; podrobnosti získáte od vývojářů projektu.
Klientů
- Coccinella
- Gajim
- Jitsi (dříve s názvem SIP Communicator)
- Movim
- Pandion
- Pidgin (dříve jmenoval Gaim)
- Psi
- Telepatie
- Yate
Knihovny
- libjingle (C/C++)
- Smack (Java)
- Telepatie Huhlání (C)
- yjingle (C++)
Volání Manažerů / VoIP Servery
- Hvězdičky
- FreeSWITCH
- Yate
Multi-User-Chat (MUC)
MUC je XMPP rozšíření pro výměnu informací více stran podobné Internet Relay Chat (IRC), přičemž více uživatelů XMPP si může vyměňovat zprávy v kontextu místnosti nebo kanálu. Kromě standardních správci funkce, jako jsou místnosti témata a pozvánky, protokol definuje silné místnosti ovládání modelu, včetně schopnosti kick a ban uživatele, název místnosti, moderátoři a administrátoři, vyžadují členství nebo hesla, aby se připojit do místnosti, atd. Protože MUC pokoje jsou založeny na XMPP, mohou být použity k výměně nejen prostý text poselství těla, ale i širokou škálu XML náklad.
Specifikace
MUC je definován v jedné základní specifikace (XEP-0045) a několik pomocných specifikace:
- XEP-0045: Multi-User Chat
- XEP-0249: Přímé MUC Pozvánky
- XEP-0272: Pluralitní Jingle
Implementace
Servery – následující XMPP servery zahrnují vestavěnou podporu pro MUC:
- ejabberd
- Jabber XCP
- M-Link
- MongooseIM
- Openfire
- Prozódii
- Tigase
Externí Komponenty – tyto samostatné komponenty lze použít s širokou škálu XMPP servery:
- mu-konference
- pábení
Klientů
- Adium
- Gajim
- JWChat
- mcabber
- Movim
- Pidgin
- Psi
Knihovny
- AnyEvent:XMPP (Perl)
- gloox (C++)
- jabber-net (.Net)
- libpurple (C)
- Smack (Java)
- XMPP4R (Ruby)
PubSub
PubSub je protokol rozšíření pro generic publish-subscribe funkčnost, uvedené v XEP-0060. Protokol umožňuje XMPP subjekty vytvářet uzly (témata) na pubsub služby a zveřejňovat informace na ty uzly; oznámení události (s nebo bez nákladu) se pak vysílány na všechny subjekty, které se přihlásili do uzlu. Pubsub proto se drží klasické Observer design pattern a může sloužit jako základ pro širokou škálu aplikací, včetně novinek, syndikace obsahu, bohaté přítomnosti, geolocation, workflow systémy, sítě, systémy řízení, a jakékoli jiné aplikace, která vyžaduje, aby upozornění na události. Personal eventing protocol (PEP), je uvedeno v XEP-0163, poskytuje přítomnost-aware profil PubSub, který umožňuje každý uživatel je JabberID fungovat jako virtuální pubsub služby pro bohaté přítomnosti, microblogging, sociální sítě, a real-time interakce.
Specifikace
PubSub je definován v několika specifikace:
- XEP-0060: Publish-Subscribe
- XEP-0163: Personal Eventing Protocol
- XEP-0248: PubSub Kolekce Uzlů
Nosnost
PubSub a PEP jsou „užitečné zatížení-agnostik“ — můžete je použít jako neutrální transporty pro širokou škálu datových formátů. Některé z populárnějších užitečných zatížení jsou uvedeny níže, zejména pro bohatou přítomnost související s uživateli IM:
- Aktivity
- Atom / RSS Oznámení
- Avatary
- Správci Návštěvy
- Herní Činnosti
- Geolocation
- Nálady
- Hudební Melodie
- TV/Video Aktivity
- Návštěv webových Stránek
Implementace
Servery – následující XMPP servery zahrnují vestavěnou podporu pro PubSub nebo PEP:
- ejabberd
- Jabber XCP
- M-Link
- Openfire
- Tigase
Součásti Serveru
- Idavoll
Klientů
- Gajim
- Movim
- Psi
3.4 Knihovny
- strophe (C nebo JavaScript)
- XMPP4R (Ruby)
BOSH
BOSH je „Bidirectional-streams Over Synchronous HTTP“, technologii pro obousměrnou komunikaci přes HTTP (Hypertext Transfer Protocol). BOSH emuluje mnoho transportních primitiv, které jsou známé z protokolu TCP (Transmission Control Protocol). Pro aplikace, které vyžadují komunikaci „push“ I „pull“, je BOSH Výrazně efektivnější a citlivější než většina ostatních obousměrných transportních protokolů založených na HTTP a technik známých jako AJAX. BOSH dosahuje účinnost a nízké latence vyhnout HTTP polling, přesto to dělá tak, aniž by se uchylovat k blokového HTTP odpovědi, jako je tomu v technice známé jako Kometa. K dnešnímu dni, BOSH byl používán především jako dopravní pro provoz vyměňovány mezi Jabber/XMPP klienty a servery (např. k usnadnění připojení z web klientů a mobilních klientů na občasné sítí). Bosh však není vázán pouze na XMPP a může být použit i pro jiné druhy provozu.
Specifikace BOSH je definován ve dvou specifikace:
- XEP-0124: Bidirectional-streams Over Synchronous HTTP
- XEP-0206: XMPP Over BOSH
Implementace
Servery následující XMPP servery zahrnují vestavěnou podporu pro BOSH:
- ejabberd
- Jabber XCP
- M-Link
- MongooseIM
- Openfire
- Prozódii
- Tigase
Připojení Manažeři
následující samostatný XMPP connection manager lze použít s širokou škálu XMPP servery:
- JabberHTTPBind
- Paňdžáb
- uzel-xmpp-bosh
- rhb
Klientů
- Adium
- Gajim
- JWChat
- Pidgin
- Soashable
- SparkWeb
- Rychlé
- Tigase Messenger
- Tigase Minichat
Knihovny
- emite (gw)
- gloox (C++)
- JSJaC (JavaScript)
- strophe (C nebo JavaScript)
- Swiften (C++)
- XIFF (Flash)
- XMPP4GWT (gw)
- xmpp4js (JavaScript)
- XMPP4R (rubín)