・   「Java言語」実習 第16回

分散オブジェクト(RMI)その4

前回のアプリケーションをさらに機能を向上させます。 サーバを捜しだし、選択できる機能を追加してみましょう。


・ 準備1:
この後で必要となる RMIのネームサービスを提供する rmiregistryサーバを起動しておきます。 (今日の実習を終了する時に停止させるのを忘れないこと)


rmiregistry

・ 準備2:
今日も複数の端末のウィンドウが必要になります。 いずれも各自の www の下の rmiディレクトリに移動して作業します。

・ 準備3:
通信する可能性のあるホスト名(IPアドレス)の一覧のファイルを用意しておいてください。ファイル名は "hosts" とします。
学内の人は、下記のようにしてコピーしてください。


cp  ~tatsuo/hosts  .       (UNIXの場合)
copy  Y:\tatsuo\hosts  .   (Windowsの場合)


・ 基本課題1:「サーバの起動(改良版)」
各自のサーバの名前を独自のものに変更してください。その上で、 サーバの分散オブジェクトを生成し、サービスを開始します。

  1. ソースファイル ServerTest3.java を作成しなさい。
  2. ただし、分散オブジェクトの名称は "TalkServer_??????" というように独自のものに変更すること。
  3. コンパイルできたら実行しますが、 その時に環境の情報として Stubファイルの存在する場所と セキュリティの方針を指定する必要があります。 次のようにして実行してください。(サーバが起動されるだけなので、 まだ通信は行われない。 この実習時間中は起動したままにしておくこと。)

java  -Djava.rmi.server.codebase="http://www.wakhok.ac.jp/~logname/rmi/"
 -Djava.security.policy="policy"  ServerTest3

・ 基本課題2:「サーバの探索」
現在起動されている TalkServerを調べて、その一覧を表示します。

  1. ソースファイル TalkServerList.java を作成しなさい。
  2. コンパイルできたら実行します。 このプログラムは、分散オブジェクトを提供する側ではないので、 オプションの指定はセキュリティのポリシーのみでかまいません。
  3. このプログラムはサーバ名を調べるだけの機能しかありません。 起動されているサーバ名が表示されることが確認できたら、 プログラムを終了して次の課題に進みなさい。

java  -Djava.security.policy="policy"  TalkServerList

・ 基本課題3:「クライアントの用意(改良版)」
前回の MessageClient2を改造して、別のクラスから呼び出せるようにします。

  1. ソースファイル MessageClient3.java を作成しなさい。
  2. コンパイルしなさい。

・ 基本課題4:「GUIの構築の追加」

  1. ソースファイル AccessButton.javaTalkServerSearch.java を作成しなさい。
  • コンパイルできたら、たとえば次のようにして実行し、結果を確認しなさい。
  • 
    java  -Djava.rmi.server.codebase="http://www.wakhok.ac.jp/~logname/rmi/"
     -Djava.security.policy="policy"  TalkServerSearch
    
    

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

    1. 基本課題2で調べた時に、存在していた TalkServerの個数
    2. 5人以上で適当なグループを作りなさい。
    3. そのうちの1人のサーバに他の人がアクセスしなさい。
    4. サーバの分散オブジェクト名と、 参加した人全員のユーザ名、 プログラムを実行したシステムの名前(UNIX か Windowsか)をメールで報告しなさい。

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