JazzにおけるOpenSocial対応の現状
前章でJazzがOpenSocial対応することによって得られる利点を解説してきました。しかし残念ながら、現状のJazzはOpenSocialにまだ対応していません。将来的な機能拡張の一つのアイデアとして、OpenSocial対応が始まったところです。ここでは現在進みつつあるその実装に関してご紹介します。
Apache Shindig
OpenSocialガジェットをサポートするために、OpenSocialのコンテナーを実装する必要があります。Jazzでは、現在のところ、多くのSNSサイトと同様、Apacheプロジェクトの中の一つであるApache Shindigを採用しようとしています。
Apache Shindigはhttp://incubator.apache.org/shindig/からダウンロードが可能となっており、実装だけでなく、テスト用の環境構築の方法もドキュメント化されているので、ダウンロードしてすぐに動作を確認できるようになっています。また、Javaだけではなく、PHPの実装も用意されているので、どちらの環境でも動かすことが可能です。
ここでは、Shindig 1.1 Java版をダウンロードして、Tomcat上で動かすまでの流れを確認してみます。
- http://incubator.apache.org/shindig/download/index.htmlからApache Shindig (war)を選んでダウンロード
- ダウンロードしたwarファイルをTomcatのwebappsの下にROOT.warとしてコピー(shindigのwarパッケージが“/“(ルート)をコンテキスト・ルートとすることを仮定しているため)
- http://localhost:8080/gadgets/files/samplecontainer/samplecontainer.htmlにアクセスし、以下の画面が出ることを確認
以上、ここまででTomcat上でApache Shindigが動くことは確認できました。続いて、初めてのOpenSocialガジェットとしてHello Wordを作成してみましょう。
Apache ShindigでHelloWorld
以下のコードをwebapp/ROOT/helloworld.xml として保存し、再度http://localhost:8080/gadgets/files/samplecontainer/samplecontainer.htmlにアクセスしてください。
<?xml version="1.0" encoding="UTF-8" ?> <Module> <ModulePrefs title="Hello World"> </ModulePrefs> <Content type="html"> <![CDATA[ Hello, world ]]> </Content> </Module>
Displaying gadgetのフィールドにhttp://localhost:8080/helloworld.xmlと入力し、reset all ボタンを押してみましょう。以下のような画面が表示されれば成功です。
OpenSocialガジェットのもっとも簡単な例として、Hello Worldガジェットを書いてみました。より複雑な処理、実用的なアプリケーションを実現するには、上記のソースコードをOpenSocialが定義しているJavaScript APIで拡張していくことになります。もちろん、ユーザー・インターフェースのコードをDojoなどのJavaScriptライブラリで書くことも可能です。
JazzダッシュボードでHelloWorldガジェットを表示
では先ほど作成したHello Worldガジェットを現状プロトタイプ・レベルのJazzのダッシュボード上に表示してみたいと思います。現在正式に公開されているJazzサーバーには存在しませんが、プロトタイプが進められているJazzサーバーのダッシュボードには、ビューレットを追加するためのユーザー・インターフェースに、「Add OpenSocial Gadget」というメニューが追加されています。Apache Shindigに付属しているサンプル・アプリケーションと同じように、「Add OpenSocial Gadget」を選択すると表示されるテキスト入力フィールドに、サンプル・アプリケーションで行ったのと同じようにガジェットのURL http://localhost:8080/helloworld.xmlを入力します。すると、下図のように、Hello WorldガジェットがJazzのダッシュボードに登録されます。
Jazzの上でOpenSocialのガジェットを利用する手順は、基本的にはこれだけです。このGadget URLには任意のOpenSocialガジェットのURLを入力することができます。例えば、iGoogleで提供されているガジェットや、MySpaceの提供するアプリケーションなど、ガジェットのURLを入力すれば、Jazzのダッシュボード上に表示されるはずです。OpenSocial Foundationのガジェット ディレクトリーには2009年12月の時点ですでに1万以上のガジェットが登録されており、Jazzプロジェクト内部の開発だけでは決して実現できない多くの機能が利用可能になっていることがわかるのではないでしょうか。
上の図をよく見ると、事前に登録済みのOpenSocialガジェットの一覧も表示されているのがわかります。このような仕組みによって、ユーザーはより簡単にガジェットを自分のダッシュボード上に貼り付け、実行することができます。
重要なのは、一旦この仕組みができてしまえば、あとはOpenSocialのガジェットが増えれば増えるほど、Jazzから使える情報が自動的に増えていくことになるということです。Jazzの世界に閉じられていたら、Jazzの開発チームが開発しない限りは増えない機能が、ソーシャルの枠組みの中で自動的に増えていくことは、Jazzを開発している側からしても、またJazzを使って開発業務に携わるユーザーにとっても大きな利益となることでしょう。Jazzプロジェクトからすれば、Jazzの得意な「開発」に関連した情報の管理に集中し、その他の付随機能は、外部の機能を利用するということも考えられます。
Jazzからガジェットの提供
こちらも現状ではまだ実装されていませんが、Jazzが持つ情報をOpenSocialガジェットとして公開することもプロトタイプ・レベルで始まっています。
図ではJazzの管理するワークアイテムの情報を表示するためのビューレットがガジェットとしても提供されていることを示しています。実際に「View Gadget Source」をクリックするとOpenSocialガジェットの定義XMLが表示されます。そのURLがガジェットのURLとなり、他のOpenSocialコンテナーに貼り付けることが可能になると考えられます。
まとめ
第1回でウィジェット全般の紹介と一つのテクノロジーとしてiWidgetの紹介を、第2回でマッシュアップとそれを安全に使うための仕組みとしてのセキュア・マッシュアップの紹介をしてきました。そして、第3回となる今回は、技術的な解説というよりは、ウィジェットが具体的にはどのように実用的な世界でも活用されだしているのかということを、今現在開発が進んでいる開発環境であるJazzとそのOpenSocial対応への取り組みを題材にご紹介しました。
OpenSocialはすでに多くのユーザーが知らない間に利用していますし、今後さらに広く採用されることが期待されます。ウィジェットという形での情報の公開は、さまざまな情報をより簡単に利用できることを可能にします。それは、ユーザーにとっても、情報を持っている側にとっても有益です。今後、情報がイントラネット、インターネット、クラウドなどの形でネットワーク上に大量に蓄積され、より多くのさまざまな情報提供者が存在する世界が進めば、その情報をより簡単に、より使いやすい形で利用するための仕組みの一つとして、ウィジェットは今後も注目すべきテクノロジーであると言えるでしょう。