XMPP

XMPP on Extensible Messaging and Presence Protocol, joukko avoimia teknologioita pikaviestintään, läsnäoloon, monipuoliseen chatiin, ääni-ja videopuheluihin, yhteistyöhön, kevyeen väliohjelmistoon, sisällön syndikointiin ja yleistettyyn XML-datan reititykseen.

XMPP kehitettiin alun perin Jabber-avoimen lähdekoodin yhteisössä tarjoamaan avoin, hajautettu vaihtoehto silloisille suljetuille pikaviestipalveluille. XMPP tarjoaa useita keskeisiä etuja tällaisiin palveluihin verrattuna:

  • Open-XMPP-protokollat ovat ilmaisia, avoimia, julkisia ja helposti ymmärrettäviä; lisäksi useita toteutuksia on olemassa muodossa asiakkaat, palvelimet, palvelinkomponentit ja koodikirjastot.

  • standardi-Internet Engineering Task Force (IETF) on virallistanut XML-suoratoistoprotokollat hyväksytyksi pikaviestintä-ja läsnäoloteknologiaksi. XMPP-spesifikaatiot julkaistiin RFC 3920: n ja RFC 3921: n muodossa vuonna 2004, ja XMPP Standards Foundation julkaisee edelleen monia XMPP-Laajennusprotokollia. Vuonna 2011 RFC: n ydinohjeita tarkistettiin, jolloin saatiin ajanmukaisimmat eritelmät (RFC 6120, RFC 6121 ja RFC 7622).

  • todistettu-ensimmäiset Jabber / XMPP-teknologiat kehitti Jeremie Miller vuonna 1998, ja ne ovat nyt melko vakaita; sadat kehittäjät työskentelevät näiden teknologioiden parissa, on kymmeniä tuhansia XMPP-palvelimia, jotka toimivat nykyään Internetissä, ja miljoonat ihmiset käyttävät XMPP: tä pikaviestintään julkisten palvelujen, kuten Google Talkin ja XMPP: n käyttöönoton kautta organisaatioissa ympäri maailmaa.

  • hajautettu-XMPP-verkon arkkitehtuuri on samanlainen kuin sähköposti; tämän seurauksena kuka tahansa voi suorittaa oman XMPP-palvelimensa, jolloin yksilöt ja organisaatiot voivat hallita viestintäkokemustaan.

  • Secure-mikä tahansa XMPP-palvelin voidaan eristää julkisesta verkosta (esim.yrityksen intranetissä) ja vankka turvallisuus SASL: ää ja TLS: ää käyttäen on rakennettu XMPP: n ydinmäärityksiin. Lisäksi XMPP: n kehittäjäyhteisö työskentelee aktiivisesti päästä päähän-salauksen parissa nostaakseen tietoturvapalkkia entisestään.

  • Extensible-XML: n voimalla kuka tahansa voi rakentaa omia toimintoja ydinprotokollien päälle; yhteentoimivuuden ylläpitämiseksi XEP-sarjassa julkaistaan yhteisiä laajennuksia, mutta tällaista julkaisua ei tarvita ja organisaatiot voivat halutessaan ylläpitää omia yksityisiä laajennuksiaan.

  • Flexible-XMPP sovelluksia IM: n lisäksi ovat verkonhallinta, sisällön syndikointi, yhteistyövälineet, tiedostojen jakaminen, pelaaminen, etäjärjestelmien valvonta, verkkopalvelut, kevyt väliohjelmisto, pilvipalvelut ja paljon muuta.

  • monipuolinen-laaja valikoima yrityksiä ja avoimen lähdekoodin projekteja käyttää XMPP rakentaa ja ottaa käyttöön reaaliaikaisia sovelluksia ja palveluja; et koskaan ”lukittu”, kun käytät XMPP teknologioita.

Tämä sivu sisältää johdannon eri XMPP-teknologioihin, mukaan lukien linkit määrityksiin, toteutuksiin, opetusohjelmiin ja erikoistarkoituksiin tarkoitettuihin keskustelupaikkoihin.

Keskeiset XMPP-teknologiat:

  • Core — tietoa XMPP: n ydinteknologioista XML — suoratoistoon
  • Jingle-SIP-yhteensopiva multimedia — signalointi ääni -, video—, tiedostonsiirto — ja muihin sovelluksiin
  • monen käyttäjän Chat-joustava, monipuolinen viestintä
  • PubSub-hälytykset ja ilmoitukset tietojen syndikointiin, runsaaseen läsnäoloon ja muuhun
  • bosh-http-Sidonta XMPP: lle (ja muulle) liikenteelle

Core

ytimessään XMPP on teknologia xml: n suoratoistoon verkon yli. Jabber open-source-yhteisöstä vuonna 1999 syntynyt protokolla suunniteltiin alun perin tarjoamaan avoin, turvallinen, hajautettu vaihtoehto kuluttajalähtöisille pikaviestipalveluille, kuten ICQ, AIM ja MSN. Ydinteknologiat virallistettiin nimellä Extensible Messaging and Presence Protocol (XMPP) IETF: ssä vuonna 2004. Näitä keskeisiä teknologioita ovat:

  • XML: n peruskerros
  • Kanavasalaus käyttäen Transport Layer Security (TLS)
  • Vahva todennus käyttäen yksinkertaista todennus-ja Suojauskerrosta (SASL)
  • UTF-8: n käyttö täydelliseen Unicode-tukeen, mukaan lukien täysin kansainvälistetyt osoitteet
  • sisäänrakennettu tieto verkon saatavuudesta (”läsnäolo”)
  • läsnäololistat kaksisuuntaista valtuutusta varten
  • läsnäololistat (”työvuorolistat”)

TEKNISET TIEDOT

XMPP-ydinteknologiat on määritelty kahdessa RFC: ssä IETF: n julkaisema:

  • RFC 6120: XMPP-ydin
  • RFC 6121: XMPP IM
  • RFC 7622: XMPP-Osoitemuoto

IETF: n XMPP-työryhmä tuotti ensimmäiset XMPP-RFC: t (RFC 3920 ja RFC 3921) lokakuussa 2004. Vuonna 2011 niitä tarkistettiin, mikä johti nykyisiin eritelmiin.

toteutukset

XMPP: n ydinspesifikaatioiden toteutuksia on useita. Katso lisätietoja seuraavilta sivuilta:

  • asiakkaat
  • palvelimet
  • Koodikirjastot

Jingle

pohjimmiltaan Jingle tarjoaa Jabber-asiakkaille tavan perustaa, hallita ja purkaa multimediasessioita. Tällaiset istunnot voivat tukea monenlaisia sovellustyyppejä (kuten puhekeskustelu, videokeskustelu ja tiedostonsiirto) ja käyttää monenlaisia median kuljetusmenetelmiä (kuten TCP, UDP, RTP tai jopa itse kaistalla XMPP). Signalointi Jingle-istunnon perustamiseksi lähetetään XMPP: n kautta, ja tyypillisesti media lähetetään suoraan peer-to-peer tai medialähetyksen kautta. Jingle tarjoaa liitettävän kehyksen sekä sovellustyypeille että mediakuljetuksille; ääni-ja videokeskustelun tapauksessa kulkuneuvon neuvottelu johtaa yleensä reaaliaikaisen Kuljetusprotokollan (RTP) käyttöön mediakuljetuksena ja on siten yhteensopiva olemassa olevien multimediateknologioiden, kuten Session Initiation Protocol (SIP), kanssa. Lisäksi Kulkusignaalin semantiikka suunniteltiin vastaamaan sekä SIP: tä että Session Description Protocol: ia (SDP), jolloin merkinantoväylien tarjoaminen XMPP-verkkojen ja SIP-verkkojen välillä oli yksinkertaista.

TEKNISET TIEDOT

Jingle on määritelty useissa eritelmissä:

  • XEP-0166: Jingle
  • XEP-0167: Jingle RTP Sessions
  • XEP-0176: Jingle ICE-UDP Transport Method
  • XEP-0177: Jingle Raw UDP Transport Method
  • XEP-0181: Jingle DTMF
  • xep-0234: jingle-tiedostonsiirto

toteutukset

huomaa: monet seuraavista toteutuksista tukevat vanhempaa Google Talk-protokollaa ja niitä ollaan päivittämässä tukemaan jingleä sellaisena kuin se on määritelty eritelmissä; ota yhteyttä projektin kehittäjiin saadaksesi lisätietoja.

asiakkaat

  • Coccinella
  • Gajim
  • Jitsi (aiemmalta nimeltään SIP Communicator)
  • Movim
  • Pandion
  • Pidgin (aiemmalta nimeltään Gaim)
  • psi

  • telepatia
  • Yate

kirjastot

  • Libjingle (C/C++)
  • Smack (Java)
  • telepatia gabble (C)
  • yjingle (C++)

Call Managers / VoIP-palvelimet

  • Asterisk
  • FreeSWITCH
  • Yate

Multi-User-Chat (MUC)

MUC on XMPP-laajennus Internet Relay chatin (IRC) kaltaiseen monen osapuolen tietojenvaihtoon, jossa useat XMPP-käyttäjät voivat vaihtaa viestejä huoneen tai kanavan yhteydessä. Normaalien chatroom-ominaisuuksien, kuten huoneaiheiden ja kutsujen, lisäksi protokolla määrittelee strong room control-mallin, mukaan lukien mahdollisuuden potkia ja kieltää käyttäjiä, nimetä huoneen moderaattoreita ja ylläpitäjiä, vaatia jäsenyyttä tai salasanoja liittyäkseen huoneeseen, jne. Koska MUC rooms perustuu XMPP: hen, niillä voidaan vaihtaa paitsi tekstiviesti-runkoja myös monenlaisia XML-hyötykuormia.

TEKNISET TIEDOT

MUC on määritelty yhdessä ensisijaisessa spesifikaatiossa (XEP-0045) ja useissa täydentävissä eritelmissä:

  • XEP-0045: monen käyttäjän Chat
  • XEP-0249: suorat MUC-kutsut
  • XEP-0272: monipuolisen jinglen

toteutukset

palvelimet – seuraavat XMPP-palvelimet sisältävät sisäänrakennetun tuen MUC: lle:

  • ejabberd
  • Jabber XCP
  • M-Link
  • MongooseIM
  • avotuli
  • Prosody
  • Tigase

ulkoiset komponentit – seuraavia itsenäisiä komponentteja voidaan käyttää useiden XMPP-palvelinten kanssa:

  • mu-konferenssi
  • palaver

asiakkaat

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

kirjastot

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

PubSub

PubSub on XEP-0060: ssä määritelty protokollalaajennus yleisille julkaise-tilaa-toiminnoille. Protokollan avulla XMPP-yksiköt voivat luoda solmuja (aiheita) pubsub-palvelussa ja julkaista tietoja kyseisissä solmuissa; tapahtumailmoitus (hyötykuorman kanssa tai ilman) lähetetään sitten kaikille solmun tilanneille tahoille. Pubsub noudattaa siis klassista Observer-suunnittelumallia ja voi toimia perustana monenlaisille sovelluksille, kuten uutissyötteille, sisällön syndikoinnille, rikkaalle läsnäololle, geolocationille, työnkulkujärjestelmille, verkonhallintajärjestelmille ja muille sovelluksille, jotka vaativat tapahtumailmoituksia. XEP-0163: ssa määritelty personal eventing protocol (Pep) tarjoaa pubsubin läsnäolotietoisen profiilin, jonka avulla jokaisen käyttäjän JabberID voi toimia virtuaalisena pubsub-palveluna rikkaaseen läsnäoloon, mikroblogiin, sosiaaliseen verkostoitumiseen ja reaaliaikaiseen vuorovaikutukseen.

TEKNISET TIEDOT

PubSub on määritelty useissa eritelmissä:

  • XEP-0060: Publish-Subscribe
  • XEP-0163: Personal Eventing Protocol
  • XEP-0248: PubSub Collection Nodes

hyötykuormat

PubSub ja Pep ovat ”hyötykuorma — agnostisia” – voit käyttää niitä neutraaleina kuljetuksina monenlaisissa tietomuodoissa. Jotkut suosituimmista hyötykuormat on lueteltu alla, erityisesti rikas läsnäolo liittyvät pikaviestien käyttäjille:

  • toiminta
  • Atom / RSS – ilmoitukset
  • avatarit
  • Chat-käynnit
  • pelitoiminta
  • paikkatieto
  • tunnelmat
  • Musiikkisävelmät
  • tv/videotoiminta
  • Verkkosivukäynnit

toteutukset

palvelimet-seuraavat XMPP-palvelimet sisältävät sisäänrakennetun tuen Pubsubille tai Pepille:

  • ejabberd
  • Jabber XCP
  • M-Link
  • Openfire
  • Tigase

palvelinkomponentit

  • Idavoll

asiakkaat

  • gajim
  • MOVIM
  • psi

3.4 kirjastot

  • strope (C tai JavaScript)
  • XMPP4R (Ruby)

BOSH

BOSH on ”Bidirectional-streams Over Synchronous HTTP”-tekniikka kaksisuuntaiseen viestintään hypertekstin Siirtoprotokollan (HTTP) kautta. BOSH emuloi monia Transmission Control Protocol (TCP) – protokollasta (Transmission Control Protocol) tuttuja transmission primitiveja. Sovelluksissa, jotka vaativat sekä ” push ”ja” pull ” viestintä, BOSH on huomattavasti enemmän kaistanleveys-tehokas ja reagoiva kuin useimmat muut kaksisuuntaiset HTTP-pohjainen kuljetusprotokollia ja tekniikoita tunnetaan AJAX. BOSH saavuttaa tämän tehokkuuden ja alhaisen latenssin välttämällä HTTP-kyselyjä, mutta se tekee niin turvautumatta chunked HTTP-vastauksiin, kuten Comet-nimellä tunnetussa tekniikassa tehdään. Tähän mennessä BOSH: ta on käytetty pääasiassa Jabber/XMPP-asiakkaiden ja palvelimien välisen liikenteen kuljetuksena (esim.verkkoasiakkaiden ja ajoittaisten verkkojen mobiiliasiakkaiden yhteyksien helpottamiseksi). BOSH ei kuitenkaan ole sidottu pelkästään XMPP: hen, vaan sitä voidaan käyttää myös muunlaiseen liikenteeseen.

TEKNISET TIEDOT BOSH määritellään kahdessa spesifikaatiossa:

  • XEP-0124: kaksisuuntaiset virrat yli synkronisen HTTP
  • XEP-0206: XMPP yli BOSH

toteutukset

palvelimet seuraavat XMPP-palvelimet sisältävät sisäänrakennetun tuen BOSH: lle:

  • ejabberd
  • Jabber XCP
  • M-Link
  • MongooseIM
  • avotuli
  • Prosody
  • Tigase

yhteyksienhallinta

seuraavia erillisiä XMPP-yhteyksienhallintaa voidaan käyttää useilla eri XMPP-palvelimilla:

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

asiakkaat

  • Adium
  • Gajim
  • jwchat
  • Pidgin
  • soashable
  • sparkweb
  • Swift
  • tigase messenger
  • Tigase Minichat

kirjastot

  • emite (GWT)
  • Gloox (C++)
  • jsjac (JavaScript)
  • strope (C tai JavaScript)
  • Swiften (C++)
  • Xiff (Flash)
  • xmpp4gwt (GWT)
  • Xmpp4js (JavaScript)
  • XMPP4R (Ruby)

Vastaa

Sähköpostiosoitettasi ei julkaista.