・   「Java言語」実習 第15回の補充

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

RMIを利用し複数の分散オブジェクトによってアプリケーションを構築します。 GUIも整えて、実用になるように仕上げてみましょう。


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


rmiregistry

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


・ 基本課題1:「サーバの改良版」

  1. ソースファイル TalkServerImpl2.java を作成しなさい。
  2. コンパイルできたら次の課題に進んでください。(まだ実行はできません。)

・ 基本課題2:「StubとSkelクラスの生成」
TalkServerのスタブとスケルトンと呼ばれる特別なクラスを用意します。

  1. rmic によるコンパイルで TalkServerImpl2クラスの スタブとスケルトンを自動生成します。 (まだ実行はできません。)

rmic  TalkServerImpl2

・ 基本課題3:「サーバの起動(改良版)」
サーバの分散オブジェクトを生成し、サービスを開始します。

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

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

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

  1. 前回の応用課題で示したソースファイル MessageMonitor.javaMessageSendField.java を作成しなさい。

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

  1. ソースファイル QuitButton.javaMessageClient2.java を作成しなさい。
  • コンパイルできたら、たとえば次のようにして実行し、結果を確認しなさい。 (サーバの起動されているマシン名と調べたいキーの情報を コマンドライン引数から与える。)
    
    java  -Djava.rmi.server.codebase="http://www.wakhok.ac.jp/~logname/rmi/"
     -Djava.security.policy="policy"  MessageClient2  pc4fg6
    
    

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

    1. 5人以上で適当なグループを作りなさい。
    2. そのうちの1人のサーバに他の人がアクセスしなさい。
    3. サーバのマシン名と、 参加した人全員の氏名とマシン名、プログラムを実行したシステムの名前(UNIX か Windowsか)をメールで報告しなさい。

    *Windows で実行する時の注意事項(学内のみ)

    ・ 応用課題1:「システム非依存の確認」

    1. 空いているマシンを利用し、Windowsの環境で MessageClient2を起動してみなさい。
    2. 日本語のメッセージを送っても、文字化けせずにきちんと送られることを確認しなさい。

    ・ 応用課題2:「新しいアプリケーションの参加」

    1. クライアントのプログラムをさらに改良し、異なるクラス名(MessageClient3など) で用意しなさい。
    2. これらの新しいアプリケーションも問題なくチャットに参加できることを確認しなさい。

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