2009年4月18日土曜日

Google Web Toolkit動いた

昨晩、SimpleModelerのGoogle App Engine Java(GAEJ)のGoogle Web Toolkit(GWT)が動き出した。
通常のServlet/JSPのWeb MVC版はすでに動いているので、GAEJ生成器はWeb MVC版とGWT版の2種類の実装を生成することになる。
Web MVCとGWTの双方からGAEJのDataStoreを操作することができる。

GWTは今のところあまり人気がないという話もあるけれど、実際に使ってみるとなかなかよいではないですか。
とっかかりの設定ファイルがやや面倒なのだけれど、こういったところが自動生成でカバーできれば、アプリケーション本体の開発はWeb MVCよりもかなり簡単であるにもかかわらず、Ajaxを使った普通のGUIアプリケーションがWeb上に構築できるというかなり凄い結果を得られる。
普通のJavaオブジェクトを使ったAjaxの非同期通信用の専用RPCであるGWT-RPCも使い方は簡単で、サーバー側の処理を普通にJavaで書けるのもうれしい。
クライアント側とサーバー側の処理をすべてJavaで書いて、Eclipseでデバッグまでできる。
Widgetの部分はプログラマが書いて、Widgetを埋め込むHTMLはデザイナが作るといった分業もJSPとは比較にならないほどスムーズにできそう。
なぜ、流行っていないのか不思議である。

Webアプリケーション技術は新参者なので、事情はよく分からないのだけれど、Webを見てまわると昔は設定が難しいようだったからそういうのも影響があるのかも。でも、GAEJにバンドルされているGWTは特に設定いらずなので、少なくてもこの問題は解消される。

GWTはかなり気に入ってしまったので、SimpleModelerのGAE向け機能はGWTを中心に機能セットを整えていくことにした。

GWT単体でも便利だけれど、自動生成と組み合わせると、これは何ともいえないぐらい強力、というのがSimpleModelerが吐き出したGAEJ+GWTを触ってみた感想。
4月21日(火)のJJUG CCCで、デモしたいと思います。

http://www.java-users.jp/contents/events/ccc2009spring/

2009年4月15日水曜日

Google App Engine Java動いた

昨晩、SimpleModelerのGoogle App Engine Java(GAEJ)が動き出した。
GAEJのSDKでDataStoreの中身を見る方法が分からず、JDOを使うのも始めてなので、疎通が難航することを覚悟していたのだけれど、案外すんなりと動いた。
来週のJJUG CCCでは無事デモができそうである。

2009年4月13日月曜日

Google App Engine Java開発中

先週の水曜(4/8)にGoogle App Engine Javaが公開されたことを受けて、Google App Engine Python向けの機能拡張を保留して、Google App Engine Java向けの開発を開始した。
SimpleModelerではWeb MVCのMをEntity/Service/Documentの構成とするので、全体としてはESDVCとなる。この内、E(Entity)、D(Document)、V(View)は成果物のJavaやJSPがコンパイルできる所まできた。今はC(Controller)とS(Service)の実装中で、これができたら全体をつなげて疎通確認に入る予定。
来週火曜日4月21日のJJUG CCCでは、google App Engine Javaのデモも行いたい。

2009年4月7日火曜日

scala-toolsが落ちてる

今朝、急にmavenのscala-pluginが動かなくなる。

The server hosting scala-tools.org is experiencing a denial of service attack. We expect to have it back up and running really soon now(tm).

だそうです。
でも、-oオプションつけても動かないのは勘弁して欲しいなぁ。
mavenでscala-pluginのバージョン・チェックを回避すればよいかもしれないのだけど、回避方法が分からない。
しばし、待つとしよう。

2009年4月6日月曜日

Dojo Toolkit

Google App EngineのWebアプリケーションでDojo Toolkitを使うようにしてみた。
Dojo Toolkitはかなり大きいので配備の問題が悩ましいなぁと思っていたら、AJAX Libraries APIが使えることが判明。前にAJAX Libraries APIをみた時は今ひとつぴんと来なかったなのだけれど、こうやって実際にWebアプリケーションを作ってみるととても重要なAPIであることが分かった。

Dojo Toolkitはなかなかよい感じ。使い方も簡単で効果も抜群。こういったAjaxライブラリを使うのが、Webアプリケーションを作る際のいまどきの標準ということなのかな。

2009年4月3日金曜日

aggregation



クラウドでは、関連の深いデータをできるだけ近くに配備したいので、個々のデータのメタ情報にそいういった情報を格納する。たとえばGoogle App Engineの場合はデータの親データをKeyに入れているけれど、そういう目的ではないかと思う。
こういった情報の元ネタはモデリングの段階で収集するのが効率的であるけれど、その一つのアプローチがAggregateである。
ただ、「Aggregate Root」というステレオタイプを使うのはややクールでないかなぁ、と思いつつ常々扱いを気にしていたのだけれど、モデル内のaggregationを手繰ってAggregateを自動抽出すればよいことに思いついた。
現在の所SimpleModelerはassociationとcompositionをサポートしているもののaggregationはサポートしていない。というのは、aggregationはモデルの意味・意図が不明瞭であり、使い方が難しい、という評価があるモデルであり、モデル駆動を目指すSimpleModelerでは明確な使い方が見つかるまで、サポートを保留していたのである。
このaggregationを使うと、(ツールがモデルを解析する手間を惜しまなければ)Aggregateを明確に記述できる。Aggregateはクラウド時代にはとても重要なモデルの構成要素でありプラクティスとなるので、このAggregateを成立させるためのモデル要素としてaggregationをサポートする価値は非常に高い。
そのような判断でaggregationをサポートすることにした。
帰宅後、aggregationの実装。同時にcompositionを指定する文法も改良。
無事動作。

折を見て、Aggregateも実装したい。