RMI プログラムに必要なファイル
RMI モジュールには、RMI ウィザードといくつかの RMI テンプレートがあります。どちらかのツールを使用して、RMI プログラムの各部分の Java ソースファイル (.java ファイル) を生成できます。生成する必要がある実際のファイルは、RMI プログラムの種類によって異なります。
リモートインタフェースファイル
リモートインタフェースファイルは、java.rmi.Remote を継承した Java インタフェースです。リモートインタフェースは RMI サーバーのインタフェースを定義します。クライアントとサーバーが互いに通信するためのスタブファイルとスケルトンファイルを作成するようコンパイルされます。サーバー側では、実装クラスを持つパッケージにリモートインタフェースが必要です。一方、クライアント側では、リモートインタフェースで宣言されているメソッドシグニチャを知っている必要があります。これは、クライアント側がこれらのメソッドを呼び出すからです。
RMI モジュールでは、既存のリモートインタフェースを使用するか、新たに独自のものを作成します。
-
RMI 技術を使用して、他のユーザーがすでに開発し配備した RMI サーバーにアクセスするクライアントプログラムを作成する場合は、クライアントプログラムが呼び出すことができるサーバー側メソッドを宣言するリモートインタフェースのコピーをまず作成します。
-
RMI サーバー、または RMI アプリケーションを最初から開発しようという場合は、おそらく自分自身のリモートインタフェースを作成することから始めます。
RMI テンプレートには、リモートインタフェースを生成するテンプレート RemoteInterface が含まれています。これを IDE 編集ウィンドウで完成させます。RMI ウィザードは、リモートインタフェースの作成をサポートする機能が強化されており、インタフェース要素を正しい構文で追加する各種ボタンが用意されています。
クライアント側ファイル
クライアント側プログラムに必要なファイルは以下のとおりです。
-
クライアントクラス。クライアントクラスはテンプレート "RMI_Client" を使って生成できます。クライアントクラスの生成後、RMI サーバーへの参照を RMI レジストリから検索し、この参照を使ってサーバーメソッドを呼び出すロジックを追加して、その main() メソッドを完成させます。
-
RMI 技術により、クライアントプログラムは、レジストリの検索を行なった後、実行時にスタブファイルを取得できます。
クライアントプログラムを作成して既存の RMI サーバーにアクセスする場合は、リモートインタフェースのコピーを作成し、これにプログラムが呼び出すことができるサーバー側メソッドのメソッドシグニチャを入れておく必要があります。
サーバー側ファイル
サーバー側プログラムに必要なファイルは次のとおりです。
-
実装クラス。これは、リモートインタフェースで宣言されたメソッドの実装を含んでいるので、実装クラスと呼ばれています。これらのクラスは、クライアントが実行できるビジネスロジックを構成します。
RMI モジュールは、独自の「起動」コードを含む実装クラスを生成します。つまり、それら自身のインスタンスを作成し、自身をエクスポートし、RMI レジストリに登録します。実装クラスは RMI テンプレートまたは RMI ウィザードを使って生成できます。
実装クラスを生成した後で、ビジネスロジックを作成する必要があります。ビジネスロジックが複雑な場合、リモートインタフェースで宣言された公開メソッドを、宣言されたリモートメソッドが呼び出す非公開メソッドで補完できます。
-
スケルトンクラス。これは、リモートインタフェースをコンパイルする際に生成されます。
RMI テンプレートを使用してサーバー側ファイルを生成する場合、リモートインタフェースを生成し完成させてから (または既存のインタフェースを取得してから)、他のサーバー側ファイルを生成するようにします。RMI ウィザードを使用する場合は、ウィザードがリモートインタフェースの作成に役立ちます。
著作権と商標について