次世代IDL−Protocol Buffers

 Googleは,自社で開発したツール「Protocol Buffers」をオープンソース・ソフトウエアとして
公開した。さまざまな構造化データをネットワーク上でやりとりするために社内で使用していた
もので,ほぼすべてのフォーマットをエンコードできるとしている。
 Protocol Buffersは,シンプルにデータを定義し,コンパイルする。いずれの言語でも判別可能
なクラスを生成し,コードサイズは「きわめて小さい」(同社)という。
http://code.google.com/p/protobuf/を通じてダウンロード可能。Apache License 2.0を適用する。
 同社では,サーバー間のメッセージ,リポジトリ内のインデックス記録,空間的データセットなど
多数のデータ・フォーマットを扱っている。新しいサーバーを導入しても,古いサーバーのデータを
読み取ったり,古いサーバーから新しいサーバーで作成したデータにアクセスする必要がある。
このような状況を背景として,Protocol Buffersを開発したという。
 Protocol Buffersはプロトコルというより、内部で使用している構造化データストレージ記述言語
(IDL)である。Protocol Buffersは通信プロトコルデータハウス等で利用可能、言語と
プラットホーム依存しない拡張可能なシリアライズデータ構造でもある。現在C++JavaPython
三つの言語APIを提供している。
 では、なぜXMLの代わりのものになれるかは下記の特徴をみてみよう。
1、XMLよりシンプル
2、XMLより3〜10倍小さい
3、XMLより20〜100倍速い
4、XMLよりはっきりしている
5、生成したオブジェクトはXMLよりプログラミングしやすい
XMLパーサが要らなく、.protoファイルをコンパイルすることで、高速なバイナリで読み書きする。
 でも、Protocol Buffersは万能ではない。テキストベースのディスクリプションデータ構造に
適していないため、HTML環境での使用はお勧めしない。XMLは直接読めるため、編集の難易度はXML
より高い。