リクエスト受付システム
【課題】エンドサーバの運用効率を同時接続セッション数の観点から最適化し、ユーザ端末の待機時間を短縮できるリクエスト受付システムを提供する。
【解決手段】仮想キュー設定部19は、各エンドサーバにおけるサービス要求の処理状況を模擬するために設けられ、エンドサーバの最大同時接続セッション数がn個であれば、エンドサーバにおける処理状況は、エンドサーバの入力段にn個のFIFOバッファを装備し、ユーザ端末から送信されたサービス要求がいずれかのFIFOバッファから取り込まれて処理される構造で模擬できる。サービス要求が受信されるごとに、FIFOバッファにはサービス時間に相当するキューが入力され、FIFOバッファの転送レートをエンドサーバにおけるサービス時間の逆数とすれば、各FIFOバッファにオーバーフローもアンダーフローを生じないようにサービス要求を割り振ることでエンドサーバの輻輳や効率低下を防止できる。
【解決手段】仮想キュー設定部19は、各エンドサーバにおけるサービス要求の処理状況を模擬するために設けられ、エンドサーバの最大同時接続セッション数がn個であれば、エンドサーバにおける処理状況は、エンドサーバの入力段にn個のFIFOバッファを装備し、ユーザ端末から送信されたサービス要求がいずれかのFIFOバッファから取り込まれて処理される構造で模擬できる。サービス要求が受信されるごとに、FIFOバッファにはサービス時間に相当するキューが入力され、FIFOバッファの転送レートをエンドサーバにおけるサービス時間の逆数とすれば、各FIFOバッファにオーバーフローもアンダーフローを生じないようにサービス要求を割り振ることでエンドサーバの輻輳や効率低下を防止できる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザ端末から送信されたアクセスパス要求を受け付けて、各ユーザ端末のエンドサーバへのアクセスタイミングを決定し、これを各ユーザ端末へのアクセスパスとして返信するリクエスト受付システムに関する。
【背景技術】
【0002】
災害発生時の安否確認のためのリクエスト、あるいはTV番組やラジオ番組でヒットチャートを発表した直後に人気曲の配信を要求するリクエストなど、特定のイベントを契機とするリクエストメッセージは短時間に集中する傾向がある。これらの宛先でリクエストを受け付けるサーバでは、リクエスト数が処理能力を超過すると、超過分についてはサービスの提供が不可能となる。このことは、同サービスを利用するユーザの満足度を低下させると共に、たとえばリクエストが有料コンテンツの配信であれば、コンテンツ提供者にとっては販売機会の損失となる。
【0003】
イベントを契機とするアクセスの集中は通常のアクセス量を遙かに凌駕し、瞬間的には、例えば10倍から100倍に達する場合もある。したがって、アクセス集中時のピーク時に合わせてサーバ容量を設計してしまうと、時間的に大半を占める通常時には大幅な過剰設備状態を招いてしまう。しかも、このようなアクセス集中は予測が難しいので、たとえ十分と予測される設備を用意できたとしても、その容量を上回るアクセスが集中する可能性を否定できない。
【0004】
一方、2003年12月に東京・大阪・名古屋で地上デジタル放送が開始され、それ以後、他の地域でも放送が順次開始されると共に、移動体受信端末向けサービスなどが拡充されることになっている。地上デジタル放送で提供される通信放送連携サービスでは、番組内容を契機とした同時大量アクセスの発生が予見されており、上記で指摘した事象が今後ますます顕在化してくることが想定される。
【0005】
このような同時大量アクセスを抑制する技術として、特許文献1には、サービス要求を受け付けて処理するという高負荷の処理を実行するエンドサーバとは別に、ユーザ端末から受信したアクセスパス要求を受け付けてアクセスパス応答を返信するという低負荷の処理のみを実行するアクセスパスサーバを独立して設ける技術が開示されている。
【0006】
ここでは、ユーザ端末からアクセスパス要求を受信したアクセスパスサーバが、受信したアクセスパス要求ごとにエンドサーバへのアクセスタイミング(待機時間)を決定し、これを各アクセスパス要求への応答メッセージとして各ユーザ端末へ通知する。ユーザ端末は、通知されたアクセスタイミングを待ってエンドサーバへアクセスする。前記アクセスタイミングは、エンドサーバへのアクセスが分散され、かつアクセスタイミングがアクセスパス要求の受付順序となるように決定される。
【特許文献1】特願2007−207986号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
上記した先行技術では、エンドサーバへ流入する単位時間あたりのアクセス数、すなわちアクセスレートが予め定められた上限値を超えないように、各ユーザ端末に対して待機時間が設定・通知され、ユーザ端末からエンドサーバに向かうアクセス数が制御される。しかしながら、上記の先行技術ではエンドサーバが各サービス要求の処理に要するサービス時間、即ちセッション保留時間が考慮されていなかったので、以下のような技術課題が生じ得る。
【0008】
すなわち、実サービスではエンドサーバがユーザ端末からのサービス要求に応答してサービス(例えば,コンテンツダウンロード)を提供する際にはサービス時間が発生する。しかしながら、上記の先行技術ではサービス時間が考慮されていないので、サービス時間が想定時間よりも長ければサービス要求が蓄積してサーバ輻輳を招く一方、サービス時間が想定時間よりも短ければサーバの稼働効率が低下してしまう。
【0009】
ここで、アクセスレートをR、サービス時間をCとすれば、エンドサーバの最大同時接続セッション数Smaxは次式(1)で与えられる。したがって、例えば秒間アクセスレートRが「1」,サービス時間Cが「5」であれば、エンドサーバの最大同時接続セッション数Smaxを5に設定することでエンドサーバの輻輳や効率低下を防止できることになる。
【0010】
Smax=R×C …(1)
【0011】
上記の例では、図12に一例を示したように、1秒ごとに1つのサービス要求ReqがエンドサーバESに受け容れられ、その結果、0秒から1秒の間のタイムスロットで最初のサービス要求Req1が受け容れられ、次の1秒から2秒の間のタイムスロットで次のサービス要求Req2が受け容れられ…といったように各サービス要求が順次に受け容れられる。
【0012】
しかしながら、例えばセッション数がゼロの状態からサービス要求の受け容れが開始される場合、図13に示したように、0秒から1秒の間のタイムスロットで5つのサービス要求を受け容れ可能なので、サービス要求Req1のみならず、その後の4つのサービス要求Req2−Req5も同時に受け容れ可能である。にもかかわらず、上記の例では一つのサービス要求Req1しか受け容れられない。
【0013】
したがって、エンドサーバESでは稼働効率の低下を余儀なくされ、その結果、図12,13を比較すれば明らかなように、サービス要求Req2は1秒から2秒の間のタイムスロットまで余計に待機させられ、サービス要求Req3は2秒から3秒の間のタイムスロットまで余計に待機させられ、サービス要求Req5に至っては、4秒から5秒の間のタイムスロットまで余計に待機させられ、4秒相当の遅延が無駄に生じることになる。
【0014】
本発明の目的は、上記した従来技術の課題を解決し、エンドサーバの運用効率を同時接続セッション数の観点から最適化し、ユーザ端末の待機時間を短縮できるリクエスト受付システムを提供することにある。
【課題を解決するための手段】
【0015】
上記した目的を達成するために、本発明は、アクセスパスサーバが、ユーザ端末からアクセスパス要求を受信して各ユーザ端末に許可するエンドサーバへのアクセスタイミングを決定して各ユーザ端末へ通知し、前記ユーザ端末は、前記通知されたアクセスタイミングでエンドサーバへサービス要求を送信するリクエスト受付システムにおいて、前記アクセスパスサーバが、以下のような手段を講じた点に特徴がある。
【0016】
(1)エンドサーバがサービス要求の処理に要するサービス時間を記憶する手段と、エンドサーバの最大同時接続セッション数を記憶する手段と、エンドサーバにおけるサービス時間を代表するキューが登録される複数の仮想キューをエンドサーバの同時接続セッション数に基づいて設定する手段と、ユーザ端末からアクセスパス要求を受信する手段と、アクセスパス要求の受信に応答して、当該アクセスパス要求を契機に生じるサービス要求に対するサービス時間を代表するキューの登録先となる仮想キューを選択する手段と、経過時間およびエンドサーバにおけるサービス時間に基づいて各仮想キューからキューを破棄(デキュー)し、前記選択された仮想キューに前記サービス時間に応じたキューを追加(エンキュー)する手段と、前記選択された仮想キューのキュー値に基づいて、前記ユーザ端末のエンドサーバへのアクセスタイミングを決定する手段と、前記アクセスタイミングの決定結果をユーザ端末へ通知する手段とを含むことを特徴とする。
【0017】
(2)仮想キューを選択する手段は、キュー長が最小の仮想キューを選択することを特徴とする。
【0018】
(3)選択された仮想キューに登録されるキューの値がサービス要求に応じて可変であることを特徴とする。
【0019】
(4)エンドサーバの同時接続セッション数を変更するイベントを検知する手段と、同時接続セッション数の増加に応答して仮想キューを追加し、同時接続セッション数の減少に応答して仮想キューを破棄する手段と、時刻Tで同時接続セッション数が追加されると、当該時刻Tの直前における既存の複数の仮想キューのなかで最小のキュー長に相当するキュー値を前記追加された仮想キューに登録する手段とを含むことを特徴とする。
【0020】
(5)エンドサーバにおけるサービス時間を変更するイベントを検知する手段と、時刻Tでサービス時間が変更されると、時刻T以前に設定したアクセスタイミングが時刻T以降に設定したアクセスタイミングよりも遅くならないように、変更前後のサービス時間に基づいて、時刻Tにおける各仮想キューのキュー値を補正する手段とを含むことを特徴とする。
【発明の効果】
【0021】
(1)アクセスパスサーバではエンドサーバごとに最大同時接続セッション数分の仮想キューを設定し、アクセスパス要求が受信されるごとに、サービス要求先のエンドサーバの仮想キューにサービス時間に応じた長さのキューを登録すると共に、各キューを各エンドサーバでのサービス処理時間に応じた割合で仮想的に順次消化させることで、各エンドサーバにおけるサービス要求の処理状態をアクセスパスサーバ上で模擬し、アクセスパス要求が受信されたときの各仮想キューのキュー長に基づいてサービス要求タイミングが算出されるので、エンドサーバの運用効率を同時接続セッション数の観点から最適化できるようになる。
【0022】
(2)アクセスパス要求が受信されるごとに、キュー長の最も短い仮想キューが選択され、当該仮想キューにキューが登録されるので、より早くアクセスパス要求を送信したユーザ端末に対して、より早いサービス要求タイミングを割り当てられるようになる。
【0023】
(3)選択された仮想キューに登録されるキューの値をサービス要求に応じて可変としたので、各サービス要求の処理に要するサービス時間の長短にかかわらず、より早くアクセスパス要求を送信したユーザ端末に対して、より早いサービス要求タイミングを割り当てられるようになる。
【0024】
(4)エンドサーバの同時接続セッション数を変更するイベントが生じても、より早くアクセスパス要求を送信したユーザ端末に対して、より早いサービス要求タイミングを割り当てられるようになる。
【0025】
(5)エンドサーバにおけるサービス時間を変更するイベントが生じても、より早くアクセスパス要求を送信したユーザ端末に対して、より早いサービス要求タイミングを割り当てられるようになる。
【発明を実施するための最良の形態】
【0026】
以下、図面を参照して本発明の最良の実施の形態について詳細に説明する。 図1は、本発明のリクエスト受付システムが適用されるネットワークの主要部の構成を示したブロック図であり、ここでは、ユーザ端末MNからエンドサーバES(サービス提供サーバ)へコンテンツ配信サービスを要求する場合を例にして説明する。
【0027】
携帯電話、PDAあるいはコンピュータなどのユーザ端末MNは基地局APを経由して携帯電話網あるいはインターネット等のIPネットワークNWに接続されている。また、ユーザ端末MNからのサービス要求に応答して、音楽や映像などのコンテンツを配信する複数のエンドサーバESjが、アクセスパスサーバAPSと共に前記IPネットワークNWに接続されている。
【0028】
前記アクセスパスサーバAPSは、各ユーザ端末MNにエンドサーバESjへのアクセスを許可するタイミングを決定して各ユーザ端末MNへ通知する機能を備え、ユーザ端末MNからアクセス先のエンドサーバESjの識別情報およびコンテンツの識別情報を含むアクセスパス要求のメッセージを受信すると、エンドサーバESjの能力や状況に基づいてアクセスタイミングを決定し、これをユーザ端末MNへ通知する。ユーザ端末MNは、通知されたアクセスタイミングを待ってエンドサーバESjへサービス要求を送信し、当該エンドサーバESjからコンテンツの配信サービスを享受する。
【0029】
図2は、前記アクセスパスサーバAPSの主要部の構成を示した機能ブロック図である。本実施形態では、アクセスパスサーバAPSがアクセスパス要求を受信するごとに実行する応答処理は極めて低負荷なので、アクセスパス要求が短時間に集中的に受信される場合でも、アクセスパスサーバAPSは全てのアクセスパス要求を受信順に滞りなく受付処理できる。
【0030】
同時接続セッション数記憶部17には、各エンドサーバESj(jはエンドサーバ識別子)が同時に接続できる最大セッション数Smax_jが記憶されている。サービス時間記憶部18には、各エンドサーバESjにおいてユーザが所望するサービスを提供するために必要な時間(セッション保留時間)がサービス時間Cjとして記憶されている。
【0031】
仮想キュー設定部19は、各エンドサーバESjにおけるサービス要求の処理状況をアクセスパスサーバAPS上で模擬するために設けられた本発明に特徴的な構成である。すなわち、各エンドサーバESjの最大同時接続セッション数Smax_jがn個であれば、エンドサーバESjにおけるサービス要求の処理状況は、図11に一例を示したように、エンドサーバESjの入力段にn個のFIFOバッファ(FIFO-1,FIFO-2、…FIFO-n)を装備し、ユーザ端末NMから送信されたサービス要求がいずれかのFIFOバッファから取り込まれて順次に処理される構造で模擬できる。
【0032】
そして、FIFOバッファにはサービス要求の処理に必要なセッション保持時間(サービス時間)に相当する量のデータ(キュー)を登録し、FIFOバッファの転送レートをエンドサーバESjのサービス時間の逆数1/Cjとすれば、各FIFOバッファにオーバーフローもアンダーフローを生じないようにサービス要求を割り振ることでエンドサーバESjの輻輳や効率低下を防止できる。
【0033】
そこで、本発明では上記した各FIFOバッファを模した仮想キューVQをアクセスパスサーバAPSに設け、この仮想キューVQにオーバーフローもアンダーフローも生じないように、各アクセスパス要求に対してサービス要求タイミングを割り当てることで、上記の技術課題を解決している。
【0034】
したがって、前記仮想キュー設定部19には、エンドサーバESjごとに、その最大同時接続セッション数Smax_jと同一数の仮想キューVQk,j(kは仮想キュー識別子)が設定される。仮想キューVQk,jには、後に詳述するように、ユーザ端末MNから送信されたアクセスパス要求が受信されるごとに、当該アクセスパス要求を契機に生じるサービス要求をエンドサーバが処理するのに必要なサービス時間に応じたキューが登録(エンキュー)され、登録されたキューはサービス時間の逆数1/Cjに応じた割合で時間経過と共に順次に破棄(デキュー)される。これにより、本実施形態ではエンドサーバESjにおけるサービス要求の処理状況を、アクセスパスサーバAPS上で各仮想キューVQk,jのキュー長として模擬できるようになる。
【0035】
このように、本実施形態において各仮想キューVQjに先入れ先出しの規則で登録・破棄されるキューは、受信されたアクセスパス要求ではなく、当該アクセスパス要求を契機に予約されるサービス要求の処理に必要なセッション保留時間(サービス時間)を表すダミーキューである。
【0036】
アクセスパス要求受信部10は、各ユーザ端末MNから送信されたアクセスパス要求をインターフェース(I/F)経由で受信する。要求分析部11は、受信したアクセスパス要求を分析し、要求先のエンドサーバESjおよび要求されたサービスを識別する。仮想キュー選択部12は、アクセスパス要求で指定されたアクセス先のエンドサーバESjと対応付けられた複数の仮想キューVQk,jの中からキュー長が最小の仮想キューVQkx,jを選択する。これ以後、キュー長が最小の仮想キューおよびそのキュー値の識別子kには添え字xを付するものとする。
【0037】
仮想キュー更新部13は、前記選択された仮想キューVQkx,jに、要求されたサービスのエンドサーバESjにおける処理時間(サービス時間)に応じた長さのキューをエンキューする追加部と共に、各エンドサーバESjの仮想キューVQk,jに登録済みのキューを、前記サービス時間Cjおよび経過時間に基づいて順次にデキューする破棄部を備えている。
【0038】
アクセスタイミング決定部14は、後に詳述するように、前記選択された仮想キューVQkx,jのキュー長VQkx,j[t]に基づいて、当該アクセスパス要求に応答するアクセスタイミングを決定する。本実施形態では、アクセスタイミングが現在時刻tからの待機時間として決定される。アクセスパス応答生成部15は、エンドサーバESjへのアクセスタイミングを含むアクセスパス応答を生成する。アクセスパス応答返信部16は、前記アクセスパス応答を前記アクセスパス要求の送信元ユーザ端末にI/F経由で返信する。
【0039】
次いで、フローチャートを参照して本発明の動作を詳細に説明する。図3は、コンテンツ配信を要求するユーザ端末MNにおけるアクセスパス要求およびサービス要求の手順を示したフローチャート、図4は、アクセスパスサーバAPSにおけるアクセスパス応答の手順を示したフローチャートであり、図5はシーケンスフローである。なお、本実施形態における各符号の定義は以下の通りである。
【0040】
i:アクセスパス要求の識別子
j:エンドサーバESの識別子
k:仮想キューVQの識別子
sti:アクセスパス要求iについてのサービス時間
ti,j:エンドサーバESjに対するi番目のアクセスパス要求時刻
di,j:エンドサーバESjに対するi番目のアクセスパス要求に対して割り当てられるアクセスタイミングまでの遅延時間
Cj:各エンドサーバESjにおけるサービス時間
Qmax_j:各エンドサーバESjのキュー値の上限値
bi,j:要求されたサービスの重み値
VQj(ti,j)−:時刻tiでアクセスパス要求を受信する直前のエンドサーバESjのキュー長
VQj(ti,j)+:時刻tiで受信したアクセスパス要求を反映して更新された直後のエンドサーバESjのキュー長
【0041】
ユーザが自身のユーザ端末MNのキースイッチ等を操作してコンテンツのリクエスト操作を実施し、これが図3のステップS11で検知されるとステップS12へ進む。ステップS12では、リクエストするコンテンツの識別子および当該コンテンツを提供するエンドサーバESの識別子jを含んでアクセスパスサーバAPSを宛先とするアクセスパス要求が生成され、ステップS13において送信される。
【0042】
アクセスパスサーバAPSでは、図4のステップS31において、前記アクセスパス要求がアクセスパス要求受信部10で受信されるとステップS32へ進む。ステップS32では、前記要求分析部11において当該アクセスパス要求が分析され、要求されているコンテンツおよび要求先のエンドサーバESjが識別される。続くステップS33−S35では、当該要求先のエンドサーバESjに割り当てられている複数の仮想キューVQk,jの現在時刻tにおけるキュー値が、前回の更新時刻ti-1からの経過時間Dtおよび当該エンドサーバESjにおけるサービス時間Cjに基づいて更新される。
【0043】
すなわち、ステップS33では、受信したアクセスパス要求に登録されている識別子jに対応したエンドサーバESjに関して、時刻ti-1で受信したアクセスパス要求を反映して更新された直後の各仮想キューVQk,jのキュー長[VQk,j(ti-1)+]が前記仮想キュー設定部19から取り込まれる。ステップS34では、当該エンドサーバESjにおける標準的なサービス時間Cjが前記サービス時間記憶部18から取り込まれる。ステップS35では、今回のアクセスパス要求の受信時刻tiにおける各仮想キューVQk,jのキュー長[VQk,j(ti)−]が次式(2)で求められる。
【0044】
VQk,j(ti)−=VQk,j(ti-1)+−(ti−ti-1)/Cj …(2)
【0045】
ステップS36では、キュー長[VQk,j(ti)−]が最小の仮想キューVQkx,jが、今回のアクセスパス要求に関するキューの登録先として選択される。ステップS37では、アクセスパス要求を送信したユーザ端末MNに通知するアクセスタイミングが、当該アクセスパス要求の受信時刻tiを基準にした遅延時間di,jとして次式(3)で求められる。
【0046】
di,j=VQkx,j(ti)−×Cj …(3)
【0047】
ステップS38では、前記選択された仮想キューVQkx,jのキュー値[VQkx,j(ti)+]が次式(4)に基づいて計算され、他の仮想キューVQk,jのキュー値[VQk,j(ti)+]が次式(5)に基づいて計算される。ステップS39では、前記計算結果に基づいて各仮想キューVQk,jのキュー値[VQk,j(ti)+]が更新される。
【0048】
VQkx,j(ti)+=VQkx,j(ti)−+bi …(4)
【0049】
VQk,j(ti)+=VQk,j(ti)− …(5)
【0050】
ここで、重み値[bi]は要求されたサービスの提供に必要なサービス時間stiを代表するキュー値であり、要求されたサービスのサービス時間stiが、予めアクセスパスサーバAPSに登録されている標準的なサービス時間Cjと同等であればbi=1とされ、サービス時間stiがCjよりも長ければbi>1とされ、サービス時間stiがCjよりも短ければbi<1とされる。
【0051】
ステップS40では、前記アクセスタイミングとしての遅延時間di,jを含むアクセスパス応答が前記アクセスパス応答生成部15で生成され、ステップS41において、前記アクセスパス応答返信部16から前記アクセスパス要求の送信端末宛に返信される。
【0052】
図3へ戻り、ユーザ端末MNでは、前記アクセスパス応答をステップS14で受信すると、ステップS15では、このアクセスパス応答に登録されている遅延時間di,jが抽出される。ステップS16では、抽出された遅延時間di,jが所定の上限値dmaxと比較され、遅延時間di,j>dmaxであればステップS17へ進み、サービスを提供できない旨のエラーメッセージを端末ディスプレーに表示して当該処理を中止する。これに対して、遅延時間di,j≦dmaxであればステップS18へ進み、図6(a),(b)に一例を示したように、リクエストが先着順に処理されている旨を示す受付完了メッセージが端末ディスプレーに表示される。
【0053】
ステップS19では、配信を要求するコンテンツの識別子およびエンドサーバの識別子を含むサービス要求が生成される。ステップS20では、前記ステップS13においてアクセスパス要求を送信してからの経過時間が前記遅延時間di,jに達したか否かに基づいてアクセスタイミングであるか否かが判定され、アクセスタイミングを待ってステップS21へ進む。ステップS21では、前記ステップS19で生成されたサービス要求が前記エンドサーバESjを宛先として送信される。このようなユーザ端末MNにおけるアクセスタイミングまでの待機処理は、Java(登録商標)script,Flashなどの各種スクリプト言語を利用することで実装できる。
【0054】
このサービス要求を受信したエンドサーバESjは、要求されているコンテンツを用意して前記ユーザ端末MNへ配信する。ユーザ端末MNは、前記コンテンツをステップS22で受信すると、ステップS23へ進んで当該コンテンツを保存する。ステップS24では、図7に一例を示したダウンロード完了メッセージが端末ディスプレーに表示される。
【0055】
本実施形態によれば、アクセスパス要求が受信されるごとに、キュー長の最も短い仮想キューが選択され、当該仮想キューにキューが登録されるので、より早くアクセスパス要求を送信したユーザ端末に対して、より早いサービス要求タイミングを割り当てられるようになる。
【0056】
また、本実施形態によれば、アクセスパスサーバAPSではエンドサーバごとに最大同時接続セッション数分の仮想キューを設定し、アクセスパス要求が受信されるごとに、サービス要求先のエンドサーバの仮想キューにサービス時間に応じた長さのキューを登録すると共に、各キューを各エンドサーバでのサービス処理量に応じた割合で仮想的に順次消化させる。これにより、各エンドサーバにおけるサービスの処理状況をアクセスパスサーバAPS上で模擬することができ、アクセスパス要求が受信されたときの各仮想キューのキュー長に基づいてサービス要求タイミングを算出できるので、エンドサーバの運用効率を同時接続セッション数の観点から最適化できるようになる。
[最大同時接続セッション数の変更]
【0057】
次いで、前回のアクセスパス要求を受け付けた時刻ti-1と次回のアクセスパス要求を受け付ける時刻tiとの間の時刻Tにおいて、最大同時接続セッション数Smaxを変更するイベントが発生した場合でも、先にアクセスパス要求を送信したユーザよりも後にアクセスパス要求を送信したユーザのアクセスタイミングが先になる逆転現象を防止して公平性を担保する技術について、図8のフローチャートに沿って説明する。
【0058】
時刻Tで最大同時接続セッション数Smaxを変更するイベントが発生し、これがステップS50で検知されると、ステップS51では、対象となるエンドサーバESjの全ての仮想キューVQk,jに関して、現在時刻Tにおけるキュー値VQk,j(T)が次式(6)に基づいて算出される。
【0059】
VQk,j(T)=VQk,j(ti-1)+−(T−ti-1)/Cj …(6)
【0060】
ステップS52では、変更前後の最大同時接続セッション数Smax1,Smax2に基づいて、変更が最大同時接続セッション数Smaxの増加および削減のいずれであるかが判定される。削減(Smax1>Smax2)であればステップS53へ進み、エンドサーバESjごとにキュー長の小さい順にSmax2個の仮想キューVQが存続仮想キューVQとして選択される。ステップS54では、存続仮想キューVQ以外の仮想キューVQが全て破棄される。
【0061】
図9は、変更イベントが最大同時接続セッション数Smaxを5つから3つに減じる削減要求であった場合の処理を模式的に表現した図であり、既存の5つの仮想キューVQ1,j〜VQ5,jのうち、キュー長の小さい上位3つの仮想キューVQ2,j,VQ4,j,VQ5,jを残して残りの2つの仮想キューVQ1,j,VQ3,jが破棄されている。
【0062】
これに対して、変更が最大同時接続セッション数Smaxの増加であればステップS55へ進み、差分に相当する個数の仮想キューVQが追加される。ステップS56では、既存の仮想キューVQを対象にキュー長の最小値VQkx,j(T)が判別される。ステップS57では、前記追加された全ての仮想キューVQに前記キュー長の最小値VQkx,j(T)が登録される。
【0063】
図10は、変更イベントが最大同時接続セッション数Smaxを3つから5つに増やす場合の動作を模式的に表現した図であり、既存の3つの仮想キューVQ1,j〜VQ3,jに2つの仮想キューVQ4,j,VQ5,jが追加され、既存の3つの仮想キューVQ1,j〜VQ3,jの中でキュー長の最小値「2」が、追加された仮想キュー2つの仮想キューVQ4,j,VQ5,jに登録される。
[サービス時間の変更]
【0064】
次いで、エンドサーバESjにおけるサービス時間Cjを変更するイベントが発生した場合でも、先にアクセスパス要求を送信したユーザよりも後にアクセスパス要求を送信したユーザのアクセスタイミングが先になる逆転現象を防止して公平性を担保する技術について説明する。
【0065】
エンドサーバESjにおけるサービス時間Cjを変更するイベントの発生時刻をTとし、当該時刻Tを境にサービス時間がCj1からCj2に変更される場合を考える。イベント発生時刻Tよりも前の時刻ti-1でアクセスパス要求を受け付けられたユーザ端末NMの待機時間di-1,jは、その時点(時刻ti-1)でのキュー値の最小値をVQkx1,j(ti-1)−とすれば次式(7)で表される。
【0066】
di-1,j=VQkx1,j(ti-1)−×Cj1 …(7)
【0067】
一方、イベント発生時刻Tよりも後の時刻tiでアクセスパス要求を受け付けられたユーザ端末MNの待機時間di,jは、その時点(時刻ti)でのキュー値の最小値をVQkx2,j(ti)−とすれば次式(8)で表される。但し、時刻tiでキュー値が最小値を示す仮想キューは時刻Tでも最小値を示す。
【0068】
di,j=VQkx2,j(ti)−×Cj2=VQk1,j(T)+−(ti−T)/Cj2 …(8)
【0069】
ここで、先にアクセスパス要求を送信したユーザ端末MNよりも後にアクセスパス要求を送信したユーザ端末MNのアクセスタイミングが先になる逆転現象を防止するためには、次式(9)の条件が成立すれば良い。
【0070】
ti-1+di-1,j≦ti+di,j …(9)
【0071】
上式(9)に上式(7),(8)を代入すると次式(10)が得られる。したがって、時刻Tにおいてサービス時間Cjを変更するイベントが発生した場合でも、その時点での最小キュー値が次式(11)を満足していれば、最短の遅延時間でサービス要求の順序逆転を防止できる。
【0072】
VQkx2,j(T)+≧(Cj1/Cj2)・VQkx1,j(T)−−(Cj1/Cj2)・bi-1 …(10)
【0073】
VQkx2,j(T)+=(Cj1/Cj2)・VQkx1,j(T)−−(Cj1/Cj2)・bi-1 …(11)
【0074】
ただし、上式ではVQkx,j(T)−およびbi-1 を記憶しておく必要がある。一方、次式(12),(13)が成立することを利用すれば、VQkx,j(T)+を次式(14)のように設定しても上式(10)が満足されることが判る。
【0075】
VQkx2,j(T)−≧VQkx1,j(T)− …(12)
【0076】
(Cj1/Cj2)・bi-1>0 …(13)
【0077】
VQkx2,j(T)+=(Cj1/Cj2)・VQkx2,j(T)− …(14)
【0078】
したがって、時刻Tを境にサービス時間がCj1からCj2に変更される場合には、時刻Tにおける全ての仮想キューVQk,jをCj1/Cj2倍に更新し、時刻tiでは更新後のキュー値を対象に最小キュー値を選択すれば良いことが判る。
【図面の簡単な説明】
【0079】
【図1】本発明のリクエスト受付システムが適用されるネットワークのブロック図である。
【図2】アクセスパスサーバの主要部の構成を示した機能ブロック図である。
【図3】ユーザ端末による要求手順を示したフローチャートである。
【図4】アクセスパスサーバにおける応答の手順を示したフローチャートである。
【図5】ユーザ端末、アクセスパスサーバおよびエンドサーバ間のシーケンスフローである。
【図6】受付完了メッセージの一例を示した図である。
【図7】ダウンロード完了メッセージの一例を示した図である。
【図8】最大同時接続セッション数の変更手順を示したフローチャートである。
【図9】最大同時接続セッション数を5つから3つに減じる処理を模式的に表現した図である。
【図10】最大同時接続セッション数を3つから5つに増やす処理を模式的に表現した図である。
【図11】仮想キュー設定部の機能を模式的に示した図である。
【図12】従来技術の課題を説明するための図(その1)である。
【図13】従来技術の課題を説明するための図(その2)である。
【符号の説明】
【0080】
10…アクセスパス要求受信部,11…要求分析部,12…仮想キュー選択部,13…仮想キュー更新部,14…アクセスタイミング決定部,15…アクセスパス応答生成部,16…アクセスパス応答返信部,17…同時接続セッション数記憶部,18…サービス時間記憶部,19…仮想キュー設定部
【技術分野】
【0001】
本発明は、ユーザ端末から送信されたアクセスパス要求を受け付けて、各ユーザ端末のエンドサーバへのアクセスタイミングを決定し、これを各ユーザ端末へのアクセスパスとして返信するリクエスト受付システムに関する。
【背景技術】
【0002】
災害発生時の安否確認のためのリクエスト、あるいはTV番組やラジオ番組でヒットチャートを発表した直後に人気曲の配信を要求するリクエストなど、特定のイベントを契機とするリクエストメッセージは短時間に集中する傾向がある。これらの宛先でリクエストを受け付けるサーバでは、リクエスト数が処理能力を超過すると、超過分についてはサービスの提供が不可能となる。このことは、同サービスを利用するユーザの満足度を低下させると共に、たとえばリクエストが有料コンテンツの配信であれば、コンテンツ提供者にとっては販売機会の損失となる。
【0003】
イベントを契機とするアクセスの集中は通常のアクセス量を遙かに凌駕し、瞬間的には、例えば10倍から100倍に達する場合もある。したがって、アクセス集中時のピーク時に合わせてサーバ容量を設計してしまうと、時間的に大半を占める通常時には大幅な過剰設備状態を招いてしまう。しかも、このようなアクセス集中は予測が難しいので、たとえ十分と予測される設備を用意できたとしても、その容量を上回るアクセスが集中する可能性を否定できない。
【0004】
一方、2003年12月に東京・大阪・名古屋で地上デジタル放送が開始され、それ以後、他の地域でも放送が順次開始されると共に、移動体受信端末向けサービスなどが拡充されることになっている。地上デジタル放送で提供される通信放送連携サービスでは、番組内容を契機とした同時大量アクセスの発生が予見されており、上記で指摘した事象が今後ますます顕在化してくることが想定される。
【0005】
このような同時大量アクセスを抑制する技術として、特許文献1には、サービス要求を受け付けて処理するという高負荷の処理を実行するエンドサーバとは別に、ユーザ端末から受信したアクセスパス要求を受け付けてアクセスパス応答を返信するという低負荷の処理のみを実行するアクセスパスサーバを独立して設ける技術が開示されている。
【0006】
ここでは、ユーザ端末からアクセスパス要求を受信したアクセスパスサーバが、受信したアクセスパス要求ごとにエンドサーバへのアクセスタイミング(待機時間)を決定し、これを各アクセスパス要求への応答メッセージとして各ユーザ端末へ通知する。ユーザ端末は、通知されたアクセスタイミングを待ってエンドサーバへアクセスする。前記アクセスタイミングは、エンドサーバへのアクセスが分散され、かつアクセスタイミングがアクセスパス要求の受付順序となるように決定される。
【特許文献1】特願2007−207986号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
上記した先行技術では、エンドサーバへ流入する単位時間あたりのアクセス数、すなわちアクセスレートが予め定められた上限値を超えないように、各ユーザ端末に対して待機時間が設定・通知され、ユーザ端末からエンドサーバに向かうアクセス数が制御される。しかしながら、上記の先行技術ではエンドサーバが各サービス要求の処理に要するサービス時間、即ちセッション保留時間が考慮されていなかったので、以下のような技術課題が生じ得る。
【0008】
すなわち、実サービスではエンドサーバがユーザ端末からのサービス要求に応答してサービス(例えば,コンテンツダウンロード)を提供する際にはサービス時間が発生する。しかしながら、上記の先行技術ではサービス時間が考慮されていないので、サービス時間が想定時間よりも長ければサービス要求が蓄積してサーバ輻輳を招く一方、サービス時間が想定時間よりも短ければサーバの稼働効率が低下してしまう。
【0009】
ここで、アクセスレートをR、サービス時間をCとすれば、エンドサーバの最大同時接続セッション数Smaxは次式(1)で与えられる。したがって、例えば秒間アクセスレートRが「1」,サービス時間Cが「5」であれば、エンドサーバの最大同時接続セッション数Smaxを5に設定することでエンドサーバの輻輳や効率低下を防止できることになる。
【0010】
Smax=R×C …(1)
【0011】
上記の例では、図12に一例を示したように、1秒ごとに1つのサービス要求ReqがエンドサーバESに受け容れられ、その結果、0秒から1秒の間のタイムスロットで最初のサービス要求Req1が受け容れられ、次の1秒から2秒の間のタイムスロットで次のサービス要求Req2が受け容れられ…といったように各サービス要求が順次に受け容れられる。
【0012】
しかしながら、例えばセッション数がゼロの状態からサービス要求の受け容れが開始される場合、図13に示したように、0秒から1秒の間のタイムスロットで5つのサービス要求を受け容れ可能なので、サービス要求Req1のみならず、その後の4つのサービス要求Req2−Req5も同時に受け容れ可能である。にもかかわらず、上記の例では一つのサービス要求Req1しか受け容れられない。
【0013】
したがって、エンドサーバESでは稼働効率の低下を余儀なくされ、その結果、図12,13を比較すれば明らかなように、サービス要求Req2は1秒から2秒の間のタイムスロットまで余計に待機させられ、サービス要求Req3は2秒から3秒の間のタイムスロットまで余計に待機させられ、サービス要求Req5に至っては、4秒から5秒の間のタイムスロットまで余計に待機させられ、4秒相当の遅延が無駄に生じることになる。
【0014】
本発明の目的は、上記した従来技術の課題を解決し、エンドサーバの運用効率を同時接続セッション数の観点から最適化し、ユーザ端末の待機時間を短縮できるリクエスト受付システムを提供することにある。
【課題を解決するための手段】
【0015】
上記した目的を達成するために、本発明は、アクセスパスサーバが、ユーザ端末からアクセスパス要求を受信して各ユーザ端末に許可するエンドサーバへのアクセスタイミングを決定して各ユーザ端末へ通知し、前記ユーザ端末は、前記通知されたアクセスタイミングでエンドサーバへサービス要求を送信するリクエスト受付システムにおいて、前記アクセスパスサーバが、以下のような手段を講じた点に特徴がある。
【0016】
(1)エンドサーバがサービス要求の処理に要するサービス時間を記憶する手段と、エンドサーバの最大同時接続セッション数を記憶する手段と、エンドサーバにおけるサービス時間を代表するキューが登録される複数の仮想キューをエンドサーバの同時接続セッション数に基づいて設定する手段と、ユーザ端末からアクセスパス要求を受信する手段と、アクセスパス要求の受信に応答して、当該アクセスパス要求を契機に生じるサービス要求に対するサービス時間を代表するキューの登録先となる仮想キューを選択する手段と、経過時間およびエンドサーバにおけるサービス時間に基づいて各仮想キューからキューを破棄(デキュー)し、前記選択された仮想キューに前記サービス時間に応じたキューを追加(エンキュー)する手段と、前記選択された仮想キューのキュー値に基づいて、前記ユーザ端末のエンドサーバへのアクセスタイミングを決定する手段と、前記アクセスタイミングの決定結果をユーザ端末へ通知する手段とを含むことを特徴とする。
【0017】
(2)仮想キューを選択する手段は、キュー長が最小の仮想キューを選択することを特徴とする。
【0018】
(3)選択された仮想キューに登録されるキューの値がサービス要求に応じて可変であることを特徴とする。
【0019】
(4)エンドサーバの同時接続セッション数を変更するイベントを検知する手段と、同時接続セッション数の増加に応答して仮想キューを追加し、同時接続セッション数の減少に応答して仮想キューを破棄する手段と、時刻Tで同時接続セッション数が追加されると、当該時刻Tの直前における既存の複数の仮想キューのなかで最小のキュー長に相当するキュー値を前記追加された仮想キューに登録する手段とを含むことを特徴とする。
【0020】
(5)エンドサーバにおけるサービス時間を変更するイベントを検知する手段と、時刻Tでサービス時間が変更されると、時刻T以前に設定したアクセスタイミングが時刻T以降に設定したアクセスタイミングよりも遅くならないように、変更前後のサービス時間に基づいて、時刻Tにおける各仮想キューのキュー値を補正する手段とを含むことを特徴とする。
【発明の効果】
【0021】
(1)アクセスパスサーバではエンドサーバごとに最大同時接続セッション数分の仮想キューを設定し、アクセスパス要求が受信されるごとに、サービス要求先のエンドサーバの仮想キューにサービス時間に応じた長さのキューを登録すると共に、各キューを各エンドサーバでのサービス処理時間に応じた割合で仮想的に順次消化させることで、各エンドサーバにおけるサービス要求の処理状態をアクセスパスサーバ上で模擬し、アクセスパス要求が受信されたときの各仮想キューのキュー長に基づいてサービス要求タイミングが算出されるので、エンドサーバの運用効率を同時接続セッション数の観点から最適化できるようになる。
【0022】
(2)アクセスパス要求が受信されるごとに、キュー長の最も短い仮想キューが選択され、当該仮想キューにキューが登録されるので、より早くアクセスパス要求を送信したユーザ端末に対して、より早いサービス要求タイミングを割り当てられるようになる。
【0023】
(3)選択された仮想キューに登録されるキューの値をサービス要求に応じて可変としたので、各サービス要求の処理に要するサービス時間の長短にかかわらず、より早くアクセスパス要求を送信したユーザ端末に対して、より早いサービス要求タイミングを割り当てられるようになる。
【0024】
(4)エンドサーバの同時接続セッション数を変更するイベントが生じても、より早くアクセスパス要求を送信したユーザ端末に対して、より早いサービス要求タイミングを割り当てられるようになる。
【0025】
(5)エンドサーバにおけるサービス時間を変更するイベントが生じても、より早くアクセスパス要求を送信したユーザ端末に対して、より早いサービス要求タイミングを割り当てられるようになる。
【発明を実施するための最良の形態】
【0026】
以下、図面を参照して本発明の最良の実施の形態について詳細に説明する。 図1は、本発明のリクエスト受付システムが適用されるネットワークの主要部の構成を示したブロック図であり、ここでは、ユーザ端末MNからエンドサーバES(サービス提供サーバ)へコンテンツ配信サービスを要求する場合を例にして説明する。
【0027】
携帯電話、PDAあるいはコンピュータなどのユーザ端末MNは基地局APを経由して携帯電話網あるいはインターネット等のIPネットワークNWに接続されている。また、ユーザ端末MNからのサービス要求に応答して、音楽や映像などのコンテンツを配信する複数のエンドサーバESjが、アクセスパスサーバAPSと共に前記IPネットワークNWに接続されている。
【0028】
前記アクセスパスサーバAPSは、各ユーザ端末MNにエンドサーバESjへのアクセスを許可するタイミングを決定して各ユーザ端末MNへ通知する機能を備え、ユーザ端末MNからアクセス先のエンドサーバESjの識別情報およびコンテンツの識別情報を含むアクセスパス要求のメッセージを受信すると、エンドサーバESjの能力や状況に基づいてアクセスタイミングを決定し、これをユーザ端末MNへ通知する。ユーザ端末MNは、通知されたアクセスタイミングを待ってエンドサーバESjへサービス要求を送信し、当該エンドサーバESjからコンテンツの配信サービスを享受する。
【0029】
図2は、前記アクセスパスサーバAPSの主要部の構成を示した機能ブロック図である。本実施形態では、アクセスパスサーバAPSがアクセスパス要求を受信するごとに実行する応答処理は極めて低負荷なので、アクセスパス要求が短時間に集中的に受信される場合でも、アクセスパスサーバAPSは全てのアクセスパス要求を受信順に滞りなく受付処理できる。
【0030】
同時接続セッション数記憶部17には、各エンドサーバESj(jはエンドサーバ識別子)が同時に接続できる最大セッション数Smax_jが記憶されている。サービス時間記憶部18には、各エンドサーバESjにおいてユーザが所望するサービスを提供するために必要な時間(セッション保留時間)がサービス時間Cjとして記憶されている。
【0031】
仮想キュー設定部19は、各エンドサーバESjにおけるサービス要求の処理状況をアクセスパスサーバAPS上で模擬するために設けられた本発明に特徴的な構成である。すなわち、各エンドサーバESjの最大同時接続セッション数Smax_jがn個であれば、エンドサーバESjにおけるサービス要求の処理状況は、図11に一例を示したように、エンドサーバESjの入力段にn個のFIFOバッファ(FIFO-1,FIFO-2、…FIFO-n)を装備し、ユーザ端末NMから送信されたサービス要求がいずれかのFIFOバッファから取り込まれて順次に処理される構造で模擬できる。
【0032】
そして、FIFOバッファにはサービス要求の処理に必要なセッション保持時間(サービス時間)に相当する量のデータ(キュー)を登録し、FIFOバッファの転送レートをエンドサーバESjのサービス時間の逆数1/Cjとすれば、各FIFOバッファにオーバーフローもアンダーフローを生じないようにサービス要求を割り振ることでエンドサーバESjの輻輳や効率低下を防止できる。
【0033】
そこで、本発明では上記した各FIFOバッファを模した仮想キューVQをアクセスパスサーバAPSに設け、この仮想キューVQにオーバーフローもアンダーフローも生じないように、各アクセスパス要求に対してサービス要求タイミングを割り当てることで、上記の技術課題を解決している。
【0034】
したがって、前記仮想キュー設定部19には、エンドサーバESjごとに、その最大同時接続セッション数Smax_jと同一数の仮想キューVQk,j(kは仮想キュー識別子)が設定される。仮想キューVQk,jには、後に詳述するように、ユーザ端末MNから送信されたアクセスパス要求が受信されるごとに、当該アクセスパス要求を契機に生じるサービス要求をエンドサーバが処理するのに必要なサービス時間に応じたキューが登録(エンキュー)され、登録されたキューはサービス時間の逆数1/Cjに応じた割合で時間経過と共に順次に破棄(デキュー)される。これにより、本実施形態ではエンドサーバESjにおけるサービス要求の処理状況を、アクセスパスサーバAPS上で各仮想キューVQk,jのキュー長として模擬できるようになる。
【0035】
このように、本実施形態において各仮想キューVQjに先入れ先出しの規則で登録・破棄されるキューは、受信されたアクセスパス要求ではなく、当該アクセスパス要求を契機に予約されるサービス要求の処理に必要なセッション保留時間(サービス時間)を表すダミーキューである。
【0036】
アクセスパス要求受信部10は、各ユーザ端末MNから送信されたアクセスパス要求をインターフェース(I/F)経由で受信する。要求分析部11は、受信したアクセスパス要求を分析し、要求先のエンドサーバESjおよび要求されたサービスを識別する。仮想キュー選択部12は、アクセスパス要求で指定されたアクセス先のエンドサーバESjと対応付けられた複数の仮想キューVQk,jの中からキュー長が最小の仮想キューVQkx,jを選択する。これ以後、キュー長が最小の仮想キューおよびそのキュー値の識別子kには添え字xを付するものとする。
【0037】
仮想キュー更新部13は、前記選択された仮想キューVQkx,jに、要求されたサービスのエンドサーバESjにおける処理時間(サービス時間)に応じた長さのキューをエンキューする追加部と共に、各エンドサーバESjの仮想キューVQk,jに登録済みのキューを、前記サービス時間Cjおよび経過時間に基づいて順次にデキューする破棄部を備えている。
【0038】
アクセスタイミング決定部14は、後に詳述するように、前記選択された仮想キューVQkx,jのキュー長VQkx,j[t]に基づいて、当該アクセスパス要求に応答するアクセスタイミングを決定する。本実施形態では、アクセスタイミングが現在時刻tからの待機時間として決定される。アクセスパス応答生成部15は、エンドサーバESjへのアクセスタイミングを含むアクセスパス応答を生成する。アクセスパス応答返信部16は、前記アクセスパス応答を前記アクセスパス要求の送信元ユーザ端末にI/F経由で返信する。
【0039】
次いで、フローチャートを参照して本発明の動作を詳細に説明する。図3は、コンテンツ配信を要求するユーザ端末MNにおけるアクセスパス要求およびサービス要求の手順を示したフローチャート、図4は、アクセスパスサーバAPSにおけるアクセスパス応答の手順を示したフローチャートであり、図5はシーケンスフローである。なお、本実施形態における各符号の定義は以下の通りである。
【0040】
i:アクセスパス要求の識別子
j:エンドサーバESの識別子
k:仮想キューVQの識別子
sti:アクセスパス要求iについてのサービス時間
ti,j:エンドサーバESjに対するi番目のアクセスパス要求時刻
di,j:エンドサーバESjに対するi番目のアクセスパス要求に対して割り当てられるアクセスタイミングまでの遅延時間
Cj:各エンドサーバESjにおけるサービス時間
Qmax_j:各エンドサーバESjのキュー値の上限値
bi,j:要求されたサービスの重み値
VQj(ti,j)−:時刻tiでアクセスパス要求を受信する直前のエンドサーバESjのキュー長
VQj(ti,j)+:時刻tiで受信したアクセスパス要求を反映して更新された直後のエンドサーバESjのキュー長
【0041】
ユーザが自身のユーザ端末MNのキースイッチ等を操作してコンテンツのリクエスト操作を実施し、これが図3のステップS11で検知されるとステップS12へ進む。ステップS12では、リクエストするコンテンツの識別子および当該コンテンツを提供するエンドサーバESの識別子jを含んでアクセスパスサーバAPSを宛先とするアクセスパス要求が生成され、ステップS13において送信される。
【0042】
アクセスパスサーバAPSでは、図4のステップS31において、前記アクセスパス要求がアクセスパス要求受信部10で受信されるとステップS32へ進む。ステップS32では、前記要求分析部11において当該アクセスパス要求が分析され、要求されているコンテンツおよび要求先のエンドサーバESjが識別される。続くステップS33−S35では、当該要求先のエンドサーバESjに割り当てられている複数の仮想キューVQk,jの現在時刻tにおけるキュー値が、前回の更新時刻ti-1からの経過時間Dtおよび当該エンドサーバESjにおけるサービス時間Cjに基づいて更新される。
【0043】
すなわち、ステップS33では、受信したアクセスパス要求に登録されている識別子jに対応したエンドサーバESjに関して、時刻ti-1で受信したアクセスパス要求を反映して更新された直後の各仮想キューVQk,jのキュー長[VQk,j(ti-1)+]が前記仮想キュー設定部19から取り込まれる。ステップS34では、当該エンドサーバESjにおける標準的なサービス時間Cjが前記サービス時間記憶部18から取り込まれる。ステップS35では、今回のアクセスパス要求の受信時刻tiにおける各仮想キューVQk,jのキュー長[VQk,j(ti)−]が次式(2)で求められる。
【0044】
VQk,j(ti)−=VQk,j(ti-1)+−(ti−ti-1)/Cj …(2)
【0045】
ステップS36では、キュー長[VQk,j(ti)−]が最小の仮想キューVQkx,jが、今回のアクセスパス要求に関するキューの登録先として選択される。ステップS37では、アクセスパス要求を送信したユーザ端末MNに通知するアクセスタイミングが、当該アクセスパス要求の受信時刻tiを基準にした遅延時間di,jとして次式(3)で求められる。
【0046】
di,j=VQkx,j(ti)−×Cj …(3)
【0047】
ステップS38では、前記選択された仮想キューVQkx,jのキュー値[VQkx,j(ti)+]が次式(4)に基づいて計算され、他の仮想キューVQk,jのキュー値[VQk,j(ti)+]が次式(5)に基づいて計算される。ステップS39では、前記計算結果に基づいて各仮想キューVQk,jのキュー値[VQk,j(ti)+]が更新される。
【0048】
VQkx,j(ti)+=VQkx,j(ti)−+bi …(4)
【0049】
VQk,j(ti)+=VQk,j(ti)− …(5)
【0050】
ここで、重み値[bi]は要求されたサービスの提供に必要なサービス時間stiを代表するキュー値であり、要求されたサービスのサービス時間stiが、予めアクセスパスサーバAPSに登録されている標準的なサービス時間Cjと同等であればbi=1とされ、サービス時間stiがCjよりも長ければbi>1とされ、サービス時間stiがCjよりも短ければbi<1とされる。
【0051】
ステップS40では、前記アクセスタイミングとしての遅延時間di,jを含むアクセスパス応答が前記アクセスパス応答生成部15で生成され、ステップS41において、前記アクセスパス応答返信部16から前記アクセスパス要求の送信端末宛に返信される。
【0052】
図3へ戻り、ユーザ端末MNでは、前記アクセスパス応答をステップS14で受信すると、ステップS15では、このアクセスパス応答に登録されている遅延時間di,jが抽出される。ステップS16では、抽出された遅延時間di,jが所定の上限値dmaxと比較され、遅延時間di,j>dmaxであればステップS17へ進み、サービスを提供できない旨のエラーメッセージを端末ディスプレーに表示して当該処理を中止する。これに対して、遅延時間di,j≦dmaxであればステップS18へ進み、図6(a),(b)に一例を示したように、リクエストが先着順に処理されている旨を示す受付完了メッセージが端末ディスプレーに表示される。
【0053】
ステップS19では、配信を要求するコンテンツの識別子およびエンドサーバの識別子を含むサービス要求が生成される。ステップS20では、前記ステップS13においてアクセスパス要求を送信してからの経過時間が前記遅延時間di,jに達したか否かに基づいてアクセスタイミングであるか否かが判定され、アクセスタイミングを待ってステップS21へ進む。ステップS21では、前記ステップS19で生成されたサービス要求が前記エンドサーバESjを宛先として送信される。このようなユーザ端末MNにおけるアクセスタイミングまでの待機処理は、Java(登録商標)script,Flashなどの各種スクリプト言語を利用することで実装できる。
【0054】
このサービス要求を受信したエンドサーバESjは、要求されているコンテンツを用意して前記ユーザ端末MNへ配信する。ユーザ端末MNは、前記コンテンツをステップS22で受信すると、ステップS23へ進んで当該コンテンツを保存する。ステップS24では、図7に一例を示したダウンロード完了メッセージが端末ディスプレーに表示される。
【0055】
本実施形態によれば、アクセスパス要求が受信されるごとに、キュー長の最も短い仮想キューが選択され、当該仮想キューにキューが登録されるので、より早くアクセスパス要求を送信したユーザ端末に対して、より早いサービス要求タイミングを割り当てられるようになる。
【0056】
また、本実施形態によれば、アクセスパスサーバAPSではエンドサーバごとに最大同時接続セッション数分の仮想キューを設定し、アクセスパス要求が受信されるごとに、サービス要求先のエンドサーバの仮想キューにサービス時間に応じた長さのキューを登録すると共に、各キューを各エンドサーバでのサービス処理量に応じた割合で仮想的に順次消化させる。これにより、各エンドサーバにおけるサービスの処理状況をアクセスパスサーバAPS上で模擬することができ、アクセスパス要求が受信されたときの各仮想キューのキュー長に基づいてサービス要求タイミングを算出できるので、エンドサーバの運用効率を同時接続セッション数の観点から最適化できるようになる。
[最大同時接続セッション数の変更]
【0057】
次いで、前回のアクセスパス要求を受け付けた時刻ti-1と次回のアクセスパス要求を受け付ける時刻tiとの間の時刻Tにおいて、最大同時接続セッション数Smaxを変更するイベントが発生した場合でも、先にアクセスパス要求を送信したユーザよりも後にアクセスパス要求を送信したユーザのアクセスタイミングが先になる逆転現象を防止して公平性を担保する技術について、図8のフローチャートに沿って説明する。
【0058】
時刻Tで最大同時接続セッション数Smaxを変更するイベントが発生し、これがステップS50で検知されると、ステップS51では、対象となるエンドサーバESjの全ての仮想キューVQk,jに関して、現在時刻Tにおけるキュー値VQk,j(T)が次式(6)に基づいて算出される。
【0059】
VQk,j(T)=VQk,j(ti-1)+−(T−ti-1)/Cj …(6)
【0060】
ステップS52では、変更前後の最大同時接続セッション数Smax1,Smax2に基づいて、変更が最大同時接続セッション数Smaxの増加および削減のいずれであるかが判定される。削減(Smax1>Smax2)であればステップS53へ進み、エンドサーバESjごとにキュー長の小さい順にSmax2個の仮想キューVQが存続仮想キューVQとして選択される。ステップS54では、存続仮想キューVQ以外の仮想キューVQが全て破棄される。
【0061】
図9は、変更イベントが最大同時接続セッション数Smaxを5つから3つに減じる削減要求であった場合の処理を模式的に表現した図であり、既存の5つの仮想キューVQ1,j〜VQ5,jのうち、キュー長の小さい上位3つの仮想キューVQ2,j,VQ4,j,VQ5,jを残して残りの2つの仮想キューVQ1,j,VQ3,jが破棄されている。
【0062】
これに対して、変更が最大同時接続セッション数Smaxの増加であればステップS55へ進み、差分に相当する個数の仮想キューVQが追加される。ステップS56では、既存の仮想キューVQを対象にキュー長の最小値VQkx,j(T)が判別される。ステップS57では、前記追加された全ての仮想キューVQに前記キュー長の最小値VQkx,j(T)が登録される。
【0063】
図10は、変更イベントが最大同時接続セッション数Smaxを3つから5つに増やす場合の動作を模式的に表現した図であり、既存の3つの仮想キューVQ1,j〜VQ3,jに2つの仮想キューVQ4,j,VQ5,jが追加され、既存の3つの仮想キューVQ1,j〜VQ3,jの中でキュー長の最小値「2」が、追加された仮想キュー2つの仮想キューVQ4,j,VQ5,jに登録される。
[サービス時間の変更]
【0064】
次いで、エンドサーバESjにおけるサービス時間Cjを変更するイベントが発生した場合でも、先にアクセスパス要求を送信したユーザよりも後にアクセスパス要求を送信したユーザのアクセスタイミングが先になる逆転現象を防止して公平性を担保する技術について説明する。
【0065】
エンドサーバESjにおけるサービス時間Cjを変更するイベントの発生時刻をTとし、当該時刻Tを境にサービス時間がCj1からCj2に変更される場合を考える。イベント発生時刻Tよりも前の時刻ti-1でアクセスパス要求を受け付けられたユーザ端末NMの待機時間di-1,jは、その時点(時刻ti-1)でのキュー値の最小値をVQkx1,j(ti-1)−とすれば次式(7)で表される。
【0066】
di-1,j=VQkx1,j(ti-1)−×Cj1 …(7)
【0067】
一方、イベント発生時刻Tよりも後の時刻tiでアクセスパス要求を受け付けられたユーザ端末MNの待機時間di,jは、その時点(時刻ti)でのキュー値の最小値をVQkx2,j(ti)−とすれば次式(8)で表される。但し、時刻tiでキュー値が最小値を示す仮想キューは時刻Tでも最小値を示す。
【0068】
di,j=VQkx2,j(ti)−×Cj2=VQk1,j(T)+−(ti−T)/Cj2 …(8)
【0069】
ここで、先にアクセスパス要求を送信したユーザ端末MNよりも後にアクセスパス要求を送信したユーザ端末MNのアクセスタイミングが先になる逆転現象を防止するためには、次式(9)の条件が成立すれば良い。
【0070】
ti-1+di-1,j≦ti+di,j …(9)
【0071】
上式(9)に上式(7),(8)を代入すると次式(10)が得られる。したがって、時刻Tにおいてサービス時間Cjを変更するイベントが発生した場合でも、その時点での最小キュー値が次式(11)を満足していれば、最短の遅延時間でサービス要求の順序逆転を防止できる。
【0072】
VQkx2,j(T)+≧(Cj1/Cj2)・VQkx1,j(T)−−(Cj1/Cj2)・bi-1 …(10)
【0073】
VQkx2,j(T)+=(Cj1/Cj2)・VQkx1,j(T)−−(Cj1/Cj2)・bi-1 …(11)
【0074】
ただし、上式ではVQkx,j(T)−およびbi-1 を記憶しておく必要がある。一方、次式(12),(13)が成立することを利用すれば、VQkx,j(T)+を次式(14)のように設定しても上式(10)が満足されることが判る。
【0075】
VQkx2,j(T)−≧VQkx1,j(T)− …(12)
【0076】
(Cj1/Cj2)・bi-1>0 …(13)
【0077】
VQkx2,j(T)+=(Cj1/Cj2)・VQkx2,j(T)− …(14)
【0078】
したがって、時刻Tを境にサービス時間がCj1からCj2に変更される場合には、時刻Tにおける全ての仮想キューVQk,jをCj1/Cj2倍に更新し、時刻tiでは更新後のキュー値を対象に最小キュー値を選択すれば良いことが判る。
【図面の簡単な説明】
【0079】
【図1】本発明のリクエスト受付システムが適用されるネットワークのブロック図である。
【図2】アクセスパスサーバの主要部の構成を示した機能ブロック図である。
【図3】ユーザ端末による要求手順を示したフローチャートである。
【図4】アクセスパスサーバにおける応答の手順を示したフローチャートである。
【図5】ユーザ端末、アクセスパスサーバおよびエンドサーバ間のシーケンスフローである。
【図6】受付完了メッセージの一例を示した図である。
【図7】ダウンロード完了メッセージの一例を示した図である。
【図8】最大同時接続セッション数の変更手順を示したフローチャートである。
【図9】最大同時接続セッション数を5つから3つに減じる処理を模式的に表現した図である。
【図10】最大同時接続セッション数を3つから5つに増やす処理を模式的に表現した図である。
【図11】仮想キュー設定部の機能を模式的に示した図である。
【図12】従来技術の課題を説明するための図(その1)である。
【図13】従来技術の課題を説明するための図(その2)である。
【符号の説明】
【0080】
10…アクセスパス要求受信部,11…要求分析部,12…仮想キュー選択部,13…仮想キュー更新部,14…アクセスタイミング決定部,15…アクセスパス応答生成部,16…アクセスパス応答返信部,17…同時接続セッション数記憶部,18…サービス時間記憶部,19…仮想キュー設定部
【特許請求の範囲】
【請求項1】
アクセスパスサーバが、ユーザ端末からアクセスパス要求を受信して各ユーザ端末に許可するエンドサーバへのアクセスタイミングを決定して各ユーザ端末へ通知し、前記ユーザ端末は、前記通知されたアクセスタイミングでエンドサーバへサービス要求を送信するリクエスト受付システムにおいて、
前記アクセスパスサーバが、
エンドサーバがサービス要求の処理に要するサービス時間を記憶する手段と、
エンドサーバの最大同時接続セッション数を記憶する手段と、
エンドサーバにおけるサービス時間を代表するキューが仮想的に登録される複数の仮想キューをエンドサーバの同時接続セッション数に基づいて設定する手段と、
ユーザ端末からアクセスパス要求を受信する手段と、
アクセスパス要求の受信に応答して、当該アクセスパス要求を契機に生じるサービス要求に対するサービス時間を代表するキューの登録先となる仮想キューを選択する手段と、
経過時間およびエンドサーバにおけるサービス時間に基づいて各仮想キューからキューを破棄し、前記選択された仮想キューに前記サービス時間に応じたキューを追加する手段と、
前記選択された仮想キューのキュー値に基づいて、前記ユーザ端末のエンドサーバへのアクセスタイミングを決定する手段と、
前記アクセスタイミングの決定結果をユーザ端末へ通知する手段とを具備したことを特徴とするリクエスト受付システム。
【請求項2】
複数のエンドサーバを備え、
前記複数の仮想キューがエンドサーバごとに設定されたことを特徴とする請求項1に記載のリクエスト受付システム。
【請求項3】
前記仮想キューを選択する手段は、キュー長が最小の仮想キューを選択することを特徴とする請求項1または2に記載のリクエスト受付システム。
【請求項4】
前記選択された仮想キューに登録されるキューの値がサービス要求に応じて可変であることを特徴とする請求項1ないし3のいずれかに記載のリクエスト受付システム。
【請求項5】
前記仮想キューの個数がエンドサーバの同時接続セッション数と同一であることを特徴とする請求項1ないし4のいずれかに記載のリクエスト受付システム。
【請求項6】
エンドサーバの同時接続セッション数を変更するイベントを検知する手段と、
前記同時接続セッション数の増加に応答して仮想キューを追加し、同時接続セッション数の減少に応答して仮想キューの一部を破棄する手段と、
時刻Tで同時接続セッション数が追加されると、当該時刻Tの直前における既存の複数の仮想キューのなかで最小のキュー長に相当するキュー値を前記追加された仮想キューに登録する手段とを含むことを特徴とする請求項1ないし5のいずれかに記載のリクエスト受付システム。
【請求項7】
エンドサーバにおけるサービス時間を変更するイベントを検知する手段と、
時刻Tでエンドサーバにおけるサービス時間が変更されると、時刻T以前に設定したアクセスタイミングが時刻T以降に設定したアクセスタイミングよりも後にならないように、変更前後のサービス時間に基づいて、時刻Tにおける各仮想キューのキュー値を補正する手段とを含むことを特徴とする請求項1ないし6のいずれかに記載のリクエスト受付システム。
【請求項8】
前記仮想キューのキュー値を補正する手段は、エンドサーバにおける変更前のサービス時間をCj1、変更後のサービス時間をCj2としたとき、時刻Tにおける各仮想キューのキュー値を(Cj1/Cj2)倍に補正することを特徴とする請求項7に記載のリクエスト受付システム。
【請求項1】
アクセスパスサーバが、ユーザ端末からアクセスパス要求を受信して各ユーザ端末に許可するエンドサーバへのアクセスタイミングを決定して各ユーザ端末へ通知し、前記ユーザ端末は、前記通知されたアクセスタイミングでエンドサーバへサービス要求を送信するリクエスト受付システムにおいて、
前記アクセスパスサーバが、
エンドサーバがサービス要求の処理に要するサービス時間を記憶する手段と、
エンドサーバの最大同時接続セッション数を記憶する手段と、
エンドサーバにおけるサービス時間を代表するキューが仮想的に登録される複数の仮想キューをエンドサーバの同時接続セッション数に基づいて設定する手段と、
ユーザ端末からアクセスパス要求を受信する手段と、
アクセスパス要求の受信に応答して、当該アクセスパス要求を契機に生じるサービス要求に対するサービス時間を代表するキューの登録先となる仮想キューを選択する手段と、
経過時間およびエンドサーバにおけるサービス時間に基づいて各仮想キューからキューを破棄し、前記選択された仮想キューに前記サービス時間に応じたキューを追加する手段と、
前記選択された仮想キューのキュー値に基づいて、前記ユーザ端末のエンドサーバへのアクセスタイミングを決定する手段と、
前記アクセスタイミングの決定結果をユーザ端末へ通知する手段とを具備したことを特徴とするリクエスト受付システム。
【請求項2】
複数のエンドサーバを備え、
前記複数の仮想キューがエンドサーバごとに設定されたことを特徴とする請求項1に記載のリクエスト受付システム。
【請求項3】
前記仮想キューを選択する手段は、キュー長が最小の仮想キューを選択することを特徴とする請求項1または2に記載のリクエスト受付システム。
【請求項4】
前記選択された仮想キューに登録されるキューの値がサービス要求に応じて可変であることを特徴とする請求項1ないし3のいずれかに記載のリクエスト受付システム。
【請求項5】
前記仮想キューの個数がエンドサーバの同時接続セッション数と同一であることを特徴とする請求項1ないし4のいずれかに記載のリクエスト受付システム。
【請求項6】
エンドサーバの同時接続セッション数を変更するイベントを検知する手段と、
前記同時接続セッション数の増加に応答して仮想キューを追加し、同時接続セッション数の減少に応答して仮想キューの一部を破棄する手段と、
時刻Tで同時接続セッション数が追加されると、当該時刻Tの直前における既存の複数の仮想キューのなかで最小のキュー長に相当するキュー値を前記追加された仮想キューに登録する手段とを含むことを特徴とする請求項1ないし5のいずれかに記載のリクエスト受付システム。
【請求項7】
エンドサーバにおけるサービス時間を変更するイベントを検知する手段と、
時刻Tでエンドサーバにおけるサービス時間が変更されると、時刻T以前に設定したアクセスタイミングが時刻T以降に設定したアクセスタイミングよりも後にならないように、変更前後のサービス時間に基づいて、時刻Tにおける各仮想キューのキュー値を補正する手段とを含むことを特徴とする請求項1ないし6のいずれかに記載のリクエスト受付システム。
【請求項8】
前記仮想キューのキュー値を補正する手段は、エンドサーバにおける変更前のサービス時間をCj1、変更後のサービス時間をCj2としたとき、時刻Tにおける各仮想キューのキュー値を(Cj1/Cj2)倍に補正することを特徴とする請求項7に記載のリクエスト受付システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2009−301095(P2009−301095A)
【公開日】平成21年12月24日(2009.12.24)
【国際特許分類】
【出願番号】特願2008−151602(P2008−151602)
【出願日】平成20年6月10日(2008.6.10)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】
【公開日】平成21年12月24日(2009.12.24)
【国際特許分類】
【出願日】平成20年6月10日(2008.6.10)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】
[ Back to top ]