RFC 3920 and RFC 3921
Defined by the IETF as RFC 3920 and RFC 3921
Like email servers, xmpp servers will route and send messages to other servers.
<message from='juliet@example.com'
to='romeo@example.net'
xml:lang='en'>
<body>Art thou not Romeo, and a Montague?</body>
</message>
Not Just Chat
Any xml payload
Not away messages
<iq from='juliet@example.com/balcony' type='get' id='roster_1'>
<query xmlns='jabber:iq:roster'/>
</iq>
Google uses xmpp to power GTalk.
Twitters sports IM integration on their server which allows users to post to their twitter feed via XMPP messages, but to also receive notification when changes occur to their tweets list.
Tivo has begun to use xmpp to send updates to television schedules to it's set-top boxes.
Similar to twitter jaiku users can update their streams via xmpp.
Store relationships between clients
Directional arcs between nodes
<iq to='juliet@example.com/balcony' type='result' id='roster_1'>
<query xmlns='jabber:iq:roster'>
<item jid='romeo@example.net'
name='Romeo'
subscription='both'>
<group>Friends</group>
</item>
<item jid='mercutio@example.org'
name='Mercutio'
subscription='from'>
<group>Friends</group>
</item>
<item jid='benvolio@example.org'
name='Benvolio'
subscription='both'>
<group>Friends</group>
</item>
</query>
Groups / Communities
Vcard / User Profile
Rich api
Publish Subscribe - a multi-client push model
Push > Poll
if user.status == "online":
send(message)
else:
wait(10)
anywhere anytime