(57)【要約】【課題】１台または複数台のサーバ装置から構成されるシステムが複数存在するネットワークで、それぞれのシステムの負荷状況に応じて、システムへの過剰な負荷を分散することができるシステム分散処理装置を得ること。【解決手段】管理対象となるシステム１０−１〜１０−Ｎから受信した該システム１０−１〜１０−Ｎの処理状況を含むシステム状態情報をシステム１０−１〜１０−Ｎと対応付けたシステム情報として格納するシステム情報記憶部２２と、システム情報記憶部２２中の各システム１０−１〜１０−Ｎのシステム情報を用いて所定の基準よりも高い負荷のかかっているシステムが存在するかを判定し、所定の基準よりも負荷の高いシステムの処理要求の一部を負荷の低い他のシステムに分担させるように制御する負荷分散制御部２３と、を備える。【選択図】        図１
2007323499.tif 000002
【特許請求の範囲】
【請求項１】
同一の処理を実行する１または複数のサーバ装置を有する複数のシステムとネットワークを介して接続され、前記システムの負荷を監視して過剰な負荷のかかっているシステムの処理を他のシステムに分散させるシステム分散処理装置であって、
管理対象となる前記システムから受信した該システムの処理状況を含むシステム状態情報を前記システムと対応付けたシステム情報として格納するシステム情報記憶手段と、
前記システム情報記憶手段中の各システムのシステム情報を用いて所定の基準よりも高い負荷のかかっているシステムが存在するかを判定し、前記所定の基準よりも負荷の高いシステムの処理要求の一部を負荷の低い他のシステムに分担させるように制御する負荷分散制御手段と、
を備えることを特徴とするシステム分散処理装置。
【請求項２】
ある処理を実行する１または複数のサーバ装置を有する複数のシステムとネットワークを介して接続され、前記システムの負荷を監視して過剰な負荷のかかっているシステムの処理を他のシステムに分散させるシステム分散処理装置であって、
管理対象となる前記システムから受信した該システムの処理状況を含むシステム状態情報を前記システムと対応付けたシステム情報として格納するシステム情報記憶手段と、
前記システム情報記憶手段中の各システムのシステム情報を用いて所定の基準よりも高い負荷のかかっているシステムが存在するかを判定し、前記所定の基準よりも負荷の高いシステムの処理要求の一部を負荷の低い他のシステムに分担させるように制御する負荷分散制御手段と、
を備え、
前記負荷分散制御手段は、前記負荷の低いシステムが前記負荷の高いシステムへの処理要求に対する処理手段を有さない場合に、前記負荷の高いシステムへの処理要求を実行する処理プログラムの導入指示を前記負荷の低いシステムに対して行うプログラム導入指示機能を有することを特徴とするシステム分散処理装置。
【請求項３】
前記負荷分散制御手段は、管理対象となる全てのシステムの処理要求を監視し、負荷の高いシステムが存在する場合に、前記負荷の高いシステムへの処理要求の一部を前記負荷の低い他のシステムに送信することを特徴とする請求項１または２に記載のシステム分散処理装置。
【請求項４】
前記負荷分散制御手段は、負荷の高いシステムが存在する場合に、処理要求の分担を実行させる前記負荷の低い他のシステムを前記負荷の高いシステムに通知することを特徴とする請求項１または２に記載のシステム分散処理装置。
【請求項５】
同一の処理を実行する１または複数のサーバ装置を有する複数のシステムと、前記システムの負荷を監視して過剰な負荷のかかっているシステムの処理を他のシステムに分散させるシステム分散処理装置と、がネットワークに接続されたシステム分散処理システムであって、
前記システムは、
自システムの処理状況を監視して、所定のタイミングで前記システム分散処理装置に前記処理状況を含むシステム状態情報を送信するシステム状態通知手段と、
自システムへ処理要求を行ったクライアント端末との間の応答処理を行うシステム実行制御手段と、
自システムへの前記処理要求に対する所定の処理を実行するとともに、前記システム分散処理装置による分担制御によって受け付けた他のシステムへの処理要求に対する所定の処理を実行するシステム機能実行手段と、
を備え、
前記システム分散処理装置は、
管理対象となる前記システムから受信した前記システム状態情報をそのシステムと対応付けたシステム情報として格納するシステム情報記憶手段と、
前記システム情報記憶手段中の各システムのシステム情報を用いて所定の基準よりも高い負荷のかかっているシステムが存在するかを判定し、前記所定の基準よりも負荷の高いシステムの処理要求の一部を負荷の低い他のシステムに分担させるように制御する負荷分散制御手段と、
を備えることを特徴とするシステム分散処理システム。
【請求項６】
１または複数のサーバ装置を有する複数のシステムと、前記システムの負荷を監視して過剰な負荷のかかっているシステムの処理を他のシステムに分散させるシステム分散処理装置と、がネットワークに接続されたシステム分散処理システムであって、
前記システムは、
自システムの処理状況を監視して、所定のタイミングで前記システム分散処理装置に前記処理状況を含むシステム状態情報を送信するシステム状態通知手段と、
自システムへ処理要求を行ったクライアント端末との間の応答処理を行うシステム実行制御手段と、
自システムへの前記処理要求に対する所定の処理を実行するとともに、前記システム分散処理装置による分担制御によって受け付けた他のシステムへの処理要求に対する所定の処理を実行するシステム機能実行手段と、
を備え、
前記システム分散処理装置は、
管理対象となる前記システムから受信した前記システム状態情報をそのシステムと対応付けたシステム情報として格納するシステム情報記憶手段と、
管理対象となる前記システムが行う処理を実行するための処理プログラムを格納するプログラム保持手段と、
前記システム情報記憶手段中の各システムのシステム情報を用いて所定の基準よりも高い負荷のかかっているシステムが存在するかを判定し、前記所定の基準よりも負荷の高いシステムの処理要求の一部を負荷の低い他のシステムに分担させるように制御する負荷分散制御手段と、
を備え、
前記システム分散処理装置の前記負荷分散制御手段は、前記負荷の低いシステムが、前記負荷の高いシステムへの処理要求に対応するシステム機能実行手段を有さない場合に、前記負荷の高いシステムへの処理要求を実行するための処理プログラムの保存場所を含む前記処理プログラムの導入指示を前記負荷の低いシステムに対して行うプログラム導入指示機能を有し、
前記システムの前記システム機能実行手段は、前記システム分散処理装置による分担制御によって前記負荷の高いシステムへの処理要求を受け付けると、前記負荷の高いシステムが実現する機能を実行するための処理プログラムを前記導入指示に基づいて前記システム分散処理装置の前記プログラム保持手段から取得し、実行可能なように導入するプログラム導入機能を有することを特徴とするシステム分散処理システム。
【請求項７】
前記システムの前記システム機能実行手段は、所定の単位でまとめられた複数の機能から構成される処理プログラムを取得して実行可能に導入することを特徴とする請求項６に記載のシステム分散処理システム。
【請求項８】
前記システムの前記システム機能実行手段は、
前記処理プログラム中のある機能を実現するための機能別プログラムに基づいた処理を実行する機能実行機能と、
前記処理プログラム中の前記機能別プログラムを管理する共通プログラムに基づいた処理を実行する機能実行制御機能と、
前記システム分散処理装置による分担制御によって前記負荷の高いシステムへの処理要求を受け付けると、前記負荷の高いシステムへの処理要求を実行するための機能別プログラムを前記導入指示に基づいて取得し、実行可能なように導入するプログラム導入機能と、
を有することを特徴とする請求項６に記載のシステム分散処理システム。
【請求項９】
前記システムの前記システム機能実行手段を構成する処理プログラムは、そのシステム機能実行手段による処理が開始される前に、またはその処理が実行開始時に実行可能となるタイミングで導入されることを特徴とする請求項６〜８のいずれか１つに記載のシステム分散処理システム。
【請求項１０】
前記システム分散処理装置の前記負荷分散制御手段は、管理対象となる全てのシステムの処理要求を監視し、負荷の高いシステムが存在する場合に、前記負荷の高いシステムへの処理要求の一部を前記負荷の低い他のシステムに渡すことを特徴とする請求項５〜９のいずれか１つに記載のシステム分散処理システム。
【請求項１１】
前記システム分散処理装置の前記負荷分散制御手段は、負荷の高いシステムが存在する場合に、前記負荷の高いシステムに処理要求の分担を実行させる前記負荷の低い他のシステムを通知し、
前記システムの前記システム実行制御手段は、受信した処理要求の一部を前記システム分散処理装置から通知された前記負荷の低い他のシステムへ送信する機能をさらに備えることを特徴とする請求項５〜９のいずれか１つに記載のシステム分散処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のシステムが同時に稼動しているネットワークの負荷分散を行うシステム分散処理装置およびシステム分散処理システムに関するものである。
【背景技術】
【０００２】
従来、クライアント端末とサーバ装置とが、インタネットなどのネットワークを介して接続されたシステムにおいて、クライアント端末からあるサーバ装置へのアクセスが集中した場合に、そのサーバ装置の負荷を軽減するための負荷分散方法が提案されている。このような技術として、たとえば、複数のＷｅｂサーバとデータベースサーバとが専用回線を介して接続されるネットワークと、クライアント端末が接続されるインタネットなどのネットワークとが、ファイアウォールとルータを備える割振部によって接続された負荷分散システムで、ルータはＷｅｂサーバのそれぞれに対して予め決定された優先順位テーブルを記憶し、各Ｗｅｂサーバが稼働中か停止中かを把握して、クライアント端末からのリクエストを、稼働中のＷｅｂサーバの中で優先順位テーブル中の優先順位が最も高いＷｅｂサーバに割り振る負荷分散方法が提案されている（たとえば、特許文献１参照）。
【０００３】
【特許文献１】特開２００４−１９２４４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の負荷分散は、上記特許文献１に示したように負荷分散処理を実施したり、予め決められた順序にしたがって処理を振り分けたり、あるいは、ある条件の下で処理を振り分けたり、という処理を単一のシステム内の同じアプリケーションの間で実施していた。この場合、システム利用のピーク時において、システムを構成するそれぞれのサーバ装置の処理が飽和すると、それ以上処理を受け付けることができず、実質的にシステムを利用することができない状態となるという問題点があった。また、システム利用のピーク時を想定したシステム構成とすると、定常状態では、ＣＰＵやメモリなどのコンピュータリソースが十分に活用されない状態となり、設備の利用効率の低下につながり、投資が十分に活用されなくなるという問題点もあった。
【０００５】
さらに、特定のアプリケーションや機能を有し、異なる処理を実行する複数のサーバ装置を有するシステムの負荷分散を行うシステムや方法については従来提案されていなかった。具体的には、従来の負荷分散システムは、１つの企業などの組織が管理する１台または複数台のサーバ装置から構成されるシステムに対して適用可能なものであった。また、このような特定のアプリケーションや機能を有し、異なる処理を実行する複数のサーバ装置を有するシステムで負荷分散を行う場合には、従来のように、それぞれのアプリケーションや機能を実行するサーバ装置の負荷分散を行うために、それぞれの処理を行うサーバ装置に対して負荷分散に必要な装置を設置しなければならなかった。つまり、多くのアプリケーションや機能を有するシステム全体の負荷分散を行うためには、莫大なコストがかかってしまうという問題点があった。
【０００６】
この発明は、上記に鑑みてなされたもので、１台または複数台のサーバ装置から構成されるシステムが複数存在するネットワークにおいて、それぞれのシステムの負荷状況に応じて、あるシステムへの過剰な負荷を分散することができるシステム分散処理装置およびシステム分散処理システムを得ることを目的とする。また、複数のアプリケーションや機能を有し、異なる処理を実行する複数のサーバ装置を有するシステムに対して、負荷分散にかけるコストを低く抑えることができるシステム分散処理装置およびシステム分散処理システムを得ることも目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、この発明にかかるシステム分散処理装置は、同一の処理を実行する１または複数のサーバ装置を有する複数のシステムとネットワークを介して接続され、前記システムの負荷を監視して過剰な負荷のかかっているシステムの処理を他のシステムに分散させるシステム分散処理装置であって、管理対象となる前記システムから受信した該システムの処理状況を含むシステム状態情報を前記システムと対応付けたシステム情報として格納するシステム情報記憶手段と、前記システム情報記憶手段中の各システムのシステム情報を用いて所定の基準よりも高い負荷のかかっているシステムが存在するかを判定し、前記所定の基準よりも負荷の高いシステムの処理要求の一部を負荷の低い他のシステムに分担させるように制御する負荷分散制御手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
この発明によれば、複数のシステムがそれぞれ別のサーバ装置（コンピュータ）で動作している場合に、それぞれのシステムの負荷状況のピークが異なることが予見されることを利用して、負荷の低い方のシステムのコンピュータリソースを負荷の高い方のシステムのサーバ装置で利用可能な構成としたので、負荷のピークに合わせたシステム設備とする必要がなくなり、そのための設備投資を低減することができるという効果を有する。また、管理対象内のサーバ装置が停止した場合でも、他の残りのサーバ装置で処理を引継ぎ、かつ同等の処理性能を維持できるという効果も有する。
【発明を実施するための最良の形態】
【０００９】
以下に添付図面を参照して、この発明にかかるシステム分散処理装置およびシステム分散処理システムの好適な実施の形態を詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
【００１０】
実施の形態１．
図１は、この発明にかかるシステム分散処理システムの構成を模式的に示すブロック図である。このシステム分散処理システムは、同一種類の処理（機能）を実行する１台または複数台のサーバ装置を有する複数のシステム１０−１〜１０−Ｎ（Ｎは自然数）と、分散処理の管理対象となるシステムの負荷の分散を行うシステム分散処理装置２０と、がインタネットなどのネットワーク３０を介して接続される。なお、図示していないが、ネットワークにはクライアント端末も接続され、クライアント端末は、各システム１０の有するサーバ装置にアクセスして、必要な情報を入手したり、必要な処理を実行させたりする。なお、ここでは、システム分散処理装置２０が管理するシステムはＮ台（Ｎは自然数）であるとする。
【００１１】
システム１０−１〜１０−Ｎは、１台または複数台のサーバ装置からなるが、図では、システム１０−１〜１０−Ｎが有するサーバ装置の機能をまとめたものを１台の仮想的なサーバ装置として図示している。このシステム１０−１〜１０−Ｎを構成する各サーバ装置は、アプリケーションまたは機能ごとに設けられる情報処理端末であり、Ｗｅｂサーバ、データベースサーバ、メールサーバなどの各種のサーバ装置を例示することができる。この実施の形態１では、各システム１０−１〜１０−Ｎは、それぞれ同一の機能を実現するシステムであるとする。このシステム１０−１〜１０−Ｎは、システム実行制御部１１と、システム機能実行部１２と、システム状態通知部１３と、を備える。
【００１２】
システム実行制御部１１は、システム１０を利用するクライアント端末からサーバ装置（システム１０）への処理要求やサーバ装置（システム１０）からクライアント端末への出力応答を制御する。
【００１３】
システム機能実行部１２は、クライアント端末からの自システム宛ての処理要求に対応する機能（処理）を実行する。通常は、システム設計者によって所定の機能を実行するプログラムが導入されており、このプログラムに基づいてクライアント端末からの処理要求を実行する。また、システム機能実行部１２は、システム分散処理装置２０から負荷が過剰にかかった他のシステム宛ての処理要求を渡されると、その処理要求に対応する機能（処理）も実行する。なお、この実施の形態１では、どのシステム１０−１〜１０−Ｎも同一の機能を有するため、他のシステム宛の処理要求をそれぞれのシステム１０−１〜１０−Ｎのシステム機能実行部１２で実行することができる。
【００１４】
システム状態通知部１３は、自システムのシステム処理状況を監視し、たとえば所定の時間ごとに、監視したシステム処理状況をシステム状態情報としてシステム分散処理装置２０に通知する。システム状態情報は、システム機能の総アクセス数や単位時間当たりのアクセス数、アクセスに対する応答時間の統計情報、実行プロセス数、ＣＰＵ（Central Processing Unit）負荷状況（ロードアベレージ）、メモリ使用量、ディスク使用量を含む情報からなる。
【００１５】
システム分散処理装置２０は、自装置が管理するシステム１０−１〜１０−Ｎの負荷状態を監視し、システム全体および個々のシステムの状態が負荷と判定される所定の条件を満たす場合に、処理を分散させて実行するようにシステムに対して指示する装置であり、システム状態管理部２１と、システム情報記憶部２２と、負荷分散制御部２３と、を備える。
【００１６】
システム状態管理部２１は、自装置が管理するシステム１０−１〜１０−Ｎから送信されるシステム状態情報を受信し、システム情報記憶部２２に格納する。なお、システム状態管理部２１は、システム状態情報をシステム情報記憶部２２中に過去の情報を消さずに、追加する形で格納していくものとする。
【００１７】
システム情報記憶部２２は、自装置が管理するシステム１０−１〜１０−Ｎについてのシステム情報と、システム情報に対して負荷分散が必要か否かを判定する負荷判定情報と、格納する。システム情報は、上記システム状態情報に加えて、システムが利用可能な最大の利用者数である最大利用ユーザ数、ＣＰＵの性能、ＣＰＵ搭載数、メモリ容量を含み、システム１０ごとに管理される情報である。すなわち、システム情報は、システムを識別するシステム識別情報、システム機能の総アクセス数や単位時間当たりのアクセス数、最大利用ユーザ数、アクセスに対する応答時間の統計情報、実行プロセス数、ＣＰＵの性能、ＣＰＵ搭載数、ＣＰＵ負荷状況（ロードアベレージ）、メモリ容量、メモリ使用量、ディスク使用量を含む。なお、最大利用ユーザ数やＣＰＵ性能、ＣＰＵ搭載数、メモリ容量の項目には、初期状態としてシステム管理者などによって予め入力されるものである。他の項目には、システム１０−１〜１０−Ｎから受信したシステム状態情報の対応する項目の内容が入力される。
【００１８】
また、負荷判定情報は、システム情報の各項目を用いて、負荷の状況を判定するための情報であり、たとえば上記システム情報の項目ごとに設けられる負荷分散が必要と判定される閾値であったり、上記システム情報中の複数の項目がどのような条件のときに負荷分散が必要であるかを判定する判定条件であったりする。たとえば、ＣＰＵ負荷状況が、負荷分散が必要とされる閾値以上の値を示し、かつ単位時間当たりのアクセス数とメモリ使用量が負荷分散を必要とする閾値以上の場合には負荷分散を行う、というような判定条件が格納される。
【００１９】
負荷分散制御部２３は、システム情報記憶部２２に格納されるシステム情報を負荷判定情報と比較して、各システムについて負荷分散が必要か否かを判定し、負荷分散が必要な場合には、その負荷分散が必要なシステムが行う処理の一部を他のシステム（以下、分担先システムという）に実行させるように処理要求の制御を実行する。具体的には、判定の結果、負荷が過剰にかかっているシステムが存在する場合には、そのシステムへの処理要求を分担させる分担先システムを決定し、この分担先システムに処理を分担させるための処理分担要求を送信した後、管理対象下のシステムに送信される処理要求のうち負荷分散が必要なシステム宛ての処理要求の一部を分担先システムに送信する処理を行う。
【００２０】
負荷分散制御部２３は、分担先システム決定条件に基づいて分担先システムを決定する。この分担先システム決定条件としては、たとえば負荷判定情報中の閾値から負荷がかかっていないと判定される方向の偏差が最も大きいシステムまたは閾値からの偏差が最も大きいシステムから所定の数のシステムを、負荷分散を行う分担先システムとするものでもよい。他の分担先システム決定条件の例としては、システム情報記憶部２２に格納される過去の各システムについてのＣＰＵ性能／ＣＰＵ使用率、メモリ容量／メモリ使用率、ＣＰＵ搭載数／ロードアベレージなどの負荷情報の統計情報を用いて、そのＣＰＵ性能の大きさ、ＣＰＵ使用率の低さ、ロードアベレージの低さなどによって、負荷に最もゆとりのあるシステムを分担先システムとして決定するものであってもよい。また、システム情報記憶部２２に日次／週次／月次／年次などの単位で格納される各システムの負荷のピークを用いて、負荷のピークから最も離れているシステムを分担先システムとして選択するものであってもよい。いずれも分担先システム決定条件の一例であり、他の条件によって分担先システムを決定してもよい。
【００２１】
つぎに、このような構成を有するシステム分散処理システムの負荷分散処理の手順の一例について、図２のフローチャートを参照しながら説明する。まず、システム管理者によって、システム分散処理装置２０のシステム情報記憶部２２に、当該システム分散処理装置２０で管理するシステム１０−１〜１０−Ｎのシステム情報を格納する。具体的には、システム情報記憶部２２のシステム情報に初期値を設定する（ステップＳ１１）。これは、システム分散処理装置２０の負荷分散制御部２３が、負荷状況の開始とともに全てのシステムについて負荷が必要となる判定をしてしまうことを防ぐための処理である。その後、負荷分散制御部２３は、管理対象のシステムについての負荷分散制御を開始する（ステップＳ１２）。なお、このときシステム分散処理装置２０は、管理対象のシステムに対して、負荷分散制御を開始する旨の信号を送信するものとする。
【００２２】
一方、各システム１０−１〜１０−Ｎのシステム状態通知部１３は、システム分散処理装置２０から負荷分散制御を開始する旨の信号を受信すると、各システム１０−１〜１０−Ｎの負荷状態の監視を始める（ステップＳ１３）。この間に、クライアント端末から処理要求を受信すると、その処理要求にしたがって、システム実行制御部１１は所定の処理を実行する。
【００２３】
その後、システム状態通知部１３は、システム分散処理装置２０による負荷分散制御の開始から所定の時間が経過したかを判定する（ステップＳ１４）。所定の時間が経過していない場合（ステップＳ１４でＮｏの場合）には、所定の時間が経過するまで引き続きシステム１０−１〜１０−Ｎの負荷状態を監視する。所定の時間が経過すると（ステップＳ１４でＹｅｓの場合）、システム状態通知部１３は、監視してきたシステム状態をシステム状態情報としてネットワーク３０を介して負荷分散制御部２３へと送信する（ステップＳ１５）。
【００２４】
システム分散処理装置２０のシステム状態管理部２１は、各システム１０−１〜１０−Ｎから受信したシステム状態情報にそのシステムのシステム識別情報を付加してシステム情報記憶部２２のシステム情報に格納する（ステップＳ１６）。ついで、システム分散処理装置２０の負荷分散制御部２３は、システム情報記憶部２２に記憶された各システム情報について、負荷判定情報を用いて負荷分散が必要か否かを判定する（ステップＳ１７）。具体的には、負荷分散が必要であるとされる負荷判定情報に該当するシステムが存在するかを、各システムについて判定していく。その結果、負荷分散が必要ない場合（ステップＳ１７でＮｏの場合）にはステップＳ１６へと戻り、負荷分散制御部２３は、つぎに各システムから送信されるシステム状態情報の受信を待つ。
【００２５】
一方、ステップＳ１７で負荷分散が必要な場合（ステップＳ１７でＹｅｓの場合）には、その負荷分散が必要なシステムを抽出するとともに、負荷が負荷判定条件を満たさないシステムのうち分担先システム決定条件に基づいて最も負荷が低いシステムを分担先システムとして抽出する（ステップＳ１８）。ついで、負荷分散制御部２３は、抽出した分担先システムに対して、負荷が過剰にかかっているシステムの処理の分担を実行するように処理分担要求を送信する（ステップＳ１９）。その後、負荷分散制御部２３は、管理下にあるシステム１０−１〜１０−Ｎへの処理要求を監視し、負荷が過剰にかかっていると判定されたシステムへの処理要求を、分担先システムへと送信する（ステップＳ２０）。
【００２６】
システム分散処理装置２０から処理分担要求を受信した分担先システムは、負荷が過剰にかかっているシステムの処理要求の受付をシステム実行制御部１１を通じて開始する（ステップＳ２１）。ついで、その分担先システムのシステム機能実行部１２は、システム分散処理装置２０から受信した処理要求に対応する機能を実行し、システム実行制御部１１を介して、その結果を処理要求を出したクライアント端末に返送し、分散処理を実行する（ステップＳ２２）。その後、ステップＳ１３へと戻り、上述した処理が繰り返し実行される。なお、ステップＳ１５でシステム状態情報を送信した後、分担先システムとして選択されなかった他のシステムは、通常通りに、自システム宛ての処理要求の処理を実行し（ステップＳ２３）、ステップＳ１３へと戻り上述した処理が繰り返し実行される。以上が、システム分散処理システムにおける負荷分散処理時の動作手順である。
【００２７】
上述した説明では、システム分散処理装置２０の負荷分散制御部２３によって負荷分散が必要とされた場合に、負荷分散制御部２３が、ネットワーク３０上の管理対象のシステム１０−１〜１０−Ｎに対する処理要求を監視し、上記の負荷判定によって負荷分散が必要なシステムへの処理要求の一部を、分担先システムへ直接送信する場合を例に挙げたが、負荷分散制御部２３が、負荷分散が必要なシステムに対して、処理の分担を行う分担先システムを分担先システム情報として通知し、負荷分散が必要なシステムのシステム実行制御部１１が、その分担先システム情報で指示された分担先システムのシステム実行制御部１１に対して処理要求を受け渡すようにしてもよい。
【００２８】
この実施の形態１によれば、同一の処理を行う複数のシステムをまとめてシステム分散処理装置２０で管理し、このシステム分散処理装置２０によって管理されるシステム１０−１〜１０−Ｎ内の負荷の低いシステムのコンピュータリソースを負荷の高いシステムのコンピュータへの処理要求に対して利用可能とすることで、それぞれのシステムの負荷状況のピークが異なることが予見され、負荷のピーク時に合わせたシステム設備を構築する必要がなくなる。その結果、信頼性のあるシステムを管理、運営する組織の設備投資を低減することができるという効果を有する。特に、同一の機能を実現する複数のシステムを多数管理することによって、１つのシステムにかかる負荷を分散させる確率を高めることが可能となる。また、管理対象内のシステムが停止した場合でも、他の残りのシステムで処理を引継ぎ、かつ同等の処理性能を維持できるという効果も有する。
【００２９】
実施の形態２．
実施の形態１では、異なる組織によって運営されるが同一の機能（処理）を実行する複数のシステムの負荷を監視し、あるシステムの負荷が所定の条件を超えた場合に、システムの負荷が低い分担先システムに過剰な負荷がかかっているシステムへの処理要求の一部を分担させるようにしたが、このような構成では、同一の機能（処理）を実行するシステム同士でしか負荷の分散を行うことができない。そこで、この実施の形態２では、異なる機能（処理）を実行するシステム間でも負荷の分散を行うことができるシステム分散処理システムおよびシステム分散処理装置について説明する。
【００３０】
図３は、この発明にかかるシステム分散処理システムの実施の形態２の構成を模式的に示すブロック図である。このシステム分散処理システムは、１種類または種類の異なる処理（機能）を実行する１台または複数台のサーバ装置を有する複数のシステム１０−１〜１０−Ｎと、分散処理の管理対象となるシステム１０−１〜１０−Ｎの負荷の分散を行うシステム分散処理装置２０と、がインタネットなどのネットワーク３０を介して接続される。なお、図示していないが、ネットワーク３０にはクライアント端末も接続され、クライアント端末は、各システム１０−１〜１０−Ｎの有するサーバ装置にアクセスして、必要な情報を入手したり、必要な処理を実行させたりする。なお、ここでは、システム分散処理装置２０が管理するシステム１０−１〜１０−ＮはＮ台（Ｎは自然数）であるとする。
【００３１】
システム分散処理装置２０によって管理されるそれぞれのシステム１０−１〜１０−Ｎは、みな同一の機能（処理）を実行するシステムである必要はなく、異なる機能（処理）を実行することができるシステムでよい。つまり、この実施の形態２では、システム１０−１〜１０−Ｎごとにシステム機能実行部１２が異なる機能を実現するものであってもよい。また、システム機能実行部１２は、実施の形態１のシステム機能実行部１２において、システム分散処理装置２０から負荷の分散処理を依頼された場合に、その処理を自システムで実行するためにプログラム導入機能１２１をさらに備える構成となっている。
【００３２】
このプログラム導入機能１２１は、システム分散処理装置２０によって、負荷が過剰なシステムが実行する処理を分担する分担先システムとして指定された場合であって、負荷が過剰なシステムが実行する処理プログラムが自システムに導入されていないときに、システム分散処理装置２０のプログラム保持部２４から該当する処理プログラムを取得し、自システム内に導入する処理を行う。これによって、負荷が過剰なシステムが実行する処理プログラムが自システム内（システム機能実行部１２内）に存在しない場合でも、そのシステムの処理を分担して実行することが可能となる。
【００３３】
また、システム分散処理装置２０は、実施の形態１のシステム分散処理装置２０において、自装置が管理するシステム１０−１〜１０−Ｎが使用する処理プログラムを保持するプログラム保持部２４をさらに備え、負荷分散制御部２３は、負荷分散を行う際に分担先システムが分担する処理を実行する処理プログラムを有さない場合に必要な処理プログラムを導入（インストール）するように分担先システムに対して指示するプログラム導入指示機能２３１をさらに備える。なお、実施の形態１で説明したシステムとシステム分散処理装置２０と同一の構成要素には、同一の符号を付して、その説明を省略している。
【００３４】
つぎに、このような構成を有するシステム分散処理システムの負荷分散処理の手順の一例について、図４のフローチャートを参照しながら説明する。実施の形態１の図２のステップＳ１１〜Ｓ１８と同様の処理を行って、システム分散処理装置２０の負荷分散制御部２３は、過剰な負荷がかかったシステムが存在する場合に、分担処理が必要なシステムと、その負荷を分担させる分担先システムを抽出する（ステップＳ５１〜Ｓ５８）。すなわち、システム分散処理装置２０のシステム情報記憶部２２に自装置で管理するシステム１０−１〜１０−Ｎのシステム情報の初期値が設定されると、負荷分散制御部２３は負荷分散制御を開始する。負荷分散制御部２３は、各システム１０−１〜１０−Ｎのシステム状態通知部１３からシステム状態情報を受信すると、各システム情報について負荷判定情報を用いて負荷分散が必要か否かを判定する。負荷分散が必要である場合には、その負荷分散が必要なシステムを抽出するとともに、負荷が負荷判定条件を満たさないシステムのうち分担先システム決定条件に基づいて最も負荷の低いシステムを分担先システムとして抽出する。
【００３５】
ついで、負荷分散制御部２３は、抽出した分担先システムに対して、負荷が過剰にかかっているシステムの処理の分担を実行するように処理分担要求を送信する（ステップＳ５９）。この処理分担要求には、分担する処理プログラム名などの処理内容が含まれているものとする。処理分担要求を受信した分担先システムのシステム実行制御部１１は、処理分担要求中の処理内容を自システムで実行できるか否かを判定する（ステップＳ６０）。判定の結果、自システムで実行できない場合（ステップＳ６０でＮｏの場合）には、システム実行制御部１１は、システム分散処理装置２０に対して、処理プログラムがないことを示す処理プログラム入手要求を送信する（ステップＳ６１）。
【００３６】
システム分散処理装置２０の負荷分散制御部２３のプログラム導入指示機能２３１は、分担先システムから処理プログラム入手要求を受信すると（ステップＳ６２）、その処理プログラムの存在場所を示す処理プログラム格納情報を分担先システムに通知する（ステップＳ６３）。この処理プログラム格納情報は、たとえば、処理プログラムのプログラム保持部２４内の格納場所を示すＵＲＬ（Uniform Resource Locator）などである。分担先システムのシステム機能実行部１２のプログラム導入機能１２１は、受信した処理プログラム格納情報に基づいて処理プログラムを取得（ダウンロード）し（ステップＳ６４）、処理プログラムを自システムに導入して実行可能な状態にする（ステップＳ６５）。その後またはステップＳ６０で自システムで処理分担要求中の処理内容を実行できる場合（ステップＳ６０でＹｅｓの場合）には、システム機能実行部１２は、処理プログラムを実行可能な状態にしたことを示す処理プログラム導入完了通知をシステム分散処理装置２０に対して送信する（ステップＳ６６）。その後、分担先システムは、負荷が過剰にかかっているシステムの処理要求の受付をシステム実行制御部１１を通じて開始する（ステップＳ６７）。
【００３７】
一方、システム分散処理装置２０の負荷分散制御部２３は、分担先システムから処理プログラム完了通知を受信すると（ステップＳ６８）、監視中の管理下にあるシステム１０−１〜１０−Ｎへの処理要求のうち負荷が過剰にかかっていると判定されたシステムへの処理要求の一部を、分担先システムへと送信する（ステップＳ６９）。分担先システムのシステム機能実行部１２は、システム分散処理装置２０から受信した処理要求に対応する機能を実行し、システム実行制御部１１を介してその結果を処理要求を出したクライアント端末に返送し、分散処理を実行する（ステップＳ７０）。その後、ステップＳ５３へと戻り、上述した処理が繰り返し実行される。なお、ステップＳ５５でシステム状態情報を送信した後、分担先システムとして選択されなかった他のシステムは、通常通りに、自システム宛ての処理要求の処理を実行し（ステップＳ７１）、ステップＳ５３へと戻り上述した処理が繰り返し実行される。
【００３８】
なお、上述した説明では、ステップＳ６０で分担先システムのシステム実行制御部１１が分担する処理を実行可能か否かを判断するようにしているが、システム分散処理装置２０の負荷分散制御部２３が分担先システムがその判断を実行するようにしてもよい。この場合、システム情報記憶部２２のシステム情報には、実施の形態１で説明した項目に加え、各システム１０−１〜１０−Ｎ内に導入されている処理プログラム名が含まれる必要があり、負荷分散制御部２３が分担先システムの実行制御部が分担する処理を実行可能か否かを判断するようにすればよい。そして、判断の結果、分担先システムが処理を実行できない場合には、負荷分散制御部２３のプログラム導入指示機能２３１が、負荷分散が必要なシステムの処理を行うために必要な処理プログラムをプログラム保持部２４から検索し、その処理プログラムを分担先システムに通知すればよい。
【００３９】
また、上述した説明では、ステップＳ６４で分担先システムがシステム分散処理装置２０から処理プログラム格納情報に基づいて処理プログラムをダウンロードするようにしているが、システム分散処理装置２０が分担先システムに対して、処理プログラム格納情報に代えて処理プログラムを送信するようにしてもよい。
【００４０】
この実施の形態２によれば、異なる機能を実行する複数のシステムでシステム処理分散システムが構成されるでも、負荷の高いシステムで行っている処理と同じ処理プログラムを、負荷の低いシステムに導入して実行可能とすることで、負荷のピーク時に合わせたシステム設備を構築する必要がなくなり、そのためのシステムを管理、運営する組織の設備投資を低減することができるという効果を有する。これにより、汎用性の高い負荷分散を行うシステムを提供することができるという効果を有する。
【００４１】
実施の形態３．
実施の形態２では、分担先システムが分担する処理を実行できない場合に、その処理を行うための処理プログラムを自システム内に導入する場合を説明した。この実施の形態３では、さらに細かい単位で、処理プログラムを導入することができる場合について説明する。
【００４２】
たとえば、複数種類の処理プログラムを比較すると、異なる種類の処理プログラム間で共通の機能を有するプログラム部分と、その処理プログラムで特有の機能を有するプログラム部分と、を有する場合がある。そのため、この実施の形態３では、処理プログラムを、機能別プログラムを管理する共通プログラムと、その共通プログラム上で動作する機能別プログラムと、に分離して作製するようにしている。
【００４３】
図５は、各システムのシステム機能実行部の実施の形態３の機能構成を模式的に示すブロック図である。このシステム機能実行部１２は、複数の機能を実行するための処理プログラムが共通に持つプログラム部分（共通プログラム）を実行するための機能実行制御機能１２２と、機能実行制御機能１２２上で各処理プログラムが個々に持つ機能を実行するプログラム部分（機能別プログラム）を実行するための機能実行機能１２３と、機能実行機能１２３に対応する各処理プログラムの導入処理を行うプログラム導入機能１２１と、から構成される。
【００４４】
たとえば、機能実行制御機能１２２は、Ｗｅｂシステムのミドルウェアであるアプリケーションサーバとし、機能実行機能１２３はアプリケーションサーバ上に配備された個々のアプリケーションと考えることができる。
【００４５】
この実施の形態３による負荷分散処理における処理手順は、あるシステムが分担先システムとして他のシステムの処理を分担するように要求された場合に、その分担先システムのシステム機能実行部１２中に、自システム内に要求された処理を実行する機能実行機能１２３が存在するか否かを判定し、存在しない場合には要求された処理を実行する機能実行機能１２３に対応する機能別プログラムをダウンロードして実行可能な状態とする点が実施の形態２と異なる部分である。なお、その他の部分は同一であるので、その説明を省略する。
【００４６】
この実施の形態３によれば、各システムで実行される処理プログラムをさらに細かな単位で管理するようにしたので、処理プログラム（機能別プログラム）のサイズを小さくすることができ、分担先システムが処理プログラムをシステム分散処理装置２０のプログラム保持部２４から取得する時間を短くするとともに、システムへの導入時間も短縮することができる。その結果、負荷が過剰にかかっているシステムに対する処理要求の分担処理を速やかに実施することができるという効果を有する。
【００４７】
なお、実施の形態２，３において、分担先システムのシステム機能実行部１２を構成する処理プログラムは、そのシステム機能実行部１２による処理が開始される前に、またはその処理が実行開始時に実行可能となるタイミングで導入されている必要がある。
【産業上の利用可能性】
【００４８】
以上のように、本発明にかかるシステム分散処理システムは、システムに対して負荷がかかった場合にその負荷を分散させる場合に有用である。
【図面の簡単な説明】
【００４９】
【図１】この発明によるシステム分散処理システムの構成を模式的に示すブロック図である。
【図２】システム分散処理システムの負荷分散処理の手順の一例を示すフローチャートである。
【図３】この発明によるシステム分散処理システムの実施の形態２の構成を模式的に示すブロック図である。
【図４】システム分散処理システムの負荷分散処理の手順の一例を示すフローチャートである。
【図５】各システムのシステム機能実行部の実施の形態３の機能構成を模式的に示すブロック図である。
【符号の説明】
【００５０】
１０−１〜１０−Ｎ  システム
１１  システム実行制御部
１２  システム機能実行部
１３  システム状態通知部
２０  システム分散処理装置
２１  システム状態管理部
２２  システム情報記憶部
２３  負荷分散制御部
２４  プログラム保持部
３０  ネットワーク
１２１  プログラム導入機能
１２２  機能実行制御機能
１２３  機能実行機能
２３１  プログラム導入指示機能
【図１】
2007323499.tif 000003
【図２】
2007323499.tif 000004
【図３】
2007323499.tif 000005
【図４】
2007323499.tif 000006
【図５】
2007323499.tif 000007