どうやらGoogleにとって、XMLは力不足になってしまったようだ。
Googleは米国時間7月7日、データ交換フォーマット「Protocol Buffers」のオープンソースプロジェクトを立ち上げたと発表した。
Protocol Buffersの目的は、サーバ間で多様なフォーマットのデータを高速で共有する際の問題を解決することだ。Protocol Buffersはまた、Googleのような企業が、接続されたサーバのネットワーク上で、一時的なダウンを招くことなくソフトウェアをアップグレードできるよう設計されている。
Googleは当初、XMLを共通言語として利用し、異なるサーバ間でデータをやり取りする考えだった。だが、XMLを使った作業は複雑になる場合がある。さらに重大な問題として、XMLで作成された大容量のファイルは、アプリケーションのパフォーマンスを低下させる可能性がある。
Protocol Buffersは、XMLの代替手段として、ネットワーク上でやりとりされるデータ形式や、ハードディスクに保存されるデータ形式を記述するものになる。GoogleのソフトウェアエンジニアリングチームのKenton Varda氏によると、Protocol BuffersはXMLと異なり、コンパクトなフォーマットで、簡単に利用できるよう設計されているという。
Varda氏は、Googleのオープンソースプロジェクトなどを扱うブログに、次のように書いている。
「Protocol Buffersを利用すれば、特別な定義言語でシンプルなデータ構造を定義してから、コンパイルして、データ構造を表すクラスを好みの言語で作成できる。これらのクラスは、十分に最適化されたコードを使用して、極めてコンパクトなフォーマットでメッセージの構文解析やシリアライズができる。何にも増して、これらのクラスは簡単に使える。各フィールドには、シンプルなget(取得)とset(設定)のメソッドがある。準備ができたら、1回メソッドを呼び出すだけで、全体をシリアライズしてバイト配列や入出力ストリームにする(または、バイト配列や入出力ストリームから構造解析する)ことができる」
Googleのウェブスパムチームを率いるソフトウェアエンジニアのMatt Cutts氏は7月7日夜、Protocol Buffersは自動的にJavaやPython、C++のコードを生成するとブログに書いている。
「バイナリフォーマットでデータをエンコードする、非常にコンパクトなツールとしてProtocol Buffersを考えてほしい。プログラマーがプロトコルや構造化されたデータをシンプルに記述すると、Googleのコードが、C++やJava、Pythonでクラスを自動作成し、プロトコルの読み書きや構文解析を行ってくれる。プロトコルの緩衝物(protocol buffer)があれば、ディスクに書き込んだり、ネットワーク経由で送ったり、面白いことをいくらでもできる。どんな中規模企業も(それに、かなり多くの新興企業も)Protocol Buffersが非常に便利であることに気づくはずだ」
Protocol Buffersは、「Apache Software License 2.0」で利用できる。
この記事は海外CNET Networks発のニュースをシーネットネットワークスジャパン編集部が日本向けに編集したものです。海外CNET Networksの記事へ
CNET Japanの記事を毎朝メールでまとめ読み(無料)
ZDNET×マイクロソフトが贈る特別企画
今、必要な戦略的セキュリティとガバナンス
ものづくりの革新と社会課題の解決
ニコンが描く「人と機械が共創する社会」