-Open Terracotta

http://www.terracotta.org/
Terracottaオープンソースになっちゃったということで、午前中-昼食時に社内で話題に。昨年末ぐらいにひまわり証券サイト案件(以前、事例紹介させてもらったもの)にて投入を考え評価つづけていたところ機能的に時期尚早のため投入できなかったのですがアーキテクチャに惹かれ使ってみたいと思っていたプロダクトでした。
最新の状況は後に見直してみるとして、これでやりたかったのがWEBコンテナのセッションクラスタリングです。当時WebLogic向けには提供されていた機能が、TomcatやJetty向けには提供されていなかったのでいろいろ試行錯誤を手元でしてもらってたのですが商用の壁があったため。これは今も技術が変わってなければクラスローダをいじる仕組みです。引っ掛け指定されているクラスから辿れるオブジェクト生成を全部管理下において、RMIのようなスタブ-スケルトンをバイトコードエンジニアリングで運用するものです。クライアントに散ってるクラスタリングされたオブジェクトに触ると、サーバへ軽量な通信が発生し、サーバホストされたオブジェクトが変更されます。他のクライアントでオブジェクトを触るとそれはサーバホストオブジェクトを触ることになるので、同じ状態のオブジェクトとなる。
その他当時に導入しなかった原因を思い出してみると、クラスタリングされたオブジェクトをホストするサーバ自体を冗長化する機能がComing Soonだったことと、WebLogic以外のコンテナではセッションIDをキーにHttpSessionの粒度で取り出すことが難しかった(のだったかな?なんかその辺です)。今ではTomcat向けのものが用意されてるようですし、サーバの冗長化も用意されていることでしょう(未確認)。ダウンロードしてみてるのですが、サーバが重い。。。


追記:
たしかBackport175を作ってたJonas Boner氏が開発に関わってた記憶があったんですが、今見るとコミッタリストに無いなぁ。辞めちゃったのかな?