説明

通信システム、中継サーバ、プログラム、および通信方法

【課題】 不定期に発生する情報を少ない遅延で通信端末に配信することの可能な通信シ
ステムを提供する。
【解決手段】 通信システム100は、第1プロトコルに従ってリクエスト/レスポンス
型の通信を行う通信端末1aと、第2プロトコルに従って通信を行うメインサーバ5と、
両者の間で通信を中継する中継サーバ3を備えている。中継サーバは、メインサーバから
通信端末宛てのデータを受信し、その通信端末のユーザIDに関連付けて記憶装置32に
記憶する。中継サーバは、通信端末からユーザIDと共にリクエストを受信すると、その
ユーザIDに関連付けられた通信端末宛てのデータを記憶装置から読み取り、第1プロト
コルに準拠したデータに変換して通信端末に送信する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、サーバから通信端末に情報を配信する通信システムに関する。
【背景技術】
【0002】
インターネットなどの通信ネットワークの普及に伴い、複数のプレイヤが同時に参加可
能なオンラインゲームの普及が進んでいる。オンラインゲームを提供する通信システムで
は、プレイヤが各自の通信端末に入力した情報を他のプレイヤの通信端末に配信する必要
がある。
【0003】
下記の特許文献1および2には、オンラインゲームに伴うゲーム情報の配信技術が開示
されている。特許文献1に開示されるゲーム情報配信システムは、コマンド選択式のゲー
ムシステムを採用することにより、少ない通信回数でも楽しめるオンラインゲームを提供
する。
【0004】
特許文献2に開示される通信システムは、端末装置の動作とは非同期にゲームサーバ側
で発生するゲーム情報を少ない遅延で端末装置へ通知することを可能にする。この通信シ
ステムでは、ゲームサーバが端末装置からリクエストを受信すると、端末に通知すべきゲ
ーム情報の有無を確認し、通知すべきゲーム情報が存在しない場合には、ゲーム情報が発
生するまで待機する。ゲーム情報が発生する前に最大待機時間が経過した場合は、ゲーム
サーバは、情報が発生していない旨を端末装置に通知する。これにより、ゲーム情報が発
生したときには、そのゲーム情報を大きく遅延させることなく端末装置に通知することが
できる。
【特許文献1】特許第3222870号
【特許文献2】特開2004−118325号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
大規模オンラインロールプレイングゲーム(Massively Multi-player Online Role Pla
ying Game:MMORPG)のように、多数のプレイヤが共通の仮想空間(ゲーム空間)
内で各自のキャラクタを操作するオンラインゲームが知られている。このようなオンライ
ンゲームは、通信ネットワークを介してパーソナルコンピュータをゲームサーバに接続し
てプレイするのが一般的である。しかし、近年では、このようなオンラインゲームを、携
帯電話機などの携帯型通信端末を使用してプレイしたいというユーザが増えている。これ
に伴い、パーソナルコンピュータと携帯型通信端末の双方に対応した、いわゆるマルチプ
ラットフォームのゲームシステムを構築する必要が生じている。
【0006】
MMORPGでは、多数のプレイヤが同時にゲームサーバに接続し、各自の通信端末か
らランダムなタイミングで情報を発信する。一つの通信端末からの情報発信に応じて、ゲ
ームサーバでは他の通信端末に配信すべきイベント情報が生成される。MMORPGでは
、多数のプレイヤがゲームサーバに接続するので、イベント情報は不定期に、しかも頻繁
に発生することになる。
【0007】
各通信端末は、ユーザによって入力された情報をゲームサーバに送信すると共に、ゲー
ムサーバでイベント情報が発生するたびに、そのイベント情報をゲームサーバから取得し
なければならない。一般に、パーソナルコンピュータとゲームサーバとの通信では、通信
プロトコルとしてTCP(Transmission Control Protocol)が使用される。TCP通信
では、ゲームサーバは通信端末に自発的にイベント情報を配信することができるので、リ
アルタイム性の高いMMORPGを適切に提供することが可能である。
【0008】
しかし、携帯電話機のなかには、データ通信用のプロトコルとしてHTTP(HyperTex
t Transfer Protocol)しか扱えない機種が少なからず存在する。携帯電話機用のHTT
Pには、(1)携帯電話機とサーバとの間で通信セッションを維持し続けることができな
い、(2)リクエスト/レスポンス型の通信プロトコルなので、メインサーバから通信端
末に自発的に情報を配信することができない。(3)リクエストを発信し、それに対する
レスポンスを受け取るまでは新たにリクエストを発信できない、(4)単位時間当たりの
リクエスト発信回数に上限が定められている、といった通信上の様々な制約が存在する。
この制約が、携帯電話機を用いたMMORPGの実現を困難にしている。
【0009】
特許文献2で例示される麻雀ゲームのように、少数のプレイヤが所定の順序で交代しな
がら操作を行うゲームでは、プレイヤが他のプレイヤの操作を待ってから自分の操作を行
うため、リアルタイム性が低い。このため、HTTPを用いた通信でも大きな支障なくゲ
ームを進行させることができる。これに対し、MMORPGのように同時進行性またはリ
アルタイム性の高いゲームでは、各通信端末は、自身に入力された情報をゲームサーバに
送信する一方で、自身の動作とは非同期にゲームサーバで発生するイベント情報をできる
限り少ない遅延で受信する必要がある。
【0010】
しかし、上記の制約を伴うHTTPを用いる場合、ゲームサーバは通信端末からのリク
エストを受けなければイベント情報を通信端末に配信することができない。しかも、単位
時間当たりのリクエスト発信回数が制限されているため、リクエストの発信間隔を自由に
短縮することもできない。したがって、イベント情報の配信に遅延が生じやすく、リアル
タイム性の高いオンラインゲームを携帯電話機を使用して快適にプレイすることが困難に
なっている。このような問題点は、オンラインゲームに限らず、迅速な情報配信が要求さ
れる他の情報配信サービスでも同様に存在する。
【0011】
本発明は、上記に鑑みなされたもので、不定期に発生する情報を少ない遅延で通信端末
に配信することの可能な通信システム、中継サーバ、プログラム、および通信方法を提供
することを課題とする。
【課題を解決するための手段】
【0012】
本発明の一つの側面は、通信システムに関する。この通信システムは、第1プロトコル
に従ってリクエスト/レスポンス型の通信を行う通信端末と、第1プロトコルと異なる第
2プロトコルに従って通信を行うメインサーバと、第1プロトコルに従って通信端末と通
信すると共に、第2プロトコルに従ってメインサーバと通信する中継サーバと、この中継
サーバがアクセスすることの可能な記憶装置とを備えている。中継サーバは、通信端末か
らユーザIDと共に送信される第1リクエストに応じてメインサーバとの通信接続を確立
する。中継サーバは、メインサーバから通信端末宛てのデータを受信すると、そのデータ
をユーザIDに関連付けて記憶装置に記憶する。また、中継サーバは、通信端末からユー
ザIDと共に第2リクエストを受信すると、そのユーザIDに関連付けられた通信端末宛
てのデータを記憶装置から読み取り、第1プロトコルに準拠したデータに変換して、その
通信端末に送信する。メインサーバは、通信端末宛てのデータが発生すると、中継サーバ
からのリクエストを待つことなく、その通信端末宛てのデータを第2プロトコルに従って
中継サーバに送信してもよい。
【0013】
第1プロトコルに従ってリクエスト/レスポンス型の通信を行う通信端末に対しては、
メインサーバが通信端末からのリクエストを待たずに自発的に情報を配信することはでき
ない。しかし、メインサーバは、通信端末と異なる第2プロトコルに従って中継サーバと
通信するので、中継サーバからのリクエストを待つことなく、中継サーバに対して自発的
な情報配信を行うことが可能である。このため、通信端末宛てのデータがメインサーバで
不定期に発生しても、中継サーバがそれらのデータをメインサーバから逐次受信して記憶
装置に記憶し、通信端末からリクエストを受信したときに、一括して通信端末に送信する
ことができる。したがって、通信端末のリクエスト発信間隔が制限されていても、遅延を
抑えて通信端末に情報を配信することができる。
【0014】
メインサーバには、第2のプロトコルに従って通信を行う他の通信端末が中継サーバを
介することなく接続されていてもよい。第1のプロトコルを用いる通信端末に関しては中
継サーバがプロトコルの変換を行うので、メインサーバは、異なるプロトコルを使用する
通信端末を、プロトコルの違いを意識することなく同じように取り扱うことができる。し
たがって、本発明は、異なるプロトコルを使用する通信端末が共存するマルチプラットフ
ォーム環境を容易に実現することができる。
【0015】
中継サーバは、第2リクエストを受信してから所定の待機時間が経過した後に、通信端
末宛てのデータを記憶装置から読み取ってもよい。この場合、待機時間の間に中継サーバ
がメインサーバから受信した通信端末宛てデータが、次回のリクエストではなく当該第2
リクエストに対するレスポンスとして通信端末に送信されることになる。第2リクエスト
が、メインサーバにデータを送信して処理を依頼するリクエストであれば、中継サーバが
その処理結果を待機時間中に受信し、当該第2リクエストに対するレスポンスとして通信
端末に送信することが可能になる。これにより、通信端末が依頼したメインサーバによる
処理の結果を、少ない遅延で通信端末に配信することができる。
【0016】
中継サーバは、第2リクエストを通信端末から受信すると、メインサーバ宛てのデータ
が第2リクエストに付加されているか否かを判断し、メインサーバ宛てのデータが前記第
2リクエストに付加されていると判断したときは、当該メインサーバ宛てのデータを第2
プロトコルに準拠したデータに変換してメインサーバに送信すると共に、第2リクエスト
を受信してから所定の待機時間が経過した後に、通信端末宛てのデータを記憶装置から読
み取ってもよい。更に、中継サーバは、メインサーバ宛てのデータが第2リクエストに付
加されていないと判断したときは、待機時間の経過を待つことなく、通信端末宛てのデー
タを記憶装置から読み取ってもよい。
【0017】
上記の構成によれば、中継サーバは、メインサーバ宛てデータが第2リクエストに付加
されているときにだけ、待機時間の経過を待つ。第2リクエストが、メインサーバにデー
タを送信して処理を依頼するリクエストであれば、中継サーバがその処理結果を待機時間
中に受信し、当該第2リクエストに対するレスポンスとして通信端末に送信することが可
能になる。これにより、通信端末が依頼したメインサーバによる処理の結果を、少ない遅
延で通信端末に配信することができる。また、メインサーバ宛てデータが第2リクエスト
に付加されていないときは、記憶装置に格納された通信端末宛てデータをより迅速に通信
端末に配信することができる。
【0018】
通信端末は、中継サーバに所定の時間間隔で定期的に第2リクエストを送信してもよい
。上記の待機時間は、この時間間隔より短いことが好ましい。待機時間をリクエストの間
隔よりも短くすることで、通信端末へのデータ配信の遅延をいっそう確実に抑えることが
できる。
【0019】
第1のプロトコルでは、単位時間当たりのリクエスト発信回数の上限が定められていて
もよい。この場合でも、記憶装置に蓄積された通信端末宛てデータが1回のリクエストに
応じて一括して通信端末に送信されるので、通信端末へのデータ配信の遅延を抑えること
ができる。
【0020】
本発明の別の側面は、通信システム内に設置される中継サーバに関する。この通信シス
テムは、第1プロトコルに従ってリクエスト/レスポンス型の通信を行う通信端末と、第
1プロトコルと異なる第2プロトコルに従って通信を行うメインサーバと、記憶装置とを
備えている。中継サーバは、第1プロトコルに従って通信端末と通信すると共に、第2プ
ロトコルに従ってメインサーバと通信し、記憶装置にアクセスすることが可能である。こ
の中継サーバは、通信端末からユーザIDと共に送信される第1リクエストに応じてメイ
ンサーバとの通信接続を確立する通信接続手段と、メインサーバから通信端末宛てのデー
タを受信すると、そのデータをユーザIDに関連付けて記憶装置に記憶する記憶手段と、
通信端末からユーザIDと共に第2リクエストを受信すると、そのユーザIDに関連付け
られた通信端末宛てのデータを記憶装置から読み取り、第1プロトコルに準拠したデータ
に変換する第1変換手段と、この変換されたデータを通信端末に送信する第1送信手段と
を備えている。
【0021】
本発明の更に別の側面は、通信システム内に配置される中継サーバを制御するプログラ
ムに関する。この通信システムは、第1プロトコルに従ってリクエスト/レスポンス型の
通信を行う通信端末と、第1プロトコルと異なる第2プロトコルに従って通信を行うメイ
ンサーバと、記憶装置とを備えている。中継サーバは、第1プロトコルに従って通信端末
と通信すると共に、第2プロトコルに従ってメインサーバと通信し、記憶装置にアクセス
することが可能である。このプログラムは、通信端末からユーザIDと共に送信される第
1リクエストに応じてメインサーバとの通信接続を確立するステップと、メインサーバか
ら通信端末宛てのデータを受信すると、そのデータをユーザIDに関連付けて記憶装置に
記憶するステップと、通信端末からユーザIDと共に第2リクエストを受信すると、その
ユーザIDに関連付けられた通信端末宛てのデータを記憶装置から読み取り、第1プロト
コルに準拠したデータに変換するステップと、この第1プロトコルに準拠したデータを通
信端末に送信するステップとを中継サーバに実行させる。
【0022】
本発明の更に別の側面は、第1プロトコルに従ってリクエスト/レスポンス型の通信を
行う通信端末と、第1プロトコルと異なる第2プロトコルに従って通信を行うメインサー
バと、第1プロトコルに従って通信端末と通信すると共に、第2プロトコルに従ってメイ
ンサーバと通信する中継サーバと、中継サーバがアクセスすることの可能な記憶装置とを
備える通信システムにおいて、通信端末とメインサーバとの間で通信を行う方法に関する
。この方法は、通信端末が、ユーザIDと共に第1リクエストを中継サーバに送信するス
テップと、中継サーバが、第1リクエストに応じてメインサーバとの通信接続を確立する
ステップと、メインサーバが、通信端末宛てのデータを中継サーバに送信するステップと
、中継サーバが、通信端末宛ての当該データを、ユーザIDに関連付けて記憶装置に記憶
するステップと、通信端末が、ユーザIDと共に第2リクエストを中継サーバに送信する
ステップと、中継サーバが、第2リクエストと共に送信されたユーザIDに関連付けられ
た通信端末宛てのデータを記憶装置から読み取り、第1プロトコルに準拠したデータに変
換するステップと、中継サーバが、この第1プロトコルに準拠したデータを通信端末に送
信するステップとを備えている。
【0023】
本発明の更に別の側面は、第1プロトコルに従ってリクエスト/レスポンス型の通信を
行う通信端末と、第1プロトコルと異なる第2プロトコルに従って通信を行うメインサー
バと、第1プロトコルに従って通信端末と通信すると共に、第2プロトコルに従ってメイ
ンサーバと通信する中継サーバと、中継サーバがアクセスすることの可能な記憶装置とを
備える通信システムにおいて、メインサーバを制御するプログラムに関する。中継サーバ
は、通信端末からユーザIDと共に送信される第1リクエストに応じてメインサーバとの
通信接続を確立し、メインサーバから通信端末宛てのデータを受信すると、そのデータを
ユーザIDに関連付けて記憶装置に記憶し、通信端末からユーザIDと共に第2リクエス
トを受信すると、そのユーザIDに関連付けられた通信端末宛てのデータを記憶装置から
読み取り、第1プロトコルに準拠したデータに変換して通信端末に送信する。このプログ
ラムは、通信端末宛てのデータを中継サーバに送信するステップをメインサーバに実行さ
せる。
【0024】
本発明の更に別の側面は、第1プロトコルに従ってリクエスト/レスポンス型の通信を
行う通信端末と、第1プロトコルと異なる第2プロトコルに従って通信を行うメインサー
バと、第1プロトコルに従って通信端末と通信すると共に、第2プロトコルに従ってメイ
ンサーバと通信する中継サーバと、中継サーバがアクセスすることの可能な記憶装置とを
備える通信システムにおいて、通信端末を制御するプログラムに関する。中継サーバは、
通信端末からユーザIDと共に送信される第1リクエストに応じてメインサーバとの通信
接続を確立し、メインサーバから通信端末宛てのデータを受信すると、そのデータをユー
ザIDに関連付けて記憶装置に記憶し、通信端末からユーザIDと共に第2リクエストを
受信すると、そのユーザIDに関連付けられた通信端末宛てのデータを記憶装置から読み
取り、第1プロトコルに準拠したデータに変換して通信端末に送信する。このプログラム
は、ユーザIDと共に第1リクエストを中継サーバに送信するステップと、ユーザIDと
共に第2リクエストを中継サーバに送信するステップと、第1プロトコルに準拠した上記
のデータを受信するステップとを通信端末に実行させる。
【発明の効果】
【0025】
本発明は、通信端末とメインサーバとの通信を中継する中継サーバを用いることで、不
定期に発生する情報を少ない遅延で通信端末に配信することができる。この結果、情報の
迅速な配信が要求される通信サービスを通信端末に適切に提供することができる。
【発明を実施するための最良の形態】
【0026】
以下、添付図面を参照しながら本発明の実施形態を詳細に説明する。なお、図面の説明
において同一の要素には同一の符号を付し、重複する説明を省略する。
【0027】
第1実施形態
図1は、本発明の第1の実施形態に係る通信システムの構成を示す概略図である。この
通信システム100は、多数のユーザが通信端末1を操作して共通のゲームをプレイする
オンラインゲームサービスを提供する。図1には、通信端末1の例として、携帯電話機1
aおよびパーソナルコンピュータ1bが挙げられている。本明細書において、携帯電話機
にはPHS(PersonalHandy-phone System)も含まれる。通信端末1の他の例としては、
通信機能を有するゲーム機やPDA(Personal Data Assistants)などを挙げることがで
きる。通信端末1は、携帯電話機などの移動体端末であってもよいし、デスクトップ型コ
ンピュータなどの固定端末であってもよい。
【0028】
通信システム100は、二つのサーバ、すなわち中継サーバ3およびゲームサーバ5を
含んでいる。通信端末1の各々は、通信ネットワーク2を介してゲームサーバ5と通信を
行うことができる。携帯電話機1aは、基地局6および通信ネットワーク2を介して中継
サーバ3に接続し、その中継サーバ3を介してゲームサーバ5と通信を行う。一方、パー
ソナルコンピュータ1bは、中継サーバ3を介さずにゲームサーバ5と通信を行う。
【0029】
なお、図1では、通信ネットワーク2に携帯電話機1aおよびパーソナルコンピュータ
1bが一つずつ接続されているが、複数の携帯電話機1aおよびパーソナルコンピュータ
1bが通信ネットワーク2に接続されていてもよい。
【0030】
携帯電話機1aは、所定の通信プロトコルに従ってリクエスト/レスポンス型の通信を
行う。本実施形態では、携帯電話機1aは通信プロトコルとしてHTTP(HyperTextTra
nsfer Protocol)を使用する。一方、パーソナルコンピュータ1bは、TCP(Transmis
sion Control Protocol)に従ってゲームサーバ5と通信を行う。
【0031】
図2は、携帯電話機1aの構成を概略的に示すブロック図である。携帯電話機1aは、
CPU(CentralProcessing Unit:中央処理装置)10、RAM(Random Access Memory
:ランダムアクセスメモリ)12、ストレージ部14、通信装置16、入力装置20、お
よび表示装置22を有する。これらの構成要素はバス24によって相互に接続されている
。データおよび制御信号はバス24を通じてこれらの構成要素間を伝送される。
【0032】
CPU10は、OS(OperatingSystem)やOS上で動作するアプリケーションなどの
プログラムを実行して携帯電話機1の動作を制御する制御演算装置である。本実施形態で
は、CPU10は、主としてゲームアプリケーションを実行する。
【0033】
RAM12は、CPU10がプログラムを実行するために使用する主記憶装置である。
RAM12には、CPU10が実行するプログラムおよびその実行に必要なデータが格納
される。後述するように、ゲームアプリケーションの実行中、RAM12には送信バッフ
ァ18が設けられる。送信バッファ18は、携帯電話機1aがゲームサーバ5に送信すべ
きデータを一時的に記憶するための記憶領域である。
【0034】
ストレージ部14は、携帯電話機1の補助記憶装置であり、内蔵メモリ14aと、外付
けメモリ15用の読み取り装置14bとを含んでいる。内蔵メモリ14aは、携帯電話機
1aの内部に固定された記憶装置である。内蔵メモリ14aは、例えば、フラッシュメモ
リなどの不揮発性メモリである。本実施形態では、携帯電話機1の電話番号やユーザID
がこの内蔵メモリ14aに記憶されている。後述するゲームアプリケーションも内蔵メモ
リ14aに記憶されており、その起動時にRAM12に読み込まれる。読み取り装置14
bは、携帯電話機1に対して着脱自在の外付けメモリ15からデータを読み取るための装
置である。外付けメモリ15は、コンピュータ読み取り可能な記録媒体であり、例えば、
各種のカード型メモリである。このほかに、外付けメモリ15は、SIM(Subscriber I
dentify Module:加入者識別モジュール)カードであってもよい。電話番号やユーザID
は、外付けメモリ15に格納されていてもよい。
【0035】
通信装置16は、通信端末1と基地局6との通信を制御する。通信装置16は、電波送
受信用のアンテナのほかに、送話音声を電気信号に変換するマイクロホン、受話音声を出
力するスピーカ、音声信号を処理する信号処理回路などを含んでいる。通信装置16は、
CPU10の制御のもとで基地局6との間で電波を送受信し、通信ネットワーク2に無線
接続する。これにより、携帯電話機1と通信ネットワーク2との間で通信接続が確立され
る。通信装置16は、音声通信だけでなくデータ通信も実行することができる。
【0036】
入力装置20は、携帯電話機1に命令およびデータを入力するために使用される。入力
装置20は、ボタン、ダイヤル、スイッチなど、ユーザによって直接操作される装置であ
ってもよいし、ユーザの発する音声を判別する音声認識装置であってもよい。
【0037】
表示装置22は、CPU10の制御のもとで各種の情報を表示する。携帯電話機1a上
で実行されるゲームアプリケーションの出力画像も表示装置22上に表示される。
【0038】
中継サーバ3は、通信端末1とゲームサーバ5との間で通信を中継するコンピュータシ
ステムである。中継サーバ3は、単一のコンピュータから構成されていてもよいし、相互
に連携して動作する複数のコンピュータから構成されていてもよい。
【0039】
図3は、中継サーバ3の構成を示すブロック図である。中継サーバ3は、CPU30、
RAM32、ハードディスクドライブ34、通信装置36、入力装置38、および表示装
置40を有する。これらの構成要素はバス42によって相互に接続されている。データお
よび制御信号はバス42を通じてこれらの構成要素間を伝送される。
【0040】
CPU30は、中継サーバプログラムを実行して中継サーバ3の動作を制御する制御演
算装置である。この中継サーバプログラムは、中継サーバ3のOS(Operating System)
上で動作する。RAM32は、CPU30が中継サーバプログラムを実行するために使用
する主記憶装置である。RAM32には、中継サーバプログラムおよびその実行に必要な
データが格納される。後述するように、サーバプログラムは、RAM32に接続情報テー
ブル70を作成して保存する。
【0041】
ハードディスクドライブ34は、中継サーバ3の補助記憶装置であり、中継サーバプロ
グラムを格納している。中継サーバ3の起動時には、ハードディスクドライブ34からR
AM32に中継サーバプログラムが読み込まれ、CPU30によって実行される。このほ
かに、ハードディスクドライブ34には、プロトコル変換テーブル80が格納されている
。後述するように、プロトコル変換テーブル80は、携帯電話機1aで使用されるプロト
コルに準拠したデータとゲームサーバ5で使用されるプロトコルに準拠したデータとを相
互に変換するために使用される。本実施形態では、プロトコル変換テーブル80は、中継
サーバプログラムと共にハードディスクドライブ34からRAM32に読み込まれる。
【0042】
通信装置36は、携帯電話機1aまたはゲームサーバ5と中継サーバ3との間の通信を
制御する。通信装置36は、携帯電話機1aとの通信を制御する端末用インタフェース3
6aと、ゲームサーバ5との通信を制御するゲームサーバ用インタフェース36bを有し
ている。端末用インタフェース36aは、通信ネットワーク2を介して携帯電話機1aと
HTTPに従った通信を行う。一方、ゲームサーバ用インタフェース36bは、TCPに
従ってゲームサーバ5と通信する。なお、インタフェース36aおよび36bは、両者の
機能を兼ね備える単一のハードウェアに置き換えてもよい。
【0043】
入力装置38は、中継サーバ3に命令およびデータを入力するために使用される。表示
装置40は、CPU30の制御のもとで各種の情報を表示する。
【0044】
ゲームサーバ5は、クライアントである通信端末1にオンラインゲームサービスを提供
するコンピュータシステムである。サーバ5は、単一のコンピュータから構成されていて
もよいし、相互に連携して動作する複数のコンピュータから構成されていてもよい。
【0045】
図4は、ゲームサーバ5の構成を示すブロック図である。ゲームサーバ5は、CPU5
0、RAM52、ハードディスクドライブ54、通信装置56、入力装置58、および表
示装置60を有する。これらの構成要素はバス62によって相互に接続されている。デー
タおよび制御信号はバス62を通じてこれらの構成要素間を伝送される。
【0046】
CPU50は、ゲームサーバプログラムを実行してゲームサーバ5の動作を制御する制
御演算装置である。このゲームサーバプログラムは、ゲームサーバ5のOS上で動作する
。RAM52は、CPU50がゲームサーバプログラムを実行するために使用する主記憶
装置である。RAM52には、ゲームサーバプログラムおよびその実行に必要なデータが
格納される。
【0047】
ハードディスクドライブ54は、ゲームサーバ5の補助記憶装置であり、ゲームサーバ
プログラムのほかに、ゲームに関連する種々のデータが格納されている。ゲームサーバ5
の起動時には、ハードディスクドライブ54からRAM52にゲームサーバプログラムが
読み込まれ、CPU50によって実行される。
【0048】
通信装置56は、パーソナルコンピュータ1bまたは中継サーバ3とゲームサーバ5と
の間の通信を制御する。通信装置56は、通信ネットワーク2を介してパーソナルコンピ
ュータ1bとTCPに従った通信を行うと共に、中継サーバ3ともTCPに従って通信を
行う。通信装置56は、通信ネットワーク2および中継サーバ3の双方に接続されたルー
タを含んでいてもよい。
【0049】
入力装置58は、ゲームサーバ5に命令およびデータを入力するために使用される。表
示装置60は、CPU50の制御のもとで各種の情報を表示する。
【0050】
以下では、通信システム100の動作を説明する。ここで、携帯電話機1の動作は、ゲ
ームアプリケーションにしたがって制御される。このゲームアプリケーションは、ユーザ
による実行命令に応答して内蔵メモリ14aからRAM12に読み込まれ、CPU10に
よって実行される。また、中継サーバ3及びゲームサーバ5の動作は、各自のサーバプロ
グラムにしたがって制御される。
【0051】
まず、図5を参照しながら、中継サーバ3の機能を概略的に説明する。図5は、中継サ
ーバ3の機能ブロック図である。この図では、パーソナルコンピュータ1b、通信ネット
ワーク2および基地局6は省略されている。
【0052】
中継サーバ3は、携帯電話機1aとゲームサーバ5との通信を中継するために、プロト
コル変換部44およびバッファリング部46を有している。中継サーバプログラムの制御
下で、プロトコル変換部44は、CPU30、RAM32およびハードディスクドライブ
34を用いて実現され、バッファリング部46は、CPU30およびRAM32によって
実現される。
【0053】
プロトコル変換部44は、端末用インタフェース36aを介して携帯電話機1aからゲ
ームサーバ宛てのデータを受け取る。このデータは、例えば、オンラインゲームをプレイ
するなかでユーザが携帯電話機1aに入力した情報である。このゲームサーバ宛てデータ
はHTTPに準拠している。プロトコル変換部44は、このゲームサーバ宛てデータをT
CPに準拠したデータに変換し、ゲームサーバ用インタフェース36bに送る。ゲームサ
ーバ用インタフェース36bは、この変換されたデータをTCPに従ってゲームサーバ5
に送信し、ゲームサーバ5は通信装置56を用いてこのデータを受信する。
【0054】
ゲームサーバ5は、ある通信端末1に入力された情報を処理して、ゲームに関連する情
報を生成し、その情報をその通信端末1だけでなく他の通信端末1にも配信することによ
り、それらの通信端末1に共通のゲーム空間を提供する。このように、ゲームの進行に応
じてゲームサーバ5で発生し、通信端末1に同報される情報をイベント情報と呼ぶことに
する。ゲームサーバ5は、イベント情報が発生するたびに、そのイベント情報を自発的に
パーソナルコンピュータ1bや中継サーバ3に送信する。携帯電話機1a宛てのイベント
情報は、TCPに従って通信装置56から中継サーバ3に送信される。中継サーバ3は、
ゲームサーバ用インタフェース36bを用いてイベント情報を受信し、それをバッファリ
ング部46に送る。
【0055】
バッファリング部46は、中継サーバ3に接続中の各携帯電話機1aに対して個別に用
意されたバッファ記憶領域48を有している。バッファ記憶領域48は、RAM32内に
設けられ、必要に応じてハードディスクドライブ34に待避される。ゲームサーバ5から
送信された携帯電話機1a宛てのイベント情報は、その携帯電話機1aに対応するバッフ
ァ記憶領域48に格納される。したがって、ゲームサーバ5で特定の携帯電話機1a宛て
のイベント情報が発生するたびに、中継サーバ3は、ゲームサーバ5からのイベント情報
を逐次受信し、その携帯電話機1aに対応するバッファ記憶領域48にイベント情報を蓄
積する。
【0056】
後述するように、バッファ記憶領域48に蓄積されたイベント情報は、携帯電話機1a
からのリクエストに応答してバッファ記憶領域48から読み取られ、プロトコル変換部4
4に送られる。プロトコル変換部44は、TCPに準拠したイベント情報をHTTPに準
拠したデータに変換して、端末用インタフェース36aに送る。端末用インタフェース3
6aは、この変換されたデータを携帯電話機1aに送信する。このようにして、中継サー
バ3は、異なるプロトコルを使用する携帯電話機1aおよびゲームサーバ5間の通信を中
継する。
【0057】
以下では、図6を参照しながら、ユーザが携帯電話機1a上でゲームアプリケーション
を起動してゲームをプレイするときに、携帯電話機1a、中継サーバ3及びゲームサーバ
5が実行する処理の流れを説明する。ここで図6は、携帯電話機1a、中継サーバ3およ
びゲームサーバ5間の通信の一例を時系列的に示すシーケンス図である。
【0058】
図6に示されるように、携帯電話機1a上でゲームアプリケーションが起動され、ユー
ザがアカウント情報、すなわちユーザ名およびパスワードを携帯電話機1aに入力すると
、携帯電話機1aは、中継サーバ3との間に通信接続を確立し、初回のリクエストR1を
中継サーバ3に送信する。携帯電話機1aから発信されるリクエストには常にユーザID
が付加されているが、このリクエストR1には、ユーザによって入力されたアカウント情
報が更に付加されている。
【0059】
中継サーバ3は、リクエストR1を受信すると、ゲームサーバ5との間に通信接続を確
立する。具体的には、中継サーバプログラムは、ソケットを作成し、そのソケットをゲー
ムサーバ5側のソケットと接続する。ここで、ソケットとは、通信を行うプログラムが用
意する仮想的な通信インタフェースであり、プログラムはソケットに対してデータを読み
書きすることによってデータを送受信することができる。ソケットの接続は、中継サーバ
3のOSによって制御される。その際には、ゲームサーバ5のIPアドレス(Internet P
rotocol Address)およびポート番号が使用される。
【0060】
なお、コンピュータ同士の通信接続はコネクションとも呼ばれる。HTTPに従う携帯
電話機1aと中継サーバ3との通信は、ステートレス型、すなわち携帯電話機1aと中継
サーバ3の間でコネクションが維持されず、リクエスト発行のたびに接続をし直す形式で
ある。このような通信形式において、リクエストとそれに対するレスポンスで完結する一
つの接続単位はセッションと呼ばれる。
【0061】
中継サーバ3は、携帯電話機1aからのリクエストに応じてゲームサーバ5とのコネク
ションを確立すると、ソケット情報を作成し、携帯電話機1aから送信されたユーザID
に関連付けて接続情報テーブル70に登録する。ソケット情報は、中継サーバ3とゲーム
サーバ5とのコネクションを、リクエストを発した携帯電話機1aと中継サーバ3とのセ
ッションに対応付ける。ソケット情報については、後でより詳しく説明する。
【0062】
図7は、接続情報テーブル70の構成を示す概略図である。接続情報テーブル70は、
上述したRAM32内のバッファ記憶領域48に格納されている。接続情報テーブル70
には、接続レコード72が列挙される。接続レコード72は、中継サーバ3と携帯電話機
1aとの通信接続と、中継サーバ3とゲームサーバ5との通信接続とを一対一に対応させ
るためのデータである。図7に示されるように、接続レコード72は、相互に関連付けら
れたユーザID、ソケット情報、最新リクエスト日時、バッファデータ、その他のデータ
を含んでいる。
【0063】
中継サーバ3は、携帯電話機1aからのリクエストに付加されたユーザIDと、上述の
ソケット情報とを相互に関連付けて、一つの接続レコード72を作成し、接続情報テーブ
ル70に追加する。これにより、携帯電話機1aと中継サーバ3とのセッションが、中継
サーバ3とゲームサーバ5とのコネクションに一対一に対応付けられることになる。
【0064】
ユーザIDは、携帯電話機1aを他の携帯電話機1aやパーソナルコンピュータ1bと
区別するために使用されるユニークな識別データであり、本実施形態では、携帯電話機1
aの電話番号と一対一に対応している。上述のように、ユーザIDは携帯電話機1a内の
内蔵メモリ14aに格納されており、リクエストの発信時に内蔵メモリ14aからRAM
12に読み込まれる。
【0065】
ソケット情報は、ゲームサーバ5とのコネクションと携帯電話機1aとのセッションを
一対一に対応付けるデータである。中継サーバ3に複数の携帯電話機1aが接続されてい
る場合、中継サーバ3は、これらの携帯電話機1aの各々に対して別個にゲームサーバ5
とのコネクションを確立する。中継サーバ3は、携帯電話機1aとのセッションを通じて
リクエストを受け取ると、ソケット情報を用いて、そのセッションに対応するゲームサー
バ5とのコネクションを特定する。そして、中継サーバ3は、そのコネクションを通じて
ゲームサーバ5にデータを送信したり、あるいはそのコネクションを通じてゲームサーバ
5から受信したデータを携帯電話機1aに送信する。具体的には、ソケット情報は、ゲー
ムサーバ5とのコネクションに使用されるゲームサーバ5のIPアドレスおよびポート番
号と、そのコネクションに対応する中継サーバ3側のIPアドレスおよびポート番号との
組み合わせに対応付けられている。これらのIPアドレスおよびポート番号は、中継サー
バ3のOSによって管理されている。
【0066】
最新リクエスト日時は、対応するユーザIDを有する携帯電話機1aからリクエストを
受信した最新の日時であり、中継サーバ3が携帯電話機1aからリクエストを受信するた
びに更新される。中継サーバ3は、各接続レコード72内の最新リクエスト日時を現在時
刻と定期的に比較し、最新のリクエスト日時から所定の時間が経過した接続レコード72
を発見すると、その接続レコード72に対応するセッションはすでに切断されたものとみ
なして、その接続レコード72を削除する。
【0067】
バッファデータは、中継サーバ3がゲームサーバ5から受信した携帯電話機1a宛ての
データである。このバッファデータの例は、携帯電話機1aがゲームサーバ5に送信した
データの処理結果を示すデータや、他の通信端末1の操作に応じて発生したイベント情報
である。
【0068】
再び図6を参照する。中継サーバ3は、ゲームサーバ5とのコネクションを確立すると
、携帯電話機1aから受信したアカウント情報をゲームサーバ5に送信する。ゲームサー
バ5は、そのアカウント情報を用いてログイン認証を実行する。
【0069】
図8は、図6に示されるシーケンスにおいてゲームサーバ5が実行する処理を示すフロ
ーチャートである。ゲームサーバ5は、中継サーバ3とのコネクションを確立した後(ス
テップS802)、中継サーバ3からアカウント情報を受信し(ステップS804)、そ
のアカウント情報が有効か否かを判断する(ステップS806)。この判断は、正規に登
録されたアカウント情報を格納するアカウントデータベース内において、中継サーバ3か
ら受信したアカウント情報を検索することにより行われる。アカウントデータベース内に
アカウント情報が発見されれば、そのアカウント情報は有効と判断され、発見されなけれ
ば無効と判断される。アカウントデータベースは、ハードディスクドライブ54に格納さ
れていてもよいし、ゲームサーバ5がアクセス可能な外部の記憶装置に格納されていても
よい。
【0070】
アカウント情報が無効と判断されると(ステップS806にてNo)、ゲームサーバ5
は、ログイン拒否通知を中継サーバ3に送信し、中継サーバ3とのコネクションを切断す
る(ステップS807)。これに応じて中継サーバ3は、ログイン拒否通知を携帯電話機
1aに送信し、携帯電話機1aとのセッションを閉じる。
【0071】
一方、アカウント情報が有効と判断されると(ステップS806にてYes)、ゲーム
サーバ5はログイン処理を実行する(ステップS808)。ゲームサーバ5は、そのアカ
ウント情報に対応するプレイヤキャラクタのデータをハードディスクドライブ34または
外部の記憶装置から取得する。また、ゲームサーバ5は、そのプレイヤキャラクタをゲー
ム空間に出現させるための処理を実行する。
【0072】
次に、ゲームサーバ5は、ログイン成功通知および初期イベント情報を中継サーバ3に
送信する(ステップS810)。この初期イベント情報は、例えば、アカウント情報に対
応するプレイヤキャラクタのステータス(ヒットポイントや経験値など)や、ゲーム空間
内におけるプレイヤキャラクタの周囲の状況を表すデータである。
【0073】
図6に示されるように、中継サーバ3はゲームサーバ5から初期イベント情報を受信す
ると、それを携帯電話機1aに転送する。具体的には、中継サーバ3がゲームサーバ5か
らログイン成功通知および初期イベント情報を受信すると、中継サーバ3のバッファリン
グ部46は、その受信に使用したコネクションに対応するソケット情報をキーとして、接
続情報テーブル70からそのソケット情報を含む接続レコード72を検索する。そして、
バッファリング部46は、受信した初期イベント情報を、検索された接続レコード72内
のバッファデータとしてバッファ記憶領域48に記憶する。
【0074】
続いて、中継サーバ3は、検索された接続レコード72内のユーザIDを有する携帯電
話機1aに、初回のリクエストR1に対するレスポンスを送信する。このレスポンスには
、ログイン成功通知および初期イベント情報が付加される。中継サーバ3のプロトコル変
換部44は、そのユーザIDと同じ接続レコード72内のバッファデータ、すなわち上記
の初期イベント情報を読み取り、HTTPに準拠したデータに変換する。この変換された
データは端末用インタフェース36aに送られ、レスポンスおよびログイン成功通知と共
に携帯電話機1aに送信される。
【0075】
以下では、図6〜図8に加えて図9を参照しながら、ログイン成功後に実行される処理
を説明する。ここで図9は、図6に示されるシーケンスにおいてログイン成功後に携帯電
話機1aおよび中継サーバ3が実行する処理を示すフローチャートである。
【0076】
まず、中継サーバ3における携帯電話機宛てデータの蓄積を説明する。ゲームサーバ5
が使用するTCPは、クライアントからのリクエストによらずにサーバからクライアント
へ自発的に情報を配信することを許容するプロトコルである。ゲームサーバ5は、このよ
うなTCPを利用して、携帯電話機1aに送信すべきデータが発生するたびに、そのデー
タを中継サーバ3に自発的に送信する。
【0077】
具体的には、図8に示されるように、携帯電話機1aがゲームサーバ5へのログインに
成功した後、ゲームサーバ5は、携帯電話機1aに配信すべきイベント情報が発生したか
否かを確認する(ステップS812)。イベント情報が発生したことを確認すると(ステ
ップS812にてYes)、ゲームサーバ5は、そのイベント情報を中継サーバ3に送信
する(ステップS814)。このイベント情報の送信は、イベント情報の配信先である携
帯電話機1aからのリクエストに応じて中継サーバ3とゲームサーバ5との間に確立され
たコネクションを使用して行われる。
【0078】
図9に示されるように、中継サーバ3は、そのコネクションに対応するソケットを使用
してイベント情報を受信し、そのソケットに対応するソケット情報を含む接続レコード7
2内のバッファデータとして、そのイベント情報をバッファ記憶領域48に記憶する(ス
テップS920)。イベント情報は、例えば、イベント情報の配信先の携帯電話機1aと
は別の通信端末1を操作するユーザが同じオンラインゲームをプレイするうえでその通信
端末1に入力した情報を反映している。このため、イベント情報は、配信先の携帯電話機
1aの動作とは非同期に、かつ不定期に発生する。ゲームサーバ5が中継サーバ3にイベ
ント情報を送信するたびに上記のようなバッファリングが行われ、イベント情報がバッフ
ァ記憶領域48に蓄積されることになる。
【0079】
次に、携帯電話機1aによるリクエストの発信を説明する。ログイン成功後、携帯電話
機1aは中継サーバ3に定期的にリクエストを送信する。リクエストには、ゲームサーバ
宛てのデータが付加されていることがある。このゲームサーバ宛てデータは、例えば、ユ
ーザがゲームのプレイするうえで携帯電話機1aに入力した情報である。ゲームサーバ5
は、そのようなデータを受信すると、そのデータを用いて所定の処理を実行し、ゲームを
進行させる。この処理結果は、その携帯電話機1aに送信されると共に、必要に応じて他
の通信端末1にも送信される。
【0080】
より具体的には、図9に示されるように、携帯電話機1aは、ゲームサーバ宛てデータ
が発生したか否かを確認し(ステップS902)、ゲームサーバ宛てデータの発生が確認
された場合には(ステップS902にてYes)、そのゲームサーバ宛てデータを送信バ
ッファ18に格納する(ステップS904)。送信バッファ18は、RAM12内に設け
られた記憶領域であり、ゲームサーバ宛てデータを一時的に保存するために使用される。
送信バッファ18は、必要に応じて内蔵メモリ14aに退避させてもよい。
【0081】
本実施形態において携帯電話機1aが使用するHTTPでは、単位時間当たりのリクエ
スト発信回数が、例えば1分間に8回までと制限されており、リクエストの頻度を自由に
設定することができない。このため、携帯電話機1aは、リクエストの発信の合間に逐次
発生するゲームサーバ宛てデータを送信バッファ18に蓄積しておき、リクエストの発信
時に一括して中継サーバ3に送信する。
【0082】
送信バッファ18へのデータ格納(ステップS904)が完了し、あるいはゲームサー
バ宛てデータが発生していないことが確認されると(ステップS902にてNo)、前回
のリクエストから所定の時間が経過したか否かが判断される(ステップS906)。以下
では、この所定時間をリクエスト発信時間と呼ぶことにする。図6では、リクエスト発信
時間が符号Tiで表されている。本実施形態では、ログイン成功後のリクエスト発信時間
が8秒に固定されており、したがって、リクエストが8秒間隔で定期的に発信される。携
帯電話機1aは、リクエストを発信すると同時に時間計測を開始し、計測された時間をリ
クエスト発信時間と比較することによりステップS906の判断を行う。
【0083】
リクエスト発信時間が経過していないと判断された場合(ステップS906にてNo)
、ステップS902以降の処理が再び実行される。一方、リクエスト発信時間が経過した
と判断された場合には(ステップS906にてYes)、携帯電話機1aは中継サーバ3
にリクエストを送信する(ステップS908)。このリクエストには、携帯電話機1aの
ユーザIDが付加される。また、送信バッファ18にゲームサーバ宛てデータが格納され
ている場合、携帯電話機1aは、そのゲームサーバ宛てデータを送信バッファ18から読
み取り、リクエストに付加して中継サーバ3に送信する。
【0084】
中継サーバ3は、携帯電話機1aからリクエストを受信すると(ステップS922)、
そのリクエストに付加されているユーザIDに基づいて接続情報テーブル70を参照する
(ステップS924)。中継サーバ3は、そのユーザIDを接続情報テーブル70内で検
索し(ステップS926)、そのユーザIDを発見したら(ステップS926にてYes
)、そのユーザIDを含む接続レコード72内のソケット情報を読み取る(ステップS9
28)。前述のように、中継サーバ3は古い接続レコード72を削除するので、接続情報
テーブル70内にユーザIDを発見できない可能性もある(ステップS926にてNo)
。この場合、中継サーバ3は、ゲームサーバ5との間に新たなコネクションを確立し(ス
テップS930)、そのコネクションに対応する接続レコード72を作成して、接続情報
テーブル70に追加する(ステップS932)。ステップS928またはS932が完了
すると、中継サーバ3は、携帯電話機1aから受信したユーザIDを含む接続レコード7
2内の最新リクエスト日時を現在の日時に更新する(ステップS934)。
【0085】
次に、中継サーバ3は、携帯電話機1aからのリクエストにゲームサーバ宛てデータが
付加されているか否かを判断する(ステップS936)。ゲームサーバ宛てのデータがリ
クエストに付加されている場合(ステップS936にてYes)、中継サーバ3はそのデ
ータをTCPに準拠したデータに変換し、この変換されたデータをリクエストと共にゲー
ムサーバ5に送信する(ステップS938)。このリクエストは、TCPに準拠したゲー
ムサーバ宛てデータの処理をゲームサーバ5に要求する。ゲームサーバ宛てデータのプロ
トコル変換は、ハードディスクドライブ34に格納されたプロトコル変換テーブル80を
用いて実行される。プロトコル変換テーブル80は、HTTPプロトコルに準拠した様々
なデータをTCPプロトコルに準拠したデータに一対一に対応付けている。
【0086】
図8に示されるように、ゲームサーバ5は、イベント情報が発生していないことを確認
し(ステップS812にてNo)、あるいはイベント情報を中継サーバ3に送信すると(
ステップS814)、中継サーバ3から処理リクエストを受信したか否かを判断する(ス
テップS816)。処理リクエストは、携帯電話機1aがゲームサーバ5に処理を要求す
るリクエストであり、携帯電話機1aから中継サーバ3を介してゲームサーバ5に送信さ
れる。上述したゲームサーバ宛てデータが付加されたリクエストも、処理リクエストの一
例である。
【0087】
中継サーバ3から処理リクエストを受信したと判断された場合(ステップS816にて
Yes)、その処理リクエストが切断リクエストであるか否かが判断される(ステップS
818)。切断リクエストである場合(ステップS818にてYes)、ゲームサーバ5
は、切断リクエストを発信した携帯電話機1aが操作するプレイヤキャラクタをゲーム空
間からログアウトさせるための終了処理を実行し、その後、切断リクエストの受信に使用
した中継サーバ3とのコネクションを切断する(ステップS819)。
【0088】
一方、処理リクエストが切断リクエストでない場合(ステップS818にてNo)、ゲ
ームサーバ5はリクエストされた処理を実行し、レスポンスを中継サーバ3に送信する(
ステップS820)。このレスポンスには、必要であれば処理結果を示すデータが付加さ
れる。携帯電話機1aから送信されたゲームサーバ宛てデータが処理リクエストに付加さ
れていれば、ゲームサーバ5は、そのゲームサーバ宛てデータを所定の方法で処理する。
例えば、ゲームサーバ宛てデータがユーザによって携帯電話機1aに入力された敵モンス
ターの攻撃指令であれば、ゲームサーバ5は、その攻撃指令に基づいて敵モンスターが受
けるダメージを算出する。このダメージが処理結果の一例である。処理結果の送信は、処
理リクエストの受信に使用されたものと同じコネクションを使用して行われる。中継サー
バ3は、その処理結果を受信し、そのコネクションに対応するソケット情報を含む接続レ
コード72内のバッファデータとして、その処理結果をバッファ記憶領域48に格納する
(ステップS920)。
【0089】
再び図9を参照する。中継サーバ3は、携帯電話機1aからのリクエストにゲームサー
バ宛てデータが付加されていないと判断し(ステップS936にてNo)、あるいはゲー
ムサーバ宛てデータを中継サーバ3に送信すると(ステップS938)、携帯電話機1a
からリクエストを受信した時刻から所定の待機時間が経過するまで待機する(ステップS
940)。この待機時間は、携帯電話機1aでのリクエスト発信時間(本実施形態では8
秒)よりも短く、例えば1秒である。リクエスト受信時刻は、接続レコード72中の最新
リクエスト日時として記録されている。この待機の間、ゲームサーバ5から中継サーバ3
に携帯電話機宛てデータが送信されれば、そのデータは、上述したようにしてバッファ記
憶領域48に格納される。
【0090】
この待機の後、中継サーバ3は、ステップS922で受信したユーザIDを含む接続レ
コード72内のバッファデータをバッファ記憶領域48から読み取り、HTTPに準拠し
たデータに変換して、携帯電話機1aにレスポンスと共に送信する(ステップS942)
。携帯電話機1aが、このレスポンスを受信すると、携帯電話機1aと中継サーバ3との
一つのセッションが終了する(ステップS910)。
【0091】
図6では、上記の待機時間が符号Twで表され、携帯電話機1aからのリクエストR2
の受信時刻からゲームサーバ5からのレスポンス受信時刻までに経過した時間が符号T2
で表されている。図6に示されるように、待機時間Twが経過する前にゲームサーバ5か
らのレスポンスが中継サーバ3に届けば、リクエストR2に対する携帯電話機1aへのレ
スポンスには、リクエストR2に応じたゲームサーバ5での処理結果が付加されることに
なる。
【0092】
リクエストR2の発信からリクエスト発信時間Tiが経過すると、新たなリクエストR
3が携帯電話機1aから発信される。このリクエストR3には、ゲームサーバ宛てデータ
が付加されていないものとする。この場合も、中継サーバ3は、リクエストR3の受信時
刻から待機時間Twが経過するのを待ってから、送信バッファ48に蓄積されたバッファ
データをHTTPに準拠したデータに変換し、リクエストR3に対するレスポンスと共に
携帯電話機1aに送信する。このバッファデータには、待機中に中継サーバ3が受信した
携帯電話機宛てデータ(図6ではイベント情報)も含まれる。
【0093】
携帯電話機1aが切断リクエストR4を発信し、中継サーバ3がそれを受信すると、中
継サーバ3は、ゲームサーバ5へ切断リクエストを送信すると共に、その携帯電話機1a
のユーザIDを含む接続レコード72を接続情報テーブル70から削除する。これにより
、その接続レコード72に対応するゲームサーバ5とのコネクションが切断される。切断
リクエストに応じてゲームサーバ5が実行する処理は、図8を参照して上述した通りであ
る。また、中継サーバ3は、携帯電話機1aに最後のレスポンスを送信し、携帯電話機1
aとのセッションを終了する。
【0094】
以下では、本実施形態の利点を説明する。携帯電話機1aはリクエスト/レスポンス型
の通信しか行えないため、ゲームサーバ5が自発的に携帯電話機1aに情報を配信するこ
とはできない。しかし、通信システム100では、携帯電話機1a宛てのデータがゲーム
サーバ5で不定期かつ頻繁に発生しても、中継サーバ3がそれらのデータを受信してバッ
ファ記憶領域48に蓄積し、携帯電話機1aからのリクエストに応じて携帯電話機1aに
一括して送信する。このため、携帯電話機1a宛てのデータを少ない遅延で携帯電話機1
aに配信することができる。この結果、MMORPGなど、リアルタイム性が要求される
通信サービスを携帯電話機1aに適切に提供することができる。
【0095】
また、HTTPを用いる携帯電話機1aに関しては中継サーバ3がプロトコルの変換を
行うので、メインサーバ5は、異なるプロトコルを使用する携帯電話機1aおよびパーソ
ナルコンピュータ1bを、プロトコルの違いを意識することなく同じように取り扱うこと
ができる。したがって、異なるプロトコルを使用する通信端末1が共存するマルチプラッ
トフォーム環境を容易に実現することができる。
【0096】
更に、中継サーバ3は、携帯電話機1aからリクエストを受信した後、所定の待機時間
Twにわたって待機してから、そのリクエストに対するレスポンスを携帯電話機1aに送
信する。このため、待機時間Twを適切に定めれば、携帯電話機1aからのリクエストに
対してゲームサーバ5が生成した携帯電話機宛てデータを、そのリクエストに対するレス
ポンスに付加して携帯電話機1aに送信することができる。
【0097】
比較のため、待機をせずにレスポンスを携帯電話機1aに送信する場合を考える。この
場合、通信端末1からのリクエストに応じてゲームサーバ5が生成するデータ(例えば、
ゲームサーバ5へ送信したゲームサーバ宛てデータの処理結果)は、次回のリクエストに
対するレスポンスに付加されて携帯電話機1aに送信されることになり、遅延が比較的大
きい。
【0098】
これに対し、本実施形態では、中継サーバ3がリクエスト受信後の待機時間Tw中に、
そのリクエストに応じて生成されたデータをゲームサーバ5から受信すれば、そのデータ
を同じリクエストに対するレスポンスに付加して携帯電話機1aに送信することができる
。これにより、携帯電話機1aへのデータ送信の遅延を更に低減し、リアルタイム性が要
求される通信サービスを携帯電話機1aにいっそう適切に提供することができる。
【0099】
第2実施形態
以下では、図10および図11を参照しながら、本発明に係る通信システムの第2の実
施形態を説明する。本実施形態の通信システムは、図1〜図5を参照して上述した通信シ
ステム100と同様の構成を有している。図10は、携帯電話機1a、中継サーバ3およ
びゲームサーバ5間の通信の一例を時系列的に示すシーケンス図であり、図11は、図1
0に示されるシーケンスにおいてログイン成功後に携帯電話機1aおよび中継サーバ3が
実行する処理を示すフローチャートである。本実施形態は、中継サーバ3におけるリクエ
スト受信後の待機に関する処理の点で第1実施形態と異なる。他の処理は第1実施形態と
同じである。以下では、本実施形態を第1実施形態との相違点を説明し、第1実施形態と
重複する説明は省略する。
【0100】
図11におけるステップS1102〜S1142の各処理は、図9におけるステップS
902〜S942の各処理と同じである。しかし、本実施形態は、携帯電話機1aからの
リクエストにゲームサーバ宛てデータが付加されていないと中継サーバ3が判断した場合
(ステップS1136にてNo)、リクエスト受信後の待機(ステップS1140)を行
わない点で第1実施形態と相違する。すなわち、本実施形態では、携帯電話機1aからの
リクエストにゲームサーバ宛てデータが付加されていると判断されたときにだけ(ステッ
プS1136にてYes)、待機時間Twにわたる待機が行われる(ステップS1140
)。中継サーバ3は、ゲームサーバ宛てデータを伴わないリクエストを受信すると、即座
にバッファ記憶領域48からバッファデータを読み取り、HTTPに準拠したデータに変
換した後、そのリクエストに対するレスポンスに付加して携帯電話機1aに送信する(ス
テップS1142)。
【0101】
本実施形態は、第1実施形態と同じ利点に加えて下記の利点を有している。すなわち、
ゲームサーバ宛てデータが付加されていないリクエストは、ゲームサーバ5による処理結
果を待つ必要のないリクエストであることが少なくない。本実施形態では、そのようなリ
クエストに対して待機を行わないので、ゲームサーバ5からの携帯電話機宛てデータをよ
り迅速に携帯電話機1aに送信することができる。
【0102】
以上、本発明をその実施形態に基づいて詳細に説明した。しかし、本発明は上記実施形
態に限定されるものではない。本発明は、その要旨を逸脱しない範囲で様々な変形が可能
である。
【0103】
上記実施形態では通信システム100が提供するサービスとしてオンラインゲームを挙
げているが、他の任意のサービスを提供してもよい。例えば、本発明に係る通信システム
は、株価情報、交通情報、天気予報、ニュースなどの情報を携帯電話機に配信するサービ
スを提供してもよい。また、本発明に係る通信システムは、インスタントメッセンジャー
サービスやスポーツ中継サービスを提供してもよい。
【0104】
上記実施形態では、ゲームサーバ5がTCPに従って通信を行う。しかし、本発明にお
けるメインサーバは、UDP(User Datagram Protocol)など、他のプロトコルに従って
通信を行ってもよい。
【0105】
上記実施形態では、中継サーバ3とゲームサーバ5が別個のハードウェアとして実装さ
れている。しかし、本発明では、中継サーバとメインサーバを、同一のコンピュータ上で
別個のサーバプログラムを動作させることにより実装してもよい。
【図面の簡単な説明】
【0106】
【図1】実施形態に係る通信システムの構成を示す概略図である。
【図2】携帯電話機の構成を概略的に示すブロック図である。
【図3】中継サーバの構成を示すブロック図である。
【図4】ゲームサーバ5の構成を示すブロック図である。
【図5】中継サーバの機能ブロック図である。
【図6】第1実施形態における携帯電話機、中継サーバおよびゲームサーバ間の通信の一例を時系列的に示すシーケンス図である。
【図7】接続情報テーブルの構成を示す概略図である。
【図8】ゲームサーバが実行する処理を示すフローチャートである。
【図9】第1実施形態において携帯電話機および中継サーバが実行する処理を示すフローチャートである。
【図10】第2実施形態における携帯電話機、中継サーバおよびゲームサーバ間の通信の一例を時系列的に示すシーケンス図である。
【図11】第2実施形態において携帯電話機および中継サーバが実行する処理を示すフローチャートである。
【符号の説明】
【0107】
1…通信端末、1a…携帯電話機、1b…パーソナルコンピュータ、2…通信ネットワ
ーク、3…中継サーバ、5…ゲームサーバ、6…基地局、16…通信装置、18…送信バ
ッファ、36…通信装置、36a…端末用インタフェース、36b…ゲームサーバ用イン
タフェース、44…プロトコル変換部、46…バッファリング部、48…バッファ記憶領
域、56…通信装置、70…接続情報テーブル、72…接続レコード、80…プロトコル
変換テーブル。

【特許請求の範囲】
【請求項1】
第1プロトコルに従ってリクエスト/レスポンス型の通信を行う通信端末と、
前記第1プロトコルと異なる第2プロトコルに従って通信を行うメインサーバと、
前記第1プロトコルに従って前記通信端末と通信すると共に、前記第2プロトコルに従
って前記メインサーバと通信する中継サーバと、
前記中継サーバがアクセスすることの可能な記憶装置と、
を備え、
前記中継サーバは、前記通信端末からユーザIDと共に送信される第1リクエストに応
じて前記メインサーバとの通信接続を確立し、前記メインサーバから前記通信端末宛ての
データを受信すると、当該データを前記ユーザIDに関連付けて前記記憶装置に記憶し、
前記通信端末から前記ユーザIDと共に第2リクエストを受信すると、当該ユーザIDに
関連付けられた前記通信端末宛てのデータを前記記憶装置から読み取り、前記第1プロト
コルに準拠したデータに変換して前記通信端末に送信する、
通信システム。
【請求項2】
前記メインサーバは、前記通信端末宛てのデータが発生すると、前記中継サーバからの
リクエストを待つことなく、前記通信端末宛てのデータを前記第2プロトコルに従って前
記中継サーバに送信する、請求項1に記載の通信システム。
【請求項3】
前記中継サーバは、前記第2リクエストを受信してから所定の待機時間が経過した後に
、前記通信端末宛てのデータを前記記憶装置から読み取る、請求項1または2に記載の通
信システム。
【請求項4】
前記中継サーバは、前記第2リクエストを前記通信端末から受信すると、前記メインサ
ーバ宛てのデータが前記第2リクエストに付加されているか否かを判断し、前記メインサ
ーバ宛てのデータが前記第2リクエストに付加されていると判断したときは、当該メイン
サーバ宛てのデータを前記第2プロトコルに準拠したデータに変換して前記メインサーバ
に送信すると共に、前記第2リクエストを受信してから所定の待機時間が経過した後に、
前記通信端末宛てのデータを前記記憶装置から読み取り、前記メインサーバ宛てのデータ
が前記第2リクエストに付加されていないと判断したときは、前記待機時間の経過を待つ
ことなく、前記通信端末宛てのデータを前記記憶装置から読み取る、請求項1または2に
記載の通信システム。
【請求項5】
前記通信端末は、前記中継サーバに所定の時間間隔で定期的に前記第2リクエストを送
信し、
前記待機時間は、前記時間間隔よりも短い、
請求項3または4に記載の通信システム。
【請求項6】
前記第1のプロトコルでは、単位時間当たりのリクエスト発信回数の上限が定められて
いる、請求項1〜5のいずれかに記載の通信システム。
【請求項7】
第1プロトコルに従ってリクエスト/レスポンス型の通信を行う通信端末と、前記第1
プロトコルと異なる第2プロトコルに従って通信を行うメインサーバと、記憶装置とを備
える通信システム内に設置され、前記第1プロトコルに従って前記通信端末と通信すると
共に、前記第2プロトコルに従って前記メインサーバと通信し、前記記憶装置にアクセス
可能な中継サーバであって、
前記通信端末からユーザIDと共に送信される第1リクエストに応じて前記メインサー
バとの通信接続を確立する通信接続手段と、
前記メインサーバから前記通信端末宛てのデータを受信すると、当該データを前記ユー
ザIDに関連付けて前記記憶装置に記憶する記憶手段と、
前記通信端末から前記ユーザIDと共に第2リクエストを受信すると、当該ユーザID
に関連付けられた前記通信端末宛てのデータを前記記憶装置から読み取り、前記第1プロ
トコルに準拠したデータに変換する第1変換手段と、
この変換されたデータを前記通信端末に送信する第1送信手段と、
を備える中継サーバ。
【請求項8】
前記メインサーバは、前記通信端末宛てのデータが発生すると、前記中継サーバからの
リクエストを待つことなく、前記通信端末宛てのデータを前記第2プロトコルに従って前
記中継サーバに送信する、請求項7に記載の中継サーバ。
【請求項9】
前記第1変換手段は、前記リクエストを受信してから所定の待機時間が経過した後に、
前記通信端末宛てのデータを前記記憶装置から読み取る、請求項7または8に記載の中継
サーバ。
【請求項10】
前記第2リクエストを前記通信端末から受信すると、前記メインサーバ宛てのデータが
前記第2リクエストに付加されているか否かを判断する判断手段と、
前記メインサーバ宛てのデータが前記第2リクエストに付加されていると判断されたと
きに、当該メインサーバ宛てのデータを前記第2プロトコルに準拠したデータに変換する
第2変換手段と、
前記第2変換手段によって変換されたデータを前記メインサーバに送信する第2送信手
段と、
を更に備え、
前記第1変換手段は、前記メインサーバ宛てのデータが前記第2リクエストに付加され
ていると判断されたときは、前記第2リクエストを受信してから所定の待機時間が経過し
た後に、前記通信端末宛てのデータを前記記憶装置から読み取り、前記メインサーバ宛て
のデータが付加されていないと判断されたときは、前記待機時間の経過を待つことなく、
前記通信端末宛てのデータを前記記憶装置から読み取る、
請求項7または8に記載の中継サーバ。
【請求項11】
前記通信端末は、前記中継サーバに所定の時間間隔で定期的に前記第2リクエストを送
信し、
前記待機時間は、前記時間間隔よりも短い、
請求項9または10に記載の中継サーバ。
【請求項12】
前記第1のプロトコルでは、単位時間当たりのリクエスト発信回数の上限が定められて
いる、請求項7〜11のいずれかに記載の中継サーバ。
【請求項13】
第1プロトコルに従ってリクエスト/レスポンス型の通信を行う通信端末と、前記第1
プロトコルと異なる第2プロトコルに従って通信を行うメインサーバと、記憶装置とを備
える通信システム内に設置され、前記第1プロトコルに従って前記通信端末と通信すると
共に、前記第2プロトコルに従って前記メインサーバと通信し、前記記憶装置にアクセス
可能な中継サーバを制御するプログラムであって、
前記通信端末からユーザIDと共に送信される第1リクエストに応じて前記メインサー
バとの通信接続を確立するステップと、
前記メインサーバから前記通信端末宛てのデータを受信すると、当該データを前記ユー
ザIDに関連付けて前記記憶装置に記憶するステップと、
前記通信端末から前記ユーザIDと共に第2リクエストを受信すると、当該ユーザID
に関連付けられた前記通信端末宛てのデータを前記記憶装置から読み取り、前記第1プロ
トコルに準拠したデータに変換するステップと、
この第1プロトコルに準拠したデータを前記通信端末に送信するステップと、
を前記中継サーバに実行させるプログラム。
【請求項14】
第1プロトコルに従ってリクエスト/レスポンス型の通信を行う通信端末と、前記第1
プロトコルと異なる第2プロトコルに従って通信を行うメインサーバと、前記第1プロト
コルに従って前記通信端末と通信すると共に、前記第2プロトコルに従って前記メインサ
ーバと通信する中継サーバと、前記中継サーバがアクセスすることの可能な記憶装置とを
備える通信システムにおいて、前記通信端末と前記メインサーバとの間で通信を行う方法
であって、
前記通信端末が、ユーザIDと共に第1リクエストを前記中継サーバに送信するステッ
プと、
前記中継サーバが、前記第1リクエストに応じて前記メインサーバとの通信接続を確立
するステップと、
前記メインサーバが、前記通信端末宛てのデータを前記中継サーバに送信するステップ
と、
前記中継サーバが、前記通信端末宛ての当該データを、前記ユーザIDに関連付けて前
記記憶装置に記憶するステップと、
前記通信端末が、前記ユーザIDと共に第2リクエストを前記中継サーバに送信するス
テップと、
前記中継サーバが、前記第2リクエストと共に送信された前記ユーザIDに関連付けら
れた前記通信端末宛てのデータを前記記憶装置から読み取り、前記第1プロトコルに準拠
したデータに変換するステップと、
前記中継サーバが、この第1プロトコルに準拠したデータを前記通信端末に送信するス
テップと、
を備える通信方法。
【請求項15】
第1プロトコルに従ってリクエスト/レスポンス型の通信を行う通信端末と、前記第1
プロトコルと異なる第2プロトコルに従って通信を行うメインサーバと、前記第1プロト
コルに従って前記通信端末と通信すると共に、前記第2プロトコルに従って前記メインサ
ーバと通信する中継サーバと、前記中継サーバがアクセスすることの可能な記憶装置とを
備える通信システムにおいて、前記メインサーバを制御するプログラムであって、
前記中継サーバは、前記通信端末からユーザIDと共に送信される第1リクエストに応
じて前記メインサーバとの通信接続を確立し、前記メインサーバから前記通信端末宛ての
データを受信すると、当該データを前記ユーザIDに関連付けて前記記憶装置に記憶し、
前記通信端末から前記ユーザIDと共に第2リクエストを受信すると、当該ユーザIDに
関連付けられた前記通信端末宛てのデータを前記記憶装置から読み取り、前記第1プロト
コルに準拠したデータに変換して前記通信端末に送信し、
前記通信端末宛てのデータを前記中継サーバに送信するステップを前記メインサーバに
実行させるプログラム。
【請求項16】
第1プロトコルに従ってリクエスト/レスポンス型の通信を行う通信端末と、前記第1
プロトコルと異なる第2プロトコルに従って通信を行うメインサーバと、前記第1プロト
コルに従って前記通信端末と通信すると共に、前記第2プロトコルに従って前記メインサ
ーバと通信する中継サーバと、前記中継サーバがアクセスすることの可能な記憶装置とを
備える通信システムにおいて、前記通信端末を制御するプログラムであって、
前記中継サーバは、前記通信端末からユーザIDと共に送信される第1リクエストに応
じて前記メインサーバとの通信接続を確立し、前記メインサーバから前記通信端末宛ての
データを受信すると、当該データを前記ユーザIDに関連付けて前記記憶装置に記憶し、
前記通信端末から前記ユーザIDと共に第2リクエストを受信すると、当該ユーザIDに
関連付けられた前記通信端末宛てのデータを前記記憶装置から読み取り、前記第1プロト
コルに準拠したデータに変換して前記通信端末に送信し、
前記ユーザIDと共に前記第1リクエストを前記中継サーバに送信するステップと、
前記ユーザIDと共に前記第2リクエストを前記中継サーバに送信するステップと、
前記第1プロトコルに準拠したデータを受信するステップと、
を前記通信端末に実行させるプログラム。

【図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


【公開番号】特開2006−287564(P2006−287564A)
【公開日】平成18年10月19日(2006.10.19)
【国際特許分類】
【出願番号】特願2005−104042(P2005−104042)
【出願日】平成17年3月31日(2005.3.31)
【出願人】(598138327)株式会社ドワンゴ (97)
【Fターム(参考)】