XMPPとは何? わかりやすく解説 Weblio辞書 (original) (raw)
公式ロゴ
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]などである。
長所
![]() |
この節には独自研究が含まれているおそれがあります。 問題箇所を検証し出典を追加して、記事の改善にご協力ください。議論はノートを参照してください。(2023年11月) |
---|
- 中央サーバを持たない : 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 アプリケーションとして、ネットワークマネージメント、コンテンツ配信、グループウェア、ファイル共有、ゲーム、リモートシステムの監視などがある。
短所
![]() |
この節には独自研究が含まれているおそれがあります。 問題箇所を検証し出典を追加して、記事の改善にご協力ください。議論はノートを参照してください。(2023年11月) |
---|
- プレゼンスデータのオーバーヘッド : 一般にサーバ間通信の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 |
---|
他のプロトコルへの接続
Alice は XMPP ネットワークを通して ICQ トランスポートにメッセージを送る。次にメッセージは ICQ ネットワークを通じて Bob へ送られる。
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
表話編歴インスタントメッセージ | |
---|---|
プロトコル | 公開 DDP IMPP IRC Matrix MTProto Signalプロトコル SIP MSRP SIMPLE Tox RetroShare XMPP Jingle WFP Zephyr 非公開 MSNP OSCARTOC Skype |
サービス | Band BBM Chatwork DingTalk Discord Google ハングアウト Google Meet GroupMe Hike Messenger HipChat ICQ iGap iMessage IRC Networks Jongla KakaoTalk Kik Libon LINE Marco Polo Mattermost Messenger Messages Palringo QQ Signal Skype Slack Snapchat SNOW Tango Telegram Textfree The Palace Threema Tox Trillian Viber Virtual Places Chat WeChat WhatsApp Wickr Windows Messenger service Zoom Zulip |
クライアント | 単一プロトコル Baidu Hi BBM Element FaceTime Gadu-Gadu GroupMe HCL Sametime ICQ Jami Messenger Signal Skype Telegram Tencent QQ Tox WeChat WhatsApp Allo CSipSimple Fetion IMVU Jongla Linphone Palringo RetroShare Ricochet Wickr Wire マルチプロトコル Adium Ayttm BitlBee Centericq eBuddy Empathy Fire Instantbird Jitsi Telepathy Kopete メッセージ Miranda IM Pidgin Finch Skype for Business Trillian QIP 2010 Upptalk XMPP Bombus ChatSecure Conversations Gajim Nimbuzz Psi Tkabber Spark Messengerサービス aMSN Microsoft Teams Skype |
消滅 | 消滅したインスタントメッセンジャーの一覧(英語版) |
関連種目 | チャットボット(人工無脳) ファイル共有ソフト Voice over IP Webカメラ ビデオ会議 テレビ電話 顔文字 モバイルインスタントメッセージング(英語版) ステータスメッセージ(英語版) バディプロフィール(英語版) コンタクトリスト インスタントメッセージサービスセンター(英語版) インスタントメッセージングマネージャー(英語版) プレゼンス情報 IMボット(英語版) バックチャンネル(英語版) SMS言語(英語版) |