アーキテクチャー演習の課題

課題内容
 JAVAを用いてチャットを行うプログラム書け!
(keyword : HORB JAVA チャット)  

目次

 またもや時間が無い!  今度は就職活動とかぶっている。  取りあえず、あと2日しかない。 どうする私!  まだまだ1週間以上あるようです。 そしてiMAPを使う課題なようです。  HORBはいらなくなりました。
 ○HORBとは!
 ○ためしに動かしてみる
 ○2人でチャットするアプリを作成する
 ○複数人でメッセージを交換できるようにする
 ○
 ○実際に動かしてみる 
 ○提出案件
 ○感想        
 ○

 リファレンスは私の頭の中とJAVAドク
 (今の所)

HORBとは!

 
 ○HORBとは!
  (この説明は今回私が使用する機能について書かれて
   いるのであってHORB全般について書いているの
   ではありません)

  HORBは自律分散環境のためのライブラリーです。
  自律分散環境のライブラリーであるHORBを持ちいると
  何が出来るのでしょうか?
  
  ネットワークを”あまり”意識することなく複数のコンピュータ間で
  の通信を行うプログラムを書くことが出来ます。
  
  
  HORBサーバーが、通信部分のややこしいところを解決してくれるのです。

  よりHORBについて詳しく知りたい方は
  HORB日本語のページ
  を読むとよいでしょう。
  
  

サーバーを起動する

 
 プログラムの中でHORBサーバーを立ち上げる方法を説明しますHORBのAPIリファレンスに目を通しておくこと)
 
 HORBサーバー立ち上げるには、コマンドライン上から行う方法と
 プログラム上で行う方法があります。 
 
 今回はプログラムかHORBサーバーを起動する方法を説明します
 
 
 HORBServerクラスを持ちいることで実現できます

例
import horn.orb.*;
class  ExeHORBServer
 {
 public static void main(String args[])
 {
  HORBServer hs = new HORBServer(9111);
 }
 }
 9111は開きたいポート番号です

サーバーにオブジェクトを登録する


@ITの中のHORBと遊ぼう(4)参考になります


生成モデルと接続モデルについて

 今私はチャットを行うプログラム書いているわけで
 すが、まずチャットをする人とチャットソフトの
 流れを大まかに説明します(これは今私が考えている
 システムであって一般的なチャットではないです。)

 チャットをするプレイヤー ミラージは

 ソフトを起動する。
 ↓
 HORBサーバーが立ち上がる
 ↓
 友人のアドレスを指定する
 ↓
 友人のHORBサーバーとつながる
 ↓
 友人のHORBサーバーとつながっている人とつながる
 ↓
 友人どうしでメッセージが送ることが出来るようなる。
 
 
上のようなシステムにすると
 繋ぐ(クライアント)部分と繋がれる(サーバー)部分の
 部分両をもつことが分ります。
 
  よしP2Pでチャットができるぞっと!
  ..
  と
    ..
  この瞬間読者の方々は生成モデルと接続モデルについて
 知る必要があります。
 
  詳しくは
@ITの中のHORBと遊ぼう(4)
を読んでいただくとして、
 
 
 生成モデルも接続モデルも相手サーバーと繋いだときの
 サーバーの対応のしかたについてのモデルです。
 
 クライアントが生成モデルでProxyオブジェクトを作成すると 
 相手のサーバーにSkeltonオブジェクトが生成しクライアントに対応します。
 生成モデルは新たに相手サーバーにオブジェクトを作成するのです。
 
 クライアントが接続モデルで名前を指定してProxyオブジェクトを
 生成すると相手サーバーの特定の名前のSkeltonと対応します。
 スケルトンはすでに生成されている必要があります。
 接続モデルは相手サーバーの特定のオブジェクトにつながります。
 

 以上を踏まえて 読者が考えて欲しいのは

 サーバーAがサーバーBのオブジェクトとやり取りしたデーターを
 サーバーCがサーバーBから読み取りたいときは
 生成モデルを持ついるのか それとも 接続モデルを持ついるのか
 ということです。
 
 答えは簡単ですね! 接続モデルを用いると簡単にてできそうだ!です.

 
 
 接続モデルで接続されるオブジェクトの設定方法
 
 import horn.orb.*;
   class  ExeHORBServer
    {
    public static void main(String args[])
    {
     HORBServer hs = new HORBServer(9111);
     HORBServer.registerObject("オブジェクトのクラスの名前",オフジェク,特定の名前);
    }
    }
 
  HORBServer.registerObjectをもちいれば、接続モデル用にオブジェクト   を生成しておくことが出来ます。     ProxyとSkeltonについて   順番からいくと、本当はProxyとSkeltonについて始めに説明しなくては   ならないのですが、 今まで割合してきました。   説明します。      HORBサーバーではコンピュータ同士がデータを送信し合うときどのように   行われているのでしょうか?         クライアントはProxyを生成します。     ↓   サーバーは対応するSkeltonを用意します。   ↓   クライアントがProxyを操作すると   ↓   サーバーが対応するSkeltonを操作します         と言った順序で行われています。         つまりHORBサーバーは上のようにProxyとSkeltonを持ちいて   データの受け渡しをしているのです。               ProxyとSkeltonの作り方      http://horb.a02.aist.go.jp/horb-j/doc/guide2.0/guide.htm   を読むとよいでしょう。      データーのやり取りを行う   http://horb.a02.aist.go.jp/horb-j/doc/guide2.0/guide.htm   を読むとよいでしょう。

2人りでチャットを行う




2人りでチャットまで完成(中継経過)ソース


繋がる部分は↓な感じ UML等 まだ書き方が解かっていません。




OwnerSがサーバーの機能を有しています
OwnerはOwnerSを委譲してクライアントの機能を追加しています

上の図はJUDE/Communityを用いて描かれています。

Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!