Project Zero

IBMから新しいWebアプリケーション開発向けのフレームワークがリリースされた。

http://www.projectzero.org/

IBMから新たなWebマッシュアップ開発環境 - その名も「Project Zero」 - ZDNet Japan
http://journal.mycom.co.jp/news/2007/07/04/014/index.html

Prject Zero*1の特徴は以下のとおりだ。

  • アジャイルな、動的開発を旨とする
  • 言語独立な環境であり、最初はGroovyとPHPをサポートする
  • RESTを重視し、リソースの構造をディレクトリ構造とURIの面から支援する
  • Javaで記述されているが、コンテナではない
  • オープンソースライセンスではないが、ソース公開の予定はあり


すでにドキュメントは充実しているのですぐに実行し、学習することができる。
実行に必要な環境はJDK1.5.0以上、MySQLだ。
対応OSはWindowsLinuxのみだが、Java・Groovy版は少しの変更で他のOSでも動くようになると思う。*2


ダウンロードパッケージが3つに分かれている。

デモとしてムービーがあるが、それにはEclipseがお薦めと書いてある。*3
http://www.projectzero.org/wiki/bin/view/Documentation/CoreGettingStartedTutorialDemo

CLI向けとはRuby On Railsのようにコマンドプロンプトからzeroコマンドを実行することにより、ビルドや実行を行うモードである。
とりあえずCLIをダウンロードして試した。


Project Zeroではディレクトリ構造が決定されており、ディレクトリ名やファイル名がコンベンション(日本語でネーミングルール)に従う必要がある。


開発は以下のStepになる。

  1. zero createでプロジェクトを作成する
  2. Groovyでプログラムを記述する
  3. zero makeで構築
  4. zero runで実行
  5. 必要に応じて上記を繰り返す


Groovyで書くソースのイメージはリソース別(URI別)にソースファイルを作成し、onGetやonPostをHTTPメソッド別に書くような感じだ。
URIにて特定されれば固体の情報が、そうでなければCollectionを返すようになる。
レスポンスにはJSONを用いる


ビルドにはApacheのivyが用いられる。これはAntの拡張のようなもので、依存性を易しく記述できるようだ。またMaven2リポジトリに対応している。これはこれ自身で面白い。通常Zeroでビルドファイルを手で記述する必要はない。


Ajaxに関する記述があるがSCRIPTタグで直接書いているため特にZero特有とは感じられない。
またDojoに関して記述があるが、ZeroにDojoが含まれていることはないため、別にダウンロードしなければならないし、他の何でも使えると思われる。
テンプレートと書いてあるが、HTMLとロジックは分離できる。
CSSも使用できる。


Getting Startedしか読んでないが、ORMは特に存在しないように思える。
JDBCのStatement直書きのようなプログラムだ。

感想

パッケージからして非常に小さいためあまり大した機能はない。


RESTな設計をディレクトリ構成によるConventionにて指定するのは良いと思う。
URIの設計がリソース中心で設計されているのはとても良いだろう。

http://www.projectzero.org/wiki/bin/view/Documentation/CoreDevelopersGuideREST


大きな問題としてライセンスが挙げられる。
オープンソースでない上に使用制限、再配布制限がある。
特に4コアまで、同一箇所4インスタンスまでというのは理解に苦しむ。
http://www.projectzero.org/wiki/bin/view/Documentation/ZeroFAQ#How_much_does_it_cost

ソースは公開する予定があるが、変更はGatekeeperの許可無しには行えない。当然ではあるが、この点が一部の開発者の怒りを買っている。TSSやJavalobbyのコメント欄はライセンスに関しての非難で溢れている。
Project Zero: Groovy, PHP and APIs for producing REST, mashups, RIA
IBM Unveils Rails-like Web Stack Built Using Java & Groovy - Project Zero


Project ZeroにはGrailsのようなライバルが数多く存在する。
http://grails.codehaus.org/


このような競争の激しい業界で、完全にオープンでもないプロジェクトがはたして開発者の強力を得て、無事に育っていくのだろうか?
今のところZeroのフォーラムには開発者の投稿が多くあるようだ。
いろいろな意味で今後も要注目なプロジェクトだ。

*1:名前がありふれていすぎるため、検索すると様々なProject Zeroが発見できる。商標的には大丈夫なのだろうか?

*2:しかし、今はソースが公開されていないのでOS依存のJavaコードを書いてしまっている場合には公開まで待つ必要があるだろう

*3:ムービーの音量がいじれないのが不満