EJBをクラスタ環境にデプロイした場合、どのようにバランシングするか
つぎの3つの方法が頭に浮かびました。
まず、ロードバランサを導入することで、RMIリクエストを振り分けることができるか検討します。RMIのポートを振り分ければ良いだけなので、実現可能でしょう。ただし、ステートフルEJBの場合、HTTPのようにリクエストの中身を見てセッション・スティッキーな設定はできないだろう。(RMIプロトコルを解釈する高機能なロードバランサは存在するのかも知れない。)
J2EEサーバのEJBレプリケーション機能と組み合わせた場合、どのホストでリクエストを受け付けても同じ処理をできると思うので、ロードバランサで適当に振り分けても大丈夫かもしれないが、レプリケーションはクラスタ化するホスト数が増えた場合に速度・負荷が心配になります。
RMIの標準機能については、3番のJ2EEサーバの機能を先に見つけてしまったので、J2EEサーバの機能拡張がわざわざあるということは、RMIの標準機能ではないのだろうと推測してあまり調べてません。
結論としては、J2EEサーバの機能でできるようです。以下、発見した製品のみまとめました。
Oracle Application Server 10g
http://otndnld.oracle.co.jp/document/products/as10g/1013/doc_cd/web.1013/B28598-01/servclus.htm
BEA WebLogic Server 7
http://jp.bea.com/e-docs/wls/docs70//cluster/load_balancing.html#161434
http://edocs.beasys.co.jp/e-docs/wls/docs92/rmi/rmi_api.html
TomcatとかJBossとかどうなってるんだろう。