[go: up one dir, main page]

Extensible Messaging and Presence Protocol

Extensible Messaging and Presence Protocol (XMPP) (en vidareutveckling av Jabber[1]), betyder "utbyggbart meddelande- och närvaroprotokoll", och är en standard som ursprungligen skapades för att överföra snabbmeddelanden (chat, instant messaging) och statusinformation (presence information) som kan presenteras i chatprogrammets kontaktlista. Tillägg till protokollet har senare utvecklats för ett flertal andra realtidskommunikationstjänster. Protokollet möjliggör att oberoende XMPP-servrar fritt kan utbyta meddelanden, på liknande sätt som att e-postservrar anslutna till Internet kan utbyta information utan att vara beroende av en central server. Användarna adresseras på liknande sätt som vid e-post, baserat på serverns DNS-namn.

Officiell logo

Flera kommersiella chattjänster använder XMPP, exempelvis Google Talk och Google Wave. Chatfunktionen i det social nätverket Facebook öppnades i februari 2010 för åtkomst från tredjepartsklienter via XMPP, men har sedan 2015 avvecklats[2]. Det finns idag hundratals XMPP-chatklienter för nästan alla operativsystem, för mobila plattformar såväl som konventionella datorer. Standardserverimplementationen jabberd och många klienter är baserade på öppen källkod, exempelvis JabberIM.

Historik

redigera

XMPP-standarden utvecklades av öppen källkodsprojektet Jabber[3], som startades 1998 av Jeremie Miller, och dess första publika version släpptes i maj 2000. Projektets huvudprodukt var jabberd, som är en server med öppen källkod.

Detta tidiga Jabberprotokoll formaliserades och vidareutvecklades av IETF i standardiseringsförslaget Extensible Messaging and Presence Protocol, XMPP, publicerat år 2004 av XMPP working group [4] (bildad 2002) som RFC 3920[5], där det ursprungliga Jabberprotokollet beskrivs som "XMPP version 0.9". Senare versioner av serverprogramvaran Jabberrd utgör referensimplementation för XMPP och stödjer således XMPP fullt ut.

Jabber Inc. köptes 2008 upp av Cisco.

XMPP-protokollet

redigera

Till skillnad från de flesta snabbmeddelandeprotokoll är XMPP en öppen standard. Systemet är distribuerat, och vem som helst kan sätta upp en egen XMPP-server som kan skicka och ta emot meddelanden till användare på andra servrar, utan att vara beroende av en central server. Protokollet är XML-baserat.

Så kallade transports kan användas för att koppla ihop XMPP-system på servernivå med andra tjänster, både direktmeddelandetjänster och exempelvis SMS eller e-post. På detta sätt kan en användare med en XMPP-klient tala med till exempel en ICQ- eller Windows Live Messenger-användare.

Tillägg till protokollet

redigera

XMPP är utformat för att vara utbyggbart. Tillägg har utvecklats för tillämpningar såsom IP-telefoni (VoIP), filöverföringar, meddelandeorienterad mellanprogramvara (message-oriented middleware, MOM), gruppvara, datorspel, samt nätverksdrift och -övervakning (network management) och annan fjärrövervakning av system.

Google Waves så kallade federation protocol är ett öppet XMPP-tillägg. Det möjliggör för andra leverantörer än Google att utveckla och tillhandahålla egna kundanpassade Google wave-tjänster för realtidsgruppvara.

Exempel på meddelandeöverföring

redigera

Anta att användare1 med XMPP-adressen användare1@företag.com vill skicka ett meddelande till användare2 med adressen användare2@universitet.se. När användare1 trycker på "skicka"-knappen i sin XMPP-klient händer följande:

  1. användare1 klient skickar meddelandet till XMPP-servern på företag.com
    • Om en blockering av universitet.se finns på företag.com stoppas meddelandet.
  2. Servern företag.com öppnar en anslutning till universitet.se.
  3. XMPP-servern på universitet.se skickar meddelandet till användare2
    • Om en blockering av företag.com finns på universitet.se stoppas meddelandet.
    • Om inte användare2 är ansluten sparas meddelandet för senare leverans.
användare1 företag.com universitet.se användare2
 
Ett annat exempel, där Alice skickar ett meddelande via Jabbernätverket till ICQ-transport. Meddelandet routas sedan till Bob via ICQ-nätverket.

Klienter

redigera

Transport mellan MSN och ICQ

redigera
  • ICQ-transport
    • Lysator kör en ICQ-transport (PyICQ-t) på icq.jabber.lysator.liu.se
  • MSN-transport
    • Lysator kör en MSN-transport (PyMSNt) på msn.jabber.lysator.liu.se

Referenser

redigera

Externa länkar

redigera