ひがやすを技術ブログ

電通国際情報サービスのプログラマ

S2Remoting

S2Remotingはこんなイメージ
サービス
Hello.java


class Hello {
public String say();
}
HelloImpl.java

class HelloImpl implements Hello {
public String say() {
return "Hello";
}
}
サーバ側のコンポーネントの定義


1108


クライアント側のコンポーネントの定義


<!-- 複数登録すれば、クラスタリング -->

'rmi://localhost:1108'


<!-- 登録するのはインターフェース。ConnectorAdviceがインターセプトして
実際はサーバで処理 -->



<!-- Connector経由でサーバに接続し、指定されたコンポーネントの
呼び出しを処理する -->
rmiConnector
'hello'



ConnectorAdviceはConnectorに対し、コンポーネントの名前、メソッド名、引数を
渡して処理してもらいます。
ConnectorはAdaptorに対し、コンポーネントの名前、メソッド名、引数を
渡して処理してもらいます。
Adaptorは、自分が登録されているコンテナから指定されたコンポーネント
取得し、seasar.beans.BeanDesc経由でメソッドを実行します。
後は実行した結果が、Adaptor->Connector->ConnectorAdvice->クライアント
経由で戻ります。
ConnectorAdvice,Connector,Adaptorが裏で暗躍していますが、
呼び出す側も呼び出される側もそれに気づきません。
POJOに対する透明なサービスです。