SNS開発者向けの共通APIであるOpenSocial の公開から1年。2009年に公開されるバージョン0.9の新機能のうちいくつかがプレビュー公開され、また日本でもSNS最大手のmixiが、OpenSocialに準拠した開発環境「mixi Platform」の提供を発表するなど、ますます活発な動きが見られます。
折しも、GoogleでOpenSocial Developer Advocate(開発者向け世話人)を務めるRyan Boyd氏が来日し、インタビューの機会を得ましたので、OpenSocialの現状と今後についてお話を伺いました。
Ryan Boyd氏
“Write once, Deploy everywhere”を目指して
──まずインタビューに先立ち、OpenSocial誕生の経緯とこれまでの流れについて、大まかに説明していただきましょう。
Boyd:
OpenSocialは2007年11月に立ち上がりました。そのころのSNSを含むソーシャルサイト─現状もそうですが─は、それぞれ孤立した(isolate)状態になっています。ソーシャルサイトがそれぞれ独自のプラットフォームを用意して、アプリケーションを作ることができるようになっているものの、それぞれは別々のAPIやデータセットをもっていて、そのサービスでのプロプライエタリなアプリケーションしか作ることができないのが問題です。共通のデータセットやプラットフォームを用意し、デベロッパはそれを使えばどのSNSやサービスにも適応できるほうが良いでしょう。1つ1つのソーシャルサイトのために新しいアプリケーションを書き直すのは、賢いやり方でありません。
Boyd氏がスライドで示した「オンラインコミュニティマップ」 。これら孤立した島をつなぐのがOpenSocialです。
OpenSocialはこれらを標準化するための技術で、JavaScriptとHTMLをベースに異なるソーシャルサービスに対して共通したアクセスを実現します。やりとりできるAPIとして「Friends(友達リスト) 」 「 Profiles(プロフィール) 」 「 Activities(行動履歴) 」 の3つがあります。理想的には「Write once, Deploy everywhere」( 一度書けば、どこでも展開できる)となるものですが、現実にはまだ問題があるため「Learn once, Write application for anywhere」( 一度学べば、どこ向けのアプリでも開発できる)といったところです。
SNSの最もよくある使い方は、友人同士でコミュニケーションをとる、いわば「ひまつぶし」ですが、もうひとつの大きな流れにビジネス分野での活用があります。米国にLinkedIn というビジネス系の有名なSNSがありますが、2008年10月からOpenSocialのサポートを始めました。その他のビジネス系のソーシャルサイトとも連携の可能性を探っており、現在ビジネスユースでの利用拡大を積極的に図っているところです。
現在OpenSocialは全世界の28のコンテナ(SNSサービスサイト)がサポートし、その上で7,000以上のアプリケーションが開発され、6億のユーザが使える環境にあります(これらの概要はOpenSocial Community Wiki でも見ることができます) 。OpenSocialはこの11月に1年の誕生日を迎えましたが、考えてみてください。1年前にはサポートしているコンテナは当然ゼロ、アプリケーションもありませんでした。それが1年でこれだけの規模になっているのです。この急激な成長もOpenSocialの大きな特長であると言えます。
サーバサイドへの拡張
Boyd:
次に技術的な面についてお話ししましょう。OpenSocialの最初のバージョンは0.5です。その後開発が進み、バージョン0.7からはProduction releaseという商用製品相当のレベルとなり、多くのベンダにサポートされるようになりました。2008年12月現在の最新バージョンは0.81です。バージョン0.8で追加された大きな特徴としてRESTful APIとRPCプロトコルの追加 があります。RESTful APIが良いのは、これまではJavaScriptで作ったガジェット(つまりクライアント側)からしかソーシャルサイトのデータにアクセスできなかったのが、サーバからのアクセスが可能になった点です。これによって、場所を選ばずソーシャルデータの共有を行うことができます。たとえば、どこかのニュースサイトからのニュースを友人と共有して、友人がそのニュースをチェックしたかどうかを知らせるといった機能を、バックグラウンドで走らせることができるのです。
OpenSocial 0.9が現在開発中のバージョンですが、これは「アプリケーション開発をいかに簡単で効率的に行うか」を追求したものです。一番大きな特徴は、標準的なタグセットを用意した点です。今までOpenSocialを利用するためにHTMLを大量に書かなければならなかったのが、このタグセットを用いることにより、短いHTMLコードを埋め込むだけで済むようになります。
また、今ではJavaScriptのガジェットだけではなく、さまざまな言語を使って、どこからでもソーシャルデータにアクセスすることができます。米国時間で12月17日にOpenSocial Client Library というものがリリースされました。 OpenSocialはRESTfulやRPC対応になりましたが、そのプロトコルを直接いじりたいと思っている人はいないでしょう。そういう人のために、Java、PHP、Python、Rubyに対応したライブラリを用意したのです。これがClient Libraryです。オープンソースのプロジェクトで、だれでも開発状況を見ることができます。
もちろん、OpenSocialの仕様策定自体も非常にオープンに行っています。専用のメーリングリストがあって、コンテナベンダもアプリケーション開発者でも、誰でもウェルカムで参加できます。
ではその仕様を具体化する実装はどこでやっているのか? それについて重要な役割を果たしているのがApache Software FoundationのShindig というプロジェクト です。これはオープンソースのプロジェクトで、OpenSocialのリファレンス実装を作っています。OpenSocialの仕様策定に関わっている人の多くがShindigにもコントリビュートしています。ShindigにはJava版とPHP版があり、どちらもリファレンスでありながら商用レベルのクオリティを持っているので、多くのアプリケーションベンダで実際に使われています。他の言語についても、新たなShindigを作ろうとしている開発者がいるようです。
Boyd氏は先日行われたOpenSocialの1歳の誕生日を祝うイベントで配られたTシャツを着ていました。
OpenSocialはGoogleのものではない
──OpenSocialをGoogleのプロジェクトとしてどのように位置付け、また今後Googleの他のサービスやプロジェクトとどのように関係づけていくのでしょうか?
Boyd:
GoogleはMySpaceやLinkedInといった他のSNSコンテナベンダとまったく同じ優位性を、Google自身がもつソーシャルサービスについても持っています。たとえばGoogleのSNSであるOrkut はShindigを利用しているので、OpenSocialのもつ特長をそのまま利用することができます。またiGoogle ではOpenSocialの機能をサンドボックスの形で実装しています。
よく報道で「GoogleのOpenSocial」といった言われ方をしますが、これは我々にとってはまったく嬉しくない表現です 。OpenSocialはGoogleが他のさまざまなベンダと協力し、コミュニティとして進めている規格なのです。これは重要なことなので、ぜひとも強調しておいていただきたいですね。
──では、そのコミュニティに入っている各コンテナベンダが同じようにOpenSocialを実装した場合、自社のサービスをどのように差別化していけば良いでしょうか?
Boyd:
ソーシャルサービスにはさまざまな種類ががあります。まず、伝統的なお友達の輪を広げるSNSと、最近増えてきたエンタープライズやビジネスに特化したものというように、対象セグメントによる違いが挙げられます。また、国や地域によって流行っているソーシャルサービスがまったく違います。これもコンテナベンダにとっては差別化のポイントになるでしょう。
デベロッパにとっては、自分が作成したアプリケーションをどこにデプロイ(展開)するかという際に、たとえば年齢、世代別など、自分のターゲットとするユーザがどのSNSに多いかという観点もあるでしょうし、マネタイぜーション(お金儲け)の機会をどこに見つけるかによっても違いはできてくると思います。
──実際にOpenSocialを使って、うまくマネタイズまで成功した例はありますか?
Boyd:
今の段階で具体的な例まで挙げることはできません。ただ、OpenSocialが普及することによって、自分が開発したアプリケーションが世界中のネットユーザに利用される可能性が出てきます。ユーザが集まることによって、お金を稼ぐ方法はいろいろ考えられると思います。広告を入れたり、自分のサイトにトラフィックを誘導したり、ガジェットそのものに課金するというケースもあるかもしれません。また我々もそれに加えて、OpenSocialならではのマネタイズの方法について、可能性を探っているところです。
──OpenSocialと競合する技術は何でしょうか?
Boyd:
誰もが思いつくものに、大手のSNSであるFacebookが持っている独自のAPIがあります。ただ、これが完全にOpenSocialと競合するものかといえば、私は必ずしもそうではないと思います。というのは、OpenSocialはオープンな場で仕様を決めて、だれでも仕様策定に参加できるものですが、Facebook APIは基本的にはFacebookのためのAPIなので、守備範囲が違います。Facebook APIを採用しているコンテナベンダもあるようですが、Facebookの開発モデルを採用しているだけであって、OpenSocialと同じ利用法で競合しているわけではないと思います。
OpenSocialはクラウドコンピューティングに最適
──OpenSocial Client Libraryについてお聞きします。このライブラリは、開発者側からのJavaやRuby、あるいはPHPを使いたいという要望が高いために用意されたものなのでしょうか? それともGoogleの方針として、これらの言語のデベロッパにコミットしていくために計画されたものですか?
Boyd:
OpenSocialではJavaScriptのAPIが最初にあって、RESTful APIが用意され、そして今回Client Libraryが出たわけですが、誤解を解いておきたいのは、JavaScript APIとこのClient Libraryは別に競合するものではないということです。これまでのシステムでも、JavaScriptガジェットのバックで、サーバサイドだけでソーシャルデータをやりとりすることはあります。今回のリリースは、いわば今までフロントエンドのテクノロジだったものにバックエンドのシステムを加えたということです。ですので、開発者にJavaScriptから他の言語に乗り換えを勧める意味はありません。
その上で、なぜJava、PHP、Ruby、Pythonなのかというと、デベロッパコミュニティをウォッチして、だいたい皆がどのような言語を使っているのかというところで判断しました。この4つの言語があれば、サーバサイドはほぼカバーできていると思います。
──OpenSocialのようなオープンな技術を採用する場合、日本の企業ではとくにセキュリティに神経質なほど注目します。OpenSocialのセキュリティ面での安全性について、安心できるコメントをいただけますか?
Boyd:
OpenSocialはWeb標準のテクノロジに準拠して策定されていて、セキュリティについてもWebで広く使われているテクノロジを採用しています。たとえばSSLやSSL認証といったテクノロジはOpenSocialでも使っています。またWebのセキュリティに関するテクノロジは日々進化しているため、これらをフォローすることも重要です。一例として、アプリケーションからデータを送る場合にOAuth というプロトコルを使った認証を行っています。これにより、あるデータリクエストが、どのコンテナのどのユーザ宛なのかをはっきりさせることができます。最近リリースされたRESTful APIのクライアントライブラリでも、リクエストが有効なものかどうかを認証して、データを送る形になっています。
OAuthはこれ以外にも、さまざまな技術でも使われる標準的な技術になりつつあります。Googleでも、Google Data API などで使われています。そしてOAuthの仕様もまた、OpenSocialのようにオープンな場で策定されています。
──最近のWebアプリケーションはクラウド上で動くようになってきました。今後クラウドコンピューティングが標準になってくると、OpenSocialにはどのようなメリットが出てくるでしょうか?
Boyd:
OpenSocialのガジェットを作る際、バックエンドのサーバにデータを格納するのはよくあることで、よく知られたガジェットの中にもバックエンドとしてクラウドにデータを投げているものがあります。クラウドにデータを投げるメリットとして、ユーザの数が増えても対応が容易という点があります。OpenSocialのガジェットを作ると、最初はもちろんユーザがゼロなのですが、ソーシャルサイトは爆発的に人気が出ることがあります。そんなときに普通のサーバでは対応が追いつきませんが、クラウドに投げることができれば、対応は非常に楽になりますね。
──OpenSocialはクラウドコンピューティングにベストマッチということですね?
Boyd:
そのとおり。ユーザ数の増大に素早く対応できるという面では、現状、他に選択肢は無いと言えます。
12月18日にOpenSocial Hackathon があったのですが、その中でもOpenSocialとGoogle App Engineを使ったクラウドアプリケーションが数多く見られましたね。
Google石原氏:
クラウドコンピューティングとOpenSocialは非常に相性が良く、OpenSocialのガジェットを作っている人で、Googleのクラウド対応技術であるGoogle App Engine を使っている人は非常に多いです。簡単に使えますし、機能的にも組み合わせやすいと言えます。
インタビューはGoogleのDeveloper Advocate、石原 直樹氏のコーディネートによりスムーズに進みました。
世界中の人とつながるために
──今までのお話を伺うと、SNSコンテナやアプリケーション開発のプロにとって、OpenSocialが大きな優位性を持つことはわかるのですが、一方でSNSのユーザ、あるいはそれに近いレベルの開発者がちょっとしたアプリケーションを作る際に、OpenSocialを利用するメリットはあるのでしょうか?
Boyd:
OpenSocialの特長は「広く普及している」という点です。たとえば普段MySpaceを使っているのでしたら、MySpaceのアプリ開発を行うにはOpenSocialは非常に良い選択肢となり得ます。また、一度作ったアプリケーションを他の場所に配置したり、一度覚えたプログラミングが他の場所で使えるといった面は、もちろんどんな開発者にもメリットとなります。
石原:
補足すると、デベロッパの数が多いと、初心者をサポートしてくれる人も多く、知識の共有もより多くできるので、開発者にとって入って行きやすいテクノロジとなるのではないかと思います。
──最後に、gihyo.jpをお読みの多数の開発者に向けてメッセージをお願いします。
Boyd:
OpenSocialの一番の特長は「世界中の人につながる」ことです。オープンな標準に則っていますし、作り方がオープンだからです。これをさらに広めるために、より多くの皆さんにぜひ参加して使っていただきたい。さらに仕様策定にコントリビュートしたり、周辺にあるShindigなどのオープンソースプロジェクトにもぜひ参加してただきたいと思います。
Googleのロゴをバックに記念撮影