最近のアプリケーションは、ほとんどすべてネットワーク対応だと いっても良い。ネットワーク対応にする一つの方法は、NFS (ネットワーク ファイルシステム)を使うことにより、ファイルシステムだけネットワーク 対応にする方法である。このようにすれば、既存のプログラムを変更することなく、 自動的にネットワーク対応のプログラムに変更される。しかし、例えばメール リーダなどは、NFSに対応したロックプロトコルを要求される。あるいは、 X-Window では、表示方式そのものがネットワーク透過であり、自動的に ネットワークを越えた画像アプリケーションが作成される。しかし、この アプリケーションが自動的にマルチユーザに対応することはない。 これらはネットワーク対応ではあるが、ネットワークアプリケーションという ことはできない。
本当のネットワークアプリケーションは、自分でネットワーク接続を
管理する必要がある。ここで良く使われるのはサーバクライアントと呼ばれる
モデルである。サーバクライアントにもいくつか種類がある。
ネットワーク上の通信は、ストリームなどの原始的な通信を使うことも できるが、いくつかのより高度な方法が提供されている。
RPC は、手続き呼び出しと同じ形式で、他のサイトのプログラムを
呼び出す。RPC には同期と非同期がある。非同期は、call backにより
答を返す。
Linda とは、並列通信プログラミング手法の1つで、 タプルと呼ばれるデータを交換する事により通信を行う。タ プルは、サーバーに蓄えられ、 id によってアクセスする。 サーバーにタプルを出し入れす ることにより、複数のクライアントから通信する事ができる。
out(id, data); データをサーバに書き出すのに使う。 in(id) rd(id) ck(id); これらはサーバのデータを受け取るときに使う。まず、in/rd/ ck のどれかで、どのidのデータを受け取るかを指示する。データが来 ていればデータを返す。rd は読み込んでもデータをサーバがから 削除しない。ckの場合は、データが来ても、それはタプルがないこ とを示す空文字列の場合がある。
この課題は一人でやっても良いが、4-5人のグループで行うこと。
マルチユーザゲームの難しい所は、ユーザの参加や脱退である。この部分を表す 状態遷移図をユーザとゲームのサーバそれぞれについて、 記述してみよ。
実際にカードゲームが始まる時には、それぞれのユーザや、ゲームのサーバ が相互に通信しあって処理を行う。以下の例を協調図を使って記述してみよ。
課題は、作成した図、作成したプログラム、実行方法をまとめて、HTML で記述し、
WWW にあげること。WWWには、参加したものの名前と学籍番号を明記すること。
作成たらメールでURLを以下のサブジェクトで kono@ie.u-ryukyu.ac.jp
まで送ること。
Report on Software Engineering Lecture 7/6