J2EE勉強会

  • 人数が少なめだったせいか、進行が自然でよかった
  • オブジェクト指向入門第2版の日本語訳が来年出るらしい(米澤さんが酒匂さんから聞いたとか)
  • おやつタイムにCodeSugarプラグインの話(by かくださん)

ポジションペーパー「おすすめツール」

J2EE界隈おすすめのお品書き(by emoさん)

  • 書籍「Concurrency」の内容は

http://www.graco.c.u-tokyo.ac.jp/~tamai/concurrency/slides/
を読めばだいたいわかるそうです

  • 形式記述言語の話に
    • SPIN、VDM++、Z
    • OMGのOCLはイマイチらしい(オレの質問)

POSA Vol2(by koichikさん)

Synchronization Pattern 四つ

  • Scoped Locking

スコープはずれたらロックを自動で解放。Javaだとsynchronized

  • Strategized Locking

プラットフォームごとにロックのメカニズムが違うのをストラテジパターンで切り替え

  • Thread-Safe Interface

ロックのあとまたロックとかをやめる。publicなメソッドでのみロック&synchronizedなメソッドは他のsynchronizedなメソッドを呼び出さない

  • Double-Checked Locking Optimization

会場で大受け。勉強になった。ここがPOSA Vol2&3で一番おもしろいらしい。
ロックの必要性をロックの前にチェック
J2SE 1.4まででは破綻。シングルトンの初期化の例。synchronizedブロックの外側では変数の内容が保証されない(共有メモリーの内容を作業メモリーに書き戻すタイミングの問題)=最初のチェックが正しい保証がない。変数にvolatileを付ければ常に作業メモリーと共有メモリーが同期されるようになるけど、変数があっても指すオブジェクトがあるかどうかはわからないからやっぱり×→TigerではOKになった。ただし、オーバーヘッドを減らすためのパターンなのにvolatileでオーバーヘッドが増えるのでは意味がない。Javaではstatic initializer使えばOK。結局このパターンはJavaでは不要
チェックが間違う現象をシングルCPUのマシンで確認するのは難しい。デュアル以上のマシンでないと不具合があるのがわからない
Seasar2.1でなんかあったとかなかったとか

BPELSOAをやってみよう(by 吉崎さん)

  • うちの上司はSOAにかなり否定的だし、自分自身もベンダーの説明とか聞いてると宣伝くさくてうんざりするんだけど、否定するなら少なくとも理解してからでないと、と思った。PartnerLinkが表面的にしかわからず。次回は続編らしいので要復習か
  • 米国の証券会社はT+1(翌日決済)を義務付けられるはずだったんだけど、間に合わないということで無期限延期になった。米国の証券がSOAの方向に走るチャンスを逃した(by koichikさん)
  • レガシーはたいていでかいシステムが1個なんでベンダーはともかくユーザーがSOA化の経験を積むのは難しい。結局は一発勝負になってしまう(by koichikさん)

飲み会

某所から怪獣が暴れているという連絡が入り、出席を断念。kikainekoさんと話したかったんだけどなー
もし、ゲストを呼ぶという話がまだ有効ならid:JavaBlackさんがいいっす