S2Remotingを使うと,diconに記述したコンポーネントをリモートオブジェクトとして公開したり,リモートオブジェクトをコンポーネントとして簡単に利用できるようにするための共通基盤を提供します.
S2Remotingは単独で使うものではなく,S2RMIやS2AxisなどのS2Remotingファミリープロダクトと組み合わせて使うことが意図されています.
実行環境
S2Remotingを実行するには,以下のものが必要です.
- JDK (J2SE SDK) 1.4以降が必要です.S2Remoting-V1.0.0の開発とテストはJDK
1.4.2_07で行っています.ダウンロードはこちら.
- S2の2.1以降が必要です.S2Remoting-V1.0.0の開発とテストはS2.2.2で行っています.ダウンロードはこちら.
開発環境
S2Remotingのディストリビューションは,他のS2関連プロダクトの多くと同様,Eclipse
Javaプロジェクトをアーカイブしたものとなっています.
- Eclipse3.0以降が必要です.S2Remoting-V1.0.0の開発とテストは,Eclipse3.0.1で行っています.ダウンロードはこちら.
- S2の2.1以降が必要です.S2Remoting-V1.0.0の開発とテストはS2.2.2で行っています.ダウンロードはこちら.
S2Remotingはこちらからダウンロードすることが出来ます.
あらかじめS2がEclipseワークスペースにインポートされている必要があります.
- ダウンロードした
S2Remoting-Vx.y.z.zip ファイルを適当なディレクトリに解凍してください.
- Eclipseを起動し,「ファイル」−「インポート」メニューを選択してください.
- 「インポート」ウィザードで「既存プロジェクトをワークスペースへ」を選択し,「次へ」をクリックしてください.
- 「参照」ボタンをクリックし,先に解凍したディレクトリに出来ている
s2-remoting-x.y.z ディレクトリを選択し,「OK」ボタンをクリックします.
- 「終了」ボタンをクリックします.
S2Remotingは,アプリケーションがRMIやWebサービス (JAX-RPC) などのAPIを意識することなく,リモート呼び出しを行えるような共通基盤を提供します.
リモート呼び出しを使わない場合,クライアントアプリケーション(またはコンポーネント)とS2により管理されるコンポーネントは次のような関係になります
(クライアントもS2コンテナで管理される場合があります).
S2Remotingを使用すると,次のように分散環境にあるコンポーネントを呼び出すことができるようになります.
クライアントもコンポーネントも何も変更する必要はありません.
S2Remotingはこの図の中のインターセプタを提供します.
また,コネクタのインタフェースおよび抽象クラスを提供しますが,実装クラスは提供しません.コネクタやアダプタの実装クラスは,S2RMIやS2Axisなど,プロトコルごとに個別のプロダクトとして提供されます.
コンポーネントをリモート呼び出しするには,S2Remotingの提供するRemotingInterceptor を使用します.
<!-- リモート呼び出しのインターセプタ -->
<component name="remoting" class="org.seasar.remoting.common.interceptor.RemotingInterceptor"/>
<!-- コンポーネントのプロキシ (インタフェース) -->
<component name="名前" class="コンポーネントのインタフェース">
<aspect>remoting</aspect>
</component>
<component>要素のclass属性には,コンポーネントのインタフェースを指定します.name属性に指定する名前は,プロトコルによってはリモートオブジェクトのロケーションとして使用されます.詳細は実際に使用するプロダクトのドキュメントを参照してください.
インターセプタにはコネクタを設定する必要があります.通常はインターセプタと同じdiconファイルにコネクタを定義することで,S2により自動インジェクションで設定されます.
|