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) します。