Transfer Event Model
Transfer Event Model とは、なんだろうか。
データベースのテーブルをマッピングした Transfer オブジェクト経由でデータベース上のデータに対してなんらかの変更が加えられた(もしくは、変更が加えられる)ことを監視して、処理を発生させることができるということのようだ。
« 2008年05月 | メイン | 2008年07月 »
Transfer Event Model とは、なんだろうか。
データベースのテーブルをマッピングした Transfer オブジェクト経由でデータベース上のデータに対してなんらかの変更が加えられた(もしくは、変更が加えられる)ことを監視して、処理を発生させることができるということのようだ。
Google Groups に参考になるスレッドが上がってた。
addXXXObserver(component), where to call? is singleton required?
そこからのリンクMy Take on Transfer ORM Event Model - BeforeCreate Example 。
Observer の登録の仕方だ。これを参考にすると、すっきりした。
もともと、無精なものだから、どうにも Transfer の Generated Methods の入力が煩わしい。
多少でも楽になればと思い、ちょっとツールを作ってみた。
これを使えば、

こういう風に、一覧で利用できる関数を表示してくれる。
Transfer のリレーション設定の一つである manytomany って、なんとなく見過ごしてきたけど、実際のところ、これって何よ?というわけで、調べてみた。
多対多ということなんだろうけど、浅学なのか、こういうリレーションてのは、あまり考えたことがなかった。
例えば、ユーザーというデータがあって、そのユーザーが購入した商品は、複数ある。
逆に、ある商品を購入したユーザーは、複数人いるというのが、多対多ということらしいけど、どうやって設定するのやら。
以前、Transfer のサンプルの tBlog の Transfer.xml で manytomany を見かけたけことを思い出して、参考にしてみた。
インターネット上の情報から考えても、どうやら、リレーション用のテーブルを設けるらしい。
ColdSpring のドキュメントに Remote Facades という項目がある。
これも確か、デザインパターンで見たような気がする。
便利なサイトがあったので、参考にさせてもらった。ありがたい。
なるほどなるほど。
実際の実装にはここを参考にさせてもらった。
で、とりあえず、http://localhost/shopping/model/ItemArrayBean.cfc?method=getItemArray にアクセス。
コンポーネント [[リポジトリ]]\shopping\www\model\ItemArrayBean.cfc のメソッド 'getItemArray' はリモートでアクセスできません。
cffunction の access 属性が public なのだから当然。
以前のエントリで、Generated Method を一覧してくれるツールをアップしたけど、やっぱり、公式なツールとしてすでに存在していたようだ。
![]()
こんな感じで関数を一覧してくれるので、紙のドキュメントにすることも可能だ。
さて、そろそろネタも尽きてきた。
ここらで、ColdFusion のフレームワーク利用について、考えてみる。
結果から言うと、使ってもいいし、使わなくてもいいというところだろうか。
やはり、フレームワークとなると、複数人で作業して、かつ、それぞれの技術能力にバラツキがある場合とかじゃないと、かえってマイナスの要因が目立ってしまう。
しかし、読んでみた率直な感想としては、自分一人で開発する場合でも、使ってみてもいいかなと感じる。
CFMLが動く環境は、ColdFusion だけでなく、フォーラムにもあがっているように、Railo と、Open BlueDragon というものがある。
どうやら、両者とも、非商用は無料らしい。ということは、商用は有料となる。
Adobe 製 ColdFusion ではなく、Railo や、Open BlueDragon を選択する理由とは、なんだろうか。
Servlet を動かせるようだから、Java とのさらなる親和性かなぁ・・・。よくわからない。
さて、とにかく、Railo を動かしてみた。
結果的に、これまで作ってきた Model-Glue や ColdBox のアプリケーションは、見事、撃沈。
動いてくれなかった。フレームワーク上で発生している問題っぽい。
深くは調査しなかったので、何か方法があるのかもしれないけど、あっさりあきらめました。ごめんなさい。
残念な結果に終わってしまった。
数年前に調べたときは、国内のレンタルサーバーはあまりなかったけど、最近は、どうだろうか。
調べると言っても、Google で検索するしか方法を思いつかない。
条件としては、個人利用できる程度の値段設定ということかな。
やっぱり、国内で利用できるものということになると、ほとんど状況は変わっていない。
heteml (ヘテムル)
Futurism Works
(ランニングコストの安い順に並べました)
以前と一緒だ。値段も、一月あたり、1,500円とか、2,000円。
この2つは、以前調べたときもあった。これからも続けてほしいものだ。
ただ、両者とも、データベースが MySQL +αだけで、PostgreSQL が使えないのが、個人的には、かなり減点。しかも、MySQL のバージョンが、heteml の方が、4.0.25 だし、Futurism Works に至っては、バージョン4系としか書いてない。どうにもやる気を感じることができない。あくまで、個人的に。
「4.1 系と、5系を利用できる」とかだと、かなり印象は変わったはず。
開始当初からの状態で、変えられないという事情もあるんだろうけどね。
Futurism Works は、ColdFusion8 を準備中と書いてあるけど、どうなんだろうか。
他にも ColdFusion を利用できそうなレンタルサーバー屋があったけど、いささか、お値段が・・・。という感じ。
そんな中、とてもあやしい(個人的な印象だけ)けど、日本法人のあるお値打ちなレンタルサーバー屋がもう一つあった。
「ColdFusion でActive Directory」という話題があって、興味はあったので、調べてみたんだけど、結局のところ、ColdFusion では、Active Directory 認証はできないと思った方がいいような結果しか導けなかった。
そもそも、ColdFusion の LDAP 用のタグ <cfldap> には、認証というオプションがないので、「LDAP 情報を参照できるかどうか」ということしかわからない。これが LDAP では、当たり前のことなのかわからないけど、とにかく、参照、変更、削除という情報操作しかできないのだ。
S11HT で Bluetooth レシーバーに使っているDRC-BT15Pについて、買う前には、あまりわからないことを書いておこう。
ColdFusion には Verity という機能があって、今まで、試したことがなかったけど、ちょっと、やってみた。
要は、いろんなファイルを一括で検索できるようにしてしまおうというもの。
namazu みたいなものだと認識している。