(57)【要約】【課題】通信遅延を適切に制御することが可能なネットワークシステム、サーバ、通信制御方法及びプログラムを提供する。【解決手段】サーバ１００は、複数の端末装置３００の数を取得する。次に、サーバ１００は、取得した複数の端末装置の数に基づいて、サーバ１００の利用率を判別する。更に、サーバ１００は、判別したサーバ１００の利用率と、競走におけるゴールしていない利用者間での順位に応じて、端末装置３００による情報の送信間隔を判別する。【選択図】図２
2013051521.tif 000002
【特許請求の範囲】
【請求項１】
複数の端末装置と、前記複数の端末装置からの情報を受信するサーバとを有するネットワークシステムであって、
前記サーバは、
前記複数の端末装置の数を取得する端末装置数取得部と、
前記端末装置数取得部により取得された前記複数の端末装置の数に基づいて、前記サーバの利用率を判別する利用率判別部と、
前記利用率判別部により判別された前記サーバの利用率と各端末装置の送信間隔に関する優先度とに基づいて、各端末装置による情報の送信間隔を判別する送信間隔判別部と、
を備えることを特徴とするネットワークシステム。
【請求項２】
前記サーバは、仮想空間上で各端末装置の利用者によって行われる競走の順位を判別する順位判別部を備え、
前記送信間隔判別部は、前記順位判別部により判別された順位を前記優先度として用いることを特徴とする請求項１に記載のネットワークシステム。
【請求項３】
前記送信間隔判別部は、各端末装置のうち所定の端末装置の通信方式を選択するとともに、この選択した通信方式に基づいて、前記所定の端末装置による情報の送信間隔を判別することを特徴とする請求項１又は２に記載のネットワークシステム。
【請求項４】
前記送信間隔判別部は、ピアツーピアによる通信方式を選択することを特徴とする請求項３に記載のネットワークシステム。
【請求項５】
前記送信間隔判別部は、各端末装置の送信間隔に関する優先度の変化に応じて、各端末装置による送信間隔を更新することを特徴とする請求項１乃至４の何れかに記載のネットワークシステム。
【請求項６】
前記複数の端末装置は、
前記サーバに対して、接続要求を送信する要求送信部を備え、
前記端末装置数取得部は、前記複数の端末装置からの接続要求に基づいて、前記複数の端末装置の数を取得することを特徴とする請求項１乃至５の何れかに記載のネットワークシステム。
【請求項７】
複数の端末装置からの情報を受信するサーバであって、
前記複数の端末装置の数を取得する端末装置数取得部と、
前記端末装置数取得部により取得された前記複数の端末装置の数に基づいて、前記サーバの利用率を判別する利用率判別部と、
前記利用率判別部により判別された前記サーバの利用率と各端末装置の送信間隔に関する優先度とに基づいて、各端末装置による情報の送信間隔を判別する送信間隔判別部と、
を備えることを特徴とするサーバ。
【請求項８】
複数の端末装置からの情報を受信するサーバにおける通信制御方法であって、
前記複数の端末装置の数を取得する手順と、
取得された前記複数の端末装置の数に基づいて、前記サーバの利用率を判別する手順と、
判別された前記サーバの利用率と各端末装置の送信間隔に関する優先度とに基づいて、各端末装置による情報の送信間隔を判別する手順と、
を備えることを特徴とする通信制御方法。
【請求項９】
複数の端末装置からの情報を受信するコンピュータに、
前記複数の端末装置の数を取得する手順と、
取得された前記複数の端末装置の数に基づいて、前記コンピュータの利用率を判別する手順と、
判別された前記コンピュータの利用率と各端末装置の送信間隔に関する優先度とに基づいて、各端末装置による情報の送信間隔を判別する手順と、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークシステム、サーバ、通信制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年、複数の端末装置がネットワークを介して情報を共有することにより、仮想空間を実現するアプリケーションを実行するシステムがある。仮想空間を実現するアプリケーションは、例えば、ネットワークを介する対戦型ゲームや、健康維持を目的としてジョギング等の競走の順位を競うトレーニングシステム等が挙げられる。これらのアプリケーションは、遠隔地に存在する複数の利用者が利用する端末装置間で、各種情報等を相互に交換することにより、仮想空間上で各ユーザが移動したり、移動量に応じてユーザの表示が更新される。
【０００３】
上述したシステムは、ネットワークを利用するため、ネットワーク上のトラフィック量等により通信遅延が生じ、通信遅延がアプリケーションに悪影響を与える場合がある。すなわち、通信相手となる端末装置からの応答が遅延し、仮想空間上における通信相手となる端末装置の位置と、現時点の位置とが異なることが生じる。特許文献１には、このような通信遅延を考慮したシステムが開示されている。特許文献１に記載のシステムは、端末装置間の通信にピアツーピア通信を採用し、通信遅延を考慮して、仮想空間上における通信相手の端末装置の位置を予測する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３２０５０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載のシステムは、ピアツーピア通信を採用するため、端末装置の数が増加した場合に、トラフィック量が飛躍的に増加し、結果的に通信遅延が増大してしまうという問題がある。一方、ピアツーピア通信を採用せずに、いわゆるクライアントサーバシステムを採用した場合にも、同様に、端末装置の数が増加すると、サーバの処理能力によっては通信遅延が増大してしまうという問題がある。このため、通信遅延を適切に制御することが要求されている。
【０００６】
本発明は、上記課題を解決するために鑑みてなされたものであり、通信遅延を適切に制御することが可能なネットワークシステム、サーバ、通信制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の第１の観点に係るネットワークシステムは、複数の端末装置（３００−１〜３００−ｎ）と、前記複数の端末装置からの情報を受信するサーバ（１００）とを有するネットワークシステム（１）であって、前記サーバは、前記複数の端末装置の数を取得する端末装置数取得部（１０１）と、前記端末装置数取得部により取得された前記複数の端末装置の数に基づいて、前記サーバの利用率を判別する利用率判別部（１０３）と、前記利用率判別部により判別された前記サーバの利用率と各端末装置の送信間隔に関する優先度とに基づいて、各端末装置による情報の送信間隔を判別する送信間隔判別部（１０３）と、を備えることを特徴とする。
【０００８】
例えば、前記サーバは、仮想空間上で各端末装置の利用者によって行われる競走の順位を判別する順位判別部（１０３）を備え、前記送信間隔判別部は、前記順位判別部により判別された順位を前記優先度として用いるようにしてもよい。
【０００９】
例えば、前記送信間隔判別部は、各端末装置のうち所定の端末装置の通信方式を選択するとともに、この選択した通信方式に基づいて、前記所定の端末装置による情報の送信間隔を判別するようにしてもよい。
【００１０】
例えば、前記送信間隔判別部は、ピアツーピアによる通信方式を選択してもよい。
【００１１】
例えば、前記送信間隔判別部は、各端末装置の送信間隔に関する優先度の変化に応じて、各端末装置による送信間隔を更新してもよい。
【００１２】
例えば、前記複数の端末装置は、前記サーバに対して、接続要求を送信する要求送信部（３０７）を備え、前記端末装置数取得部は、前記複数の端末装置からの接続要求に基づいて、前記複数の端末装置の数を取得してもよい。
【００１３】
上記目的を達成するために、本発明の第２の観点に係るサーバは、複数の端末装置からの情報を受信するサーバであって、前記複数の端末装置の数を取得する端末装置数取得部と、前記端末装置数取得部により取得された前記複数の端末装置の数に基づいて、前記サーバの利用率を判別する利用率判別部と、前記利用率判別部により判別された前記サーバの利用率と各端末装置の送信間隔に関する優先度とに基づいて、各端末装置による情報の送信間隔を判別する送信間隔判別部と、を備えることを特徴とする。
【００１４】
上記目的を達成するために、本発明の第３の観点に係る通信制御方法は、複数の端末装置からの情報を受信するサーバにおける通信制御方法であって、前記複数の端末装置の数を取得する手順（ステップＳ２０１）と、取得された前記複数の端末装置の数に基づいて、前記サーバの利用率を判別する手順（ステップＳ２０２）と、判別された前記サーバの利用率と各端末装置の送信間隔に関する優先度とに基づいて、各端末装置による情報の送信間隔を判別する手順（ステップＳ２０３）と、を備えることを特徴とする。
【００１５】
上記目的を達成するために、本発明の第４の観点に係るプログラムは、複数の端末装置からの情報を受信するコンピュータに、前記複数の端末装置の数を取得する手順と、取得された前記複数の端末装置の数に基づいて、前記コンピュータの利用率を判別する手順と、判別された前記コンピュータの利用率と各端末装置の送信間隔に関する優先度とに基づいて、各端末装置による情報の送信間隔を判別する手順と、を実行させることを特徴とするプログラムである。
【発明の効果】
【００１６】
本発明によれば、通信遅延を適切に制御することが可能となる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態に係るネットワークシステムの構成の一例を示す図である。
【図２】本発明の実施形態に係るサーバ及び端末装置の詳細な構成の一例を示す図である。
【図３】本発明の実施形態に係る平均利用率テーブルの一例を示す図である。
【図４】本発明の実施形態に係る端末装置数と送信間隔との対応関係の一例を示す図である。
【図５】本発明の実施形態に係る状態情報の一例を示す図である。
【図６】本発明の実施形態に係る平均利用率補正値テーブルの一例を示す図である。
【図７】本発明の実施形態に係る通信シーケンスの一例を示す図である。
【図８】本発明の実施形態に係る送信間隔判別処理の一例を示すフローチャートである。
【図９】本発明の実施形態に係る通信シーケンスの一例を示す図である。
【図１０】本発明の実施形態に係る送信間隔更新処理の一例を示すフローチャートである。
【図１１】本発明の実施形態に係るグルーピング情報の一例を示す図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照して、本発明の実施形態に係るネットワークシステム、サーバ、通信制御方法及びプログラムを説明する。
【００１９】
ネットワークシステム１は、サーバ１００と、複数の端末装置３００−１乃至３００−ｎ（以下、これら端末装置３００−１乃至３００−ｎのそれぞれを、適宜「端末装置３００」と称する）と、サーバ１００と端末装置３００−１乃至３００−ｎとを接続する通信ネットワーク２００とにより構成される。
【００２０】
端末装置３００−１乃至３００−ｎは、単一又は複数の施設内に設置されている。端末装置３００−１乃至３００−ｎは、利用者が移動せずにジョギングを行うことを可能とするジョギングマシン等のトレーニングマシンを内蔵する。サーバ１００は、仮想空間上でのジョギング等の競走（以下、「競走」と称する）のアプリケーションを実行し、端末装置３００−１乃至３００−ｎの利用者の擬似的な走行距離に基づいて、各利用者の順位付けを行う。
【００２１】
サーバ１００は、図２に示すように、制御部１１０、トラフィック制御部１０３、メモリ１０４を備える。制御部１１０は、例えばＣＰＵ（Central Processing Unit）により構成される。制御部１１０は、メモリ１０４に記憶されたプログラムを読み出して実行し、メモリ１０４に記憶された各種データを処理することなどにより、サーバ１００の全体を制御する。制御部１１０は、情報管理部１０１及びカウント部１０２の機能を実現する。
【００２２】
トラフィック制御部１０３は、例えばＤＳＰ（Digital Signal Processor）により構成される。トラフィック制御部１０３は、端末装置３００との通信を制御する。トラフィック制御部１０３は、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）によるパケット通信や、ＵＤＰ（User Datagram Protocol）によるマルチキャスト通信を管理し、ＩＥＥＥ８０２．３において規定されたインターフェースを採用する。メモリ１０４は、サーバ１００の動作に必要なプログラムや各種データを記憶する。メモリ１０４には、後述する平均利用率テーブル１１２及び平均利用率補正値テーブル１１３が記憶されている。
【００２３】
端末装置３００は、図２に示すように、制御部３１０、トレーニングマシン３０１、表示装置３０２、通信制御部３０７、操作部３０８、メモリ３１１を備える。制御部３１０は、例えばＣＰＵにより構成される。制御部３１０は、メモリ３１１に記憶されたプログラムを読み出して実行し、メモリ３１１に記憶された各種データを処理することなどにより、端末装置３００の全体を制御する。制御部３１０は、マシン制御部３０３、コンテンツ制御部３０４及び情報管理部３０６の各種機能を実現する。トレーニングマシン３０１は、利用者が搭乗する図示しないベルト等を備えている。トレーニングマシン３０１は、ベルトを移動させることで、利用者にジョギングを行わせる。表示装置３０２は、例えば液晶ディスプレイである。表示装置３０２は、各種の文字や映像を表示する。通信制御部３０７は、例えばＤＳＰにより構成される。通信制御部３０７は、サーバ１００との通信を制御する。ＴＣＰ／ＩＰによるパケット通信を管理し、ＩＥＥＥ８０２．３において規定されたインターフェースを採用する。メモリ３１１は、端末装置３００の動作に必要なプログラムや各種データを記憶する。メモリ３１１には、後述するデータベース３０５が構成されている。
【００２４】
次に、図７から図１０に示す通信シーケンス及びフローチャートを参照しつつ、各端末装置３００の利用者の間で競走が行われる場合のネットワークシステム１の動作を説明する。
【００２５】
予め定められたエントリ情報の受付期間内において、端末装置３００の利用者は、各端末装置３００の利用者の間で行われる競走の参加を希望する場合、操作部３０８を操作する。制御部３１０内の情報管理部３０６は、操作に応じて、接続要求としてのエントリ情報を生成し、通信制御部３０７へ出力する。通信制御部３０７は、入力されたエントリ情報を、通信ネットワーク２００を介してサーバ１００へ送信する。
【００２６】
具体的には、図７に示す時刻ｔ１において、端末装置３００−１は、エントリ情報を送信する。エントリ情報は、端末装置３００の識別情報である端末ＩＤ、ＩＰアドレス、ＭＡＣアドレス等を含む。以下においては、端末装置３００の識別情報は、端末ＩＤとする。
【００２７】
サーバ１００の制御部１１０内の情報管理部１０１は、トラフィック制御部１０３を介して、エントリ情報を受信する（ステップＳ１０１）。情報管理部１０１は、受信したエントリ情報内の端末ＩＤを解析する。解析の結果、受信された端末ＩＤが、エントリ情報の受付期間内において、既に受信済みである端末ＩＤと異なる場合、情報管理部１０１は、受信したエントリ情報内の端末ＩＤをメモリ１０４に記憶させる。更に、情報管理部１０１は、カウント部１０２に対して、カウント値を１増加するように指示する。カウント部１０２は、情報管理部１０１の指示に応じて、カウント値を増加させる。カウント値は、競走に参加する利用者が利用する端末装置３００の数（端末装置数ｎ）を示す。
【００２８】
更に、情報管理部１０１は、競走の参加を受け付けた旨の応答情報（ＡＣＫ）を、トラフィック制御部１０３及び通信ネットワーク２００を介して、エントリ情報の送信元の端末装置３００−１へ送信する。端末装置３００−１内の通信制御部３０７は、応答情報を受信して、制御部３１０内の情報管理部３０６へ出力する（ステップＳ１０２）。以上の処理によって、端末装置３００−１の利用者の競走の参加受け付けが完了する。
【００２９】
同様に、時刻ｔ２において、端末装置３００−２は、エントリ情報を送信する。サーバ１００は、エントリ情報を受信する（ステップＳ１０３）。サーバ１００は、エントリ情報に対する応答情報を送信する。端末装置３００−２は、応答情報を受信する（ステップＳ１０４）。同様に、時刻ｔ３において、端末装置３００−３は、エントリ情報を送信する。サーバ１００は、エントリ情報を受信する（ステップＳ１０５）。サーバ１００は、エントリ情報に対する応答情報を送信する。端末装置３００−３は、応答情報を受信する（ステップＳ１０６）。
【００３０】
その後、予め定められたエントリ情報の受付期間が終了すると、時刻ｔ４において、サーバ１００の制御部１１０内の情報管理部１０１は、メモリ１０４からプログラムを読み出して実行することにより、競走のアプリケーションを開始する（ステップＳ１０７）。更に、情報管理部１０１は、メモリ１０４に記憶されている端末ＩＤをトラフィック制御部１０３へ出力する。情報管理部１０１は、カウント部１０２のカウント値である端末装置数ｎを取得し、トラフィック制御部１０３へ出力する。
【００３１】
端末ＩＤと端末装置数ｎとが入力されると、トラフィック制御部１０３は、各端末装置３００がサーバ１００に対して、アプリケーションの実行に際して必要となる情報を送信する間隔（以下、「送信間隔」と称する）Ｔｄを判別する処理を行う（ステップＳ１０８）。
【００３２】
具体的には、図８に示すように、サーバ１００内のトラフィック制御部１０３は、端末装置数ｎを取得する（ステップＳ２０１）。次に、トラフィック制御部１０３は、メモリ１０４に記憶されている、図３に例示する平均利用率テーブル１１２を読み出す。平均利用率テーブル１１２は、端末装置数ｎと、サーバ１００の平均利用率ρとの対応関係を示す。平均利用率ρは、制御部１１０を構成するＣＰＵ、メモリ１０４等、サーバ１００のリソースについての所定期間内の利用率の平均値である。従って、平均利用率ρは、端末装置数ｎに比例し、送信間隔Ｔｄに反比例する関係にある。本実施形態では、図３の平均利用率テーブル１１２を用いて、端末装置数ｎに応じて平均利用率ρを定める。
【００３３】
トラフィック制御部１０３は、平均利用率テーブル１１２を参照し、端末装置数ｎに対応するサーバ１００の平均利用率ρを定める（ステップＳ２０２）。例えば、図３の平均利用率テーブル１１２が用いられる場合、端末装置数ｎが３５０のとき、サーバ１００の平均利用率ρを０．４とする。
【００３４】
トラフィック制御部１０３は、決定した平均利用率ρから、各端末装置３００毎に送信間隔Ｔｄを算出する（ステップＳ２０３）。以下、送信間隔Ｔｄの算出のアルゴリズムについて説明する。
【００３５】
ネットワークシステム１の構成の条件として、ｎ台の端末装置３００は、任意の送信間隔Ｔｄ（ｓｅｃ）で、サーバ１００へ情報を送信する。一方、サーバ１００は、各端末装置３００からの情報を加工して、各端末装置３００へ送信する。端末装置３００が情報を送信してからサーバ１００からの情報を受信するまでの平均時間を、平均処理時間Ｔｓｅｒｖ（ｓｅｃ）とする。平均処理時間Ｔｓｅｒｖは、通信ネットワーク２００上のルーティング等の遅延時間を含んだ１回のトランザクション時間であり、既知の値とする。
【００３６】
このような条件下では、待ち行列の算出にＭ／Ｍ／１モデルを適用することができる。Ｍ／Ｍ／１モデルでは、平均待ち時間をＴｗ、平均サービス時間をＴｓとすると、以下の（式１）が成り立つ。
（式１）  Ｔｗ＝ρ／（１−ρ）×Ｔｓ
また、単位時間当たりの到着数を平均到着率λ、単位時間に処理できる数を平均サービス率μとすると、平均到着率λ、平均サービス率μ、平均利用率ρは、
（式２）  λ＝ｎ／Ｔｄ
（式３）  μ＝１／Ｔｓｅｒｖ
（式４）  ρ＝λ／μ
で表される。本実施形態では、Ｔｓは、上述のＴｓｅｒｖである。（式２）、（式３）、（式４）から
ρ＝ｎ×Ｔｓｅｒｖ／Ｔｄ
となる。これを変形して、送信間隔Ｔｄは
（式５）  Ｔｄ＝ｎ×Ｔｓｅｒｖ／ρ
となる。
また、図３に示すように、平均利用率ρは、端末装置数ｎにより定まり、端末装置数ｎが多いほど、大きくなるように設定されている。更に、平均処理時間Ｔｓｅｒｖは、サーバ１００に固有の値である。従って、端末装置数ｎが定まれば、トラフィック制御部１０３は、図３から求めたρと、（式５）とに基づいて、送信間隔Ｔｄを算出することができる。その結果、端末装置数ｎと送信間隔Ｔｄとは、図４に示す対応関係となる。図４によれば、端末装置数ｎが３５０を含む２００〜８００のときには、送信間隔Ｔｄは６〜１０（ｓｅｃ）の範囲の値となる。
【００３７】
再び、図７に戻って説明する。送信間隔Ｔｄを判別した後、トラフィック制御部１０３は、競走のアプリケーションが開始された旨を示すアプリケーション開始情報を、通信ネットワーク２００を介して競走の参加者（利用者）が利用する端末装置３００へ送信する。トラフィック制御部１０３は、各端末装置３００毎に判別した送信間隔Ｔｄを示す情報（送信間隔情報）を、端末ＩＤに対応づけてメモリ１１４に記憶させる。また、トラフィック制御部１０３は、送信間隔情報を、通信ネットワーク２００を介して競走の参加者が利用する端末装置３００へ送信する。このとき、トラフィック制御部１０３は、マルチキャスト通信、又は、競走の参加者が利用する端末装置３００に対応するＩＰアドレス毎のユニキャスト通信を行う。
【００３８】
端末装置３００内の通信制御部３０７は、アプリケーション開始情報と送信間隔情報とを受信し（ステップＳ１０９）、情報管理部３０６へ出力する。制御部３１０内の情報管理部３０６は、送信間隔情報をメモリ３１１に記憶させる。また、情報管理部３０６は、アプリケーション開始情報をマシン制御部３０３及びコンテンツ制御部３０４へ出力する。
【００３９】
制御部３１０内のマシン制御部３０３は、利用者が操作部３０８を操作することにより、走行時のスピードを調整した場合、その走行時のスピードを示すスピード情報を生成して、メモリ３１１に記憶し、更新させている。
【００４０】
マシン制御部３０３は、入力されたアプリケーション開始情報に基づいて、競走のアプリケーションが開始されたことを認識する。次に、マシン制御部３０３は、トレーニングマシン３０１の制御を開始する。データベース３０５には、仮想空間上のジョギングコースの起伏を示す起伏情報が登録されている。マシン制御部３０３は、起伏情報を、データベース３０５から読み出す。マシン制御部３０３は、起伏情報に基づいて、トレーニングマシン３０１に設けられ、利用者が搭乗するベルトの起伏を調整する。また、マシン制御部３０３は、最新のスピード情報に基づいて、ベルトの移動速度を調整する。なお、競走のアプリケーションが開始された後、利用者は、随時、操作部３０８を操作することによりスピード情報を変更することができる。スピード情報が変更される都度、マシン制御部３０３は、変更後のスピード情報に基づいて、ベルトの移動速度を調整する。
【００４１】
マシン制御部３０３は、所定の周期で、スピード情報と、競走のアプリケーションが開始されてからの経過時間とに基づいて、競走のアプリケーションが開始されてからの端末装置３００の利用者の擬似的な走行距離（到達距離）を算出する。ここで、所定の周期とは、送信間隔Ｔｄよりも短い周期であることが好ましい。マシン制御部３０３は、到達距離情報をメモリ３１１に記憶し、更新させる。
【００４２】
制御部３１０内のコンテンツ制御部３０４は、入力されたアプリケーション開始情報に基づいて、競走のアプリケーションが開始されたことを認識する。また、コンテンツ制御部３０４は、仮想空間上のジョギングコースに関する情報であるコース情報を、データベース３０５から読み出す。このとき、コンテンツ制御部３０４は、メモリ３１１から読み出したスピード情報に応じて、データベース３０５からのコース情報の読み出し周期を判別する。具体的には、コンテンツ制御部３０４は、スピード情報によって示されるスピードが速いほど、読み出し周期を短くする。コンテンツ制御部３０４は、コース情報に基づく地図画像を表示装置３０２に表示させる。また、コンテンツ制御部３０４は、メモリ３１１から読み出した到達距離情報に基づいて、仮想空間上のコースにおける端末装置３００の位置を判別する。コンテンツ制御部３０４は、判別した位置を示す画像を、地図画像に重ねて表示装置３０２に表示させる。
【００４３】
制御部３１０内の情報管理部３０６は、その後、図９に示す動作に移行し、送信間隔Ｔｄの値以下の乱数時間を発生させる。ここでは、乱数時間に基づく送信タイミングが、端末装置３００−２、端末装置３００−３、端末装置３００−１の順であるものとする。情報管理部３０６は、アプリケーションの開始からの経過時間が乱数時間に達した時に、メモリ３１１に記憶された最新のスピード情報及び最新の到達距離情報と、アプリケーションの開始から現在までの経過時間を示す情報（時間情報）と、端末ＩＤとからなる端末情報を生成する。更に、情報管理部３０６は、端末情報を通信制御部３０７へ出力する。通信制御部３０７は、端末情報を、通信ネットワーク２００を介してサーバ１００へ送信する。
【００４４】
具体的には、時刻ｔ５において、端末装置３００−２は、端末情報を送信する。サーバ１００は、端末情報を受信する（ステップＳ１５１）。乱数時間を用いることで、各端末装置３００が端末情報を送信するタイミングをずらすことが可能となり、通信ネットワーク２００のトラフィック量が平準化されるとともに、サーバ１００の処理負荷が平準化される。
【００４５】
その後、情報管理部３０６は、前回の端末情報の送信から送信間隔Ｔｄが経過する毎に、端末情報を生成し、通信制御部３０７へ出力する。通信制御部３０７は、端末情報が入力される毎に、端末情報をサーバ１００へ送信する。
【００４６】
サーバ１００内のトラフィック制御部１０３は、各端末装置３００からの端末情報を受信し、情報管理部１０１へ出力する。情報管理部１０１は、各端末装置３００からの端末情報を受信する毎に、端末装置３００毎の最新の端末情報からなる、図５に例示する状態情報を生成する。更に、情報管理部１０１は、生成した状態情報を、トラフィック制御部１０３へ出力する。トラフィック制御部１０３は、状態情報を、通信ネットワーク２００を介して、マルチキャスト通信により、競走の参加者が利用する全ての端末装置３００−１、３００−２、３００−３へ送信する。
【００４７】
端末装置３００−１、３００−２、３００−３内の通信制御部３０７は、状態情報を受信し（ステップＳ１５２）、制御部３１０内の情報管理部３０６を介してコンテンツ制御部３０４へ出力する。コンテンツ制御部３０４は、状態情報内の到達距離情報に基づいて、仮想空間上のコースにおける他の端末装置３００の利用者の位置を判別する。なお、コンテンツ制御部３０４は、後述する（式６）や（式７）を用いて、他の端末装置３００の利用者の現在の予測到達距離を算出し、予測到達距離に基づいて、コース上の他の端末装置３００の利用者の位置を判別してもよい。コンテンツ制御部３０４は、判別した他の端末装置３００の利用者の位置を示す画像を、地図画像に重ねて表示装置３０２に表示させる。
【００４８】
同様に、時刻ｔ６において、端末装置３００−３は、端末情報を送信する。サーバ１００は、端末情報を受信する（ステップＳ１５３）。次に、サーバ１００は、端末装置３００−３からの端末情報の受信に対応して、状態情報を、マルチキャスト通信により送信する。端末装置３００−１、３００−２、３００−３は、状態情報を受信する（ステップＳ１５４）。同様に、時刻ｔ７において、端末装置３００−１は、端末情報を送信する。サーバ１００は、端末情報を受信する（ステップＳ１５５）。次に、サーバ１００は、端末装置３００−１からの端末情報の受信に対応して、状態情報を、マルチキャスト通信により送信する。端末装置３００−１、３００−２、３００−３は、状態情報を受信する（ステップＳ１５６）。
【００４９】
また、サーバ１００内のトラフィック制御部１０３は、状態情報に基づいて、送信間隔Ｔｄを更新する（ステップＳ１５７）。具体的には、トラフィック制御部１０３は、仮想空間上のコースにおける各端末装置３００の利用者の現在の到達距離を予測する。図１０は、ステップＳ１５７の詳細な動作を示すフローチャートである。アプリケーションが開始されてから現在までの経過時間がＴＳｘであると仮定する。状態情報のうち、端末装置３００−１に対応する端末情報内のスピード情報がＳ１、到達距離がＤ１、サーバ１００へ前回通知した時間に関する時間情報がＴＳ１であり、端末装置３００−２に対応する端末情報内のスピード情報がＳ２、到達距離がＤ２、時間情報がＴＳ２である場合、トラフィック制御部１０３は、端末装置３００−１の現在の予測到達距離Ｄ１１と、端末装置３００−２の現在の予測到達距離Ｄ２２とを、
（式６）Ｄ１１＝（ＴＳｘ−ＴＳ１）×Ｓ１＋Ｄ１
（式７）Ｄ２２＝（ＴＳｘ−ＴＳ２）×Ｓ２＋Ｄ２
により算出する。同様にして、トラフィック制御部１０３は、全ての端末装置３００の利用者について、仮想空間上のコースにおける予測到達距離を算出する（ステップＳ２５１）。次に、トラフィック制御部１０３は、予測到達距離が予め定められたコースの距離以上である端末装置３００の利用者を、ゴールしていると見なし（ステップＳ２５２でＹＥＳ）、ゴールしていると見なされる利用者の端末装置３００の数を取得する。トラフィック制御部１０３は、端末装置数ｎを、情報管理部１０１を介してカウント部１０２から取得する。トラフィック制御部１０３は、端末装置数ｎからゴールしていると見なされる利用者の端末装置数を減算し、端末装置数ｎ１を得る（ステップＳ２５３）。
【００５０】
トラフィック制御部１０３は、各端末装置３００による情報の送信間隔に関する優先度としての仮想空間上のコースにおいてゴールしていない利用者間での競走における順位を判別する（ステップＳ２５４）。具体的には、トラフィック制御部１０３は、状態情報に含まれる端末情報のうち、対応する予測到達距離がコースの距離以上である端末情報を除外する。次に、トラフィック制御部１０３は、残った端末情報に対応する端末装置３００について、対応する予測到達距離が長い順に、順位付けを行う。例えば、トラフィック制御部１０３は、残った端末情報内の端末ＩＤを、対応する予測到達距離が長い順に配列して順位情報を生成する。なお、トラフィック制御部１０３は、順位情報に基づいて、前回の状態情報の送信時に判別した順位から変更があった端末装置３００を特定し、端末装置３００に対してのみ、ユニキャスト通信により状態情報を送信するようにしてもよい。
【００５１】
次に、トラフィック制御部１０３は、端末装置数に応じた平均利用率ρを定める（ステップＳ２５５）。ここで、端末装置数とは、ステップＳ２５３の処理を経ている場合にはｎ１であり、ステップＳ２５３の処理を経ていない場合にはｎである。具体的には、トラフィック制御部１０３は、メモリ１０４に記憶されている平均利用率テーブル１１２を読み出す。トラフィック制御部１０３は、平均利用率テーブル１１２を参照し、端末装置数ｎ１に対応するサーバ１００の平均利用率ρを判別する。
【００５２】
次に、トラフィック制御部１０３は、メモリ１０４に記憶されている平均利用率補正値テーブル１１３を読み出す。図６に例示する平均利用率補正値テーブル１１３は、仮想空間上のコースにおいてゴールしていない利用者間での順位と、送信間隔Ｔｄの算出に用いるサーバ１００の平均利用率ρを補正する補正値（平均利用率補正値）との対応関係を示す。図６には、２種類の平均利用率補正値テーブルの例（Ａ）、（Ｂ）を示す。平均利用率補正値テーブル（Ａ）は、現状値に加減算する値であり、平均利用率補正値テーブル（Ｂ）は、現状値を固定値に置き換える補正値である。図６に示すように、仮想空間上のコースにおいてゴールしていない利用者間での順位と平均利用率補正値との関係は、順位が高いほど、補正後の平均利用率ρが大きくなるように設定されている。図６（Ａ）の例では、補正後の平均利用率ρは、順位が１００位以上である利用者の端末装置３００については補正前より大きな値となり、順位が１０１位以下である利用者の端末装置３００については補正前より小さな値となる。
【００５３】
トラフィック制御部１０３は、順位付けされた利用者の端末装置３００毎に、平均利用率補正値テーブル１１３に基づいて、順位に対応する平均利用率補正値を取得する。トラフィック制御部１０３は、順位付けされた利用者の端末装置３００毎に、判別した平均利用率ρに平均利用率補正値テーブル（Ａ）に示す補正値を加算し、平均利用率ρを補正する（ステップＳ２５６）。但し、補正後の平均利用率の合計が、平均利用率ρの最大値（図３の例では０．８）を超える場合には、トラフィック制御部１０３は、補正後の平均利用率の合計が平均利用率ρの最大値を超えないような補正に切り替える。例えば、トラフィック制御部１０３は、平均利用率補正値テーブル（Ａ）の使用を止め、平均利用率補正値テーブル（Ｂ）を使用する。
【００５４】
トラフィック制御部１０３は、順位付けされた利用者の端末装置３００毎に、補正後の平均利用率に応じて、送信間隔Ｔｄを更新する（ステップＳ２５７）。具体的には、上述した送信間隔Ｔｄの判別のアルゴリズムと同様である。すなわち、（式５）に基づいて、送信間隔Ｔｄが算出される。なお、ゴール済みの利用者の端末装置３００は、端末情報を頻繁にサーバ１００へ送信する必要はない。このため、トラフィック制御部１０３は、ゴール済みの利用者の端末装置３００については、平均利用率ρを低い値（例えば０．１）に補正し、（式５）に基づいて、送信間隔Ｔｄを算出する。
【００５５】
このようにして送信間隔Ｔｄが判別されることにより、順位が１乃至１００位の利用者の端末装置３００の送信間隔は、補正前の平均利用率ρに基づいて算出される送信間隔（基準となる送信間隔）よりも短くなる。一方、順位が１０１位以下又はゴール済みの利用者の端末装置３００の送信間隔は、基準となる送信間隔よりも長くなる。
【００５６】
送信間隔Ｔｄを更新した後、トラフィック制御部１０３は、更新後の送信間隔Ｔｄを示す情報（送信間隔情報）を保持するとともに、通信ネットワーク２００を介して、端末装置３００−１、３００−２、３００−３に対して、ユニキャストもしくはマルチキャスト通信により、送信間隔情報を送信する。
【００５７】
端末装置３００内の通信制御部３０７は、更新後の送信間隔情報を受信し（ステップＳ１５８）、情報管理部３０６へ出力する。情報管理部３０６は、更新後の送信間隔情報を保持する。その後、情報管理部３０６は、前回の端末情報の送信から更新後の送信間隔Ｔｄが経過する毎に、端末情報を生成し、通信制御部３０７へ出力する。通信制御部３０７は、端末情報が入力される毎に、端末情報をサーバ１００へ送信する。
【００５８】
また、エントリ情報の受付期間が終了し、アプリケーションの開始後に、新たな端末装置３００の利用者が競走への参加を希望することにより、新たな端末装置３００−４がサーバ１００へエントリ情報を送信する場合もある。この場合、新たな端末装置３００−４は、エントリ情報を送信する。サーバ１００は、エントリ情報を受信する（ステップＳ１６１）。
【００５９】
すなわち、サーバ１００内の情報管理部１０１は、トラフィック制御部１０３を介して、新たな端末装置３００−４からのエントリ情報を受信する。情報管理部１０１は、受信したエントリ情報内の端末ＩＤを解析する。この場合には、解析の結果、受信された端末ＩＤが、予め定められたエントリ情報の受付期間内において、既に受信済みである端末ＩＤと異なる。このため、情報管理部１０１は、受信したエントリ情報内の端末ＩＤをメモリ１０４に記憶させるとともに、カウント部１０２に対して、カウント値を１増加するように指示する。カウント部１０２は、情報管理部１０１の指示に応じて、カウント値を増加させる。
【００６０】
更に、情報管理部１０１は、競走の参加を受け付けた旨の応答情報（ＡＣＫ）を、トラフィック制御部１０３及び通信ネットワーク２００を介して、エントリ情報の送信元の新たな端末装置３００−４へ送信する。新たな端末装置３００−４内の通信制御部３０７は、応答情報を受信して（ステップＳ１６２）、情報管理部３０６へ出力する。以上の処理によって、競走に対する新たな端末装置３００の利用者の参加受け付けが完了する。なお、その後は、競走において新たな端末装置３００の利用者も含めた順位の判別が行われる。
【００６１】
その後、サーバ１００内の情報管理部１０１は、メモリ１０４に記憶された端末ＩＤをトラフィック制御部１０３へ出力する。情報管理部１０１は、カウント部１０２のカウント値である端末装置数ｎを取得し、トラフィック制御部１０３へ出力する。
【００６２】
端末装置３００の識別情報と、端末装置数ｎとが入力されると、トラフィック制御部１０３は、送信間隔Ｔｄを算出する処理を行う（ステップＳ１６３）。具体的には、トラフィック制御部１０３は、メモリ１０４に記憶されている平均利用率テーブル１１２を読み出す。トラフィック制御部１０３は、平均利用率テーブル１１２を参照し、端末装置数ｎに対応するサーバ１００の平均利用率ρを定める。トラフィック制御部１０３は、（式５）に基づいて、送信間隔Ｔｄを更新する。トラフィック制御部１０３は、更新後の送信間隔情報を保持するとともに、通信ネットワーク２００を介して、対応する端末装置３００へ送信する。
【００６３】
端末装置３００内の通信制御部３０７は、更新後の送信間隔情報を受信し、情報管理部３０６へ出力する。情報管理部３０６は、更新後の送信間隔情報を保持する。その後、情報管理部３０６は、前回の端末情報の送信から更新後の送信間隔Ｔｄが経過する毎に、端末情報を生成し、通信制御部３０７へ出力する。通信制御部３０７は、端末情報が入力される毎に、端末情報をサーバ１００へ送信する。
【００６４】
上述したように、本実施形態のネットワークシステム１において、サーバ１００は、競走の参加者が利用する端末装置３００の数を取得し、端末装置３００の数に基づいて、サーバ１００の利用率を判別する。更に、サーバ１００は、判別したサーバ１００の利用率と、仮想空間上のコースにおいてゴールしていない利用者間での順位に応じて、端末装置３００による情報の送信間隔を判別する。
【００６５】
従って、各端末装置による情報の送信間隔は、送信に関する優先度が考慮された値となり、他の端末装置との関係において、端末装置における通信遅延を適切に制御することが可能となる。具体的には、各端末装置３００による情報の送信間隔は、ゴールしていない利用者間での順位が考慮された間隔となり、利用者の順位が高いほど、換言すれば、ゴールに近く、利用者が順位を把握したいと考える可能性が高くなるほど、その利用者の端末装置３００による情報の送信間隔は短くなり、より正確に順位を把握できるようになる。このため、端末装置３００における通信遅延を適切に制御することが可能となる。
【００６６】
上述した実施形態では、サーバ１００は、端末装置３００の送信間隔を直接的に判別した。しかし、サーバ１００は、端末装置３００の通信方式を判別することにより、間接的に端末装置３００の送信間隔を判別してもよい。
【００６７】
この場合、サーバ１００内のトラフィック制御部１０３は、利用者の順位に基づいて、複数の端末装置３００のグループ化を行う。具体的には、トラフィック制御部１０３は、各端末装置３００の利用者について算出した予測到達距離に基づいて、ゴールしていない利用者のうち、予測到達距離が長い、換言すれば、ゴールに近い所定数（例えば４つ）の利用者を選択する。トラフィック制御部１０３は、選択した所定数の利用者の端末装置３００のＩＰアドレス及びＭＡＣアドレスの組合せからなるグルーピング情報を生成する。図１１は、グルーピング情報の一例を示す図である。更に、トラフィック制御部１０３は、選択した所定数の利用者の端末装置３００に対して、通信ネットワーク２００を介してグルーピング情報を送信する。
【００６８】
端末装置３００内の通信制御部３０７は、グルーピング情報に基づいて、ピアツーピア通信の相手となる他の端末装置３００のＩＰアドレス及びＭＡＣアドレスを認識することができる。そして、通信制御部３０７は、ピアツーピア通信により、他の端末装置３００との間で端末情報を交換する。ピアツーピア通信により、より短い送信間隔で端末情報のやりとりが可能となる。
【００６９】
また、端末装置３００内の情報管理部３０６は、端末装置３００の端末情報内の到達距離情報に基づいて、端末装置３００の利用者がゴールしたか否かを判定する。端末装置３００の利用者がゴールした場合、情報管理部３０６は、通信制御部３０７及び通信ネットワーク２００を介して、サーバ１００へアプリケーションの開始時からゴールに到達するまでの経過時間の情報（到達時間情報）を送信する。
【００７０】
サーバ１００内のトラフィック制御部１０３は、到達時間情報の送信元の端末装置３００の利用者を順位判別の対象から除外し、残りのゴールしていない端末装置３００の利用者間で順位を判別する。
【００７１】
なお、端末装置３００内のトラフィック制御部１０３は、ゴールに近い所定数の利用者の端末装置３００をグループ化するのみならず、様々な手法で端末装置３００のグループ化を行うことができる。例えば、トラフィック制御部１０３は、コース上に設定されたチェックポイントを未通過であって、且つ、チェックポイントに近い所定数の利用者の端末装置３００をグループ化してもよい。また、グループ化した端末装置３００に対して、ピアツーピア通信を行わせるのではなく、図６とは異なる平均利用率補正値を適用し、平均利用率を高くすることも好適である。これにより、例えば、順位は低くてもチェックポイントに近い端末装置３００をグループ化して送信間隔を短くすることができる。
【００７２】
上述した実施形態では、端末装置３００内の情報管理部３０６は、前回の端末情報の送信から送信間隔Ｔｄが経過する毎に、端末情報を生成して通信制御部３０７へ出力し、通信制御部３０７は、端末情報が入力される毎に、端末情報をサーバ１００へ送信した。しかしながら、図２に示すトレーニングマシン３０１では、一度設定されたスピード情報は、変更されないことが多い。スピード情報が変更されなければ、サーバ１００は、端末装置３００から送信間隔Ｔｄで端末情報が送信されなくても、それまでに受信した端末情報に基づいて端末装置３００の予測到達距離を精度良く算出でき、更には、端末装置３００の順位を判別することができる。従って、端末装置３００内の情報管理部３０６は、前回の端末情報の送信から送信間隔Ｔｄが経過し、且つ、スピード情報が変更された場合のみ、端末情報を生成して通信制御部３０７へ出力し、通信制御部３０７は、端末情報が入力される毎に、端末情報をサーバ１００へ送信するようにしてもよい。
【００７３】
上述した実施形態では、サーバ１００内のトラフィック制御部１０３は、端末装置３００の利用者の順位に応じて端末装置３００の送信間隔Ｔｄを変更するようにしたが、順位に加え、他の条件に応じて、送信間隔Ｔｄを変更するようにしてもよい。例えば、トラフィック制御部１０３は、順位が高く、且つ、予測到達距離が長いほど、送信間隔Ｔｄを短くすることができる。
【００７４】
上述した実施形態では、サーバ１００の利用率は、競走のアプリケーションの実行に伴う負荷のみを反映するものとして説明したが、サーバ１００が、他の処理を行っている場合には、その処理の負荷を反映した利用率としてもよい。上述した実施形態では、各端末装置３００による情報の送信間隔に関する優先度として、仮想空間上のコースにおいてゴールしていない利用者間での競走における順位が用いられたが、各端末装置３００による情報の送信間隔に関する他の優先度が用いられる場合にも、同様に本発明を適用することができる。上述した実施形態では、端末装置３００内のトレーニングマシン３０１を用いて競走を行う場合について説明したが、端末装置３００による情報の送信間隔を変更する必要のあるシステムであれば、同様に本発明を適用することができる。
【００７５】
また、本発明に係るプログラムは、競走のアプリケーションを実行する専用機にインストールされるものに限らず、情報を収集して送信するコンピュータにインストールして実行されるものであればよい。
【００７６】
その他、本発明は、上記実施形態の説明及び図面によって限定されるものではなく、上記実施形態及び図面に適宜変更等を加えることは可能である。
【符号の説明】
【００７７】
１００  サーバ
１０１  情報管理部
１０２  カウント部
１０３  トラフィック制御部
１０４  メモリ
１１０  制御部
１１２  平均利用率テーブル
１１３  平均利用率補正値テーブル
２００  通信ネットワーク
３００−１乃至３００−ｎ  端末装置
３０１  トレーニングマシン
３０２  表示装置
３０３  マシン制御部
３０４  コンテンツ制御部
３０５  データベース
３０６  情報管理部
３０７  通信制御部
３０８  操作部
３１０  制御部
３１１  メモリ
【図１】
2013051521.tif 000003
【図２】
2013051521.tif 000004
【図３】
2013051521.tif 000005
【図４】
2013051521.tif 000006
【図５】
2013051521.tif 000007
【図６】
2013051521.tif 000008
【図７】
2013051521.tif 000009
【図８】
2013051521.tif 000010
【図９】
2013051521.tif 000011
【図１０】
2013051521.tif 000012
【図１１】
2013051521.tif 000013