入門: Hello World


このチュートリアルについて以下の内容を説明します。

注 : Hello World プログラムは、あらかじめ構築されたスタブおよびスケルトンのファイルで提供されます。しかし、自分でこれらのファイルを生成してチュートリアルから最大限のことを学ぶためには、idltojava コンパイラをダウンロードする必要があります。

Hello World プログラムの概要

このチュートリアルでは、Java IDL を使って CORBA 分散アプリケーションを構築する基本的な方法を学びます。伝統的な Hello World プログラムを、アプレットとアプリケーションクライアントを持つ分散アプリケーションとして構築します。Hello World プログラムは、出力される文字列を返すだけの簡単なプログラムです。基本的な機能を、下の図で説明します。


分散型 Hello World プログラムの機能

  1. クライアント (アプレットまたはアプリケーション) は、HelloServer の sayHello() オペレーションを呼び出す
  2. ORB はその呼び出しを IDL インタフェースに登録されているサーバントオブジェクトに転送する
  3. サーバントの sayHello() メソッドが実行され、Java の String を返す
  4. ORB は、その String をクライアントに転送する
  5. クライアントは、String の値を出力する

チュートリアルの概要

Hello World プログラムは単純ですが、このプログラムを通して、静的呼び出しを使用する CORBA プログラムの開発に必要な作業すべてを学び、経験することができます。

JDK をインストールしたディレクトリ内の docs/guide/idl/tutorial には各レッスン用のディレクトリが準備されています。レッスン用ディレクトリ内には、レッスンを完了するのに必要な有効なソースファイルとコンパイル済みのクラスファイルが含まれています。各レッスンは、前のレッスンを修了したことを前提としていますが、任意の順番でレッスンを行うこともできます。

このチュートリアルで行われるレッスンは以下のとおりです。

Hello World のプレビュー

チュートリアルを通して学ぶ前に、Hello World アプリケーションを実行してみることもできます。使用しているオペレーティングシステムに合わせて、以下の指示を参照してください。

SolarisTM 環境での Hello World の構築

Hello World アプリケーションのソースコードは、[Path_to_JDK]/docs/guide/idl/examples/Hello ディレクトリにあります。以下の指示は、Java IDL のネームサーバ用にポート番号 1050 を使用することを前提にしています。必要に応じて別のポート番号に置き換えてください。ただし、1024 より小さいポート番号を使うには、UNIX マシンの場合は root でのアクセス権、Windows マシンの場合は管理者権限が必要です。[Path_to_JDK] の部分は、実際に JDK がインストールされているディレクトリへの完全に修飾されたパスで置き換えてください。

注: ステップ 2 と 3 を実行するためには、あらかじめ idltojava コンパイラのダウンロードとインストールが完了している必要があります。

  1. レッスンを行うディレクトリへ移動します。
    cd [Path_to_JDK]/docs/guide/examples/hello
  2. idltojava コンパイラおよび Java バイナリへのパス ([Path_to_JDK]/bin) が環境変数に指定されていることを確認します。

  3. IDL ファイルを idltojava でコンパイルしてスタブとスケルトンを作成します。
    注 : idltojava は、デフォルトのプリプロセッサを使用するようにハードコードされています。Solaris マシンではプリプロセッサを /usr/ccs/lib/cpp 内で検索します。2 つの環境変数、CPPCPARGS を変更することにより、idltojava が使用するプリプロセッサを変更できます。CPP には、使用するプリプロセッサのフルパス名を指定します。CPARGS には、プリプロセッサに渡す完全な引数のリストを指定します。idltojava のコマンド行に -fno-cpp を追加することにより、プリプロセッサをオフにすることもできます。詳細情報については、idltojava コンパイラとともにダウンロードされた idltojava のリファレンスページを参照してください。
    idltojava Hello.idl
  4. Java ファイルをコンパイルします。その際、スタブとスケルトンも含めます。
    javac *.java HelloApp/*.java
    
  5. Java IDL ネームサーバを起動します。
    tnameserv -ORBInitialPort 1050 &
    

    次のような文字列が表示されます。

    Initial Naming Context:
    IOR:000000000000002849444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696e67436f6e746578743a312e3000000000010000000000000034000100000000000974687572626c6967000086760000001cafabcafe0000000233de2f5c00000000000000080000000000000000
    TransientNameServer: setting port for initial object references to: 1050
    

    サーバがバックグラウンドで稼動しています。クライアントプログラムを実行するまでサーバの稼動状況をこれ以上見ることはできません。

  6. Hello サーバを起動します。
    java HelloServer -ORBInitialPort 1050 &
  7. Hello クライアントアプリケーションを実行します。
    java HelloClient  -ORBInitialPort 1050

    次の文字列がコマンド行に出力されます。

    Hello world!!

ほとんどの CORBA サーバと同様に、ネームサーバと Hello World サーバは明示的に停止されるまで稼動を続けます。さまざまなサーバを同時に稼動させるのを避けるため、レッスン 1 に進む前にサーバプロセスを終了させます。

Windows 環境での Hello World の構築

Windows 95 または Windows NT 環境では、Hello World アプリケーションのソースコードは [Path_to_JDK]¥docs¥guide¥idl¥examples¥Hello にあります。以下の指示は、Java IDL のネームサーバ用にポート番号 1050 を使用することを前提にしています。必要に応じて別のポート番号に置き換えてください。[Path_to_JDK] の部分は、実際に JDK がインストールされているディレクトリへの完全に修飾されたパスで置き換えてください。

注 : ステップ 2 と 3 を実行するためには、あらかじめ idltojava コンパイラのダウンロードとインストールが完了している必要があります。

  1. レッスンを行うディレクトリへ移動します。
    cd [Path_to_JDK]¥docs¥guide¥idl¥examples¥hello
  2. idltojava コンパイラおよび Java バイナリへのパス ([Path_to_JDK]¥bin) が環境変数に指定されていることを確認します。

  3. IDL ファイルを idltojava を使って Java に翻訳し、スタブとスケルトンを作成します。
    注 : idltojava は、デフォルトのプリプロセッサを使用するようにハードコードされています。Windows マシンでは、デフォルトで MS Visual C++ プリプロセッサを使用します。2 つの環境変数、CPPCPARGS を変更することにより、idltojava が使用するプリプロセッサを変更できます。CPP には、使用するプリプロセッサのフルパス名を指定します。CPARGS には、プリプロセッサに渡す完全な引数のリストを指定します。idltojava のコマンド行に -fno-cpp を追加することにより、プリプロセッサをオフにすることもできます。詳細情報については、idltojava コンパイラとともにダウンロードされた idltojava のリファレンスページを参照してください。
    idltojava Hello.idl
  4. Java ファイルをコンパイルします。その際、スタブとスケルトンも含めます。
    javac *.java HelloApp¥*.java
  5. Java IDL ネームサーバを起動します。
    tnameserv -ORBInitialPort 1050

    サーバがバックグラウンドで稼動します。クライアントプログラムを実行するまでサーバの稼動状況をこれ以上見ることはできません。

  6. Hello サーバを起動します。
    java HelloServer -ORBInitialPort 1050
  7. Hello クライアントアプリケーションを実行します。
    java HelloClient -ORBInitialPort 1050

    次の文字列がコマンド行に出力されます。

    Hello world!!

ほとんどの CORBA サーバと同様に、ネームサーバと Hello World サーバは明示的に停止されるまで稼動を続けます。さまざまなサーバを同時に稼動させるのを避けるため、レッスン 1 に進む前にサーバプロセスを終了させます。

詳細情報

基本的な概念はチュートリアルの中で説明されていますが、「概念」を参照すると、より理解を深め、有用な背景知識を得ることができます。また、チュートリアルを通じて、新規用語をクリックするとその定義を見ることができます。

さらに、Object Management Group 提供による CORBA に関する基本情報をCORBA for Beginnnersから得ることができます。


レッスン 1
ホーム

Copyright © 1996-1998 Sun Microsystems, Inc., 2550 Garcia Ave., Mtn. View, CA. 94043-1100 USA., All rights reserved.