以下、図面を参照して本発明の最良の実施形態について詳細に説明する。図1は、本発明の通信セッション規制システムが適用されるネットワークの主要部の構成を示したブロック図であり、ここでは、ユーザ端末MNからエンドサーバES(サービス提供サーバ)へコンテンツ配信サービスを要求する場合の発信規制を例にして説明する。
各ユーザ端末MNは、ユーザの発信操作に応答して、所望のサービスをエンドサーバESへ要求するための発信動作を実行する。ただし、本実施形態では全ての発信動作が各ユーザ端末MNにおいて一旦保留され、かつユーザ端末MNの一部が所定の確率Rsampleでサンプル端末MN(s)に分類され、サンプル端末MN(s)のみが前記発信動作に応答してポーリングサーバPSにネットワークNW経由でポーリングする。ポーリングサーバPSは、所定の制御スロットごとにポーリング数Npog[x]を計測して制御サーバCSへ報告する。
制御サーバCSは、後にフローチャートを参照して詳述するように、各ユーザ端末MNにおいて保留されている発信動作を解除するタイミングを、各ユーザ端末MNとエンドサーバESとの間に確立される通信セッションの継続時間(サービス時間)とエンドサーバESに同時接続可能なセッション数とに基づいて制御スロット単位で決定し、これを放送サーバBSへ通知する。放送サーバBSは、前記通知された保留解除タイミングを含む制御情報を放送局6から放送波で送信する。各ユーザ端末MNは、前記保留解除タイミングを放送波で受信すると、保留中の発信動作の発生時刻が当該保留解除タイミングよりも前であれば保留を解除し、当該保留解除タイミングよりも後であれば保留を継続する。なお、制御サーバCSから各ユーザ端末1への制御情報の通知方法は放送波に限定されず、インターネット等の他の適宜の通知手段により通知されるようにしても良い。
保留解除されたユーザ端末MNからは、エンドサーバESへサービス要求の発信動作が実行され、ユーザ端末MNとエンドサーバESとの間に通信セッションが確立される。エンドサーバESは、各ユーザ端末MNから要求されたサービスが、例えばコンテンツのダウンロード要求であれば当該コンテンツをユーザ端末MNへダウンロードし、その完了後に通信セッションを遮断する。本実施形態では、エンドサーバESが各ユーザ端末MNからの要求に応じてサービスを提供するのに要する時間、換言すれば通信セッションが確立されている時間が「サービス時間(TAT)」として定義される。
図2は、前記ユーザ端末MNの動作を示したフローチャートであり、前記制御スロットとは非同期に所定の周期で繰り返し実行される。
ステップS11では、保留継続中の発信動作の有無が判定され、最初は保留継続中の発信動作が無いと判定されるのでステップS18へ進む。ステップS18では新たな発信操作の有無が判定され、ユーザによる発信操作が検知されるとステップS19へ進み、当該発信操作を契機とする発信動作が一旦保留される。ステップS20では、所定の乱数シードを乱数関数に適用して乱数rand1(0<rand1≦1)が発生される。
ステップS21では、前記乱数rand1と既知のサンプル確率Rsampleとが比較される。このサンプル確率Rsampleは、ユーザ端末MNの一部をサンプル端末MN(S)に分類する確率であり、rand1≦Rsampleであれば、サンプル端末MN(S)として振る舞うためにステップS22へ進む。前記サンプル確率Rsampleは、放送波などでユーザ端末MNへ事前に通知しておくことが望ましい。
ステップS22では、サンプル端末MN(S)に分類されたユーザ端末MNのみがポーリングサーバPSにポーリングする。このポーリングは、例えばポーリングサーバPSを発呼して接続が確認されると直ぐに切断する簡易アクセスである。ポーリングサーバPSでは、各ユーザ端末MNからのポーリング総数が制御スロット単位で計測される。この計測結果は、所定のタイミングで制御サーバCSへ通知される。
次の制御周期では、前記ステップS11において、保留継続中の発信動作が有ると判定されるのでステップS12へ進む。ステップS12では、後に詳述する制御情報の受信の有無が判定される。制御情報が受信されなければ前記ステップS18へ進み、更なる発信動作が検知されれば、その発信動作の保留処理が実行される。ステップS13〜S17の処理については後述する。
図3は、前記制御サーバCSの動作を示したフローチャートであり、制御サーバCSは今回の制御スロット[τ0]が終了するごとに、次回の制御スロット[τ1]において保留解除する発信動作を特定するための保留解除処理を実行する。
ステップS31において、今回の制御スロットτ0の終了タイミングが検知されると、ステップS32では、当該制御スロットτ0でサンプル端末MN(s)により送信され、前記ポーリングサーバPSで測定されたポーリング数Npog[τ0]が取得される。ステップS33では、このポーリング数Npog[τ0]およびサンプル端末MN(s)の比率Rsampleを次式(1)に適用して、当該制御スロットτ0における発信動作の総数Nreq[τ0]が推定される。
ステップS34では、x番目の制御スロットτxで発生し、かつy番目の制御スロットτyの終了時も保留継続される発信動作数ψτx[τy] (x≦y) の一つとして、制御スロットτ0で発生し、かつ制御スロットτ0の終了時も保留継続される発信動作数ψτ0[τ0]が算出される。この保留継続される発信動作数ψτx[τy]の初期値は全て「0」であり、各ユーザ端末MNにおいて発信動作が発生し、その処理が進行するに従って値が徐々に埋まる。本実施形態では、各ユーザ端末MNで発生した発信動作が全て一旦保留されるので、保留継続される発信動作数ψτ0[τ0]は次式(2)で算出される。
ステップS35では、次の制御スロットτ1においてサービス時間が継続中と推定される通信セッション数Cin_service[τ1]が取得される。この通信セッション数Cin_service[τ1]は、前回の制御周期(制御スロット)において、後述するステップS41で求められて一時記憶されている。
ステップS36では、エンドサーバESに関する既知の処理能力Cmaxおよび前記Cin_service[τ1]を次式(3)に適用して、次の制御スロットτ1におけるシステムの空き容量C[τ1]が推定される。なお、本実施形態では処理能力Cmaxとして、エンドサーバESに同時接続できるセッション数の上限値を採用しているので、空き容量C[τ1]は、前記エンドサーバESに同時接続できる通信セッション数の残数となる。
ステップS37では、制御スロットτ0以前の各制御スロットτk(k≦0)で発生し、制御スロットτ0の終了後も保留継続されている発信動作のうち、発生時刻の古い順に制御スロット単位で保留を解除したときに次の制御スロットτ1において保留中の全ての発信動作を解除できるスロット番号の最大値nが算出される。
ここで、少なくとも一つの発信動作を保留継続している制御スロットのうち、全ての発信動作を次の制御スロットτ1で保留解除できる制御スロット番号の最大値nは、保留されている全ての発信動作の数を、発信動作の古い順に制御スロット単位で時系列で累積したときに、n番目の制御スロットまでの総和は制御スロットτ1におけるシステムの空き容量C[τ1]以下であるものの、n+1番目の制御スロットで発生し、制御スロットτ0の終了後も保留継続される全ての発信動作数を更に累積してしまうと前記システム空き容量C[τ1]を超えてしまう制御スロット番号nである。
すなわち、図4に一例を示したように、制御スロットτp (p+2≦k) で保留されている発信動作数を「20」、制御スロットτp+1におけるそれを「15」,制御スロットτp+2におけるそれを「30」とし、制御スロットτ1におけるシステムの空き容量C[τ1]を「50」とすれば、制御スロットτpから保留を解除し始めて次の制御スロットτp+1の保留を全て解除しても、その総容量は「35」であって空き容量C[τ1]に達しない。しかしながら、さらに次の制御スロットτp+2の保留を全て解除してしまうと、その総容量は「65」となって空き容量C[τ1]を超えてしまうので、このような場合には[p+1]が前記最大値nとなる。
したがって、制御スロットτxで発生し、かつ制御スロットτ0の終了後も保留継続される発信動作数をψτx[τ0]とすれば、次式(4)を満足する最大のn(n≦0)が、保留中の全ての発信動作を解除できるスロット番号の最大値となる。そして、この最大値nが求まれば、第n制御スロットまでは、保留中の全ての発信動作を解除でき、第(n+2)制御スロット以降については、全ての発信動作が保留を継続される。
一方、第(n+1)制御スロットについては、制御スロット番号nまで保留解除された発信動作数の総和が前記空き容量C[τ1]に満たない場合、一部の発信動作に関してのみ保留を解除できる。なお、保留解除の対象である前記保留継続中の発信動作数ψτx[τ0]は、前記ステップS34の式(2)、および前回の制御周期(制御スロット)において、後述するステップS38で式(5),(6),(7)に基づいて求められる。
図3へ戻り、ステップS38では、前記一部の発信動作のみ保留解除される第(n+1)制御スロットに関して、保留解除できる発信動作の割合R_releaseを算出するために、制御スロットτ1の終了時も保留継続する発信動作数ψτm[τ1] (k≦m≦0)、および制御スロットτ1で保留解除される発信動作数ρτm[τ1]が次式(5)〜(10)に基づいて算出され、記憶される。ここで、ρτx[τy]は、制御スロットxで発生し、かつ制御スロットyで保留解除される発信動作数であって、その初期値は全て「0」であり、処理の進行に伴って値が徐々に埋まる。
上式(5),(8)は、スロット番号mがm≦nの全ての制御スロットに適用され、保留中の全ての発信動作が制御スロットτ1で解除され、制御スロットτ1の終了時も保留継続する発信動作数はゼロとなる。式(7),(10)は、スロット番号mがm>n+1の全ての制御スロットに適用され、保留中の全ての発信動作が制御スロットτ1で解除されず、制御スロットτ1の終了時も制御スロットτ0の終了時と同数の発信動作が保留継続される。
上式(6)は、スロット番号m=n+1の制御スロットに適用され、制御スロットτ0の終了時に保留継続されている全ての発信動作のうち、スロット番号n+1までの発信動作数の総和から空き容量C[τ1]を減じた発信動作数、すなわち制御スロット番号τn+1で発生して制御スロットτ0の終了時に保留継続されている発信動作数ψτn+1[τ0]から、制御スロットτ1で保留解除される発信動作数を減じた数の発信動作が、制御スロットτ1の終了時も保留継続されることになる。
上式(9)は、スロット番号m=n+1の制御スロットに適用され、制御スロットτ1において、空き容量C[τ1]から、制御スロットτ0の終了時に保留継続されている全ての発信動作数のうちスロット番号nまでの発信動作数の総和を減じた数の発信動作が保留解除されることになる。
ステップS39では、第(n+1)制御スロットで発生し、かつ制御スロットτ0の終了時に保留継続中の発信動作数ψτn+1[τ0] のうち、制御スロットτ1で保留解除される発信動作数ρτn+1[τ1]の割合R_releaseが、次式(11)で求められる。
ステップS40では、前記τn+1およびR_releaseのペア[τn+1,R_release]が制御情報として放送サーバBSへ通知され、放送局6からユーザ端末MNへ送信される。ステップS41では、制御スロットτ1で保留解除された発信動作により確立された通信セッションのうち、制御スロットτ1以降もサービス時間が継続するセッション数Cin_service[τ1+i]が、次式(12)に基づいて、制御スロットτ1以降の各制御スロット[τ1+i]について算出される。
なお、TATは各通信セッションのサービス時間(秒)の推定値であり、その算出方法は後述する。τは制御周期(制御スロットτ)の時間幅(秒)であり、TAT/Δτは、これが0または小数点を含む場合には繰り上げの整数値とされる。
また、上式(12)の計算は、制御スロットτ1で保留解除されて制御スロットτ1以降もサービス時間が継続する全ての通信セッション(総数u)に対して実行される。前記通信セッション数の総数uは次式(13)で与えられる。
これにより、制御スロットτ1で保留解除された発信動作により確立されたセッション数のうち、制御スロットτ1以降もサービス時間が継続するセッション数Cin_service[τ1+i]が算出される。
次いで、前記サービス時間TATの推定方法について説明する。本実施形態では、別途に観察されたサービス時間の実測値tatに基づいて確率分布が求められ、前記制御スロットτ1で保留解除されて制御スロットτ1以降もサービス時間が継続する通信セッションごとに、そのサービス時間TATが前記確率分布に基づく確率計算により推定される。
すなわち、別途に観察された実サービス時間tatが図6に一例を示したような正規分布を示していれば、当該分布に基づいて通信セッションごとにサービス時間TATを算出する関数を設定し、各通信セッションを代表する乱数を発生させて当該関数に適用することでサービス時間TATが算出される。
本実施形態では制御スロットτ1で保留解除された発信動作により新たに確立されたセッション数が全て制御スロットτ1で終了する場合、Cin_service[τ1]は、制御スロットτ0までに保留解除された発信動作により確立されたセッション数で制御スロットτ1においてもサービス時間が継続するセッション数に、制御スロットτ1で保留解除された発信動作により確立されたセッション数を加えた数となる。このセッション数Cin_service[τx]も初期値は全て「0」であり、処理の進行に伴って値が徐々に埋まる。
例えば、サービス時間TATが10(秒)、制御周期Δτが5(秒)であれば、制御スロットτ1で保留解除された発信動作に応答してエンドサーバがコンテンツ配信(ダウンロード)等のサービスを提供する時間(サービス時間)は制御スロット数で「2」に相当するので、制御スロットτ1で開始されたサービス時間は制御スロットτ1,τ2において継続されることになる。したがって、ここではCin_service[τ1],Cin_service[τ2]が求められて一時記憶され、次回の制御周期τ2において、ステップS35でCin_service[τ2]として利用される。
図2へ戻り、各ユーザ端末MNは、ステップS12で前記制御情報を受信するとステップS13へ進む。ステップS13では、保留中の発信動作ごとに、その保留を解除するか否かが判定される。
図5は、この保留解除判定の手順を示したフローチャートであり、ステップS51では、前記制御情報に登録されていた保留解除タイミングτn+1よりも前に発生した発信動作が保留中であるか否かが判定される。保留中であればステップS52へ進み、その全ての保留が解除される。ステップS53では、前記制御情報に登録されていた保留解除タイミングτn+1で発生した発信動作が保留中であるか否かが判定され、保留中であればステップS54へ進む。
ステップS54では、所定の乱数シードを乱数関数に適用して乱数rand2(0<rand2≦1)が発生される。ステップS55では、この乱数rand2と前記制御情報に登録されていた保留解除率R_releaseとが比較され、rand2≦R_releaseと判定されれば、ステップS56へ進んで保留解除される。なお、前記ステップS55においてrand2>R_releaseと判定されると、前記τn+1よりも後に発生した発信動作と共に保留解除が見送られて保留が継続される。
図2へ戻り、ステップS14では、前記保留解除された発信動作が実行される。ステップS15でエンドサーバESとの間に通信セッションが確立されるとステップS16へ進み、要求したサービスを享受する。ステップS17において、サービスが完了すると、エンドサーバESとの間に確立されていた通信セッションが遮断される。
図13は、本発明を適用したシステムにおいて、各通信セッションのサービス時間とエンドサーバESにおけるセッション同時接続数との関係を示した図であり、ここでは、最大同時接続数Cmaxが5セッションである場合を例にしている。
図14に示した従来技術と比較すれば明らかなように、本実施形態によれば、各通信セッションのサービス時間TATが一様ではなく、前記図6に示した確率分布に基づいて動的に決定されるので、同時接続数の変動を小さく抑えられ、特に制御スロットの境界部近傍における同時接続数の急峻な変動が抑制されていることが判る。したがって、エンドサーバESに輻輳や過負荷を生じさせることなく常に最大効率で運転できるようになる。
なお、上記の実施形態では各制御スロットを識別する識別子として時系列の序数nを採用したが、各序数nは発信動作の保留時間と一義的に対応するので、各制御スロットを識別する識別子として、前記序数nに代えて待ち時間を採用しても良い。
上記の第1実施形態では、ユーザ端末MNからエンドサーバESへの発信動作を全て一旦保留し、その後、制御スロット単位で発信動作の保留を順次に解除することで、ユーザ端末MNとエンドサーバESとの間に確立される通信セッション数をエンドサーバの処理能力以下に規制するシステムを例にして本発明を説明した。
しかしながら、本発明はこれのみに限定されるものではなく、例えば特願2008−151602号の明細書に開示されているように、ユーザ端末MNから送信されたアクセスパス要求をアクセスパスサーバで受け付けて各ユーザ端末MNのエンドサーバESへのアクセスタイミングを決定し、これを各ユーザ端末ESへのアクセスパスとして返信することで発信を規制するシステムにも同様に適用できる。
図7は、本発明の第2実施形態に係る通信セッション規制システムが適用されるネットワークの主要部の構成を示したブロック図であり、ここでは、ユーザ端末MNからエンドサーバES(サービス提供サーバ)へコンテンツ配信サービスを要求する場合を例にして説明する。
携帯電話、PDAあるいはコンピュータなどのユーザ端末MNは携帯電話網あるいはインターネット等のIPネットワークNWに接続されている。また、ユーザ端末MNからのサービス要求に応答して、音楽や映像などのコンテンツを配信する複数のエンドサーバESjが、アクセスパスサーバAPSと共に前記IPネットワークNWに接続されている。
前記アクセスパスサーバAPSは、各ユーザ端末MNにエンドサーバESjへのアクセスを許可するタイミングを決定して各ユーザ端末MNへ通知する機能を備え、ユーザ端末MNからアクセス先のエンドサーバESjの識別情報およびコンテンツの識別情報を含むアクセスパス要求のメッセージを受信すると、エンドサーバESjの能力や状況に基づいてアクセスタイミングを決定し、これをユーザ端末MNへ通知する。ユーザ端末MNは、通知されたアクセスタイミングを待ってエンドサーバESjへサービス要求を送信し、当該エンドサーバESjからコンテンツの配信サービスを享受する。
図8は、前記アクセスパスサーバAPSの主要部の構成を示した機能ブロック図である。本実施形態では、アクセスパスサーバAPSがアクセスパス要求を受信するごとに実行する応答処理は極めて低負荷なので、アクセスパス要求が短時間に集中的に受信される場合でも、アクセスパスサーバAPSは全てのアクセスパス要求を受信順に滞りなく受付処理できる。
同時接続セッション数記憶部17には、各エンドサーバESj(jはエンドサーバ識別子)が同時に接続できる最大セッション数Smax_jが予め記憶されている。サービス時間分布記憶部20には、ユーザ端末MNとエンドサーバESjとの間に確立された通信セッションが継続するサービス時間TATの分布情報が記憶されている。サービス時間推定部18は、ユーザ端末MNとエンドサーバESjとの間に新規に確立された通信セッションのサービス時間TATを前記分布情報に基づいて推定する。
仮想キュー設定部19は、各エンドサーバESjにおけるサービス要求の処理状況をアクセスパスサーバAPS上で模擬するために設けられている。すなわち、各エンドサーバESjの最大同時接続セッション数Smax_jがn個であれば、エンドサーバESjにおけるサービス要求の処理状況は、図9に一例を示したように、エンドサーバESjの入力段にn個のFIFOバッファ(FIFO-1,FIFO-2、…FIFO-n)を装備し、ユーザ端末NMから送信されたサービス要求がいずれかのFIFOバッファから取り込まれて順次に処理される構造で模擬できる。
そして、FIFOバッファにはサービス要求の処理に必要なセッション保持時間(サービス時間TAT)に相当する量のデータ(キュー)を登録し、FIFOバッファの転送レートをエンドサーバESjの平均サービス処理時間ATATjの逆数1/ATATjとすれば、各FIFOバッファにオーバーフローもアンダーフローを生じないようにサービス要求を割り振ることでエンドサーバESjの輻輳や効率低下を防止できる。
そこで、本実施形態では上記した各FIFOバッファを模した仮想キューVQをアクセスパスサーバAPSに設け、この仮想キューVQにオーバーフローもアンダーフローも生じないように、各アクセスパス要求に対してサービス要求タイミングを割り当てるようにしている。
したがって、前記仮想キュー設定部19には、エンドサーバESjごとに、その最大同時接続セッション数Smax_jと同一数の仮想キューVQk,j(kは仮想キュー識別子)が設定される。仮想キューVQk,jには、後に詳述するように、ユーザ端末MNから送信されたアクセスパス要求が受信されるごとに、当該アクセスパス要求を契機に生じるサービス要求をエンドサーバが処理するのに必要なサービス時間TATに応じたキューが登録(エンキュー)され、登録されたキューは平均サービス処理時間ATATjの逆数1/ATATjに応じた割合で時間経過と共に順次に破棄(デキュー)される。これにより、本実施形態ではエンドサーバESjにおけるサービス要求の処理状況を、アクセスパスサーバAPS上で各仮想キューVQk,jのキュー長として模擬できるようになる。
このように、本実施形態において各仮想キューVQjに先入れ先出しの規則で登録・破棄されるキューは、受信されたアクセスパス要求ではなく、当該アクセスパス要求を契機に予約されるサービス要求の処理に必要なセッション保留時間(サービス時間TAT)を表すダミーキューである。
アクセスパス要求受信部10は、各ユーザ端末MNから送信されたアクセスパス要求をインターフェース(I/F)経由で受信する。要求分析部11は、受信したアクセスパス要求を分析し、要求先のエンドサーバESjおよび要求されたサービスを識別する。仮想キュー選択部12は、アクセスパス要求で指定されたアクセス先のエンドサーバESjと対応付けられた複数の仮想キューVQk,jの中からキュー長が最小の仮想キューVQkx,jを選択する。これ以後、キュー長が最小の仮想キューおよびそのキュー値の識別子kには添え字xを付するものとする。
仮想キュー更新部13は、前記選択された仮想キューVQkx,jに、要求されたサービスのエンドサーバESjにおける処理時間(サービス時間TAT)に応じた長さのキューをエンキューする追加部と共に、各エンドサーバESjの仮想キューVQk,jに登録済みのキューを、前記平均サービス処理時間ATATjおよび経過時間に基づいて順次にデキューする破棄部を備えている。
アクセスタイミング決定部14は、後に詳述するように、前記選択された仮想キューVQkx,jのキュー長VQkx,j[t]に基づいて、当該アクセスパス要求に応答するアクセスタイミングを決定する。本実施形態では、アクセスタイミングが現在時刻tからの待機時間として決定される。アクセスパス応答生成部15は、エンドサーバESjへのアクセスタイミングを含むアクセスパス応答を生成する。アクセスパス応答返信部16は、前記アクセスパス応答を前記アクセスパス要求の送信元ユーザ端末にI/F経由で返信する。
次いで、フローチャートを参照して本実施形態の動作を詳細に説明する。図10は、コンテンツ配信を要求するユーザ端末MNにおけるアクセスパス要求およびサービス要求の手順を示したフローチャート、図11は、アクセスパスサーバAPSにおけるアクセスパス応答の手順を示したフローチャートであり、図12はシーケンスフローである。なお、本実施形態における各符号の定義は以下の通りである。
i:アクセスパス要求の識別子
j:エンドサーバESの識別子
k:仮想キューVQの識別子
TATi:アクセスパス要求iについてのサービス時間
ti,j:エンドサーバESjに対するi番目のアクセスパス要求時刻
di,j:エンドサーバESjに対するi番目のアクセスパス要求に対して割り当てられるアクセスタイミングまでの遅延時間
ATATj:各エンドサーバESjにおける平均サービス処理時間
Qmax_j:各エンドサーバESjのキュー値の上限値
bi,j:要求されたサービスの重み値
VQj(ti,j)−:時刻tiでアクセスパス要求を受信する直前のエンドサーバESjのキュー長
VQj(ti,j)+:時刻tiで受信したアクセスパス要求を反映して更新された直後のエンドサーバESjのキュー長
ユーザが自身のユーザ端末MNのキースイッチ等を操作してコンテンツのリクエスト操作を実施し、これが図10のステップS61で検知されるとステップS62へ進む。ステップS62では、リクエストするコンテンツの識別子および当該コンテンツを提供するエンドサーバESの識別子jを含んでアクセスパスサーバAPSを宛先とするアクセスパス要求が生成され、ステップS63において送信される。
アクセスパスサーバAPSでは、図11のステップS81において、前記アクセスパス要求がアクセスパス要求受信部10で受信されるとステップS82へ進む。ステップS82では、前記要求分析部11において当該アクセスパス要求が分析され、要求されているコンテンツおよび要求先のエンドサーバESjが識別される。続くステップS83−S85では、当該要求先のエンドサーバESjに割り当てられている複数の仮想キューVQk,jの現在時刻tにおけるキュー値が、前回の更新時刻ti-1からの経過時間?tおよび当該エンドサーバESjにおける平均サービス処理時間ATATjに基づいて更新される。
すなわち、ステップS83では、受信したアクセスパス要求に登録されている識別子jに対応したエンドサーバESjに関して、時刻ti-1で受信したアクセスパス要求を反映して更新された直後の各仮想キューVQk,jのキュー長[VQk,j(ti-1)+]が前記仮想キュー設定部19から取り込まれる。ステップS84では、当該エンドサーバESjの平均サービス処理時間ATATjが取り込まれる。ステップS85では、今回のアクセスパス要求の受信時刻tiにおける各仮想キューVQk,jのキュー長[VQk,j(ti)−]が次式14)で求められる。
ステップS86では、キュー長[VQk,j(ti)−]が最小の仮想キューVQkx,jが、今回のアクセスパス要求に関するキューの登録先として選択される。ステップS87では、アクセスパス要求を送信したユーザ端末MNに通知するアクセスタイミングが、当該アクセスパス要求の受信時刻tiを基準にした遅延時間di,jとして次式(15)で求められる。すなわち、キュー長[VQk,j(ti)−]が最小の仮想キューVQkx,jの処理が完了して他のアクセス要求を受け容れられるタイミングが遅延時間di,jとして求められる。
ステップS88では、前記選択された仮想キューVQkx,jのキュー値[VQkx,j(ti)+]が次式(16)に基づいて計算され、他の仮想キューVQk,jのキュー値[VQk,j(ti)+]が次式(17)に基づいて計算される。ステップS89では、前記計算結果に基づいて各仮想キューVQk,jのキュー値[VQk,j(ti)+]が更新される。
ここで、重み値[bi]は要求されたサービスの提供に必要なサービス時間TATiを代表するキュー値であり、要求されたサービスのサービス時間TATiが前記平均サービス処理時間ATATjと同等であればbi=1とされ、サービス時間TATiがATATjよりも長ければbi>1とされ、サービス時間TATiがATATjよりも短ければbi<1とされる。
本実施形態では、前記サービス時間分布記憶部20に記憶されているサービス時間の分布に基づいて、前記サービス時間推定部18により重み値biが推定される。すなわち、前記サービス時間分布記憶部20に記憶されているサービス時間TATの分布が、前記図6に示したような正規分布を示していれば、当該分布に基づいて通信セッションごとにサービス時間を算出する関数を設定し、各通信セッションを代表する乱数を発生させて当該関数に適用することでサービス時間TATが推定される。そして、サービス時間TATの推定値が前記平均サービス処理時間ATATよりも長ければ、その程度に応じてbi>1とされ、サービス時間TATの推定値が前記平均サービス処理時間ATATよりも短ければ、その程度に応じてbi<1とされる。 ステップS90では、前記アクセスタイミングとしての遅延時間di,jを含むアクセスパス応答が前記アクセスパス応答生成部15で生成され、ステップS91において、前記アクセスパス応答返信部16から前記アクセスパス要求の送信端末宛に返信される。
図10へ戻り、ユーザ端末MNでは、前記アクセスパス応答をステップS64で受信すると、ステップS65では、このアクセスパス応答に登録されている遅延時間di,jが抽出される。ステップS66では、抽出された遅延時間di,jが所定の上限値dmaxと比較され、遅延時間di,j>dmaxであればステップS67へ進み、サービスを提供できない旨のエラーメッセージを端末ディスプレーに表示して当該処理を中止する。これに対して、遅延時間di,j≦dmaxであればステップS68へ進み、リクエストが先着順に処理されている旨を示す受付完了メッセージが端末ディスプレーに表示される。
ステップS69では、配信を要求するコンテンツの識別子およびエンドサーバの識別子を含むサービス要求が生成される。ステップS70では、前記ステップS63においてアクセスパス要求を送信してからの経過時間が前記遅延時間di,jに達したか否かに基づいてアクセスタイミングであるか否かが判定され、アクセスタイミングを待ってステップS71へ進む。ステップS71では、前記ステップS69で生成されたサービス要求が前記エンドサーバESjを宛先として送信される。このようなユーザ端末MNにおけるアクセスタイミングまでの待機処理は、Java(登録商標)script,Flashなどの各種スクリプト言語を利用することで実装できる。
このサービス要求を受信したエンドサーバESjは、要求されているコンテンツを用意して前記ユーザ端末MNへ配信する。ユーザ端末MNは、前記コンテンツをステップS72で受信すると、ステップS73へ進んで当該コンテンツを保存する。ステップS74では、ダウンロード完了メッセージが端末ディスプレーに表示される。
本実施形態によれば、アクセスパス要求が受信されるごとに、キュー長の最も短い仮想キューが選択され、当該仮想キューにキューが登録されるので、より早くアクセスパス要求を送信したユーザ端末に対して、より早いサービス要求タイミングを割り当てられるようになる。
また、本実施形態によれば、アクセスパスサーバAPSではエンドサーバごとに最大同時接続セッション数分の仮想キューを設定し、アクセスパス要求が受信されるごとに、サービス要求先のエンドサーバの仮想キューにサービス時間に応じた長さのキューを登録すると共に、各キューを各エンドサーバでのサービス処理量に応じた割合で仮想的に順次消化させる。これにより、各エンドサーバにおけるサービスの処理状況をアクセスパスサーバAPS上で模擬することができ、アクセスパス要求が受信されたときの各仮想キューのキュー長に基づいてサービス要求タイミングを算出できるので、エンドサーバの運用効率を同時接続セッション数の観点から最適化できるようになる。