2000年前後から、Yahoo! Messenger, Microsoft LiveやAOL AIMといったメッセンジャーアプリが登場し、多くのユーザーに使われてきましたが、それらはそれぞれ独自の仕様に従って作られていました。
そのようなインスタントメッセンジャーに要求される仕様を標準化するために登場したのがJabberです。Jabberは名前をXMPP(Extensible Messaging And Presence Protocol:拡張可能なメッセージとプレゼンスのプロトコル)と変えて2004年にRFCになりました。なのでJabber/XMPPのように併記されることも多いですし、クライアントアプリケーションによっては、設定項目などで、現在でもJabberの名前が使われている場合もあります。
XMPPに名前が変更となりRFCに登録される際に、単純にインスタントメッセンジャーのための一つの仕様とされていたものから、2つの仕様に分離しました。
その2つとは、永続コネクション上でのメッセージとプレゼンスを扱うためのコア機能の仕様(RFC3920)と、そのコア機能の上でインスタントメッセージングを実現するための仕様(RFC3921)になります。
2011年3月に仕様がアップデートされて、RFC6120, RFC6121になっていますので、これから仕様について調査をしたい方は、そちらの方を参照するとよいでしょう。
Jabber/XMPPの出現以降は、Google TalkやFacebookチャットをはじめとして、メッセンジャー系のアプリケーションで積極的に採用されるようになってきています。
Microsoft Liveも上記の通り独自プロトコルでしたが、2011年12月にXMPPに変更されました。
様々な拡張機能の仕様が定義されていて、それらはXEP(XMPP Extension Protocol)と呼ばれています(Jabber時代はJEPと呼ばれていました)。
その中には、例えばグループチャットのための仕様やオーディオ、ビデオチャットのための仕様などもあります。
次は、XMPPプロトコルでどのようなサービスを提供できるのかを見てみましょう。