コードジンのヘッダーが入ります Developers Summit 2008:セミナーレポート
【13-B-6】インターネット・アプリケーションを素早く作る - Project Zero
インターネット・アプリケーションを素早く作る - Project Zero
樽澤 広亨氏
日本アイ・ビー・エム株式会社 ソフトウェア事業 コンサルティングITスペシャリスト
Project Zeroはソースを公開し、世界中の開発者の意見を取り入れながら、開発を進めている次世代Webアプリケーション・プラットフォームだ。JavaSE上で稼動する数MBのランタイム、GroovyやPHPによるアプリケーション開発、ブラウザで動くビジュアル・エディタによるマッシュアップによって、RESTやATOMを利用したWeb2.0時代のアプリケーションを、簡単、迅速に作成可能になっている。

既存の資産を生かすマッシュアップで次世代Webアプリケーションを迅速作成

本セッションのスピーカー、日本アイ・ビー・エムの樽澤広亨氏は昨年の11月まで、米国IBMのソフトウェア研究所で先進的なWebアプリケーションの研究をしていた。その成果がProject Zero(以下Zero)だ。まだ開発途上のインキュベータソフトウェアであり、今後、機能等が変更される可能性がある。セッションはマイルストーン3というバージョンに基づいて行われた。

ZeroはアジャイルなWebアプリケーション開発を実現するプラットフォームで、Java SE 5ベースのアプリケーション稼働環境とEclipse 3.2以上でサポート可能なプラグインという形で提供されている開発環境だ。キャッチフレーズはRadical Simplificationで、「無理矢理日本語にすれば超単純」(樽澤氏)。「作る」、「組み合わせる」、「実行する」のすべてを超単純化しようというコンセプトだ。

まず「作る」。Zero自身は100%pure Javaだが、スクリプト言語での開発が推奨されている。サポートしているのはJVMで動くGroovyとPHP。またREST、JSON、ATOM、RSS、dojoを取り込むことができる。アーキテクチャ構築のコンセプトは、コンベンション・オーバー・コンフィギュレーションConvention over Configuration(規約によるシンプル化)だ。

「組み合わせ」における特徴は既存資産の有効活用だ。Zeroは言わば「サーバー・サイド・マッシュアップ・メーカー」であり、その実現のためのアセンブル機能には、大きく2種類の機能がある。まず「フロー」は、Webサイトにアクセスする順番や条件を規定する。そして「インテグレーション・ファブリック」はさまざまなプロトコルで外部のWebサービスにアクセスするためのAPIであり、メディエーションの機能を追加可能だ。 そして「実行」。この観点で最も力を入れたのは導入の容易さだ。導入ソフトウェアのコアは4MB~5MBとコンパクトで、拡張モジュールの導入と設定は、Webを介して自動的に行われる。

Zeroは「今風」のイベントベース・プログラミング・モデルを採用している。クライアントのリクエストに対し、Zeroのイベントエンジンが対応するイベントを発生させると、Event DispatcherがリストイベントをEvent Handlerに通知。そしてHandlerの処理が実行される。このときEvent Handlerはステートレスになっており、状態を保存することはできない。保存されるのはグローバル・コンテキストと呼ばれる、Zeroにおける唯一絶対のデータエリアだ。

Zeroは、任意の戻り値を任意のフォーマットで返すことができる。View Engineコンポーネントの使用によりJythonやXMLのレンダリングツールが、ほぼZero任せで保持することが可能だ。Zeroにはデータベースにアクセスする2つの方法がある。データ・アクセスAPIと「Zeroリソース・モデル」(ZRM)によるものだ。中でもZRMは、簡単なRESTfulなURIでデータのフラット処理を可能にしている点が注目だ。 Project ZeroはIBMの製品としてリリースされる予定だが、オープン・プロセス・プロジェクトとして、ソースコードが公開されている。その意図について樽澤氏は「早期からIBMのプランを提示することでフィードバックを受け、ニーズに合致した製品を迅速に提供するため」と語る。IBMではこの開発手法をCDCD(Community Driven Commercial Development)と呼んでいる。サイトで扱っているものは、製品化後もオープンに提供される予定だ。

図1:Project Zero 主要コンポーネント
問い合わせ先
日本アイ・ビー・エム株式会社
〒106-8711
東京都港区六本木3-2-12
TEL -
URL  http://www.ibm.com/developerworks/jp/

コードジンのフッターが入ります