説明

コンピュータシステム、サービス提供装置、サービス利用装置、制御方法、及びプログラム

【課題】サービス提供装置の負荷値に応じてサービス利用装置とサービス提供装置との間のコネクション数を適切に制御すること。
【解決手段】コンピュータシステムは、サービスを提供するサービス提供部と、サービス提供部が提供するサービスを利用するサービス利用部と、サービス利用部がサービス提供部と通信するための複数のコネクションを予め確立するコネクション確立部と、サービス提供部として動作するコンピュータの負荷値を検出する負荷検出部と、負荷検出部が検出した負荷値が増加した場合に、コネクション確立部によって確立されているコネクションのうち、サービス利用部が使用することができるコネクションの数を減少させるコネクション制御部とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータシステム、サービス提供装置、サービス利用装置、制御方法、及びプログラムに関する。特に本発明は、サービスを提供及び利用するコンピュータシステム、サービスを提供するサービス提供装置、提供されるサービスを利用するサービス利用装置、コンピュータシステム、サービス提供装置、及びサービス利用装置を制御する制御方法、並びに当該コンピュータシステム、サービス提供装置、及びサービス利用装置用のプログラムに関する。
【背景技術】
【0002】
クライアント端末に搭載されたアプリケーションとデータベースとを接続するコネクションを蓄積し、蓄積したコネクションの中から正常に動作するコネクションを取得してアプリケーションとデータベースとを接続するコネクション蓄積部を備えたデータ共有システムが知られている(例えば、特許文献1参照。)。このシステムでは、アプリケーションサーバは、コネクションプールに蓄積されたコネクションを利用して、データベースサーバにアクセスする。このとき、アプリケーションサーバは、正常に動作しないコネクションを破棄して新たにコネクションを生成する。
【特許文献1】特開2003−216477号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
特許文献1に記載のデータ共有システムによると、正常に動作しないコネクションを破棄して新たにコネクションを生成する。しかしながら、データベースサーバの負荷が高まった時に、蓄積しているコネクションを通じてアプリケーションサーバからさらに処理要求が送られてきた場合には、データベースサーバの負荷がその処理能力を超えてしまう虞がある。また、データベースサーバがアプリケーションサーバとコネクションを確立する処理はデータベースサーバにとって処理コストが高い処理であるので、データベースの負荷が高まっている状態でアプリケーションサーバがコネクションを新たに生成しようとすると、データベースサーバの負荷がさらに高まってしまう。
【課題を解決するための手段】
【0004】
上記課題を解決するために、本発明の第1の形態によると、コンピュータシステムであって、サービスを提供するサービス提供部と、サービス提供部が提供するサービスを利用するサービス利用部と、サービス利用部がサービス提供部と通信するための複数のコネクションを予め確立するコネクション確立部と、サービス提供部として動作するコンピュータの負荷値を検出する負荷検出部と、負荷検出部が検出した負荷値が増加した場合に、コネクション確立部によって確立されているコネクションのうち、サービス利用部が使用することができるコネクションの数を減少させるコネクション制御部とを備える。
【0005】
コネクション制御部は、負荷検出部が検出した負荷値が予め定められた接続数減少負荷値より大きくなった場合に、使用することができるコネクションの数を減少させてよい。また、負荷検出部が検出する負荷値は、コンピュータが有するリソースの使用量又はサービス提供部が外部に応答するのに要する時間長さの少なくとも一方を含んでよい。リソースの使用量は、コンピュータが有するCPUの使用率を含んでよい。
【0006】
コネクション制御部は、負荷検出部が検出した負荷値が予め定められた接続数減少負荷値より大きくなった場合に、コネクション確立部によって確立されているコネクションを切断することによって、使用することができるコネクションの数を減少させてよい。
【0007】
より大きい負荷値に対応づけて、より少ない使用することができるコネクションの数を格納するコネクション数格納部をさらに備え、コネクション制御部は、使用することができるコネクションの数を、負荷検出部が検出した負荷値に対応づけてコネクション数格納部が格納しているコネクションの数に制御してよい。
【0008】
コネクション制御部は、使用することができるコネクション数を減少させた後に、負荷検出部が検出した負荷値が予め定められた接続数増加負荷値以下になった場合に、使用することができるコネクション数を増加させてよい。
【0009】
サービス提供部は、データを格納して外部にデータを提供するデータベースサーバに設けられ、サービス利用部は、データベースサーバが提供するデータを利用してよい。サービス利用部は、データベースサーバが提供するデータを利用して外部にサービスを提供する、データベースサーバと異なるアプリケーションサーバに設けられてよい。
【0010】
アプリケーションサーバは複数設けられ、負荷取得部及びコネクション制御部は複数のアプリケーションサーバのそれぞれに設けられ、複数のアプリケーションサーバのそれぞれに設けられたコネクション制御部は、負荷取得部が取得した負荷値が接続数減少負荷値より大きくなった場合に、複数のアプリケーションサーバのそれぞれに設けられたサービス利用部のそれぞれが使用することができるコネクションの数をそれぞれ減少させてよい。
【0011】
本発明の第2の形態によると、サービスを提供するサービス提供部が提供するサービスを利用するサービス利用部を備えるコンピュータシステムを制御する制御方法であって、サービス利用部がサービス提供部と通信するための複数のコネクションを予め確立するコネクション確立段階と、サービス提供部として動作するコンピュータの負荷値を検出する負荷検出段階と、負荷検出段階において検出された負荷値が増加した場合に、コネクション確立段階において確立されたコネクションのうち、サービス利用部が使用することができるコネクションの数を減少させるコネクション制御段階とを備える。
【0012】
本発明の第3の形態によると、コンピュータシステム用のプログラムであって、コンピュータシステムを、サービスを提供するサービス提供部、サービス提供部が提供するサービスを利用するサービス利用部、サービス利用部がサービス提供部と通信するための複数のコネクションを予め確立するコネクション確立部、サービス提供部として動作するコンピュータの負荷値を検出する負荷検出部、負荷検出部が検出した負荷値が増加した場合に、コネクション確立部によって確立されているコネクションのうち、サービス利用部が使用することができるコネクションの数を減少させるコネクション制御部として機能させる。
【0013】
本発明の第4の形態によると、サービスを提供するサービス提供装置であって、サービス提供装置が提供するサービスを利用するサービス利用装置に予め設定された、サービス利用装置が利用可能な複数のコネクションを、サービス利用装置との間で予め確立するコネクション確立部と、サービス提供装置の負荷値を検出する負荷検出部と、負荷検出部が検出した負荷値が増加した場合に、コネクション確立部によって確立されているコネクションのうち、サービス利用装置が使用することができるコネクションの数を減少させるコネクション制御部とを備える。
【0014】
本発明の第5の形態によると、サービスを提供するサービス提供装置を制御する制御方法であって、サービス提供装置が提供するサービスを利用するサービス利用装置に予め設定された、サービス利用装置が利用可能な複数のコネクションを、サービス利用装置との間で予め確立するコネクション確立段階と、サービス提供装置の負荷値を検出する負荷検出段階と、負荷検出段階において検出された負荷値が増加した場合に、コネクション確立段階において確立されたコネクションのうち、サービス利用装置が使用することができるコネクションの数を減少させるコネクション制御段階とを備える。
【0015】
本発明の第6の形態によると、サービスを提供するサービス提供装置用のプログラムであって、サービス提供装置を、サービス提供装置が提供するサービスを利用するサービス利用装置に予め設定された、サービス利用装置が利用可能な複数のコネクションを、サービス利用装置との間で予め確立するコネクション確立部、サービス提供装置の負荷値を検出する負荷検出部、負荷検出部が検出した負荷値が増加した場合に、コネクション確立部によって確立されているコネクションのうち、サービス利用装置が使用することができるコネクションの数を減少させるコネクション制御部として機能させる。
【0016】
本発明の第7の形態によると、サービス提供装置が提供するサービスを利用するサービス利用装置であって、サービス利用装置がサービス提供装置と通信するための複数のコネクションを予め確立するコネクション確立部と、サービス提供装置の負荷値を取得する負荷取得部と、負荷取得部が取得した負荷値が増加した場合に、コネクション確立部によって確立されているコネクションのうち、サービス利用装置が使用することができるコネクションの数を減少させるコネクション制御部とを備える。
【0017】
本発明の第8の形態によると、サービス提供装置が提供するサービスを利用するサービス利用装置を制御する制御方法であって、サービス利用装置がサービス提供装置と通信するための複数のコネクションを予め確立するコネクション確立段階と、サービス提供装置の負荷値を取得する負荷取得段階と、負荷取得段階において取得された負荷値が増加した場合に、コネクション確立段階において確立されたコネクションのうち、サービス利用装置が使用することができるコネクションの数を減少させるコネクション制御段階とを備える。
【0018】
本発明の第9の形態によると、サービス提供装置が提供するサービスを利用するサービス利用装置用のプログラムであって、サービス利用装置を、サービス利用装置がサービス提供装置と通信するための複数のコネクションを予め確立するコネクション確立部、サービス提供装置の負荷値を取得する負荷取得部、負荷取得部が取得した負荷値が増加した場合に、コネクション確立部によって確立されているコネクションのうち、サービス利用装置が使用することができるコネクションの数を減少させるコネクション制御部として機能させる。
【0019】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明の効果】
【0020】
以上の説明から明らかなように、この発明によれば、サービス提供装置の負荷値に応じてサービス利用装置とサービス提供装置との間のコネクション数を適切に制御することができる。
【発明を実施するための最良の形態】
【0021】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0022】
図1は、一実施形態に係るコンピュータシステム100の利用環境の一例を示す。コンピュータシステム100は、複数のアプリケーションサーバ120a、b、c、・・・(以下、アプリケーションサーバ120と総称する。)、データベースサーバ110、複数のWEBサーバ130a、b、c・・・(以下、WEBサーバ130と総称する。)、ロードバランサ140、及び複数のクライアント端末160a、b、c、・・・(以下、クライアント端末160と総称する。)、及び通信回線150を備える。
【0023】
なお、通信回線150は、インターネット等のコンピュータネットワーク、通信事業者のコアネットワーク、及び種々のローカルネットワークを含む。クライアント端末160は、携帯電話機、PDA等の携帯情報端末、及びパーソナルコンピュータを含む。
【0024】
クライアント端末160は、通信回線150を通じてWEBサーバ130のうちのいずれかにHTTPリクエスト等のリクエストを送信する。具体的には、クライアント端末160はロードバランサ140にリクエストを送信する。ロードバランサ140は、クライアント端末160からリクエストを受信すると、所定の負荷分散アルゴリズムに従って、リクエストを送信すべきWEBサーバ130を複数のWEBサーバ130の中から選択して、選択したWEBサーバ130にリクエストを送信する。WEBサーバ130は受信したリクエストに応じた処理を実行し、処理結果をロードバランサ140を通じてクライアント端末160に送信する。
【0025】
WEBサーバ130は、受信したリクエストの内容に基づいて、アプリケーションサーバ120の少なくとも1つに処理を依頼する。アプリケーションサーバ120は、依頼された内容の処理を進めて、処理結果をWEBサーバ130に送信する。このとき、アプリケーションサーバ120は、依頼された処理を実行する場合に、必要に応じてデータベースサーバ110にアクセスする。具体的には、アプリケーションサーバ120は、データベースサーバ110からデータを読み出して、読み出したデータを加工してWEBサーバ130に送信したり、データベースサーバ110にデータを追加したり、データベースサーバ110が格納しているデータを更新したり、データベースサーバ110が格納しているデータを削除したりする。このように、データベースサーバ110は、データを格納して、格納しているデータを外部にデータを提供する。そして、アプリケーションサーバ120は、データベースサーバ110が提供するデータを利用して外部にサービスを提供する。
【0026】
なお、アプリケーションサーバ120のそれぞれは、起動時にデータベースサーバ110との間に予め定められた1以上のコネクションを確立しておく。そして、アプリケーションサーバ120は、データベースサーバ110にアクセスする場合には、予め確立されているコネクションを利用してデータベースサーバ110にアクセスする。アプリケーションサーバ120は、データベースサーバ110へのアクセスを終了した後も、コネクションを保持しており、後にデータベースサーバ110に接続する時に、保持しているコネクションを使用する。なお、アプリケーションサーバ120は、複数のコネクションを予め確立して保持するとともに、保持している複数のコネクションを使用してデータベースサーバ110に同時にアクセスすることができる。このように、アプリケーションサーバ120がコネクションを予め確立して、確立したコネクションをセッション終了後も保持しておくことによって、データベースサーバ110にとって処理コストが高いコネクション生成処理が頻繁に生じてしまうことを未然に防ぐことができる場合がある。
【0027】
なお、アプリケーションサーバ120は、データベースサーバ110が有する中央演算処理装置(CPU)の使用率(以下、CPU使用率という。)をデータベースサーバ110から取得する。そして、アプリケーションサーバ120は、CPU使用率が予め定められた値より大きくなると、アプリケーションサーバ120が使用することができるコネクションの数(以後、使用可能コネクション数という場合がある。)を減少させる。このとき、アプリケーションサーバ120は、データベースサーバ110との間のコネクションを保持したまま、CPU使用率に応じた所定数のコネクションを使用することを禁止してもよいし、所定数のコネクションを実際に切断してもよい。
【0028】
そして、アプリケーションサーバ120は、CPU使用率が予め定められた値より小さくなると、アプリケーションサーバ120の使用可能コネクション数を増加させる。このとき、アプリケーションサーバ120は、データベースサーバ110との間のコネクションを保持したまま使用を禁止していた所定数のコネクションのうちの少なくとも一部を使用することを許可してもよいし、コネクションを切断した場合にはデータベースサーバ110との間で所定数のコネクションを新たに確立してもよい。
【0029】
このように、アプリケーションサーバ120は、データベースサーバ110の負荷値に応じて、データベースサーバ110にアプリケーションサーバ120が同時にアクセスすることができるコネクションの数を制御するので、データベースサーバ110が過負荷に陥ってしまう確率を低減することができ、データベースサーバ110がサービスを継続的に提供することができる場合がある。
【0030】
なお、本実施形態では、説明が煩雑になることを防ぐことを目的として、コンピュータシステム100が一のデータベースサーバ110を備える構成について説明したが、コンピュータシステム100は複数のデータベースサーバ110を備えてよい。また、本実施形態のコンピュータシステム100は、上記のようにデータベースシステムとして機能することができる。
【0031】
図2は、データベースサーバ110及びアプリケーションサーバ120のブロック構成の一例を示す。アプリケーションサーバ120aは、コネクション確立部200a、負荷取得部210a、コネクション制御部220a、コネクション数格納部230a、コネクション情報格納部240a、サービス利用部250a、及び通信制御部290aを有する。データベースサーバ110は、コネクション確立部200A、負荷検出部215A、コネクション制御部220A、コネクション数格納部230A、コネクション情報格納部240A、及び通信制御部290Aを有する。なお、データベースサーバ110はこの発明におけるサービス提供装置の一例であり、アプリケーションサーバ120はこの発明におけるサービス利用装置の一例であってよい。
【0032】
なお、アプリケーションサーバ120a以外のアプリケーションサーバ120b、c、・・・も、アプリケーションサーバ120aが有する構成要素と同じ構成要素を有する。以後の説明では、アプリケーションサーバ120が有する構成要素がいずれのアプリケーションサーバ120の構成要素であるかを区別する場合には、各構成要素を有するアプリケーションサーバ120と同じ添え字(a、b、c)を各構成要素の末尾に付して区別する。例えば、コネクション確立部200a、コネクション確立部200b、及びコネクション確立部200cは、それぞれアプリケーションサーバ120a、アプリケーションサーバ120b、及びアプリケーションサーバ120cの構成要素であることを示す。
【0033】
また、以後の説明において、添え字が付されていない構成要素の機能及び動作は、同じ符号が付されたいずれの構成要素の機能及び動作を示す。例えば、コネクション確立部200で説明された機能及び動作は、コネクション確立部200a、コネクション確立部200b、コネクション確立部200c、・・・の機能及び動作を示す。また、データベースサーバ110及びアプリケーションサーバ120の構成要素のうち、同じ符号を付している同名の構成要素は同様の機能及び動作を示すので、添え字が付されていない構成要素の機能及び動作は、データベースサーバ110及びアプリケーションサーバ120が有する構成要素の機能及び動作を示す。したがって、例えばコネクション制御部220の機能及び動作は、コネクション制御部220A、コネクション制御部220a、コネクション制御部220b、コネクション制御部220cの機能及び動作を示す。
【0034】
以下に、各構成要素の機能及び動作を説明する。サービス提供部255Aは、サービスを提供する。ここでいうサービスとは、本実施形態でサービスの一例として説明する、データベース機能によるデータ提供サービスだけでなく、Webサービス、電子メールサービス、ファイルサービス、及び印刷サービス等、種々のサービスを含む。本実施形態では、サービス提供部255Aは、ハードディスク、半導体メモリ等の記録媒体に記憶されたデータを外部に提供するデータベースとして機能する。なお、当該記録媒体は不揮発性であってもよいし、揮発性であってもよい。
【0035】
サービス利用部250は、サービス提供部255Aが提供するサービスを利用する。具体的には、サービス利用部250は、データベースサーバ110が提供するデータを利用して種々の処理を行う。コネクション確立部200は、サービス利用部250がサービス提供部255Aと通信するための複数のコネクションを予め確立する。具体的には、コネクション確立部200Aは、アプリケーションサーバ120に予め設定された、アプリケーションサーバ120が利用可能な複数のコネクションを、アプリケーションサーバ120との間で予め確立する。例えば、コネクション確立部200Aは、コネクション確立部200aからのコネクション確立要求に応じて、コネクションを確立する。このようにして、コネクション確立部200aは、アプリケーションサーバ120がデータベースサーバ110と通信するための複数のコネクションを予め確立する。コネクション情報格納部240は、コネクション確立部200によって確立されたコネクションを使用するために使用されるコネクション情報を格納する。
【0036】
負荷検出部215Aは、サービス提供部255Aとして動作するコンピュータの負荷値を検出する。具体的には、負荷検出部215Aは、データベースサーバ110の負荷値を検出する。負荷検出部215Aが検出する負荷値は、コンピュータが有するリソースの使用量又はサービス提供部255Aが外部に応答するのに要する時間長さの少なくとも一方を含む。なお、リソースの使用量は、コンピュータが有するCPUの使用率を含む。また、負荷取得部210は、負荷検出部215Aが検出した負荷値をデータベースサーバ110から取得する。このように、負荷取得部210は、データベースサーバ110の負荷値を取得する。
【0037】
コネクション制御部220は、負荷検出部215Aが検出した負荷値が増加した場合に、コネクション確立部200によって確立されているコネクションのうち、サービス利用部250が使用することができるコネクションの数を減少させる。具体的には、コネクション制御部220は、負荷取得部210が取得した負荷値が接続数減少負荷値より大きくなった場合に、使用することができるコネクションの数を減少させる。より具体的には、コネクション制御部220は、負荷検出部215Aが検出した負荷値が予め定められた接続数減少負荷値より大きくなった場合に、使用することができるコネクションの数を減少させる。なお、コネクション制御部220は、負荷検出部215Aが検出した負荷値が予め定められた接続数減少負荷値より大きくなった場合に、コネクション確立部200によって確立されているコネクションを切断することによって、使用することができるコネクションの数を減少させてよい。このように、コネクション制御部220は、負荷検出部215Aが検出した負荷値が増加した場合に、コネクション確立部200によって確立されているコネクションのうち、データベースサーバ110が使用することができるコネクションの数を減少させる。
【0038】
より具体的には、コネクション数格納部230は、より大きい負荷値に対応づけて、より少ない使用することができるコネクションの数を格納する。そして、コネクション制御部220は、使用することができるコネクションの数を、負荷検出部215Aが検出した負荷値に対応づけてコネクション数格納部230が格納しているコネクションの数に制御する。なお、コネクション制御部220は、使用することができるコネクション数を減少させた後に、負荷検出部215Aが検出した負荷値が予め定められた接続数増加負荷値以下になった場合に、使用することができるコネクション数を増加させる。なお、接続数増加負荷値は、接続数減少負荷値以下の値であってよい。
【0039】
なお、サービス利用部250は複数設けられてよい。具体的には、複数のアプリケーションサーバ120のそれぞれが、サービス利用部250を有してよい。そして、コネクション確立部200は、複数のサービス利用部250のそれぞれとサービス提供部255Aとの間で、複数のコネクションをそれぞれ確立する。そして、コネクション制御部220は、負荷検出部215Aが検出した負荷値が接続数減少負荷値より大きくなった場合に、複数のサービス利用部250のそれぞれが使用することができるコネクションの数をそれぞれ減少させる。
【0040】
なお、コネクション確立部200は、複数のサービス利用部250のそれぞれに対して設けられる。具体的には、複数のアプリケーションサーバ120のそれぞれがコネクション確立部200を有する。そして、複数のサービス利用部250のそれぞれに対して設けられたコネクション確立部200が、複数のサービス利用部250のそれぞれとサービス提供部255Aとの間で、複数のコネクションをそれぞれ確立する。また、コネクション制御部220は、複数のサービス利用部250のそれぞれに対して設けられる。具体的には、複数のアプリケーションサーバ120のそれぞれがコネクション制御部220を有する。そして、複数のサービス利用部250のそれぞれに対して設けられたコネクション制御部220が、負荷検出部215Aが検出した負荷値が接続数減少負荷値より大きくなった場合に、複数のサービス利用部250のそれぞれが使用することができるコネクションの数をそれぞれ減少させる。
【0041】
コネクション使用数検出部280Aは、複数のサービス利用部250のそれぞれが使用することができるコネクションのうち、複数のサービス利用部250のそれぞれが現在使用しているコネクションの数を検出する。そして、コネクション制御部220Aは、負荷検出部215Aが検出した負荷値が接続数減少負荷値より大きくなった場合に、コネクション使用数検出部280Aが検出したコネクションの数及び複数のサービス利用部250のそれぞれが使用することができるコネクションの数に基づいて、サービス利用部250が使用することができるコネクションの数に対するサービス利用部250が使用しているコネクションの数の比が、複数のサービス利用部250の間で等しくなる方向に、複数のサービス利用部250の少なくとも1つが使用することができるコネクションの数を減少させる。
【0042】
また、コネクション制御部220Aは、使用することができるコネクション数を減少させた後に、負荷検出部215Aが検出した負荷値が予め定められた接続数増加負荷値より小さくなった場合に、コネクション使用数検出部280Aが検出したコネクションの数及び複数のサービス利用部250のそれぞれが使用することができるコネクションの数に基づいて、サービス利用部250が使用することができるコネクションの数に対するサービス利用部250が使用しているコネクションの数の比が、複数のサービス利用部250の間で等しくなる方向に、複数のサービス利用部250の少なくとも1つが使用することができるコネクションの数を増加させてよい。
【0043】
なお、複数のアプリケーションサーバ120のそれぞれに設けられたコネクション制御部220は、負荷取得部210が取得した負荷値が接続数減少負荷値より大きくなった場合に、複数のアプリケーションサーバ120のそれぞれに設けられたサービス利用部250のそれぞれが使用することができるコネクションの数をそれぞれ減少させる。なお、コネクション制御部220Aは、負荷検出部215Aが検出した負荷値が予め定められた接続数減少負荷値より大きくなった場合に、使用することができるコネクションの数を減少させる命令を、アプリケーションサーバ120に送信してもよい。また、コネクション制御部220は、負荷検出部215Aが検出した負荷値が接続数減少負荷値より大きい予め定められた切断負荷値より大きくなった場合に、コネクション確立部200によって確立されているコネクションを切断することによって、使用することができるコネクションの数を減少させてよい。
【0044】
図3は、WEBサーバ130、アプリケーションサーバ120、及びデータベースサーバ110の動作シーケンスの一例を示す。アプリケーションサーバ120が起動すると(S302)、負荷取得部210aは、負荷検出部215Aにデータベースサーバ110の負荷値を要求する(S304)。負荷検出部215Aは、データベースサーバ110の負荷値を検出して、負荷取得部210aに送信する(S306)。
【0045】
コネクション確立部200aは、負荷取得部210aが取得した負荷値に応じて、コネクション数格納部230aが格納している情報に基づいて、使用可能コネクション数を設定する(S308)。そして、コネクション確立部200a及びコネクション確立部200Aはコネクションを確立する(S312a、S312b)。このとき、コネクション確立部200a及びコネクション確立部200Aは、アプリケーションサーバ120aに許容された予め定められた1以上の数(例えば、20個)のコネクションを生成する。なお、ここでコネクションを確立する数は、アプリケーションサーバ120毎に、設定値として予め定められてよい。
【0046】
そして、サービス利用部250aは、WEBサーバ130から処理要求を受信する(S322)。サービス利用部250aは、受信した処理要求等に基づいて、プログラムによって定められた所定のロジックに従って処理を進める。このとき、サービス利用部250aは、データベースサーバ110に実行させるクエリを生成する(S324)。そして、サービス利用部250aは、既に確立しているコネクションの中から使用されていないコネクションを選択して(S326)、選択したコネクションを使用してクエリをデータベースサーバ110に送信する(S328)。
【0047】
サービス提供部255Aは、受信したクエリを実行して(S330)、クエリを実行した実行結果をアプリケーションサーバ120に送信する(S322)。このとき、通信制御部290Aは、アプリケーションサーバ120との間で確立されているコネクションを使用して実行結果を送信する。そして、サービス利用部250aは、受信した実行結果を利用して処理結果を生成して(S334)、生成した処理結果をWEBサーバ130に送信する(S336)。また、負荷検出部215Aが切断負荷値を超える負荷値を検出すると(S342)、コネクション制御部220Aは負荷値に応じた数のコネクションを切断する(S344)。
【0048】
なお、サービス利用部250aは、サービス提供部255Aとの間で一連のセッションが終了した場合でも、コネクションを切断せずに保持しておく。そして、サービス利用部250aは、後にサービス提供部255Aと通信する場合に、S326のように、保持しているコネクションの中から使用することができるコネクションを選択して使用する。
【0049】
なお、本シーケンスでは、負荷値に応じて使用可能コネクション数を制御する制御方法の一例として、S304からS312までの処理のように、アプリケーションサーバ120aがデータベースサーバ110に負荷値を問い合わせて、問い合わせに応じて得られた負荷値に応じて使用可能コネクション数を制御する方法と、データベースサーバ110が自身の負荷値を検出して、検出した負荷値に応じて既に確立されているコネクションを切断する制御方法について説明した。
【0050】
その他にも、負荷検出部215Aは定期的にデータベースサーバ110の負荷値を検出して、検出した負荷値を通信制御部290Aを通じて定期的にアプリケーションサーバ120aに送信してもよい。そして、負荷取得部210aは、通信制御部290aを通じて負荷値が通知されたことを検出すると、通知された負荷値に応じた使用可能コネクション数を設定してよい。なお、通信制御部290Aは、例えばブロードキャストの形で複数のアプリケーションサーバ120に略同時に負荷値を送信してよいし、アプリケーションサーバ120に順次負荷値を送信してもよい。
【0051】
その他にも、負荷取得部210aは、応答を要求する信号をデータベースサーバ110に送信して、当該信号を送信してからデータベースサーバ110から応答を受信するまでの時間長さに基づいてデータベースサーバ110の負荷値を特定することによって、データベースサーバ110の負荷値を取得してもよい。例えば負荷取得部210aは、当該時間長さが長いほどより大きい負荷値を特定してよい。なお、負荷取得部210aは、データベースサーバ110の負荷値を任意のタイミングで取得してよい。例えば、負荷取得部210aは、S322からS336のような、データベースサーバ110にアクセスしている期間に含まれるタイミングを含む任意のタイミングで、データベースサーバ110の負荷値を取得してよい。そして、コネクション制御部220aは、任意のタイミングで使用可能コネクション数を制御してよい。
【0052】
図4は、コネクション数格納部230が格納しているデータの一例をテーブル形式で示す。コネクション数格納部230は、CPU使用率、メモリ使用率、データアクセス率、ネットワーク帯域使用率、及びコネクション使用可能率を対応づけて格納している。なお、CPU使用率、メモリ使用率、データアクセス率、ネットワーク帯域使用率は、この発明におけるコンピュータの負荷値の一例である。
【0053】
CPU使用率は、CPUの負荷値を示し、CPUの実行時間の、総時間に対する比率であってよい。なお、CPUの実行時間は、CPUが実行する全命令を実行した時間であってよいし、データベース機能を提供する命令のみをCPUが実行した実行時間であってもよい。このように、CPUの実行時間は、データベース機能以外の機能を提供する命令をCPUが実行した実行時間を含まなくてもよい。
【0054】
メモリ使用率は、例えばCPUから直接アクセスすることができる主記憶装置(メインメモリ)の使用量であってよい。メモリ使用率は、主記憶装置の総容量に対する使用されている容量の比率であってよい。なお、主記憶装置は揮発性であってよいし、不揮発性であってもよい。
【0055】
データアクセス率は、補助記憶装置(又は二次記憶装置)へのアクセス量であってよい。具体的には、データアクセス率は、データアクセス率であってよい。より具体的には、データアクセス率は、補助記憶装置から読み出された、或いは補助記憶装置に書き込まれた、単位時間当たりのデータ量を示す転送速度を指標とするものであってよい。例えば、データアクセス率は、最大転送速度に対する転送速度の比率であってよい。補助記憶装置は、例えばハードディスク等の磁気ディスク、半導体メモリ等であってよい。
【0056】
なお、データアクセス率は、特定のディスクボリュームに対するアクセス量であってよい。ここでいう特定のディスクボリュームとは、データベースとして格納されるデータ自身が格納されるファイルが記録されているディスクボリュームであってよいし、データベースとして動作するために使用されるファイル、例えばトランザクション情報を記録するファイル等が記録されているディスクボリュームであってよい。なお、ディスクボリュームは、パーティション及びスライスを含み、物理的ボリューム及び論理的ボリュームを含む。
【0057】
ネットワーク使用率は、ネットワークを通じて外部から受信した受信データ量又は単位時間当たりに送信した送信データ量、或いは受信データ量及び送信データ量の合計値を示す送受信データ量を指標値とするものであってよい。例えば、ネットワーク使用率とは、ネットワークデバイスが送受信することができる最大のデータ量に対する、受信データ量、送信データ量、又は送受信データ量の比率であってよい。
【0058】
コネクション使用可能率は、アプリケーションサーバ120が生成することができるコネクション数の最大値に対する、アプリケーションサーバ120の現在の使用可能コネクション数の比率であってよい。アプリケーションサーバ120が生成することができるコネクション数の最大値は、アプリケーションサーバ120毎に予め設定されていてよい。
【0059】
なお、アプリケーションサーバ120の現在の使用可能コネクション数とは、必ずしも現在生成しているコネクションの数でなくてよい。例えば、アプリケーションサーバ120は、予め定められた数のコネクションを保持したまま、当該予め定められた数より小さい数のコネクションだけ同時に使用するよう制御してよい。例えば、アプリケーションサーバ120は、20個のコネクションを保持したまま、8個のコネクションだけ同時に使用することができるよう、コネクションの利用を制限してよい。この場合、コネクション使用可能率は40%となる。なお、アプリケーションサーバ120は、使用可能コネクション数を、コネクションを切断することによって制御することもできる。このようにコネクションを切断することによって使用可能コネクション数を制御する場合、生成することができるコネクション数の最大値に対する、現在生成しているコネクションの数の比率が、コネクション使用可能率となる。
【0060】
なお、この発明におけるリソース使用量は、本図に関連して説明したCPU使用率、メモリ使用率、データアクセス率、及びネットワーク帯域使用率以外にも、ハードディスク等の記録媒体にスワップしているメモリ量又は記録媒体から読み出したメモリ量を示すスワップ量等、様々なリソース使用量を含む。このように、コネクション数格納部230はリソース使用量に対応づけてコネクション使用可能率を格納している。なお、生成することができるコネクション数の最大値にコネクション使用可能率を乗じた値が、使用可能コネクション数であるので、コネクション制御部220は、負荷検出部215Aが検出したリソース使用量に対応づけてコネクション数格納部230が格納しているコネクション使用可能率に、アプリケーションサーバ120が生成することができるコネクション数の最大値を乗じた値に、アプリケーションサーバ120の使用可能コネクション数を制御することによって、リソース使用量に応じて使用可能コネクション数を動的に制御する。
【0061】
図5は、CPU使用率の時間発展及び使用可能コネクション数の時間発展510の一例を示す。データベースサーバ110のCPU使用率500は時刻t1までの間は30%以下であり、したがってコネクション使用可能率は100%である。したがって、アプリケーションサーバ120が20個のコネクションを確立することが許容されている場合には、コネクション制御部220はコネクション使用可能数を20個にする。
【0062】
時刻t1において、負荷検出部215Aが検出したCPU使用率が第1閾値30%を超えた場合には、データベースサーバ110は通信制御部290Aを通じてCPU使用率をアプリケーションサーバ120に送信する。負荷取得部210は、通信制御部290を通じてデータベースサーバ110のCPU使用率を取得して、コネクション制御部220に供給する。時刻t2まではCPU使用率が30%より大きく50%以下であることから、コネクション制御部220はコネクション数格納部230を参照して、コネクション使用可能率を40%にすべきことを判断する。そこでコネクション制御部220は、コネクション使用可能数を12個減少させて、8個にする。
【0063】
そして、時刻t2において負荷検出部215Aが検出したCPU使用率が第1閾値より大きい第2閾値50%を超えた場合には、データベースサーバ110は通信制御部290Aを通じてCPU使用率をアプリケーションサーバ120に送信する。負荷取得部210がデータベースサーバ110からのCPU使用率を取得すると、コネクション制御部220は、上記制御と同様にコネクション数格納部230が格納しているデータを参照して、コネクション使用可能数をさらに6個減少させて2個にする。
【0064】
その後、CPU使用率が第2閾値より大きく第3閾値80%以下で推移して、時刻t3においてCPU使用率が第2閾値以下になったことを検出すると、データベースサーバ110は通信制御部290Aを通じてCPU使用率をアプリケーションサーバ120に送信する。負荷取得部210がCPU使用率を取得すると、コネクション制御部220は、上記制御と同様にコネクション数格納部230が格納しているデータを参照して、負荷取得部210が取得したCPU使用率に応じたコネクション使用可能数を算出する。具体的には、コネクション制御部220は、コネクション使用可能数を6個増加させて8個にする。時刻t4において、負荷検出部215Aが検出したCPU使用率が第1閾値以下になった場合には、データベースサーバ110はCPU使用率をアプリケーションサーバ120に送信する。そして、コネクション制御部220は、上記制御と同様にコネクション数格納部230が格納しているデータを参照して、負荷取得部210が取得したCPU使用率に応じたコネクション使用可能数として20個を算出して、使用可能コネクション数を20個に設定する。
【0065】
なお、本図の例では、説明が複雑になることを防ぐことを目的として、負荷値の一例であるCPU使用率に応じた使用可能コネクション数の時間発展の一例を示したが、コネクション制御部220は、メモリ使用率、データアクセス率、及びネットワーク帯域使用率等、CPU使用率以外の負荷値に応じて使用可能コネクション数を制御してもよいことは言うまでもない。例えば、コネクション制御部220は、各リソース使用量に対応してコネクション数格納部230が格納しているコネクション使用可能率を、リソース使用量毎に予め定められた重みで重み付け平均した値を、コネクション使用可能率としてもよい。
【0066】
なお、上記の例で説明したように、データベースサーバ110は、コネクション数格納部230が格納している閾値を超えた負荷値を負荷検出部215Aが検出したことを条件として、データベースサーバ110の負荷値をアプリケーションサーバ120に送信してよい。なお、上記で説明したように、第1閾値、第2閾値、及び第3閾値は、この発明における接続数減少負荷値の一例である。また、第1閾値、第2閾値、及び第3閾値は、この発明における接続数増加負荷値としても機能する。また、第1閾値及び第2閾値がこの発明における接続数減少負荷値であり、第3閾値がこの発明における切断負荷値であってよい。
【0067】
図6は、コネクション制御部220の制御による使用可能コネクション数の増減量の一例を示す。本図の制御方法は、他のアプリケーションサーバ120との間で、使用可能コネクション数(又はコネクション使用可能率)の増減量を調整する制御方法の一例である。この場合、データベースサーバ110が有するコネクション制御部220Aが、複数のアプリケーションサーバ120の使用可能コネクション数(又はコネクション使用可能率)を制御する。
【0068】
図6に示すように、アプリケーションサーバ120a、b、及びcにおいて、使用可能コネクション数がそれぞれ8個、8個、及び4個であり、現在使用しているコネクション数がそれぞれ4個、5個、及び2個であるとする。ここで、現在使用しているコネクション数とは、現在において同時に使用されているコネクション数であってよいし、現在から予め定められた時間幅だけ前の時点から現在までの間において同時に使用されたコネクションの最大数であってよい。なお、コネクション使用数検出部280Aは、アプリケーションサーバ120との通信に使用されたコネクションを特定することによって、現在使用しているコネクションの数を算出することができる。
【0069】
なお、図6には、使用可能コネクション数及び現在使用しているコネクション数が図6に図示した値である場合において、コネクション制御部220Aがコネクション数を全体として3個増加させる場合の、アプリケーションサーバ120のそれぞれの増加量の一例が示されている。コネクション数を増加させる場合には、コネクション制御部220Aは、アプリケーションサーバ120毎に、使用可能コネクションの数に対する現在使用しているコネクションの数の比(以下、コネクション使用比率とする。)を算出する。そして、コネクション制御部220Aは、複数のアプリケーションサーバ120の間でコネクション使用比率が等しくなる方向に、使用可能コネクション数を増加させる。図6の例では、コネクション制御部220Aは、アプリケーションサーバ120a及びbの使用可能コネクション数をそれぞれ1個及び2個増加させ、アプリケーションサーバ120cの使用可能コネクション数を変更しない。
【0070】
一方、使用可能コネクション数を全体として3個減少させる場合には、使用可能コネクション数を増加させる場合と同様に、複数のアプリケーションサーバ120の間でコネクション使用比率が等しくなる方向に、使用可能コネクション数を減少させる。図6の例では、アプリケーションサーバ120a及びcの使用可能コネクション数をそれぞれ2個及び1個減少させ、アプリケーションサーバ120bの使用可能コネクション数を変更しない。このように、コネクション制御部220Aは、アプリケーションサーバ120の使用可能コネクション数の増減量を制御して、コネクション使用比率の差を複数のアプリケーションサーバ120の間で小さくする。
【0071】
このように、コネクション制御部220Aは、複数のアプリケーションサーバ120の間でコネクション使用比率が等しくなるよう、複数のアプリケーションサーバ120のそれぞれの使用可能コネクション数を調整する。このような制御方法によると、アプリケーションサーバ120のコネクション使用比率が100%になる確率を低減することができ、WEBサーバ130の処理に遅延が生じたりタイムアウトが生じたりする確率を低減することができる場合がある。
【0072】
なお、上記の例のようなコネクション使用比率に基づいて使用可能コネクション数を調整する方法の他にも、コネクション制御部220Aは、使用可能コクション数と現在使用しているコネクションの数との間の差がより小さいアプリケーションサーバ120の使用可能コクション数を、より多く増加させてもよい。
【0073】
また、コネクション制御部220Aが使用可能コネクション数を減少させる場合には、コネクション使用比率がより大きいアプリケーションサーバ120、又は使用可能コクション数と使用しているコネクションの数との間の差がより小さいアプリケーションサーバ120の使用可能コネクション数を、より優先して減少させてもよい。このような制御方法によると、アプリケーションサーバ120は、例えばコネクション使用比率が大きいほどコネクション数を増加されにくくなる。このため、複数のアプリケーションサーバ120の間でコネクション使用比率のバランスをとることができたり、データベースサーバ110の負荷値を効果的に減少させることができる場合がある。
【0074】
図7は、コネクション制御部220が記憶しているデータの一例を示す。コネクション制御部220は、使用可能コネクション数を減少又は増加させた時刻と、減少又は増加させた使用可能コネクション数とを対応づけてコネクション制御履歴情報として記憶する。そして、コネクション制御部220は、記憶しているコネクション制御履歴情報に基づいて、データベースサーバ110の負荷値を効果的に制御することができるよう、コネクション数格納部230が格納しているコネクション使用率を動的に更新する。
【0075】
具体的には、図7に示すコネクション制御履歴情報は、第1時刻(10時30分15秒)に使用可能コネクション数を12個減少させ、その後の第2時刻(10時30分50秒)に使用可能コネクション数を12個増加させたことを示している。したがって、コネクション制御部220は、使用可能コネクション数を12個減少させることによってデータベースサーバ110の負荷値が低減されて、使用可能コネクション数を回復することができる負荷値(例えば、CPU使用率が30%以下)までデータベースサーバ110の負荷値が低下するのに35秒かかったことを特定することができる。このように、コネクション制御部220は、コネクション制御履歴情報に基づいて、データベースサーバ110の負荷値の制御速度の実績値を得ることができる。
【0076】
そこで、コネクション制御部220は、コネクション制御履歴が示す負荷値の制御速度に基づいて、データベースサーバ110の負荷値をより速く低減する必要があるか否かを判断する。コネクション制御部220は、負荷値をより速く低減する必要がある旨を判断した場合には、コネクション数格納部230により小さいコネクション使用可能率を格納させる。例えば、コネクション制御部220は、30%より大きく50%より小さいCPU使用率に対して、コネクション使用可能率を40%から30%に低下させる。
【0077】
このように、コネクション制御部220は、例えば使用可能コネクション数を減少させてから使用可能コネクション数を増加させるまでの時間が長いほど、より小さいコネクション使用率をコネクション数格納部230に格納させる。また、コネクション制御部220は、使用可能コネクション数を増加させてから使用可能コネクション数を減少させるまでの時間が短いほど、より小さいコネクション使用率をコネクション数格納部230に格納させる。
【0078】
このように、コネクション制御部220は、負荷値の制御履歴に応じて、コネクション使用可能率を動的に調整する。これにより、使用可能コネクション数が必要以上に減らされてしまったり、使用可能コネクション数の減少量が負荷値の増加量に対して小さすぎたりしてしまうことを未然に防ぐことができる場合がある。また、アプリケーションサーバ120の数が増えると、アプリケーションサーバ120一台あたりの使用可能コネクション数の増減量が小さくてよくなる場合がある。上記のように制御履歴に応じてコネクション使用可能率を動的に調整することによって、コンピュータシステム100にアプリケーションサーバ120を追加しても、自動的に使用可能コネクション数が適切な値に調整される場合がある。
【0079】
以上説明したように、アプリケーションサーバ120のそれぞれに設けられたコネクション制御部220が、アプリケーションサーバ120のそれぞれの使用可能コネクション数をそれぞれ制御するので、特定のアプリケーションサーバ120が保守等によりサービスを停止している場合であっても、データベースサーバ110はアプリケーションサーバ120の生死について関知することなく動作することができる場合がある。そして、アプリケーションサーバ120は、データベースサーバ110の負荷値に応じて使用可能コネクション数を自立的に調整することができる場合がある。また、アプリケーションサーバ120を新たに追加した場合であっても、アプリケーションサーバ120が追加されたことをデータベースサーバ110に通知することなく、データベースサーバ110の負荷値に応じて使用可能コネクション数が適切に調整される場合がある。
【0080】
なお、以上の説明においては、アプリケーションサーバ120がデータベースサーバ110に接続するコネクションを用いてこの発明の一実施形態を説明したが、この発明におけるコネクションは、上記コネクションの他に、多様な場面で確立される多様な種類のコネクションを含む。例えば、この発明におけるコネクションは、上記実施形態においてWEBサーバ130がアプリケーションサーバ120に接続するために確立するコネクションであってよい。例えば、この発明のコネクションは、WEBサーバ130上のプロセスとアプリケーションサーバ120上のプロセスとの間のコネクションであってよい。なお、ここでいうプロセスとは、いくつかのオペレーティングシステム(OS)でタスク等と呼ばれる処理単位であってよい。また、この発明におけるコネクションは、異なるプロセスの間のコネクションであってもよいし、同一のプロセス又は異なるプロセスにおけるスレッド間のコネクションであってもよい。
【0081】
また、この発明におけるコネクションは、アプリケーション層のコネクションであってよい。また、この発明におけるコネクションは、TCPコネクションそのものであってよいし、TCPコネクションを含むより上位層のコネクションであってもよい。また、この発明におけるコネクションは、TCPプロトコル以外にも、種々のプロトコルで行われるコネクションを含む。
【0082】
また、この発明におけるコネクションは、異なるコンピュータ上のプロセス間のコネクションであってよいし、同一のコンピュータ上のプロセス間のコネクションであってもよい。また、この発明におけるコネクションは、同一の仮想機械(バーチャルマシン)上のプロセス間のコネクションであってよいし、異なる仮想機械上のプロセス間のコネクションであってよい。例えば、この発明におけるコネクションは、第1仮想機械上で動作するプロセスと、当該第1仮想機械と異なる第2仮想機械上で動作するプロセスとの間のコネクションであってよい。仮想機械は、Java(登録商標)VM、仮想マシンモニタ等と呼ばれる種々の仮想オペレーティングシステム環境を含む。また、この発明におけるコネクションは、同じ装置上で動作する仮想機械上におけるプロセス間のコネクションであってよいし、異なる装置上でそれぞれ動作する仮想機械上のプロセス間のコネクションを含む。
【0083】
図8は、データベースサーバ110及びアプリケーションサーバ120をコンピュータ等の電子情報処理装置でそれぞれ構成した場合のハードウェア構成の一例を示す。データベースサーバ110及びアプリケーションサーバ120は、CPU周辺部と、入出力部と、レガシー入出力部とを備える。CPU周辺部は、ホスト・コントローラ1582により相互に接続されるCPU1505、RAM1520、グラフィック・コントローラ1575、及び表示装置1580を有する。入出力部は、入出力コントローラ1584によりホスト・コントローラ1582に接続される通信インターフェイス1530、ハードディスクドライブ1540、及びCD−ROMドライブ1560を有する。レガシー入出力部は、入出力コントローラ1584に接続されるROM1510、フレキシブルディスク・ドライブ1550、及び入出力チップ1570を有する。
【0084】
ホスト・コントローラ1582は、RAM1520と、高い転送レートでRAM1520をアクセスするCPU1505、及びグラフィック・コントローラ1575とを接続する。CPU1505は、ROM1510、及びRAM1520に格納されたプログラムに基づいて動作して、各部の制御をする。グラフィック・コントローラ1575は、CPU1505等がRAM1520内に設けたフレーム・バッファ上に生成する画像データを取得して、表示装置1580上に表示させる。これに代えて、グラフィック・コントローラ1575は、CPU1505等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【0085】
入出力コントローラ1584は、ホスト・コントローラ1582と、比較的高速な入出力装置であるハードディスクドライブ1540、通信インターフェイス1530、CD−ROMドライブ1560を接続する。ハードディスクドライブ1540は、CPU1505が使用するプログラム、及びデータを格納する。通信インターフェイス1530は、ネットワーク通信装置1598に接続してプログラムまたはデータを送受信する。CD−ROMドライブ1560は、CD−ROM1595からプログラムまたはデータを読み取り、RAM1520を介してハードディスクドライブ1540、及び通信インターフェイス1530に提供する。
【0086】
入出力コントローラ1584には、ROM1510と、フレキシブルディスク・ドライブ1550、及び入出力チップ1570の比較的低速な入出力装置とが接続される。ROM1510は、データベースサーバ110及びアプリケーションサーバ120が起動時に実行するブート・プログラム、あるいはデータベースサーバ110及びアプリケーションサーバ120のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ1550は、フレキシブルディスク1590からプログラムまたはデータを読み取り、RAM1520を介してハードディスクドライブ1540、及び通信インターフェイス1530に提供する。入出力チップ1570は、フレキシブルディスク・ドライブ1550、あるいはパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を接続する。
【0087】
CPU1505が実行するプログラムは、フレキシブルディスク1590、CD−ROM1595、またはICカード等の記録媒体に格納されて利用者によって提供される。記録媒体に格納されたプログラムは圧縮されていても非圧縮であってもよい。プログラムは、記録媒体からハードディスクドライブ1540にインストールされ、RAM1520に読み出されてCPU1505により実行される。CPU1505により実行されるプログラムは、データベースサーバ110を、図1から図7に関連して説明したコネクション確立部200A、負荷検出部215A、コネクション制御部220A、コネクション数格納部230A、コネクション情報格納部240A、及び通信制御部290Aとして機能させ、アプリケーションサーバ120を、図1から図7に関連して説明したコネクション確立部200、負荷取得部210、コネクション制御部220、コネクション数格納部230、コネクション情報格納部240、サービス利用部250、及び通信制御部290として機能させる。
【0088】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク1590、CD−ROM1595の他に、DVDまたはPD等の光学記録媒体、MD等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークあるいはインターネットに接続されたサーバシステムに設けたハードディスクまたはRAM等の記憶装置を記録媒体として使用して、ネットワークを介したプログラムとして放射線撮像システムを提供してもよい。
【0089】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【0090】
【図1】一実施形態に係るコンピュータシステム100の利用環境の一例を示す図である。
【図2】データベースサーバ110及びアプリケーションサーバ120のブロック構成の一例を示す図である。
【図3】WEBサーバ130、アプリケーションサーバ120、及びデータベースサーバ110の動作シーケンスの一例を示す図である。
【図4】コネクション数格納部230が格納しているデータの一例をテーブル形式で示す図である。
【図5】CPU使用率の時間発展及び使用可能コネクション数の時間発展の一例を示す図である。
【図6】コネクション制御部220の制御による使用可能コネクション数の増減量の一例を示す図である。
【図7】コネクション制御部220が記憶しているデータの一例を示す図である。
【図8】データベースサーバ110及びアプリケーションサーバ120のそれぞれのハードウェア構成の一例を示す図である。
【符号の説明】
【0091】
100 コンピュータシステム
110 データベースサーバ
120 アプリケーションサーバ
130 WEBサーバ
140 ロードバランサ
150 通信回線
160 クライアント端末
200 コネクション確立部
210 負荷取得部
215 負荷検出部
220 コネクション制御部
230 コネクション数格納部
240 コネクション情報格納部
250 サービス利用部
255 サービス提供部
280 コネクション使用数検出部
290 通信制御部
500 CPU使用率
510 時間発展
1505 CPU
1510 ROM
1520 RAM
1530 通信インターフェイス
1540 ハードディスクドライブ
1550 フレキシブルディスク・ドライブ
1560 CD−ROMドライブ
1570 入出力チップ
1575 グラフィック・コントローラ
1580 表示装置
1582 ホスト・コントローラ
1584 入出力コントローラ
1590 フレキシブルディスク
1595 CD−ROM
1598 ネットワーク通信装置

【特許請求の範囲】
【請求項1】
サービスを提供するサービス提供部と、
前記サービス提供部が提供するサービスを利用するサービス利用部と、
前記サービス利用部が前記サービス提供部と通信するための複数のコネクションを予め確立するコネクション確立部と、
前記サービス提供部として動作するコンピュータの負荷値を検出する負荷検出部と、
前記負荷検出部が検出した負荷値が増加した場合に、前記コネクション確立部によって確立されているコネクションのうち、前記サービス利用部が使用することができるコネクションの数を減少させるコネクション制御部と
を備えるコンピュータシステム。
【請求項2】
前記コネクション制御部は、前記負荷検出部が検出した負荷値が予め定められた接続数減少負荷値より大きくなった場合に、前記使用することができるコネクションの数を減少させる
請求項1に記載のコンピュータシステム。
【請求項3】
前記負荷検出部が検出する負荷値は、前記コンピュータが有するリソースの使用量又は前記サービス提供部が外部に応答するのに要する時間長さの少なくとも一方を含む
請求項2に記載のコンピュータシステム。
【請求項4】
前記リソースの使用量は、前記コンピュータが有するCPUの使用率を含む
請求項3に記載のコンピュータシステム。
【請求項5】
前記コネクション制御部は、前記負荷検出部が検出した負荷値が予め定められた接続数減少負荷値より大きくなった場合に、前記コネクション確立部によって確立されているコネクションを切断することによって、前記使用することができるコネクションの数を減少させる
請求項4に記載のコンピュータシステム。
【請求項6】
より大きい前記負荷値に対応づけて、より少ない前記使用することができるコネクションの数を格納するコネクション数格納部
をさらに備え、
前記コネクション制御部は、前記使用することができるコネクションの数を、前記負荷検出部が検出した負荷値に対応づけて前記コネクション数格納部が格納しているコネクションの数に制御する
請求項4に記載のコンピュータシステム。
【請求項7】
前記コネクション制御部は、前記使用することができるコネクション数を減少させた後に、前記負荷検出部が検出した負荷値が予め定められた接続数増加負荷値以下になった場合に、前記使用することができるコネクション数を増加させる
請求項4に記載のコンピュータシステム。
【請求項8】
前記サービス利用部は複数設けられ、
前記コネクション確立部は、複数の前記サービス利用部のそれぞれと前記サービス提供部との間で、複数のコネクションをそれぞれ確立し、
前記コネクション制御部は、前記負荷検出部が検出した負荷値が前記接続数減少負荷値より大きくなった場合に、複数の前記サービス利用部のそれぞれが使用することができるコネクションの数をそれぞれ減少させる
請求項4に記載のコンピュータシステム。
【請求項9】
前記コネクション確立部は、複数の前記サービス利用部のそれぞれに対して設けられ、複数の前記サービス利用部のそれぞれに対して設けられた前記コネクション確立部が、複数の前記サービス利用部のそれぞれと前記サービス提供部との間で複数のコネクションをそれぞれ確立し、
前記コネクション制御部は、複数の前記サービス利用部のそれぞれに対して設けられ、複数の前記サービス利用部のそれぞれに対して設けられた前記コネクション制御部が、前記負荷検出部が検出した負荷値が前記接続数減少負荷値より大きくなった場合に、複数の前記サービス利用部のそれぞれが使用することができるコネクションの数をそれぞれ減少させる
請求項8に記載のコンピュータシステム。
【請求項10】
複数の前記サービス利用部のそれぞれが使用することができるコネクションのうち、複数の前記サービス利用部のそれぞれが現在使用しているコネクションの数を検出するコネクション使用数検出部
をさらに備え、
前記コネクション制御部は、前記負荷検出部が検出した負荷値が前記接続数減少負荷値より大きくなった場合に、前記コネクション使用数検出部が検出したコネクションの数及び複数の前記サービス利用部のそれぞれが使用することができるコネクションの数に基づいて、前記サービス利用部が使用することができるコネクションの数に対する前記サービス利用部が使用しているコネクションの数の比が複数の前記サービス利用部の間で等しくなる方向に、複数の前記サービス利用部の少なくとも1つが使用することができるコネクションの数を減少させる
請求項8に記載のコンピュータシステム。
【請求項11】
複数の前記サービス利用部のそれぞれが使用することができるコネクションのうち、複数の前記サービス利用部のそれぞれが現在使用しているコネクションの数を検出するコネクション使用数検出部
をさらに備え、
前記コネクション制御部は、前記使用することができるコネクション数を減少させた後に、前記負荷検出部が検出した負荷値が予め定められた接続数増加負荷値より小さくなった場合に、前記コネクション使用数検出部が検出したコネクションの数及び複数の前記サービス利用部のそれぞれが使用することができるコネクションの数に基づいて、前記サービス利用部が使用することができるコネクションの数に対する前記サービス利用部が使用しているコネクションの数の比が、複数の前記サービス利用部の間で等しくなる方向に、複数の前記サービス利用部の少なくとも1つが使用することができるコネクションの数を増加させる
請求項10に記載のコンピュータシステム。
【請求項12】
前記サービス提供部は、データを格納して外部にデータを提供するデータベースサーバに設けられ、
前記サービス利用部は、前記データベースサーバが提供するデータを利用する
請求項4に記載のコンピュータシステム。
【請求項13】
前記サービス利用部は、前記データベースサーバが提供するデータを利用して外部にサービスを提供する、前記データベースサーバと異なるアプリケーションサーバに設けられる
請求項12に記載のコンピュータシステム。
【請求項14】
前記負荷検出部は、前記データベースサーバに設けられ、前記データベースサーバの負荷値を検出する
請求項13に記載のコンピュータシステム。
【請求項15】
前記アプリケーションサーバに設けられ、前記負荷検出部が検出した負荷値を前記データベースサーバから取得する負荷取得部
をさらに備え、
前記コネクション制御部は、前記アプリケーションサーバに設けられ、前記負荷取得部が取得した負荷値が前記接続数減少負荷値より大きくなった場合に、前記使用することができるコネクションの数を減少させる
請求項14に記載のコンピュータシステム。
【請求項16】
前記アプリケーションサーバは複数設けられ、
前記負荷取得部及び前記コネクション制御部は複数の前記アプリケーションサーバのそれぞれに設けられ、複数の前記アプリケーションサーバのそれぞれに設けられた前記コネクション制御部は、前記負荷取得部が取得した負荷値が前記接続数減少負荷値より大きくなった場合に、複数の前記アプリケーションサーバのそれぞれに設けられた前記サービス利用部のそれぞれが使用することができるコネクションの数をそれぞれ減少させる
請求項15に記載のコンピュータシステム。
【請求項17】
前記コネクション制御部は、前記データベースサーバに設けられ、前記負荷検出部が検出した負荷値が予め定められた接続数減少負荷値より大きくなった場合に、前記使用することができるコネクションの数を減少させる命令を、前記アプリケーションサーバに送信する
請求項14に記載のコンピュータシステム。
【請求項18】
前記コネクション制御部は、前記負荷検出部が検出した負荷値が前記接続数減少負荷値より大きい予め定められた切断負荷値より大きくなった場合に、前記コネクション確立部によって確立されているコネクションを切断することによって、前記使用することができるコネクションの数を減少させる
請求項17に記載のコンピュータシステム。
【請求項19】
サービスを提供するサービス提供部が提供するサービスを利用するサービス利用部を備えるコンピュータシステムを制御する制御方法であって、
前記サービス利用部が前記サービス提供部と通信するための複数のコネクションを予め確立するコネクション確立段階と、
前記サービス提供部として動作するコンピュータの負荷値を検出する負荷検出段階と、
前記負荷検出段階において検出された負荷値が増加した場合に、前記コネクション確立段階において確立されたコネクションのうち、前記サービス利用部が使用することができるコネクションの数を減少させるコネクション制御段階と
を備える制御方法。
【請求項20】
コンピュータシステム用のプログラムであって、前記コンピュータシステムを、
サービスを提供するサービス提供部、
前記サービス提供部が提供するサービスを利用するサービス利用部、
前記サービス利用部が前記サービス提供部と通信するための複数のコネクションを予め確立するコネクション確立部、
前記サービス提供部として動作するコンピュータの負荷値を検出する負荷検出部、
前記負荷検出部が検出した負荷値が増加した場合に、前記コネクション確立部によって確立されているコネクションのうち、前記サービス利用部が使用することができるコネクションの数を減少させるコネクション制御部
として機能させるプログラム。
【請求項21】
サービスを提供するサービス提供装置であって、
前記サービス提供装置が提供するサービスを利用するサービス利用装置に予め設定された、前記サービス利用装置が利用可能な複数のコネクションを、前記サービス利用装置との間で予め確立するコネクション確立部と、
前記サービス提供装置の負荷値を検出する負荷検出部と、
前記負荷検出部が検出した負荷値が増加した場合に、前記コネクション確立部によって確立されているコネクションのうち、前記サービス利用装置が使用することができるコネクションの数を減少させるコネクション制御部と
を備えるサービス提供装置。
【請求項22】
サービスを提供するサービス提供装置を制御する制御方法であって、
前記サービス提供装置が提供するサービスを利用するサービス利用装置に予め設定された、前記サービス利用装置が利用可能な複数のコネクションを、前記サービス利用装置との間で予め確立するコネクション確立段階と、
前記サービス提供装置の負荷値を検出する負荷検出段階と、
前記負荷検出段階において検出された負荷値が増加した場合に、前記コネクション確立段階において確立されたコネクションのうち、前記サービス利用装置が使用することができるコネクションの数を減少させるコネクション制御段階と
を備える制御方法。
【請求項23】
サービスを提供するサービス提供装置用のプログラムであって、前記サービス提供装置を、
前記サービス提供装置が提供するサービスを利用するサービス利用装置に予め設定された、前記サービス利用装置が利用可能な複数のコネクションを、前記サービス利用装置との間で予め確立するコネクション確立部、
前記サービス提供装置の負荷値を検出する負荷検出部、
前記負荷検出部が検出した負荷値が増加した場合に、前記コネクション確立部によって確立されているコネクションのうち、前記サービス利用装置が使用することができるコネクションの数を減少させるコネクション制御部
として機能させるプログラム。
【請求項24】
サービス提供装置が提供するサービスを利用するサービス利用装置であって、
前記サービス利用装置が前記サービス提供装置と通信するための複数のコネクションを予め確立するコネクション確立部と、
前記サービス提供装置の負荷値を取得する負荷取得部と、
前記負荷取得部が取得した負荷値が増加した場合に、前記コネクション確立部によって確立されているコネクションのうち、前記サービス利用装置が使用することができるコネクションの数を減少させるコネクション制御部と
を備えるサービス利用装置。
【請求項25】
サービス提供装置が提供するサービスを利用するサービス利用装置を制御する制御方法であって、
前記サービス利用装置が前記サービス提供装置と通信するための複数のコネクションを予め確立するコネクション確立段階と、
前記サービス提供装置の負荷値を取得する負荷取得段階と、
前記負荷取得段階において取得された負荷値が増加した場合に、前記コネクション確立段階において確立されたコネクションのうち、前記サービス利用装置が使用することができるコネクションの数を減少させるコネクション制御段階と
を備える制御方法。
【請求項26】
サービス提供装置が提供するサービスを利用するサービス利用装置用のプログラムであって、前記サービス利用装置を、
前記サービス利用装置が前記サービス提供装置と通信するための複数のコネクションを予め確立するコネクション確立部、
前記サービス提供装置の負荷値を取得する負荷取得部、
前記負荷取得部が取得した負荷値が増加した場合に、前記コネクション確立部によって確立されているコネクションのうち、前記サービス利用装置が使用することができるコネクションの数を減少させるコネクション制御部
として機能させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2009−181481(P2009−181481A)
【公開日】平成21年8月13日(2009.8.13)
【国際特許分類】
【出願番号】特願2008−21800(P2008−21800)
【出願日】平成20年1月31日(2008.1.31)
【出願人】(500438172)テックファーム株式会社 (14)