Java™ Remote Method Invocation API
(Java RMI)
概要
Java Remote Method Invocation (Java RMI) を使用すると、プログラマは、Java テクノロジベースの分散アプリケーションを作成できます。このアプリケーション内では、ほかの Java 仮想マシン (異なるホスト上にある可能性がある) からリモートの Java オブジェクトのメソッドを呼び出すことができます。RMI は、オブジェクトの直列化を使ってパラメータの整列化および非整列化を行います。また、型を切り捨てないため、真のオブジェクト指向の多相性をサポートします。
API の仕様
アーキテクチャーおよび機能の仕様
チュートリアル
- Java RMI 入門
このチュートリアルでは、おなじみの Hello World プログラムの分散システム版を Java Remote Method Invocation (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 チュートリアルに含まれている RMI トレール
ここには、Java RMI システムの簡単な概要説明と、Java RMI 固有の機能を使用して実行時にユーザー定義のタスクをロードして実行する完全なクライアント/サーバーの例が含まれています。この例のサーバーには、pi の値を計算するためにクライアントが使用する、汎用の計算エンジンが実装されています。
拡張機能
- JDK 7 の拡張機能
JDK 7 Update 21 の変更点が説明されており、RMI プロパティー java.rmi.server.useCodebaseOnly
のデフォルト値が true
に設定されています。以前のリリースでは、デフォルト値は false
でした。
- Java RMI リリースノート
リリースノートには、Java RMI の API と実装、および関連ツール (rmic
、rmiregistry
、および rmid
) について、拡張機能および変更を説明しています。
詳細情報