S2Remoting
S2Remotingはこんなイメージ
サービス
Hello.java
HelloImpl.java
class Hello {
public String say();
}
サーバ側のコンポーネントの定義
class HelloImpl implements Hello {
public String say() {
return "Hello";
}
}
クライアント側のコンポーネントの定義
1108
ConnectorAdviceはConnectorに対し、コンポーネントの名前、メソッド名、引数を
<!-- 複数登録すれば、クラスタリング -->
'rmi://localhost:1108'
<!-- 登録するのはインターフェース。ConnectorAdviceがインターセプトして
実際はサーバで処理 -->
<!-- Connector経由でサーバに接続し、指定されたコンポーネントの
呼び出しを処理する -->
rmiConnector
'hello'
渡して処理してもらいます。
ConnectorはAdaptorに対し、コンポーネントの名前、メソッド名、引数を
渡して処理してもらいます。
Adaptorは、自分が登録されているコンテナから指定されたコンポーネントを
取得し、seasar.beans.BeanDesc経由でメソッドを実行します。
後は実行した結果が、Adaptor->Connector->ConnectorAdvice->クライアント
経由で戻ります。
ConnectorAdvice,Connector,Adaptorが裏で暗躍していますが、
呼び出す側も呼び出される側もそれに気づきません。
POJOに対する透明なサービスです。