2010-06-02

OpenSocial Pages という新しい取り組みの紹介です

こんにちは。なかじまんです。新しい取り組みのお知らせです。

OpenSocial Pages 0.9.0 を公開します。

OpenSocial Pages は Google App Engine for Java 上で動作する OpenSocial コンテナです。OpenSocial Pages は App Engine 上のアプリケーションに OpenSocial を組み込んだり、OpenSocial の上にアプリケーションを構築する、その元ネタとして提供するものです。

OpenSocial Pages は App Engine 向けに実装した完動品です。ソースコードを提供していますので、手元の環境でソースコードをビルドして App Engine にデプロイするだけで、その動作を確認できます。OpenSocial Page のソースコードは、次のサイトからダウンロードできます。

OpenSocial Pages - Nakajiman Software
http://sites.google.com/a/lrlab.to/opensocial-pages/

OpenSocial Pages は、mixi や gooホームのように、アプリの開発者がいて、SNS のユーザがいて、その間をコンテナが取り持ち、ひとつのサービスを提供するという形態を目指すものではなく、Enterprise OpenSocial Whitepaper などの新しい方向性に触発されて、今ある(これから作る)システムやサービスに OpenSocial をどう取り込んでいくかを意識して取り組もうというものです。

OpenSocial Pages は Google アカウント認証を前提としています。アプリケーションを Google Apps と結び付けることで Google Apps ドメインのアカウントに限定することもできます。つまり、信頼できる限られた範囲のユーザでの利用を想定しています。



OpenSocial Pages は、ウェブページを 1つのガジェットとして扱います。ガジェットは iframe を使って表示するのではなく、ウェブページの HTML ドキュメントにインライン表示します。つまり、ウェブページ全体が Canvas ビューになるといえます。

この特性により、例えば iPhone や iPad といった広い分野で OpenSocial アプリの仕組みを活用できます。実例も兼ねて、OpenSocial Pages のソースコードでは jQTouch を組み込み iPhone 仕様でページを表示するようにしてあります。このページ自体が 1つのガジェットになり、そのガジェットから OpenSocial API が使えます。



OpenSocial Pages は、コントロールパネルという管理機能をあらかじめ持っています。コントロールパネルは、管理者(admin) のみアクセスでき、次のリソースを管理したり、編集できたりします。

* ユーザ
* グループ
* ページ (= ガジェット)
* プロキシ



OpenSocial Pages は、人の関係性を、次のとおり、ユーザとグループで表現します。また、この関係性は、OpenSocial API にも適用しています。

* ユーザは Google アカウントに対応する
* ユーザは、他のユーザを Follow できる (友達関係)
* 管理者は、ドメインのグループを作成できる
* ユーザは、ドメインのグループに参加できる

OpenSocial Pages は、ウェブページをガジェットに見立てていますが、ガジェットの元ネタは、従来どおり、ガジェット XML です。OpenSocial Pages は、オンラインのガジェットエディタを持っていて、編集したガジェット XML は App Engine のデータストアに保持します。



また、ガジェットエディタから iPhone/iPod や iPad を選択して、特定の画面サイズでポップアップして、ウェブページを開けるようにしています。Safari を使えば、実機とほぼ同じように表示できます。

OpenSocial Pages は gadgets.io.makeRequest によるリクエスト中継をホワイトリストで制限します。許可していない URL へのリクエストは中継しません。また、次の中継方法をサポートしています。

* あらかじめ定めた User/Password による基本認証
* あらかじめ定めた User/Password による WSSE 認証
* HMAC-SHA1 による 2-Legged OAuth
* あらかじめ定めた User/Password による Zoho CRM API の呼び出し



OpenSocial Pages は OpenSocial v1.0 仕様に準じて実装を進めていて、次の OpenSocial JavaScript API をサポートしています。v0.9 や v0.8 は捨てています。

* 中継先を管理できる gadgets.io.makeRequest
* 言語選択による Message Bundle
* URLパラメータによる User Preference の適用
* User Perference は Web Storage (localStorage) に格納
* iPhone 向け User Perference エディタ
* ビューの遷移 (Canvas から Canvas のみ)

* People, Groups, Activites, AppData, Messages を JSON-RPC で実装
* People は、取得(friens, group)、更新、削除、Follow、グループ参加を実装
* Groups は、取得、作成、更新、削除
* Activites は、取得(friends, group, mentions)、作成、更新、削除を実装
* Messages は、送信(person, group)を実装

パーミッションモデルは、一般性を保持しつつ、制限を緩いものとしています。

* Viewer は、他人や他アプリも含めて、あらゆるデータを取得できます
* Viewer は、自身のデータを作成、更新、削除できます
* Viewer は、すべての他人や他グループに対して、メッセージを送信できます
* 管理者(Admin)は、他人や他アプリも含めて、あらゆるデータを取得、作成、更新、削除できます

駆け足になってしまいましたが、ざっと概略をお伝えしました。

OpenSocial Pages をきっかけとして、今後、いろいろな分野で OpenSocial が適用できないか... という話題が増えることを期待しています。もし、OpenSocial の適用を検討することがありましたら、特にお役に立てると考えますので、お声掛けいただきたく存じます。

0 件のコメント: