リアルタイムインターネットの基盤技術として注目されているXMPPの本邦初の解説書。XMPPの標準化プロセスに直接かかわっている3人の専門家が、XMPP関連の巨大な仕様群を俯瞰しながら、重要な概念を中心に詳しく解説します。本書を読めば、231編の仕様書すべてに目を通さなくても、IMからテレビ電話までリアルタイムアプリケーションにおいてユーザーが日常的に行う操作をどのように実装すればよいか容易に理解できるでしょう。日本語版では、XMPPを含むセッション制御プロトコルの国際標準化に取り組むNTTの越湖淳氏にXMPPの最新動向について寄稿いただきました。
マスタリングXMPP
Peter Saint-Andre、Kevin Smith、Remko Troncon 著、牧野 聡 訳
- TOPICS
- System/Network
- 発行年月日
- 2010年04月
- PRINT LENGTH
- 324
- ISBN
- 978-4-87311-447-7
- 原書
- XMPP: The Definitive Guide
- FORMAT
目次
目次 はじめに I部 XMPPの概要 1章 イントロダクション 1.1 XMPPにできること 1.1.1 サービス 1.1.2 アプリケーション 1.2 XMPPの歴史 1.3 オープンソースとオープンな標準 1.4 拡張性 1.5 まとめ 2章 XMPPの基礎 2.1 アーキテクチャ 2.2 アドレス 2.2.1 ドメイン 2.2.2 ユーザー 2.2.3 リソース 2.2.4 国際化 2.2.5 XMPPのURI 2.3 XMLのストリーミング 2.4 コミュニケーションの基礎となる要素 2.4.1 messageスタンザ 2.4.2 presenceスタンザ 2.4.3 IQスタンザ 2.4.4 拡張性 2.4.5 非同期通信 2.4.6 エラー処理 2.5 簡単な XMPPアプリケーション(オウム返し) 2.6 まとめ II部 XMPPの基本的な機能 3章プレゼンス 3.1 「みなさん、オンラインですか?」 3.2 まず認証しましょう(サブスクリプションのためのハンドシェイク) 3.3 プレゼンス情報の伝達 3.4 プレゼンスの状態 3.5 プレゼンスの優先順位 3.6 あて先の指定 3.7 オフライン状態への移行 3.8 リッチプレゼンス 3.9 プレゼンスと連絡先リスト 3.10 プレゼンスの利用例 3.10.1 プレゼンスに基づくルーティング 3.10.2 アクセス制御 3.10.3 通信路としてのプレゼンス 3.11 まとめ 4章インスタントメッセージング 4.1 我思う、ゆえに我 IMす( I Think, Therefore IM) 4.2 チャットのセッション 4.3 状態の通知 4.4 メッセージの装飾 4.5 vCard 4.6 通信の遮断とフィルタリング 4.6.1 シンプルなアプローチ(通信の遮断) 4.6.2 より高度なフィルタリング 4.7 メッセージに関するその他の拡張仕様 4.8 まとめ 5章サービスの発見 5.1 itemsとinfo 5.2 サーバやサービスに対する発見 5.3 クライアントに対する発見 5.3.1 自発的な発見 5.3.2 Entity Capabilities(サービスの効率的な発見) 5.4 まとめ 6章フォーム 6.1 基本的な構成要素 6.2 フォームの利用法 6.3 フォームの定義( FORM_TYPE) 6.4 フォームとマルチメディアデータ 6.5 まとめ 7章多者間でのインタラクション 7.1 「パーティの始まりです」 7.2 グループチャットの基本 7.3 参加者に対する制限 7.4 ニックネームとは 7.5 チャットルームの設定 7.6 プライバシやセキュリティなど 7.7 通信路としての MUC 7.8 まとめ 8章パブリッシュ/サブスクライブ 8.1 パブリッシュ/サブスクライブとポーリング 8.2 PubSubの概要 8.3 サブスクリプション 8.4 パブリッシュと通知 8.5 ペイロード(送信すべきか、せざるべきか) 8.6 通知内容(蓄積すべきか、せざるべきか) 8.7 ノードの発見 8.8 ノードの管理 8.8.1 ノードの作成と削除 8.8.2 ノードの設定 8.8.3 ノードへのアクセス制御 8.8.4 collectionノードによるアグリゲーション 8.9 Personal Eventing Protocol(シンプルな PubSub) 8.10 まとめ 9章 Jingle(Jabberとマルチメディア) 9.1 インスタントメッセージングを超えて 9.2 Jingleのモデル 9.3 音声チャットの開始 9.4 NATだらけのネットワーク 9.5 JingleとICE 9.6 その他のメッセージ 9.7 まとめ 10章バイナリデータの送受信 10.1 まずは小さなバイナリデータから 10.2 中くらいのファイル(メッセージへの埋め込み) 10.3 大きなファイルは別送で 10.3.1 直接送信 10.3.2 プロキシを経由した送信 10.4 送信方法の交渉 10.4.1 Stream Initiationプロトコルを使った交渉 10.4.2 Jingleを使った交渉 10.5 まとめ 11章コマンドの遠隔実行 11.1 クライアントの制御 11.1.1 シンプルなコマンド 11.1.2 コマンドとフォーム 11.2 独自のコマンド 11.3 高度なワークフロー( SOAP、RPC、IO Data) 11.4 まとめ 12章接続方式とセキュリティ 12.1 XMLストリームを開くための交渉 12.2 認証方式 12.3 接続の暗号化 12.4 サーバ間の接続(フェデレーション) 12.5 サーバコンポーネント 12.6 BOSH(HTTP上の XMPP) 12.7 サーバを経由しないメッセージ交換 12.8 XMPPのセキュリティ 12.8.1 暗号化 12.8.2 認証と識別 12.8.3 スパムと乱用 12.9 まとめ III部 XMPPアプリケーションの構築 13章 設計時の注意事項 13.1 そもそも XMPPを利用すべきなのか 13.2 XMPPの開発者コミュニティ 13.3 XMPPソフトウェアの開発とは 13.3.1 既存の XMPPソフトウェアの発見、組み合わせ、そして拡張 13.3.2 クライアントの拡張、ボット、サーバコンポーネントそしてモジュール 13.3.3 クライアントやサーバの独自開発 13.4 XMPPへの拡張仕様の定義 13.4.1 拡張の設計 13.4.2 拡張の標準化 13.5 まとめ 14章アプリケーションの実例 14.1 ミニブログプラットフォーム ChesiR 14.2 ステップ 1:IMボット 14.2.1 分析 14.2.2 設計 14.2.3 コード 14.3 ステップ 2:設定可能な IMボット 14.3.1 分析 14.3.2 設計 14.3.3 コード 14.4 ステップ 3:サーバコンポーネントによるスケーラビリティの向上 14.4.1 分析 14.4.2 設計 14.4.3 コード 14.5 ステップ 4:サーバコンポーネントを使ったユーザー登録 14.5.1 分析 14.5.2 設計 14.5.3 コード 14.6 ステップ 5:CheshiR専用の連絡先の追加 14.6.1 分析 14.6.2 設計 14.6.3 コード 14.7 さらなるステップ 14.8 汎用のサーバコンポーネントか、専用のモジュールか 14.9 終わりに IV部 付録 付録 A XMPP関連の仕様群 A.1 XMPP関連の RFC A.2 XEP A.3 ジョーク XEP A.4 互換性検証スイート 付録 B主なサーバ、クライアント、ライブラリ B.1 サーバ B.2 クライアント B.2.1 クロスプラットフォーム( Linux、Mac OS X、Windows) B.2.2 Linux B.2.3 Mac OS X B.2.4 Windows B.2.5 Webブラウザ B.3 ライブラリ B.3.1 ActionScript B.3.2 C B.3.3 C++ B.3.4 C# B.3.5 Flash B.3.6 Java B.3.7 JavaScript B.3.8 Perl B.3.9 PHP B.3.10 Python B.3.11 Ruby 付録 Cアプリケーション開発のヒント C.1 初めにすべきこと C.2 デバッグツール C.3 ネットワークの設定 付録D XMPPの最新動向 D.1 XMPPの国際標準化動向 D.1.1 IETF D.1.2 XSF D.2 各社の対応 D.2.1 Cisco Systems社 D.2.2 Google社 D.3 XMPPを利用したサービス D.3.1 IM/プレゼンスサービス D.3.2 Google Wave D.4 XMPPの特徴( SIP/SIMPLEとの比較) D.5 今後の展望 用語集 参考資料 索引