Java Remote Method Invocation (Java RMI)を使用すると、プログラマは、Javaテクノロジベースの分散アプリケーションを作成できます。このアプリケーション内では、他のJava仮想マシン(異なるホスト上にある可能性がある)からリモートのJavaオブジェクトのメソッドを呼び出すことができます。RMIは、オブジェクトの直列化を使ってパラメータの整列化および非整列化を行います。また、型を切り捨てないため、真のオブジェクト指向の多相性をサポートします。
RMIアプリケーションのセキュリティを向上するには、「RMIのセキュリティの推奨事項」を参照してください。
スタート・ガイド
このチュートリアルでは、おなじみのHello Worldプログラムの分散システム版をJava RMIを使って作成する手順を説明します。Hello Worldアプレットでは、アプレットのダウンロード元のサーバーへリモート・メソッド呼出しを行い、メッセージ「Hello World!」を取得します。
Java RMIによるカスタム・ソケット・ファクトリの使用
このチュートリアルでは、プログラマが選択したタイプのソケットをJava RMIランタイムで使う、分散システム版Hello Worldプログラムの作成方法を説明します。また、このチュートリアルでは、SSLソケットを介してJava RMIを使う方法についても説明します。
アクティベーションのチュートリアル
このチュートリアルのセットでは、Java RMI APIを使って起動可能なオブジェクトを実装、登録、および使用する方法を説明します。チュートリアルごとに、起動可能なオブジェクトを実装する異なった方法を示します。すべてのチュートリアルにおいて、起動可能なオブジェクトに関する情報をJava RMI起動システム・デーモン(rmid)に登録する同一のパラメータ化されたセットアップ・プログラムを使います。
rmidを起動するinetd
の構成rmid
Solarisオペレーティング・システム(Solaris OS)でサポートされるインターネット・サービス・デーモンのinetd
には、システム・ブート時にサービスを起動させる代替手段が用意されています。インターネットの標準サービスに対するサーバー・プロセスであるこのデーモンを、必要に応じてサービスを起動するように構成することができます。
inetd
から起動されるサービスの設計
このチュートリアルでは、特別にエクスポートされるローカル・レジストリを使用したサービス・プログラムを構築する方法を説明します。その結果、クライアントがサービスのローカル・レジストリに接続されるときに、inetd
からサービスを起動することができるようになります。また、サービス・プログラムを起動させるinetd
の構成方法も説明します。
Java RMIの使用による動的なコードのダウンロード(java.rmi.server.codebase
プロパティを使用)
Javaプラットフォームのもっとも重要な機能の1つとして、通常は異なる物理システム上で稼働する別のプロセスで実行中のVMに、URLからJava Softwareを動的にダウンロードする機能があります。この結果リモート・システムは、そのシステムのディスク上にインストールされていないアプレットなどのプログラムを実行できます。このチュートリアルでは、Javaシステム内での動的なコードのダウンロード方法、さらにJava RMIでの使用方法を説明します。
JavaチュートリアルのJava RMIトレール
ここには、Java RMIシステムの簡単な概要説明と、Java RMI固有の機能を使用して実行時にユーザー定義のタスクをロードして実行する完全なクライアント/サーバーの例が含まれています。この例のサーバーには、piの値を計算するためにクライアントが使用する、汎用の計算エンジンが実装されています。
rmic
、rmiregistry
、およびrmid
)について、拡張機能および変更を説明しています。