(57)【特許請求の範囲】
【請求項１】
管理サーバとネットワークに接続された複数の実行サーバからなるシステムであって、
前記実行サーバは、
オブジェクトの取得要求を前記管理サーバに出すと共に、前記管理サーバから受け取ったオブジェクトの実行結果を前記管理サーバに返却する通信制御部と、
前記管理サーバから受け取ったオブジェクトを実行するオブジェクト管理部を有し、
前記管理サーバは、
特定の実行サーバでしか動作できないオブジェクトを管理する優先キュー管理手段と    、
任意の実行サーバで動作できるオブジェクトを管理する一般キュー管理手段と、
（１）前記実行サーバからのオブジェクトの取得要求に対して、前記優先キュー管理手段に特定の実行サーバでしか動作できないオブジェクトがあれば、該オブジェクトを前記実行サーバに渡し、前記優先キュー管理手段に特定の実行サーバでしか動作できないオブジェクトがなければ、前記一般キュー管理手段のオブジェクトを前記実行サーバに渡し、（２）前記実行サーバから前記実行結果を受け取る通信制御部と、
を備えたことを特徴とする負荷分散システム。
【請求項２】
前記実行サーバは、自己の負荷が軽くなったことを検出すると前記管理サーバにオブジェクトの取得要求を出す負荷管理部を有することを特徴とする請求項１記載の負荷分散システム。
【請求項３】
前記管理サーバは、抽象言語からなるオブジェクトを実行サーバが実行できる資源に変換する変換手段を備えたことを特徴とする請求項１または２記載の分散処理システム。
【請求項４】
前記管理サーバは、前記オブジェクトの順序を管理するスケジュール制御部を有することを特徴とする請求項１、２または３記載の分散処理システム。
【請求項５】
管理サーバとネットワークに接続された複数の実行サーバからなるシステムを機能させるためのプログラムを記録したコンピュータ読取可能な記録媒体であって、
前記実行サーバを、
オブジェクトの取得要求を前記管理サーバに出すと共に、前記管理サーバから受け取ったオブジェクトの実行結果を前記管理サーバに返却する通信制御部、
前記管理サーバから受け取ったオブジェクトを実行するオブジェクト管理部として機能させ、
前記管理サーバを、
特定の実行サーバでしか動作できないオブジェクトを管理する優先キュー管理手段    、
任意の実行サーバで動作できるオブジェクトを管理する一般キュー管理手段、
（１）前記実行サーバからのオブジェクトの取得要求に対して、前記優先キュー管理手段に特定の実行サーバでしか動作できないオブジェクトがあれば、該オブジェクトを前記実行サーバに渡し、前記優先キュー管理手段に特定の実行サーバでしか動作できないオブジェクトがなければ、前記一般キュー管理手段のオブジェクトを前記実行サーバに渡し、（２）前記実行サーバから前記実行結果を受け取る通信制御部、
として機能させるためのプログラムを記録したコンピュータ読取可能な記録媒体。  
【請求項６】
前記実行サーバを、自己の負荷が軽くなったことを検出すると前記管理サーバにオブジェクトの取得要求を出す負荷管理部として機能させるためのプログラムを記録した請求項５記載のコンピュータ読取可能な記録媒体。
【請求項７】
前記管理サーバを、前記オブジェクトの順序を管理するスケジュール制御部として機能させるためのプログラムを記録した請求項５または６記載のコンピュータ読取可能な記録媒体。
【請求項８】
管理サーバとネットワークに接続された複数の実行サーバからなるシステムにおける負荷分散方法であって、
前記実行サーバの通信制御部では、オブジェクトの取得要求を前記管理サーバに出すと共に、前記管理サーバから受け取ったオブジェクトの実行結果を前記管理サーバに返却し、
前記実行サーバのオブジェクト管理部では、前記管理サーバから受け取ったオブジェクトを実行し、
前記管理サーバの優先キュー管理手段では、特定の実行サーバでしか動作できないオブジェクトを管理し、
前記管理サーバの一般キュー管理手段では、任意の実行サーバで動作できるオブジェクトを管理し、
前記管理サーバの通信制御部では、（１）前記実行サーバからのオブジェクトの取得要求に対して、前記優先キュー管理手段に特定の実行サーバでしか動作できないオブジェクトがあれば、該オブジェクトを前記実行サーバに渡し、前記優先キュー管理手段に特定の実行サーバでしか動作できないオブジェクトがなければ、前記一般キュー管理手段のオブジェクトを前記実行サーバに渡し、（２）前記実行サーバから前記実行結果を受け取る、
ことを特徴とする負荷分散方法。  
【請求項９】
前記実行サーバの負荷管理部では、自己の負荷が軽くなったことを検出すると前記管理サーバにオブジェクトの取得要求を出すことを特徴とする請求項８記載の負荷分散方法。
【請求項１０】
前記管理サーバのスケジュール制御部では、前記オブジェクトの順序を管理するスケジュール制御部を有することを特徴とする請求項８または９記載の負荷分散処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はネットワーク上に分散されたシステムに係わり、分散されたネットワークのシステムについて最適な負荷分散を行う方式に関する。
【０００２】
【従来の技術】
図８は従来の負荷分散の方式である。例えば、サーバで実行する資源を管理する管理サーバと実際に管理サーバで管理されている資源（例えば、ジョブ）を実行する実行サーバから構成され、管理サーバから実行サーバの負荷状況の問合せを行い（矢印８１）、実行サーバからの負荷状況の回答（矢印８２）が、実行可能（実行の余裕あり）であれば、管理サーバはオブジェクト（ジョブ等）を実行サーバへ転送（矢印８３）し、実行サーバでオブジェクトを実行する。実行結果は、実行サーバから管理サーバに転送（矢印８４）され管理サーバで管理される。以上説明したように、管理サーバ主導で実行サーバと会話しながら負荷分散を実現するため、ネットワーク上に実行サーバが増えたときに管理サーバの負担が大きくなり、管理サーバが負荷分散のネックになる場合もでてくる。
【０００３】
【発明が解決しようとする課題】
従来の方法では、管理サーバが主導で負荷分散を行っており、ネットワークが拡大し実行サーバが増えると管理サーバの負荷が増大し、管理サーバがネックになり負荷分散が思うようにできなくなる場合がある。
本発明では、このような点に鑑みてなされたものであり、実行サーバ主導で負荷分散を行うことにより、管理サーバの負担を軽減することにより大規模なネットワーク上での負荷分散を行うことを目的とする。
【０００４】
【課題を解決するための手段】
図１は上記目的を達成する本発明の原理図である。実行サーバＭ１０は、オブジェクト管理簿Ｏ１０、オブジェクト登録部Ａ１０、オブジェクト管理部Ｃ１０、実行制御部Ｅ１０、オブジェクト変換部Ｒ１０、通信制御部Ｔ１０から構成される。また、管理サーバＭ１１は通信制御部Ｔ１１、スケジュール制御部Ｓ１１、優先制御部Ｐ１１、オブジェクト管理部Ｃ１１、オブジェクト登録部Ａ１１、オブジェクト管理簿Ｏ１１から構成され、実行サーバＭ１０と管理サーバＭ１１はネットワーク（ＬＡＮ等）で接続される。上記構成によれば、管理サーバＭ１１のオブジェクト登録部Ａ１１を利用してオブジェクト（抽象化したジョブやジョブで利用するデータやファイル）をオブジェクト管理簿Ｏ１１に登録する。
【０００５】
実行サーバＭ１０の実行制御部Ｅ１０は、オブジェクト（ジョブ等）を実行しながら負荷管理部Ｌ１０と連携して、実行サーバＭ１０の負荷状況を監視する。実行サーバＭ１０の負荷が低く新たなオブジェクトの実行が可能であれば、実行サーバＭ１０の通信制御部Ｔ１０と管理サーバＭ１１の通信制御部Ｔ１１へ通信して新たなオブジェクト要求を行う。管理サーバＭ１１の通信制御部Ｔ１１は、スケジュール制御部Ｓ１１を呼び出すことにより、スケジュール制御部Ｓ１１は優先制御部Ｐ１１を呼び出し実行サーバＭ１０でしか動作できない優先オブジェクトがあるか判断し、オブジェクト管理部Ｃ１１を経由してオブジェクト管理簿Ｏ１１から実行サーバＭ１０へ転送するオブジェクトを取り出す。なお、優先オブジェクトが無い場合には、どこの実行サーバでも動作できるオブジェクトを取り出す。取り出したオブジェクトは、通信制御部Ｔ１１が通信制御部Ｔ１０へ通知し、オブジェクト登録部Ａ１０を経由して実行サーバＭ１０のオブジェクト管理簿Ｏ１０へ登録する。オブジェクト管理簿Ｏ１０に登録されたオブジェクト（抽象化したジョブやジョブで利用するデータやファイル）は、実行制御部Ｅ１０がオブジェクト管理部Ｃ１０を経由して取り出し、オブジェクト変換部Ｒ１０にて実行サーバＭ１０で実行できる形に変換（抽象化されたジョブを実行できるジョブに変換）して実行する。
【０００６】
実行サーバＭ１０で実行したジョブの結果は、通信制御部Ｔ１０が通信制御部Ｔ１１へ通知し、オブジェクト管理簿へ格納する。
Ｎ１０およびＮ１１は本件に関するプログラムを格納した媒体である。Ｎ１０は実行サーバ１０で実行するプログラムを格納したＣＤ−ＲＯＭ、Ｎ１１は管理サーバＭ１１で実行するプログラムを格納したＣＤ−ＲＯＭであり、本願の実行サーバのプログラは各々ＣＤ−ＲＯＭよりサーバ中に読み込まれて実行可能状態となる。
【０００７】
【発明の実施の形態】
本発明の概略について図面を参照して説明する。
図２は、本発明の負荷分散方式を示す図である。例えば、サーバで実行する資源を管理する管理サーバと実際に管理サーバで管理されている資源（例えば、ジョブ）を実行する実行サーバから構成され、実行サーバの負荷が低く新たなオブジェクトが実行可能なら、管理サーバへオブジェクトの取得要求を行う（矢印２１）。管理サーバは、要求元の実行サーバへ通知するオブジェクトが有るか判断し、優先オブジェクトがある場合には優先オブジェクト、優先オブジェクトがなく一般オブジェクトがある場合には一般オブジェクトを実行サーバへ転送する（矢印２２）。優先オブジェクトも一般オブジェクトが無い場合には、その旨を実行サーバへ通知する（矢印２４）。実行サーバは、受け取ったオブジェクトを実行する。実行結果は、実行サーバから管理サーバに転送（矢印２３）され管理サーバで管理される。
【０００８】
図３は、本発明の管理テーブルの構成を示す図である。これらはオブジェクト管理簿で管理される情報の管理テーブルである。全体キュー管理（矢印３１）、一般キュー管理（矢印３２）、優先キュー管理（矢印３３）、オブジェクト管理（矢印３４）から構成される。全体キュー管理は、一般キュー管理へのリンク、先頭の優先キュー管理のリンクと実行中の優先キュー管理のポインタを持っている。他に全体のキューの個数等を持っても良い。一般キュー管理は、どこの実行サーバでも動作できるオブジェクト（例えば、ファイルを利用しないジョブなど）を管理し、オブジェクト管理のリンク、実行中のオブジェクト管理のポインタと一般キューの情報（例えば、キューの個数など）を管理する。優先キュー管理は実行サーバ毎に存在し、特定の実行サーバでしか動作できないオブジェクト（例えば、特定のハードやファイルを利用するジョブなど）を管理し、次優先キュー管理のリンク、オブジェクト管理のリンク、実行中のオブジェクト管理のポインタおよび優先キューの情報（例えば、実行サーバ名やキューの個数など）を管理する。オブジェクト管理はオブジェクト毎（例えば、ジョブやジョブステップ、ファイルなど）に存在し、次オブジェクト管理のリンク、関連オブジェクト管理（オブジェクトをシリアライズして動作させる必要があるもの。例えばジョブの中のジョブステップ等）のリンクおよびオブジェクトの情報（例えば、抽象化したジョブやジョブステップ、ファイル名、コード系など実行サーバで実行するために必要な情報）を管理する。また、優先キュー管理、一般キュー管理および次オブジェクト管理からリンクされるオブジェクト管理は、実行中のオブジェクト管理のポインタを管理する。
【０００９】
図4 は、本発明の制御テーブルの管理方法の例を示す図である。全体キュー管理、一般キュー管理、優先キュー管理、オブジェクト管理のリンク関係を表わす。
全体キュー管理（矢印４１０）は、先頭の優先キュー管理（矢印４２０）と一般キュー管理（矢印４３０）をリンクする。優先キュー管理（矢印４２０）は、次の優先キュー管理（矢印４２１）をリンクする。また、優先キュー管理（矢印４２０）が実行するオブジェクト管理（矢印４４０）をリンクする。オブジェクト管理（矢印４４０）は、オブジェクト管理（矢印４４０）と関係のないオブジェクト管理（矢印４４１）とオブジェクト管理（矢印４４０）と関係のあるオブジェクト管理（矢印４４２）をリンクする。一般キュー管理（矢印４３０）は、一般キュー管理（矢印４３０）が実行するオブジェクト管理（矢印４４３）をリンクする。オブジェクト管理（矢印４４３）は、オブジェクト管理（矢印４４３）と関係のないオブジェクト管理（矢印４４４）とオブジェクト管理（矢印４４３）と関係のあるオブジェクト管理（矢印４４５）をリンクする。
【００１０】
図５は、本発明の実行サーバのオブジェクト取得手順を示すフローチャートである。このフローチャートの説明において、Ｓに続く番号はステップ番号を示す。
〔Ｓ５１〕実行サーバが終了（停止）であれば、処理を終了する。それ以外は、ステップＳ５２へ進む。
【００１１】
〔Ｓ５２〕実行サーバの負荷が低く新たなオブジェクト（ジョブ等）を実行できる余裕があれば、ステップＳ５３へ進む。それ以外は、ステップＳ５６へ進む。
〔Ｓ５３〕管理サーバに対してオブジェクト取得要求を行う。
〔Ｓ５４〕管理サーバからオブジェクトが通知されたら、ステップＳ５５へ進む。それ以外は、ステップＳ５１へ進む。
【００１２】
〔Ｓ５５〕通知されたオブジェクトを実行サーバで実行できるオブジェクト（ジョブ等）に変換する。
〔Ｓ５６〕実行中のオブジェクト（ジョブ等）を継続し、通知されたオブジェクト（ジョブ等）を新たに実行する。
〔Ｓ５７〕実行中のオブジェクト（ジョブ等）が終了したら、ステップＳ５８へ進む。それ以外は、ステップＳ５１へ進む。
【００１３】
〔Ｓ５８〕終了したオブジェクト（ジョブ等）の結果を管理サーバヘ通知する必要があれば、ステップＳ５９へ進む。それ以外は、ステップＳ５１へ進む。
〔Ｓ５９〕終了したオブジェクト（ジョブ等）の結果を管理サーバヘ通知し、ステップＳ５１へ進む。
図6 は、本発明の管理サーバのオブジェクト通知手順を示すフローチャートである。このフローチャートの説明において、Ｓに続く番号はステップ番号を示す。
【００１４】
〔Ｓ６１〕管理サーバが終了（停止）であれば、処理を終了する。それ以外は、ステップＳ６２へ進む。
〔Ｓ６２〕実行サーバからのオブジェクト取得要求なら、ステップＳ６３へ進む。それ以外は、ステップＳ６９へ進む。
〔Ｓ６３〕優先キュー管理を検索し実行サーバへの優先オブジェクトがあるなら、ステップＳ６４へ進む。それ以外は、ステップＳ６５へ進む。
【００１５】
〔Ｓ６４〕優先キュー管理の先頭のオブジェクト管理を取り出し、実行サーバへ通知後、ステップＳ６７へ進む。
〔Ｓ６５〕一般オブジェクトがあるなら、ステップＳ６６へ進む。それ以外は、ステップＳ６８へ進む。
〔Ｓ６６〕一般キュー管理の先頭のオブジェクト管理を取り出し、実行サーバへ通知後、ステップＳ６７へ進む。
【００１６】
〔Ｓ６７〕オブジェクトを取り出した、優先キュー管理または一般キュー管理を更新し、ステップＳ６１へ進む。
〔Ｓ６８〕実行するオブジェクトがない旨を実行サーバへ通知し、ステップＳ６１へ進む。
〔Ｓ６９〕実行サーバからオブジェクトの実行結果通知であり、実行結果をオブジェクト管理簿等に記憶し、ステップＳ６１へ進む。
【００１７】
図７は、本発明の管理サーバへオブジェクトの登録手順を示すフローチャートである。このフローチャートの説明において、Ｓに続く番号はステップ番号を示す。
〔Ｓ７１〕管理サーバが終了（停止）であれば、処理を終了する。それ以外は、ステップＳ７２へ進む。
【００１８】
〔Ｓ７２〕登録するオブジェクトが優先オブジェクトなら、ステップＳ７３へ進む。それ以外は、ステップＳ７６へ進む。
〔Ｓ７３〕すでに当該実行サーハの優先キュー管理がある場合は、ステップＳ７４へ進む。それ以外は、ステップＳ７５へ進む。
〔Ｓ７４〕登録するオブジェクトに対するオブジェクト管理を作成し、優先キュー管理がリンクするオブジェクト管理の最後にリンクし、ステップＳ７１へ進む。
【００１９】
〔Ｓ７５〕実行サーバに対する優先キュー管理を作成し、優先キュー管理の最後にリンクする。また、登録するオブジェクトに対するオブジェクト管理を作成し、作成した優先キュー管理にオブジェクト管理をリンクし、ステップＳ７１へ進む。
〔Ｓ７６〕登録するオブジェクトに対するオブジェクト管理を作成し、一般キュー管理がリンクするオブジェクト管理の最後にリンクし、ステップＳ７１へ進む。
【００２０】
【発明の効果】
以上説明したように本発明では、管理サーバでオブジェクト等の資源を一元管理し実行サーバが管理サーバへオブジェクト等の資源を取りに行き実行することにより、実行サーバの論理で負荷分散ができる。また、管理サーバと実行サーバで負荷分散に伴う密な連携が不要になる。これにより、実行サーバ主導の負荷分散が可能になるため、ネットワーク拡張に伴う負荷分散を容易に構築することができる。
【図面の簡単な説明】
【図１】本発明の負荷分散方式の原理構成図である。
【図２】本発明の負荷分散方式を示す図である。
【図３】本発明の管理テーブルの構成を示す図である。
【図４】本発明の制御テーブルの管理方法の例を示す図である。
【図５】本発明の実行サーバのオブジェクト取得手順を示すフローチャートである。
【図６】本発明の管理サーバのオブジェクト通知手順を示すフローチャートである。
【図７】本発明の管理サーバへオブジェクトの登録手順を示すフローチャートである。
【図８】従来の負荷分散方式を示す図である。
【符号の説明】
Ａ１０、Ａ１１  オブジェクト登録部
Ｔ１０、Ｔ１１  通信制御部
Ｃ１０、Ｃ１１  オブジェクト管理部
Ｅ１０  実行制御部
Ｌ１０  負荷管理部
Ｏ１０、Ｏ１１  オブジェクト管理簿
Ｐ１１  優先制御部
Ｓ１１  スケジュール制御部
Ｒ１０  オブジェクト変換部
Ｍ１０、Ｍ２０、Ｍ８０  実行サーバ
Ｍ１１、Ｍ２１、Ｍ８１  管理サーバ
Ｎ１０，Ｎ１１  プログラ格納媒体
【図１】
0003882315.tif 000002
【図２】
0003882315.tif 000003
【図３】
0003882315.tif 000004
【図４】
0003882315.tif 000005
【図５】
0003882315.tif 000006
【図６】
0003882315.tif 000007
【図７】
0003882315.tif 000008
【図８】
0003882315.tif 000009