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
この例では、ネームサーバが Hello サーバと同じホストで動作しているので、-ORBInitialHost localhost は省略できます。 ネームサーバが別のホストで動作している場合は、IDL ネームサーバが動作しているホストを -ORBInitialHost nameserverhost で指定します。
前回の手順と同様にネームサーバ (orbd) のポートを指定します。たとえば -ORBInitialPort 1050 のようになります。
java HelloClient -ORBInitialPort 1050 -ORBInitialHost localhost
この例では、ネームサーバが Hello クライアントと同じホスト上で動作しているので、-ORBInitialHost localhost は省略することができます。 ネームサーバが別のホストで動作している場合は、IDL ネームサーバが動作しているホストを -ORBInitialHost nameserverhost で指定します。
前回の手順と同様にネームサーバ (orbd) のポートを指定します。たとえば -ORBInitialPort 1050 のようになります。
Hello world!!
ほとんどの CORBA サーバと同様に、ネームサーバは明示的に停止されるまで稼動を続けます。 複数のサーバを同時に稼動させるのを避けるため、クライアントアプリケーションが正常に復帰した後、ネームサーバプロセスを終了させます。 DOS プロンプトでは、サーバを実行しているウィンドウを選択して Ctrl+C と入力すると停止します。 UNIX シェルでは、プロセスを検出して終了 (kill) します。
Java IDL のホーム |