前回は, Facebook アプリケーション についてご紹介しましたが,先月には Google もまた, SNS などのプラットフォーム上で稼働するアプリケーションをサードパーティが開発・提供するための仕様 OpenSocial を公開しました(関連記事:Google,ソーシャル・アプリケーション開発用API群「OpenSocial」を正式公開オープン化が普及の鍵――グーグルが「OpenSocial」の優位性を主張)。

 ここでは,『バージョン 0.5』仕様から見える OpenSocial の特徴や実装の現状について, 前後編の2回に分けて解説していきます。

図1:Google Code 内の OpenSocial サイト

 なお,本稿は OpenSocial バージョン 0.5 の仕様と現在の実装状況を基に執筆しています。 OpenSocial の最終仕様や今後の新しい実装の状況によっては, 解説している構成とは異なったり,動作が変わる場合もありますのでご了承ください。

OpenSocial の特徴

 まず最初に,技術的な視点から Facebook と OpenSocial の違いを見ていくことで, OpenSocial の特徴を探ってみましょう。

図2:Facebook と外部アプリケーション

 前回 の復習となりますが, 従来,SNS サービス内の画像管理や新着情報といった機能(アプリケーション)は, その SNS サービス提供者自身の判断で開発・提供できるというのが常識でした。 それに対し Facebook は外部に API を提供し, またサイト内にプラグインのようなアプリ追加機能を設けることで, サードパーティ(外部)の開発者も Facebook サイト内の新機能を追加可能にした点が,まず画期的だと言えるでしょう。

 上の図で,外部の開発者が Facebook アプリケーション(赤色の部分)を追加したとき, Facebook が提供しているのは,青い点線で囲まれた範囲です。 Facebook アプリは,API を通じて Facebook の持つ情報を利用できます。

図3:Opensocial と外部アプリケーション

 Facebook アプリケーションが Facebook 専用となるのに対して, OpenSocial アプリケーションは提唱者の Google 自身の SNS サービス Orkut に限定されない点は,最大の特徴と言えるでしょう。

 OpenSocial では,Facebook API 等に相当するインタフェース部分を共通の API として定義しています。 基本的に,OpenSocial に対応したアプリケーションは, MySpacehi5 といった Google 以外のサービスでも, そのまま同じアプリケーションが利用できるようになります。

 HTML のサブセット+拡張からなる独自のマークアップ言語 FBML を使う Facebook に対し, OpenSocial では標準的な HTML や Flash,JavaScript が利用可能です。 アプリケーション定義の XML ファイルは独自規格ですが, Google Universal GadgetGoogle Data APIs (GData) といった Google の既存技術が基盤となっています。 すでにそれらの技術を習得している開発者は,新しい言語などを学ぶ必要がありません。

 OpenSocial に対応するサービス側(コンテナ)の サンプル実装コード も Google から提供されています コンテナ側視点で OpenSocial に対応するメリットとしては, 独自の API 仕様の定義が不要な上に, 自社システムと接続する API など最低限の開発工数のみで対応できる点も挙げられそうです。 統一仕様ができることで,互換性のない似たような SNS API 仕様の乱立を避けられる点は,開発者にとってもありがたいですね。