(57)【要約】【課題】Ｗｅｂ型クライアントサーバシステムにおいて、負荷バランサを用いることなく、各Ｗｅｂサーバの負荷の分散を図ること。【解決手段】本発明の負荷分散方法によれば、公衆回線15を介して複数のクライアント計算機10からリクエストを受け付け、このリクエストに対するタスクを実行し、実行結果をクライアント計算機10へと返信するＷｅｂ型クライアントサーバシステムにおける各Ｗｅｂサーバ13の負荷を分散する方法である。具体的には、各Ｗｅｂサーバ13の各々に対し予め決定された優先順位データテーブルを記憶し、各Ｗｅｂサーバ13の稼働状態が稼働中又は停止中であるかを把握すると共に、クライアント計算機10からリクエストがあった場合には、稼働状態が稼働中であるＷｅｂサーバ13の中から、優先順位データテーブルに書き込まれた優先順位が最も高いＷｅｂサーバ13へと、このリクエストを割り振る。【選択図】    図１
2004192449.tif 000002
【特許請求の範囲】
【請求項１】
複数のＷｅｂサーバによって構成され、通信ネットワークを介して複数のクライアント計算機からリクエストを受け付け、このリクエストに対するタスクを実行し、実行結果を前記通信ネットワークを介して前記クライアント計算機へと返信するＷｅｂ型クライアントサーバシステムにおいて前記各Ｗｅｂサーバの負荷を分散する方法であって、
前記各Ｗｅｂサーバのそれぞれに対して、予め決定された優先順位が書き込まれた優先順位データテーブルを記憶し、前記各Ｗｅｂサーバの稼働状態が稼働中または停止中であるかを把握するとともに、前記通信ネットワークを介して複数のクライアント計算機からリクエストがあった場合には、このリクエストを受け付け、稼働状態が稼働中であるＷｅｂサーバの中から、前記優先順位データテーブルに書き込まれた優先順位が最も高いＷｅｂサーバへと、前記受け付けたリクエストを割り振るようにした負荷分散方法。
【請求項２】
請求項１に記載の負荷分散方法において、
前記各Ｗｅｂサーバの稼働状態が稼働中または停止中であるかを所定周期毎に把握するようにした負荷分散方法。
【請求項３】
請求項１または請求項２に記載の負荷分散方法において、
前記リクエストが割り振られたＷｅｂサーバは、自己の負荷が、予め定めた許容負荷よりも大きい場合には、前記稼働状態が稼働中である自己以外のＷｅｂサーバの中から、前記優先順位データテーブルに書き込まれた優先順位が最も高いＷｅｂサーバへと、前記割り振られたリクエストを転送するようにした負荷分散方法。
【請求項４】
請求項３に記載の負荷分散方法において、
前記許容負荷とは、対応するＷｅｂサーバのＣＰＵ使用率、空きメモリ量、プロセス数、および処理件数のうちの少なくとも何れかに基づいて決定されるようにした負荷分散方法。
【請求項５】
複数のＷｅｂサーバによって構成され、通信ネットワークを介して複数のクライアント計算機からリクエストを受け付け、このリクエストに対するタスクを実行し、実行結果を前記通信ネットワークを介して前記クライアント計算機へと返信するＷｅｂ型クライアントサーバシステムにおいて前記各Ｗｅｂサーバの負荷を分散するシステムであって、
前記各Ｗｅｂサーバのそれぞれに対して、予め決定された優先順位が書き込まれた優先順位データテーブルを記憶する記憶手段と、
前記各Ｗｅｂサーバの稼働状態が稼働中または停止中であるかを把握する稼働状態把握手段と、
前記通信ネットワークを介して複数のクライアント計算機からリクエストがあった場合には、このリクエストを受け付け、前記稼働状態把握手段によって把握された稼働状態が稼働中であるＷｅｂサーバの中から、前記記憶手段に記憶された前記優先順位データテーブルに書き込まれた優先順位が最も高いＷｅｂサーバへと、前記受け付けたリクエストを割り振る割振手段と
を備えた負荷分散システム。
【請求項６】
請求項５に記載の負荷分散システムにおいて、
前記稼働状態把握手段は、前記各Ｗｅｂサーバの稼働状態が稼働中または停止中であるかを所定周期毎に把握するようにした負荷分散システム。
【請求項７】
請求項５または請求項６に記載の負荷分散システムにおいて、
前記各Ｗｅｂサーバに、前記割振手段によってリクエストが割り振られた場合、自己の負荷が、予め定めた許容負荷よりも大きい場合には、前記稼働状態把握手段によって把握されている稼働状態が稼働中である自己以外のＷｅｂサーバの中から、前記記憶手段に記憶された優先順位データテーブルに書き込まれた優先順位が最も高いＷｅｂサーバへと、前記割り振られたリクエストを転送する転送手段を備えた負荷分散システム。
【請求項８】
請求項７に記載の負荷分散システムにおいて、
前記許容負荷とは、対応するＷｅｂサーバのＣＰＵ使用率、空きメモリ量、プロセス数、および処理件数のうちの少なくとも何れかに基づいて決定されるようにした負荷分散システム。
【請求項９】
請求項５乃至８のうち何れか１項に記載の負荷分散システムにおいて、
前記記憶手段、前記稼働状態把握手段、および前記割振手段をそれぞれ複数備えた負荷分散システム。
【請求項１０】
請求項５乃至９のうち何れか１項に記載の負荷分散システムにおいて、
前記記憶手段、前記稼働状態把握手段、および前記割振手段は、前記複数のＷｅｂサーバのうちの何れかに、または前記通信ネットワークを介して複数のクライアント計算機からリクエストを受け付けるルータに備えた負荷分散システム。
【請求項１１】
複数のＷｅｂサーバによって構成され、通信ネットワークを介して複数のクライアント計算機からリクエストを受け付け、このリクエストに対するタスクを実行し、実行結果を前記通信ネットワークを介して前記クライアント計算機へと返信するＷｅｂ型クライアントサーバシステムにおいて前記各Ｗｅｂサーバの負荷を分散するコンピュータ読み取り可能なプログラムであって、
前記各Ｗｅｂサーバの稼働状態が稼働中または停止中であるかを把握する稼働状態把握機能、
前記通信ネットワークを介して複数のクライアント計算機からリクエストがあった場合には、このリクエストを受け付け、前記稼働状態把握機能において把握された稼働状態が稼働中であるＷｅｂサーバの中から、前記各Ｗｅｂサーバのそれぞれに対して予め決定された優先順位が最も高いＷｅｂサーバへと、前記受け付けたリクエストを割り振る割振機能
をコンピュータに実現させるための負荷分散プログラム。
【請求項１２】
請求項１１に記載の負荷分散プログラムにおいて、
前記稼働状態把握機能では、前記各Ｗｅｂサーバの稼働状態が稼働中または停止中であるかを所定周期毎に把握するようにした負荷分散プログラム。
【請求項１３】
請求項１１または請求項１２に記載の負荷分散プログラムにおいて、
前記割振機能によってリクエストが割り振られたＷｅｂサーバの負荷が、予め定めた許容負荷よりも大きい場合には、前記稼働状態把握機能において把握されている稼働状態が稼働中である当該Ｗｅｂサーバ以外のＷｅｂサーバの中から、前記優先順位が最も高いＷｅｂサーバへと、前記割り振られたリクエストを転送する転送機能を付加した負荷分散プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のＷｅｂサーバによって構成されるＷｅｂ型クライアントサーバシステムにおいて各Ｗｅｂサーバの負荷を分散する方法、システム、およびプログラムに係り、更に詳しくは、高価な負荷バランサを用いることなく各Ｗｅｂサーバの負荷分散を図る負荷分散方法、負荷分散システム、および負荷分散プログラムに関するものである。
【０００２】
【従来の技術】
クライアントサーバシステムとは、その概略構成を図５に示すように、クライアント計算機１０（＃１〜＃ｎ）に搭載されたプログラムが、サーバ計算機１２に搭載されたプログラムと随時交信を行いながら、サーバ計算機１２に接続されたデータベースサーバ１４に格納されたデータベースを利用してタスクを実行するシステムである。
【０００３】
この種のシステムでは、クライアント計算機１０（＃１〜＃ｎ）に搭載されたプログラムに、システム全体の機能の大部分を担当させることで、負荷分散が図られ、サーバ計算機１２に過大な負荷がかかりにくい設計ができるというメリットがある。
【０００４】
しかしながら、サーバ計算機１２とクライアント計算機１０（＃１〜＃ｎ）とが中規模以上のＬＡＮ（Local Area Network）、または企業体の基幹ネットワークやインターネット等によって構築されているＷＡＮ（Wide Area Network）上に配置された中規模システムや、クライアント計算機１０（＃１〜＃ｎ）がある数以上ある大規模システムにおいては、プログラムを各クライアント計算機１０（＃１〜＃ｎ）に搭載し、更にそれを維持するためのコストが膨大となり、プログラムの更新や置換を行う場合にも大がかりとなってしまう。更には、クライアント計算機１０（＃１〜＃ｎ）の環境が多種類ある場合、複数種類のクライアント計算機１０用のプログラムを用意する必要もある。
【０００５】
近年、コンピュータならびにネットワークの高速化と、異なるプログラム、および異なる計算機の機種間におけるデータ形式の標準化が進行したことにより、上述したような従来のクライアントサーバシステムに代わるものとして、Ｗｅｂ型クライアントサーバシステムが広く用いられるようになってきている。
【０００６】
この種のＷｅｂ型クライアントサーバシステムは、図６に示すように、クライアント計算機１０（＃１〜＃ｎ）には一般的なＷｅｂブラウザを搭載するだけでよく、プログラムを搭載しなくて良い。それに代わりプログラムの主体はＷｅｂサーバ１３に搭載されている。そして、クライアント計算機１０（＃１〜＃ｎ）に搭載されたＷｅｂブラウザが、Ｗｅｂサーバ１３に搭載されたプログラムと随時交信を行い、Ｗｅｂサーバ１３に搭載されたプログラムが、データベースサーバ１４に格納されたデータベースを利用してタスクを実行し、実行結果が要求元のクライアント計算機１０に返信される。
【０００７】
すなわち、Ｗｅｂサーバ１３においてプログラムが動作することによってタスク（スレッド）が実行される。このため、Ｗｅｂサーバ１３にシステム全体の負荷がかかってしまう。それを回避するために、通常はＷｅｂサーバ１３を複数台設け、負荷の分散を図れるような構成とする場合が多い。
【０００８】
図７は、このようなＷｅｂサーバ１３を複数台（Ｎ台）設けたＷｅｂ型クライアントサーバシステムの概念を示す簡略図である。この図では、ファイヤウォール等ネットワークのセキュリティや、ルータ等の必要なコンポーネントを省略している。
【０００９】
すなわち、Ｗｅｂサーバ１３（＃１〜＃Ｎ）を複数台設けたＷｅｂ型クライアントサーバシステムでは、クライアント計算機１０側との通信を行う通信ネットワーク（ここでは、一例としてインターネット１１とする。）に、負荷バランサ１６が設けられている。
【００１０】
この負荷バランサ１６は、インターネット１１を介してなされるクライアント計算機１０（＃１〜＃ｎ）側からの大量のリクエストを、各Ｗｅｂサーバ１３（＃１〜＃Ｎ）の負荷をバランスさせるように割り振る。どのリクエストをどのＷｅｂサーバ１３へと割り振るのかは、各Ｗｅｂサーバ１３（＃１〜＃Ｎ）に対するアクセスユーザ数、データの転送量、およびその他各Ｗｅｂサーバ１３（＃１〜＃Ｎ）の状態などから決定される各Ｗｅｂサーバ１３（＃１〜＃Ｎ）の負荷に基づいて決定されている。
【００１１】
このように、複数のＷｅｂサーバ１３（＃１〜＃Ｎ）を設けたＷｅｂ型クライアントサーバシステムにおいて、各Ｗｅｂサーバ１３（＃１〜＃Ｎ）の負荷を把握するための発明は、例えば特許文献１に記載されている。
【００１２】
【特許文献１】
特開２００１−３３１３９８号公報
【００１３】
【発明が解決しようとする課題】
しかしながら、このような従来のＷｅｂ型クライアントサーバシステムでは、以下のような問題がある。
【００１４】
すなわち、上述したような負荷バランサ１６は、非常に高価な装置である。したがって、毎秒数十〜数百アクセスというレベルの高速性を求められる商用サイト用のＷｅｂ型クライアントサーバシステムに適用されるのならともかく、例えば企業や官公庁のＷＡＮに設置される業務支援用システムのような中小規模のシステムにこのような高価な負荷バランサ１６を導入することは費用対高価の面からも現実的ではないという問題がある。
【００１５】
また、負荷バランサ１６を導入することによって、全体のシステム構成も複雑かつ大がかりになってしまうという問題がある。
【００１６】
更に、負荷バランサ１６自体が障害などで停止した場合には、クライアント計算機１０（＃１〜＃ｎ）側からのリクエストを、どのＷｅｂサーバ１３（＃１〜＃Ｎ）へも割り振ることができなくなり、システム全体が機能停止状態に陥ってしまうという問題もある。これは、負荷バランサ１６を複数設置することによって回避されるものの、全体として冗長なシステムとなるのに加え、上述したように負荷バランサ１６は非常に高価であるために、システム費用が跳ね上がることはいうまでもない。
【００１７】
本発明はこのような事情に鑑みてなされたものであり、複数のＷｅｂサーバによって構成されるＷｅｂ型クライアントサーバシステムにおいて、負荷バランサを用いることなく各Ｗｅｂサーバへのリクエストの割り振りを行い、もって、システム構成の簡素化、およびコストの低減化を図りつつ、各Ｗｅｂサーバの負荷の分散を図ることが可能なＷｅｂ型クライアントサーバシステムにおける負荷分散方法、負荷分散システム、および負荷分散プログラムを提供することを目的とする。
【００１８】
【課題を解決するための手段】
上記の目的を達成するために、本発明では、以下のような手段を講じる。
【００１９】
すなわち、請求項１の発明は、複数のＷｅｂサーバによって構成され、通信ネットワークを介して複数のクライアント計算機からリクエストを受け付け、このリクエストに対するタスクを実行し、実行結果を通信ネットワークを介してクライアント計算機へと返信するＷｅｂ型クライアントサーバシステムにおいて各Ｗｅｂサーバの負荷を分散する方法に適用されるものである。
【００２０】
具体的には、各Ｗｅｂサーバのそれぞれに対して、予め決定された優先順位が書き込まれた優先順位データテーブルを記憶し、各Ｗｅｂサーバの稼働状態が稼働中または停止中であるかを把握するとともに、通信ネットワークを介して複数のクライアント計算機からリクエストがあった場合には、このリクエストを受け付け、稼働状態が稼働中であるＷｅｂサーバの中から、優先順位データテーブルに書き込まれた優先順位が最も高いＷｅｂサーバへと、受け付けたリクエストを割り振るようにしている。
【００２１】
従って、請求項１の発明のＷｅｂ型クライアントサーバシステムにおける負荷分散方法においては、以上のような手段を講じることにより、負荷バランサを用いなくても、各Ｗｅｂサーバへとリクエストを割り振ることができる。その結果、システム構成の簡素化と、コストの低減化を図りつつ、負荷を分散することが可能となる。
【００２２】
請求項２の発明は、請求項１の発明の負荷分散方法において、各Ｗｅｂサーバの稼働状態が稼働中または停止中であるかを所定周期毎に把握するようにしている。
【００２３】
従って、請求項２の発明のＷｅｂ型クライアントサーバシステムにおける負荷分散方法においては、以上のような手段を講じることにより、常にＷｅｂサーバの稼働状態を把握することができる。その結果、稼働中のＷｅｂサーバにのみリクエストを割り振ることが可能となる。
【００２４】
請求項３の発明は、請求項１または請求項２の発明の負荷分散方法において、割振手段によってリクエストが割り振られたＷｅｂサーバは、自己の負荷が、予め定めた許容負荷よりも大きい場合には、稼働状態が稼働中である自己以外のＷｅｂサーバの中から、優先順位データテーブルに書き込まれた優先順位が最も高いＷｅｂサーバへと、割り振られたリクエストを転送するようにしている。
【００２５】
従って、請求項３の発明のＷｅｂ型クライアントサーバシステムにおける負荷分散方法においては、以上のような手段を講じることにより、Ｗｅｂサーバは一旦リクエストを割り振られても、自己の負荷が既に大きい場合には、このリクエストを他のＷｅｂサーバに転送することができる。その結果、特定のＷｅｂサーバに負荷が集中することなく、各Ｗｅｂサーバの負荷の平準化を図ることが可能となる。
【００２６】
請求項４の発明は、請求項３の発明の負荷分散方法において、許容負荷とは、対応するＷｅｂサーバのＣＰＵ使用率、空きメモリ量、プロセス数、および処理件数のうちの少なくとも何れかに基づいて決定されるようにしている。
【００２７】
従って、請求項４の発明のＷｅｂ型クライアントサーバシステムにおける負荷分散方法においては、以上のような手段を講じることにより、一旦リクエストを割り振られたＷｅｂサーバであっても、ＣＰＵ使用率、空きメモリ量、プロセス数、および処理件数等を考慮し、自己の負荷が既に大きい場合には、このリクエストを他のＷｅｂサーバに転送することができる。その結果、特定のＷｅｂサーバに負荷が集中することなく、各Ｗｅｂサーバの負荷の平準化を図ることが可能となる。
【００２８】
請求項５の発明は、複数のＷｅｂサーバによって構成され、通信ネットワークを介して複数のクライアント計算機からリクエストを受け付け、このリクエストに対するタスクを実行し、実行結果を通信ネットワークを介してクライアント計算機へと返信するＷｅｂ型クライアントサーバシステムにおいて各Ｗｅｂサーバの負荷を分散するシステムであり、記憶手段と、稼働状態把握手段と、割振手段とを備えている。
【００２９】
記憶手段は、各Ｗｅｂサーバのそれぞれに対して、予め決定された優先順位が書き込まれた優先順位データテーブルを記憶する。稼働状態把握手段は、各Ｗｅｂサーバの稼働状態が稼働中または停止中であるかを把握する。割振手段は、通信ネットワークを介して複数のクライアント計算機からリクエストがあった場合には、このリクエストを受け付け、稼働状態把握手段によって把握された稼働状態が稼働中であるＷｅｂサーバの中から、記憶手段に記憶された優先順位データテーブルに書き込まれた優先順位が最も高いＷｅｂサーバへと、受け付けたリクエストを割り振る。
【００３０】
従って、請求項５の発明のＷｅｂ型クライアントサーバシステムにおける負荷分散システムにおいては、以上のような手段を講じることにより、負荷バランサを用いなくても、各Ｗｅｂサーバへとリクエストを割り振ることができる。その結果、システム構成の簡素化と、コストの低減化を図りつつ、負荷を分散することが可能となる。
【００３１】
請求項６の発明は、請求項５の発明の負荷分散システムにおいて、稼働状態把握手段は、各Ｗｅｂサーバの稼働状態が稼働中または停止中であるかを所定周期毎に把握するようにしている。
【００３２】
従って、請求項６の発明のＷｅｂ型クライアントサーバシステムにおける負荷分散システムにおいては、以上のような手段を講じることにより、常にＷｅｂサーバの稼働状態を把握することができる。その結果、稼働中のＷｅｂサーバにのみリクエストを割り振ることが可能となる。
【００３３】
請求項７の発明は、請求項５または請求項６の発明の負荷分散システムにおいて、各Ｗｅｂサーバに、割振手段によってリクエストが割り振られた場合、自己の負荷が、予め定めた許容負荷よりも大きい場合には、稼働状態把握手段によって把握されている稼働状態が稼働中である自己以外のＷｅｂサーバの中から、記憶手段に記憶された優先順位データテーブルに書き込まれた優先順位が最も高いＷｅｂサーバへと、割り振られたリクエストを転送する転送手段を備えている。
【００３４】
従って、請求項７の発明のＷｅｂ型クライアントサーバシステムにおける負荷分散システムにおいては、以上のような手段を講じることにより、Ｗｅｂサーバは一旦リクエストを割り振られても、自己の負荷が既に大きい場合には、このリクエストを他のＷｅｂサーバに転送することができる。その結果、特定のＷｅｂサーバに負荷が集中することなく、各Ｗｅｂサーバの負荷の平準化を図ることが可能となる。
【００３５】
請求項８の発明は、請求項７の発明の負荷分散システムにおいて、許容負荷とは、対応するＷｅｂサーバのＣＰＵ使用率、空きメモリ量、プロセス数、および処理件数のうちの少なくとも何れかに基づいて決定されるようにしている。
【００３６】
従って、請求項８の発明のＷｅｂ型クライアントサーバシステムにおける負荷分散システムにおいては、以上のような手段を講じることにより、一旦リクエストを割り振られたＷｅｂサーバであっても、ＣＰＵ使用率、空きメモリ量、プロセス数、および処理件数等を考慮し、自己の負荷が既に大きい場合には、このリクエストを他のＷｅｂサーバに転送することができる。その結果、特定のＷｅｂサーバに負荷が集中することなく、各Ｗｅｂサーバの負荷の平準化を図ることが可能となる。
【００３７】
請求項９の発明は、請求項５乃至８のうち何れか１項の発明の負荷分散システムにおいて、記憶手段、稼働状態把握手段、および割振手段をそれぞれ複数備えている。
【００３８】
従って、請求項９の発明のＷｅｂ型クライアントサーバシステムにおける負荷分散システムにおいては、以上のような手段を講じることにより、冗長性を図ることができる。その結果、万が一、記憶手段、稼働状態把握手段、および割振手段の何れかまたは全てに障害が発生し、リクエストの割り振りをすることができなくなった場合であっても、バックアップ動作することが可能となる。
【００３９】
請求項１０の発明は、請求項５乃至９のうち何れか１項の発明の負荷分散システムにおいて、記憶手段、稼働状態把握手段、および割振手段は、複数のＷｅｂサーバのうちの何れかに、または通信ネットワークを介して複数のクライアント計算機からリクエストを受け付けるルータに備えている。
【００４０】
従って、請求項１０の発明のＷｅｂ型クライアントサーバシステムにおける負荷分散システムにおいては、以上のような手段を講じることにより、リクエストを割り振る各手段としてＷｅｂサーバまたはルータを用いることができる。Ｗｅｂサーバおよびルータはいずれも負荷バランサよりも十分に低価格であり、かついずれもＷｅｂ型クライアントサーバシステムには通常備えられているハードウェアである。その結果、追加コストを発生することなくリクエストを割り振りすることが可能となる。
【００４１】
請求項１１の発明は、複数のＷｅｂサーバによって構成され、通信ネットワークを介して複数のクライアント計算機からリクエストを受け付け、このリクエストに対するタスクを実行し、実行結果を通信ネットワークを介してクライアント計算機へと返信するＷｅｂ型クライアントサーバシステムにおいて各Ｗｅｂサーバの負荷を分散するコンピュータ読み取り可能なプログラムであって、稼働状態把握機能、割振機能をコンピュータに実現させる。
【００４２】
稼働状態把握機能では、各Ｗｅｂサーバの稼働状態が稼働中または停止中であるかを把握し、割振機能では、通信ネットワークを介して複数のクライアント計算機からリクエストがあった場合には、このリクエストを受け付け、稼働状態把握機能において把握された稼働状態が稼働中であるＷｅｂサーバの中から、各Ｗｅｂサーバのそれぞれに対して予め決定された優先順位が最も高いＷｅｂサーバへと、受け付けたリクエストを割り振る。
【００４３】
従って、請求項１１の発明のＷｅｂ型クライアントサーバシステムにおける負荷分散プログラムにおいては、以上のような手段を講じることにより、負荷バランサを用いなくても、各Ｗｅｂサーバへとリクエストを割り振ることができる。
【００４４】
請求項１２の発明は、請求項１１の発明の負荷分散プログラムにおいて、稼働状態把握機能では、各Ｗｅｂサーバの稼働状態が稼働中または停止中であるかを所定周期毎に把握するようにしている。
【００４５】
従って、請求項１２の発明のＷｅｂ型クライアントサーバシステムにおける負荷分散プログラムにおいては、以上のような手段を講じることにより、常にＷｅｂサーバの稼働状態を把握することができる。その結果、稼働中のＷｅｂサーバにのみリクエストを割り振ることが可能となる。
【００４６】
請求項１３の発明は、請求項１１または請求項１２の発明の負荷分散プログラムにおいて、割振機能によってリクエストが割り振られたＷｅｂサーバの負荷が、予め定めた許容負荷よりも大きい場合には、稼働状態把握機能において把握されている稼働状態が稼働中である当該Ｗｅｂサーバ以外のＷｅｂサーバの中から、優先順位が最も高いＷｅｂサーバへと、割り振られたリクエストを転送する転送機能を付加している。
【００４７】
従って、請求項１３の発明のＷｅｂ型クライアントサーバシステムにおける負荷分散プログラムにおいては、以上のような手段を講じることにより、Ｗｅｂサーバに一旦リクエストが割り振られても、このＷｅｂサーバの負荷が既に大きい場合には、このリクエストを他のＷｅｂサーバに転送させることができる。その結果、特定のＷｅｂサーバに負荷が集中することなく、各Ｗｅｂサーバの負荷の平準化を図ることが可能となる。
【００４８】
【発明の実施の形態】
以下に、本発明の各実施の形態について図面を参照しながら説明する。
【００４９】
なお、以下の各実施の形態の説明に用いる図中の符号は、図５から図７と同一部分については同一符号を付して示すことにする。
【００５０】
（第１の実施の形態）
本発明の第１の実施の形態を図１から図３を用いて説明する。
【００５１】
図１は、本発明の第１の実施の形態に係る負荷分散方法を適用したＷｅｂ型クライアントサーバシステムの全体構成の一例を示す構成図である。
【００５２】
すなわち、本実施の形態に係る負荷分散方法を適用したＷｅｂ型クライアントサーバシステムは、例えばＬＡＮやＷＡＮからなる専用回線１５を介して互いに接続された複数のＷｅｂサーバ１３（＃１〜＃Ｎ）と、データベースサーバ１４と、ルータ１８およびファイヤウォール２０を備えた割振部２１とを備えており、これらが連携して動作することによって負荷分散を図る負荷分散システムを組み込んでいる。
【００５３】
割振部２１は、例えばパソコンのように安価で簡易なハードウェアで実現でき、複数のクライアント計算機１０（＃１〜＃ｎ）が接続している公衆回線２２（例えばインターネット）に接続している。必要に応じて複数設けることによって、システムの冗長化を図るようにしてもよい。冗長化した場合であっても、元々安価であるので、コスト的なインパクトは小さい。
【００５４】
そして、ファイヤウォール２０によって、公衆回線２２を介しての専用回線１５側への直接アクセスを防ぎ、Ｗｅｂサーバ１３（＃１〜＃Ｎ）に搭載されたプログラムや、データベースサーバ１４に格納されたデータベースのセキュリティを保っている。すなわち、割振部２１は、ファイヤウォール２０において、公衆回線２２を介してなされる複数のクライアント計算機１０（＃１〜＃ｎ）からのリクエストを受け付けることによってセキュリティを確保した上で、この受け付けたリクエストをルータ１８に転送する。
【００５５】
ルータ１８は、図２に示すような、Ｗｅｂサーバ管理テーブルを備えている。Ｗｅｂサーバ管理テーブルは、各Ｗｅｂサーバ１３（＃１〜＃Ｎ）についての優先順位と、稼働情報とを書き込んだテーブルである。
【００５６】
この優先順位とは、ファイヤウォール２０から転送されたリクエストを優先的に割り振るＷｅｂサーバ１３を定義した情報である。
【００５７】
また、稼働情報とは、各Ｗｅｂサーバ１３（＃１〜＃Ｎ）の稼働状態が稼働中または停止中かを把握するための情報であって、各Ｗｅｂサーバ１３（＃１〜＃Ｎ）が最後に稼働した年月日時刻を書き込んでいる。ルータ１８は、各Ｗｅｂサーバ１３（＃１〜＃Ｎ）について、常に最新の稼働状態を把握するために、例えば毎分のような所定周期毎に、各Ｗｅｂサーバ１３（＃１〜＃Ｎ）から、最後に稼働した年月日時刻情報が通知され、通知された年月日時刻情報に基づいてＷｅｂサーバ管理テーブルの内容を更新するようにしている。
【００５８】
このようにＷｅｂサーバ管理テーブルを備えたルータ１８は、ファイヤウォール２０からリクエストが転送されると、Ｗｅｂサーバ管理テーブルを参照し、稼働中であるＷｅｂサーバ１３の中から、優先順位が最も高いＷｅｂサーバ１３へと、受け付けたリクエストを割り振る。
【００５９】
ここで、稼働状態が稼働中であるかまたは停止中であるかは、例えば、最後に稼働した年月日時刻が現時刻よりも所定時間以上前（例えば、１分間）である場合には、所定時間（例えば、１分間）稼働していないことから、このＷｅｂサーバ１３は停止中であると判定する。
【００６０】
たとえば、図２に示すＷｅｂサーバ管理テーブルの場合、Ｗｅｂサーバ１３（＃１）が、優先順位が１番であるが、このＷｅｂサーバ１３（＃１）は２分間も稼働していない場合には、停止中であると判定し、稼働中であるＷｅｂサーバ（＃２〜＃Ｎ）の中で、最も優先順位の高いＷｅｂサーバ１３（＃２）にリクエストを割り振る。
【００６１】
各Ｗｅｂサーバ１３（＃１〜＃Ｎ）には、タスクを実行するためのアプリケーションプログラムが搭載されている。更に、ルータ１８からリクエストが割り振られると、自己においてこのリクエストに対するタスクを実行することができるか否かを判定する判定プログラムもまた搭載している。
【００６２】
この判定プログラムは、例えば磁気ディスク等の記録媒体に記録された、あるいはインターネット等を介してダウンロードされることによって読み込まれ、読み込まれたＷｅｂサーバ１３（＃１〜＃Ｎ）によって実現されるものであって、リクエストが割り振られた場合、自己が搭載されているＷｅｂサーバ１３の負荷が、予め定めた許容負荷以内である場合には、自己が搭載されているＷｅｂサーバ１３のアプリケーションプログラムおよびデータベースサーバ１４に格納されたデータを用いてこのリクエストに対するタスクを実行させ、実行結果をファイヤウォール２０から公衆回線２２を介して要求元のクライアント計算機１０へと返信する。
【００６３】
この判定プログラムは、一方、予め定めた許容負荷よりも大きい場合には、ルータ１８に問い合わせを行い、Ｗｅｂサーバ管理テーブルを参照することによって、稼働中であるＷｅｂサーバ１３の中から、自己以外で優先順位が最も高いＷｅｂサーバ１３へと、受け付けたリクエストを転送する。この場合、リクエストを転送されたＷｅｂサーバ１３でもまた、判定プログラムが動作することによって、このリクエストに対するタスクを自己で行うか、他のＷｅｂサーバ１３へと転送するかを判定する。
【００６４】
なお、許容負荷としては、例えば、対応するＷｅｂサーバ１３のＣＰＵ使用率、空きメモリ量、プロセス数、および処理件数といったパラメータについてそれぞれ設けた上限値のことである。そして、いずれかのパラメータが上限値を超えた場合には、このＷｅｂサーバ１３の負荷が既に大きいために、このリクエストを他のＷｅｂサーバ１３に転送するようにする。
【００６５】
このようにして、本実施の形態に係る負荷分散方法を適用したＷｅｂ型クライアントサーバシステムは、各Ｗｅｂサーバ１３（＃１〜＃Ｎ）の負荷を分散するようにしている。
【００６６】
次に、以上のように構成した本実施の形態に係る負荷分散方法を適用したＷｅｂ型クライアントサーバシステムの動作について、図３に示すフローチャートを用いて説明する。
【００６７】
すなわち、本実施の形態に係る負荷分散方法を適用したＷｅｂ型クライアントサーバシステムには、割振部２１と各Ｗｅｂサーバ１３（＃１〜＃Ｎ）とが連携して動作することにより各Ｗｅｂサーバ１３（＃１〜＃Ｎ）の負荷分散を図る負荷分散システムが組み込まれており、各Ｗｅｂサーバ１３（＃１〜＃Ｎ）の優先順位が予め定められ、Ｗｅｂサーバ管理テーブルに、各Ｗｅｂサーバ１３（＃１〜＃Ｎ）についての優先順位が書き込まれ、ルータ１８に格納されている。更に、各Ｗｅｂサーバ１３（＃１〜＃Ｎ）の稼働状態が所定周期毎に、各Ｗｅｂサーバ１３（＃１〜＃Ｎ）からルータ１８へと所定周期毎に通知され、通知された稼働状態である最後に稼働した年月日時刻が、Ｗｅｂサーバ管理テーブルの対応するＷｅｂサーバ１３（＃１〜＃Ｎ）の欄に書き込まれる。
【００６８】
このようなＷｅｂ型クライアントサーバシステムにおいて、複数のクライアント計算機１０（＃１〜＃ｎ）から公衆回線２２を介してなされたリクエストは、割振部２１のファイヤウォール２０によって受信される（Ｓ１）。そして、ファイヤウォール２０によって受信されたリクエストは、セキュリティが確保された上で、ルータ１８へと転送される（Ｓ２）。
【００６９】
このようにして、ファイヤウォール２０からルータ１８へとリクエストが転送されると、ルータ１８によって、Ｗｅｂサーバ管理テーブルが参照され、稼働中であるＷｅｂサーバ１３の中から、優先順位が最も高いＷｅｂサーバ１３へと、受け付けたリクエストが割り振られる（Ｓ３）。
【００７０】
リクエストが割り振られたＷｅｂサーバ１３では、判定プログラムが起動することによって、自己が搭載されているＷｅｂサーバ１３の負荷が判定される（Ｓ４）。そして、ステップＳ４で判定された負荷が、予め定めた許容負荷以内である場合（Ｓ５：Ｙｅｓ）には、自己が搭載されているＷｅｂサーバ１３のアプリケーションプログラムおよびデータベースサーバ１４に格納されたデータを用いてこのリクエストに対するタスクが実行され（Ｓ６）、実行結果がファイヤウォール２０から公衆回線２２を介して要求元のクライアント計算機１０へと返信される（Ｓ７）。
【００７１】
一方、予め定めた許容負荷よりも大きい場合（Ｓ５：Ｎｏ）には、ルータ１８に問い合わせが行われ（Ｓ８）、稼働中であるＷｅｂサーバ１３の中から、自己以外で優先順位が最も高いＷｅｂサーバ１３へと、リクエストが転送される（Ｓ９）。
【００７２】
そして、ステップＳ９においてリクエストが転送されたＷｅｂサーバ１３でも、ステップＳ４に示すように判定プログラムが動作することによって、このリクエストに対するタスクを自己で行うか、他のＷｅｂサーバ１３へと転送するかが判定される。
【００７３】
このようにして、本実施の形態に係る負荷分散方法を適用したＷｅｂ型クライアントサーバシステムでは、各Ｗｅｂサーバ１３（＃１〜＃Ｎ）の負荷が分散される。
【００７４】
なお、上述したような判定プログラムは、計算機（コンピュータ）に実行させることができるソフトウエア手段として、例えば磁気ディスク（フロッピー（登録商法）ディスク、ハ一ドディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリ等の記録媒体に格納し、また通信媒体により伝送して頒布することもできる。なお、媒体側に格納される場合には、計算機に実行させるソフトウエア手段（判定プログラムのみならずＷｅｂサーバ管理テーブルやそのデータ構造も含む）を計算機内に構成させる設定プログラムをも含むものである。計算機は、記録媒体に記録された判定プログラムを読み込み、また場合により設定プログラムによりソフトウエア手段を構築し、このソフトウエア手段によって動作が制御されることにより上述した処理を実行する。
【００７５】
上述したように、本実施の形態に係る負荷分散方法を適用したＷｅｂ型クライアントサーバシステムにおいては、上記のような作用により、判定プログラムによって、ルータ１８と各Ｗｅｂサーバ１３（＃１〜＃Ｎ）とを連携して動作させることによって、各クライアント計算機１０（＃１〜＃ｎ）からのリクエストを、各Ｗｅｂサーバ１３（＃１〜＃Ｎ）へと割り振り、各Ｗｅｂサーバ１３（＃１〜＃Ｎ）の負荷を分散することができる。このように、負荷バランサ１６を用いなくても、リクエストを効率よく各Ｗｅｂサーバ１３（＃１〜＃Ｎ）へと割り振ることができるので、各Ｗｅｂサーバ１３（＃１〜＃Ｎ）の負荷の分散を図るのみならず、システム構成の簡素化と、コストの低減化とをも図ることが可能となる。
【００７６】
また、各Ｗｅｂサーバ１３（＃１〜＃Ｎ）は、一旦リクエストを割り振られても、ＣＰＵ使用率、空きメモリ量、プロセス数、および処理件数等を考慮し、自己の負荷が既に大きい場合には、このリクエストを他のＷｅｂサーバ１３へと転送することができる。その結果、特定のＷｅｂサーバ１３に負荷が集中することなく、各Ｗｅｂサーバ１３（＃１〜＃Ｎ）の負荷の平準化を図ることも可能となる。
【００７７】
更に、ファイヤウォール２０とルータ１８とを備えた割振部２１を複数備えることにより、万が一、常時用いている割振部２１に障害が発生し、リクエストの割り振りをすることができなくなった場合であっても、他の割振部２１を動作させることによって処理を継続することが可能となる。この割振部２１は、パソコンによって実現することが可能である。パソコンは、市販されている負荷バランサ１６よりも十分に低価格であるために、低コストで実現することが可能となる。
【００７８】
（第２の実施の形態）
本発明の第２の実施の形態を図４を用いて説明する。
【００７９】
図４は、本発明の第２の実施の形態に係る負荷分散方法を適用したＷｅｂ型クライアントサーバシステムの全体構成の一例を示す構成図であり、図１と同一部分には同一符号を付してその説明を省略し、ここでは異なる部分についてのみ述べる。
【００８０】
すなわち、本実施の形態に係る負荷分散方法を適用したＷｅｂ型クライアントサーバシステムは、第１の実施の形態に係る負荷分散方法を適用したＷｅｂ型クライアントサーバシステムに、専用回線１５に接続された２つの受付サーバ２４（＃１，＃２）を備え、第１の実施の形態においてルータ１８が行っていた各Ｗｅｂサーバ１３（＃１〜＃Ｎ）の負荷分散に係る処理を、これら受付サーバ２４（＃１，＃２）が行うようにした点のみが異なる。２つの受付サーバ２４（＃１，＃２）のうち、受付サーバ２４（＃１）が通常動作しているマスタサーバであり、受付サーバ２４（＃２）は、受付サーバ２４（＃１）が障害等によって停止している場合にバックアップ動作をするスレーブサーバである。
【００８１】
なお、受付サーバ２４（＃１，＃２）は、専用のサーバを用いるようにしてもよいが、複数あるＷｅｂサーバ１３（＃１〜＃Ｎ）のうちのいずれか２つに受付サーバ２４の機能を持たせ、通常のＷｅｂサーバ１３と兼用して用いるようにしても良い。
【００８２】
メインサーバである受付サーバ２４（＃１）には、ファイヤウォール２０によって受信されたクライアント計算機１０（＃１〜＃ｎ）からのリクエストが出力される。
【００８３】
受付サーバ２４（＃１，＃２）もまた、第１の実施の形態におけるルータ１８のように、図２に示すような、Ｗｅｂサーバ管理テーブルを備えている。そして、各Ｗｅｂサーバ１３（＃１〜＃Ｎ）について、常に最新の稼働状態を把握するために、例えば毎分のような所定周期毎に、各Ｗｅｂサーバ１３（＃１〜＃Ｎ）から、最後に稼働した年月日時刻情報が通知され、通知された年月日時刻情報に基づいてＷｅｂサーバ管理テーブルの内容を更新するようにしている。
【００８４】
このような受付サーバ２４（＃１）は、ファイヤウォール２０からリクエストが転送されると、第１の実施の形態におけるルータ１８と同様に、Ｗｅｂサーバ管理テーブルを参照し、稼働中であるＷｅｂサーバ１３の中から、優先順位が最も高いＷｅｂサーバ１３へと、受け付けたリクエストを割り振る。
【００８５】
各Ｗｅｂサーバ１３（＃１〜＃Ｎ）には、タスクを実行するためのアプリケーションプログラムが搭載されている。更に、受付サーバ２４からリクエストが割り振られると、自己においてこのリクエストに対するタスクを実行することができるか否かを判定する判定プログラムもまた搭載している。
【００８６】
そして、リクエストが割り振られた場合、自己が搭載されているＷｅｂサーバ１３の負荷が、予め定めた許容負荷以内である場合には、自己が搭載されているＷｅｂサーバ１３のアプリケーションプログラムおよびデータベースサーバ１４に格納されたデータを用いてこのリクエストに対するタスクを実行させ、実行結果をファイヤウォール２０から公衆回線２２を介して要求元のクライアント計算機１０へと返信する。
【００８７】
一方、予め定めた許容負荷よりも大きい場合には、受付サーバ２４に問い合わせを行い、稼働中であるＷｅｂサーバ１３の中から、自己以外で優先順位が最も高いＷｅｂサーバ１３へと、受け付けたリクエストを転送する。この場合、リクエストを転送されたＷｅｂサーバ１３でもまた、判定プログラムが動作することによって、このリクエストに対するタスクを自己で行うか、他のＷｅｂサーバ１３へと転送するかを判定する。
【００８８】
このようにして、本実施の形態に係る負荷分散方法を適用したＷｅｂ型クライアントサーバシステムは、受付サーバ２４によって、各Ｗｅｂサーバ１３（＃１〜＃Ｎ）の負荷を分散するようにしている。上述したような判定処理は、通常はマスタサーバである受付サーバ２４（＃１）が行うが、何らかの事情により受付サーバ２４（＃１）に障害が生じ、機能不全となった場合には，スレーブサーバである受付サーバ２４（＃２）がバックアップし、処理を継続することから、高いセキュリティを実現することが可能となる。
【００８９】
また、受付サーバ２４は、パソコンと同様に、市販されている負荷バランサ１６よりも十分に低価格であるために、低コストで実現することが可能となる。
【００９０】
上述したように、本実施の形態に係る負荷分散方法を適用したＷｅｂ型クライアントサーバシステムにおいては、上記のような作用により、ルータ１８に換えて、受付サーバ２４を備えることによっても、第１の実施の形態と同様の作用効果を奏することができる。
【００９１】
以上、本発明の好適な実施の形態について、添付図面を参照しながら説明したが、本発明はかかる構成に限定されない。特許請求の範囲に記載された技術的思想の範疇において、当業者であれば、各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の技術的範囲に属するものと了解される。
【００９２】
【発明の効果】
以上説明したように、本発明によれば、複数のＷｅｂサーバによって構成されるＷｅｂ型クライアントサーバシステムにおいて、高価な負荷バランサを用いることなく各Ｗｅｂサーバへのリクエストの割り振りを行うことができる。
【００９３】
その結果、システム構成の簡素化、およびコストの低減化を図りつつ、各Ｗｅｂサーバの負荷の分散を図ることが可能なＷｅｂ型クライアントサーバシステムにおける負荷分散方法、負荷分散システム、および負荷分散プログラムを実現することが可能となる。
【図面の簡単な説明】
【図１】第１の実施の形態に係る負荷分散方法を適用したＷｅｂ型クライアントサーバシステムの全体構成の一例を示す構成図
【図２】Ｗｅｂサーバ管理テーブルの一例を示すデータ構成図
【図３】第１の実施の形態に係る負荷分散方法を適用したＷｅｂ型クライアントサーバシステムの動作を示すフローチャート
【図４】第２の実施の形態に係る負荷分散方法を適用したＷｅｂ型クライアントサーバシステムの全体構成の一例を示す構成図
【図５】一般的なクライアントサーバシステムの構成概念を示す簡略図
【図６】一般的なＷｅｂ型クライアントサーバシステムの構成概念を示す簡略図
【図７】負荷バランサを設けたＷｅｂ型クライアントサーバシステムの構成概念を示す簡略図
【符号の説明】
１０…クライアント計算機、１１…インターネット、１２…サーバ計算機、１３…Ｗｅｂサーバ、１４…データベースサーバ、１５…専用回線、１６…負荷バランサ、１８…ルータ、２０…ファイヤウォール、２１…割振部、２２…公衆回線、２４…受付サーバ
【図１】
2004192449.tif 000003
【図２】
2004192449.tif 000004
【図３】
2004192449.tif 000005
【図４】
2004192449.tif 000006
【図５】
2004192449.tif 000007
【図６】
2004192449.tif 000008
【図７】
2004192449.tif 000009