今年の初頭、InfoQではGranite Data Services(GDS)についてプロジェクト創設者のFranck Wolff氏と話をした(参考記事)。この記事では、最近リリースされたGDS 1.1についてより詳細を知るためWolff氏と再度話をした。
Wolff氏はまず最新のリリースで何が新しくなったのかをInfoQに語った。
GDS 1.1は10月6日にリリースされ、新機能が主に3つあります。
- Tide: このモジュールはCairngorm + Flex Data Management Serviceの組み合わせに対する完全な代替手段となることを意図しています。Flex側から見ると、Cairngormは優れたFlex開発フレームワークですが、(ちょっとした操作のために多くのファイルが必要であったり)いくぶん冗長な気がしました。Java側から見ると、Flex Data ManagementはLiveCycle Data Servicesを通して利用することしかできません。また、私達が必要とする機能のいくつかが未実装であったり私達が望む実装でなかったりしました。それはJ2EEの一般的なフレームワーク(例えばJBoss/Seam, Spring,やEJB3)との統合、クライアント側でのエンティティ・キャッシュ、コレクションのページング、そして透過的な遅延ロードなどです。Tideはこれら全ての要求を解決し、JBoss/Seamフレームワークをターゲットとしています(SpringとEJB3への対応は近日中)
- Granite Eclipseビルダ: この新しいEclipseビルダ・プラグインは(エンティティ・ビーンのような)Javaビーンを新しく作成したり、修正したりするたびにGas3(GDS ActionScript3ジェネレータ)を自動的に起動します。グラフィカルなウィザードやパネルからJavaプロジェクトの設定を変更すると即座にJavaモデルを対応するActionScript3へと反映させます。生成されたビーンは強力な型付けのために必要な、遅延ロードのサポートやTideとの統合といった全てのロジックを実装しています。
- MXML/AS3 Webコンパイラ: Adobe社のものと同様な機能(デプロイされたwarに含まれるMXMLファイルを直接コンパイルする)を提供しますが、さらに(ストリングやデータベースなどの)あらゆる入力ストリームからコンパイルすることも可能です。この機能は(Igenkoプロジェクトの創始者である(リンク))Sebastien Deleuze氏によって寄贈されたもので、こちらから(リンク)オンラインにてテストすることができます。
InfoQではGDSのドキュメント作成状況について確認した。
これについてはまだ現在進行中ですが、調度GDSによる開発を始めようとする人向けの詳細な説明付きの新しい"はじめに"の章を追加したところです。リファレンス・ドキュメントはまだまだ改善が必要ですが、近日中に更新されるハズです。
前回のインタビューについて、BlazeDSとGDSの比較に関するWolff氏の見解が変わっていないか改めて確認した。BlazeDSは昨年末にAdobe社によってオープン・ソース化された(参考記事)。
BlazeDSのコードをざっと見て数分ほど遊んでみました。素晴らしい技術だと思いますが、私の知る限り、未だにEJB3/Hibernateのサポート(遅延ロード)やコード生成ツール、JBoss/SeamやFlex Data Management Serviceなどとの密な統合といったいくつかの重要なエンタープライズ機能に対応していません。これらの機能は全てGDS 1.1では利用することができます。そして改めて述べますが、GDSはBlazeDSではなくて(未だ遅延ロード機能のない)LCDと競合するものです。
続いて、InfoQはGDSの長期的なロードマップについて訊ねた。
GDSのロードマップにおけるもっとも重要な事の一つはほとんどのJ2EEフレームワークと統合可能なクライアント側における完璧なデータ管理システムを提供することです。これはまさにTideが目的とすることで、以前私が述べたように、現在のJBoss/Seamのサポートに加えてSpringとEJB3技術からも利用できるようにします。さらに、私達は発展途上のWeb Beansの仕様にも注視していて(JSR-299を見て(リンク))、幸いなことに最初の実装が入手可能になった直後にはTideとWebBeansの統合機能を提供できる見込みです。
もう一つ提供しようと考えている機能がGDSにおけるアップロードとダウンロードの操作を簡略化する方法です。現在、標準のflash.net.FileReferenceクラスとGDSを一緒に使うと、アップロード/ダウンロード処理を行うサーブレットを作成する必要があります。これを簡略化しようと思います。少なくとも標準的な専用のサーブレットをGDSで提供することになるでしょう。
管理面から言うと、GraniteDSコンソールを作成する予定で、これによって実行環境の設定管理やサービスの調査(AMFPhp Service Browserのようなものです)が可能になります。
別の長期的な展望はデータ管理のためのFlexコンポーネントのセット(例えばモデルの詳細なメタデータからFlexのフォームを生成するEntity Formなどです)とひょっとしたらストリーミングです。。
最後にInfoQではGDSコミュニティについて質問した。
間もなく1.0がリリースされてから1年になります。GDSフォーラムのメンバは確実に増えています(100人程度から今では300人程になります)。今では1日に100以上のダウンロードがありますが、この数字からGDSを使っている開発者の人数を推測するのは難しいでしょう。素晴らしいことにいくつかの一流企業がGDSを商用製品に使っているということです(残念ながら今ここで企業名を明かすことはできません)。
GDSの貢献者は(私自身を含め)十数名程です。といってもその大半はごく稀に(パッチや小規模な拡張機能を)提供しているだけです。William Drai氏(Adequate Systems社での私の同僚です)と私は勿論一番活発に活動していますが、Cameron Ingram氏(ブログはこちら(リンク))とSebastien Deleuze氏(GDS Web Compilerの作者)も普段からオリジナルで重要な機能に貢献しています。
GDSについてもっと知りたい方は: http://www.graniteds.org/
原文はこちらです:http://www.infoq.com/news/2008/10/Franck-Wolff-on-GDS