Hello Worldプログラムは単純ですが、このプログラムを通して、静的な呼び出しを使用するほとんどのCORBAプログラムの開発に必要なタスクすべてを学習し、実験できます。
この例では、クライアント側からサーバント・オブジェクトのオペレーションを利用可能にするために、ネーム・サービスが必要です。 サーバーは、さまざまなインタフェースを実装しているオブジェクトの参照を発行できるようにするため、ネーム・サービスへのオブジェクト参照が必要です。 これらのオブジェクト参照は、クライアントがメソッドを呼び出すのに使用されます。 Java SEに同梱されているネーム・サービスには、2つのオプションがあります。一時ネーム・サービスであるtnameservと、ブートストラップ・サービス、一時ネーム・サービス、持続ネーム・サービスおよびサーバー・マネージャを含むデーモン・プロセスであるorbd (a href= "../../../tools/unix/orbd.html">Solaris、Linux、Mac OS XまたはWindows)です。 この例ではorbdを使用しています。
この例を実行するにあたって、Solarisソフトウェアの使用時は、ポート1024未満でプロセスを開始する場合、rootになる必要があることを思い出してください。 このため、1024以上のポートを使用することをお薦めします。 この例では、-ORBInitialPortオプションを使ってデフォルトのポート番号をオーバーライドします。 次の説明では、Java IDL Object Request Broker Daemon orbd用にポート1050を使用できることを前提としています。 必要であれば別のポートに変更してください。 Windowsでこの例を実行する場合は、パス名にバックスラッシュ(\)を使用します。
開発マシンでこのクライアント・サーバー・アプリケーションを実行するには:
Solaris、LinuxまたはMac OS Xのコマンド・シェルで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プログラム」を参照してください。
Solaris、LinuxまたはMac OS Xのコマンド・シェルで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と入力すると停止します。 Solaris、LinuxまたはMac OS Xのシェルでは、プロセスを見つけて終了(kill)します。