XMPP

From Organic Design
Revision as of 04:53, 8 July 2009 by Nad (talk | contribs) (See also: XMPP is better with BOSH)
Jump to: navigation, search

Extensible Messaging and Presence Protocol (XMPP) is an open, XML-based protocol originally aimed at near-real-time, extensible instant messaging (IM) and presence information (e.g., buddy lists), but now expanded into the broader realm of message oriented middleware. It remains the core protocol of the Jabber Instant Messaging and Presence technology. Built to be extensible, the protocol has been extended with features such as VOIP and file transfer signaling.

Unlike most instant messaging protocols, XMPP is an open standard. Like e-mail, it is an open system where anyone who has a domain name and a suitable Internet connection can run his own Jabber server and talk to users on other servers. The standard server implementations and many clients are also free and open source software.

The Internet Engineering Task Force (IETF) formed an XMPP Working Group in 2002 to formalize the core protocols as an IETF instant messaging and presence technology. The XMPP WG produced four specifications which were approved by the IESG as Proposed Standards in 2004. RFC 3920 and RFC 3921 are now undergoing revisions in preparation for advancing them to Draft Standard within the Internet Standards Process. The XMPP Standards Foundation (formerly the Jabber Software Foundation) is active in developing open XMPP extensions. However, no technology correctly implements the RFCs in full.

XMPP-based software is deployed on thousands of servers across the Internet and by 2003 was used by over ten million people worldwide, according to the XMPP Standards Foundation. Popular commercial servers include the Gizmo Project, Nimbuzz and Google Talk. Popular client applications include the freeware clients offered by Google, Nimbuzz and the Gizmo Project, multi-protocol instant messengers such as iChat and Pidgin (formerly Gaim), and free dedicated clients such as Psi and Gajim. Google Talk provides XMPP gateways to its service. Google Wave's federation protocol (GWFP) is an open extension to the XMPP protocol.

Interesting XMPP extensions supported by jabberd2

Extensions we'd like to develop

  • Workflow: define processes and sequences, both human and computer (adding current work tree to contexts)
  • Schedule: this may already be done: adding a "booking" aspect to contexts
  • P2P: A peer-to-peer storage layer
  • Objects: this is basically RA: types & instances with search, create, view, edit contexts
  • Nodes: nodal model's class/instance structure incorporating workflow, axes, install/remove

XMPP & JavaScript

Strophe is a beautiful library for building XMPP applications in JavaScript. It has a lot of nice features to help you build stanzas and respond to various event stanzas. It is built on top of the DOM, and unfortunately, the DOM is not always fun to work with. Luckily, we have an excellent DOM slicer and dicer that we can use alongside Strophe, the jQuery library.

See also

MetaJack - XMPP related blog

<rss number=15 text>http://feeds.feedburner.com/metajack</rss>