説明

ネットワークシステム、サーバ、通信制御方法及びプログラム

【課題】通信遅延を適切に制御することが可能なネットワークシステム、サーバ、通信制御方法及びプログラムを提供する。
【解決手段】サーバ100は、複数の端末装置300の数を取得する。次に、サーバ100は、取得した複数の端末装置の数に基づいて、サーバ100の利用率を判別する。更に、サーバ100は、判別したサーバ100の利用率と、競走におけるゴールしていない利用者間での順位に応じて、端末装置300による情報の送信間隔を判別する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークシステム、サーバ、通信制御方法及びプログラムに関する。
【背景技術】
【0002】
近年、複数の端末装置がネットワークを介して情報を共有することにより、仮想空間を実現するアプリケーションを実行するシステムがある。仮想空間を実現するアプリケーションは、例えば、ネットワークを介する対戦型ゲームや、健康維持を目的としてジョギング等の競走の順位を競うトレーニングシステム等が挙げられる。これらのアプリケーションは、遠隔地に存在する複数の利用者が利用する端末装置間で、各種情報等を相互に交換することにより、仮想空間上で各ユーザが移動したり、移動量に応じてユーザの表示が更新される。
【0003】
上述したシステムは、ネットワークを利用するため、ネットワーク上のトラフィック量等により通信遅延が生じ、通信遅延がアプリケーションに悪影響を与える場合がある。すなわち、通信相手となる端末装置からの応答が遅延し、仮想空間上における通信相手となる端末装置の位置と、現時点の位置とが異なることが生じる。特許文献1には、このような通信遅延を考慮したシステムが開示されている。特許文献1に記載のシステムは、端末装置間の通信にピアツーピア通信を採用し、通信遅延を考慮して、仮想空間上における通信相手の端末装置の位置を予測する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−320502号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載のシステムは、ピアツーピア通信を採用するため、端末装置の数が増加した場合に、トラフィック量が飛躍的に増加し、結果的に通信遅延が増大してしまうという問題がある。一方、ピアツーピア通信を採用せずに、いわゆるクライアントサーバシステムを採用した場合にも、同様に、端末装置の数が増加すると、サーバの処理能力によっては通信遅延が増大してしまうという問題がある。このため、通信遅延を適切に制御することが要求されている。
【0006】
本発明は、上記課題を解決するために鑑みてなされたものであり、通信遅延を適切に制御することが可能なネットワークシステム、サーバ、通信制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明の第1の観点に係るネットワークシステムは、複数の端末装置(300−1〜300−n)と、前記複数の端末装置からの情報を受信するサーバ(100)とを有するネットワークシステム(1)であって、前記サーバは、前記複数の端末装置の数を取得する端末装置数取得部(101)と、前記端末装置数取得部により取得された前記複数の端末装置の数に基づいて、前記サーバの利用率を判別する利用率判別部(103)と、前記利用率判別部により判別された前記サーバの利用率と各端末装置の送信間隔に関する優先度とに基づいて、各端末装置による情報の送信間隔を判別する送信間隔判別部(103)と、を備えることを特徴とする。
【0008】
例えば、前記サーバは、仮想空間上で各端末装置の利用者によって行われる競走の順位を判別する順位判別部(103)を備え、前記送信間隔判別部は、前記順位判別部により判別された順位を前記優先度として用いるようにしてもよい。
【0009】
例えば、前記送信間隔判別部は、各端末装置のうち所定の端末装置の通信方式を選択するとともに、この選択した通信方式に基づいて、前記所定の端末装置による情報の送信間隔を判別するようにしてもよい。
【0010】
例えば、前記送信間隔判別部は、ピアツーピアによる通信方式を選択してもよい。
【0011】
例えば、前記送信間隔判別部は、各端末装置の送信間隔に関する優先度の変化に応じて、各端末装置による送信間隔を更新してもよい。
【0012】
例えば、前記複数の端末装置は、前記サーバに対して、接続要求を送信する要求送信部(307)を備え、前記端末装置数取得部は、前記複数の端末装置からの接続要求に基づいて、前記複数の端末装置の数を取得してもよい。
【0013】
上記目的を達成するために、本発明の第2の観点に係るサーバは、複数の端末装置からの情報を受信するサーバであって、前記複数の端末装置の数を取得する端末装置数取得部と、前記端末装置数取得部により取得された前記複数の端末装置の数に基づいて、前記サーバの利用率を判別する利用率判別部と、前記利用率判別部により判別された前記サーバの利用率と各端末装置の送信間隔に関する優先度とに基づいて、各端末装置による情報の送信間隔を判別する送信間隔判別部と、を備えることを特徴とする。
【0014】
上記目的を達成するために、本発明の第3の観点に係る通信制御方法は、複数の端末装置からの情報を受信するサーバにおける通信制御方法であって、前記複数の端末装置の数を取得する手順(ステップS201)と、取得された前記複数の端末装置の数に基づいて、前記サーバの利用率を判別する手順(ステップS202)と、判別された前記サーバの利用率と各端末装置の送信間隔に関する優先度とに基づいて、各端末装置による情報の送信間隔を判別する手順(ステップS203)と、を備えることを特徴とする。
【0015】
上記目的を達成するために、本発明の第4の観点に係るプログラムは、複数の端末装置からの情報を受信するコンピュータに、前記複数の端末装置の数を取得する手順と、取得された前記複数の端末装置の数に基づいて、前記コンピュータの利用率を判別する手順と、判別された前記コンピュータの利用率と各端末装置の送信間隔に関する優先度とに基づいて、各端末装置による情報の送信間隔を判別する手順と、を実行させることを特徴とするプログラムである。
【発明の効果】
【0016】
本発明によれば、通信遅延を適切に制御することが可能となる。
【図面の簡単な説明】
【0017】
【図1】本発明の実施形態に係るネットワークシステムの構成の一例を示す図である。
【図2】本発明の実施形態に係るサーバ及び端末装置の詳細な構成の一例を示す図である。
【図3】本発明の実施形態に係る平均利用率テーブルの一例を示す図である。
【図4】本発明の実施形態に係る端末装置数と送信間隔との対応関係の一例を示す図である。
【図5】本発明の実施形態に係る状態情報の一例を示す図である。
【図6】本発明の実施形態に係る平均利用率補正値テーブルの一例を示す図である。
【図7】本発明の実施形態に係る通信シーケンスの一例を示す図である。
【図8】本発明の実施形態に係る送信間隔判別処理の一例を示すフローチャートである。
【図9】本発明の実施形態に係る通信シーケンスの一例を示す図である。
【図10】本発明の実施形態に係る送信間隔更新処理の一例を示すフローチャートである。
【図11】本発明の実施形態に係るグルーピング情報の一例を示す図である。
【発明を実施するための形態】
【0018】
以下、図面を参照して、本発明の実施形態に係るネットワークシステム、サーバ、通信制御方法及びプログラムを説明する。
【0019】
ネットワークシステム1は、サーバ100と、複数の端末装置300−1乃至300−n(以下、これら端末装置300−1乃至300−nのそれぞれを、適宜「端末装置300」と称する)と、サーバ100と端末装置300−1乃至300−nとを接続する通信ネットワーク200とにより構成される。
【0020】
端末装置300−1乃至300−nは、単一又は複数の施設内に設置されている。端末装置300−1乃至300−nは、利用者が移動せずにジョギングを行うことを可能とするジョギングマシン等のトレーニングマシンを内蔵する。サーバ100は、仮想空間上でのジョギング等の競走(以下、「競走」と称する)のアプリケーションを実行し、端末装置300−1乃至300−nの利用者の擬似的な走行距離に基づいて、各利用者の順位付けを行う。
【0021】
サーバ100は、図2に示すように、制御部110、トラフィック制御部103、メモリ104を備える。制御部110は、例えばCPU(Central Processing Unit)により構成される。制御部110は、メモリ104に記憶されたプログラムを読み出して実行し、メモリ104に記憶された各種データを処理することなどにより、サーバ100の全体を制御する。制御部110は、情報管理部101及びカウント部102の機能を実現する。
【0022】
トラフィック制御部103は、例えばDSP(Digital Signal Processor)により構成される。トラフィック制御部103は、端末装置300との通信を制御する。トラフィック制御部103は、TCP/IP(Transmission Control Protocol/Internet Protocol)によるパケット通信や、UDP(User Datagram Protocol)によるマルチキャスト通信を管理し、IEEE802.3において規定されたインターフェースを採用する。メモリ104は、サーバ100の動作に必要なプログラムや各種データを記憶する。メモリ104には、後述する平均利用率テーブル112及び平均利用率補正値テーブル113が記憶されている。
【0023】
端末装置300は、図2に示すように、制御部310、トレーニングマシン301、表示装置302、通信制御部307、操作部308、メモリ311を備える。制御部310は、例えばCPUにより構成される。制御部310は、メモリ311に記憶されたプログラムを読み出して実行し、メモリ311に記憶された各種データを処理することなどにより、端末装置300の全体を制御する。制御部310は、マシン制御部303、コンテンツ制御部304及び情報管理部306の各種機能を実現する。トレーニングマシン301は、利用者が搭乗する図示しないベルト等を備えている。トレーニングマシン301は、ベルトを移動させることで、利用者にジョギングを行わせる。表示装置302は、例えば液晶ディスプレイである。表示装置302は、各種の文字や映像を表示する。通信制御部307は、例えばDSPにより構成される。通信制御部307は、サーバ100との通信を制御する。TCP/IPによるパケット通信を管理し、IEEE802.3において規定されたインターフェースを採用する。メモリ311は、端末装置300の動作に必要なプログラムや各種データを記憶する。メモリ311には、後述するデータベース305が構成されている。
【0024】
次に、図7から図10に示す通信シーケンス及びフローチャートを参照しつつ、各端末装置300の利用者の間で競走が行われる場合のネットワークシステム1の動作を説明する。
【0025】
予め定められたエントリ情報の受付期間内において、端末装置300の利用者は、各端末装置300の利用者の間で行われる競走の参加を希望する場合、操作部308を操作する。制御部310内の情報管理部306は、操作に応じて、接続要求としてのエントリ情報を生成し、通信制御部307へ出力する。通信制御部307は、入力されたエントリ情報を、通信ネットワーク200を介してサーバ100へ送信する。
【0026】
具体的には、図7に示す時刻t1において、端末装置300−1は、エントリ情報を送信する。エントリ情報は、端末装置300の識別情報である端末ID、IPアドレス、MACアドレス等を含む。以下においては、端末装置300の識別情報は、端末IDとする。
【0027】
サーバ100の制御部110内の情報管理部101は、トラフィック制御部103を介して、エントリ情報を受信する(ステップS101)。情報管理部101は、受信したエントリ情報内の端末IDを解析する。解析の結果、受信された端末IDが、エントリ情報の受付期間内において、既に受信済みである端末IDと異なる場合、情報管理部101は、受信したエントリ情報内の端末IDをメモリ104に記憶させる。更に、情報管理部101は、カウント部102に対して、カウント値を1増加するように指示する。カウント部102は、情報管理部101の指示に応じて、カウント値を増加させる。カウント値は、競走に参加する利用者が利用する端末装置300の数(端末装置数n)を示す。
【0028】
更に、情報管理部101は、競走の参加を受け付けた旨の応答情報(ACK)を、トラフィック制御部103及び通信ネットワーク200を介して、エントリ情報の送信元の端末装置300−1へ送信する。端末装置300−1内の通信制御部307は、応答情報を受信して、制御部310内の情報管理部306へ出力する(ステップS102)。以上の処理によって、端末装置300−1の利用者の競走の参加受け付けが完了する。
【0029】
同様に、時刻t2において、端末装置300−2は、エントリ情報を送信する。サーバ100は、エントリ情報を受信する(ステップS103)。サーバ100は、エントリ情報に対する応答情報を送信する。端末装置300−2は、応答情報を受信する(ステップS104)。同様に、時刻t3において、端末装置300−3は、エントリ情報を送信する。サーバ100は、エントリ情報を受信する(ステップS105)。サーバ100は、エントリ情報に対する応答情報を送信する。端末装置300−3は、応答情報を受信する(ステップS106)。
【0030】
その後、予め定められたエントリ情報の受付期間が終了すると、時刻t4において、サーバ100の制御部110内の情報管理部101は、メモリ104からプログラムを読み出して実行することにより、競走のアプリケーションを開始する(ステップS107)。更に、情報管理部101は、メモリ104に記憶されている端末IDをトラフィック制御部103へ出力する。情報管理部101は、カウント部102のカウント値である端末装置数nを取得し、トラフィック制御部103へ出力する。
【0031】
端末IDと端末装置数nとが入力されると、トラフィック制御部103は、各端末装置300がサーバ100に対して、アプリケーションの実行に際して必要となる情報を送信する間隔(以下、「送信間隔」と称する)Tdを判別する処理を行う(ステップS108)。
【0032】
具体的には、図8に示すように、サーバ100内のトラフィック制御部103は、端末装置数nを取得する(ステップS201)。次に、トラフィック制御部103は、メモリ104に記憶されている、図3に例示する平均利用率テーブル112を読み出す。平均利用率テーブル112は、端末装置数nと、サーバ100の平均利用率ρとの対応関係を示す。平均利用率ρは、制御部110を構成するCPU、メモリ104等、サーバ100のリソースについての所定期間内の利用率の平均値である。従って、平均利用率ρは、端末装置数nに比例し、送信間隔Tdに反比例する関係にある。本実施形態では、図3の平均利用率テーブル112を用いて、端末装置数nに応じて平均利用率ρを定める。
【0033】
トラフィック制御部103は、平均利用率テーブル112を参照し、端末装置数nに対応するサーバ100の平均利用率ρを定める(ステップS202)。例えば、図3の平均利用率テーブル112が用いられる場合、端末装置数nが350のとき、サーバ100の平均利用率ρを0.4とする。
【0034】
トラフィック制御部103は、決定した平均利用率ρから、各端末装置300毎に送信間隔Tdを算出する(ステップS203)。以下、送信間隔Tdの算出のアルゴリズムについて説明する。
【0035】
ネットワークシステム1の構成の条件として、n台の端末装置300は、任意の送信間隔Td(sec)で、サーバ100へ情報を送信する。一方、サーバ100は、各端末装置300からの情報を加工して、各端末装置300へ送信する。端末装置300が情報を送信してからサーバ100からの情報を受信するまでの平均時間を、平均処理時間Tserv(sec)とする。平均処理時間Tservは、通信ネットワーク200上のルーティング等の遅延時間を含んだ1回のトランザクション時間であり、既知の値とする。
【0036】
このような条件下では、待ち行列の算出にM/M/1モデルを適用することができる。M/M/1モデルでは、平均待ち時間をTw、平均サービス時間をTsとすると、以下の(式1)が成り立つ。
(式1) Tw=ρ/(1−ρ)×Ts
また、単位時間当たりの到着数を平均到着率λ、単位時間に処理できる数を平均サービス率μとすると、平均到着率λ、平均サービス率μ、平均利用率ρは、
(式2) λ=n/Td
(式3) μ=1/Tserv
(式4) ρ=λ/μ
で表される。本実施形態では、Tsは、上述のTservである。(式2)、(式3)、(式4)から
ρ=n×Tserv/Td
となる。これを変形して、送信間隔Tdは
(式5) Td=n×Tserv/ρ
となる。
また、図3に示すように、平均利用率ρは、端末装置数nにより定まり、端末装置数nが多いほど、大きくなるように設定されている。更に、平均処理時間Tservは、サーバ100に固有の値である。従って、端末装置数nが定まれば、トラフィック制御部103は、図3から求めたρと、(式5)とに基づいて、送信間隔Tdを算出することができる。その結果、端末装置数nと送信間隔Tdとは、図4に示す対応関係となる。図4によれば、端末装置数nが350を含む200〜800のときには、送信間隔Tdは6〜10(sec)の範囲の値となる。
【0037】
再び、図7に戻って説明する。送信間隔Tdを判別した後、トラフィック制御部103は、競走のアプリケーションが開始された旨を示すアプリケーション開始情報を、通信ネットワーク200を介して競走の参加者(利用者)が利用する端末装置300へ送信する。トラフィック制御部103は、各端末装置300毎に判別した送信間隔Tdを示す情報(送信間隔情報)を、端末IDに対応づけてメモリ114に記憶させる。また、トラフィック制御部103は、送信間隔情報を、通信ネットワーク200を介して競走の参加者が利用する端末装置300へ送信する。このとき、トラフィック制御部103は、マルチキャスト通信、又は、競走の参加者が利用する端末装置300に対応するIPアドレス毎のユニキャスト通信を行う。
【0038】
端末装置300内の通信制御部307は、アプリケーション開始情報と送信間隔情報とを受信し(ステップS109)、情報管理部306へ出力する。制御部310内の情報管理部306は、送信間隔情報をメモリ311に記憶させる。また、情報管理部306は、アプリケーション開始情報をマシン制御部303及びコンテンツ制御部304へ出力する。
【0039】
制御部310内のマシン制御部303は、利用者が操作部308を操作することにより、走行時のスピードを調整した場合、その走行時のスピードを示すスピード情報を生成して、メモリ311に記憶し、更新させている。
【0040】
マシン制御部303は、入力されたアプリケーション開始情報に基づいて、競走のアプリケーションが開始されたことを認識する。次に、マシン制御部303は、トレーニングマシン301の制御を開始する。データベース305には、仮想空間上のジョギングコースの起伏を示す起伏情報が登録されている。マシン制御部303は、起伏情報を、データベース305から読み出す。マシン制御部303は、起伏情報に基づいて、トレーニングマシン301に設けられ、利用者が搭乗するベルトの起伏を調整する。また、マシン制御部303は、最新のスピード情報に基づいて、ベルトの移動速度を調整する。なお、競走のアプリケーションが開始された後、利用者は、随時、操作部308を操作することによりスピード情報を変更することができる。スピード情報が変更される都度、マシン制御部303は、変更後のスピード情報に基づいて、ベルトの移動速度を調整する。
【0041】
マシン制御部303は、所定の周期で、スピード情報と、競走のアプリケーションが開始されてからの経過時間とに基づいて、競走のアプリケーションが開始されてからの端末装置300の利用者の擬似的な走行距離(到達距離)を算出する。ここで、所定の周期とは、送信間隔Tdよりも短い周期であることが好ましい。マシン制御部303は、到達距離情報をメモリ311に記憶し、更新させる。
【0042】
制御部310内のコンテンツ制御部304は、入力されたアプリケーション開始情報に基づいて、競走のアプリケーションが開始されたことを認識する。また、コンテンツ制御部304は、仮想空間上のジョギングコースに関する情報であるコース情報を、データベース305から読み出す。このとき、コンテンツ制御部304は、メモリ311から読み出したスピード情報に応じて、データベース305からのコース情報の読み出し周期を判別する。具体的には、コンテンツ制御部304は、スピード情報によって示されるスピードが速いほど、読み出し周期を短くする。コンテンツ制御部304は、コース情報に基づく地図画像を表示装置302に表示させる。また、コンテンツ制御部304は、メモリ311から読み出した到達距離情報に基づいて、仮想空間上のコースにおける端末装置300の位置を判別する。コンテンツ制御部304は、判別した位置を示す画像を、地図画像に重ねて表示装置302に表示させる。
【0043】
制御部310内の情報管理部306は、その後、図9に示す動作に移行し、送信間隔Tdの値以下の乱数時間を発生させる。ここでは、乱数時間に基づく送信タイミングが、端末装置300−2、端末装置300−3、端末装置300−1の順であるものとする。情報管理部306は、アプリケーションの開始からの経過時間が乱数時間に達した時に、メモリ311に記憶された最新のスピード情報及び最新の到達距離情報と、アプリケーションの開始から現在までの経過時間を示す情報(時間情報)と、端末IDとからなる端末情報を生成する。更に、情報管理部306は、端末情報を通信制御部307へ出力する。通信制御部307は、端末情報を、通信ネットワーク200を介してサーバ100へ送信する。
【0044】
具体的には、時刻t5において、端末装置300−2は、端末情報を送信する。サーバ100は、端末情報を受信する(ステップS151)。乱数時間を用いることで、各端末装置300が端末情報を送信するタイミングをずらすことが可能となり、通信ネットワーク200のトラフィック量が平準化されるとともに、サーバ100の処理負荷が平準化される。
【0045】
その後、情報管理部306は、前回の端末情報の送信から送信間隔Tdが経過する毎に、端末情報を生成し、通信制御部307へ出力する。通信制御部307は、端末情報が入力される毎に、端末情報をサーバ100へ送信する。
【0046】
サーバ100内のトラフィック制御部103は、各端末装置300からの端末情報を受信し、情報管理部101へ出力する。情報管理部101は、各端末装置300からの端末情報を受信する毎に、端末装置300毎の最新の端末情報からなる、図5に例示する状態情報を生成する。更に、情報管理部101は、生成した状態情報を、トラフィック制御部103へ出力する。トラフィック制御部103は、状態情報を、通信ネットワーク200を介して、マルチキャスト通信により、競走の参加者が利用する全ての端末装置300−1、300−2、300−3へ送信する。
【0047】
端末装置300−1、300−2、300−3内の通信制御部307は、状態情報を受信し(ステップS152)、制御部310内の情報管理部306を介してコンテンツ制御部304へ出力する。コンテンツ制御部304は、状態情報内の到達距離情報に基づいて、仮想空間上のコースにおける他の端末装置300の利用者の位置を判別する。なお、コンテンツ制御部304は、後述する(式6)や(式7)を用いて、他の端末装置300の利用者の現在の予測到達距離を算出し、予測到達距離に基づいて、コース上の他の端末装置300の利用者の位置を判別してもよい。コンテンツ制御部304は、判別した他の端末装置300の利用者の位置を示す画像を、地図画像に重ねて表示装置302に表示させる。
【0048】
同様に、時刻t6において、端末装置300−3は、端末情報を送信する。サーバ100は、端末情報を受信する(ステップS153)。次に、サーバ100は、端末装置300−3からの端末情報の受信に対応して、状態情報を、マルチキャスト通信により送信する。端末装置300−1、300−2、300−3は、状態情報を受信する(ステップS154)。同様に、時刻t7において、端末装置300−1は、端末情報を送信する。サーバ100は、端末情報を受信する(ステップS155)。次に、サーバ100は、端末装置300−1からの端末情報の受信に対応して、状態情報を、マルチキャスト通信により送信する。端末装置300−1、300−2、300−3は、状態情報を受信する(ステップS156)。
【0049】
また、サーバ100内のトラフィック制御部103は、状態情報に基づいて、送信間隔Tdを更新する(ステップS157)。具体的には、トラフィック制御部103は、仮想空間上のコースにおける各端末装置300の利用者の現在の到達距離を予測する。図10は、ステップS157の詳細な動作を示すフローチャートである。アプリケーションが開始されてから現在までの経過時間がTSxであると仮定する。状態情報のうち、端末装置300−1に対応する端末情報内のスピード情報がS1、到達距離がD1、サーバ100へ前回通知した時間に関する時間情報がTS1であり、端末装置300−2に対応する端末情報内のスピード情報がS2、到達距離がD2、時間情報がTS2である場合、トラフィック制御部103は、端末装置300−1の現在の予測到達距離D11と、端末装置300−2の現在の予測到達距離D22とを、
(式6)D11=(TSx−TS1)×S1+D1
(式7)D22=(TSx−TS2)×S2+D2
により算出する。同様にして、トラフィック制御部103は、全ての端末装置300の利用者について、仮想空間上のコースにおける予測到達距離を算出する(ステップS251)。次に、トラフィック制御部103は、予測到達距離が予め定められたコースの距離以上である端末装置300の利用者を、ゴールしていると見なし(ステップS252でYES)、ゴールしていると見なされる利用者の端末装置300の数を取得する。トラフィック制御部103は、端末装置数nを、情報管理部101を介してカウント部102から取得する。トラフィック制御部103は、端末装置数nからゴールしていると見なされる利用者の端末装置数を減算し、端末装置数n1を得る(ステップS253)。
【0050】
トラフィック制御部103は、各端末装置300による情報の送信間隔に関する優先度としての仮想空間上のコースにおいてゴールしていない利用者間での競走における順位を判別する(ステップS254)。具体的には、トラフィック制御部103は、状態情報に含まれる端末情報のうち、対応する予測到達距離がコースの距離以上である端末情報を除外する。次に、トラフィック制御部103は、残った端末情報に対応する端末装置300について、対応する予測到達距離が長い順に、順位付けを行う。例えば、トラフィック制御部103は、残った端末情報内の端末IDを、対応する予測到達距離が長い順に配列して順位情報を生成する。なお、トラフィック制御部103は、順位情報に基づいて、前回の状態情報の送信時に判別した順位から変更があった端末装置300を特定し、端末装置300に対してのみ、ユニキャスト通信により状態情報を送信するようにしてもよい。
【0051】
次に、トラフィック制御部103は、端末装置数に応じた平均利用率ρを定める(ステップS255)。ここで、端末装置数とは、ステップS253の処理を経ている場合にはn1であり、ステップS253の処理を経ていない場合にはnである。具体的には、トラフィック制御部103は、メモリ104に記憶されている平均利用率テーブル112を読み出す。トラフィック制御部103は、平均利用率テーブル112を参照し、端末装置数n1に対応するサーバ100の平均利用率ρを判別する。
【0052】
次に、トラフィック制御部103は、メモリ104に記憶されている平均利用率補正値テーブル113を読み出す。図6に例示する平均利用率補正値テーブル113は、仮想空間上のコースにおいてゴールしていない利用者間での順位と、送信間隔Tdの算出に用いるサーバ100の平均利用率ρを補正する補正値(平均利用率補正値)との対応関係を示す。図6には、2種類の平均利用率補正値テーブルの例(A)、(B)を示す。平均利用率補正値テーブル(A)は、現状値に加減算する値であり、平均利用率補正値テーブル(B)は、現状値を固定値に置き換える補正値である。図6に示すように、仮想空間上のコースにおいてゴールしていない利用者間での順位と平均利用率補正値との関係は、順位が高いほど、補正後の平均利用率ρが大きくなるように設定されている。図6(A)の例では、補正後の平均利用率ρは、順位が100位以上である利用者の端末装置300については補正前より大きな値となり、順位が101位以下である利用者の端末装置300については補正前より小さな値となる。
【0053】
トラフィック制御部103は、順位付けされた利用者の端末装置300毎に、平均利用率補正値テーブル113に基づいて、順位に対応する平均利用率補正値を取得する。トラフィック制御部103は、順位付けされた利用者の端末装置300毎に、判別した平均利用率ρに平均利用率補正値テーブル(A)に示す補正値を加算し、平均利用率ρを補正する(ステップS256)。但し、補正後の平均利用率の合計が、平均利用率ρの最大値(図3の例では0.8)を超える場合には、トラフィック制御部103は、補正後の平均利用率の合計が平均利用率ρの最大値を超えないような補正に切り替える。例えば、トラフィック制御部103は、平均利用率補正値テーブル(A)の使用を止め、平均利用率補正値テーブル(B)を使用する。
【0054】
トラフィック制御部103は、順位付けされた利用者の端末装置300毎に、補正後の平均利用率に応じて、送信間隔Tdを更新する(ステップS257)。具体的には、上述した送信間隔Tdの判別のアルゴリズムと同様である。すなわち、(式5)に基づいて、送信間隔Tdが算出される。なお、ゴール済みの利用者の端末装置300は、端末情報を頻繁にサーバ100へ送信する必要はない。このため、トラフィック制御部103は、ゴール済みの利用者の端末装置300については、平均利用率ρを低い値(例えば0.1)に補正し、(式5)に基づいて、送信間隔Tdを算出する。
【0055】
このようにして送信間隔Tdが判別されることにより、順位が1乃至100位の利用者の端末装置300の送信間隔は、補正前の平均利用率ρに基づいて算出される送信間隔(基準となる送信間隔)よりも短くなる。一方、順位が101位以下又はゴール済みの利用者の端末装置300の送信間隔は、基準となる送信間隔よりも長くなる。
【0056】
送信間隔Tdを更新した後、トラフィック制御部103は、更新後の送信間隔Tdを示す情報(送信間隔情報)を保持するとともに、通信ネットワーク200を介して、端末装置300−1、300−2、300−3に対して、ユニキャストもしくはマルチキャスト通信により、送信間隔情報を送信する。
【0057】
端末装置300内の通信制御部307は、更新後の送信間隔情報を受信し(ステップS158)、情報管理部306へ出力する。情報管理部306は、更新後の送信間隔情報を保持する。その後、情報管理部306は、前回の端末情報の送信から更新後の送信間隔Tdが経過する毎に、端末情報を生成し、通信制御部307へ出力する。通信制御部307は、端末情報が入力される毎に、端末情報をサーバ100へ送信する。
【0058】
また、エントリ情報の受付期間が終了し、アプリケーションの開始後に、新たな端末装置300の利用者が競走への参加を希望することにより、新たな端末装置300−4がサーバ100へエントリ情報を送信する場合もある。この場合、新たな端末装置300−4は、エントリ情報を送信する。サーバ100は、エントリ情報を受信する(ステップS161)。
【0059】
すなわち、サーバ100内の情報管理部101は、トラフィック制御部103を介して、新たな端末装置300−4からのエントリ情報を受信する。情報管理部101は、受信したエントリ情報内の端末IDを解析する。この場合には、解析の結果、受信された端末IDが、予め定められたエントリ情報の受付期間内において、既に受信済みである端末IDと異なる。このため、情報管理部101は、受信したエントリ情報内の端末IDをメモリ104に記憶させるとともに、カウント部102に対して、カウント値を1増加するように指示する。カウント部102は、情報管理部101の指示に応じて、カウント値を増加させる。
【0060】
更に、情報管理部101は、競走の参加を受け付けた旨の応答情報(ACK)を、トラフィック制御部103及び通信ネットワーク200を介して、エントリ情報の送信元の新たな端末装置300−4へ送信する。新たな端末装置300−4内の通信制御部307は、応答情報を受信して(ステップS162)、情報管理部306へ出力する。以上の処理によって、競走に対する新たな端末装置300の利用者の参加受け付けが完了する。なお、その後は、競走において新たな端末装置300の利用者も含めた順位の判別が行われる。
【0061】
その後、サーバ100内の情報管理部101は、メモリ104に記憶された端末IDをトラフィック制御部103へ出力する。情報管理部101は、カウント部102のカウント値である端末装置数nを取得し、トラフィック制御部103へ出力する。
【0062】
端末装置300の識別情報と、端末装置数nとが入力されると、トラフィック制御部103は、送信間隔Tdを算出する処理を行う(ステップS163)。具体的には、トラフィック制御部103は、メモリ104に記憶されている平均利用率テーブル112を読み出す。トラフィック制御部103は、平均利用率テーブル112を参照し、端末装置数nに対応するサーバ100の平均利用率ρを定める。トラフィック制御部103は、(式5)に基づいて、送信間隔Tdを更新する。トラフィック制御部103は、更新後の送信間隔情報を保持するとともに、通信ネットワーク200を介して、対応する端末装置300へ送信する。
【0063】
端末装置300内の通信制御部307は、更新後の送信間隔情報を受信し、情報管理部306へ出力する。情報管理部306は、更新後の送信間隔情報を保持する。その後、情報管理部306は、前回の端末情報の送信から更新後の送信間隔Tdが経過する毎に、端末情報を生成し、通信制御部307へ出力する。通信制御部307は、端末情報が入力される毎に、端末情報をサーバ100へ送信する。
【0064】
上述したように、本実施形態のネットワークシステム1において、サーバ100は、競走の参加者が利用する端末装置300の数を取得し、端末装置300の数に基づいて、サーバ100の利用率を判別する。更に、サーバ100は、判別したサーバ100の利用率と、仮想空間上のコースにおいてゴールしていない利用者間での順位に応じて、端末装置300による情報の送信間隔を判別する。
【0065】
従って、各端末装置による情報の送信間隔は、送信に関する優先度が考慮された値となり、他の端末装置との関係において、端末装置における通信遅延を適切に制御することが可能となる。具体的には、各端末装置300による情報の送信間隔は、ゴールしていない利用者間での順位が考慮された間隔となり、利用者の順位が高いほど、換言すれば、ゴールに近く、利用者が順位を把握したいと考える可能性が高くなるほど、その利用者の端末装置300による情報の送信間隔は短くなり、より正確に順位を把握できるようになる。このため、端末装置300における通信遅延を適切に制御することが可能となる。
【0066】
上述した実施形態では、サーバ100は、端末装置300の送信間隔を直接的に判別した。しかし、サーバ100は、端末装置300の通信方式を判別することにより、間接的に端末装置300の送信間隔を判別してもよい。
【0067】
この場合、サーバ100内のトラフィック制御部103は、利用者の順位に基づいて、複数の端末装置300のグループ化を行う。具体的には、トラフィック制御部103は、各端末装置300の利用者について算出した予測到達距離に基づいて、ゴールしていない利用者のうち、予測到達距離が長い、換言すれば、ゴールに近い所定数(例えば4つ)の利用者を選択する。トラフィック制御部103は、選択した所定数の利用者の端末装置300のIPアドレス及びMACアドレスの組合せからなるグルーピング情報を生成する。図11は、グルーピング情報の一例を示す図である。更に、トラフィック制御部103は、選択した所定数の利用者の端末装置300に対して、通信ネットワーク200を介してグルーピング情報を送信する。
【0068】
端末装置300内の通信制御部307は、グルーピング情報に基づいて、ピアツーピア通信の相手となる他の端末装置300のIPアドレス及びMACアドレスを認識することができる。そして、通信制御部307は、ピアツーピア通信により、他の端末装置300との間で端末情報を交換する。ピアツーピア通信により、より短い送信間隔で端末情報のやりとりが可能となる。
【0069】
また、端末装置300内の情報管理部306は、端末装置300の端末情報内の到達距離情報に基づいて、端末装置300の利用者がゴールしたか否かを判定する。端末装置300の利用者がゴールした場合、情報管理部306は、通信制御部307及び通信ネットワーク200を介して、サーバ100へアプリケーションの開始時からゴールに到達するまでの経過時間の情報(到達時間情報)を送信する。
【0070】
サーバ100内のトラフィック制御部103は、到達時間情報の送信元の端末装置300の利用者を順位判別の対象から除外し、残りのゴールしていない端末装置300の利用者間で順位を判別する。
【0071】
なお、端末装置300内のトラフィック制御部103は、ゴールに近い所定数の利用者の端末装置300をグループ化するのみならず、様々な手法で端末装置300のグループ化を行うことができる。例えば、トラフィック制御部103は、コース上に設定されたチェックポイントを未通過であって、且つ、チェックポイントに近い所定数の利用者の端末装置300をグループ化してもよい。また、グループ化した端末装置300に対して、ピアツーピア通信を行わせるのではなく、図6とは異なる平均利用率補正値を適用し、平均利用率を高くすることも好適である。これにより、例えば、順位は低くてもチェックポイントに近い端末装置300をグループ化して送信間隔を短くすることができる。
【0072】
上述した実施形態では、端末装置300内の情報管理部306は、前回の端末情報の送信から送信間隔Tdが経過する毎に、端末情報を生成して通信制御部307へ出力し、通信制御部307は、端末情報が入力される毎に、端末情報をサーバ100へ送信した。しかしながら、図2に示すトレーニングマシン301では、一度設定されたスピード情報は、変更されないことが多い。スピード情報が変更されなければ、サーバ100は、端末装置300から送信間隔Tdで端末情報が送信されなくても、それまでに受信した端末情報に基づいて端末装置300の予測到達距離を精度良く算出でき、更には、端末装置300の順位を判別することができる。従って、端末装置300内の情報管理部306は、前回の端末情報の送信から送信間隔Tdが経過し、且つ、スピード情報が変更された場合のみ、端末情報を生成して通信制御部307へ出力し、通信制御部307は、端末情報が入力される毎に、端末情報をサーバ100へ送信するようにしてもよい。
【0073】
上述した実施形態では、サーバ100内のトラフィック制御部103は、端末装置300の利用者の順位に応じて端末装置300の送信間隔Tdを変更するようにしたが、順位に加え、他の条件に応じて、送信間隔Tdを変更するようにしてもよい。例えば、トラフィック制御部103は、順位が高く、且つ、予測到達距離が長いほど、送信間隔Tdを短くすることができる。
【0074】
上述した実施形態では、サーバ100の利用率は、競走のアプリケーションの実行に伴う負荷のみを反映するものとして説明したが、サーバ100が、他の処理を行っている場合には、その処理の負荷を反映した利用率としてもよい。上述した実施形態では、各端末装置300による情報の送信間隔に関する優先度として、仮想空間上のコースにおいてゴールしていない利用者間での競走における順位が用いられたが、各端末装置300による情報の送信間隔に関する他の優先度が用いられる場合にも、同様に本発明を適用することができる。上述した実施形態では、端末装置300内のトレーニングマシン301を用いて競走を行う場合について説明したが、端末装置300による情報の送信間隔を変更する必要のあるシステムであれば、同様に本発明を適用することができる。
【0075】
また、本発明に係るプログラムは、競走のアプリケーションを実行する専用機にインストールされるものに限らず、情報を収集して送信するコンピュータにインストールして実行されるものであればよい。
【0076】
その他、本発明は、上記実施形態の説明及び図面によって限定されるものではなく、上記実施形態及び図面に適宜変更等を加えることは可能である。
【符号の説明】
【0077】
100 サーバ
101 情報管理部
102 カウント部
103 トラフィック制御部
104 メモリ
110 制御部
112 平均利用率テーブル
113 平均利用率補正値テーブル
200 通信ネットワーク
300−1乃至300−n 端末装置
301 トレーニングマシン
302 表示装置
303 マシン制御部
304 コンテンツ制御部
305 データベース
306 情報管理部
307 通信制御部
308 操作部
310 制御部
311 メモリ

【特許請求の範囲】
【請求項1】
複数の端末装置と、前記複数の端末装置からの情報を受信するサーバとを有するネットワークシステムであって、
前記サーバは、
前記複数の端末装置の数を取得する端末装置数取得部と、
前記端末装置数取得部により取得された前記複数の端末装置の数に基づいて、前記サーバの利用率を判別する利用率判別部と、
前記利用率判別部により判別された前記サーバの利用率と各端末装置の送信間隔に関する優先度とに基づいて、各端末装置による情報の送信間隔を判別する送信間隔判別部と、
を備えることを特徴とするネットワークシステム。
【請求項2】
前記サーバは、仮想空間上で各端末装置の利用者によって行われる競走の順位を判別する順位判別部を備え、
前記送信間隔判別部は、前記順位判別部により判別された順位を前記優先度として用いることを特徴とする請求項1に記載のネットワークシステム。
【請求項3】
前記送信間隔判別部は、各端末装置のうち所定の端末装置の通信方式を選択するとともに、この選択した通信方式に基づいて、前記所定の端末装置による情報の送信間隔を判別することを特徴とする請求項1又は2に記載のネットワークシステム。
【請求項4】
前記送信間隔判別部は、ピアツーピアによる通信方式を選択することを特徴とする請求項3に記載のネットワークシステム。
【請求項5】
前記送信間隔判別部は、各端末装置の送信間隔に関する優先度の変化に応じて、各端末装置による送信間隔を更新することを特徴とする請求項1乃至4の何れかに記載のネットワークシステム。
【請求項6】
前記複数の端末装置は、
前記サーバに対して、接続要求を送信する要求送信部を備え、
前記端末装置数取得部は、前記複数の端末装置からの接続要求に基づいて、前記複数の端末装置の数を取得することを特徴とする請求項1乃至5の何れかに記載のネットワークシステム。
【請求項7】
複数の端末装置からの情報を受信するサーバであって、
前記複数の端末装置の数を取得する端末装置数取得部と、
前記端末装置数取得部により取得された前記複数の端末装置の数に基づいて、前記サーバの利用率を判別する利用率判別部と、
前記利用率判別部により判別された前記サーバの利用率と各端末装置の送信間隔に関する優先度とに基づいて、各端末装置による情報の送信間隔を判別する送信間隔判別部と、
を備えることを特徴とするサーバ。
【請求項8】
複数の端末装置からの情報を受信するサーバにおける通信制御方法であって、
前記複数の端末装置の数を取得する手順と、
取得された前記複数の端末装置の数に基づいて、前記サーバの利用率を判別する手順と、
判別された前記サーバの利用率と各端末装置の送信間隔に関する優先度とに基づいて、各端末装置による情報の送信間隔を判別する手順と、
を備えることを特徴とする通信制御方法。
【請求項9】
複数の端末装置からの情報を受信するコンピュータに、
前記複数の端末装置の数を取得する手順と、
取得された前記複数の端末装置の数に基づいて、前記コンピュータの利用率を判別する手順と、
判別された前記コンピュータの利用率と各端末装置の送信間隔に関する優先度とに基づいて、各端末装置による情報の送信間隔を判別する手順と、
を実行させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2013−51521(P2013−51521A)
【公開日】平成25年3月14日(2013.3.14)
【国際特許分類】
【出願番号】特願2011−187759(P2011−187759)
【出願日】平成23年8月30日(2011.8.30)
【出願人】(308036402)株式会社JVCケンウッド (1,152)
【Fターム(参考)】