(57)【要約】【課題】同一のサービス要求に対して同一のサービスを提供可能な複数のエンドサーバに対して、アクセス制御による負荷分散およびロードバランサによる負荷均等を適用して過大なアクセス集中に対応する。【解決手段】サービス要求処理部１０６は、負荷均等部１０６ａおよび負荷分散部１０６ｂを備え、各エンドサーバESの待ち時間Twに基づいてサービス要求を処理する。負荷均等部１０６ａは、待ち時間Twが所定の閾値Tref未満のエンドサーバESが存在すると判定されたときに、受信したサービス要求をエンドサーバESへ通知する。負荷分散部１０６ｂは、待ち時間Twが所定の閾値Tref未満のエンドサーバが存在しないと判定されたときに、前記待ち時間後のアクセスを許可するアクセスパスを生成して前記ユーザ端末MNへ送信する。【選択図】図２
2013012028.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ端末からエンドサーバへのサービス要求を受け付け、対応するエンドサーバの状態に基づいて前記サービス要求を処理するリクエスト受付サーバにおいて、
各エンドサーバの動作を模擬する動作模擬部と、
サービス要求の識別情報と当該サービス要求に対応するエンドサーバ群との関係を管理する対応テーブルと、
受信したサービス要求の識別情報に対応したエンドサーバ群を前記対応テーブルに基づいて識別する対応エンドサーバ群識別手段と、
前記識別されたエンドサーバ群の各エンドサーバが前記サービス要求に応答するまでの待ち時間を各エンドサーバの模擬動作に基づいて算出する待ち時間算出手段と、
前記各エンドサーバの待ち時間に基づいて、前記受信したサービス要求を処理するサービス要求処理手段とを具備し、
前記サービス要求処理手段が、
待ち時間が所定の閾値未満のエンドサーバが存在するときに、前記受信したサービス要求を当該エンドサーバへ転送する負荷均等部と、
待ち時間が所定の閾値未満のエンドサーバが存在しないときに、前記エンドサーバへの前記待ち時間後のアクセスを許可するアクセスパスを前記ユーザ端末へ送信する負荷分散部とを含むことを特徴とするリクエスト受付サーバ。
【請求項２】
前記負荷均等部は、待ち時間が最短のエンドサーバへ前記受信したサービス要求を転送することを特徴とする請求項１に記載のリクエスト受付サーバ。
【請求項３】
前記負荷分散部は、待ち時間が最短のエンドサーバへのアクセスを許可するアクセスパスを送信することを特徴とする請求項１に記載のリクエスト受付サーバ。
【請求項４】
前記各エンドサーバの死活を監視し、監視結果に基づいて前記対応テーブルを更新する対応テーブル更新手段をさらに具備したことを特徴とする請求項１ないし３のいずれかに記載のリクエスト受付サーバ。
【請求項５】
ユーザ端末からエンドサーバへのサービス要求を受け付け、対応するエンドサーバの状態に基づいて前記サービス要求を処理するリクエスト受付プログラムにおいて、
各エンドサーバの動作を模擬する手順と、
サービス要求の識別情報と当該サービス要求に対応するエンドサーバ群との関係を対応テーブルで管理する手順と、
受信したサービス要求の識別情報に対応したエンドサーバ群を前記対応テーブルに基づいて識別する手順と、
前記識別されたエンドサーバ群の各エンドサーバが前記サービス要求に応答するまでの待ち時間を各エンドサーバの模擬動作に基づいて算出する手順と、
前記各エンドサーバの待ち時間に基づいて、前記受信したサービス要求を処理する手順とをコンピュータに実行させ、
前記サービス要求を処理する手順が、
待ち時間が所定の閾値未満のエンドサーバが存在するときに、前記受信したサービス要求を当該エンドサーバへ転送する負荷均等処理と、
待ち時間が所定の閾値未満のエンドサーバが存在しないときに、前記エンドサーバへの前記待ち時間後のアクセスを許可するアクセスパスを前記ユーザ端末へ送信する負荷分散処理とを含むことを特徴とするリクエスト受付プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザ端末からのサービス要求を受け付けてエンドサーバに処理させるリクエスト受付サーバおよびリクエスト受付プログラムに係り、特に、同一のサービス要求に対して同一のサービスを提供可能な複数のエンドサーバに対して、アクセス制御による負荷分散およびロードバランサによる負荷均等を適用できるリクエスト受付サーバおよびリクエスト受付プログラムに関する。
【背景技術】
【０００２】
テレビやラジオ番組など特定のイベントを契機として、特定のサーバに対してユーザからのアクセスが短時間かつ集中的に発生する場合がある。このような特定のイベントを契機としたアクセス集中は、例えば音楽番組におけるCDの売り上げランキング発表直後あるいは番組中の視聴者プレゼントへの応募直後などに、視聴者が電話回線やインターネット等の通信回線を利用して一斉に特定のサーバにアクセスすることで生じることが多い。そして、短時間で集中的にアクセス量が増加すると、過負荷によりサーバの動作が不安定となり、さらにはシステムダウン等も起こり得る。
【０００３】
このような技術課題に対して、本発明の発明者等は、サーバの運用効率を同時接続セッション数の観点から最適化し、負荷分散によりユーザ端末の待機時間を短縮できるリクエスト受付システムを発明し、特許出願した（特許文献１）。
【０００４】
特許文献１では、図６にその概要を示したように、サービスを提供するサーバ（エンドサーバ）ESの前段に、制御情報を配信するためのリクエスト受付サーバ（アクセスパスサーバ：APS）が設置される。ユーザ端末は、サービス要求に先だってAPSへアクセスパス要求を送信する。APSは、各エンドサーバの混み具合を模擬する機能(エンドサーバエミュレータ)を備え、ユーザ端末からのアクセスパス要求に対して、前記エンドサーバエミュレータを利用して、各エンドサーバへのアクセスまでにユーザ端末が待機すべき時間をアクセスパスに記述してユーザ端末に通知する。ユーザ端末は、APSから通知された時間分だけ待機した後、エンドサーバESにサービス要求を送信する。
【０００５】
一方、一般的なWebシステムでは、図７に一例を示したように、同一のサービス要求に対して同一サービスを提供できるエンドサーバを複数台設け、ロードバランサを用いて負荷を均等化させることが多い。このようなロードバランサを用いた負荷均等化を採用する場合でも、想定を超える量のサービス要求がWebシステムに集中すると、システム過負荷による不安定動作あるいはシステムダウン等が起こり得る。したがって、ロードバランサを用いたWebシステムに対しても、上記のアクセス制御技術による負荷分散を更に適用することが望ましい。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−３０１０９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来のAPSを用いたアクセス制御は、個々のエンドサーバが異なるサービスを提供することを想定しているため、ユーザからのサービス要求は常に特定の1台のエンドサーバ宛であり、実際にサービス要求を処理できるエンドサーバも1台である。したがって、従来のAPSは、ユーザからのサービス要求を処理するエンドサーバのエミュレータを参照し、エンドサーバにアクセスできるまでの待機時間をユーザに通知する処理を行っていた。
【０００８】
これに対して、従来のロードバランサを用いたWebシステムでは、ユーザからのサービス要求に対処できるエンドサーバが複数台存在し、しかもエンドサーバの能力や負荷状態に差がある場合がほとんどなので、従来のAPSとロードバランサとを単純に組み合わることはできなかった。
【０００９】
本発明の目的は、上記した従来技術を解決し、同一のサービス要求に対して同一のサービスを提供可能な複数のエンドサーバに対して、アクセス制御による負荷分散およびロードバランサによる負荷均等を同時に適用できるリクエスト受付サーバおよびリクエスト受付プログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上記の目的を達成するために、本発明は、ユーザ端末からエンドサーバへのサービス要求を受け付け、対応するエンドサーバの状態に基づいて前記サービス要求を処理するリクエスト受付サーバにおいて、各エンドサーバの動作を模擬する動作模擬部と、サービス要求の識別情報とエンドサーバ群との関係を管理する対応テーブルと、受信したサービス要求の識別情報に対応したエンドサーバ群を前記対応テーブルに基づいて識別する対応エンドサーバ群識別手段と、識別されたエンドサーバ群の各エンドサーバがサービス要求に応答するまでの待ち時間を各エンドサーバの模擬動作に基づいて算出する待ち時間算出手段と、各エンドサーバの待ち時間に基づいて、前記受信したサービス要求を処理するサービス要求処理手段とを具備した。また、前記サービス要求処理手段が、待ち時間が所定の閾値未満のエンドサーバが存在するときに、前記受信したサービス要求を当該エンドサーバへ転送する負荷均等部と、待ち時間が所定の閾値未満のエンドサーバが存在しないときに、前記エンドサーバへの前記待ち時間後のアクセスを許可するアクセスパスを前記ユーザ端末へ送信する負荷分散部とを含むようにした。
【発明の効果】
【００１１】
本発明によれば、一部のエンドサーバへのサービス要求が集中して輻輳が生じそうになると、複数のエンドサーバ間での負荷均等と、各エンドサーバの時間的な負荷分散とが併用されるので、従来の負荷均等あるいは負荷分散だけでは対処しきれなかった過度のアクセス集中にも対処できるようになる。
【図面の簡単な説明】
【００１２】
【図１】本発明のリクエスト受付サーバを採用したサービス提供システムのネットワーク構成を示したブロック図である。
【図２】リクエスト受付サーバAPSの構成を示した機能ブロック図である。
【図３】リクエスト受付サーバAPSの動作を示したフローチャートである。
【図４】対応テーブルの一例を示した図である。
【図５】エンドサーバの動作を模擬するエミュレータの一例を示した図である。
【図６】従来技術（アクセス制御）の機能ブロック図である。
【図７】従来技術（ロードバランサ）の機能ブロック図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施の形態について詳細に説明する。図１は、本発明のリクエスト受付サーバAPSを採用したサービス提供システムのネットワーク構成を示したブロック図であり、ここでは、ユーザ端末MNからエンドサーバES（サービス提供サーバ）へコンテンツ配信のサービスを要求する場合を例にして説明する。
【００１４】
携帯電話、PDAあるいはコンピュータなどのユーザ端末MNは、ネットワーク経由でリクエスト受付サーバAPSおよび複数のエンドサーバ群に接続される。各エンドサーバ群は、ユーザ端末MNからのサービス要求に応答して、音楽や映像などのコンテンツを配信する複数のエンドサーバESにより構成される。
【００１５】
本実施形態では、同一のサービス要求に対して同一のコンテンツを配信できる複数のエンドサーバESが一つのエンドサーバ群を構成し、このようなエンドサーバ群が、提供可能なサービスごとに設けられている。同一のエンドサーバ群に所属するエンドサーバES同士は、リクエスト受付サーバAPSのロードバランサにより負荷均等される。
【００１６】
また、前記リクエスト受付サーバAPSはアクセス制御機能を備え、一のエンドサーバ群へのサービス要求が集中し、その全てのエンドサーバESが過負荷状態に陥ると、当該エンドサーバ群の各エンドサーバESが新たなサービス要求に応答できるようになるまでの待ち時間Twを算出し、この待ち時間Twの記述されたアクセスパスを、前記サービス要求を送信したユーザ端末へ返信することでサーバ負荷を時間軸方向に分散させる。
【００１７】
図２は、前記リクエスト受付サーバAPSの主要部の構成を示した機能ブロック図である。サービス要求受付部１０１は、ユーザ端末MNから送信されたエンドサーバ宛のサービス要求を受け付ける。動作模擬部１０２は、後に詳述するように、各エンドサーバESの動作をエミュレータで模擬する。対応テーブル１０３には、サービス要求の識別情報と当該サービス要求に対応するエンドサーバ群との関係が予め登録されている。対応テーブル更新手段１０７は、各エンドサーバESの死活を定期的に監視し、新たに停止されたエンドサーバESのエントリを前記対応テーブル１０３から削除する一方、新たに起動されたエンドサーバESのエントリを前記対応テーブル１０３へ追加する。
【００１８】
対応エンドサーバ群識別部１０４は、受信したサービス要求の識別情報に対応したエンドサーバ群を前記対応テーブル１０３に基づいて識別する。待ち時間算出部１０５は、前記識別されたエンドサーバ群の各エンドサーバESが前記サービス要求に応答できるまでの待ち時間Twを、前記各エンドサーバの模擬動作に基づいて算出する。前記待ち時間Twの具体的な算出方法については後述する。
【００１９】
サービス要求処理部１０６は、負荷均等部１０６ａおよび負荷分散部１０６ｂを備え、前記各エンドサーバESの待ち時間Twに基づいて、前記受信したサービス要求を処理する。すなわち、前記負荷均等部１０６ａは、待ち時間Twが所定の閾値Tref未満のエンドサーバESが存在すると判定されたときに、当該待ち時間Twが所定の閾値Tref未満のエンドサーバESへ、前記受信したサービス要求を前記エンドサーバESへ通知する。負荷分散部１０６ｂは、待ち時間Twが所定の閾値Tref未満のエンドサーバが存在しないと判定されたときに、前記待ち時間後のアクセスを許可するアクセスパスを生成して前記ユーザ端末MNへ送信する。
【００２０】
次いで、フローチャートを参照して本発明の一実施形態の動作を説明する。図３は、前記リクエスト受付サーバAPSの動作を示したフローチャートであり、ステップＳ１において、ユーザ端末から送信されたサービスサービス要求が前記サービス要求受付部１０１で受信されると、ステップＳ２では、当該サービス要求の宛先アドレスに基づいて、サービス要求先のエンドサーバ群が、前記対応エンドサーバ群識別部１０４により識別される。
【００２１】
ステップＳ３では、前記識別されたエンドサーバ群の各エンドサーバESを模擬するエミュレータが参照され、キュー値の最も少ないエンドサーバESminが、今回のサービス提供サーバとして選択される。ステップＳ４では、前記選択されたエンドサーバESminの待ち時間Twが、前記待ち時間出部１０５により算出される。
【００２２】
ステップＳ５では、前記待ち時間Twの算出結果に基づいて、当該選択されたエンドサーバESminが輻輳状態にあるか否かが判定される。待ち時間Twが閾値Trefを超えていれば、輻輳中と判定されてステップＳ６へ進む。ステップＳ６では、サービス要求処理部１０６の負荷分散部１０６ｂにおいて、前記待ち時間Twおよび前記エンドササーバESminの宛先アドレスの記述されたアクセスパスが生成される。ステップＳ８では、前記アクセスパスが前記サービス要求の送信元へ送信される。
【００２３】
これに対して、前記ステップＳ５において、待ち時間Twが閾値Trefを下回っていれば、輻輳していないと判定されてステップＳ７へ進む。ステップＳ７では、前記ユーザ端末から受信したサービス要求が前記選択されたエンドサーバESminへ転送される。当該エンドサーバESminは、転送されたサービス要求に即応してサービスを提供する。
【００２４】
次いで、前記動作模擬部１０２におけるエミュレータの構築方法および当該エミュレータを利用した待機時間Twの算出方法について説明する。
【００２５】
図５は、リクエスト受付サーバAPSに実装される動作模擬部１０２の構成を示した機能ブロック図であり、エンドサーバES#i毎に設けられたエミュレータ１０２ａと、各エンドサーバES#iの動作を模擬するために必要なパラメータが予め記憶されたパラメータ記憶部１０２ｂと、サービス要求がエンドサーバES#iへ転送される毎にエミュレータ１０２ａを更新する更新部１０２cとを主要な構成としている。
【００２６】
前記パラメータ記憶部１０２ｂには、各エンドサーバES#iの最大同時接続数Smaxやサービス時間（サービス提供に要する時間）が記憶されており、エンドサーバES#iの最大同時接続数がSmax,iであれば、当該エンドサーバES#iについてSmax,i個の仮想FIFOキューFQi,k(k＝1,2…Smax,i)がエミュレータ１０２ａに用意され、そのうち、現時点での同時接続数Si分の仮想FIFOキューFQi,1〜FQi,Siにのみキューが蓄積される。各仮想FIFOキューFQi,1〜FQi,Siに蓄積されるキュー値（キュー長）は、予め登録されている各エンドサーバES#iのサービス時間に基づいて決定される。
【００２７】
なお、サービス時間は前記キュー長のみならずエンドサーバの処理能力（処理速度）にも依存するので、エンドサーバ群の各エンドサーバESの処理能力が異なる場合には、サービス時間がエンドサーバESごとに異なることもある。
【００２８】
ここでは、時刻tでエンドサーバES#iへサービス要求を転送した直前および直後の各仮想FIFOキューFQi,kのキュー値を、それぞれFQi,k(t)−，FQi,k(t)＋と表現する。また、エンドサーバES#iが一つのサービス要求を処理するのに要するサービス時間は、平均サービス時間diであるものとする。
【００２９】
エンドサーバES#iに関する全ての仮想FIFOキューFQi,kのキュー値FQi,k(tn)は、時刻tnでエンドサーバES#iへサービス要求が転送される毎に、前記更新部１０２ｃにより次式(1)に基づいて更新される。
FQi,k(tn)−＝FQi,k(tn-1)＋−(tn−tn-1)／di      …(1)
【００３０】
次に、全ての仮想FIFOキューFQi,kから、そのキュー値FQi,k(tn)−が最小のものが、次式(2)に基づいて選択される。
K＝argmin_k(FQi,k(tn)−)                    …(2)
【００３１】
上式(2)により選択されたKで識別される仮想FIFOキューFQi,Kのキュー値FQi,K(tn)−に基づいて、前記待ち時間出部１０５により、次式(3)から待ち時間Ti,wが算出される。
Ti,w＝FQi,k(tn)−×di                        …(3)
【００３２】
上記の待ち時間Ti,wを算出した後、前記更新部１０２ｃにより、各仮想FIFOキューのキュー値が次式(4)、(5)に基づいて更新される。
FQi,k(tn)＋＝FQi,k(tn)−＋bn、    if k=K      …(4)
FQi,k(tn)＋＝FQi,k(tn)−        otherwise   …(5)
【００３３】
前記bnは、要求されたサービスまたはコンテンツをユーザへ提供するために必要なサービス時間に応じて設定され重み値である。例えば、要求されたサービスの提供に要するサービス時間が平均サービス時間diと同等と推定されればbn＝１とされ、平均サービス時間diよりも長くなると予測されればbn＞１とされ、平均サービス時間diよりも短くなると予測されればbn＜１とされる。
【００３４】
動作模擬部１０２は、エンドサーバES#iへサービス要求が転送されるごとに上記の各処理を繰り返すことで、エンドサーバES#iにおけるサービス要求の処理状況を仮想的に模擬でき、かつエンドサーバES#iにおける同時接続セッション数が所望の数以下となるように、前記待機時間Ti,wを各ユーザ端末に通知することが可能になる。
【００３５】
なお、上記の本実施形態による機能は、ハードウェアにより実行させることもできるが、外部からインストールされたプログラムを実行可能なコンピュータによっても実現できる。その場合、プログラムおよびデータは、光学ディスク、フラッシュメモリ、あるいはネットワークを介して接続された外部記憶装置からコンピュータに対して供給される。プログラムは、上記の実施形態の機能を達成するプログラムコードとして記述され、コンピュータは、プログラムコードを順次に処理することで本実施形態の機能を実現できる。
【符号の説明】
【００３６】
１０１…サービス要求受付部，１０２…動作模擬部，１０３…対応テーブル，１０４…対応エンドサーバ群識別部，１０５…待ち時間算出部，１０６…サービス要求処理部，１０６ａ…負荷均等部，１０６ｂ…負荷分散部
【図１】
2013012028.tif 000003
【図２】
2013012028.tif 000004
【図３】
2013012028.tif 000005
【図４】
2013012028.tif 000006
【図５】
2013012028.tif 000007
【図６】
2013012028.tif 000008
【図７】
2013012028.tif 000009