JP2000215177A - クライアント―サ―バシステム、サ―バ/クライアント装置、およびサ―バ/クライアントソフトウェアの管理プログラムを記録したコンピュ―タで読取可能な記録媒体 - Google Patents

クライアント―サ―バシステム、サ―バ/クライアント装置、およびサ―バ/クライアントソフトウェアの管理プログラムを記録したコンピュ―タで読取可能な記録媒体

Info

Publication number
JP2000215177A
JP2000215177A JP11017218A JP1721899A JP2000215177A JP 2000215177 A JP2000215177 A JP 2000215177A JP 11017218 A JP11017218 A JP 11017218A JP 1721899 A JP1721899 A JP 1721899A JP 2000215177 A JP2000215177 A JP 2000215177A
Authority
JP
Japan
Prior art keywords
server
client
machine
computer
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP11017218A
Other languages
English (en)
Inventor
Takao Nakaguchi
孝雄 中口
Junpei Otani
淳平 大谷
Kennosuke Wada
健之介 和田
Katsunori Shimohara
勝憲 下原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ATR Advanced Telecommunications Research Institute International
Original Assignee
ATR Advanced Telecommunications Research Institute International
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ATR Advanced Telecommunications Research Institute International filed Critical ATR Advanced Telecommunications Research Institute International
Priority to JP11017218A priority Critical patent/JP2000215177A/ja
Publication of JP2000215177A publication Critical patent/JP2000215177A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Hardware Redundancy (AREA)

Abstract

(57)【要約】 【課題】 サーバ等の障害発生時にも処理を続行でき
る、柔軟で強固なクライアント−サーバシステム、サー
バ/クライアント装置および管理ソフトウェアを記録し
た記録媒体を提供する。 【解決手段】 クライアント−サーバシステムの各コン
ピュータ(サーバ/クライアント装置)は、サーバ機能
130と、クライアント機能132と、システムに参加
しているマシンリストを維持する機能176と、クライ
アントがサーバ異常を検知したことに応答して、リスト
に基づいて、予め定められる手順でシステム内のコンピ
ュータを選択するための機能174と、自己が選択され
たことに応答して、自己のサーバを稼動開始させる機能
174と、新たなサーバにクライアントの接続を切替え
る機能178とを備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明はネットワークを利
用したクライアント−サーバシステムに関し、特に、ネ
ットワークゲーム、または、ネットワークを利用して行
う工業製品の共同デザインなど、複数のクライアントが
ある仮想空間を共有し、あるクライアントが仮想空間内
で行った行為がシステム内の他の全てのクライアントの
状態に影響をおよぼすようなクライアント−サーバシス
テムを用いた情報処理におけるシステムの安定性の向上
に関する。
【0002】
【従来の技術】近年、通信技術およびコンピュータ技術
の発達、およびコンピュータの普及に伴って、仮想空間
をネットワーク上で実現するための技術(分散仮想空間
処理技術)が発展して来ている。その一例は、地理的に
離れた複数のプレーヤがネットワーク上に構築された仮
想空間内で互いに作用しあいながらゲームを進行させて
行くマルチプレーヤのネットワークゲームである。また
他の一例は、地理的に離れた箇所にいる複数の設計者が
ある工業製品の設計を共同で進めていく、工業デザイン
の共同作業システムである。
【0003】こうした分散仮想空間処理技術を実現する
システムには、主としてクライアント−サーバシステム
が用いられている。クライアント−サーバシステムは、
ネットワーク接続された複数個のマシン(主として一般
的なコンピュータである。)を含む。これらマシンのう
ち所定のもの(通常は1台)は予めサーバマシンに定め
られており、残りのものはクライアントマシンと呼ばれ
る。
【0004】こうしたクライアント−サーバシステムに
おいては、クライアントマシンは分散空間の表示処理
と、ユーザからの入力に関する処理とを行い、ユーザか
らの入力処理に伴う仮想空間の状態の変化に関する処理
要求をサーバマシンに送る。サーバマシンはこの仮想空
間を規定するデータを維持しており、クライアントマシ
ンからの処理要求に応じて仮想空間の状態を規定するデ
ータを処理し、その結果仮想空間に生じた変化を全クラ
イアントマシンに送る。したがって、仮想空間に関する
主な処理は全てサーバマシンで行われ、クライアントマ
シンはユーザとのインターフェースをとるだけとなる。
【0005】
【発明が解決しようとする課題】このようなクライアン
ト−サーバシステムでは、明らかに、サーバマシンに何
らかの障害が発生した場合、サーバによる仮想空間の処
理が不可能になる。その結果、システム全体が停止し他
の全てのクライアントにおいて処理を継続することがで
きなくなる。
【0006】この問題を解決するために、予備のサーバ
マシンを用意しておき、サーバマシンに障害が発生する
と同時にこの予備のサーバマシンに切替える方法があ
る。しかし、この方法では予備のサーバマシンも準備し
なければならず、かつ切替を矛盾なく、参加者に障害の
発生を検知させない程度の早さで切替えることは困難で
あり、データが破壊されたり、サービスの進行に支障を
きたす恐れが大きい。さらに、予備のサーバマシンにも
同時に障害が発生する確率も少ないとはいえ存在する。
したがって、万全の故障対策をとることは困難であっ
た。またこうした問題はサーバマシンの故障のみでな
く、ネットワーク経路上に異常が発生した場合にも生じ
うる。
【0007】たとえばロールプレイングゲームのように
過去のゲーム履歴が現在のゲームの状況を支配するよう
なアプリケーションではこうした障害は致命的である。
また、こうしたシステムを使用して工業製品の共同設計
を行っている場合、業務の遂行に大きな支障が生ずるお
それがある。
【0008】それゆえに、この発明の目的は、サーバマ
シンまたはネットワークに障害が発生したときにもすみ
やかに障害を切離し、サービスの進行を続行することが
できる、柔軟で強固なクライアント−サーバシステム、
そのためのサーバ/クライアント装置およびそのための
サーバ/クライアントソフトウェアの管理プログラムを
記録したコンピュータで読取可能な記録媒体を提供する
ことである。
【0009】
【課題を解決するための手段】請求項1に記載の発明に
かかるクライアント−サーバシステムは、ネットワーク
によって互いに交信可能なコンピュータから形成される
クライアント−サーバシステムである。各コンピュータ
は、サーバとして稼動するためのサーバ手段と、クライ
アントとして稼動するためのクライアント手段と、シス
テムに参加しているコンピュータのリストを維持するリ
スト維持手段と、クライアント手段がシステム内のサー
バの異常を検知したことに応答して、リストに基づい
て、予め定められる手順にしたがってシステム内のコン
ピュータを選択するための選択手段と、選択手段により
自己が選択されたことに応答して、自己の内のサーバ手
段をサーバとして稼動開始させるための手段と、選択手
段によって選択されたコンピュータ上で稼動しているサ
ーバにクライアント手段の接続を切替えるための手段と
を含む。
【0010】リスト維持手段によってシステムに参加し
ているコンピュータのリストが維持されている。そして
サーバの異常が検知されると、このリストに基づいて予
め定められた手順にしたがってシステム内のコンピュー
タが選択され、当該選択されたコンピュータ内のサーバ
手段がサーバとして稼動開始する。クライアント手段の
接続はこの新たなサーバに切替えられるので、サーバに
異常が発生しても他のコンピュータをサーバとして処理
を続行することができる。システムに参加しているコン
ピュータのリストがどのコンピュータによっても維持さ
れ、新たなサーバのためのコンピュータはシステム内の
どのコンピュータによってもこのリストに基づき予め定
められた手順によって選択される。そのため、どのコン
ピュータでも同一のコンピュータを次のサーバとして選
択し、矛盾なくシステム処理を続行することができる。
【0011】その結果、サーバマシンまたはネットワー
クに障害が発生したときにもすみやかに障害を切離し、
サービスの進行を続行することができる、柔軟で強固な
クライアント−サーバシステムを提供することができ
る。
【0012】好ましくはこのシステムは、新たにシステ
ムに参加するクライアントが最初に接続可能なようにネ
ットワークに接続して設けられ、サーバからの通知に基
づいて、サーバが稼動しているコンピュータを特定する
ためのサーバ情報を維持し、接続してくるクライアント
に対してサーバ情報を送信するためのロビーマシンをさ
らに含む。
【0013】新たなクライアントは、最初にこのロビー
マシンに接続することにより、現在のサーバがどのコン
ピュータ上で稼動しているかを知ることができ、容易に
このクライアント−サーバシステムに参加することがで
きる。
【0014】請求項2に記載の発明にかかるサーバ/ク
ライアント装置は、サーバとして稼動するためのサーバ
手段と、クライアントとして稼動するためのクライアン
ト手段と、システムに参加しているサーバ/クライアン
ト装置のリストを維持するリスト維持手段と、クライア
ント手段がシステム内のサーバの異常を検知したことに
応答して、リストに基づいて、予め定められる手順にし
たがってシステム内のサーバ/クライアント装置を選択
するための選択手段と、選択手段により自己が選択され
たことに応答して、自己の内のサーバ手段をサーバとし
て稼動開始させるための手段と、選択手段によって選択
されたサーバ/クライアント装置上で稼動しているサー
バにクライアント手段の接続を切替えるための手段とを
含む。
【0015】リスト維持手段によってシステムに参加し
ているサーバ/クライアント装置のリストが維持されて
いる。そしてサーバの異常が検知されると、このリスト
に基づいて予め定められた手順にしたがってシステム内
のサーバ/クライアント装置が選択され、当該選択され
たサーバ/クライアント装置内のサーバ手段がサーバと
して稼動開始する。クライアント手段の接続はこの新た
なサーバに切替えられるので、サーバに異常が発生して
も他のサーバ/クライアント装置をサーバとして処理を
続行することができる。システムに参加しているサーバ
/クライアント装置のリストがどのサーバ/クライアン
ト装置によっても維持され、新たなサーバのためのサー
バ/クライアント装置はシステム内のどのサーバ/クラ
イアント装置によってもこのリストに基づき予め定めら
れた手順によって選択される。そのため、どのサーバ/
クライアント装置でも同一のサーバ/クライアント装置
を次のサーバとして選択し、矛盾なくシステム処理を続
行することができる。
【0016】その結果、サーバマシンまたはネットワー
クに障害が発生したときにもすみやかに障害を切離し、
サービスの進行を続行することができる、柔軟で強固な
クライアント−サーバシステムを構築するためのサーバ
/クライアント装置を提供することができる。
【0017】請求項3に記載の発明にかかる記録媒体
は、ネットワークによって互いに交信可能なコンピュー
タから形成されるクライアント−サーバシステム内の各
コンピュータで実行されるサーバ/クライアントソフト
ウェアの管理プログラムを記録したコンピュータで読取
可能な記録媒体である。各コンピュータは、サーバとし
て稼動するためのサーバ手段と、クライアントとして稼
動するためのクライアント手段との双方を備えている。
記録媒体が記録しているサーバ/クライアントソフトウ
ェアの管理プログラムは、システムに参加しているコン
ピュータのリストを維持する機能を実現するプログラム
部分と、クライアント手段がシステム内のサーバの異常
を検知したことに応答して、リストに基づいて、予め定
められる手順にしたがってシステム内のコンピュータを
選択する機能を実現する選択プログラム部分と、選択プ
ログラム部分により自己が選択されたことに応答して、
自己が稼動しているコンピュータ内のサーバ手段をサー
バとして稼動開始させる機能を実現するプログラム部分
と、選択プログラム部分によって選択されたコンピュー
タ上で稼動しているサーバにクライアント手段の接続を
切替える機能を実現するプログラム部分とを含む。
【0018】リストを維持するためのプログラムによっ
てシステムに参加しているコンピュータのリストが維持
されている。サーバの異常が検知されると、このリスト
に基づいて予め定められた手順にしたがってシステム内
のコンピュータが選択され、当該選択されたコンピュー
タ内のサーバ手段がサーバとして稼動開始する。クライ
アント手段の接続はこの新たなサーバに切替えられるの
で、サーバに異常が発生しても他のコンピュータをサー
バとして処理を続行することができる。システムに参加
しているコンピュータのリストがどのコンピュータによ
っても維持され、新たなサーバのためのコンピュータは
システム内のどのコンピュータによってもこのリストに
基づき予め定められた手順によって選択される。そのた
め、どのコンピュータでも同一のコンピュータを次のサ
ーバとして選択し、矛盾なくシステム処理を続行するこ
とができる。
【0019】その結果、その結果、サーバマシンまたは
ネットワークに障害が発生したときにもすみやかに障害
を切離し、サービスの進行を続行することができる、柔
軟で強固なサーバ−クライアントシステムを構築するこ
とができるサーバ/クライアントソフトウェアの管理プ
ログラムを記録したコンピュータで読取可能な記録媒体
を提供することができる。
【0020】
【発明の実施の形態】第1の実施の形態 図1は本願発明の第1の実施の形態にかかるシステムの
ブロック図であって、このシステムは、いわゆるインタ
ーネット30を介して複数個のコンピュータ34、36
などが互いに接続されてネットワークゲームを実行する
ためのものである。なおこの例はあくまでサーバ−クラ
イアントシステムの一例であって、他の応用にも適用可
能なことはいうまでもない。
【0021】このシステムは、参加するコンピュータ3
4、36などに加えて、ゲームに参加することを希望す
るクライアントマシンが最初にアクセスするロビーマシ
ン32を含む。そのため、ロビーマシン32のアドレス
は予め公表されているものとする。なお以下の説明にお
いて、「マシン」という語はコンピュータと同じ意味で
用いる。
【0022】ロビーマシン32は、このシステムに新た
に参加するマシンが最初にアクセスしてきたときに、ゲ
ームに参加するために必要な情報をこのマシンに渡す役
割をもつ。この実施の形態のシステムでは、以下に述べ
るようにサーバマシンを特定するための情報(本システ
ムではIP(Internet Protocol)アドレス)が新規参
加マシンに渡される。またロビーマシン32は、システ
ムに参加するマシンのうち最初のものに対しては、当該
マシン内にサーバプロセスを起動するよう命ずる機能も
持っている。また後述するように、本システムではサー
バマシンに障害が発生したり、サーバマシンへのネット
ワーク経路上で障害が発生したりした場合にサーバマシ
ンが切り替えられるが、その切替えの順番を各マシンに
おいて独立に、かつ一致して定めることができるように
するために、ロビーマシン32は新規にシステムに参加
するマシンに対して、当該マシンがシステムに参加した
順番をも通知する機能を持つ。
【0023】各マシンが備えるべき構成については後に
説明することとして、ここではこの第1の実施の形態に
かかるシステムの動作の概略について最初に説明する。
【0024】図2を参照して、ゲームシステム50に参
加しているマシンが1台もないときにコンピュータ52
がロビーマシン32にアクセスしたものとする。このと
きロビーマシン32は、このコンピュータ52がゲーム
システム50に参加する最初のマシンであるので、この
コンピュータ52に対してサーバプロセスを起動すべき
ことを通知する。
【0025】これに応答して、コンピュータ52は内部
にサーバプロセスを起動し、あわせて自己のクライアン
トプロセスをこのサーバプロセスに接続して動作を開始
する(図3)。
【0026】図4を参照して、この後にゲームシステム
50に参加するコンピュータ54がロビーマシン32に
アクセスすると、ロビーマシン32はこのコンピュータ
54に対してコンピュータ52のアドレスをサーバマシ
ンのアドレスとして通知する。コンピュータ54はした
がってサーバプロセスを起動することなくクライアント
としてゲームシステム50に参加しコンピュータ52の
サーバプロセスとの間で通信処理を行う(図5)。以後
通常はこのクライアントがロビーマシン32と通信を行
うことはない。
【0027】こうして、ゲームシステム50には次々と
クライアントが参加し図6に示すように複数個のクライ
アントマシン(コンピュータ56〜60)がコンピュー
タ52上のサーバプロセスと通信を行うことによりゲー
ムシステム50が運用されていく。なおコンピュータ5
2上においてもクライアントプロセスが動作しており、
このコンピュータ52を使用しているユーザもゲームシ
ステム50に参加している。
【0028】図7を参照して、サーバプロセスが動作し
ているコンピュータ52に何らかの障害が発生した場合
を考える。コンピュータ52へのネットワーク経路上に
何らかの障害が発生したと考えてもよい。図7に示すよ
うに各コンピュータ56〜60はいずれもコンピュータ
52との間での通信ができなくなる。各マシンでは、シ
ステムに参加したときにロビーマシン32から受けた情
報およびその後にコンピュータ52上のサーバプロセス
から受取った情報に基づいて、それぞれ個別に次のサー
バとなるべきマシンを決定する。この場合、各マシンで
は同じデータに基づいて、同じアルゴリズムで次のサー
バマシンを決定する。したがっていずれのマシンにおい
ても次のサーバとして選択されるマシンは同一のものと
なる。こうして決定されたサーバマシンがたとえばコン
ピュータ56であるものとする。
【0029】コンピュータ56自身も、次のサーバマシ
ンとして自己を選択する。図8を参照して、コンピュー
タ56は、自分自身が次のサーバであると判断した結
果、自分自身の内部にサーバプロセスを起動する。この
サーバプロセスは、起動後にコンピュータ56が新たな
サーバとなったことをロビーマシン32に通知する。
【0030】同じく各コンピュータ54、58、60も
コンピュータ56が次のサーバであると判断するので、
これらは今度はコンピュータ56上のサーバプロセスに
対してアクセスを行う。こうしてゲームシステム50は
コンピュータ52(またはコンピュータ52へのネット
ワーク経路上)に障害が発生する前と同様に運用されて
いく。新たなマシンがロビーマシン32にアクセスした
ときには、今度はロビーマシン32はサーバマシンのア
ドレスとしてコンピュータ56のアドレスをこの新たな
マシンに通知するので、新たに参加するマシンはコンピ
ュータ56上のサーバプロセスにアクセスし、ゲームに
参加することができる。
【0031】すなわちこのシステムでは、どのコンピュ
ータ上にもクライアントプロセスだけではなくサーバプ
ロセスを起動することができ、稼動中のサーバプロセス
(またはサーバプロセスが稼動しているコンピュータへ
のネットワーク経路上)に障害が発生したときにはすみ
やかに他のコンピュータ上にサーバプロセスを起動して
ゲームを続行する。新たなサーバマシンは、システム内
の全クライアントによって共有されている情報に基づ
き、同じアルゴリズムによって決定される。したがって
サーバマシンに障害が発生したり、サーバマシンへのネ
ットワーク上の経路に障害が発生したりしたときにも安
定してゲームの続行を行うことができるという効果を持
つ。
【0032】図9は、本システムのクライアントマシン
またはサーバ/クライアントマシンを構成する装置であ
る一般的なコンピュータのブロック図であり、このコン
ピュータ70は、中央演算処理装置(CPU)72と、
このCPU72が接続されたバス74と、いずれもバス
74に接続されたランダムアクセスメモリ(RAM)7
6および読出専用メモリ(ROM)78と、コンピュー
タ70をネットワーク82に接続するためのネットワー
クインターフェース80と、入出力インターフェース8
4を介してバス74に接続されたモニタ86、CD−R
OMドライブ88、マウス92、キーボード94および
ハードディスク96とを含む。CD−ROMドライブ8
8は、CD−ROM90に記録された機械可読なデータ
を読込み、RAM76またはハードディスク96に転送
する機能を持つ。たとえばこのシステムのために必要な
ソフトウェアは、CD−ROM90に電子的な機械可読
な形で記録され、CD−ROMドライブ88を介して読
み込まれハードディスク96に一旦格納される。そし
て、このシステムへの参加時にハードディスク96から
RAM76に転送されCPU72により実行され、後に
述べるシステムを実現する。ソフトウェアは、CD−R
OM90ではなく、いわゆるリムーバブルな媒体に記録
されていて、適切なドライブを介して随時コンピュータ
に読み込む形式でもよい。また、図示してはいないが、
モデムやターミナルアダプタを介して通信回線上の他の
コンピュータから、またはネットワークインターフェー
ス80を介してネットワーク82上の他のコンピュータ
から転送してハードディスク96に格納するようにして
もよいし、ネットワーク82からネットワークインター
フェース80を介して直接RAM76にロードして実行
するようにしてもよい。
【0033】このコンピュータ70の動作は周知である
ので、ここではそれらに付いての詳しい説明は繰返さな
い。また、ロビーマシンおよびクライアントマシンのハ
ードウェアには特に違いはない。クライアントマシンは
いつでもサーバ/クライアントマシンとなり得るもので
あって、サーバ/クライアントマシンのハードウェアも
図9に示されるものと同様である。以下では、ロビーマ
シン以外のマシンは、特にサーバが稼動していることを
示す場合を除いていずれもクライアントマシンと呼び、
サーバが同時に稼動していることを特に示す場合にはサ
ーバ/クライアントマシンと呼ぶこととする。
【0034】図10は、ロビーマシンのRAM100に
格納される情報を示す模式図であり、ロビーマシンのR
AM100には、各マシンがロビーにアクセスしたとき
に各マシンから受取る各マシンの性能情報102と、サ
ーバが稼動状態でないときにアクセスしてきたマシンの
リストを含む待機マシン情報104と、現在のサーバマ
シンを特定する情報であるカレントサーバマシン特定情
報106とが格納されている。
【0035】ロビーマシンは、原則としてクライアント
マシンからアクセスがあったときには、カレントサーバ
マシン特定情報106によって、現在のサーバマシンの
アドレスをクライアントマシンに送信する。サーバが何
らかの原因で稼動中でない場合(たとえばシステムの起
動時またはサーバもしくはサーバへのネットワーク経路
上に何らかの障害が発生した直後)には、クライアント
マシンに伝えるべきサーバの情報は存在しない。そこで
この場合にはロビーマシンは、クライアントマシンの情
報を待機マシン情報104にリストし、後にサーバが稼
動状態となった後にこの待機マシン情報104に基づい
て、接続を要求しているクライアントマシンに対してサ
ーバ情報を送信する。
【0036】ロビーマシンはまた、クライアントマシン
がアクセスしてきたときに、後にサーバ決定処理でサー
バを決定する際に使用される情報を各クライアントマシ
ンに付与する。この情報はサーバに、さらにサーバを経
由して全クライアントにも送信されて、全てのクライア
ントで同じ情報が維持される。またこの情報は、できる
だけ性能の高いマシンにサーバを割り当てるため、各マ
シンの性能情報102も勘案して定められてもよく、ま
た、もっとも単純に、ロビーマシンにアクセスしてきた
順番にしたがってサーバを決定する方法もあり、そのた
めには必ずしも各マシンの性能情報102は必要ではな
い。
【0037】図11は、クライアントマシン(サーバ/
クライアントマシン)のRAM76に格納される情報を
示す模式図である。図11を参照して、クライアントマ
シンのRAM76には、ロビーマシンに伝える当該クラ
イアントマシンの性能情報110と、このクライアント
マシンがサーバとして動作するときに使用するサーバ用
マシンリスト112と、このクライアントマシン上で稼
動するクライアントプロセスが利用するクライアント用
マシンリスト114と、ネットワークゲームを実行する
ための、ゲームソフトウェアのコアともいうべきシステ
ム固有処理ソフトウェア116と、当該クライアントマ
シンとサーバとの通信処理を行うことによりシステム固
有処理ソフトウェア116を適切にクライアントまたは
サーバ/クライアントとして動作させ、さらに後述する
サーバの切替処理を行うためのサーバ/クライアント管
理ソフトウェア118と、現在のシステム中で稼動して
いるサーバを特定するカレントサーバマシン特定情報1
20と、ネットワークの中で自己を他から区別するため
の情報である自己特定情報122とが格納される。
【0038】システム固有処理ソフトウェア116は、
本実施の形態のシステムのネットワークゲームを実現す
るためのソフトウェアであって、サーバとしての動作を
規定するサーバソフトウェア130と、クライアントと
しての動作を規定するクライアントソフトウェア132
とを含む。このサーバソフトウェア130とクライアン
トソフトウェア132とを他のアプリケーション用のソ
フトウェアと入れ替えることにより、このシステムを全
く他の用途に使用することができる。
【0039】なお、サーバ用マシンリスト112は、サ
ーバの起動時にクライアントがクライアント用マシンリ
スト114をコピーすることにより作成される。
【0040】図12は、クライアントマシンのシステム
の機能的構成を示す模式図であり、サーバ/クライアン
トシステム140はその構成として、前述のサーバ/ク
ライアント管理ソフトウェア118ならびにサーバソフ
トウェア130およびクライアントソフトウェア132
と、サーバ/クライアント管理ソフトウェア118とサ
ーバソフトウェア130との間をインターフェースする
インターフェース152と、サーバ/クライアント管理
ソフトウェア118とクライアントソフトウェア132
との間をインターフェースするインターフェース154
とを含む。
【0041】サーバ/クライアント管理ソフトウェア1
18は、サーバとして動作するときに、マシンリストを
作成し全クライアントに配付するためのリスト作成/配
付処理170と、サーバ用通信処理172と、クライア
ントとして動作している場合にサーバ(またはサーバへ
のネットワーク経路上)に障害が発生したときに新たな
サーバを決定し、必要であれば自己のクライアントマシ
ン内に起動するためのサーバ決定/起動処理174と、
クライアント用通信処理178と、クライアントとして
動作しているときに、サーバからの情報に基づいてマシ
ンリストを更新するためのリスト更新処理176とを含
む。
【0042】サーバソフトウェア130は、ネットワー
クゲームのサーバとしての固有の処理を行うサーバ固有
処理156を含む。この場合の固有の処理とは、ゲーム
の状態を保持し、クライアントから送信されてくるユー
ザの入力に応答してゲームの状態を変更し、ゲーム状態
の変更に関する情報を全クライアントに送信する、とい
う処理である。この処理は、ゲームがどのようなゲーム
であるかによって異なる。
【0043】クライアントソフトウェア132はクライ
アント固有処理158および入出力処理160を含む。
クライアント固有処理158は、サーバから送信されて
くるゲーム状態に基づいて、クライアントマシンのモニ
タ上に表示されるべきゲームシーンを計算するための処
理である。また入出力処理160は、ユーザとゲームソ
フトウェアとの間のインターフェースであって、マウス
92またはキーボード94を介するユーザ入力を受付け
る処理である。図9にはユーザ入力のためのデバイスと
してマウス92およびキーボード94のみが示されてい
るが、入力デバイスはこれのみには限定されない。たと
えばジョイスティック、ユーザが身体に装着するセンサ
など、入力処理が行えるものであればどのようなもので
ものよい。
【0044】以下、これらソフトウェアによりどのよう
な処理がされるかについて述べる。以下に説明するソフ
トウェアは通信を用いたものであり、イベント駆動形式
となっている。したがって以下の説明では、基本的にど
のようなイベントが発生するか、あるイベントが発生し
たときにどのような処理が実行されるか、について説明
する。
【0045】[ロビーマシンプロセス]図13は、ロビ
ーマシンの実行する処理を示すイベント−処理対応図で
ある。図13を参照して、ロビーマシンに発生する主な
イベントは、参加要求190とサーバ起動通知192と
である。
【0046】参加要求190があると、待機マシン情報
104(図10参照)を維持するための接続待ちリスト
維持処理200が行われる。このとき、新規に参加を要
求したマシンの性能情報もクライアントからロビーマシ
ンに通知されロビーマシン中に各マシンの性能情報10
2(図10参照)として格納される接続待ちリストに入
れられたクライアントマシンには、サーバが確定次第、
順次サーバのアドレスが通知される。
【0047】たとえばこのクライアントがシステムに参
加する最初のクライアントである場合には、まだサーバ
が決定していないので、この最初に参加したクライアン
トをサーバに決定するサーバ決定処理202が行われ
る。サーバ決定処理が行われた場合には、当該クライア
ントに対してそのクライアントがサーバとして動作すべ
きことを示すサーバ起動命令をクライアントに通知する
サーバ起動命令処理204が実行される。当該クライア
ントは、この命令を受取ると、後述するようにまず自己
内にサーバプロセスを起動したのち、このサーバプロセ
スと通信することによりゲームを開始する。
【0048】一方、接続待ちリスト維持処理200が行
われたとき、すでにシステム内でサーバが稼動している
ときには、このクライアントに対して、すでに稼動して
いるサーバのアドレスを通知するサーバ指定処理206
が行われる。クライアントはこのアドレスに基づいてサ
ーバにアクセスすることによりゲームに参加することが
できる。サーバは決定済みであるがサーバ起動通知19
2がロビーマシンに通知されていないときにはクライア
ントマシンは接続待ちリストに登録される。
【0049】ロビーマシンに対してサーバ起動通知19
2が行われるのは、前述したサーバ起動命令処理204
を受けたクライアントマシンがサーバプロセスを起動し
たときであり、サーバプロセスからロビーマシンに対し
てこの通知を行う。サーバ起動通知192を受けるとロ
ビーマシンは、サーバプロセスが稼動しているマシンの
アドレスなど、クライアントが当該サーバにアクセスす
るために必要な情報を保持するためのサーバ情報維持処
理220を行う。また接続待ちリストに登録されている
クライアントマシンがある場合には、順にサーバアドレ
スを通知し、接続待ちリストから当該クライアントを削
除する。
【0050】[クライアントプロセス]クライアントプ
ロセスは、その起動時に図14のフローチャートに示す
処理を行った後、何らかのイベントに応答して対応の処
理を行う通常処理に移行する。図14を参照してクライ
アントプロセスの起動時には、システム参加要求230
をロビーマシンに対して送信する処理が行われる。な
お、前述のとおりロビーマシンのアドレスは、全クライ
アントに対して予め公表されているものとする。
【0051】続いて、このシステム参加要求230に対
するロビーマシンからの返信がサーバ起動通知か否かに
ついての判定が行われる(ステップ232)。サーバ起
動通知である場合には、このクライアントは、自己が稼
動しているマシン中にサーバプロセスを起動すべくステ
ップ234のサーバ起動処理を行う。サーバが起動した
後、クライアント用通信処理178(図12参照)を介
してサーバプロセスにアクセスするサーバ接続処理23
6を行い、サーバと通信を行うことによりゲームに参加
する。以後、図15のイベント−処理対応図に示す通常
処理を実行する。
【0052】一方、ステップ232で、ロビーマシンか
らの返信がサーバ起動通知でないと判定された場合に
は、サーバを起動する処理を行うことなく、ロビーマシ
ンから通知されたアドレスに対してサーバ接続処理23
6を行い、ゲームに参加する。
【0053】図15は、クライアントマシンおよびクラ
イアント/サーバマシンの実行する処理を示すイベント
−処理対応図である。図15を参照して、クライアント
プロセスの通常処理で発生するイベントと、各イベント
に対して実行される処理には以下のようなものがある。
まず、イベントとしては図9に示すマウス92またはキ
ーボード94を用いたユーザの入力250と、サーバか
らのデータの到着252と、サーバからのシステム構成
変更通知254と、クライアント用通信処理178(図
12参照)から通知されるサーバの異常検出256とが
ある。以下これらイベントについて順に説明する。
【0054】まずユーザの入力250があった場合につ
いて説明する。この入力は、ゲームを進行させるための
キーボード94を介したコマンドの入力またはマウス9
2の操作である。この他にも、入出力装置として使用さ
れるもの、たとえばキーパッド、ジョイスティック、ゲ
ームコントローラ、ユーザが体に装着する何らかのセン
サなどを介した入力が考えられる。
【0055】こうした入力に対しては、ユーザの入力に
応答してゲーム中のクライアントの状態を変化させるた
めの、クライアント固有処理158が実行される。クラ
イアント固有処理158の結果生じたゲーム状態の変化
はクライアント用通信処理178によってサーバに通知
される。サーバは、後述するようにこの通知を受けてゲ
ームシステムの状態を変化させ、変化の結果を全クライ
アントに通知する。
【0056】このとき、ユーザの入力がゲームを終了さ
せるためのものである場合には、クライアントプロセス
を終了させるための終了処理264が実行され、クライ
アントプロセスは終了する。この結果もクライアント用
通信処理178を介してサーバに通知され、サーバプロ
セスによってゲームシステム内からこのクライアントが
削除される。その結果もまたサーバから全クライアント
に対して通知される。
【0057】サーバからのデータの到着252は、主と
していずれかのクライアントからの入力によってサーバ
が維持するゲームシステムの状態に変化があったとき
に、サーバが当該変化を示すデータを全クライアントに
送信したときに発生するイベントである。このイベント
によりサーバからクライアントが受取るデータは、イン
ターフェース154を介してクライアント固有処理15
8に渡される。クライアント固有処理158はこのデー
タに基づいて、モニタ86上のゲームの表示状態を変化
させる。
【0058】システム構成変更通知254は、システム
に新たなクライアントが参加したときにサーバからの通
知により発生するイベントである。このイベントによっ
て受取ったデータを用いて、マシンリストおよびサーバ
順位表422(図24参照)を更新するクライアント用
通信処理178が実行される。ここで重要なことは、い
ずれのクライアントプロセスにも同じシステム構成変更
通知254が行われ、いずれのクライアントプロセスで
も同じアルゴリズムによりマシンリストおよびサーバ順
位表422が実行されることである。そうした処理を行
うことにより、いずれのクライアントプロセスでも、同
一のマシンリストおよびサーバ順位表422を持つこと
になり、後述するようにサーバプロセスを実行するマシ
ンが変更された場合に、各クライアントプロセスで同じ
アルゴリズムで次のサーバを決定することによって、全
クライアントプロセスで同じマシンをサーバプロセスが
実行されているマシンとして特定することができる。
【0059】なお、クライアントがシステムから離脱し
たときにもシステム構成変更通知254を行ってもよい
が、システムに新たに参加する場合と異なり必ずしも必
要というわけではない。
【0060】クライアントプロセスで発生しうるもう一
つのイベントは、サーバの異常検出256である。この
通知は、クライアント用通信処理458(図25参照)
によって行われる。クライアント用通信処理458はサ
ーバとの通信状態を常に監視しており、たとえばサーバ
からの通信が所定時間以上なかったときなどにサーバ
(またはサーバへのネットワーク経路上)で障害が発生
したものと判定して、サーバの異常検出256の通知を
クライアントプロセスに対して行う。
【0061】このイベントに応答して実行されるのがサ
ーバ決定/起動処理456(図25参照)である。まず
サーバ決定処理270が実行される。これは、自己が保
持しているマシンリストおよびサーバ順位表422に基
づいて、所定のアルゴリズムによって次のサーバを決定
するための処理である。決定されたサーバを特定する情
報はカレントサーバマシン特定情報120(図11参
照)として各クライアントに保持される。サーバ決定処
理270は全クライアントで同じアルゴリズムにしたが
って実行される。またその前提として、全クライアント
でマシンリストおよびサーバ順位表422が常に同一で
あるように維持されている必要がある。
【0062】サーバ決定処理270のためのもっとも簡
単なアルゴリズムとしては、前述のようにたとえばロビ
ーマシンに対してアクセスした順番の早いものから順に
サーバとして選択して行く方法がある。この場合ロビー
マシンでは、アクセスしたクライアントのアクセス順を
決定するための情報を維持しておき、各クライアントが
最初にアクセスしてきたときにのこの情報を更新すると
ともに、当該クライアントのアクセス順をサーバに通知
するようにしておけばよい。サーバからこのアクセス順
に相当する情報をシステム構成変更通知254として全
クライアントに通知することにより、全クライアントで
は同じマシンリストおよびサーバ順位表422を維持す
ることができる。
【0063】なお、最近のコンピュータは個人用といえ
ども処理能力が非常に高いので、上述したような単純な
アルゴリズムでサーバを決定してもそれほどの不都合は
生じないと考えられる。もちろん、サーバ処理はマシン
負荷を高くするので、できればサーバプロセスを実行す
るマシンは性能の高いものの方が好ましい。そのため、
この実施の形態のシステムではクライアントは、ロビー
マシンに最初にアクセスするときに自己が稼動している
マシンの性能情報110(図11参照)をロビーマシン
に通知する。ロビーマシンは各マシンの性能情報102
(図10参照)を保持しておき、この各マシンの性能情
報102に基づいてサーバとして決定する際の各クライ
アントの優先順位を定めるようにする。
【0064】再び図15を参照して、サーバ決定処理2
70の結果、自己が次のサーバとして決定されたか否か
をステップ272で判定する。自己がサーバとして決定
されたときにはサーバ起動処理274を行ってサーバを
自己のマシン内に起動する。サーバプロセスの起動の
後、サーバ接続処理276によってこの新たに起動した
サーバに接続しゲームを続行する。
【0065】一方ステップ272で自己が新たなサーバ
ではないと判定された場合には、サーバとして接続先を
新たに決定されたサーバに変更するサーバ変更処理27
8を行い、新たなサーバを中心としてゲームを続行す
る。
【0066】各クライアントマシンにはサーバから常に
ゲームの進行に必要な情報が与えられているので(サー
バからのデータの到着252)、どのクライアントマシ
ンにもサーバを起動しゲームを続行させるために必要な
情報が維持されている。そのため、こうしてサーバを動
的に変更してもユーザがその変更に気付かない程度の時
間で、かつ前サーバ(または前サーバへのネットワーク
経路上)に障害が発生する直前の状態からゲームを続行
することができる。
【0067】[サーバプロセス]続いて、サーバプロセ
スにおいて発生する各イベントと、対応の処理とについ
て図16を参照して説明する。サーバプロセスに発生す
るイベントとして、クライアントからのデータの到着2
80とクライアントの参加282とがある。なおサーバ
プロセスでは、図16の処理に先立って、起動後にロビ
ーマシンにサーバ起動を通知する処理が存在するが、こ
こではそれは図示していない。
【0068】クライアントからのデータの到着280
は、クライアントプロセスにおいて行われたユーザ入力
を示すデータが通信によりサーバに到着したときに発生
するイベントである。このイベントに対してはインター
フェース152を介してユーザ入力を示すデータがサー
バ固有処理156に渡される。サーバ固有処理156で
は、ユーザ入力データに応じてゲーム状態を変更する処
理が行われる。ゲーム状態の変更結果はインターフェー
ス152を介してサーバ用通信処理172に渡され、全
クライアントに対して送信される。なお、あるクライア
ントにおいてゲームを終了する処理がされた場合も上記
と同様である。いずれかのクライアントから明示的にサ
ーバプロセスの終了が指示された場合には、サーバ固有
処理156の結果サーバプロセスの終了処理298が実
行されサーバプロセスは終了する。
【0069】一方、新たなクライアントがゲームに参加
する場合には、当該クライアントはサーバプロセスに対
して接続しクライアントの参加282というイベントが
発生する。この場合にはリスト作成/配付処理170が
実行される。この処理は、新たなクライアントの参加に
よって生じたシステム構成の変化に基づき、自己が維持
するサーバ用マシンリスト112(図11参照)を更新
するとともに、各クライアントに対してこのリストを送
信する処理である。
【0070】まず新たに参加したクライアントから通知
される情報にしたがってサーバ用マシンリスト112
(図11参照)を更新する(マシンリスト更新処理30
0)。続いて、マシンリストの変更を既存クライアント
に通知する(マシンリスト変更通知処理302)ととも
に、当該イベントを引き起こした新規に参加したクライ
アントに対して、更新済みのマシンリストを通知する
(マシンリスト通知処理304)。既存クライアント
は、受信したマシンリストの変更情報に基づいて各クラ
イアント用マシンリスト114(図11参照)を更新す
る。また新規に参加したクライアントはサーバから通知
されたマシンリストをクライアント用マシンリスト11
4として保持する。 こうして、新規にクライアントが
ゲームに参加するたびにサーバ用マシンリスト112と
ともに、全クライアントのマシンリストがサーバ用マシ
ンリスト112と一致するように更新される。その結
果、前述したサーバ決定処理270が全てのクライアン
トで矛盾なく行うことができる。
【0071】[動作シーケンス]以下、ゲームシステム
の状態変化時の動作シーケンスを説明する。
【0072】(1) 最初のクライアントの参加時 最初のクライアントがゲームに参加する時の動作シーケ
ンスは以下の通りである。システム内にサーバは稼動し
ていないことが前提となる。図17のシーケンス図に示
すように、まず新規クライアントが起動されたマシンか
らロビーマシンに対してシステム参加要求310が送信
される。ロビーマシンは、このクライアントマシンがゲ
ームシステムに参加する最初のクライアントでありサー
バが稼動していないので、まず当該クライアントのマシ
ンを接続待ちリストに登録する。続いて当該クライアン
トをサーバに決定しサーバ起動命令312を送信する。
【0073】サーバ起動命令312を受信したクライア
ントはサーバプロセスを当該クライアントが稼動してい
るマシン内に起動する(サーバ機能起動314)。サー
バプロセスが起動すると、当該サーバプロセスからロビ
ーマシンに対しサーバ起動通知316が送信される。
【0074】ロビーマシンはサーバ起動通知316に応
答して自己が保持するカレントサーバマシン特定情報1
06(図10参照)を更新する(サーバ情報更新31
8)。そして、更新されたカレントサーバマシン特定情
報106に基づいて、最初にシステム参加要求310を
送信してきたクライアントプロセスに対し接続サーバ指
定320を通知する。
【0075】当該クライアントプロセスは、接続サーバ
指定320によってロビーマシンから通知されたサーバ
情報にしたがってサーバプロセス(この場合は自己が稼
動するマシン上のプロセス)に接続し(サーバへ接続3
22)、以下通常のクライアント処理を行う。
【0076】(2) 2番目以降のクライアントの参加
時 図18を参照して、ゲームシステムに2番目以降に参加
するマシンでは、クライアントプロセスが起動されると
システム参加要求310を送信する。ロビーマシンで
は、すでにサーバが起動しておりカレントサーバマシン
特定情報106を有しているため、カレントサーバマシ
ンを特定する情報を接続サーバ指定320として当該ク
ライアントに対して送信する。当該クライアントは、こ
の接続サーバ指定320を受信すると、指定されたサー
バに対して接続し(サーバへ接続322)、以後このサ
ーバとの間で通常のゲーム処理を実行する。
【0077】さらに、図19を参照して、新規参加クラ
イアント(マシン1)からサーバに対する接続(サーバ
へ接続322)があったとき、サーバマシンでは新規ク
ライアントの参加にしたがってシステム情報更新324
を行い、既存の全クライアントマシンに対して新規マシ
ン情報通知326を行う。既存の全クライアントマシン
は、新規マシン情報通知326に応答して各自が保持す
るシステム情報を更新(システム情報更新330 )す
る。
【0078】またさらにサーバマシンは新規参加クライ
アントマシンに対してシステム情報通知328を行う。
新規参加クライアントはシステム情報通知328に応答
して自己のシステム情報を更新する(システム情報更新
332)。その後このクライアントマシンはサーバ監視
開始334を行い、さらにゲームを行うためのシステム
開始336を行う。
【0079】(3) サーバ障害発生時 図20を参照して、サーバ(またはサーバへのネットワ
ーク経路上)に何らかの障害発生・機能停止350があ
ったときには、サーバマシンからの応答がなくなったこ
とにより各クライアントマシンがこのサーバの停止を検
出する(352、354)。そして各クライアントマシ
ンはロビーマシンに対してサーバ停止通知356、35
8を送信する。
【0080】ロビーマシンはこのサーバ停止通知35
6、358に応答して自己のサーバ情報を更新する。こ
の際、システム内に一時的にサーバが存在しないことに
なるので、以後に新規にゲームに参加するクライアント
からのアクセスがあったときには、それらクライアント
を接続待ちリストに入れる処理を行う。
【0081】一方、各クライアントマシンでは次のサー
バを決定する処理をそれぞれ独立に行う(次サーバ決定
362、364)。この処理では、前述したごとく全て
のクライアントマシンで同じマシンリストにしたがって
同じアルゴリズムで次のサーバが決定されるので、全ク
ライアントマシンで決定される次のサーバは一致する。
今仮にこのクライアントマシンを図20に示すクライア
ントマシン1であるものとする。
【0082】クライアントマシン1では、次サーバ決定
362の処理の結果自己が次のサーバマシンに決定され
たので、サーバプロセス起動366を行い、新たなサー
バの決定に伴うシステム情報更新368を行う。他のク
ライアントマシン2でも同様にシステム情報更新370
を行う。さらに、クライアントマシン1上で動作してい
るサーバプロセスからロビーマシンに対してサーバ起動
通知372が行われる。ロビーマシンはこのサーバ起動
通知372に応答してサーバ情報更新374を行い、接
続待ちリストにリストされていたクライアントの各々に
対してこの新たなサーバ情報を通知する。
【0083】クライアントマシン1上のクライアントプ
ロセスはまずサーバに接続(376)し、システム再開
(380)をする。他のクライアントマシン上のクライ
アントプロセスは、次サーバ決定364で決定されたサ
ーバであるクライアントマシン1に対して接続を行い
(382)、接続するとサーバ監視開始384を行っ
て、システム再開(386)をし以後通常のクライアン
ト処理を実行する。
【0084】以上のように第1の実施の形態にかかるゲ
ームシステムでは、サーバ(またはサーバへのネットワ
ーク経路上)に何らかの障害が発生してサーバ処理が続
行できなくなった場合に、システムに参加している他の
クライアントマシンの一つの内に新たなサーバプロセス
が起動され、各クライアントマシンがこの新たなサーバ
プロセスに接続を切替えてゲームが続行される。全クラ
イアントマシンでは同じ情報に基づき、同じアルゴリズ
ムで次のサーバを決定するので、次のサーバが矛盾なく
一意に決定される。各クライアントマシンはゲームの進
行に必要な情報を全て持っているので、こうして動的に
サーバを切替えることにより、ゲームの状態が不連続と
なることなく、サーバまたはサーバへのネットワーク上
の障害の発生前の状態から引き続きゲームを続行するこ
とができる。
【0085】またこの第1の実施の形態のシステムで
は、システムへの入り口としてロビーマシンを設け、こ
のロビーマシンのアドレスを公開している。そのため、
現在のサーバプロセスがどのマシン上で稼動しているか
についての知識がないクライアントでも、ロビーマシン
のアドレスさえ知っていればシステムに随時に参加する
ことができる。そのため、たとえばインターネットを介
したネットワークゲームなどを不特定多数のクライアン
トに対して提供するシステムに好適である。 第2の実施の形態 上に述べた第1の実施の形態にかかるシステムは、主と
して不特定多数が参加するシステムを提供するのに好適
であるが、ロビーマシンを常に稼動させておかなければ
ならないという制約がある。一方、仮にシステムに参加
するクライアントが予め全て分かっているシステムで
は、必ずしもこうしたロビーマシンを設ける必要はな
い。以下に述べる第2の実施の形態のシステムは、その
ようにシステムに参加するクライアントが全て予め分か
っているシステムに関する。こうしたクローズドなシス
テムとしてはたとえば、ある会社内の、地理的に離れた
複数の箇所にいる社員が、同じ製品のデザインを共同し
て行なうシステム、一つの編集物を互いに遠隔地にいる
編集者が共同して編集するシステム、遠隔地にいる会社
役員同士が会議を行うための仮想現実的な会議システ
ム、遠隔地にいる者同士で同一の曲を共同で作曲したり
編曲したりするためのシステム、閉じられたグループ内
で行うゲームシステム、などが考えられる。
【0086】こうしたシステムでは、新たにシステムの
外から参加するクライアントは存在しない。また各クラ
イアントマシンは、システムを構成する全マシンのアド
レス情報および性能情報などを予め知ることができる。
そのためこうしたシステムではロビーマシンを省略する
ことができる。以下では、このシステムを共同作業シス
テムとして説明する。
【0087】図21は、第2の実施の形態の共同作業シ
ステム400のクライアント/サーバシステムのブロッ
ク図である。図21を参照してこの共同作業システム4
00が、複数個のコンピュータ402〜410を含むも
のとする。図21に示す時点ではコンピュータ402が
サーバ/クライアントマシンとして動作しており、他の
コンピュータ404〜410はいずれもクライアントマ
シンとして動作しているものとする。
【0088】このシステムでは全クライアントマシンが
同じマシンをサーバマシンとして特定し、当該サーバマ
シンに接続できる。これは、全てのコンピュータに予め
このシステムを構成するコンピュータのマシンリストお
よび性能情報などが保持されており、全クライアントに
おいて同じアルゴリズムでサーバを決定した場合、決定
されるサーバが全てのクライアントで一致するためであ
る。
【0089】図22は、このシステムにおいてサーバマ
シンに障害が発生したときの状態を示すブロック図であ
り、コンピュータ402のサーバプロセス(またはコン
ピュータ402へのネットワーク経路上)に何らかの障
害が発生した場合を考える。コンピュータ404〜41
0の各クライアントからコンピュータ402上のサーバ
に対するアクセスができなくなる。このとき、何らかの
アルゴリズムにしたがってたとえばコンピュータ404
上にサーバプロセスを起動し、各コンピュータ404〜
410上のクライアントがいずれもこのコンピュータ4
04上のサーバにアクセスするようにサーバを切替え
る。その結果、図23に示すように障害が発生したコン
ピュータ402は一時的に他から切り離され、他のマシ
ンによってシステム動作が継続して実行される。
【0090】コンピュータ404〜410のいずれにも
予め同じマシンリストが準備されており、かつ各クライ
アントが同じアルゴリズムにしたがって次にサーバを稼
動させるべきマシンを決定するので、お互いに独立にサ
ーバを決定するにも関わらず、いずれのコンピュータ4
04〜410上のクライアントも同じコンピュータ(こ
の例ではコンピュータ404)を、次のサーバを稼動さ
せるべきマシンとして一致して決定する。その結果、こ
のシステムでも第1の実施の形態のシステムと同様、何
らかの原因でサーバが機能停止してもサーバを他のマシ
ンに切替えて継続して処理を行うことができる。
【0091】図24は、第2の実施の形態のクライアン
トマシンのRAM420に格納される情報を示す模式図
であり、この第2の実施の形態のシステムで用いられる
クライアントマシンシステムのRAM420には、マシ
ンリストおよびサーバ順位表422と、マシンリスト4
24と、サーバ/クライアント管理ソフトウェア426
と、カレントサーバマシン特定情報428と、システム
固有処理ソフトウェア430と、自己特定情報432と
が記憶される。システム固有処理ソフトウェア430
は、サーバソフトウェア440およびクライアントソフ
トウェア442を含む。これらソフトウェアは、いずれ
も前述した共同作業システムを実現するための機能を持
つ。
【0092】図25は、このシステムのクライアントマ
シンのための共同作業用ソフトウェア450の機能的構
成を示す模式図であり、共同作業用ソフトウェア450
は、その構成として、サーバ/クライアント管理ソフト
ウェア452と、インターフェース152およびインタ
ーフェース154と、サーバソフトウェア440と、ク
ライアントソフトウェア442とを含む。サーバソフト
ウェア440は、共同作業のうちサーバが担当する、共
同作業の対象の状態を維持管理するためのサーバ固有処
理466を含む。クライアントソフトウェア442は、
サーバにより維持管理される共同作業の対象の状態に基
づいて共同作業の対象の形状処理をし表示するクライア
ント固有処理468と、ユーザからの入出力の指示を受
けるための入出力処理470とを含む。
【0093】このシステムの動作について以下説明する
が、サーバソフトウェアについては、ロビーマシンとの
交信がないこと、新規に参加するクライアントマシンが
ないためシステム情報を各クライアントに通知する処理
が必要ないことを除き第1の実施の形態のサーバソフト
ウェアをそのまま使用することができる。
【0094】またクライアントの処理としても、クライ
アントの起動時とサーバ(またはネットワーク経路上)
の障害の検出時との双方において図26に示すような処
理をすることを除き、他の部分においては第1の実施の
形態におけるクライアントの処理と同様でよい。
【0095】図26を参照して、この第2の実施の形態
のシステムのクライアントは、起動時およびサーバの障
害検出時の双方とも、まずサーバ決定処理500を行
う。この処理では、第1の実施の形態の場合と同様に全
てのクライアントマシンが同じマシンリストを持ち、か
つ同じアルゴリズムで次のサーバを決定する。したがっ
て各クライアントマシンで独立にサーバ決定処理を行う
にもかかわらず、全てのクライアントマシンで決定され
るサーバは一致する。この第2の実施の形態では、マシ
ンリストは第1の実施の形態のときと異なり固定されて
おり変化することはない。
【0096】こうして決定されたサーバマシンが自己の
マシンかどうかについての判定を行う(ステップ50
2)。もし決定されたサーバマシンが自己のマシンであ
ればサーバ起動処理504を行い、起動されたサーバマ
シンに対してその後サーバ接続処理506を実行する。
ステップ502で、サーバマシンが自己のマシンでない
と判定された場合には、サーバ起動処理504の処理を
行わず、新たに決定されたサーバに対してサーバ接続処
理506を行う。こうして、各クライアントは、サーバ
に接続したのち第1の実施の形態のクライアントと同様
に通常の処理を行う。
【0097】この第2の実施の形態のシステムでは、マ
シンリストが予め全クライアントマシンで共有されてお
り、クライアントマシンが新規にシステムに参加するこ
とがないことを前提としている。各クライアントマシン
はいずれもシステム内の他の全マシンのアドレスを知っ
ているため、ロビーマシンにアクセスすることなくシス
テムに参加できる。またマシンリストを共有しているた
め、同じアルゴリズムを用いることによりサーバ決定処
理の結果はどのクライアントマシンでも一致し、サーバ
またはサーバへのネットワーク経路上に障害が発生した
ときでも他のクライアントマシン上に新たなサーバを立
ち上げて、以後の処理を矛盾なく続行することができ
る。
【0098】なお、障害が発生したマシンについては再
度このシステムにクライアントとして参加できるように
することが望ましい。この場合にも、システム内の全ク
ライアントのリストが存在しているので、たとえばシス
テム内の全てのクライアントマシンに対してサーバアク
セスを行い、返答がかえってきたマシンをサーバとして
システムに再度参加してもよい。この参加は全くの新規
の参加ではなく、マシンリスト内にこのクライアントマ
シンの情報が記載されているので、ロビーマシンなしに
行うことができる。
【0099】今回開示された実施の形態はすべての点で
例示であって制限的なものではないと考えられるべきで
ある。本発明の範囲は上記した説明ではなくて特許請求
の範囲によって示され、特許請求の範囲と均等の意味お
よび範囲内でのすべての変更が含まれることが意図され
る。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態にかかるクライアン
ト−サーバシステムであるネットワークゲームシステム
のブロック図である。
【図2】第1の実施の形態のネットワークゲームシステ
ムの開始時の処理を示す模式図である。
【図3】第1の実施の形態のネットワークゲームシステ
ムの開始時のサーバの起動処理を示す模式図である。
【図4】第1の実施の形態のネットワークゲームシステ
ムの、サーバ起動後のクライアントの参加時の処理を示
す模式図である。
【図5】第1の実施の形態のネットワークゲームシステ
ムの、サーバ起動後のクライアントの参加時の処理を示
す模式図である。
【図6】第1の実施の形態のネットワークゲームシステ
ムの、サーバ起動後の処理を示す模式図である。
【図7】第1の実施の形態のネットワークゲームシステ
ムにおいてサーバマシンに障害が発生した直後の状態を
示す模式図である。
【図8】第1の実施の形態のネットワークゲームシステ
ムにおいてサーバマシンに障害が発生した後、別のマシ
ン上にサーバを起動した後の状態を示す模式図である。
【図9】ネットワークゲームシステムを構成する一般的
なコンピュータのハードウェア構成を示すブロック図で
ある。
【図10】ロビーマシンのRAM内に格納される情報を
示す模式図である。
【図11】クライアントマシンのRAMに格納される情
報を示す模式図である。
【図12】クライアントマシンのシステムの機能的構成
を示す模式図である。
【図13】ロビーマシンの実行する処理を示すイベント
−処理対応図である。
【図14】クライアント起動時に実行される処理の流れ
を示すフローチャートである。
【図15】クライアントマシンおよびクライアント/サ
ーバマシンの実行する処理を示すイベント−処理対応図
である。
【図16】クライアント/サーバマシンの実行する処理
を示すイベント−処理対応図である。
【図17】ネットワークゲームシステムに最初に参加す
るマシンとロビーマシンとの間のメッセージシーケンス
図である。
【図18】サーバ起動後にネットワークゲームシステム
に参加するマシンとロビーマシンとの間のメッセージシ
ーケンス図である。
【図19】ネットワークゲームシステムに最初に参加す
るマシンとサーバマシンおよび既存のクライアントマシ
ンとの間のメッセージシーケンス図である。
【図20】サーバマシンに障害が発生したときのシステ
ム内のメッセージシーケンス図である。
【図21】本発明の第2の実施の形態にかかる、クロー
ズドなシステムでのクライアント/サーバシステムのブ
ロック図である。
【図22】クローズドなシステムにおいてサーバマシン
に障害が発生したときの状態を示すブロック図である。
【図23】クローズドなシステムにおいて、別のクライ
アントマシン上にサーバプロセスが起動された後の状態
を示すブロック図である。
【図24】第2の実施の形態のクライアントマシンのR
AMに格納される情報を示す模式図である。
【図25】第2の実施の形態のクライアントマシンの機
能的構成を示す模式図である。
【図26】第2の実施の形態のクライアントプロセスの
起動時の処理を示すフローチャートである。
【符号の説明】
32 ロビーマシン 34〜42、52〜60 コンピュータ 112、114 カレントシステム構成情報(マシンリ
スト) 116 システム固有処理ソフトウェア 118 サーバ/クライアント管理ソフトウェア 120 カレントサーバマシン特定情報 130 サーバソフトウェア 132 クライアントソフトウェア
───────────────────────────────────────────────────── フロントページの続き (72)発明者 和田 健之介 京都府相楽郡精華町大字乾谷小字三平谷5 番地 株式会社エイ・ティ・アール人間情 報通信研究所内 (72)発明者 下原 勝憲 京都府相楽郡精華町大字乾谷小字三平谷5 番地 株式会社エイ・ティ・アール人間情 報通信研究所内 Fターム(参考) 5B045 GG01 JJ38 JJ44 JJ46

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 ネットワークによって互いに交信可能な
    複数のコンピュータから形成されるクライアント−サー
    バシステムであって、前記各コンピュータは、 サーバとして稼動するためのサーバ手段と、 クライアントとして稼動するためのクライアント手段
    と、 システムに参加しているコンピュータのリストを維持す
    るリスト維持手段と、 前記クライアント手段がシステム内のサーバの異常を検
    知したことに応答して、前記リストに基づいて、予め定
    められる手順にしたがってシステム内のコンピュータを
    選択するための選択手段と、 前記選択手段により自己が選択されたことに応答して、
    自己の内のサーバ手段をサーバとして稼動開始させるた
    めの手段と、 前記選択手段によって選択されたコンピュータ上で稼動
    しているサーバに前記クライアント手段の接続を切替え
    るための手段とを含む、 クライアント−サーバシステム。
  2. 【請求項2】 クライアント−サーバシステムを構成す
    るサーバ/クライアント装置であって、 サーバとして稼動するためのサーバ手段と、 クライアントとして稼動するためのクライアント手段
    と、 システムに参加しているサーバ/クライアント装置のリ
    ストを維持するリスト維持手段と、 前記クライアント手段がシステム内のサーバの異常を検
    知したことに応答して、前記リストに基づいて、予め定
    められる手順にしたがってシステム内のサーバ/クライ
    アント装置を選択するための選択手段と、 前記選択手段により自己が選択されたことに応答して、
    自己の内のサーバ手段をサーバとして稼動開始させるた
    めの手段と、 前記選択手段によって選択されたサーバ/クライアント
    装置上で稼動しているサーバに前記クライアント手段の
    接続を切替えるための手段とを含む、サーバ/クライア
    ント装置。
  3. 【請求項3】 サーバとして稼動するためのサーバ手段
    と、クライアントとして稼動するためのクライアント手
    段との双方を備えている、ネットワークによって互いに
    交信可能なコンピュータから形成されるクライアント−
    サーバシステム内の各コンピュータで実行されるサーバ
    /クライアントソフトウェアの管理プログラムを記録し
    たコンピュータで読取可能な記録媒体であって、 前記管理プログラムは、 システムに参加しているコンピュータのリストを維持す
    る機能を実現するプログラム部分と、 前記クライアント手段がシステム内のサーバの異常を検
    知したことに応答して、前記リストに基づいて、予め定
    められる手順にしたがってシステム内のコンピュータを
    選択する機能を実現する選択プログラム部分と、 前記選択プログラム部分により自己が選択されたことに
    応答して、自己が稼動しているコンピュータ内のサーバ
    手段をサーバとして稼動開始させる機能を実現するプロ
    グラム部分と、 前記選択プログラム部分によって選択されたコンピュー
    タ上で稼動しているサーバに前記クライアント手段の接
    続を切替える機能を実現するプログラム部分とを含む、
    サーバ/クライアントソフトウェアの管理プログラムを
    記録したコンピュータで読取可能な記録媒体。
JP11017218A 1999-01-26 1999-01-26 クライアント―サ―バシステム、サ―バ/クライアント装置、およびサ―バ/クライアントソフトウェアの管理プログラムを記録したコンピュ―タで読取可能な記録媒体 Pending JP2000215177A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11017218A JP2000215177A (ja) 1999-01-26 1999-01-26 クライアント―サ―バシステム、サ―バ/クライアント装置、およびサ―バ/クライアントソフトウェアの管理プログラムを記録したコンピュ―タで読取可能な記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11017218A JP2000215177A (ja) 1999-01-26 1999-01-26 クライアント―サ―バシステム、サ―バ/クライアント装置、およびサ―バ/クライアントソフトウェアの管理プログラムを記録したコンピュ―タで読取可能な記録媒体

Publications (1)

Publication Number Publication Date
JP2000215177A true JP2000215177A (ja) 2000-08-04

Family

ID=11937814

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11017218A Pending JP2000215177A (ja) 1999-01-26 1999-01-26 クライアント―サ―バシステム、サ―バ/クライアント装置、およびサ―バ/クライアントソフトウェアの管理プログラムを記録したコンピュ―タで読取可能な記録媒体

Country Status (1)

Country Link
JP (1) JP2000215177A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3518599B2 (ja) 2002-01-09 2004-04-12 日本電気株式会社 無線lanシステム、アクセス制御方法およびプログラム
JP2007200361A (ja) * 2007-05-07 2007-08-09 Omron Corp イベント共有システム、イベント共有方法及びイベント共有プログラム
JP2010176662A (ja) * 2009-01-31 2010-08-12 Internatl Business Mach Corp <Ibm> 仮想空間環境を与える方法、コンピュータ・システム及びコンピュータ読み取り可能な記憶媒体
JP2010198404A (ja) * 2009-02-26 2010-09-09 Nec Corp 情報処理システム、ディザスタリカバリ方法及びディザスタリカバリプログラム
JP2010541476A (ja) * 2007-10-05 2010-12-24 ソニー コンピュータ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー Natタイプに基づくシームレスなホスト移行
US9319460B2 (en) 2013-06-27 2016-04-19 Fujitsu Limited Information processing method, computer-readable recording medium, and information processing system
US9778637B2 (en) 2011-09-20 2017-10-03 Daifuku Co., Ltd. Facility control system and facility control method
US9778625B2 (en) 2011-09-20 2017-10-03 Daifuku Co., Ltd. Facility control system and facility control method

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3518599B2 (ja) 2002-01-09 2004-04-12 日本電気株式会社 無線lanシステム、アクセス制御方法およびプログラム
JP2007200361A (ja) * 2007-05-07 2007-08-09 Omron Corp イベント共有システム、イベント共有方法及びイベント共有プログラム
JP2010541476A (ja) * 2007-10-05 2010-12-24 ソニー コンピュータ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー Natタイプに基づくシームレスなホスト移行
TWI491229B (zh) * 2007-10-05 2015-07-01 Sony Comp Entertainment Us 基於網路位址轉譯類型之順暢的主機遷移
JP2010176662A (ja) * 2009-01-31 2010-08-12 Internatl Business Mach Corp <Ibm> 仮想空間環境を与える方法、コンピュータ・システム及びコンピュータ読み取り可能な記憶媒体
US9600306B2 (en) 2009-01-31 2017-03-21 International Business Machines Corporation Client-side simulated virtual universe environment
JP2010198404A (ja) * 2009-02-26 2010-09-09 Nec Corp 情報処理システム、ディザスタリカバリ方法及びディザスタリカバリプログラム
US9778637B2 (en) 2011-09-20 2017-10-03 Daifuku Co., Ltd. Facility control system and facility control method
US9778625B2 (en) 2011-09-20 2017-10-03 Daifuku Co., Ltd. Facility control system and facility control method
US9319460B2 (en) 2013-06-27 2016-04-19 Fujitsu Limited Information processing method, computer-readable recording medium, and information processing system
US9886358B2 (en) 2013-06-27 2018-02-06 Fujitsu Limited Information processing method, computer-readable recording medium, and information processing system

Similar Documents

Publication Publication Date Title
CA2467813C (en) Real composite objects for providing high availability of resources on networked systems
US7370223B2 (en) System and method for managing clusters containing multiple nodes
JP3962157B2 (ja) プロキシ及び共有状態サーバを使用してwwwでの認知、ツアー及び会議をポータブルに可能にする方法及びシステム
US7076691B1 (en) Robust indication processing failure mode handling
US20030005350A1 (en) Failover management system
JP4724733B2 (ja) 映像編集システム、映像編集サーバ、通信端末
TW201824823A (zh) 虛擬互聯網協定位址的切換方法及裝置
US8375126B2 (en) Methods, apparatus and techniques for suspending, resuming, and sharing sessions using object serialization
CN115373698A (zh) 一种消息转发方法、装置、电子设备和存储介质
JP2000215177A (ja) クライアント―サ―バシステム、サ―バ/クライアント装置、およびサ―バ/クライアントソフトウェアの管理プログラムを記録したコンピュ―タで読取可能な記録媒体
JPH09259096A (ja) ネットワーク高信頼化方式及びシステム
JP2006014310A (ja) 冗長接続サービスの提供方法および装置
JP4806382B2 (ja) 冗長化システム
CN110113192B (zh) 虚拟桌面的选路方法、选路设备、系统、存储介质及装置
CN103179102A (zh) 一种桌面虚拟化方法、设备及系统
JP7679419B2 (ja) メッセージングサービス方法及び装置
US7801966B2 (en) Object duplication
CN113413586B (zh) 一种虚拟对象传送方法、装置、设备及存储介质
JP2005136690A (ja) 高速ネットワークアドレス引継ぎ方法、ネットワーク装置及びプログラム
CN110351122A (zh) 容灾方法、装置、系统与电子设备
JPH08241276A (ja) アプリケーション共有化システム
JP4579850B2 (ja) ブレード型システムおよびコネクション管理方法
JP2001160022A (ja) チャットシステム、チャット制御方法およびプログラムを記録した記録媒体
JP4224037B2 (ja) サービス提供方法、及びデータ処理装置
JP2007249659A (ja) システム切替方法、その計算機システム及びプログラム

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20031028