説明

サーバ装置、通信システム、サービス方法、ならびに、プログラム

【課題】サーバ装置と複数の端末装置との間で、効率よく通信を行うのに好適なサーバ装置等を提供する。
【解決手段】複数の端末装置と情報の送受を行うサーバ装置201において、記憶部301には、情報を送受した時刻の履歴と各端末装置にする送信予定時刻が記憶され、送信部302は、現在時刻が送信予定時刻のいずれかになると、当該端末装置へ端末宛情報を送信し、受信部303は、端末装置から送信された、サーバ宛情報を受信し、推定部304は、記憶された履歴と送信予定時刻から、サーバ宛情報が受信される受信予定時刻を推定し、更新部305は、送信予定時刻と推定された受信予定時刻が、重ならないように、送信予定時刻を更新する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバ装置と複数の端末装置との間で、効率よく通信を行うのに好適なサーバ装置、通信システム、サービス方法、ならびに、これらをコンピュータにて実現するためのプログラムに関する。
【背景技術】
【0002】
従来から、インターネットを介した通信ゲームには、複数の端末装置同士が通信し、通信し合う端末装置のいずれか1つがサーバ装置(ホスト装置)となるか、あるいは、あらかじめ定めたサーバ装置においてゲーム進行の計算処理を集中して行い、それ以外の端末装置は、サーバ装置から送信された表示情報に基づいて画面表示を行い、端末装置におけるユーザからの入力情報をサーバ装置に送信する、という手法を採用するものがある。
【0003】
このような手法に関連する技術としては、以下に掲げる特許文献1に開示されるような、通信負荷を軽くするための技術が存在する。
【0004】
このような通信ゲームでは、サーバ装置から端末装置へ、定期的に表示情報が送られ、端末装置からサーバ装置へ、定期的に入力情報が送信されるのが一般的である。すなわち、サーバ装置と端末装置との間で、間欠的に情報の送受が行われる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第3496150号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、端末装置とサーバ装置との間の通信遅延は、各端末装置が置かれる通信環境によって異なる。一方で、各端末装置から送信される情報がサーバ装置に到着する時刻があまりに近接すると、パケットが衝突し、サーバ装置の計算処理に支障が生じたり、パケットが失われて通信負荷が高まるおそれもある。
【0007】
したがって、サーバ装置から各端末装置へ情報を送信する時刻を適切に管理することによって、各端末装置から送られた情報をサーバ装置が受信する時刻が分散するように調整する技術が求められている。
【0008】
本発明は、上記のような課題を解決するもので、サーバ装置と複数の端末装置との間で、効率よく通信を行うのに好適なサーバ装置、通信システム、サービス方法、ならびに、これらをコンピュータにて実現するためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0010】
本発明の第1の観点に係るサーバ装置は、複数の端末装置のそれぞれと情報の送受を行い、記憶部、送信部、受信部、推定部、更新部を備え、以下のように構成する。
【0011】
すなわち、記憶部には、複数の端末装置のそれぞれと情報を送受した時刻の履歴と、当該複数の端末装置のそれぞれに対応付けられる送信予定時刻と、が、記憶される。
【0012】
典型的には、サーバ装置から端末装置へ端末宛情報が送信されると、それに呼応して、端末装置からサーバ装置へサーバ宛情報が送信され、これらは対の関係にある。そこで、サーバ装置で情報の送受時刻を管理しておく。また、送信予定時刻は、端末装置に対して次に端末宛情報を送信すべき時刻を意味する。
【0013】
一方、送信部は、現在時刻が複数の送信予定時刻のいずれかになると、当該送信予定時刻に対応付けられる端末装置へ端末宛情報を送信する。
【0014】
たとえば、リアルタイムクロックによる時間計測やタイマ割込等を用いれば、サーバ装置は、送信予定時刻になったことが知得できる。
【0015】
さらに、受信部は、複数の端末装置のうち、端末宛情報を受信した端末装置から送信された、当該端末宛情報に対応付けられるサーバ宛情報を受信する。
【0016】
ここで受信されるサーバ宛情報は、先に送信した端末宛情報と対になるものであり、これに呼応するものである。サーバ宛情報が受信された時刻は、情報を送受した時刻の履歴として、記憶部に記憶される。
【0017】
そして、推定部は、記憶された履歴と、記憶された複数の送信予定時刻のそれぞれと、から、当該送信予定時刻における端末宛情報の送信に対応付けられるサーバ宛情報が受信部により受信される受信予定時刻を推定する。
【0018】
ある端末装置について、端末宛情報を送信した時刻と、その送信の後に当該端末装置からのサーバ宛情報を受信した時刻と、の間隔は、当該端末装置において、ほぼ一定になると推定できる。そこで、推定部は、記憶部に記憶される情報の送受の履歴に基づいて、送信予定時刻から受信予定時刻を推定する。
【0019】
一方、更新部は、記憶された複数の送信予定時刻と、当該複数の送信予定時刻に対して推定部により推定される複数の受信予定時刻と、が、重ならないように、当該送信予定時刻を更新する。
【0020】
上記のように、送信予定時刻が決まれば、情報の送受の履歴に基づいて、当該送信予定時刻に対する受信予定時刻を推定することができる。そこで、更新部は、一旦は定めた送信予定時刻と推定された受信予定時刻とができるだけ均一に分散し、重ならないように、送信予定時刻を再設定するのである。
【0021】
本発明によれば、サーバ装置において情報の送受を行う時刻をできるだけ分散させることができ、通信を効率良く実行することができるようになる。
【0022】
また、本発明のサーバ装置は、複数の端末装置R[1],R[2],…,R[N]のそれぞれと、所定時間Tに1回、間欠的に情報の送受を行い、以下のように構成することができる。
【0023】
本発明を通信ゲームに適用する場合を考えると、端末装置における画面更新の間隔は、垂直同期周期(もしくは、その整数倍)となるのが典型的である。したがって、当該画面更新間隔が、所定時間Tに相当する。この所定時間Tの間に1回、サーバ装置から端末装置へ、端末装置の画面に表示すべき表示情報が端末宛情報として送信され、端末装置からサーバ装置へ、端末装置のユーザの操作入力の入力情報がサーバ宛情報として送信される。
【0024】
一方、記憶部には、整数i = 1,2,…,Nのそれぞれについて、端末装置R[i]に最後に端末宛情報を送信した後に当該送信に呼応した当該端末装置R[i]から最後にサーバ宛情報が受信されるまでの送受間隔m[i]が、時刻の履歴として記憶され、当該端末装置R[i]に次に端末宛情報を送信すべき送信予定時刻s[i]が、記憶される。
【0025】
送信部は、整数j = 1,2,…,Nのそれぞれについて、現在時刻が送信予定時刻s[j]になると、端末装置R[j]へ端末宛情報を送信する。
【0026】
受信部は、整数k = 1,2,…,Nのそれぞれについて、端末装置R[k]から送信されたサーバ宛情報を受信する。
【0027】
更新部は、端末装置R[k]から送信されたサーバ宛情報が受信されると、現在時刻と送信予定時刻s[k]との差により、送受間隔m[k]を更新する。
【0028】
すなわち、本発明においては、端末宛情報の送信からサーバ宛情報の受信までの最新の送受間隔を、情報の送受の時刻の履歴として採用することとしている。
【0029】
さらに、推定部は、送受間隔m[k]が更新された後、送信予定時刻s[k]の候補値として値rが与えられると、送信予定時刻
s[1], s[2],…, s[k-1],r, s[k+1],…, s[N]
のそれぞれに送信される端末宛情報に対応付けられるサーバ宛情報を受信する受信予定時刻を
s[1]+m[1], s[2]+m[2],…, s[k-1]+m[k-1],r+m[k], s[k+1]+m[k+1],…, s[N]+m[2]
と推定する。
【0030】
すなわち、本発明では、端末装置R[j]に対する送信予定時刻s[j]から、当該端末装置R[j]からの受信予定時刻s[j]+m[j]を推定するのである。
【0031】
さらに、更新部は、送信予定時刻s[k]の現在の値に前記所定時間Tを加算した時刻pを取得し、当該取得された時刻pを所定時間Tで割った結果の切捨てfloor(p/T)に対して定められる時刻floor(p/T)×Tから時刻〔floor(p/T)+1〕×Tまでの間の、いずれかの時刻から、送信予定時刻s[k]の次の値qを選択し、選択された次の値qにより、送信予定時刻s[k]を更新する。
【0032】
ここで、送信予定時刻s[k]の次の値qを選択する範囲を時刻floor(p/T)×Tから時刻〔floor(p/T)+1〕×Tまでの間とするのは、所定時間Tの間に1回、サーバ装置と端末装置R[k]との間で、情報の送受を行うためである。
【0033】
ここで、更新部は、
(1)推定部に送信予定時刻s[k]の候補値として当該値pを与えた場合の送信予定時刻
s[1], s[2],…, s[k-1], p, s[k+1],…, s[N]
ならびに受信予定時刻
s[1]+m[1], s[2]+m[2],…, s[k-1]+m[k-1], p+m[k], s[k+1]+m[k+1],…, s[N]+m[2]
を整列した時刻列における各時刻の間隔の最小値と、
(2)推定部に送信予定時刻s[k]の候補値として当該次の値qを与えた場合の送信予定時刻
s[1], s[2],…, s[k-1], q, s[k+1],…, s[N]
ならびに
s[1]+m[1], s[2]+m[2],…, s[k-1]+m[k-1], q+m[k], s[k+1]+m[k+1],…, s[N]+m[2]
を整列した時刻列における各時刻の間隔の最小値と、
を対比して、上記(2)の間隔の最小値が、上記(1)の間隔の最小値以上となるように、当該次の値qを選択する。
【0034】
すなわち、送信予定時刻と受信予定時刻をソートして、その間隔の最小値を求める。この最小値が小さければ小さいほど、パケット送受の時刻の衝突が生じやすいこととなり、サーバ装置における計算処理に支障が生じやすくなる。
【0035】
そこで、典型的には、次の間隔の最小値が、現在の間隔の最小値に比べて、できるだけ大きくなるように、次の値qを選択するのである。
【0036】
本発明によれば、サーバ装置は、情報の送受の時刻の直近の間隔を用いることによって簡易に受信予定時刻を推定し、情報の送受の時刻ができるだけ重ならないように、設定することができるようになる。
【0037】
また、本発明のサーバ装置において、更新部は、時刻floor(p/T)×Tから時刻〔floor(p/T)+1〕×Tまでの間から、次の値qの候補を複数選択し、当該候補ならびに値pのそれぞれに対する間隔の最小値を求め、当該最小値が最大である値を、次の値qとして選択するように構成することができる。
【0038】
次の値qや、その他の送信予定時刻の配置を求めるにあたっては、最急降下法や擬似焼きなまし法を用いて、送信予定時刻と受信予定時刻の間隔の統計的分布における分散・標準偏差を最小化するような最適な配置を求めることとしても良い。
【0039】
しかしながら、端末装置とサーバ装置の通信における送受間隔は、通信状況によって変化するものであり、複雑な計算手法ではなく、簡易な計算手法を採用することで十分な場合も多い。
【0040】
本発明はこのような考えに基づくもので、次の値qの候補を複数選び、評価値として、送信予定時刻・受信予定時刻をソートした時刻列における時刻同士の間隔の最小値を採用して、値pとその候補のそれぞれとで、評価値が最大となるものを選択する。
【0041】
更新部が次の値qの候補を複数選ぶ手法としては、たとえば、時刻floor(p/T)×Tから時刻〔floor(p/T)+1〕×Tまでの間を所定の間隔で区切る時刻のそれぞれを、次の値qの候補として選択する手法や、時刻floor(p/T)×Tから時刻〔floor(p/T)+1〕×Tまでの間から、次の値qの候補をランダムに複数選択する手法がある。
【0042】
本発明によれば、サーバ装置は、簡易な計算で、送信予定時刻を適切に配置することができるようになる。
【0043】
本発明のその他の観点に係る通信システムは、複数の端末装置と、上記のサーバ装置と、を備えるように構成する。
【0044】
ここで、複数の端末装置のそれぞれは、端末側受信部、端末側送信部を備える。
【0045】
ここで、端末側受信部は、サーバ装置から送信された端末宛情報を受信し、端末側送信部は、端末宛情報を受信するごとに、サーバ装置へ、サーバ宛情報を送信する。
【0046】
たとえば通信ゲームを実現する場合には、端末宛情報には、現在ゲームに参加している各端末装置(あるいは、他の端末装置)のプレイヤーの状態情報が指定されることになり、サーバ宛情報には、当該端末装置のプレイヤーの指示操作に基づいて更新された当該プレイヤーの状態情報が指定されることになる。典型的には、受信から送信までの間に実行される処理は固定されているから、受信から送信までの時間はほぼ一定となり、サーバ装置は、各端末装置との通信路の時間遅延を適切に推定できるようになる。
【0047】
したがって、本発明によれば、サーバ装置において情報の送受を行う時刻をできるだけ分散させることができ、通信を効率良く実行することができるようになる。
【0048】
本発明のその他の観点に係るサービス方法は、複数の端末装置のそれぞれと情報の送受を行うサーバ装置が実行し、サーバ装置は、記憶部、送信部、受信部、推定部、更新部を備え、以下のように構成する。
【0049】
ここで、記憶部には、複数の端末装置のそれぞれと情報を送受した時刻の履歴と、当該複数の端末装置のそれぞれに対応付けられる送信予定時刻と、が、記憶される。
【0050】
一方、送信工程では、送信部が、現在時刻が複数の送信予定時刻のいずれかになると、当該送信予定時刻に対応付けられる端末装置へ端末宛情報を送信する。
【0051】
さらに、受信工程では、受信部が、複数の端末装置のうち、端末宛情報を受信した端末装置から送信された、当該端末宛情報に対応付けられるサーバ宛情報を受信する。
【0052】
そして、推定工程では、推定部が、記憶された履歴と、記憶された複数の送信予定時刻のそれぞれと、から、当該送信予定時刻における端末宛情報の送信に対応付けられるサーバ宛情報が受信部により受信される受信予定時刻を推定する。
【0053】
一方、更新工程では、更新部が、記憶された複数の送信予定時刻と、当該複数の送信予定時刻に対して推定部により推定される複数の受信予定時刻と、が、重ならないように、当該送信予定時刻を更新する。
【0054】
本発明のその他の観点に係るプログラムは、コンピュータを上記のサーバ装置の各部として機能させるように構成する。
【0055】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【0056】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0057】
本発明によれば、サーバ装置と複数の端末装置との間で、効率よく通信を行うのに好適なサーバ装置、通信システム、サービス方法、ならびに、これらをコンピュータにて実現するためのプログラムを提供することができる。
【図面の簡単な説明】
【0058】
【図1】プログラムを実行することにより、本実施形態のサーバ装置として機能しうる典型的な情報処理装置の概要構成を示す模式図である。
【図2】本実施形態に係るサーバ装置と、端末装置と、の様子を示す説明図である。
【図3】本実施形態に係るサーバ装置の概要構成を示す説明図である。
【図4】サーバ装置にて実行されるサービス処理の制御の流れを示すフローチャートである。
【図5A】送信予定時刻として時刻pを採用した場合の送信予定時刻や受信予定時刻の分布を示す説明図である。
【図5B】送信予定時刻として時刻qを採用した場合の送信予定時刻や受信予定時刻の分布を示す説明図である。
【図6】本実施形態に係る端末装置の概要構成を示す説明図である。
【図7】本実施形態に係る端末装置にて実行されるゲーム処理の制御の流れを示すフローチャートである。
【発明を実施するための形態】
【0059】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。
【0060】
したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例1】
【0061】
図1は、プログラムを実行することにより、本実施形態のサーバ装置として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0062】
情報処理装置100は、CPU(Central Processing Unit)101と、ROM(Read Only Memory) 102と、RAM(Random Access Memory)103と、インターフェース104と、コントローラ105と、外部メモリ106と、画像処理部107と、DVD−ROM(Digital Versatile Disc ROM)ドライブ108と、NIC(Network Interface Card)109と、音声処理部110と、マイク111と、を備えるように構成することができる。各種の入出力装置は、適宜省略することができる。
【0063】
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着して、情報処理装置100の電源を投入することにより、当該プログラムが実行され、本実施形態のサーバ装置や、当該サーバ装置と通信する端末装置が実現される。
【0064】
また、携帯型ゲーム機においては、携帯可能とするために、DVD−ROMドライブ108を利用するのではなく、ROMカセット用スロットを利用することも可能である。この場合、プログラムが記録されたROMカセットを挿入して、当該プログラムを実行することで、本実施形態のサーバ装置が実現される。
【0065】
このほか、端末装置から専用サーバ装置に接続することによりゲームを進めるようなシステムにおいても、専用サーバ装置は、計算能力の違いや機器構成に少々の相違はあるものの、本質的には、情報処理装置100と同様の構成である。
【0066】
CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、レジスタ(図示せず)という高速アクセスが可能な記憶域に対してALU(Arithmetic Logic Unit)(図示せず)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、CPU 101自身が構成されているものや、コプロセッサを備えて実現するものがある。
【0067】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【0068】
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行ったり、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【0069】
インターフェース104を介して接続されたコントローラ105は、ユーザがゲーム実行の際に行う操作入力を受け付ける。
【0070】
なお、コントローラ105は、必ずしも情報処理装置100に対して外付けにされている必要はなく、一体に形成されていても良い。
【0071】
携帯可能な端末装置のコントローラ105は、各種のボタンやスイッチから構成され、これらの押圧操作を操作入力として扱う。このほか、タッチスクリーンを利用した情報処理装置100では、ユーザがペンや指を利用してタッチスクリーンをなぞった軌跡を操作入力として扱う。
【0072】
インターフェース104を介して着脱自在に接続された外部メモリ106には、ゲーム等のプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ(記録)のデータなどが書き換え可能に記憶される。ユーザは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
【0073】
DVD−ROMドライブ108に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ108は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0074】
画像処理部107は、DVD−ROMから読み出されたデータをCPU 101や画像処理部107が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部107が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部107に接続されるモニタ(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
【0075】
携帯可能なゲーム機のモニタとしては、小型の液晶ディスプレイを利用するのが典型的であり、コントローラ105としてタッチスクリーンを利用する場合には、当該タッチスクリーンの表示パネルがモニタとして機能する。自宅で遊ぶためのゲーム機のモニタとしては、CRT(Cathode Ray Tube)やプラズマディスプレイなどの表示装置を利用することも可能である。
【0076】
画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【0077】
また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【0078】
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【0079】
NIC 109は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LANを構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
【0080】
音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカや、ヘッドホン(図示せず)、イヤフォン(図示せず)から出力させる。
【0081】
音声処理部110では、DVD−ROMに記録された音声データがMIDIデータである場合には、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータは、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換を行って、スピーカに出力することにより、音声出力が可能となる。
【0082】
さらに、情報処理装置100には、インターフェース104を介してマイク111を接続することができる。この場合、マイク111からのアナログ信号に対しては、適当なサンプリング周波数でA/D変換を行い、PCM形式のディジタル信号として、音声処理部110でのミキシング等の処理ができるようにする。
【0083】
このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
【0084】
また、ユーザからの文字列の編集入力を受け付けるためのキーボードや、各種の位置の指定および選択入力を受け付けるためのマウスなどを接続する形態も採用することができる。また、本実施形態の情報処理装置100にかえて、汎用のパーソナルコンピュータを利用することもできる。
【0085】
以上で説明した情報処理装置100は、いわゆるコンシューマ向けゲーム機に相当するものであるが、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明のサーバ装置を実現することが可能である。
【0086】
たとえば、一般的なコンピュータは、上記情報処理装置100と同様に、CPU、RAM、ROM、DVD−ROMドライブ、および、NICを備え、情報処理装置100よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラ105ではなく、キーボードやマウスなどを入力装置として利用する。
【0087】
図2は、本実施形態に係るサーバ装置と、端末装置と、の様子を示す説明図である。以下、本図を参照して説明する。
【0088】
本実施形態では、サーバ装置201は、複数の端末装置221と、インターネット241を介して通信可能に接続されて、通信ゲームシステムを実現している。
【0089】
サーバ装置201と端末装置221は、いずれも、同一の構成の情報処理装置100において所定のプログラムを実行することにより実現されるのが典型的である。
【0090】
すなわち、情報処理装置100において通信ゲーム用プログラムを実行すると、各情報処理装置100は、紹介サーバ(図示せず。)に問い合わせを行い、通信ゲームを一緒を行う他の情報処理装置100の紹介を求める。
【0091】
紹介サーバは、一緒に通信ゲームを行わせる情報処理装置100を選択し、その中から、サーバ装置201として機能するものを1つ選ぶ。そして、各情報処理装置100に、サーバ装置201として機能するものはいずれか、端末装置221として機能するものはいずれか、を、通知することにより、他の情報処理装置100を紹介する。
【0092】
サーバ装置201は、通信ゲームの進行を司る。
【0093】
また、サーバ装置201および各端末装置221は、当該情報処理装置100を使用するユーザの指示操作の入力を受け付け、サーバ装置201によって進行される通信ゲームの状況を画面に表示して、ユーザに提示する。
【0094】
このため、サーバ装置201から端末装置221へは、垂直同期周期(もしくは、その整数倍)に1回、画面に表示すべき表示情報が伝達され、これに応答して、端末装置221からサーバ装置201へ、当該端末装置221においてなされたユーザの指示操作が通知される。
【0095】
通信ゲーム以外の態様であっても、複数の端末装置221のそれぞれと、間欠的に、単位時間あたりの通信回数が一定になるように、サーバ装置201が情報を送受し合う状況がありうる。そこで、理解を容易にするため、サーバ装置201から端末装置221へ通信される情報を、以下端末宛情報と呼ぶこととし、端末装置221からサーバ装置201へ通信される情報を、以下サーバ宛情報と呼ぶこととする。
【0096】
各端末装置221は、サーバ装置201から送信された端末宛情報を受信すると、これを契機に、サーバ装置201へサーバ宛情報を送信する。
【0097】
さて、ネットワークの通信は、パケットのやりとりによって行われるが、効率の良い通信を行うためには、パケットができるだけ衝突しないことが望ましい。したがって、サーバ装置201から各端末装置221へ端末宛情報を送信する時刻と、サーバ装置201が各端末装置221からのサーバ宛情報を受信する時刻は、できるだけ分散している方が良い。
【0098】
ここで、各端末装置221とサーバ装置201との間の通信経路は、端末装置221がインターネット241のどの箇所に接続されているか、どのような機器を用いて接続されているか、により、その通信状況が異なる。
【0099】
したがって、端末宛情報を受信してからサーバ宛情報を送信する時間が、各端末装置221で同一であっても、通信経路の差によって、情報の往復に要する時間は異なる。
【0100】
一方で、ある端末装置221についていえば、サーバ装置201との情報の往復に要する時間は、統計的な揺らぎは存在するものの、ある一定の値をとるものと期待できる。
【0101】
そこで本発明では、サーバ装置201において、ある端末装置221に端末宛情報を送信してからその端末装置221からサーバ宛情報を受信するまでの時間間隔を管理することによって、送信時刻と受信時刻とができるだけ衝突しないように、自動的に調整することとしている。以下、詳細に説明する。
【0102】
図3は、本実施形態に係るサーバ装置201の概要構成を示す説明図である。以下、本図を参照して説明する。
【0103】
本実施形態に係るサーバ装置201は、複数の端末装置221のそれぞれと情報の送受を行い、記憶部301、送信部302、受信部303、推定部304、更新部305を備え、これらの各部は、情報処理装置100において所定のプログラムを実行することによって実現される。
【0104】
ここで、記憶部301は、RAM 103やハードディスクなどによって実現され、複数の端末装置221のそれぞれと情報を送受した時刻の履歴と、当該複数の端末装置221のそれぞれに対応付けられる送信予定時刻と、が、記憶される。
【0105】
時刻の履歴としては、各端末装置221に過去に端末宛情報を送った時刻と、各端末装置221から過去にサーバ宛情報を受信した時刻と、を記憶するのが最も単純である。このほか、各端末装置221に最後に端末宛情報を送信した時刻と、当該送信に応答して、各端末装置221が送信したサーバ宛情報を受信した時刻と、の時間間隔(以下、「送受間隔」という。)を記憶することとしても良い。
【0106】
送信予定時刻は、各端末装置221に次に端末宛情報を送信すべき時刻を示すもので、サーバ装置201は、この情報を適宜調整することによって、送信時刻と受信時刻とが、できるだけ均一にばらけて、衝突しないようにするのである。
【0107】
一方、送信部302は、CPU 101の制御の下で、NIC 109によって実現されるもので、現在時刻が複数の送信予定時刻のいずれかになると、当該送信予定時刻に対応付けられる端末装置221へ端末宛情報を送信する。
【0108】
すると、端末宛情報を受信した端末装置221は、これに呼応して、サーバ装置201へ、サーバ宛情報を送信する。
【0109】
さらに、受信部303は、CPU 101の制御の下で、NIC 109によって実現されるもので、複数の端末装置221のそれぞれから送信されたサーバ宛情報を受信する。
【0110】
更新部305は、RAM 103等とCPU 101が共働して実現されるもので、いずれかの端末装置221からサーバ宛情報を受信すると、当該サーバ宛情報に対応する端末宛情報を送信した送信時刻と、当該サーバ宛情報の受信時刻と、に基づいて、記憶部301に記憶される情報の送受の時刻を更新する。
【0111】
そして、推定部304は、RAM 103等とCPU 101が共働して実現されるもので、記憶された履歴と、記憶された複数の送信予定時刻のそれぞれと、から、当該送信予定時刻における端末宛情報の送信に対応付けられるサーバ宛情報が受信部303により受信される受信予定時刻を推定する。
【0112】
上記のように、各端末装置221についての送受間隔は、ランダムな揺らぎはあるものの、ほぼ一定になると期待できる。そこで、推定部304は、記憶部301に記憶される情報の送受の履歴に基づいて、送信予定時刻から受信予定時刻を推定する。
【0113】
すると、更新部305は、記憶された複数の送信予定時刻と、当該複数の送信予定時刻に対して推定部304により推定される複数の受信予定時刻と、が、重ならないように、当該送信予定時刻を更新する。
【0114】
上記のように、送信予定時刻が決まれば、情報の送受の履歴に基づいて、当該送信予定時刻に対する受信予定時刻を推定することができる。そこで、更新部305は、一旦は定めた送信予定時刻と推定された受信予定時刻とができるだけ均一に分散し、重ならないように、送信予定時刻を再設定するのである。
【0115】
以下、さらに詳細に、本実施形態に係る手法について説明する。ここで、理解を容易にするため、サーバ装置201は、複数の端末装置221 R[1],R[2],…,R[N]のそれぞれと、所定時間Tに1回、間欠的に情報の送受を行うものとする。
【0116】
また、記憶部301には、整数i = 1,2,…,Nのそれぞれについて、端末装置221 R[i]に最後に端末宛情報を送信した後に当該送信に呼応した当該端末装置221 R[i]から最後にサーバ宛情報が受信されるまでの送受間隔m[i]が、時刻の履歴として記憶され、当該端末装置221 R[i]に次に端末宛情報を送信すべき送信予定時刻s[i]が、記憶されるものとする。
【0117】
上記の仮定から、整数i = 1,2,…,Nのそれぞれについて、端末装置221 R[i]へ送信予定時刻s[i]に端末宛情報を送信すると、当該端末装置221 R[i]から送信されたサーバ宛情報が受信される時刻の期待値(最も尤もらしい時刻)は、s[i]+m[i]である。
【0118】
以下、理解を容易にするため、リアルタイムクロックやタイマ割込によって取得可能な現在時刻を、変数tにより表記するものとする。
【0119】
図4は、サーバ装置201にて実行されるサービス処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0120】
サービス処理が開始されると、サーバ装置201は、各種の初期化を行う(ステップS401)。本実施形態では、記憶部301を、以下のように初期化する。
【0121】
すなわち、初期化の最終段階での現在時刻tに基づいて、整数i = 1,2,…,Nのそれぞれについて、
s[i] ← t + i×T/N;
m[i] ← T/(2×N)
のように初期化する。ここで、「←」は代入を意味する。
【0122】
前者は、所定時間Tの間に、各送信予定時刻を等間隔に配置するものであり、後者は、所定時間Tの間に、各送信予定時刻の直後に対応する受信予定時刻を等間隔に配置するものである。
【0123】
このほか、前回の通信ゲームにおける最終的な値に基づいて初期化を行ったり、適当な乱数を用いて初期化を行ったりしても良い。
【0124】
次に、サーバ装置201は、送信予定時刻s[1],s[2],…,s[N]を時刻順にソートする(ステップS402)。そして、現在時刻tから直近の送信予定時刻s[j]、すなわち、先頭の送信予定時刻s[j]にタイマ割込が生じるように、設定を行う(ステップS403)。
【0125】
さらに、NIC 109に情報パケットが到達すると受信割込が生じるように、設定を行う(ステップS404)。
【0126】
さらに、当該サーバ装置201を通信ゲーム端末として機能させる場合には、垂直同期割込の設定も行うものとする(ステップS405)。この場合は、垂直同期割込の周期(もしくは、その所定定数倍)が、所定時間Tとなる。
【0127】
なお、サーバ装置201が、各端末装置221と対等の立場にはない専用ゲームサーバである場合には、サーバ装置201における表示は必要ない。この場合には、各端末装置221における表示の更新間隔、すなわち、端末装置221を実現する情報処理装置100の垂直同期割込の周期(もしくは、その所定定数倍)が、所定時間Tとなる。
【0128】
そして、タイマ割込、受信割込、もしくは、垂直同期割込が生じるまで、待機する(ステップS406)。なお、この待機の間には、通信ゲームを進行させるための各種の計算処理や、サーバ装置201のモニタに表示する画像をRAM 103内に生成する生成処理を、コルーチン的に実行するのが典型的である。
【0129】
さて、割込が生じたら、その種類を調べる(ステップS407)。
【0130】
割込が、タイマ割込である場合(ステップS407;タイマ)、現在時刻tがいずれかの送信予定時刻s[j]と一致しているので、サーバ装置201の送信部302は、タイマ割込の原因となった送信予定時刻s[j]に対する端末装置221 R[j]へ、端末宛情報を送信し(ステップS408)、ステップS402に戻る。
【0131】
割込が、垂直同期割込である場合(ステップS407;垂直同期)、画像処理部107を制御して、RAM 103内に生成されている画像をモニタに転送して表示し(ステップS409)、サーバ装置201を実現する情報処理装置100のコントローラ105の操作状況を調べて(ステップS410)、ゲームの進行状況に反映させ(ステップS411)、ステップS402に戻る。
【0132】
割込が、受信割込である場合(ステップS407;受信)、サーバ装置201の受信部303は、いずれかの端末装置221 R[k]から送信されたサーバ宛情報を受信する(ステップS412)。
【0133】
そして、サーバ装置201の更新部305は、現在時刻tと、当該端末装置221 R[k]に対して最後に端末宛情報を送信した時刻s[k]との差t - s[k]を計算し、記憶部301を
m[k] ← t - s[k]
のように更新する(ステップS413)。
【0134】
そして、端末装置221 R[k]に対する次の送信予定時刻の基準となる時刻pを、
p ← s[k] + T
のように計算する(ステップS414)。
【0135】
そして、以下のような処理(ステップS415〜S419)を行って、時刻pよりも、送信予定時刻や受信予定時刻がより均一にばらつくような時刻qを求めて、これを、端末装置221 R[k]に対する新たな送信予定時刻とする。
【0136】
図5Aは、送信予定時刻として時刻pを採用した場合の送信予定時刻や受信予定時刻の分布を示す説明図である。図5Bは、送信予定時刻として時刻qを採用した場合の送信予定時刻や受信予定時刻の分布を示す説明図である。以下、これらの図を参照して説明する。
【0137】
これらの図においては、横軸tは時間の経過を意味し、黒丸は送信予定時刻を、白丸は受信予定時刻を、黒丸と白丸を結ぶ線分の長さは推定された送受間隔を、それぞれ表している。
【0138】
また、更新の対象となる端末装置221についての送信予定時刻は白い四角で、受信予定時刻は黒い四角で、それぞれ表記している。
【0139】
図5Aは、端末装置R[1],R[2],R[3],R[4],R[5]のうち、端末装置R[3]の送信予定時刻s[3]を、時刻pとした場合の一例を示している。本例では、時間軸tを見ればわかるように、時刻pと時刻s[1]+m[1]が近付き過ぎており、処理の衝突が生じる可能性がある。
【0140】
図5Bは、時刻pとは異なる時刻qを、送信予定時刻s[3]とする一例を示している。本例では、図5Aに示す例にくらべて、時間軸tにおける各時刻の分布がより均一になっている。
【0141】
また、図5Aにおける各時刻の時間間隔の最小値は、pとs[1]+m[1]の間の時間間隔501aであるが、図5Bにおける各時刻の時間間隔の最小値は、s[1]+m[1]とs[2]+m[2]の間の時間間隔501bであり、時間間隔501bは、時間間隔501aよりも大きい。
【0142】
したがって、「送信予定時刻と受信予定時刻をソートした時刻列における時間間隔の最小値」を大きくするように、送信予定時刻を更新することによって、処理の衝突を避けることができるものと考えられる。
【0143】
さて、以下では、具体的に時刻qを求める手法について説明する。
【0144】
すなわち、端末装置221 R[k]に対する次の送信予定時刻の候補v[1],v[2],…,v[M]を、時刻floor(p/T)×Tから時刻〔floor(p/T)+1〕×Tまでの間で、適当に選ぶ(ステップS415)。ここで、floor(・)は、与えられた引き数の小数点以下を切り捨てる演算である。また、定数Mの値は、端末装置221の個数Nと同程度とすれば良いことが多いが、任意に選ぶことも可能である。
【0145】
ここで、候補v[1],v[2],…,v[M]を選ぶ手法としては、以下のようなものが考えられる。
(1)値floor(p/T)×Tから値〔floor(p/T)+1〕×Tまでの間で一様乱数をM個発生させ、各々を候補v[1],v[2],…,v[M]とする。
(2)整数h = 1,2,…,Mのそれぞれについて、
v[h] = floor(p/T)×T + h×T/M
とする。所定時間Tの間で等間隔に候補を選ぶものである。
(3)他の送信予定時刻s[1],s[2],…,s[k-1],s[k+1],…,s[N]をソートした時刻列において、隣り合う時刻の間隔が広い順にM個を選び、当該隣り合う時刻の中点のそれぞれを、候補v[1],v[2],…,v[M]とする。
【0146】
ついで、サーバ装置201の推定部304は、時刻pおよび候補v[1],v[2],…,v[M]のそれぞれを送信予定時刻の候補値rとして、時刻
s[1], s[2],…, s[k-1],r, s[k+1],…, s[N]
のそれぞれに送信される端末宛情報に対応付けられるサーバ宛情報を受信する受信予定時刻を推定する(ステップS416)。
【0147】
各受信予定時刻は、記憶部301に記憶される値に基づいて、
s[1]+m[1], s[2]+m[2],…, s[k-1]+m[k-1],r+m[k], s[k+1]+m[k+1],…, s[N]+m[N]
とするのが最も単純な手法であるが、過去の送信時刻や受信時刻の履歴をある程度記憶しておき、その変化に基づいて、減衰平均などを用いて送受間隔を推定してから、各受信予定時刻を得ることとしても良い。
【0148】
そして、サーバ装置201の更新部305は、時刻pおよび候補v[1],v[2],…,v[M]のそれぞれを候補値rとした場合の送信予定時刻と、これに対して推定された受信予定時刻と、をソートして、得られる時刻列の時間間隔の最小値を求める(ステップS417)。
【0149】
ここで得られる時刻列が完全に均一にばらけている場合には、N個の送信予定時刻とN個の受信予定時刻とが等間隔に並ぶことになるから、「時刻列の時間間隔の最小値」の上限は、T/(2×N)である。
【0150】
また、時刻列に同じ値がある場合には、「時刻列の時間間隔の最小値」は0となる。これは、送受に衝突が生じることを意味する。
【0151】
すなわち、「時刻列の時間間隔の最小値」が小さければ小さいほど、情報の送受の衝突が生じやすくなる。また、「時刻列の時間間隔の最小値」が大きければ大きいほど、送受のタイミングが分散して、ばらけていることになる。
【0152】
そこで、サーバ装置201の更新部305は、時刻pおよび候補v[1],v[2],…,v[M]のそれぞれの中から、当該値を候補値rと仮定した場合に、推定部304により推定された最小値が最大となるような値qを選択して(ステップS418)、
s[k] ← q
のように記憶部301の更新を行う(ステップS419)。
【0153】
そして、受信されたサーバ宛情報をゲームの進行状況に反映させ(ステップS420)、ステップS402に戻る。
【0154】
このように、本発明では、過去の送受の状況、特に送受間隔に基づいて、未来の送受ができるだけ衝突しないようにすることで、サーバ装置201における計算処理の負担や通信負荷を低減して、効率の良い処理を行うことができるようになる。
【0155】
なお、最急降下法や擬似焼きなまし法等を用いて、送信予定時刻と受信予定時刻の間隔の統計的分布における分散・標準偏差を最小化するような最適な配置を求めることも可能である。
【0156】
しかしながら、通信状況の揺れを考慮すると、本実施形態のように、簡易な計算によって送信予定時刻を調整するのであっても、十分な場合が多いと考えられる。
【0157】
このほか、送信用と受信用とで異なるNIC 109を有するようなサーバ装置201では、時刻列のばらつきの均一度合を求める際に、受信予定時刻のみを評価の対象とするような態様を採用しても良い。
【0158】
また、p,v[1],v[2],…,v[M]のいずれを採用したとしても、時間間隔の最小値が同じである場合には、s[k]として、pをそのまま採用したり、ランダムにいずれかを採用したり、時間間隔の分散や標準偏差が最も小さいものを選択するなど、種々の態様を採用することができる。
【0159】
図6は、本実施形態に係る端末装置221の概要構成を示す説明図である。以下、本図を参照して説明する。
【0160】
本図に示すように、端末装置221は、受信部601、送信部602を備える。
【0161】
ここで、受信部601は、サーバ装置201から送信される端末宛情報を受信する。
【0162】
一方、送信部602は、端末宛情報が受信部601により受信されるごとに、サーバ装置201へ、サーバ宛情報を送信する。
【0163】
情報処理装置100により端末装置221が実現される場合には、受信部601および送信部602は、CPU 101の制御の下でNIC 109が動作することによって実現される。
【0164】
図7は、端末装置221において通信ゲームが提供される場合のゲーム処理の流れを示すフローチャートである。以下、本図を参照して説明する。
【0165】
本処理は、情報処理装置100において、DVD−ROMドライブ108に装着されたDVD−ROMに記録されたプログラムを、CPU 101がRAM 103に読み出して実行することにより、開始される。
【0166】
すなわち、本処理が開始されると、CPU 101は、RAM 103等の初期化を行って、通信ゲームを開始する準備を行う(ステップS701)。この際に、サーバ装置201との通信の確立等の処理や、ゲーム状態の初期化が行われる。
【0167】
まず、CPU 101は、コントローラ105の押圧状態を検査してユーザの指示操作を取得し(ステップS702)、当該指示操作をRAM 103に記憶されるゲーム状態に反映させる(ステップS703)。
【0168】
ついで、CPU 101は、NIC 109を検査して、サーバ装置201から端末宛情報が到達しているか否かを調べる(ステップS704)。到達していない場合には(ステップS704;No)、ステップS709に進む。到達している場合には(ステップS704;Yes)、これを受信してRAM 103に展開し(ステップS705)、RAM 103に記憶されるゲーム状態に、端末宛情報に指定されている情報を反映させる(ステップS706)。
【0169】
そして、CPU 101は、RAM 103内に記憶された現在のゲーム状態に基づいて、サーバ装置201に送信すべきサーバ宛情報をRAM 103内に生成し(ステップS707)、NIC 109を制御して、サーバ宛情報をサーバ装置201に送信する(ステップS708)。
【0170】
ついで、CPU 101は、RAM 103内に記憶された現在のゲーム状態に基づいて、画面に表示すべき画像をRAM 103内に生成し(ステップS709)、垂直同期割込が生じるまで待機する(ステップS710)。
【0171】
なお、この待機中には、ユーザとの対話処理(ステップS702〜S703)や、サーバ装置201との通信処理(ステップS704〜ステップS708)等の処理を、適宜繰り返すこととしても良い。
【0172】
垂直同期割込が生じたら、CPU 101は、画像処理部107を制御して、RAM 103内の画像をモニターに転送して表示し(ステップS711)、ステップS702に戻る。
【0173】
なお、コントローラ105の押圧操作割込や、NIC 109への受信割込、垂直同期割込を利用して、対話処理(ステップS702〜S703)、通信処理(ステップS704〜S708)、描画処理(ステップS709〜S711)等の処理を並行に実行することとしても良い。
【0174】
上記のような構成を採用すると、端末装置221がサーバ装置201から端末宛情報を受信してから、サーバ装置201へサーバ宛情報を送信するまでの時間は、ほぼ一定となる。このため、サーバ装置201では、端末装置221との間の通信路の遅延時間を、適切に推定することができるようになる。
【産業上の利用可能性】
【0175】
本発明によれば、サーバ装置と複数の端末装置との間で、効率よく通信を行うのに好適なサーバ装置、通信システム、サービス方法、ならびに、これらをコンピュータにて実現するためのプログラムを提供することができる。
【符号の説明】
【0176】
100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェース
105 コントローラ
106 外部メモリ
107 画像処理部
108 DVD−ROMドライブ
109 NIC
110 音声処理部
111 マイク
201 サーバ装置
221 端末装置
241 インターネット
301 記憶部
302 送信部
303 受信部
304 推定部
305 更新部
601 受信部
602 送信部

【特許請求の範囲】
【請求項1】
複数の端末装置のそれぞれと情報の送受を行うサーバ装置であって、
前記複数の端末装置のそれぞれと情報を送受した時刻の履歴と、当該複数の端末装置のそれぞれに対応付けられる送信予定時刻と、が、記憶される記憶部、
現在時刻が前記複数の送信予定時刻のいずれかになると、当該送信予定時刻に対応付けられる端末装置へ端末宛情報を送信する送信部、
前記複数の端末装置のうち、前記端末宛情報を受信した端末装置から送信された、当該端末宛情報に対応付けられるサーバ宛情報を受信する受信部、
前記記憶された履歴と、前記記憶された複数の送信予定時刻のそれぞれと、から、当該送信予定時刻における端末宛情報の送信に対応付けられるサーバ宛情報が前記受信部により受信される受信予定時刻を推定する推定部、
前記記憶された複数の送信予定時刻と、当該複数の送信予定時刻に対して前記推定部により推定される複数の受信予定時刻と、が、重ならないように、当該送信予定時刻を更新する更新部
を備えることを特徴とするサーバ装置。
【請求項2】
請求項1に記載のサーバ装置であって、
前記サーバ装置は、前記複数の端末装置R[1],R[2],…,R[N]のそれぞれと、所定時間Tに1回、間欠的に情報の送受を行い、
前記記憶部には、整数i = 1,2,…,Nのそれぞれについて、前記端末装置R[i]に最後に端末宛情報を送信した後に当該送信に呼応した当該端末装置R[i]から最後にサーバ宛情報が受信されるまでの送受間隔m[i]が、前記時刻の履歴として記憶され、当該端末装置R[i]に次に端末宛情報を送信すべき送信予定時刻s[i]が、記憶され、
前記送信部は、整数j = 1,2,…,Nのそれぞれについて、現在時刻が前記送信予定時刻s[j]になると、前記端末装置R[j]へ端末宛情報を送信し、
前記受信部は、整数k = 1,2,…,Nのそれぞれについて、前記端末装置R[k]から送信されたサーバ宛情報を受信し、
前記更新部は、前記端末装置R[k]から送信されたサーバ宛情報が受信されると、現在時刻と前記送信予定時刻s[k]との差により、前記送受間隔m[k]を更新し、
前記推定部は、前記送受間隔m[k]が更新された後、前記送信予定時刻s[k]の候補値として値rが与えられると、前記送信予定時刻
s[1], s[2],…, s[k-1],r, s[k+1],…, s[N]
のそれぞれに送信される端末宛情報に対応付けられるサーバ宛情報を受信する受信予定時刻を
s[1]+m[1], s[2]+m[2],…, s[k-1]+m[k-1],r+m[k], s[k+1]+m[k+1],…, s[N]+m[2]
と推定し、
前記更新部は、前記送信予定時刻s[k]の現在の値に前記所定時間Tを加算した時刻pを取得し、当該取得された時刻pを前記所定時間Tで割った結果の切捨てfloor(p/T)に対して定められる時刻floor(p/T)×Tから時刻〔floor(p/T)+1〕×Tまでの間の、いずれかの時刻から、前記送信予定時刻s[k]の次の値qを選択し、前記選択された次の値qにより、前記送信予定時刻s[k]を更新し、
を備え、
前記更新部は、
(1)前記推定部に前記送信予定時刻s[k]の候補値として当該値pを与えた場合の送信予定時刻
s[1], s[2],…, s[k-1], p, s[k+1],…, s[N]
ならびに受信予定時刻
s[1]+m[1], s[2]+m[2],…, s[k-1]+m[k-1], p+m[k], s[k+1]+m[k+1],…, s[N]+m[2]
を整列した時刻列における各時刻の間隔の最小値と、
(2)前記推定部に前記送信予定時刻s[k]の候補値として当該次の値qを与えた場合の送信予定時刻
s[1], s[2],…, s[k-1], q, s[k+1],…, s[N]
ならびに
s[1]+m[1], s[2]+m[2],…, s[k-1]+m[k-1], q+m[k], s[k+1]+m[k+1],…, s[N]+m[2]
を整列した時刻列における各時刻の間隔の最小値と、
を対比して、上記(2)の間隔の最小値が、上記(1)の間隔の最小値以上となるように、
当該次の値qを選択する
ことを特徴とするサーバ装置。
【請求項3】
請求項2に記載のサーバ装置であって、
前記更新部は、前記時刻floor(p/T)×Tから前記時刻〔floor(p/T)+1〕×Tまでの間から、前記次の値qの候補を複数選択し、当該候補ならびに前記値pのそれぞれに対する前記間隔の最小値を求め、当該最小値が最大である値を、前記次の値qとして選択する
ことを特徴とするサーバ装置。
【請求項4】
請求項3に記載のサーバ装置であって、
前記更新部は、前記時刻floor(p/T)×Tから前記時刻〔floor(p/T)+1〕×Tまでの間を所定の間隔で区切る時刻のそれぞれを、前記次の値qの候補として選択する
ことを特徴とするサーバ装置。
【請求項5】
請求項3に記載のサーバ装置であって、
前記更新部は、前記時刻floor(p/T)×Tから前記時刻〔floor(p/T)+1〕×Tまでの間から、前記次の値qの候補をランダムに複数選択する
ことを特徴とするサーバ装置。
【請求項6】
複数の端末装置と、サーバ装置と、を備える通信システムであって、
(a)前記サーバ装置は、
前記複数の端末装置のそれぞれと情報を送受した時刻の履歴と、当該複数の端末装置のそれぞれに対応付けられる送信予定時刻と、が、記憶される記憶部、
現在時刻が前記複数の送信予定時刻のいずれかになると、当該送信予定時刻に対応付けられる端末装置へ端末宛情報を送信するサーバ側送信部、
前記複数の端末装置のうち、前記端末宛情報を受信した端末装置から送信された、当該端末宛情報に対応付けられるサーバ宛情報を受信するサーバ側受信部、
前記記憶された履歴と、前記記憶された複数の送信予定時刻のそれぞれと、から、当該送信予定時刻における端末宛情報の送信に対応付けられるサーバ宛情報が前記受信部により受信される受信予定時刻を推定する推定部、
前記記憶された複数の送信予定時刻と、当該複数の送信予定時刻に対して前記推定部により推定される複数の受信予定時刻と、が、重ならないように、当該送信予定時刻を更新する更新部
を備え、
(b)前記端末装置は、
前記サーバ装置から送信された端末宛情報を受信する端末側受信部、
前記端末宛情報を受信するごとに、前記サーバ装置へ、サーバ宛情報を送信する端末側送信部
を備える
ことを特徴とする通信システム。
【請求項7】
複数の端末装置のそれぞれと情報の送受を行うサーバ装置が実行するサービス方法であって、前記サーバ装置は、記憶部、送信部、受信部、推定部、更新部を備え、前記記憶部には、前記複数の端末装置のそれぞれと情報を送受した時刻の履歴と、当該複数の端末装置のそれぞれに対応付けられる送信予定時刻と、が、記憶され、
前記送信部が、現在時刻が前記複数の送信予定時刻のいずれかになると、当該送信予定時刻に対応付けられる端末装置へ端末宛情報を送信する送信工程、
前記受信部が、前記複数の端末装置のうち、前記端末宛情報を受信した端末装置から送信された、当該端末宛情報に対応付けられるサーバ宛情報を受信する受信工程、
前記推定部が、前記記憶された履歴と、前記記憶された複数の送信予定時刻のそれぞれと、から、当該送信予定時刻における端末宛情報の送信に対応付けられるサーバ宛情報が前記受信部により受信される受信予定時刻を推定する推定工程、
前記更新部が、前記記憶された複数の送信予定時刻と、当該複数の送信予定時刻に対して前記推定部により推定される複数の受信予定時刻と、が、重ならないように、当該送信予定時刻を更新する更新工程
を備えることを特徴とするサービス方法。
【請求項8】
コンピュータに、複数の端末装置のそれぞれと情報の送受を行わせるプログラムであって、前記プログラムは、前記コンピュータを、
前記複数の端末装置のそれぞれと情報を送受した時刻の履歴と、当該複数の端末装置のそれぞれに対応付けられる送信予定時刻と、が、記憶される記憶部、
現在時刻が前記複数の送信予定時刻のいずれかになると、当該送信予定時刻に対応付けられる端末装置へ端末宛情報を送信する送信部、
前記複数の端末装置のうち、前記端末宛情報を受信した端末装置から送信された、当該端末宛情報に対応付けられるサーバ宛情報を受信する受信部、
前記記憶された履歴と、前記記憶された複数の送信予定時刻のそれぞれと、から、当該送信予定時刻における端末宛情報の送信に対応付けられるサーバ宛情報が前記受信部により受信される受信予定時刻を推定する推定部、
前記記憶された複数の送信予定時刻と、当該複数の送信予定時刻に対して前記推定部により推定される複数の受信予定時刻と、が、重ならないように、当該送信予定時刻を更新する更新部
として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2010−198542(P2010−198542A)
【公開日】平成22年9月9日(2010.9.9)
【国際特許分類】
【出願番号】特願2009−45443(P2009−45443)
【出願日】平成21年2月27日(2009.2.27)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】