Extensible Messaging and Presence Protocol (XMPP) (entinen Jabber) on pikaviestiprotokolla. Se on saanut vaikutteita XML:stä.

Se eroaa useimmista protokollista, koska se on avoin standardi. Tämä tarkoittaa, että kuka tahansa, jolla on verkkotunnus ja internet-yhteys, voi käyttää omaa palvelinta. Suurin osa ohjelmistoista ja asiakkaista on avoimen lähdekoodin ohjelmistoja.

Muut ohjelmistot, kuten Google Talk ja Gizmo5, käyttävät XMPP-protokollaa. Se on asennettu tuhansiin palvelimiin eri puolilla Internetiä. Protokollaan perustuvia ohjelmistoja käyttää yli viisisataa miljoonaa käyttäjää. Asiakkaita ovat esimerkiksi Pidgin ja iChat.

Mitä XMPP on ja miten se toimii

XMPP on hajautettu ja laajennettava viestintäjärjestelmä, joka perustuu XML-rakenteisiin. Sen perusajatuksena on, että viestit ja läsnäolotiedot lähetetään pieninä XML-sanomina ("stanza"), joita voi käsitellä ja välittää palvelimelta toiselle.

Keskeisiä sanomatyyppejä ovat <message>, <presence> ja <iq>, joita käytetään esimerkiksi yksityisviesteihin, läsnäolon ilmoittamiseen ja kyselyihin/vastauksiin. XMPP-viestintä tukee suoraa viestinvälitystä, palvelinvälitystä ja palvelukomponenttien kautta tapahtuvaa laajennettua toimintaa.

Ominaisuuksia ja laajennettavuus

  • Federointi: eri palvelimet voivat keskustella keskenään, joten käyttäjä voi valita oman palvelimensa ja silti viestiä muiden kanssa.
  • Laajennettavuus: protokollaa laajennetaan XMPP Extension Protocol (XEP) -määrittelyillä, jotka lisäävät ominaisuuksia kuten ryhmäkeskustelut, tiedostonsiirto, läsnäolonhallinta, julkaisu-tilaus (pubsub) ja reaaliaikainen yhteistyö.
  • Turvallisuus: yhteyksiä suojataan yleensä TLS:llä (kuljetussalaus) ja käyttäjän todennus hoidetaan SASL-mekanismeilla. Päätepisteiden välinen loppuun asti -salaus toteutetaan usein OMEMOlla (XEP-0384) tai PGP-tyyppisillä ratkaisuilla.
  • Multimedia ja puhe/ääni: Jingle-laajennukset mahdollistavat VoIP- ja mediasessioiden käynnistämisen XMPP:n kautta.
  • Monialustatuki: useita asiakkaita on saatavilla työpöydälle, mobiililaitteille ja integroituna palveluihin.

Käyttötapaukset

XMPP soveltuu perinteiseen pikaviestintään ja läsnäolon seurantaan, mutta sen käyttö ulottuu myös seuraaville alueille:

  • Ryhmäkeskustelut ja tiimityö (MUC, XEP-0045)
  • Tiedostojen jakaminen ja siirto
  • Ilmoitusjärjestelmät ja push-ilmoitukset
  • IoT- ja koneiden välinen viestintä (kevyt viestinvälitys, publish/subscribe-mallit)
  • Reaaliaikaiset peli- ja sovellusprotokollat

Standardisointi ja ylläpito

XMPP:stä on muodostunut laaja standardiperhe. Perusprotokollat ja niiden päivitykset on dokumentoitu RFC-määrittelyissä sekä XMPP Standards Foundationin (XSF) ylläpitämissä XEP-asiakirjoissa. XEP:t mahdollistavat yhteentoimivuuden ja uusien ominaisuuksien yhtenäisen kuvaamisen.

Palvelimet ja asiakkaat

Kuka tahansa voi pyörittää XMPP-palvelinta, ja palvelinarkkitehtuuri tukee erillisiä komponentteja, välityspalvelimia ja laajennuksia. Asiakkaat vaihtelevat kevyistä mobiilisovelluksista täysiverisiin työpöytäohjelmiin. Tunnettuja asiakkaita ovat aiemmin mainittujen lisäksi mm. Gajim, Conversations, Dino ja Psi.

Tietoturva ja yksityisyys

Vaikka yhteyden kuljetus voidaan suojata TLS:llä, loppukäyttäjän yksityisyyden varmistamiseksi kannattaa käyttää loppuun asti -salausta (esim. OMEMO). Lisäksi on hyödyllistä tuntea palvelimen määritykset, todennusasetukset ja mahdolliset lisäpalvelut, kuten keskitetty arkistointi tai valvonta, jotka voivat vaikuttaa yksityisyyteen.

Yhteenveto

XMPP on avoin, hajautettu ja laajennettava protokolla, joka perustuu XML-rakenteisiin. Sen vahvuuksia ovat federointi, laaja ekosysteemi ja mahdollisuus lisätä uusia ominaisuuksia XEP-laajennusten kautta. XMPP:tä käytetään paitsi perinteisessä pikaviestinnässä, myös monissa reaaliaikaisen viestinnän sovelluksissa, IoT-ratkaisuissa ja multimediapalveluissa.