XMPP

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)

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.