はじめに
本連載では、ウィジェット関連の技術動向についてご紹介しています。第3回となる本稿では最近注目を集め始めているOpenSocialの中のガジェット仕様を活用しようとしている一例として、開発ツールのプラットフォームを提供するJazzプロジェクトの取り組みを紹介します。
OpenSocialとJazz
本稿のタイトルに含まれる2つのキーワード「OpenSocial」と「Jazz」。どちらも初めて耳にする言葉かもしれません。最初に、それぞれの言葉の意味を簡単にご紹介したいと思います。
OpenSocial
OpenSocialはソーシャル・ネットワーク・サービス(SNS)が提供するAPIの標準化やユーザー・インターフェースのコンポーネント定義の標準化によって、さまざまなSNSサイトへの統一したアクセス方法を提供したり、サイト間の連携を可能にしたりすることを目的に、Google社が発案し、現在はOpenSocial Foundationによって仕様の策定が進められているオープンな仕様です。SNSへのアクセスを行うアプリケーション開発者は、OpenSocialで定義されたAPIなどの仕様に基づいてプログラムを書くことによって、特定のSNSサイトに縛られることなく、さまざまなSNSサイトが提供する情報へアクセスすることができるようになります。SNSサイトの立場から見ても、独自にAPIを開発する必要がなく、アクセスを増やすことができるメリットがあります。実際に、OpenSocial Foundationのサイトにあるコンテナ・リストを見ると、すでに多くのメジャーなSNSサイトがOpenSocialをサポートしていることがわかります。日本でも2009年の秋に、日本のメジャーなSNSサイトであるMixiがMixiアプリとしてOpenSocialをサポートしたことをご存知の方も多いことでしょう。
アクセスを共通化するという観点で、OpenSocialが策定している仕様としては、大きく以下のものがあります:
- JavaScript API
- OpenSocial API
- ガジェット API
- RESTful プロトコル
JavaScript APIはWebブラウザからSNSサイトが提供するサービスへの統一的なアクセスAPIを定義しています。ガジェットAPIはそのJavaScript APIの一部として定義されています。RESTfulプロトコルはJavaScript APIの裏側の通信に関しての仕様を定めています。JavaScriptをサポートしていない環境からアクセスする際のアクセス手段として、例えばデスクトップアプリケーションやモバイル・デバイスからのアクセス、あるいはサーバーからのアクセスなどに利用できるものになります。
本稿の話題はウィジェットということなので、今回はこの中のガジェットを活用する例をご紹介することとします。それぞれの詳しい内容に関しては最後に参考資料として記してあるOpenSocial関連のサイトをご覧いただきたいと思います。またCodoZineにもすでにOpenSocialに関連した記事があります(mixiアプリで始めるOpenSocial入門(1)――OpenSocialの概要とmixiアプリ )ので、そちらも参照してください。
Jazz
JazzはIBM社が推進する、チーム開発環境のためのサーバーサイド・プラットフォームと、そのプラットフォーム上に製品としての開発ツールを開発しているプロジェクトです。Jazzに関してもCodeZineにはすでにいくつかの記事が投稿されています(はじめて使うJazz- チーム開発のためのオープンな統合プラットフォーム、個人間のコラボレーションを通じてチームの生産性を向上するIBMのJazzプラットフォーム)ので参照してください。
ここでは、Jazzプロジェクトの成果の一つであるRational Team Concert(以降RTC)の機能を具体例として見てみます。RTCはチーム、つまり複数の人間で一つのソフトウェアを開発することをサポートする開発ツールです。Jazzサーバーと呼ばれるアプリケーション・サーバーに、チーム・メンバーやタスク、ソースコードなど開発に関わるさまざまな情報を蓄え、それらをチームで共有することによって、チーム開発がスムーズに進むように開発チーム全体をサポートします。
RTCの中で、今回の焦点であるウィジェット適用に関係する部分を見てみましょう。
JazzのWebユーザー・インターフェース
Jazzが開発チームをサポートするうえで重視することの一つがチーム・メンバー間のコミュニケーション、およびチーム間のコミュニケーションです。そのための仕組みとして、RTCではいくつかの機能を提供します。その中の中心的な機能として、各メンバーのタスク(To-Doアイテム)や問題報告など、「やるべき項目」を管理するために「ワークアイテム」と呼ぶ機能を提供しています。このワークアイテムのユーザー・インターフェースには、ディスカッションと呼ばれる、いろいろな人がそのワークアイテムに対してコメントを追加できる部分があったり、あるいは一つのワークアイテムに関連する人が一覧で表示されたりする部分があります。SNS的な要素がちりばめられていることがわかります。
このワークアイテムのユーザー・インターフェースも含め、JazzのWebユーザー・インターフェースはDojoツールキットを利用して構築されています。例えばここで、上記ワークアイテムのユーザー・インターフェースには右側にクイック通知という小さなウィンドウがありますが、その下にワークアイテムの所有者に関する情報を別のSNSサービスから取ってきて表示することを考えたとしましょう。Jazzの開発者は、DojoツールキットとJavaScriptを利用してSNSサービスを呼び出し、それ専用のユーザー・インターフェースを独自に開発することになります。
Jazzのダッシュボード
RTCを含めてJazzベースの製品は、チーム・メンバーが現在の開発の状況を知るための手段として、ダッシュボードと呼ぶ機能を提供します。
iGoogleを見たことがある人であれば、このJazzのダッシュボードがiGoogleの画面と似ていると思われるのではないかと思います。Jazzのダッシュボードの中では、それぞれの部品をビューレットと呼んでいますが、それはまさにウィジェットと言ってもよいでしょう。ただし、Jazzのダッシュボードのビューレットは独自仕様です。例えば、新しいビューレットを開発しようとしたら、まずWebユーザー・インターフェースの開発と同じくDojoツールキットを使ってユーザー・インターフェースを構築し、さらにビューレットの定義ファイルなどを作成し、Jazzサーバーにインストールすることになります。もちろん、そのビューレットはJazzのダッシュボード上でしか表示できないものになります。