Extensible Messaging and Presence Protocol (XMPP) (precedentemente noto come Jabber[1]) è un insieme di protocolliaperti di messaggistica istantanea e presenza basato su XML. Il software basato su XMPP è diffuso su migliaia di server disseminati su Internet; secondo la XMPP Standards Foundation (precedentemente nota come Jabber Software Foundation), già nel 2003 era usato da circa dieci milioni di persone in tutto il mondo.[2]
Jeremie Miller iniziò il progetto nel 1998; il suo primo rilascio pubblico principale avvenne nel marzo 2000. Il prodotto principale del progetto è jabberd, un server al quale i client XMPP si connettono per rendere possibile la conversazione. Questo server può creare una rete XMPP privata (dietro a un firewall, ad esempio), o può far parte di una rete XMPP globale e pubblica. Le caratteristiche principali di XMPP sono la natura distribuita del sistema di messaggistica e l'uso dello streaming XML.
A differenza dei client multiprotocollo come Trillian o Pidgin, XMPP fornisce questo accesso a livello di server, comunicando per mezzo di servizi speciali gateway che girano su un computer remoto.
Ogni utente XMPP può registrarsi con uno di questi gateway fornendo le informazioni necessarie per accedere alla specifica rete, potendo quindi comunicare con utenti di quella rete come se fossero utenti XMPP. Questo significa che qualsiasi client che supporta il protocollo XMPP può essere usato per accedere a una qualsiasi rete per la quale esista un gateway, senza il bisogno di programmare il supporto al protocollo della nuova rete nel client.
Punti di forza
Sistema decentralizzato
L'architettura di XMPP è simile alle email; chiunque può realizzare il proprio server XMPP e non si identificano server centrali.
Standard aperto
L'Internet Engineering Task Force ha formalizzato XMPP come tecnologia approvata per la messaggistica istantanea (definito negli RFC 6120 e RFC 6121). Non sono previste royalty per l'implementazione di queste specifiche.
Diffusione
Le tecnologie XMPP sono utilizzate dal 1999. Esistono molte implementazioni dello standard XMPP per client, server e sono stati realizzati molti componenti e librerie.
Sicurezza
I server XMPP possono essere isolati dalla rete pubblica, e la sicurezza viene affidata a protocolli come SASL e TLS.
I dati binari da trasferire devono essere codificati con base64 prima di essere trasmessi. La soluzione migliore è eseguire il trasferimento di questi dati (specie se in grande quantità come nel caso in cui vengano trasmessi dei file) in modalità out-of-band, usando l'in-band come metodo di coordinazione.
Protocolli XMPP
Esempio di connessione ad altri protocolli
I protocolli cosiddetti di base sono stati adottati dall'IETF con il nome di XMPP e coprono:
RFC 3920: Il cuore del protocollo XMPP di streaming dell'XML, sicurezza e internazionalizzazione
RFC 3921: estensioni base di presenza come liste di contatti, sottoscrizioni e whitelisting/blacklisting
Con lo stesso termine si designa anche il gruppo di lavoro relativo all'interno dell'organizzazione.
Gli altri protocolli XMPP non ancora adottati da IETF e in parte ancora in evoluzione sono chiamati XMPP Extension Protocols o XEP (in passato: JEP) e coprono numerosi aspetti, tra cui anche il Voice over IP.