XMPP

az XMPP az Extensible Messaging and Presence Protocol, az azonnali üzenetküldés, a jelenlét, a többparti csevegés, a hang-és videohívások, az együttműködés, a könnyű köztes szoftver, A tartalom szindikálása és az XML adatok általános útválasztása.

az XMPP-t eredetileg a Jabber nyílt forráskódú közösségben fejlesztették ki, hogy nyitott, decentralizált alternatívát nyújtson az akkori zárt azonnali üzenetküldő szolgáltatásokhoz. Az XMPP számos kulcsfontosságú előnyt kínál az ilyen szolgáltatásokkal szemben:

  • Open-az XMPP protokollok szabadok, nyíltak, nyilvánosak és könnyen érthetőek; emellett számos implementáció létezik kliensek, szerverek, szerverkomponensek és kódkönyvtárak formájában.

  • szabvány-az Internet Engineering Task Force (IETF) formalizálta az alapvető XML streaming protokollokat, mint jóváhagyott azonnali üzenetküldő és jelenléti technológiát. Az XMPP specifikációkat RFC 3920 és RFC 3921 néven tették közzé 2004-ben, és az XMPP Standards Foundation továbbra is számos XMPP kiterjesztési protokollt tesz közzé. 2011-ben az alapvető RFC-ket felülvizsgálták, ami a legfrissebb specifikációkat eredményezte (RFC 6120, RFC 6121 és RFC 7622).

  • bizonyított-az első Jabber/XMPP technológiákat Jeremie Miller fejlesztette ki 1998-ban, és ma már meglehetősen stabilak; több száz fejlesztő dolgozik ezeken a technológiákon, ma több tízezer XMPP szerver fut az interneten, és emberek milliói használják az XMPP-t azonnali üzenetküldésre olyan közszolgáltatásokon keresztül, mint a Google Talk és az XMPP telepítése a szervezeteknél világszerte.

  • decentralizált — az XMPP hálózat architektúrája hasonló az e-mailhez; ennek eredményeként bárki futtathatja saját XMPP szerverét, lehetővé téve az egyének és szervezetek számára, hogy átvegyék az irányítást kommunikációs tapasztalataik felett.

  • biztonságos-bármely XMPP szerver el lehet szigetelve a nyilvános hálózattól (pl. vállalati intraneten), és a SASL és TLS használatával a robusztus biztonság beépült az alapvető XMPP specifikációkba. Ezenkívül az XMPP fejlesztői közösség aktívan dolgozik a végpontok közötti titkosításon, hogy még tovább növelje a biztonsági sávot.

  • Extensible-az XML erejét használva bárki felépíthet egyedi funkciókat az alapvető protokollok tetejére; az interoperabilitás fenntartása érdekében a közös kiterjesztéseket közzéteszik az XEP sorozatban, de ilyen közzétételre nincs szükség, és a szervezetek fenntarthatják saját privát kiterjesztéseiket, ha szükséges.

  • rugalmas — az IM-en kívüli XMPP alkalmazások magukban foglalják a hálózatkezelést, a tartalomszindikációt, az együttműködési eszközöket, a fájlmegosztást, a játékot, a távoli rendszerek felügyeletét, a webes szolgáltatásokat, a könnyű köztes szoftvert, a felhőalapú számítástechnikát és még sok mást.

  • változatos-a vállalatok és a nyílt forráskódú projektek széles köre használja az XMPP-t valós idejű alkalmazások és szolgáltatások építéséhez és telepítéséhez; soha nem lesz “bezárva”, ha XMPP technológiákat használ.

ez az oldal bemutatja a különböző XMPP technológiákat, beleértve a specifikációkra, implementációkra, oktatóanyagokra és speciális célú beszélgetési helyszínekre mutató linkeket.

kulcs XMPP technológiák:

  • Core — információk a core XMPP technológiák XML streaming
  • Jingle — SIP-kompatibilis multimédiás jelző hang, videó, fájlátvitel, és egyéb alkalmazások
  • Multi-User Chat — rugalmas, több fél kommunikáció
  • PubSub-figyelmeztetések és értesítések az adatok szindikálása, gazdag jelenléte, és több
  • Bosh — http kötés XMPP (és egyéb) forgalomhoz

core

lényegében az XMPP az XML hálózaton keresztüli továbbítására szolgáló technológia. A Jabber nyílt forráskódú közösségéből 1999-ben született protokollt eredetileg arra tervezték, hogy nyílt, biztonságos, decentralizált alternatívát nyújtson az olyan fogyasztóorientált azonnali üzenetküldő (IM) szolgáltatásokkal szemben, mint az ICQ, az AIM és az MSN. Az alapvető technológiákat Extensible Messaging and Presence Protocol (XMPP) néven formalizálták az IETF-en 2004-ben. Ezek az alapvető technológiák a következők:

  • az alap XML streaming réteg
  • csatorna titkosítás a Transport Layer Security (TLS) használatával
  • Erős hitelesítés A Simple Authentication and Security Layer (SASL) használatával
  • az UTF-8 használata a teljes Unicode támogatáshoz, beleértve a teljesen nemzetközivé vált címeket is
  • beépített információk a hálózat elérhetőségéről (“jelenlét”)
  • jelenlét-előfizetések kétirányú engedélyezéshez
  • jelenlét-engedélyezett névjegyzékek (“névsorok”)

specifikáció

az alapvető XMPP technológiákat két RFC határozza meg közzétette az IETF:

  • RFC 6120: XMPP Core
  • RFC 6121: XMPP IM
  • RFC 7622: XMPP cím formátum

az első XMPP RFC-ket (RFC 3920 és RFC 3921) az IETF XMPP Munkacsoportja készítette 2004 októberében. 2011-ben felülvizsgálták őket, ami a jelenlegi előírásokat eredményezte.

implementációk

a core XMPP specifikációknak számos implementációja van. A részletekért lásd a következő oldalakat:

  • kliensek
  • szerverek
  • Kódkönyvtárak

Jingle

lényegében a Jingle lehetőséget nyújt a Jabber klienseknek a multimédiás munkamenetek beállítására, kezelésére és lebontására. Az ilyen munkamenetek számos alkalmazástípust támogathatnak (például hangcsevegést, videocsevegést és fájlátvitelt), és a médiaátviteli módszerek széles skáláját használhatják (például TCP, UDP, RTP vagy akár sávon belüli XMPP). A Jingle munkamenet létrehozására szolgáló jelzést XMPP-n keresztül küldik, és általában a médiát közvetlenül peer-to-peer-en vagy egy média relén keresztül küldik el. A Jingle dugaszolható keretet biztosít mind az alkalmazástípusok, mind a médiaszállítások számára; hang-és videocsevegés esetén a Jingle-egyeztetés általában a valós idejű szállítási protokoll (RTP) használatát eredményezi médiaszállításként, és így kompatibilis a meglévő multimédiás technológiákkal, mint például a Session Initiation Protocol (SIP). Ezenkívül a Jingle signaling szemantikáját úgy tervezték, hogy összhangban legyen mind a SIP-vel, mind a Session Description Protocol (SDP), ezáltal egyszerűvé téve a jelátviteli átjárók biztosítását az XMPP hálózatok és a SIP hálózatok között.

SPECIFIKÁCIÓK

a Jingle számos specifikációban van meghatározva:

  • XEP-0166: Jingle
  • XEP-0167: Jingle RTP ülések
  • XEP-0176: Jingle ICE-UDP szállítási módszer
  • XEP-0177: Jingle nyers UDP szállítási módszer
  • XEP-0181: Jingle DTMF
  • XEP-0234: Jingle fájlátvitel

implementációk

megjegyzés: a következő implementációk közül sok támogatja a régebbi Google Talk protokollt, és a specifikációkban meghatározottak szerint támogatják a jingle-t; a részletekért vegye fel a kapcsolatot a projekt fejlesztőivel.

ügyfelek

  • Coccinella
  • Gajim
  • Jitsi (korábbi nevén SIP kommunikátor)
  • Movim
  • Pandion
  • Pidgin (korábbi nevén Gaim)
  • psi
  • telepátia
  • Yate

könyvtárak

  • Libjingle (C/C++)
  • Smack (Java)
  • telepátia Gabble (C)
  • yjingle (C++)

Híváskezelők / VoIP szerverek

  • csillag
  • FreeSWITCH
  • Yate

többfelhasználós Chat (MUC)

a MUC egy XMPP kiterjesztés az Internet Relay chathez (IRC) hasonló több fél általi információcseréhez, amelynek során több XMPP felhasználó üzeneteket cserélhet egy szoba vagy csatorna összefüggésében. A szokásos csevegőszobai funkciók mellett, mint például a szobatémák és a meghívók, a protokoll egy erős szobakontroll modellt határoz meg, beleértve a felhasználók rúgásának és kitiltásának képességét, a szoba moderátorainak és adminisztrátorainak megnevezését, a tagság vagy a jelszavak megkövetelését a szobához való csatlakozáshoz stb. Mivel a MUC rooms az XMPP-n alapul, nemcsak egyszerű szöveges üzenet testek, hanem sokféle XML hasznos teher cseréjére is használhatók.

SPECIFIKÁCIÓK

a MUC-t egy elsődleges specifikáció (XEP-0045) és több kiegészítő specifikáció határozza meg:

  • XEP-0045: többfelhasználós Csevegés
  • XEP-0249: közvetlen MUC meghívók
  • XEP-0272: többpárti Jingle

implementációk

szerverek – a következő XMPP szerverek tartalmazzák a MUC beépített támogatását:

  • ejabberd
  • Jabber XCP
  • M-Link
  • MongooseIM
  • nyílt tűz
  • prozódia
  • Tigáz

külső komponensek – a következő önálló komponensek az XMPP szerverek széles választékával használhatók:

  • mu-konferencia
  • palaver

ügyfelek

  • Adium
  • Gajim
  • JWChat
  • mcabber
  • Movim
  • Pidgin
  • psi

könyvtárak

  • Anyevent:XMPP (Perl)
  • gloox (C++)
  • jabber-net (. Net)
  • libpurple (C)
  • Smack (Java)
  • XMPP4R (Ruby)

PubSub

a PubSub az XEP-0060-ban meghatározott általános közzétételi-feliratkozási funkciók protokoll-kiterjesztése. A protokoll lehetővé teszi az XMPP entitások számára, hogy csomópontokat (témákat) hozzanak létre egy pubsub szolgáltatásban, és információkat tegyenek közzé ezeken a csomópontokon; egy eseményértesítést (hasznos teherrel vagy anélkül) továbbítanak minden olyan entitásnak, amely feliratkozott a csomópontra. A Pubsub ezért ragaszkodik a klasszikus Observer tervezési mintához, és számos alkalmazás alapjául szolgálhat, beleértve a hírcsatornákat, a tartalomszindikációt, a gazdag jelenlétet, a földrajzi helymeghatározást, a munkafolyamat-rendszereket, a hálózatkezelő rendszereket és minden más alkalmazást, amely eseményértesítéseket igényel. Az XEP-0163-ban meghatározott personal eventing protocol (Pep) a PubSub jelenlét-tudatos profilját biztosítja, amely lehetővé teszi minden felhasználó JabberID-jének, hogy virtuális pubsub szolgáltatásként működjön a gazdag jelenlét, a mikroblog, a közösségi hálózatok és a valós idejű interakciók számára.

SPECIFIKÁCIÓK

a PubSub több specifikációban van meghatározva:

  • XEP-0060: Publish-Subscribe
  • XEP-0163: Personal Eventing Protocol
  • XEP-0248: PubSub Gyűjtőcsomópontok

hasznos terhelések

a PubSub és a Pep “hasznos teher — agnosztikus” – semleges transzportként használhatja őket sokféle adatformátumhoz. Az alábbiakban felsorolunk néhány népszerűbb hasznos terhet, különösen az IM-felhasználókhoz kapcsolódó gazdag jelenlét esetén:

  • tevékenységek
  • Atom / RSS értesítések
  • avatarok
  • csevegőszoba látogatások
  • játéktevékenységek
  • földrajzi helymeghatározás
  • hangulatok
  • zenei dallamok
  • TV/videó tevékenységek
  • weboldal látogatások

megvalósítások

szerverek – a következő XMPP szerverek beépített támogatást tartalmaznak a Pubsub vagy a Pep számára:

  • ejabberd
  • Jabber XCP
  • M-Link
  • Openfire
  • Tigáz

szerver összetevők

  • Idavoll

ügyfelek

  • Gajim
  • MOVIM
  • psi

3.4 könyvtárak

  • strophe (C vagy JavaScript)
  • XMPP4R (Ruby)

BOSH

BOSH “kétirányú-streams over Synchronous HTTP”, a technológia kétirányú kommunikáció a Hypertext Transfer Protocol (HTTP). A BOSH sok olyan szállítási primitívet emulál, amelyek ismertek a Transmission Control Protocol (TCP). A “push” és “pull” kommunikációt egyaránt igénylő alkalmazásoknál a BOSH lényegesen nagyobb sávszélesség-hatékonysággal és érzékenységgel rendelkezik, mint a legtöbb más kétirányú HTTP-alapú átviteli protokoll és az AJAX néven ismert technikák. A BOSH ezt a hatékonyságot és az alacsony késleltetést úgy éri el, hogy elkerüli a HTTP-lekérdezést, de ezt anélkül teszi, hogy darabolt HTTP-válaszokat igényelne, ahogy az a Comet néven ismert technikában történik. A BOSH-t a mai napig főként a Jabber/XMPP kliensek és szerverek közötti forgalom továbbítására használták (például a webes kliensek és a mobil kliensek közötti kapcsolatok megkönnyítésére szakaszos hálózatokon). A BOSH azonban nem kizárólag az XMPP-hez kötődik, és más típusú forgalomhoz is használható.

specifikációk a BOSH-t két specifikáció határozza meg:

  • XEP-0124: kétirányú-Stream szinkron HTTP-n keresztül
  • XEP-0206: XMPP BOSH-n keresztül

implementációk

szerverek a következő XMPP szerverek tartalmazzák a BOSH beépített támogatását:

  • ejabberd
  • Jabber XCP
  • M-Link
  • MongooseIM
  • nyílt tűz
  • prozódia
  • Tigáz

kapcsolatkezelők

a következő önálló XMPP kapcsolatkezelők sokféle XMPP szerverrel használhatók:

  • JabberHTTPBind
  • Punjab
  • node-xmpp-bosh
  • rhb

ügyfelek

  • Adium
  • Gajim
  • jwchat
  • Pidgin
  • soashable
  • sparkweb
  • Swift
  • Tigáz messenger
  • Tigáz Minichat

könyvtárak

  • emit (GWT)
  • Gloox (C++)
  • jsjac (JavaScript)
  • strophe (C vagy JavaScript)
  • Swiften (C++)
  • Xiff (Flash)
  • xmpp4gwt (GWT)
  • Xmpp4js (Javascript)
  • XMPP4R (Rubin)

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.