2009年3月18日水曜日

document、subgraph、gae、grailsなど

昨日は、entityとdocumentのrelationshipの定義機能の追加と、entityとdocumentのマッピング機能のリファイン。これらの関係を表現するクラス図の生成ができるようになった。

今日から状態機械のネストに取り掛かる。
Graphvizのsubgraphに格闘。subgraph名は先頭が"cluster"となっていないといけないらしい。バグじゃないかなぁ。ドキュメントにはそんなこと書いてないぞ。

ふと、思いついたこと。
クラウド・アプリケーションは、ACIDのRDBMS、BASEのクラウドDBを併用するアプリケーション・アーキテクチャを取る。
さて、そこで、Google App Engine。Google App Engineは当然ながらBigTableをラップしたと思われるクラウドDBしか使用することができない。このため、RDBMSを使用するためには外部のサーバーを利用する必要がある。
このようなアーキテクチャを取る場合、Google App EngineとGrails on EC2という組合せはどうだろう。
Google App Engineの範囲でできること、Googlen App EngineでなければできないことはGoogle App Engineで行い、RDBMS、SpringやJava EEといった所を使いたい場合にはGrails on EC2を併用するわけである。
Google App EngineからGrailsの呼び出しはRESTやSOAPを使えばよい。
もちろん、Messagingも使えればよいのだけれど、現時点ではGoogle App Engineでサポートしていない。そういう意味では、Java EEのJMSを利用するためにGoogle App EngineからGrails on EC2を使いにいくのもありえる。
SimpleModelerではGoogle App EngineとGrailsの両方をサポートしているので、この併用アーキテクチャもサポートできたら面白そうである。

2009年3月17日火曜日

grailsとgaeoのcontroller

GrailsとGoogle App Engine Oilのcontrollerを比較。

Grails:

  • index
  • list
  • show
  • delete
  • edit
  • update
  • create
  • save


Google App Engine Oil:

  • create
  • destroy
  • edit
  • index
  • new
  • search
  • show
  • update


さて、どうするか…

状態機械と文書

3/7のSapporo Java Days 2009 Winter、3/13のatWorksも無事終了し、これらのセミナーをターゲットに開発してきたGrails、Google App Engineも一応動作するようになった。
また、状態機械もかなりよいところまで実現できた。

これらの成果はSimpleModeler 0.1.4として公開している。

3/13のatWareに続いて、3/14のedge2.cc、3/15のMindmapModeling勉強会(SimpleModeling勉強会)での反応をみると、Google App Engineは当然として、状態機械の評判がよい。
状態機械は必要な技術であることは認識しているものの、うまく使いこなせない、ツールが整備されていないといった微妙な立場の技術といえる。
そういった意味で、状態機械はモデル駆動開発を成功させる鍵となる技術であると考えていたのだけれど、その点を確認できてよかった。

ということで粛々と状態機械の実装を続けている。

また、状態機械をプログラムとして実装する上で、SimpleModelingでdocumentとしてモデル化する文書オブジェクトの存在が重要であると考えている。
ということで、今日からdocumentを整備して状態機械に接続する処理の開発に入った。

2009年3月5日木曜日

mavenではまる

あさってのSapporo Java Daysで行う予定のデモの確認をしようとしたら、突如動かなくなっていた。
調査の結果、mavenのscala pluginのバージョンが3月2日に2.10に上がったことの影響のようである。
2.10でpomのエラーチェックを強化したようなのだけれど、SimpleModelが取っているマルチ・プロジェクト方式のプロジェクトのpom.xmlをうまく認識できずエラーとしてはじくことが原因のように見える。正確に調査したわけではないので絶対にそうかどうかは不明だけど。
とりあえずはprojectサービスで生成するpomでscala pluginのバージョンを2.9に指定して回避することができた。
美しい本格的な対処方法はちょっと大変なので、当面はこの方法で回避しておくかなぁ。

あさってのデモでちゃんと動くことを願うばかりである。

2009年3月3日火曜日

状態機械

SimpleModeler 0.1.3b (20090301)でステートマシーン図描画のバグを修正して以下のようなステートマシーン図を表示できるようになった。
ステートマシーン図と同時に状態遷移表も作成する。
複雑な振舞いをするオブジェクトのモデリングでは状態遷移図(ステートマシーン図)と状態遷移表の両方が必要なので両方を同時に生成するSimpleModelerのアプローチは有効だと思う。

また、現在開発中の版では以下のように状態機械の存在をクラス図に記述するようにしてみた。オブジェクトの持つ状態と状態遷移を引き起こすイベントの関係を明確に表現できる。


2009年3月1日日曜日

SimpleModeler 0.1.3b (20090301)

SimpleModeler 0.1.3b (20090301)を公開しました。
0.1.3の内部リリース版です。バグ修正が主ですが、CSVやXMindからの移入機能を強化しています。

http://code.google.com/p/simplemodeler/downloads/list 

2009年2月22日日曜日

SimpleModeler 0.1.2リリース

SimpleModeler 0.1.2をリリースしました。

===

Scala DSLを用いたモデルコンパイラSimpleModeler 0.1.2をリリースしました。 

今回の目玉機能は: 
- CSVの移入 
- マインドマップ・モデルの移入(XMind形式) 
- CSVからマインドマップ・モデルへの変換です。 

その他、SimpleModelerの機能は以下の通りです。 
-javaオプション:Javaソースコード生成 
-htmlオプション:Web仕様書生成 
-grailsオプション:Grails POGO(Plain Old Grails Object)生成 

ダウンロードは以下の場所から。 
http://code.google.com/p/simplemodeler/downloads/list 

日々の開発の様子は以下の日記にて。 
http://simplemodeler.blogspot.com/ 

インストール方法はこちらを参照してください。
 http://groups.google.co.jp/group/simplemodelingsemi/web/simplemodeler