XMPP (Extensible Messaging and Presence Protocol)
XMPP is an XML streaming protocol for presence and messaging routing. Recently ratified as an IETF standard, XMPP serves as the basis for the Jabber instant-messaging system and provides a secure but easily programmed language for linking diverse networks.
The core of XMPP routing is an internationalized logical addressing scheme that is best represented as node@domain/resource. In the Jabber IM system this scheme is referred to as the Jabber ID (JID). The domain portion can be looked up in the DNS, similarly to an e-mail address. As in Simple Mail Transfer Protocol, servers (the domain portion of an SMTP address) connect with one another on behalf of users (the node portion of an SMTP address). In XMPP, the node portion can denote an IM user, an application or a service. The resource portion is a connection identifier that lets a single user be logged on multiple times simultaneously.
When nodes connect to a server, they authenticate using credentials from the local directory system, specify a resource and tell to the server to announce their presence to subscribers (for example, the buddies on one user's roster). Servers find, connect and authenticate to one another, letting any node connected to the community talk to any other node regardless of their home server (domain), as long as no privacy or business rules are violated.
Each XMPP stanza is a chunk of XML structured data that is addressed to a JID. Each stanza type can be extended with any properly name-spaced XML structured data. The Jabber Software Foundation (JSF) acts as a standards body for these extensions, much like the World Wide Web Consortium standardizes Web formats. But any organization or set of trading partners also can decide on de facto formats as needed.
From XMPP transports presence data, Network World Tech Update, 03/08/04.
Additional resources
Latest XMPP specifications and drafts
IETF XMPP working group
Add a comment