・   「Java言語」実習 第19回

分散オブジェクト(CORBA)その1

CORBAによる分散オブジェクトの設計と、その利用方法を紹介します。


・ 準備1:
この後で必要となる CORBAのネームサービスを提供する tnameservサーバを起動しておきます。 今回のサンプルのでは、ポート番号は 10005を使用します。 その指定はオプションで行います。 (今日の実習を終了する時に停止させるのを忘れないこと)


tnameserv  -ORBInitialPort  10005

・ 準備2:
今日も複数の端末のウィンドウが必要になります。 前回、前々回の課題と比較して行うので、 新しいディレクトリを使用します。 各自のJavaの作業用のディレクトリの下に corba という 名前のディレクトリを作成してください。 その中に移動して作業します。


cd  www
cd  java
mkdir  corba
cd  corba


・ 基本課題1:「IDLで分散オブジェクトの機能を定義する」
最初に分散オブジェクトが提供する機能を定める IDLのファイルを作成します。

  1. IDLファイル RemoteDictionary.idl を作成しなさい。
  2. idltojavaコマンドによって、Javaのソースコードに変換します。
    
    idltojava  RemoteDictionary.idl
    
    
  3. どんなソースファイルが生成されたか確認しなさい (後で課題として報告してもらいます)。

・ 基本課題2:「分散オブジェクトを実装する」
分散オブジェクトの機能を具体的に実装します。

  1. ソースファイル RemoteDictionaryImpl.java を作成しなさい。
    ただし、データベースの内容は各自で工夫して、 10件以上の項目があるものを用意しなさい (今回は日本語は使用しないでください)。
  2. コンパイルできたら次の課題に進んでください。(まだ実行はできません。)

・ 基本課題3:「分散オブジェクトの生成」

  1. ソースファイル DictionaryServer.java を作成しなさい。
  2. コンパイルできたら実行します。 ただしネームサーバの名前として自分のマシン名を引数に指定すること。
    この実習時間中は起動したままにしておきなさい。
  3. 
    java  DictionaryServer  pc4fg6
    
    

・ 基本課題4:「分散オブジェクトの呼び出し」
分散オブジェクトの呼び出しを確認するための簡単なサンプルを作成します。

  1. 新しい端末のウィンドウを開き、 corbaの作業用のディレクトリに移動しないさい。 ソースファイル SingleLineClient.java を作成しなさい。
  2. コンパイルできたら、たとえば次のようにして実行し、結果を確認しなさい。 (サーバの起動されているマシン名と調べたいキーの情報を コマンドライン引数から与える。)
    
    java  SingleLineClient  pc4fg6  maruyama
    
    

・ 基本課題5:「分散オブジェクトを利用したアプリケーション」

  1. ソースファイル DictionaryClient.java を作成しなさい。
  2. コンパイルできたら実行し結果を確認しなさい。
  3. 
    java  DictionaryClient  pc4fg6
    
    

・ 今週のレポート課題(学内用):
ここまでの課題が終わった人は、下記の項目を tatsuo宛のメール で報告しなさい。(Subjectは java19)

  1. 課題1:で生成された Javaのソースファイル名をすべて報告しなさい。
  2. 課題5:の通信プログラム(DictionaryClient)で、 他の人が起動した 3個の異なるマシン上の分散オブジェクトから メッセージを受け取りなさい。 それぞれのマシン名と 分散オブジェクトが提供していた最初の項目のデータの内容を報告すること。

実習の目次   今週の講義の内容