XMLよりシンプルで速いProtocol Buffers

グーグル、また基盤技術の1つをオープンソース化

2008/07/08

 グーグルは7月7日、同社の基盤を支える要素技術の1つ「Protocol Buffers」をオープンソースで公開した。Protocol Buffersはさまざまな構造化データを言語に非依存な形で定義し、利用するためのソフトウェア。JavaやC++、Pythonで利用でき、定義したデータは各言語のクラスライブラリにコンパイルされるという。例えば、いくつかの32ビット整数やストリングからなるデータ型を「.proto」というファイルで定義しておけば、このデータ型で定義されるメッセージストリームを、各言語から利用できるという。

 オープンソース化を担当した同社ソフトウェアエンジニアのケントン・バーダ(Kenton Varda)氏によれば、Protocol Buffersは、XMLやIDLで満たせないニーズを満たすものだという。「XMLは優れているが、グーグルで扱うデータ量はXMLにするには多すぎる。HTMLのような構造化されたテキストデータならXMLでも構わないが、シンプルなデータを扱うには、XMLはデコードやエンコード、ツリーのパースなどの処理が面倒だ。Protocol BuffersはIDLに似ていると思うかもしれないが、IDLは複雑すぎるという問題がある」(バーダ氏)。Protocol Buffersは、XMLデータに比べて1/3〜1/10に小さくなり、20〜100倍高速に処理できるという。

 バーダ氏によれば、こうした仕組みがグーグルで導入されたのは、メモリ上に直接生のバイナリデータを書いたり読んだりする方法が破綻したことにあるという。何か新しいサーバを立ち上げた場合でも、すぐに古いサーバと通信する必要があり、既存のデータ構造にフィールドを加えたり、削除した場合であっても、きちんと動く必要があったためという。

 グーグルは7月4日にも、社内向けで利用してきたC++向けテストフレームワークをBSDライセンスでオープンソースとして公開するなど、社内ツールのオープン化を進めている。

(@IT 西村賢)

情報をお寄せください:

HTML5 + UX フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

キャリアアップ

- PR -

注目のテーマ

ソリューションFLASH

「ITmedia マーケティング」新着記事

2024夏アニメの人気維持率 「負けヒロインが多すぎる!」の特異な動き
ブシロードのグループ会社であるゲームビズは「アニメビジネスインサイト『データで見る2...

約8割の人が経験する「見づらいホームページ」 最も多い理由は?
NEXERはくまwebと共同で「見づらいホームページ」に関するアンケートを実施した。

スマホ時間の奪い合い「利用者増えても、利用時間は減少」 唯一の勝者は?
データマーケティング支援のGlossomは、「スマートフォンでのメディアとコマースの利用に...