特許第5775925号(P5775925)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エヌ・ティ・ティ・コムウェア株式会社の特許一覧

特許5775925負荷分散装置、負荷分散方法及び負荷分散プログラム
<>
  • 特許5775925-負荷分散装置、負荷分散方法及び負荷分散プログラム 図000002
  • 特許5775925-負荷分散装置、負荷分散方法及び負荷分散プログラム 図000003
  • 特許5775925-負荷分散装置、負荷分散方法及び負荷分散プログラム 図000004
  • 特許5775925-負荷分散装置、負荷分散方法及び負荷分散プログラム 図000005
  • 特許5775925-負荷分散装置、負荷分散方法及び負荷分散プログラム 図000006
  • 特許5775925-負荷分散装置、負荷分散方法及び負荷分散プログラム 図000007
  • 特許5775925-負荷分散装置、負荷分散方法及び負荷分散プログラム 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5775925
(24)【登録日】2015年7月10日
(45)【発行日】2015年9月9日
(54)【発明の名称】負荷分散装置、負荷分散方法及び負荷分散プログラム
(51)【国際特許分類】
   G06F 9/50 20060101AFI20150820BHJP
   G06F 15/00 20060101ALI20150820BHJP
【FI】
   G06F9/46 465D
   G06F15/00 420B
【請求項の数】5
【全頁数】10
(21)【出願番号】特願2013-263328(P2013-263328)
(22)【出願日】2013年12月20日
(65)【公開番号】特開2015-118659(P2015-118659A)
(43)【公開日】2015年6月25日
【審査請求日】2013年12月27日
(73)【特許権者】
【識別番号】397065480
【氏名又は名称】エヌ・ティ・ティ・コムウェア株式会社
(74)【代理人】
【識別番号】100083806
【弁理士】
【氏名又は名称】三好 秀和
(74)【代理人】
【識別番号】100100712
【弁理士】
【氏名又は名称】岩▲崎▼ 幸邦
(74)【代理人】
【識別番号】100101247
【弁理士】
【氏名又は名称】高橋 俊一
(74)【代理人】
【識別番号】100095500
【弁理士】
【氏名又は名称】伊藤 正和
(72)【発明者】
【氏名】藤兼 寛
(72)【発明者】
【氏名】田中 誠二
(72)【発明者】
【氏名】佐藤 晋太郎
(72)【発明者】
【氏名】伊藤 浩之
(72)【発明者】
【氏名】伊能 和義
(72)【発明者】
【氏名】大森 敏充
(72)【発明者】
【氏名】大西 正嗣
【審査官】 井上 宏一
(56)【参考文献】
【文献】 特開平11− 98162(JP,A)
【文献】 特開2013−175052(JP,A)
【文献】 特開2013− 54553(JP,A)
【文献】 米国特許出願公開第2012/0284725(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/46 −9/54
G06F 15/00
(57)【特許請求の範囲】
【請求項1】
セッション管理時間が異なる複数の記憶手段にセッション情報をそれぞれ記憶させ、各セッション管理時間がそれぞれ経過した後に各記憶手段からそれぞれ削除することにより、リクエスト内のセッション情報を管理する管理手段と、
端末装置からウェブ提供装置へのリクエストを捕捉する受信手段と、
前記複数の記憶手段にそれぞれ記憶されたセッション情報の各総数が、各記憶手段の各セッション管理時間で前記ウェブ提供装置が処理可能な各上限セッション数に到達しているか否かをそれぞれ判定する判定手段と、
前記判定の結果、前記複数の記憶手段のうち少なくとも1つ以上が上限セッション数に到達している場合、前記捕捉リクエストを前記ウェブ提供装置へ転送せず、前記複数の記憶手段のうちいずれも到達していない場合、前記捕捉リクエストを前記ウェブ提供装置へ転送する制御手段と、
を有することを特徴とする負荷分散装置。
【請求項2】
前記判定手段は、
前記複数の記憶手段のうち少なくとも1つ以上が上限セッション数に到達している場合、前記捕捉リクエスト内のセッション情報がセッション管理時間の最も長い記憶手段にあるか否かを判定し、
前記制御手段は、
当該記憶手段にない場合、前記捕捉リクエストを転送することなく前記端末装置へ非転送の結果情報を送信し、当該記憶手段にある場合、前記捕捉リクエストを前記ウェブ提供装置へ転送することを特徴とする請求項1に記載の負荷分散装置。
【請求項3】
コンピュータにより、
セッション管理時間が異なる複数の記憶手段にセッション情報をそれぞれ記憶させ、各セッション管理時間がそれぞれ経過した後に各記憶手段からそれぞれ削除することにより、リクエスト内のセッション情報を管理する管理ステップと、
端末装置からウェブ提供装置へのリクエストを捕捉する受信ステップと、
前記複数の記憶手段にそれぞれ記憶されたセッション情報の各総数が、各記憶手段の各セッション管理時間で前記ウェブ提供装置が処理可能な各上限セッション数に到達しているか否かをそれぞれ判定する判定ステップと、
前記判定の結果、前記複数の記憶手段のうち少なくとも1つ以上が上限セッション数に到達している場合、前記捕捉リクエストを前記ウェブ提供装置へ転送せず、前記複数の記憶手段のうちいずれも到達していない場合、前記捕捉リクエストを前記ウェブ提供装置へ転送する制御ステップと、
を有することを特徴とする負荷分散方法。
【請求項4】
前記判定ステップにおいて、
前記複数の記憶手段のうち少なくとも1つ以上が上限セッション数に到達している場合、前記捕捉リクエスト内のセッション情報がセッション管理時間の最も長い記憶手段にあるか否かを判定し、
前記制御ステップにおいて、
当該記憶手段にない場合、前記捕捉リクエストを転送することなく前記端末装置へ非転送の結果情報を送信し、当該記憶手段にある場合、前記捕捉リクエストを前記ウェブ提供装置へ転送することを特徴とする請求項3に記載の負荷分散方法。
【請求項5】
請求項3又は4に記載の負荷分散方法をコンピュータに実行させることを特徴とする負荷分散プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバの負荷を分散する技術に関する。
【背景技術】
【0002】
リクエストの増加に伴うサービスの低下を防止するため、Webサーバの前段には負荷分散装置が配置されている。負荷分散装置は、クライアント端末からのHTTPリクエストを一旦受信し、初回のリクエストであれば、複数のWebサーバのうち任意のWebサーバへ転送する。一方、2回目以降のリクエストであれば、クライアント端末とWebサーバ間で矛盾のない通信を保証するため、リクエスト内のセッションIDを発行したWebサーバへ転送する(非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】“負荷分散入門 第6回 セッション維持機能”、富士通株式会社、[online]、[平成25年12月11日検索]、<URL: http://fenics.fujitsu.com/products/ipcom/catalog/data/1/6.html>
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、いずれの場合であってもHTTPリクエストを必ず転送するため、負荷分散装置を介在させたとしてもWebサーバの負荷を確実に低減することは難しいという課題があった。例えば、災害発生時にクライアント端末から災害伝言ダイヤルへ伝言登録等が行われる場合、東日本や西日本等の一定広域毎に配置された数台レベルの伝言ダイヤル提供サーバでは、数千万台単位のクライアント端末からのHTTPリクエストを全て受け付けて確実に処理することは極めて困難である。
【0005】
本発明は、上記事情を鑑みてなされたものであり、Webサーバの負荷を改善することを目的とする。
【課題を解決するための手段】
【0006】
請求項1に記載の負荷分散装置は、セッション管理時間が異なる複数の記憶手段にセッション情報をそれぞれ記憶させ、各セッション管理時間がそれぞれ経過した後に各記憶手段からそれぞれ削除することにより、リクエスト内のセッション情報を管理する管理手段と、端末装置からウェブ提供装置へのリクエストを捕捉する受信手段と、前記複数の記憶手段にそれぞれ記憶されたセッション情報の各総数が、各記憶手段の各セッション管理時間で前記ウェブ提供装置が処理可能な各上限セッション数に到達しているか否かをそれぞれ判定する判定手段と、前記判定の結果、前記複数の記憶手段のうち少なくとも1つ以上が上限セッション数に到達している場合、前記捕捉リクエストを前記ウェブ提供装置へ転送せず、前記複数の記憶手段のうちいずれも到達していない場合、前記捕捉リクエストを前記ウェブ提供装置へ転送する制御手段と、を有することを要旨とする。
【0007】
本発明によれば、セッション管理時間が異なる複数の記憶手段を用いてリクエスト内のセッション情報を管理し、その複数の記憶手段にそれぞれ記憶されたセッション情報の各総数が、各記憶手段の各セッション管理時間でウェブ提供装置が処理可能な各上限セッション数に到達しているか否かをそれぞれ判定し、その判定の結果に基づき端末装置からのリクエストをウェブ提供装置へ転送又は非転送するため、ウェブ提供装置の負荷を低減することができる。
【0008】
請求項2に記載の負荷分散装置は、請求項1に記載の負荷分散装置において、前記判定手段は、前記複数の記憶手段のうち少なくとも1つ以上が上限セッション数に到達している場合、前記捕捉リクエスト内のセッション情報がセッション管理時間の最も長い記憶手段にあるか否かを判定し、前記制御手段は、当該記憶手段にない場合、前記捕捉リクエストを転送することなく前記端末装置へ非転送の結果情報を送信し、当該記憶手段にある場合、前記捕捉リクエストを前記ウェブ提供装置へ転送することを要旨とする。
【0009】
本発明によれば、複数の記憶手段のいずれかが上限セッション数に到達している場合、捕捉したリクエスト内のセッション情報がセッション管理時間の最も長い記憶手段にあるか否かを判定し、その記憶手段にない場合には当該リクエストを転送しないため、ウェブ提供装置の負荷をより確実に低減することができる。
【0010】
請求項3に記載の負荷分散方法は、コンピュータにより、セッション管理時間が異なる複数の記憶手段にセッション情報をそれぞれ記憶させ、各セッション管理時間がそれぞれ経過した後に各記憶手段からそれぞれ削除することにより、リクエスト内のセッション情報を管理する管理ステップと、端末装置からウェブ提供装置へのリクエストを捕捉する受信ステップと、前記複数の記憶手段にそれぞれ記憶されたセッション情報の各総数が、各記憶手段の各セッション管理時間で前記ウェブ提供装置が処理可能な各上限セッション数に到達しているか否かをそれぞれ判定する判定ステップと、前記判定の結果、前記複数の記憶手段のうち少なくとも1つ以上が上限セッション数に到達している場合、前記捕捉リクエストを前記ウェブ提供装置へ転送せず、前記複数の記憶手段のうちいずれも到達していない場合、前記捕捉リクエストを前記ウェブ提供装置へ転送する制御ステップと、を有することを要旨とする。
【0011】
請求項4に記載の負荷分散方法は、請求項3に記載の負荷分散方法において、前記判定ステップでは、前記複数の記憶手段のうち少なくとも1つ以上が上限セッション数に到達している場合、前記捕捉リクエスト内のセッション情報がセッション管理時間の最も長い記憶手段にあるか否かを判定し、前記制御ステップでは、当該記憶手段にない場合、前記捕捉リクエストを転送することなく前記端末装置へ非転送の結果情報を送信し、当該記憶手段にある場合、前記捕捉リクエストを前記ウェブ提供装置へ転送することを要旨とする。
【0012】
請求項5に記載の負荷分散プログラムは、請求項3又は4に記載の負荷分散方法をコンピュータに実行させることを要旨とする。
【発明の効果】
【0013】
本発明によれば、Webサーバの負荷を低減することができる。
【図面の簡単な説明】
【0014】
図1】負荷分散装置の機能ブロック構成を示す図である。
図2】負荷分散装置の処理フローを示す図である。
図3】処理パターンAのシーケンスを示す図である。
図4】処理パターンBのシーケンスを示す図である。
図5】処理パターンCのシーケンスを示す図である。
図6】処理パターンDのシーケンスを示す図である。
図7】処理パターンEのシーケンスを示す図である。
【発明を実施するための形態】
【0015】
本発明は、(1)セッション管理時間が異なる複数の管理テーブルを用いてHTTPリクエスト内のセッションIDを管理し、(2)その複数の管理テーブルにそれぞれ記憶されたセッションIDの各総数が、各管理テーブルの各セッション管理時間でWebサーバが処理可能な各上限セッション数に到達しているか否かをそれぞれ判定し、(3)いずれかの管理テーブルが上限セッション数に到達している場合には、捕捉したHTTPリクエスト内のセッションIDがセッション管理時間の最も長い管理テーブルにあるか否かを判定し、(4)その管理テーブルにない場合には、そのHTTPリクエストを転送することなくクライアント端末へ非転送の結果情報を送信することにより、Webサーバの負荷を低減するようにしている。以下、本発明を実施する一実施の形態について図面を用いて説明する。
【0016】
図1は、本実施の形態に係る負荷分散装置1の機能ブロック構成を示す図である。本負荷分散装置1は、セッション管理部11と、リクエスト受信部12と、第1のセッション判定部13と、第2のセッション判定部14と、リクエスト制御部15とを備えて構成される。
【0017】
セッション管理部11は、セッション管理時間が異なる複数の管理テーブル(記憶手段)を用いてこれまでに受信したHTTPリクエスト内のセッションIDを管理する機能部である。受信したHTTPリクエスト内にセッションIDがある場合には全ての管理テーブルにそれぞれ登録し、その一方で各管理テーブルでのセッション管理時間が経過した後に順次削除する。なお、セッションIDと共にHTTPリクエストの受信時刻を関連付けて登録してもよい。
【0018】
リクエスト受信部12は、クライアント端末2からWebサーバ3へ送信されるHTTPリクエストを受信(捕捉)する機能部である。
【0019】
第1のセッション判定部13は、受信したHTTPリクエストにセッションIDが含まれているか否かを判定する機能部である。通常、同一のクライアント端末2からのHTTPリクエストが2回目以降であればセッションIDが含まれている。
【0020】
第2のセッション判定部14は、各管理テーブルにそれぞれ登録されているセッションIDの各総数が、各管理テーブルの各セッション管理時間内でWebサーバ3が処理可能な上限セッション数に到達しているか否かをそれぞれ判定する機能部である。
【0021】
リクエスト制御部15は、第1のセッション判定部13及び第2のセッション判定部14によって行われた各判定結果に基づき、リクエスト受信部12で受信したHTTPリクエストを転送又は非転送する機能部である。
【0022】
以上が負荷分散装置1の備える機能である。なお、負荷分散装置1は、クライアント端末2とWebサーバ3との間に配置され、それらに通信可能に接続されている。
【0023】
次に、本実施の形態に係る負荷分散装置1の動作について説明する。図2は、負荷分散装置1の処理フローを示す図である。なお、セッション管理部11は、セッション管理時間が30分である30分用テーブル及びIPテーブルと、同管理時間が10秒である10秒用テーブルとを管理しているものとする。30分用テーブルとは、10秒用テーブルについても同様に、HTTPリクエストを受信した後、30分を経過していないセッションIDを管理するためのものである。一方、IPテーブルとは、その受信後に30分を経過していないクライアント端末毎のセッションIDを管理するためのものである。
【0024】
まず、ステップS1において、リクエスト受信部12は、クライアント端末2からWebサーバ3へ送信されるHTTPリクエストを受信(捕捉)する。
【0025】
次に、ステップS2において、第1のセッション判定部13は、受信したHTTPリクエストにセッションIDが含まれているかを判定する。その判定の結果、セッションIDが含まれていない場合には、クライアント端末2からのHTTPリクエストが初回であるため、ステップS3へ進む。
【0026】
次に、ステップS3において、第2のセッション判定部14は、30分用テーブルに現在登録されているセッションIDの数をカウントし、Webサーバ3において30分間で処理可能な上限セッション数に到達しているかを判定する。同様に、10秒用テーブル内のセッションIDの数が10秒間で処理可能な上限セッション数に到達しているかを判定し、更に、IPテーブル内のセッションIDの数が30分間で処理可能なクライアント端末毎の上限セッション数に到達しているかも判定する。
【0027】
そして、それら各判定の結果、3種類の管理テーブルのうちいずれかが上限セッション数に到達している場合には、現時点でのWebサーバ3は高負荷状態であるため、ステップS4において、リクエスト制御部15は、受信中のHTTPリクエストをWebサーバ3へ転送することなく、送信元であるクライアント端末2の画面に「Sorry Page」(非転送の結果情報)を表示する。このときの処理パターンAを図3に示す。
【0028】
一方、3種類の管理テーブルのいずれも上限セッション数に到達していない場合やいずれかに空きがある場合には、現時点でのWebサーバ3は高負荷状態でないため、ステップS5において、リクエスト制御部15は、受信中のHTTPリクエストをWebサーバ3へ転送する。なお、ステップS6に示すように、HTTPリクエストを転送するもののセッションIDがないため、セッション管理部11によってセッションIDが各管理テーブルに追加登録されることはない。
【0029】
このときの処理パターンBを図4に示す。Webサーバ3は、HTTPリクエストを受信した後、そのリクエストに対する内部処理が成功すればセッション開始用SDR(Subscriber Detail Record:ユーザ単位に作成するアクセスレコード)やセッションIDを発行し、要求元のクライアント端末2へ送信する。なお、負荷分散装置1によるHTTPリクエストの転送処理が成功したとしても、Webサーバ3の状態により内部処理が失敗した場合には、Webサーバ3からクライアント端末2へその旨が通知されることになる。
【0030】
ここまでのステップS3〜ステップS6が初回リクエスト時における負荷分散装置1の動作であり、その処理後は本動作を終了する。その一方、ステップS2の判定の結果、セッションIDが受信中のHTTPリクエストに含まれている場合は、2回目以降のリクエストであるため、ステップS7へ進み、第2のセッション判定部14は、ここでもステップS3と同様の処理を実行する。
【0031】
そして、ステップS7での各判定の結果、3種類の管理テーブルのうちいずれかが上限セッション数に到達している場合には、ステップS8において、第2のセッション判定部14は、続いて、HTTPリクエスト内のセッションIDが、セッション管理時間の最も長い30分用テーブルに登録されているかを判定する。
【0032】
そして、その判定の結果、そのセッションIDが30分用テーブルにない場合には、最も長いセッション管理時間を経過した後のリクエストであるため、ステップS9において、リクエスト制御部15は、受信中のHTTPリクエストをWebサーバ3へ転送することなく、送信元であるクライアント端末2の画面に「Sorry Page」を表示する。その後、ステップS11へ進み、セッション管理部11は、そのセッションIDを全ての管理テーブルへ上書き(空きがあれば追記)する。このときの処理パターンCを図5に示す。
【0033】
一方、ステップS8での判定の結果、セッションIDが30分用テーブルにある場合には、3種類の管理テーブルのうちいずれかが上限セッション数に到達していてもセッション管理時間内での再度のリクエストであるため、ステップS10において、リクエスト制御部15は、受信中のHTTPリクエストをWebサーバ3へ転送する。その後、ステップS11へ進み、セッション管理部11は、そのセッションIDを全ての管理テーブルへ上書きする。このときの処理パターンDを図6に示す。
【0034】
最後に、ステップS7での判定の結果、3種類の管理テーブルのいずれも上限セッション数に到達していない場合には、現時点でのWebサーバ3は高負荷状態でないため、ステップS8を経由することなくステップS10へ進み、リクエスト制御部15は、受信中のHTTPリクエストをWebサーバ3へ転送する。その後、ステップS11へ進み、セッション管理部11は、そのHTTPリクエスト内のセッションIDを全ての管理テーブルへ上書きする。このときの処理パターンEを図7に示す。
【0035】
以上が負荷分散装置1の処理フローの例である。なお、本処理フローは、各処理パターンA〜Eの動作を容易に理解するための一例にすぎず、例えば、共通動作であるステップS3,S7を1回のステップに纏め、ステップS1とステップS2との間で実行するようにしてもよい。また、ステップS2,S3,S7の各判定処理を1つのセッション判定部で行うようにしてもよい。
【0036】
以上より、本実施の形態によれば、セッション管理部11が、セッション管理時間が異なる複数の管理テーブルを用いてHTTPリクエスト内のセッションIDを管理し、第2のセッション判定部14が、複数の管理テーブルにそれぞれ記憶されたセッションIDの各総数が、各管理テーブルの各セッション管理時間でWebサーバ3が処理可能な各上限セッション数に到達しているか否かをそれぞれ判定し、リクエスト制御部15が、その判定の結果に基づきクライアント端末2からWebサーバ3へのHTTPリクエストをWebサーバ3へ転送又は非転送するので、Webサーバ3の負荷を低減することができる。
【0037】
また、第2のセッション判定部14は、複数の管理テーブルのいずれかが上限セッション数に到達している場合、捕捉したHTTPリクエスト内のセッションIDがセッション管理時間の最も長い管理テーブルにあるか否かを判定し、リクエスト制御部15は、その管理テーブルにない場合には当該HTTPリクエストを転送しないので、Webサーバ3の負荷をより確実に低減することができる。
【0038】
本実施の形態に係る負荷分散装置1を用いて行った過負荷試験結果、Webサーバでの処理成功率は45%以上であった。本試験では、クライアント端末からのHTTPリクエスト数が秒間ピーク時の2倍としていたため、秒間ピーク時であったとしても90%以上が成功することになる。すなわち、本実施の形態で説明した負荷分散装置1を用いることにより、概ね全てのリクエストを処理可能となることから、Webサーバの負荷が適切に改善されたという効果が実証される。
【0039】
なお、本実施の形態では、セッション管理時間が異なる3つの管理テーブルを用いてセッションIDを管理する場合を例に説明したが、それらの管理テーブルを1つの管理テーブルに含めて管理するようにしてもよい。
【0040】
最後に、本実施の形態で説明した負荷分散装置1は、メモリやCPUを備えたコンピュータで実現できる。また、その処理は、プログラムによって実行される。更に、負荷分散装置1の各動作をプログラムとして構築し、コンピュータにインストールして実行させることや、通信ネットワークを介して流通させることも可能である。
【符号の説明】
【0041】
1…負荷分散装置
11…セッション管理部(管理手段)
12…リクエスト受信部(受信手段)
13…第1のセッション判定部
14…第2のセッション判定部(判定手段)
15…リクエスト制御部(制御手段)
2…クライアント端末(端末装置)
3…Webサーバ(ウェブ提供装置)
A〜E…処理パターン
S1〜S11…ステップ
図1
図2
図3
図4
図5
図6
図7