2011年2月22日

XMPP: The Definitive Guide

OReilly から出版されている XMPP: The Definitive Guide を読みました。 各章ごとのサマリは ここ に置きました。

大学生 (コンピュータサイエンス専攻) の頃に、何かの講義で先生から次のようなことを言われました。 (細かい言い回しは失念)

君たちもいろいろ勉強していくと思うけど、最終的には「コンパイラ」「OS」「ネットワーク」のどれかにおさまるよ。

当時は「そうですか...」くらいな感じで右から左へ聞き流す感じでしたが、 何故か覚えており、最近になって考え直してみるとだいたい合ってるような気もします。

ということで、本書は「ネットワーク」に関する書籍です。 プログラミング言語の構文や OS のプロセス管理などは登場しませんが、頻繁に更新されるソーシャルネットワーキングサイトや 分散環境におけるサーバ同士の通信を設計する場合には参考になるかもしれません。 とはいえご多分に漏れず「本書を読めばバッチリ」という代物でもありませんので、選択肢のひとつとして持っておくくらいのイメージが良さそうです。

ざっくり

XMPP のノード同士におけるデータ交換に関して網羅的に記述されています。 不思議の国のアリスを題材とした具体的な XML が多数例示されていて、どの XEP (XMPP Extension Protocol) が対応するかもポイントしてくれます。 データの雰囲気や用途を知りたい場合はこの本を、より詳しいデータ構造を知りたい場合は XEP を読めば良いはずです。

書籍全体を通して多数の XML が登場しますので、XML の名前空間に関する知識は必須と言えます。 一方で、プロトコルに関する書籍であるために、特定のプログラミング言語に関する知識は必要ありません (とはいえ、何らかのプログラミング経験がないとデータ構造を見ても何も得られないと思いますが)。 最終章でアプリケーションを作ってみる部分では Python を使いますが、ここは読んでも読まなくても好き好きになるでしょう。

XSF の中の人たちが書いていますので、Jabber からの過去の経緯もメモされていて勉強になります。 ネットワークやプロトコル、もしくはデータ構造について詳しく知りたい人は読むべきですが、 ライブラリではなく特定のアプリケーションを実装したい人には非常に遠回りになる書籍です。 目的によって評価がバラバラになる読み物なのではないでしょうか。

構成は大きく三つに分けられます。

An Overview of XMPP:
ざっくりとした概要。歴史やアーキテクチャなど。1章と2章。
The XMPP Toolkit:
XMPP の使いどころ。XMPP で実現できることを一通りさらった感じ。3章から12章まで。
Putting It All Together:
実際にアプリケーションを設計、実装するときに考えること。13章と14章。

Python のサンプルには SleekXMPP を使います。SleekXMPP は Python 3.1 以上もしくは Python 2.6 を使います。 書籍に登場するコードとの差分は wiki にまとめられています。

落穂拾い

英語の本でしたので、チマチマと4ヶ月くらいかけて読みましたが、 自宅で難しい本を読んでいると眠ってしまいますから、近所のスターバックスに通っていました。 繁華街の店舗ではありませんので勉強している人も多く、英字新聞を読んでいる日本人に話しかけられたり、 日本語を勉強している外国人と英語でおしゃべりしたりなど、単なる読書だけでない体験でした。 自宅でも職場でもないサードプレイス、ちょうどスタバのキャッチフレーズが当てはまる感じもたまには良いですね。

コメントを投稿