「Hello World」プログラムは単純ですが、このプログラムを通して、静的呼び出しを使用する CORBA プログラムの開発に必要な作業のすべてを学び、経験することができます。
この例では、クライアント側からサーバントオブジェクトの操作を利用可能にするために、ネームサービスが必要です。サーバは、さまざまなインタフェースを実装しているオブジェクトの参照を発行できるようにするため、ネームサービスへのオブジェクト参照が必要です。これらのオブジェクト参照は、クライアントがメソッドを呼び出すのに使用されます。J2SE v.1.4 のネーミングサービスには 2 つのオプションがあります。一時ネーミングサービスである tnameserv、ブートストラップサービス、一時ネーミングサービス、持続ネーミングサービス、またはサーバマネージャを含むデーモンプロセスである orbd です。この例では orbd を使用します。
この例を実行するにあたって、Solaris ソフトウェアの使用時は、ポート 1024 未満でプロセスを開始する場合、root ユーザになる必要があります。このため、1024 以上のポートを使用することをお勧めします。この例では、-ORBInitialPort オプションを使ってデフォルトのポート番号をオーバーライドします。以下の説明では、Java IDL Object Request Broker Daemon (orbd) 用にポート 1050 を使用できることを前提としています。必要であれば別のポートに変更してください。Windows でこの例を実行する場合は、パス名に円記号 (\) を使用します。
開発マシンでこのクライアントサーバアプリケーションを実行するには、次のようにします。
UNIX コマンドシェルで orbd を起動するには、次のように入力します。
orbd -ORBInitialPort 1050 -ORBInitialHost localhost&
Windows の MS-DOS システムプロンプトでは、次のように入力します。
start orbd -ORBInitialPort 1050 -ORBInitialHost localhost
1050 はネームサーバを実行するポートです。-ORBInitialPort は必要なコマンド行の引数です。Solaris ソフトウェアの使用時は、1024 より小さいポートでプロセスを開始する場合は、root ユーザになる必要があります。このため、1024 以上のポートを使用することをお勧めします。
また、-ORBInitialHost も要求されるコマンド行引数です。この例では、クライアントとサーバはどちらも開発マシンで実行しているので、ホストを localhost に設定しました。複数のマシンで開発する場合は、ホスト名に置き換えます。このプログラムを 2 台のマシンで実行する場合の例は、「2 台のマシンで実行する Hello World プログラム」を参照してください。
UNIX コマンドシェルで Hello サーバを起動するには、次のように入力します。
java HelloServer -ORBInitialPort 1050 -ORBInitialHost localhost&
Windows の MS-DOS システムプロンプトでは、次のように入力します。
start java HelloServer -ORBInitialPort 1050 -ORBInitialHost localhost
この例の -ORBInitialHost localhost は省略することができます。ネームサーバが Hello サーバとして同一ホスト上で動作しているからです。ネームサーバが別のホストで動作している場合は、IDL ネームサーバが動作しているホストを -ORBInitialHost nameserverhost で指定します。
前回の手順と同様にネームサーバ (orbd) のポートを指定します。たとえば -ORBInitialPort 1050 のようになります。
java HelloClient -ORBInitialPort 1050 -ORBInitialHost localhost
この例の -ORBInitialHost localhost は省略することができます。ネームサーバが Hello クライアントとして同一ホスト上で動作しているからです。ネームサーバが別のホストで動作している場合は、IDL ネームサーバが動作しているホストを -ORBInitialHost nameserverhost で指定します。
前回の手順と同様にネームサーバ (orbd) のポートを指定します。たとえば -ORBInitialPort 1050 のようになります。
Hello world!!
ほとんどの CORBA サーバと同様に、ネームサーバは明示的に停止されるまで稼動を続けます。複数のサーバを同時に稼動させるのを避けるため、クライアントアプリケーションが正常に復帰した後、ネームサーバプロセスを終了させます。DOS プロンプトでは、サーバを実行しているウィンドウを選択して Ctrl+C と入力すると停止します。UNIX シェルでは、プロセスを検出して終了 (kill) します。
Java IDL トップへ |