XMPP
読み方:エックスエムピーピー
XMPPとは、インスタントメッセージソフトなどに使われるXMLベースのオープンソース・プロトコルである。2004年に、IETF(Internet Engineering Task Force)でIMPP(Instant Messaging and Presence Protocol)の標準案に選ばれた。
Jabber社が開発したインスタントメッセージソフト「Jabber」のプロトコルを、セキュリティ機能などを追加して改良したものである。具体的な機能としては、インスタントメッセージソフトで必要不可欠となるメッセージの送受信や、プレゼンス状態の通知などを受け持っている。
XMPPは柔軟性や拡張性が高いのが特徴であり、JabberやGoogle Talkなどのインスタントメッセージソフトで採用されている。
Extensible Messaging and Presence Protocol
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/11/20 08:12 UTC 版)
TCP/IP群 |
---|
アプリケーション層 |
|
トランスポート層 |
カテゴリ |
インターネット層 |
カテゴリ |
リンク層 |
カテゴリ |
Extensible Messaging and Presence Protocol (XMPP) (旧称 Jabber[1])は、オープンソースのインスタントメッセンジャーのプロトコルおよび、クライアント、サーバの総称である。
特徴
Jabber は Jabber 社が開発した XML ベースのプロトコルである XMPP を採用している。他のメジャーなインスタントメッセンジャーはその仕様もプロトコルも非公開となっているのが普通だが、Jabber はサーバもクライアントもオープンソースであり、その仕様は全て公開されている(オープン標準)。そのため、たとえばメールサーバと同じように、ドメイン名とサーバさえあれば自分専用の XMPP サーバを立ち上げることができる。この点でほかのインスタントメッセージと異なる。
他のインスタントメッセージングサービスのゲートウェイとなる機能も持つ。この機能を利用し、Jabber クライアントから AOL Instant Messenger、MSN Messenger(.NET Messenger Service)、Yahoo!メッセンジャー、IRC、ICQ などのネットワークにメッセージを送ることができる。ただしサービスを提供しているサーバによっては、日本語が通らないこともある。
Google Talk は、Jabber を核にしたものである。
歴史
ジェリミー・ミラーは1998年に Jabber テクノロジーに取り組み始め、1999年1月4日に jabberd の最初のバージョンをリリースした[2]。初期の Jabber コミュニティはオープンソースソフトウェアに焦点を当てており、主に jabberd の開発をしていた(2000年5月にバージョン1.0、2000年10月にバージョン1.2、2001年2月にバージョン1.4を発表)が、一番の成果は XMPP プロトコルを作ったことである。
1999年から2000年に開発された初期の Jabber プロトコルは XMPP の基礎となり、XMPP は RFC 3920 と RFC 3921 として公表されている。(IETF の XMPP Working Group による規格化の際に主に変わった部分は、伝送路の暗号化用に TLS の追加と認証用に SASL が追加されたところである。)XMPPはよく SIMPLE (インスタントメッセージングプロトコル) の競合相手とみなされる。SIMPLE は Session Initiation Protocol (SIP) プロトコルを基礎とする、インスタントメッセージングとプレゼンス通知の標準プロトコルである[3][4]。
XMPP をベースにした最初の IM サービスは Jabber.org であり、1999年以降連続稼動していて XMPP のアカウントをフリーで提供している[5]。1999年から2006年2月まではサービスに jabberd を使用していたが、それ以降は ejabberd に移行した。(どちらもフリーソフトウェアのサーバアプリケーションである。)2010年1月には Isode Ltd. によるプロプライエタリの M-Link へ移行する予定である[6]。
2005年8月に Google は Google Talk を発表した。これは VoIP と IM システムをあわせ持ち、インスタントメッセージングの機能に XMPP を使用していて、音声とファイル転送のシグナリングプロトコルのベースに XMPP を使用している。(最初のリリースにはサーバ間通信は含まれていなかったが、2006年1月17日にこの機能は有効になった。)[7]
2008年9月にシスコシステムズは Jabber, Inc. と商用プロダクトである Jabber XCP の開発者を買収した[8]。
2010年2月、ソーシャルネットワーキングサイトの Facebook は XMPP を通してチャット機能をサードパーティのアプリに開放した[9]。Facebook の開発者のサイトでは、次のように注意を呼びかけている。Facebook のチャットは内部で実際に XMPP サーバを稼働させているわけではなく、単にクライアントに XMPP のインターフェースを提供しているだけである。したがって、ユーザリストの編集など、サーバサイドの機能は XMPP 経由ではできないことがある[10]。
Google Talk だけでなく、多くの公共 IM サービスが XMPP を採用しており、Live Journal の LJ Talk[11] や Nokia の Ovi[12] などがそうである。さらに、企業の IM ソフトウェアプロダクトには、ネイティヴでは XMPP を使用できなくても XMPP へのゲートウェイを含むものがある。例えば、IBM Lotus Sametime[13][14]やMicrosoft Office Communications Server (OCS)[15]などである。
長所
この節には独自研究が含まれているおそれがあります。 |
- 中央サーバを持たない : XMPP ネットワークの構造は電子メールに似ており、誰でも自分の XMPP サーバを立てることができるので、中央サーバが存在しない。
- オープン標準 : XMPP はインスタントメッセージングサービスとプレゼンス技術として XMPP という名前で IETF により承認された。XMPP の仕様は RFC 3920 と RFC 3921 として公表されている。これらを実装するのにロイヤルティーは一切かからず、特定のベンダーに縛られることがない。
- 歴史 : XMPP は1998年から利用されている。XMPP 標準のクライアント、サーバ、コンポーネント、ライブラリの実装は数多くあり、サン・マイクロシステムズや Google などの大きな企業に支えられている。
- セキュリティ : XMPP サーバは公共の XMPP ネットワークから切り離してもよく(例えば、会社でのイントラネットなど)、強固なセキュリティ(SASL や TLS を使用)が XMPP のコアに組み込まれている。伝送路の暗号化を促進するために、2009年10月30日まではXMPP Standards Foundationはxmpp.netに中間認証局の設置も行っており、XMPP サーバの管理者にフリーのデジタル証明書を提供していた。また、PGPによるエンドツーエンドの暗号化にも対応している。
- 柔軟性 : XMPP に加えてカスタムの機能を実装できる。相互運用性を保つために、一般的な拡張は XMPP Software Foundation により管理されている。IM 以上の機能を持つ XMPP アプリケーションとして、ネットワークマネージメント、コンテンツ配信、グループウェア、ファイル共有、ゲーム、リモートシステムの監視などがある。
短所
この節には独自研究が含まれているおそれがあります。 |
- プレゼンスデータのオーバーヘッド : 一般にサーバ間通信の70パーセントがプレゼンスデータで[16]、そのうちの60パーセント近くが冗長であるので[17]、現在 XMPP はプレゼンスデータを複数のレシピエントへ転送する際に大きなオーバーヘッドがある。この問題を緩和する新しいプロトコルが考えられている[要出典]。
- インバンドによるバイナリデータの転送は非効率 : XMPP は単一の長い XML ドキュメントとして符号化されるので、バイナリデータはインバンドで転送する前にまず Base64 でエンコードしなければならない。このため巨大なバイナリデータ(例えば、ファイル転送など)はアウトオブバンドで転送するのがもっとも良く、インバンドによる通信は制御用に用いる。最も良い例は XMPP の拡張プロトコルであるJingle(XEP-0166)である。
サーバの分散とアドレッシング
XMPP ネットワークはクライアントサーバアーキテクチャを採用している(クライアントは直接通信しない)が、中央サーバを持たない。権威ある中央サーバが存在しないように設計されており、これはAOL Instant Messenger や Windows Live メッセンジャーとは対照的である。jabber.org で動作している公共の XMPP サーバが存在しており、ここに多くのユーザが登録されているので、この点などでよく混乱されるが、誰でも自分のドメインで自分の XMPP サーバを立てることができる。XMPP の標準のTCP ポートは5222である。
ネットワーク上のすべてのユーザはユニークな Jabber ID(よく省略され JID と呼ばれる)を持つ。ID のリストを持つ中央サーバを不要にするため、JID はメールアドレスのような構造を持っている。ユーザ名と、ユーザの存在するサーバのあるドメイン名があり、アットマーク(@)で仕切られる。例えば、username@example.com のようになる。
ひとりのユーザは複数の場所からログインするかも知れないので、クライアントでは更に追加でストリングを指定する。例えば、home、work、mobile など。このリソースで、ユーザのどのクライアントなのかを特定する。そしてこのリソースは、JID のあとにスラッシュに続けてリソース名を指定することで JID に含めることができる。リソースには優先度という数値を指定しても良い。例えば、あるユーザのモバイルアカウントの完全な JID は、username@example.com/mobile である。単に username@example.com に対して送られたメッセージはもっとも優先度の高いクライアントへ行くが、username@example.com/mobile に対して送られたものはモバイルクライアントのみへ行く。
メッセージ転送の仕組み
juliet@capulet.com が romeo@montague.net へチャットをしたいとする。Juliet と Romeo はそれぞれ capulet.com と montague.net にアカウントを持っている。Juliet がタイプしてメッセージを送ると、一連のイベントが以下のように続く。
- Juliet のクライアントがメッセージを capulet.com のサーバへ送る。
- capulet.com で montague.net がブロックされていると、メッセージは破棄される。
- capulet.comの サーバは montague.net へ向けてコネクションを張る。
- montague.net で capulet.com がブロックされていると、メッセージは破棄される。
- このとき Romeo が接続していなかったら、メッセージは後で送るために保存される。
- montague.net のサーバは Romeo にメッセージを送る。
Juliet | → | capulet.com | → | montague.net | → | Romeo |
他のプロトコルへの接続
XMPP の他の便利な特徴はトランスポートである。ゲートウェイという名前でも知られていて、他のプロトコルを使うネットワークにアクセスすることが可能になる。インスタントメッセージングのプロトコルだけでなく、SMS や電子メールなどのプロトコルでも可能である。マルチプロトコル対応のクライアントと違って、リモートコンピュータで動作する特別なゲートウェイサービスを通して通信することで、サーバレベルでアクセス出来るようにしている。ユーザは、これらのゲートウェイのひとつにネットワークのログインに必要な情報を提供して「登録」する。すると、そのユーザは、XMPP のユーザと同じようにそのネットワークのユーザと通信できる。つまり、XMPP を完全にサポートしたクライアントであれば、ゲートウェイが存在するどんなネットワークのアクセスにも使えるということである。クライアントに一切コードを追加する必要がなく、クライアントが直接インターネットに接続できる必要もない。こういった機能は、使っているプロトコルの利用規約に違反する可能性があるが、国によって何カ国かでは、そのような利用規約は法的拘束力を持たない。
関連項目
脚注
- ^ Jabber Inc. - About Us
- ^ Open Real Time Messaging System
- ^ "XMPP rises to face SIMPLE standard", Infoworld magazine, April 17, 2003 XMPP rises to face SIMPLE standard
- ^ "XMPP vs SIMPLE: The race for messaging standards", Infoworld magazine, May 23, 2003 Infoworld.com
- ^ Chatting Up the Chef Linux Journal March 1, 2003 by Marcel Gagné
- ^ “Jabber.org - XMPP Server Migration” (2009年8月12日). 2009年12月14日閲覧。
- ^ Burd, Gary (2006年1月17日). “XMPP Federation”. 2007年11月30日閲覧。
- ^ “Cisco Announces Definitive Agreement to Acquire Jabber”. 2010年1月2日閲覧。
- ^ “Facebook Chat Now Available Everywhere”. 2010年2月11日閲覧。
- ^ “Integrating with Facebook Chat”. 2010年2月21日閲覧。
- ^ Question FAQ #270
- ^ Ovi Contacts
- ^ "Lotus Sametime 7.5 Interoperates with AIM, Google Talk", eWeek, December 6, 2006 Eweek.com
- ^ "Lotus ships gateway to integrate IM with AOL, Yahoo, Google", Network World, December 6, 2006 Networkworld.com
- ^ "Unified Communications: Uniting Communication Across Different Networks", Microsoft Press Release, October 1, 2009 Microsoft.com
- ^ [Standards-JIG] Distribution of stanza types
- ^ [Standards-JIG] proto-JEP: Smart Presence Distribution
外部リンク
- RFC 3920 - Extensible Messaging and Presence Protocol (XMPP): Core
- RFC 3921 - Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence
- RFC 3922 - Mapping the Extensible Messaging and Presence Protocol (XMPP) to Common Presence and Instant Messaging (CPIM)
- RFC 3923 - End-to-End Signing and Object Encryption for the Extensible Messaging and Presence Protocol (XMPP)
- XMPP Standards Foundation
- Jabber User Guide - End user introduction to XMPP (archive)
- XMPP Case Studies
- Jabber.org (Free XMPP server of the XSF
- XMPP.JP
「Extensible Messaging and Presence Protocol」の例文・使い方・用例・文例
- 私はまず、この点をAmandaに確認します。
- 11月21日にHolyoke Bar and Grillで、Pete Laurenの退職パーティーが開かれることをお知らせします。11 月10 日までにお返事をください。
- 来月のロンドンへの出張のために、飛行機の便を予約して、Southland銀行の近くの宿泊施設を手配してもらえますか。
- 年次監査を行うために、Bradford and Partnersの会計士たちが10 月10 日の午前10 時に当社を訪ねてくる予定です。
- 一般に公開されたことのない、Ruth and Steve Whitmanの個人コレクションの絵画を含む、およそ120 点の作品が展示される。
- Ruth and Steve Whitmanを紹介すること。
- Conteeさんは、昨年Hope and Learnの会長に就任された、受賞歴のあるミュージカル女優さんです。
- Hope and Learnは遠隔地に学校を建設する資金を集める慈善団体です。
- Hope and Learnへの寄付は、この夜会の最後に集めます。
- 気をつけの姿勢で立つ (⇔stand at ease).
- 等位[対等]接続詞 《対等の語句を接続する and, but など》.
- 等位接続詞 《and, but, or, for など; ⇔subordinate conjunction》.
- 連結接続詞 《and など》.
- 【文法】 相関接続詞 《both…and; either…or など》.
- 蒸留酒, 火酒 《brandy, gin, rum, whiskey など》.
- 英国陸軍士官学校 《Berkshire の Sandhurst /sndhɚːst|‐həːst/ にある》.
- (英国の)運輸省. the Ministry of Education(, Science and Culture) (日本の)文部省.
- 中央裁判所施設 《London の Strand 街にある高等法院の建物》.
- 弱形 《and の /ən/など》.
- 《主に米国で用いられる》 = 《主に英国で用いられる》 the Committee of Ways and Means 歳入委員会.
固有名詞の分類
オープンソース | Matplotlib Gnuplot Extensible Messaging and Presence Protocol Emacs CUBRID |
インスタントメッセンジャー | AMSN Adium Extensible Messaging and Presence Protocol Zimbra MSN Web Messenger |
- Extensible Messaging and Presence Protocolのページへのリンク