JP2004192449A - Web型クライアントサーバシステムにおける負荷分散方法、負荷分散システム、および負荷分散プログラム - Google Patents
Web型クライアントサーバシステムにおける負荷分散方法、負荷分散システム、および負荷分散プログラム Download PDFInfo
- Publication number
- JP2004192449A JP2004192449A JP2002361116A JP2002361116A JP2004192449A JP 2004192449 A JP2004192449 A JP 2004192449A JP 2002361116 A JP2002361116 A JP 2002361116A JP 2002361116 A JP2002361116 A JP 2002361116A JP 2004192449 A JP2004192449 A JP 2004192449A
- Authority
- JP
- Japan
- Prior art keywords
- web
- load
- request
- web server
- load distribution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Multi Processors (AREA)
Abstract
【解決手段】本発明の負荷分散方法によれば、公衆回線15を介して複数のクライアント計算機10からリクエストを受け付け、このリクエストに対するタスクを実行し、実行結果をクライアント計算機10へと返信するWeb型クライアントサーバシステムにおける各Webサーバ13の負荷を分散する方法である。具体的には、各Webサーバ13の各々に対し予め決定された優先順位データテーブルを記憶し、各Webサーバ13の稼働状態が稼働中又は停止中であるかを把握すると共に、クライアント計算機10からリクエストがあった場合には、稼働状態が稼働中であるWebサーバ13の中から、優先順位データテーブルに書き込まれた優先順位が最も高いWebサーバ13へと、このリクエストを割り振る。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、複数のWebサーバによって構成されるWeb型クライアントサーバシステムにおいて各Webサーバの負荷を分散する方法、システム、およびプログラムに係り、更に詳しくは、高価な負荷バランサを用いることなく各Webサーバの負荷分散を図る負荷分散方法、負荷分散システム、および負荷分散プログラムに関するものである。
【0002】
【従来の技術】
クライアントサーバシステムとは、その概略構成を図5に示すように、クライアント計算機10(#1〜#n)に搭載されたプログラムが、サーバ計算機12に搭載されたプログラムと随時交信を行いながら、サーバ計算機12に接続されたデータベースサーバ14に格納されたデータベースを利用してタスクを実行するシステムである。
【0003】
この種のシステムでは、クライアント計算機10(#1〜#n)に搭載されたプログラムに、システム全体の機能の大部分を担当させることで、負荷分散が図られ、サーバ計算機12に過大な負荷がかかりにくい設計ができるというメリットがある。
【0004】
しかしながら、サーバ計算機12とクライアント計算機10(#1〜#n)とが中規模以上のLAN(Local Area Network)、または企業体の基幹ネットワークやインターネット等によって構築されているWAN(Wide Area Network)上に配置された中規模システムや、クライアント計算機10(#1〜#n)がある数以上ある大規模システムにおいては、プログラムを各クライアント計算機10(#1〜#n)に搭載し、更にそれを維持するためのコストが膨大となり、プログラムの更新や置換を行う場合にも大がかりとなってしまう。更には、クライアント計算機10(#1〜#n)の環境が多種類ある場合、複数種類のクライアント計算機10用のプログラムを用意する必要もある。
【0005】
近年、コンピュータならびにネットワークの高速化と、異なるプログラム、および異なる計算機の機種間におけるデータ形式の標準化が進行したことにより、上述したような従来のクライアントサーバシステムに代わるものとして、Web型クライアントサーバシステムが広く用いられるようになってきている。
【0006】
この種のWeb型クライアントサーバシステムは、図6に示すように、クライアント計算機10(#1〜#n)には一般的なWebブラウザを搭載するだけでよく、プログラムを搭載しなくて良い。それに代わりプログラムの主体はWebサーバ13に搭載されている。そして、クライアント計算機10(#1〜#n)に搭載されたWebブラウザが、Webサーバ13に搭載されたプログラムと随時交信を行い、Webサーバ13に搭載されたプログラムが、データベースサーバ14に格納されたデータベースを利用してタスクを実行し、実行結果が要求元のクライアント計算機10に返信される。
【0007】
すなわち、Webサーバ13においてプログラムが動作することによってタスク(スレッド)が実行される。このため、Webサーバ13にシステム全体の負荷がかかってしまう。それを回避するために、通常はWebサーバ13を複数台設け、負荷の分散を図れるような構成とする場合が多い。
【0008】
図7は、このようなWebサーバ13を複数台(N台)設けたWeb型クライアントサーバシステムの概念を示す簡略図である。この図では、ファイヤウォール等ネットワークのセキュリティや、ルータ等の必要なコンポーネントを省略している。
【0009】
すなわち、Webサーバ13(#1〜#N)を複数台設けたWeb型クライアントサーバシステムでは、クライアント計算機10側との通信を行う通信ネットワーク(ここでは、一例としてインターネット11とする。)に、負荷バランサ16が設けられている。
【0010】
この負荷バランサ16は、インターネット11を介してなされるクライアント計算機10(#1〜#n)側からの大量のリクエストを、各Webサーバ13(#1〜#N)の負荷をバランスさせるように割り振る。どのリクエストをどのWebサーバ13へと割り振るのかは、各Webサーバ13(#1〜#N)に対するアクセスユーザ数、データの転送量、およびその他各Webサーバ13(#1〜#N)の状態などから決定される各Webサーバ13(#1〜#N)の負荷に基づいて決定されている。
【0011】
このように、複数のWebサーバ13(#1〜#N)を設けたWeb型クライアントサーバシステムにおいて、各Webサーバ13(#1〜#N)の負荷を把握するための発明は、例えば特許文献1に記載されている。
【0012】
【特許文献1】
特開2001−331398号公報
【0013】
【発明が解決しようとする課題】
しかしながら、このような従来のWeb型クライアントサーバシステムでは、以下のような問題がある。
【0014】
すなわち、上述したような負荷バランサ16は、非常に高価な装置である。したがって、毎秒数十〜数百アクセスというレベルの高速性を求められる商用サイト用のWeb型クライアントサーバシステムに適用されるのならともかく、例えば企業や官公庁のWANに設置される業務支援用システムのような中小規模のシステムにこのような高価な負荷バランサ16を導入することは費用対高価の面からも現実的ではないという問題がある。
【0015】
また、負荷バランサ16を導入することによって、全体のシステム構成も複雑かつ大がかりになってしまうという問題がある。
【0016】
更に、負荷バランサ16自体が障害などで停止した場合には、クライアント計算機10(#1〜#n)側からのリクエストを、どのWebサーバ13(#1〜#N)へも割り振ることができなくなり、システム全体が機能停止状態に陥ってしまうという問題もある。これは、負荷バランサ16を複数設置することによって回避されるものの、全体として冗長なシステムとなるのに加え、上述したように負荷バランサ16は非常に高価であるために、システム費用が跳ね上がることはいうまでもない。
【0017】
本発明はこのような事情に鑑みてなされたものであり、複数のWebサーバによって構成されるWeb型クライアントサーバシステムにおいて、負荷バランサを用いることなく各Webサーバへのリクエストの割り振りを行い、もって、システム構成の簡素化、およびコストの低減化を図りつつ、各Webサーバの負荷の分散を図ることが可能なWeb型クライアントサーバシステムにおける負荷分散方法、負荷分散システム、および負荷分散プログラムを提供することを目的とする。
【0018】
【課題を解決するための手段】
上記の目的を達成するために、本発明では、以下のような手段を講じる。
【0019】
すなわち、請求項1の発明は、複数のWebサーバによって構成され、通信ネットワークを介して複数のクライアント計算機からリクエストを受け付け、このリクエストに対するタスクを実行し、実行結果を通信ネットワークを介してクライアント計算機へと返信するWeb型クライアントサーバシステムにおいて各Webサーバの負荷を分散する方法に適用されるものである。
【0020】
具体的には、各Webサーバのそれぞれに対して、予め決定された優先順位が書き込まれた優先順位データテーブルを記憶し、各Webサーバの稼働状態が稼働中または停止中であるかを把握するとともに、通信ネットワークを介して複数のクライアント計算機からリクエストがあった場合には、このリクエストを受け付け、稼働状態が稼働中であるWebサーバの中から、優先順位データテーブルに書き込まれた優先順位が最も高いWebサーバへと、受け付けたリクエストを割り振るようにしている。
【0021】
従って、請求項1の発明のWeb型クライアントサーバシステムにおける負荷分散方法においては、以上のような手段を講じることにより、負荷バランサを用いなくても、各Webサーバへとリクエストを割り振ることができる。その結果、システム構成の簡素化と、コストの低減化を図りつつ、負荷を分散することが可能となる。
【0022】
請求項2の発明は、請求項1の発明の負荷分散方法において、各Webサーバの稼働状態が稼働中または停止中であるかを所定周期毎に把握するようにしている。
【0023】
従って、請求項2の発明のWeb型クライアントサーバシステムにおける負荷分散方法においては、以上のような手段を講じることにより、常にWebサーバの稼働状態を把握することができる。その結果、稼働中のWebサーバにのみリクエストを割り振ることが可能となる。
【0024】
請求項3の発明は、請求項1または請求項2の発明の負荷分散方法において、割振手段によってリクエストが割り振られたWebサーバは、自己の負荷が、予め定めた許容負荷よりも大きい場合には、稼働状態が稼働中である自己以外のWebサーバの中から、優先順位データテーブルに書き込まれた優先順位が最も高いWebサーバへと、割り振られたリクエストを転送するようにしている。
【0025】
従って、請求項3の発明のWeb型クライアントサーバシステムにおける負荷分散方法においては、以上のような手段を講じることにより、Webサーバは一旦リクエストを割り振られても、自己の負荷が既に大きい場合には、このリクエストを他のWebサーバに転送することができる。その結果、特定のWebサーバに負荷が集中することなく、各Webサーバの負荷の平準化を図ることが可能となる。
【0026】
請求項4の発明は、請求項3の発明の負荷分散方法において、許容負荷とは、対応するWebサーバのCPU使用率、空きメモリ量、プロセス数、および処理件数のうちの少なくとも何れかに基づいて決定されるようにしている。
【0027】
従って、請求項4の発明のWeb型クライアントサーバシステムにおける負荷分散方法においては、以上のような手段を講じることにより、一旦リクエストを割り振られたWebサーバであっても、CPU使用率、空きメモリ量、プロセス数、および処理件数等を考慮し、自己の負荷が既に大きい場合には、このリクエストを他のWebサーバに転送することができる。その結果、特定のWebサーバに負荷が集中することなく、各Webサーバの負荷の平準化を図ることが可能となる。
【0028】
請求項5の発明は、複数のWebサーバによって構成され、通信ネットワークを介して複数のクライアント計算機からリクエストを受け付け、このリクエストに対するタスクを実行し、実行結果を通信ネットワークを介してクライアント計算機へと返信するWeb型クライアントサーバシステムにおいて各Webサーバの負荷を分散するシステムであり、記憶手段と、稼働状態把握手段と、割振手段とを備えている。
【0029】
記憶手段は、各Webサーバのそれぞれに対して、予め決定された優先順位が書き込まれた優先順位データテーブルを記憶する。稼働状態把握手段は、各Webサーバの稼働状態が稼働中または停止中であるかを把握する。割振手段は、通信ネットワークを介して複数のクライアント計算機からリクエストがあった場合には、このリクエストを受け付け、稼働状態把握手段によって把握された稼働状態が稼働中であるWebサーバの中から、記憶手段に記憶された優先順位データテーブルに書き込まれた優先順位が最も高いWebサーバへと、受け付けたリクエストを割り振る。
【0030】
従って、請求項5の発明のWeb型クライアントサーバシステムにおける負荷分散システムにおいては、以上のような手段を講じることにより、負荷バランサを用いなくても、各Webサーバへとリクエストを割り振ることができる。その結果、システム構成の簡素化と、コストの低減化を図りつつ、負荷を分散することが可能となる。
【0031】
請求項6の発明は、請求項5の発明の負荷分散システムにおいて、稼働状態把握手段は、各Webサーバの稼働状態が稼働中または停止中であるかを所定周期毎に把握するようにしている。
【0032】
従って、請求項6の発明のWeb型クライアントサーバシステムにおける負荷分散システムにおいては、以上のような手段を講じることにより、常にWebサーバの稼働状態を把握することができる。その結果、稼働中のWebサーバにのみリクエストを割り振ることが可能となる。
【0033】
請求項7の発明は、請求項5または請求項6の発明の負荷分散システムにおいて、各Webサーバに、割振手段によってリクエストが割り振られた場合、自己の負荷が、予め定めた許容負荷よりも大きい場合には、稼働状態把握手段によって把握されている稼働状態が稼働中である自己以外のWebサーバの中から、記憶手段に記憶された優先順位データテーブルに書き込まれた優先順位が最も高いWebサーバへと、割り振られたリクエストを転送する転送手段を備えている。
【0034】
従って、請求項7の発明のWeb型クライアントサーバシステムにおける負荷分散システムにおいては、以上のような手段を講じることにより、Webサーバは一旦リクエストを割り振られても、自己の負荷が既に大きい場合には、このリクエストを他のWebサーバに転送することができる。その結果、特定のWebサーバに負荷が集中することなく、各Webサーバの負荷の平準化を図ることが可能となる。
【0035】
請求項8の発明は、請求項7の発明の負荷分散システムにおいて、許容負荷とは、対応するWebサーバのCPU使用率、空きメモリ量、プロセス数、および処理件数のうちの少なくとも何れかに基づいて決定されるようにしている。
【0036】
従って、請求項8の発明のWeb型クライアントサーバシステムにおける負荷分散システムにおいては、以上のような手段を講じることにより、一旦リクエストを割り振られたWebサーバであっても、CPU使用率、空きメモリ量、プロセス数、および処理件数等を考慮し、自己の負荷が既に大きい場合には、このリクエストを他のWebサーバに転送することができる。その結果、特定のWebサーバに負荷が集中することなく、各Webサーバの負荷の平準化を図ることが可能となる。
【0037】
請求項9の発明は、請求項5乃至8のうち何れか1項の発明の負荷分散システムにおいて、記憶手段、稼働状態把握手段、および割振手段をそれぞれ複数備えている。
【0038】
従って、請求項9の発明のWeb型クライアントサーバシステムにおける負荷分散システムにおいては、以上のような手段を講じることにより、冗長性を図ることができる。その結果、万が一、記憶手段、稼働状態把握手段、および割振手段の何れかまたは全てに障害が発生し、リクエストの割り振りをすることができなくなった場合であっても、バックアップ動作することが可能となる。
【0039】
請求項10の発明は、請求項5乃至9のうち何れか1項の発明の負荷分散システムにおいて、記憶手段、稼働状態把握手段、および割振手段は、複数のWebサーバのうちの何れかに、または通信ネットワークを介して複数のクライアント計算機からリクエストを受け付けるルータに備えている。
【0040】
従って、請求項10の発明のWeb型クライアントサーバシステムにおける負荷分散システムにおいては、以上のような手段を講じることにより、リクエストを割り振る各手段としてWebサーバまたはルータを用いることができる。Webサーバおよびルータはいずれも負荷バランサよりも十分に低価格であり、かついずれもWeb型クライアントサーバシステムには通常備えられているハードウェアである。その結果、追加コストを発生することなくリクエストを割り振りすることが可能となる。
【0041】
請求項11の発明は、複数のWebサーバによって構成され、通信ネットワークを介して複数のクライアント計算機からリクエストを受け付け、このリクエストに対するタスクを実行し、実行結果を通信ネットワークを介してクライアント計算機へと返信するWeb型クライアントサーバシステムにおいて各Webサーバの負荷を分散するコンピュータ読み取り可能なプログラムであって、稼働状態把握機能、割振機能をコンピュータに実現させる。
【0042】
稼働状態把握機能では、各Webサーバの稼働状態が稼働中または停止中であるかを把握し、割振機能では、通信ネットワークを介して複数のクライアント計算機からリクエストがあった場合には、このリクエストを受け付け、稼働状態把握機能において把握された稼働状態が稼働中であるWebサーバの中から、各Webサーバのそれぞれに対して予め決定された優先順位が最も高いWebサーバへと、受け付けたリクエストを割り振る。
【0043】
従って、請求項11の発明のWeb型クライアントサーバシステムにおける負荷分散プログラムにおいては、以上のような手段を講じることにより、負荷バランサを用いなくても、各Webサーバへとリクエストを割り振ることができる。
【0044】
請求項12の発明は、請求項11の発明の負荷分散プログラムにおいて、稼働状態把握機能では、各Webサーバの稼働状態が稼働中または停止中であるかを所定周期毎に把握するようにしている。
【0045】
従って、請求項12の発明のWeb型クライアントサーバシステムにおける負荷分散プログラムにおいては、以上のような手段を講じることにより、常にWebサーバの稼働状態を把握することができる。その結果、稼働中のWebサーバにのみリクエストを割り振ることが可能となる。
【0046】
請求項13の発明は、請求項11または請求項12の発明の負荷分散プログラムにおいて、割振機能によってリクエストが割り振られたWebサーバの負荷が、予め定めた許容負荷よりも大きい場合には、稼働状態把握機能において把握されている稼働状態が稼働中である当該Webサーバ以外のWebサーバの中から、優先順位が最も高いWebサーバへと、割り振られたリクエストを転送する転送機能を付加している。
【0047】
従って、請求項13の発明のWeb型クライアントサーバシステムにおける負荷分散プログラムにおいては、以上のような手段を講じることにより、Webサーバに一旦リクエストが割り振られても、このWebサーバの負荷が既に大きい場合には、このリクエストを他のWebサーバに転送させることができる。その結果、特定のWebサーバに負荷が集中することなく、各Webサーバの負荷の平準化を図ることが可能となる。
【0048】
【発明の実施の形態】
以下に、本発明の各実施の形態について図面を参照しながら説明する。
【0049】
なお、以下の各実施の形態の説明に用いる図中の符号は、図5から図7と同一部分については同一符号を付して示すことにする。
【0050】
(第1の実施の形態)
本発明の第1の実施の形態を図1から図3を用いて説明する。
【0051】
図1は、本発明の第1の実施の形態に係る負荷分散方法を適用したWeb型クライアントサーバシステムの全体構成の一例を示す構成図である。
【0052】
すなわち、本実施の形態に係る負荷分散方法を適用したWeb型クライアントサーバシステムは、例えばLANやWANからなる専用回線15を介して互いに接続された複数のWebサーバ13(#1〜#N)と、データベースサーバ14と、ルータ18およびファイヤウォール20を備えた割振部21とを備えており、これらが連携して動作することによって負荷分散を図る負荷分散システムを組み込んでいる。
【0053】
割振部21は、例えばパソコンのように安価で簡易なハードウェアで実現でき、複数のクライアント計算機10(#1〜#n)が接続している公衆回線22(例えばインターネット)に接続している。必要に応じて複数設けることによって、システムの冗長化を図るようにしてもよい。冗長化した場合であっても、元々安価であるので、コスト的なインパクトは小さい。
【0054】
そして、ファイヤウォール20によって、公衆回線22を介しての専用回線15側への直接アクセスを防ぎ、Webサーバ13(#1〜#N)に搭載されたプログラムや、データベースサーバ14に格納されたデータベースのセキュリティを保っている。すなわち、割振部21は、ファイヤウォール20において、公衆回線22を介してなされる複数のクライアント計算機10(#1〜#n)からのリクエストを受け付けることによってセキュリティを確保した上で、この受け付けたリクエストをルータ18に転送する。
【0055】
ルータ18は、図2に示すような、Webサーバ管理テーブルを備えている。Webサーバ管理テーブルは、各Webサーバ13(#1〜#N)についての優先順位と、稼働情報とを書き込んだテーブルである。
【0056】
この優先順位とは、ファイヤウォール20から転送されたリクエストを優先的に割り振るWebサーバ13を定義した情報である。
【0057】
また、稼働情報とは、各Webサーバ13(#1〜#N)の稼働状態が稼働中または停止中かを把握するための情報であって、各Webサーバ13(#1〜#N)が最後に稼働した年月日時刻を書き込んでいる。ルータ18は、各Webサーバ13(#1〜#N)について、常に最新の稼働状態を把握するために、例えば毎分のような所定周期毎に、各Webサーバ13(#1〜#N)から、最後に稼働した年月日時刻情報が通知され、通知された年月日時刻情報に基づいてWebサーバ管理テーブルの内容を更新するようにしている。
【0058】
このようにWebサーバ管理テーブルを備えたルータ18は、ファイヤウォール20からリクエストが転送されると、Webサーバ管理テーブルを参照し、稼働中であるWebサーバ13の中から、優先順位が最も高いWebサーバ13へと、受け付けたリクエストを割り振る。
【0059】
ここで、稼働状態が稼働中であるかまたは停止中であるかは、例えば、最後に稼働した年月日時刻が現時刻よりも所定時間以上前(例えば、1分間)である場合には、所定時間(例えば、1分間)稼働していないことから、このWebサーバ13は停止中であると判定する。
【0060】
たとえば、図2に示すWebサーバ管理テーブルの場合、Webサーバ13(#1)が、優先順位が1番であるが、このWebサーバ13(#1)は2分間も稼働していない場合には、停止中であると判定し、稼働中であるWebサーバ(#2〜#N)の中で、最も優先順位の高いWebサーバ13(#2)にリクエストを割り振る。
【0061】
各Webサーバ13(#1〜#N)には、タスクを実行するためのアプリケーションプログラムが搭載されている。更に、ルータ18からリクエストが割り振られると、自己においてこのリクエストに対するタスクを実行することができるか否かを判定する判定プログラムもまた搭載している。
【0062】
この判定プログラムは、例えば磁気ディスク等の記録媒体に記録された、あるいはインターネット等を介してダウンロードされることによって読み込まれ、読み込まれたWebサーバ13(#1〜#N)によって実現されるものであって、リクエストが割り振られた場合、自己が搭載されているWebサーバ13の負荷が、予め定めた許容負荷以内である場合には、自己が搭載されているWebサーバ13のアプリケーションプログラムおよびデータベースサーバ14に格納されたデータを用いてこのリクエストに対するタスクを実行させ、実行結果をファイヤウォール20から公衆回線22を介して要求元のクライアント計算機10へと返信する。
【0063】
この判定プログラムは、一方、予め定めた許容負荷よりも大きい場合には、ルータ18に問い合わせを行い、Webサーバ管理テーブルを参照することによって、稼働中であるWebサーバ13の中から、自己以外で優先順位が最も高いWebサーバ13へと、受け付けたリクエストを転送する。この場合、リクエストを転送されたWebサーバ13でもまた、判定プログラムが動作することによって、このリクエストに対するタスクを自己で行うか、他のWebサーバ13へと転送するかを判定する。
【0064】
なお、許容負荷としては、例えば、対応するWebサーバ13のCPU使用率、空きメモリ量、プロセス数、および処理件数といったパラメータについてそれぞれ設けた上限値のことである。そして、いずれかのパラメータが上限値を超えた場合には、このWebサーバ13の負荷が既に大きいために、このリクエストを他のWebサーバ13に転送するようにする。
【0065】
このようにして、本実施の形態に係る負荷分散方法を適用したWeb型クライアントサーバシステムは、各Webサーバ13(#1〜#N)の負荷を分散するようにしている。
【0066】
次に、以上のように構成した本実施の形態に係る負荷分散方法を適用したWeb型クライアントサーバシステムの動作について、図3に示すフローチャートを用いて説明する。
【0067】
すなわち、本実施の形態に係る負荷分散方法を適用したWeb型クライアントサーバシステムには、割振部21と各Webサーバ13(#1〜#N)とが連携して動作することにより各Webサーバ13(#1〜#N)の負荷分散を図る負荷分散システムが組み込まれており、各Webサーバ13(#1〜#N)の優先順位が予め定められ、Webサーバ管理テーブルに、各Webサーバ13(#1〜#N)についての優先順位が書き込まれ、ルータ18に格納されている。更に、各Webサーバ13(#1〜#N)の稼働状態が所定周期毎に、各Webサーバ13(#1〜#N)からルータ18へと所定周期毎に通知され、通知された稼働状態である最後に稼働した年月日時刻が、Webサーバ管理テーブルの対応するWebサーバ13(#1〜#N)の欄に書き込まれる。
【0068】
このようなWeb型クライアントサーバシステムにおいて、複数のクライアント計算機10(#1〜#n)から公衆回線22を介してなされたリクエストは、割振部21のファイヤウォール20によって受信される(S1)。そして、ファイヤウォール20によって受信されたリクエストは、セキュリティが確保された上で、ルータ18へと転送される(S2)。
【0069】
このようにして、ファイヤウォール20からルータ18へとリクエストが転送されると、ルータ18によって、Webサーバ管理テーブルが参照され、稼働中であるWebサーバ13の中から、優先順位が最も高いWebサーバ13へと、受け付けたリクエストが割り振られる(S3)。
【0070】
リクエストが割り振られたWebサーバ13では、判定プログラムが起動することによって、自己が搭載されているWebサーバ13の負荷が判定される(S4)。そして、ステップS4で判定された負荷が、予め定めた許容負荷以内である場合(S5:Yes)には、自己が搭載されているWebサーバ13のアプリケーションプログラムおよびデータベースサーバ14に格納されたデータを用いてこのリクエストに対するタスクが実行され(S6)、実行結果がファイヤウォール20から公衆回線22を介して要求元のクライアント計算機10へと返信される(S7)。
【0071】
一方、予め定めた許容負荷よりも大きい場合(S5:No)には、ルータ18に問い合わせが行われ(S8)、稼働中であるWebサーバ13の中から、自己以外で優先順位が最も高いWebサーバ13へと、リクエストが転送される(S9)。
【0072】
そして、ステップS9においてリクエストが転送されたWebサーバ13でも、ステップS4に示すように判定プログラムが動作することによって、このリクエストに対するタスクを自己で行うか、他のWebサーバ13へと転送するかが判定される。
【0073】
このようにして、本実施の形態に係る負荷分散方法を適用したWeb型クライアントサーバシステムでは、各Webサーバ13(#1〜#N)の負荷が分散される。
【0074】
なお、上述したような判定プログラムは、計算機(コンピュータ)に実行させることができるソフトウエア手段として、例えば磁気ディスク(フロッピー(登録商法)ディスク、ハ一ドディスク等)、光ディスク(CD−ROM、DVD等)、半導体メモリ等の記録媒体に格納し、また通信媒体により伝送して頒布することもできる。なお、媒体側に格納される場合には、計算機に実行させるソフトウエア手段(判定プログラムのみならずWebサーバ管理テーブルやそのデータ構造も含む)を計算機内に構成させる設定プログラムをも含むものである。計算機は、記録媒体に記録された判定プログラムを読み込み、また場合により設定プログラムによりソフトウエア手段を構築し、このソフトウエア手段によって動作が制御されることにより上述した処理を実行する。
【0075】
上述したように、本実施の形態に係る負荷分散方法を適用したWeb型クライアントサーバシステムにおいては、上記のような作用により、判定プログラムによって、ルータ18と各Webサーバ13(#1〜#N)とを連携して動作させることによって、各クライアント計算機10(#1〜#n)からのリクエストを、各Webサーバ13(#1〜#N)へと割り振り、各Webサーバ13(#1〜#N)の負荷を分散することができる。このように、負荷バランサ16を用いなくても、リクエストを効率よく各Webサーバ13(#1〜#N)へと割り振ることができるので、各Webサーバ13(#1〜#N)の負荷の分散を図るのみならず、システム構成の簡素化と、コストの低減化とをも図ることが可能となる。
【0076】
また、各Webサーバ13(#1〜#N)は、一旦リクエストを割り振られても、CPU使用率、空きメモリ量、プロセス数、および処理件数等を考慮し、自己の負荷が既に大きい場合には、このリクエストを他のWebサーバ13へと転送することができる。その結果、特定のWebサーバ13に負荷が集中することなく、各Webサーバ13(#1〜#N)の負荷の平準化を図ることも可能となる。
【0077】
更に、ファイヤウォール20とルータ18とを備えた割振部21を複数備えることにより、万が一、常時用いている割振部21に障害が発生し、リクエストの割り振りをすることができなくなった場合であっても、他の割振部21を動作させることによって処理を継続することが可能となる。この割振部21は、パソコンによって実現することが可能である。パソコンは、市販されている負荷バランサ16よりも十分に低価格であるために、低コストで実現することが可能となる。
【0078】
(第2の実施の形態)
本発明の第2の実施の形態を図4を用いて説明する。
【0079】
図4は、本発明の第2の実施の形態に係る負荷分散方法を適用したWeb型クライアントサーバシステムの全体構成の一例を示す構成図であり、図1と同一部分には同一符号を付してその説明を省略し、ここでは異なる部分についてのみ述べる。
【0080】
すなわち、本実施の形態に係る負荷分散方法を適用したWeb型クライアントサーバシステムは、第1の実施の形態に係る負荷分散方法を適用したWeb型クライアントサーバシステムに、専用回線15に接続された2つの受付サーバ24(#1,#2)を備え、第1の実施の形態においてルータ18が行っていた各Webサーバ13(#1〜#N)の負荷分散に係る処理を、これら受付サーバ24(#1,#2)が行うようにした点のみが異なる。2つの受付サーバ24(#1,#2)のうち、受付サーバ24(#1)が通常動作しているマスタサーバであり、受付サーバ24(#2)は、受付サーバ24(#1)が障害等によって停止している場合にバックアップ動作をするスレーブサーバである。
【0081】
なお、受付サーバ24(#1,#2)は、専用のサーバを用いるようにしてもよいが、複数あるWebサーバ13(#1〜#N)のうちのいずれか2つに受付サーバ24の機能を持たせ、通常のWebサーバ13と兼用して用いるようにしても良い。
【0082】
メインサーバである受付サーバ24(#1)には、ファイヤウォール20によって受信されたクライアント計算機10(#1〜#n)からのリクエストが出力される。
【0083】
受付サーバ24(#1,#2)もまた、第1の実施の形態におけるルータ18のように、図2に示すような、Webサーバ管理テーブルを備えている。そして、各Webサーバ13(#1〜#N)について、常に最新の稼働状態を把握するために、例えば毎分のような所定周期毎に、各Webサーバ13(#1〜#N)から、最後に稼働した年月日時刻情報が通知され、通知された年月日時刻情報に基づいてWebサーバ管理テーブルの内容を更新するようにしている。
【0084】
このような受付サーバ24(#1)は、ファイヤウォール20からリクエストが転送されると、第1の実施の形態におけるルータ18と同様に、Webサーバ管理テーブルを参照し、稼働中であるWebサーバ13の中から、優先順位が最も高いWebサーバ13へと、受け付けたリクエストを割り振る。
【0085】
各Webサーバ13(#1〜#N)には、タスクを実行するためのアプリケーションプログラムが搭載されている。更に、受付サーバ24からリクエストが割り振られると、自己においてこのリクエストに対するタスクを実行することができるか否かを判定する判定プログラムもまた搭載している。
【0086】
そして、リクエストが割り振られた場合、自己が搭載されているWebサーバ13の負荷が、予め定めた許容負荷以内である場合には、自己が搭載されているWebサーバ13のアプリケーションプログラムおよびデータベースサーバ14に格納されたデータを用いてこのリクエストに対するタスクを実行させ、実行結果をファイヤウォール20から公衆回線22を介して要求元のクライアント計算機10へと返信する。
【0087】
一方、予め定めた許容負荷よりも大きい場合には、受付サーバ24に問い合わせを行い、稼働中であるWebサーバ13の中から、自己以外で優先順位が最も高いWebサーバ13へと、受け付けたリクエストを転送する。この場合、リクエストを転送されたWebサーバ13でもまた、判定プログラムが動作することによって、このリクエストに対するタスクを自己で行うか、他のWebサーバ13へと転送するかを判定する。
【0088】
このようにして、本実施の形態に係る負荷分散方法を適用したWeb型クライアントサーバシステムは、受付サーバ24によって、各Webサーバ13(#1〜#N)の負荷を分散するようにしている。上述したような判定処理は、通常はマスタサーバである受付サーバ24(#1)が行うが、何らかの事情により受付サーバ24(#1)に障害が生じ、機能不全となった場合には,スレーブサーバである受付サーバ24(#2)がバックアップし、処理を継続することから、高いセキュリティを実現することが可能となる。
【0089】
また、受付サーバ24は、パソコンと同様に、市販されている負荷バランサ16よりも十分に低価格であるために、低コストで実現することが可能となる。
【0090】
上述したように、本実施の形態に係る負荷分散方法を適用したWeb型クライアントサーバシステムにおいては、上記のような作用により、ルータ18に換えて、受付サーバ24を備えることによっても、第1の実施の形態と同様の作用効果を奏することができる。
【0091】
以上、本発明の好適な実施の形態について、添付図面を参照しながら説明したが、本発明はかかる構成に限定されない。特許請求の範囲に記載された技術的思想の範疇において、当業者であれば、各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の技術的範囲に属するものと了解される。
【0092】
【発明の効果】
以上説明したように、本発明によれば、複数のWebサーバによって構成されるWeb型クライアントサーバシステムにおいて、高価な負荷バランサを用いることなく各Webサーバへのリクエストの割り振りを行うことができる。
【0093】
その結果、システム構成の簡素化、およびコストの低減化を図りつつ、各Webサーバの負荷の分散を図ることが可能なWeb型クライアントサーバシステムにおける負荷分散方法、負荷分散システム、および負荷分散プログラムを実現することが可能となる。
【図面の簡単な説明】
【図1】第1の実施の形態に係る負荷分散方法を適用したWeb型クライアントサーバシステムの全体構成の一例を示す構成図
【図2】Webサーバ管理テーブルの一例を示すデータ構成図
【図3】第1の実施の形態に係る負荷分散方法を適用したWeb型クライアントサーバシステムの動作を示すフローチャート
【図4】第2の実施の形態に係る負荷分散方法を適用したWeb型クライアントサーバシステムの全体構成の一例を示す構成図
【図5】一般的なクライアントサーバシステムの構成概念を示す簡略図
【図6】一般的なWeb型クライアントサーバシステムの構成概念を示す簡略図
【図7】負荷バランサを設けたWeb型クライアントサーバシステムの構成概念を示す簡略図
【符号の説明】
10…クライアント計算機、11…インターネット、12…サーバ計算機、13…Webサーバ、14…データベースサーバ、15…専用回線、16…負荷バランサ、18…ルータ、20…ファイヤウォール、21…割振部、22…公衆回線、24…受付サーバ
Claims (13)
- 複数のWebサーバによって構成され、通信ネットワークを介して複数のクライアント計算機からリクエストを受け付け、このリクエストに対するタスクを実行し、実行結果を前記通信ネットワークを介して前記クライアント計算機へと返信するWeb型クライアントサーバシステムにおいて前記各Webサーバの負荷を分散する方法であって、
前記各Webサーバのそれぞれに対して、予め決定された優先順位が書き込まれた優先順位データテーブルを記憶し、前記各Webサーバの稼働状態が稼働中または停止中であるかを把握するとともに、前記通信ネットワークを介して複数のクライアント計算機からリクエストがあった場合には、このリクエストを受け付け、稼働状態が稼働中であるWebサーバの中から、前記優先順位データテーブルに書き込まれた優先順位が最も高いWebサーバへと、前記受け付けたリクエストを割り振るようにした負荷分散方法。 - 請求項1に記載の負荷分散方法において、
前記各Webサーバの稼働状態が稼働中または停止中であるかを所定周期毎に把握するようにした負荷分散方法。 - 請求項1または請求項2に記載の負荷分散方法において、
前記リクエストが割り振られたWebサーバは、自己の負荷が、予め定めた許容負荷よりも大きい場合には、前記稼働状態が稼働中である自己以外のWebサーバの中から、前記優先順位データテーブルに書き込まれた優先順位が最も高いWebサーバへと、前記割り振られたリクエストを転送するようにした負荷分散方法。 - 請求項3に記載の負荷分散方法において、
前記許容負荷とは、対応するWebサーバのCPU使用率、空きメモリ量、プロセス数、および処理件数のうちの少なくとも何れかに基づいて決定されるようにした負荷分散方法。 - 複数のWebサーバによって構成され、通信ネットワークを介して複数のクライアント計算機からリクエストを受け付け、このリクエストに対するタスクを実行し、実行結果を前記通信ネットワークを介して前記クライアント計算機へと返信するWeb型クライアントサーバシステムにおいて前記各Webサーバの負荷を分散するシステムであって、
前記各Webサーバのそれぞれに対して、予め決定された優先順位が書き込まれた優先順位データテーブルを記憶する記憶手段と、
前記各Webサーバの稼働状態が稼働中または停止中であるかを把握する稼働状態把握手段と、
前記通信ネットワークを介して複数のクライアント計算機からリクエストがあった場合には、このリクエストを受け付け、前記稼働状態把握手段によって把握された稼働状態が稼働中であるWebサーバの中から、前記記憶手段に記憶された前記優先順位データテーブルに書き込まれた優先順位が最も高いWebサーバへと、前記受け付けたリクエストを割り振る割振手段と
を備えた負荷分散システム。 - 請求項5に記載の負荷分散システムにおいて、
前記稼働状態把握手段は、前記各Webサーバの稼働状態が稼働中または停止中であるかを所定周期毎に把握するようにした負荷分散システム。 - 請求項5または請求項6に記載の負荷分散システムにおいて、
前記各Webサーバに、前記割振手段によってリクエストが割り振られた場合、自己の負荷が、予め定めた許容負荷よりも大きい場合には、前記稼働状態把握手段によって把握されている稼働状態が稼働中である自己以外のWebサーバの中から、前記記憶手段に記憶された優先順位データテーブルに書き込まれた優先順位が最も高いWebサーバへと、前記割り振られたリクエストを転送する転送手段を備えた負荷分散システム。 - 請求項7に記載の負荷分散システムにおいて、
前記許容負荷とは、対応するWebサーバのCPU使用率、空きメモリ量、プロセス数、および処理件数のうちの少なくとも何れかに基づいて決定されるようにした負荷分散システム。 - 請求項5乃至8のうち何れか1項に記載の負荷分散システムにおいて、
前記記憶手段、前記稼働状態把握手段、および前記割振手段をそれぞれ複数備えた負荷分散システム。 - 請求項5乃至9のうち何れか1項に記載の負荷分散システムにおいて、
前記記憶手段、前記稼働状態把握手段、および前記割振手段は、前記複数のWebサーバのうちの何れかに、または前記通信ネットワークを介して複数のクライアント計算機からリクエストを受け付けるルータに備えた負荷分散システム。 - 複数のWebサーバによって構成され、通信ネットワークを介して複数のクライアント計算機からリクエストを受け付け、このリクエストに対するタスクを実行し、実行結果を前記通信ネットワークを介して前記クライアント計算機へと返信するWeb型クライアントサーバシステムにおいて前記各Webサーバの負荷を分散するコンピュータ読み取り可能なプログラムであって、
前記各Webサーバの稼働状態が稼働中または停止中であるかを把握する稼働状態把握機能、
前記通信ネットワークを介して複数のクライアント計算機からリクエストがあった場合には、このリクエストを受け付け、前記稼働状態把握機能において把握された稼働状態が稼働中であるWebサーバの中から、前記各Webサーバのそれぞれに対して予め決定された優先順位が最も高いWebサーバへと、前記受け付けたリクエストを割り振る割振機能
をコンピュータに実現させるための負荷分散プログラム。 - 請求項11に記載の負荷分散プログラムにおいて、
前記稼働状態把握機能では、前記各Webサーバの稼働状態が稼働中または停止中であるかを所定周期毎に把握するようにした負荷分散プログラム。 - 請求項11または請求項12に記載の負荷分散プログラムにおいて、
前記割振機能によってリクエストが割り振られたWebサーバの負荷が、予め定めた許容負荷よりも大きい場合には、前記稼働状態把握機能において把握されている稼働状態が稼働中である当該Webサーバ以外のWebサーバの中から、前記優先順位が最も高いWebサーバへと、前記割り振られたリクエストを転送する転送機能を付加した負荷分散プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002361116A JP2004192449A (ja) | 2002-12-12 | 2002-12-12 | Web型クライアントサーバシステムにおける負荷分散方法、負荷分散システム、および負荷分散プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002361116A JP2004192449A (ja) | 2002-12-12 | 2002-12-12 | Web型クライアントサーバシステムにおける負荷分散方法、負荷分散システム、および負荷分散プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004192449A true JP2004192449A (ja) | 2004-07-08 |
Family
ID=32759981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002361116A Pending JP2004192449A (ja) | 2002-12-12 | 2002-12-12 | Web型クライアントサーバシステムにおける負荷分散方法、負荷分散システム、および負荷分散プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004192449A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009151744A (ja) * | 2007-11-26 | 2009-07-09 | Ricoh Co Ltd | 情報処理装置、情報処理方法およびプログラム |
JP2011248737A (ja) * | 2010-05-28 | 2011-12-08 | Fujitsu Ltd | タスク引継プログラム、処理装置及びコンピュータ・システム |
US8239862B2 (en) | 2007-11-26 | 2012-08-07 | Ricoh Company, Ltd. | Apparatus, method, and computer program product for processing information |
US8826291B2 (en) | 2012-03-08 | 2014-09-02 | Fuji Xerox Co., Ltd. | Processing system |
CN111193778A (zh) * | 2019-12-16 | 2020-05-22 | 武汉思为同飞网络技术股份有限公司 | 一种web服务负载均衡的方法、装置、设备及介质 |
-
2002
- 2002-12-12 JP JP2002361116A patent/JP2004192449A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009151744A (ja) * | 2007-11-26 | 2009-07-09 | Ricoh Co Ltd | 情報処理装置、情報処理方法およびプログラム |
JP4627789B2 (ja) * | 2007-11-26 | 2011-02-09 | 株式会社リコー | 情報処理装置、情報処理方法およびプログラム |
US8239862B2 (en) | 2007-11-26 | 2012-08-07 | Ricoh Company, Ltd. | Apparatus, method, and computer program product for processing information |
JP2011248737A (ja) * | 2010-05-28 | 2011-12-08 | Fujitsu Ltd | タスク引継プログラム、処理装置及びコンピュータ・システム |
US8826291B2 (en) | 2012-03-08 | 2014-09-02 | Fuji Xerox Co., Ltd. | Processing system |
CN111193778A (zh) * | 2019-12-16 | 2020-05-22 | 武汉思为同飞网络技术股份有限公司 | 一种web服务负载均衡的方法、装置、设备及介质 |
CN111193778B (zh) * | 2019-12-16 | 2022-08-09 | 武汉思为同飞网络技术股份有限公司 | 一种web服务负载均衡的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7287179B2 (en) | Autonomic failover of grid-based services | |
US7185096B2 (en) | System and method for cluster-sensitive sticky load balancing | |
CN111324416A (zh) | 容器管理系统中的应用部署 | |
US8005956B2 (en) | System for allocating resources in a distributed computing system | |
KR100840960B1 (ko) | 동적 호스트 서비스 관리를 제공하기 위한 방법 및 시스템 | |
US7181524B1 (en) | Method and apparatus for balancing a load among a plurality of servers in a computer system | |
US7720972B2 (en) | System for transferring standby resource entitlement | |
EP1599793B1 (en) | System and method for server load balancing and server affinity | |
US7721292B2 (en) | System for adjusting resource allocation to a logical partition based on rate of page swaps and utilization by changing a boot configuration file | |
US20040088414A1 (en) | Reallocation of computing resources | |
JP5841177B2 (ja) | マルチサーバ予約システムにおける同期化メカニズムのための方法及びシステム | |
US8046458B2 (en) | Method and system for balancing the load and computer resources among computers | |
Xu | Effective metacomputing using LSF multicluster | |
US20060070078A1 (en) | Systems and methods to allocate application tasks to a pool of processing machines | |
JP2007249445A (ja) | クラスタシステムの負荷分散制御方法およびその装置 | |
JP2008140120A (ja) | 計算資源管理プログラム、計算資源管理装置および分散処理システム | |
JP2003248611A (ja) | 記憶管理統合システム、および、その記憶管理制御方法 | |
JP2012090194A (ja) | ネットワークシステム | |
WO2013027649A1 (ja) | 仮想データセンタシステム | |
EP1955181B1 (en) | Method and system for registering a distributed service site | |
US20060059251A1 (en) | Method and system for request management processing | |
JP2004192449A (ja) | Web型クライアントサーバシステムにおける負荷分散方法、負荷分散システム、および負荷分散プログラム | |
Verma et al. | Hbi-lb: A dependable fault-tolerant load balancing approach for fog based internet-of-things environment | |
JPH10334058A (ja) | オンラインシステムと負荷分散方式 | |
JP2006235837A (ja) | 負荷分散システム、負荷分散装置管理サーバ、負荷分散装置の切り替え方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Effective date: 20051003 Free format text: JAPANESE INTERMEDIATE CODE: A621 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070420 |
|
A131 | Notification of reasons for refusal |
Effective date: 20070508 Free format text: JAPANESE INTERMEDIATE CODE: A131 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070706 |
|
A02 | Decision of refusal |
Effective date: 20071211 Free format text: JAPANESE INTERMEDIATE CODE: A02 |