J2EE勉強会(仮)
参加してきた。
内容は、
- Seasar2のJTA実装、コネクションプール実装をソースコード中心に追っかける
- JSFの特徴・アーキテクチャをPPTで説明する
でした。説明はすべてひがさん。お疲れ様でした&ありがとうございました。
Seasar JTA実装、コネクションプール実装
UserTransaction, TransactionManager, XAResource, Xid, XAConnectionなどの実装を説明していただいた。 S2のソースはX31にインストールしてあったので、プロジェクタのソースに合わせてEclipseでソースを追っかけた。(うーむ、Eclipseは便利だなぁ。Ctrl+クリック, F4, Ctrl-Oなど大活躍。)
質問を自由にやり取りさせていただいたのがありがたかったなと。
自分は禿会に未参加ということもあり、正直最初は質問するのを躊躇していた。が、ありがたいことにkoichikさんが話題を振ってくれたので、それで心理的に楽になってそれからはいろいろ質問することができた。プレゼン内容をどれだけギャラリーが理解しているか?ギャラリーのスキルはどのくらいなのか?が良くわからなかったので、私の質問が低レベルなのかどうなのか、ちょっと不安だったりしている・・・。ははは。どーなんでしょうね。
「S2はXAConnectionをエミュレートしている・・・」あたりの話が良く理解できなかったのだけど、これは自分がJTAの基本的な枠組みと、S2がJTAをどのように使用しようとしているか?がよく理解できていないからでしょうね・・・ ま、JTA仕様を読んだ方がよさそうな気もするな。当分、実務で分散トランザクションを使用する機会はなさそうなのが、悩ましいところではあるけど・・・。
JSF
WebObjects Frameworkと似ているなぁ。と感じてしまった。
- コンポーネントの入れ子構造がツリー構造を構成する点
- Request-Response Loopの処理フェーズに相当する概念(JSF: Request Lifecycleの各フェーズ)がある点
- WebObjects: awake, takeValuesFromRequest, invokeAction, appendToResponse
- JSF: restoreView, applyRequestValues, processValidation, updateModelValues, invokeApplication, render
- 上記フェーズがコンポーネントのツリー構造をトラバースして処理が実行される点
- コンポーネントのメンバ変数に状態を保持する点
- ただし、クライアントサイド(ViewStateライクなHTMLへの埋め込み)で状態を保持することも可能。
- Session Sticky?
- HTTP RequestとHTMLページのUIコンポーネントの同期機構が設けられている点
現場でもまれた末に生まれたものだけあり、JSFにはいくつか優れている点があるように感じられた。
- viewを復元するフェーズ(restoreView)が設けられている点
- Validationフェーズ(processValidation)が設けられている点
- HTMLポストした値とは別に、ポストする前の値を覚えている点
- JavaScript (つーか、WebObjectsはJavaScriptめちゃくちゃ弱いからね・・・)
打ち上げ
別件で用事が合ったので、打ち上げは不参加・・・のつもりだったのだけど、用事が比較的早く終わったので合流を画策するも頼みの綱の携帯につながらない・・・残念無念。ということで帰宅。
ま、埼京線がある時間だったからいいことにするか。