(57)【要約】【課題】複数の計算機上に処理を実行するためのタスクを割り与えることによって計算機リソースを効率的に使用するシステムにおいて、複数の計算機上に処理を実行するタスクを割り与える場合に、ある演算をした結果をデータベースに格納するタスクのように、処理内容が複数の装置にまたがって実行されるものに関しては、装置間のデータ転送性能が問題になり、タスク全体としての処理効率をあげることが出来ない。【解決手段】計算機上にタスク割当を行うときに、タスクを実行する上で必要となるネットワーク接続情報を取得する手段と、計算機間のトラヒック情報を収集する手段を有することにより、タスク実行の際に使用するネットワークを考慮してタスクを割り当てる手段を有し、タスクを実行する装置間のトラヒック性能を考慮して計算機を割り当てることができ、タスク全体としての処理速度を向上させることが可能となる。【選択図】  図２
2004355060.tif 000002
【特許請求の範囲】
【請求項１】
複数の装置で、通信をしながら処理を実行するタスクに対して、前記タスクを実行可能な装置群の中で実際のタスクを割り当てる場合に、
タスクを実行するにあたって必要となる装置間の通信経路の情報を取得し、
取得された通信経路の転送性能情報を取得し、
取得された転送性能情報を基にタスクを割り当てる装置を決定することを特徴とするタスク割当方法。
【請求項２】
請求項１のタスク割当方法において、
タスクを実行するにあたって必要となる通信経路の情報を予め保持し、経路の転送情報を監視し、
タスク割当時に前記保有情報を基に、タスクを割り当てる装置を決定する
ことを特徴とするタスク割当方法。
【請求項３】
請求項１のタスク割当方法において、
転送性能情報を監視する手段が別途存在している場合に、
転送性能情報が任意の値を超えたときのみ性能情報を通知することを前記監視手段に要求し、
経路の転送情報の監視において、前記通知情報のみを受信し、前記通知情報を受信すると該当する経路に関連する装置は割当できないことを設定し、
タスク割当時に、前記保有情報を基に、予め装置を限定して転送性能情報を取得し、タスクを割り当てる装置を決定する
ことを特徴とするタスク割当方法。
【請求項４】
複数の装置で、お互いに通信をしながら実行するタスクを実行可能な装置群の中で実際のタスクを割り当てる処理を実行させる際に、
タスクを実行するにあたって必要となる装置間の通信経路の情報を取得する処理と、
取得された通信経路の転送性能情報を取得する処理と、
取得された転送性能情報を基にタスクを割り当てる装置を決定する処理
を前記装置に実行させることを特徴とするタスク割当プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワーク上に分散された計算システム上で任意のタスク処理を行う分散システムに関する。
【０００２】
【従来の技術】
現在、ネットワークに接続された複数の計算機のリソースを有効に利用することにより、大容量の演算を実行する分散処理手法が、様々な個所で適用されている。
【０００３】
この中でも、複数の分散した計算機リソースを仮想的な単一コンピュータとして扱うグリッドコンピューティング方法が存在する。これを実現するには、処理要求を受け付けるタスク割当機能が、各計算機のリソースを監視して、タスクを割り当てることを行うことが非特許文献１に記載されている。
【０００４】
【非特許文献１】
「ＬｉｎｕｘＷｏｒｌｄ」、ＩＤＧジャパン、２００２年７月号
【０００５】
【発明が解決しようとする課題】
しかしながら、ある演算をした結果をデータベースに格納するタスクのように、処理内容が複数の装置にまたがって実行される場合に、計算機のリソースのみを考慮するだけでは、装置間のデータ転送性能が問題になり、タスク全体としての処理効率をあげることが出来ない。
【０００６】
【課題を解決するための手段】
本発明では、計算機上にタスク割当を行うときに、タスクを実行する上で必要となるネットワーク接続情報を取得する手段と、計算機間のトラヒック情報を収集する手段を有することにより、タスク実行の際に使用するネットワークを考慮してタスクを割り当てる手段を有することを特徴とする。
【０００７】
【発明の実施の形態】
以下、本発明の第一の実施形態を図１から図６を用いて説明する。
【０００８】
図１は、タスク割当装置を含んだネットワークシステムの一構成例を示す。本ネットワークシステムでは、タスク割当サーバ（１０）が、広域ネットワーク（１）を介してクライアント（４０）からのタスク要求を受け付ける。そして、様々な要求タスを実行するサーバ群（２０）がネットワーク装置（３０）を介して接続されている。さらに、ネットワークの構成やトラヒック情報を監視するネットワーク管理機能を有するネットワーク装置（５０）が存在する。
【０００９】
図２は、タスク割当装置の構成の一構成例を表したものである。タスク割当装置（１０）は、要求を発信するクライアント（４０）と広域ネットワーク（１）を介して通信するための通信制御装置１（１１１）と要求情報をサーバ群（２０）に送信するための通信制御装置２（１１２）、プログラム処理のための演算領域および結果の格納領域として使用するワークメモリ（１２）、ネットワークの構成やネットワーク装置および端末の状態を格納するデータベース（１３）、タスク割当に関するプログラムを格納したプログラムメモリ（１４）とプログラムメモリに格納されたプログラムの実行やプログラムメモリやデータベースのアクセスを制御する中央処理装置（１５）で構成される。プログラムメモリ（１４）上には、クライアントからのタスクを受信するタスク送受信プログラム（１４１）および受信したタスクを任意のサーバに割り与えるタスク解析プログラム（１４２）で構成される。また、管理情報データベース（１３）で格納されている情報は、クライアントから送られてくる要求タスクに対して必要となるコンポーネントとそのコンポーネントが搭載されているサーバ一覧の関係である。
【００１０】
図３は管理情報データベース（１３）で格納される関係の一構成を表したものである。関係テーブル（３０１）は要求タスクを表すタスク名称（３０２），タスクを実行するために必要となるソフトウェアを表すコンポーネントリスト（３０３）を含んでいる。接続構成（３０４）は、タスク処理を要求する宛先である要求先（３０６）、サーバリスト（３０７）、状態（３０８）およびそれらの識別子（３０５）で構成される。サーバリスト（３０７）は、タスク処理を実行するためのコンポーネントが起動しているサーバの組み合わせである。状態（３０８）はタスクを既に割り当てているかどうかを判断するものであり、図３では“占”であれば、使用中であり、“空”であれば未使用を示す。図３のタスクＡに関してはコンポーネントａとコンポーネントｂによって構築されているため、コンポーネントａが搭載しているサーバとコンポーネントｂを搭載しているサーバが格納される。その値は、搭載しているサーバのペア一覧となっており、一行がこのタスクを実行するためのコンポーネントの組み合わせを表している。識別子（３０５）はこの組み合わせを一意に識別するためにある。
【００１１】
コンポーネントリストの値は、同じサーバ上で複数のコンポーネントが起動している場合を考慮して、サーバのアドレス情報だけでなく、例えば通信ポートなどと組み合わせて宛先サーバ上のコンポーネントを指定できるような構成になっている。また、タスクを実行するコンポーネントが３つ以上ある場合には、このサーバリスト（３０７）の要素が増えることになる。
【００１２】
要求先（３０６）の値もコンポーネントリストのサーバ情報と同じように、サーバアドレス情報と、例えば通信ポートなどと組み合わせて格納する。
【００１３】
この関係テーブル（３０１）は、タスク割当装置が処理可能な全てのタスクについて保持されている。
【００１４】
さて、本実施形態では、ネットワーク監視機能を別装置上で起動させる構成としているが、ネットワーク監視機能や実行するプログラムをタスク割当装置のプログラムメモリ（１４）に格納し、前記搭載されたプログラムによって実行される管理機能によって得られる管理情報を管理データベースの中に格納することにより、タスク割当装置は管理機能と共に一つの装置上で起動しても良い。
【００１５】
次に本実施形態におけるタスク割当装置の動作について説明する。
【００１６】
図４がタスク割当装置上でのタスク割当に関する処理概要を表したフローチャートである。
【００１７】
まず、通信制御装置１（１１１）がクライアントからのタスク実行要求を受け付けるとタスク送受信プログラム（１４１）に通知する（４０１）。タスク送受信プログラム（１４１）は、タスク実行要求を受け付けるとタスク解析・配信プログラムに受信したタスクに対する送信先サーバ情報を問い合わせる（４０２）。タスク解析プログラム（１４２）は、受信されたタスクに対して処理可能なサーバ装置を同定する要求先検索処理を実行する（４０３）。
【００１８】
図５は、タスク解析プログラム（１４２）の要求先検索処理の処理概要を表したフローチャートである。タスク解析プログラム（１４２）は、タスク情報を受け付けると管理情報データベース（１３）より、タスクに該当する関係テーブルを収集する。次に関係テーブル内のサーバリスト（３０６）に含まれる状態情報を基に使用可能なサーバを同定する（５０３）。このとき、割当可能なサーバ群と関係テーブル（３０１）から関係テーブル内の接続構成（３０４）の中からタスクを割当可能な接続構成要素を抽出する。そして、タスク解析プログラム（１４１）は、ネットワーク管理装置（６０）上のネットワーク管理機能に各要素のサーバ間のネットワーク接続経路を取得し、ワークメモリ（１２）内にネットワーク接続関係情報を構築する（５０４）。
【００１９】
図６は、作成されるネットワーク接続関係情報を表すテーブルの一構成を表している。
【００２０】
ネットワーク接続関係情報テーブル（６０１）は、タスク名称（６０２）と接続関係を識別する経路パターン識別子（６０３）、ネットワーク接続経路（６０４，６０５）および総使用状況（６０６）を持つ。本テーブルは、割当可能な接続構成要素ごとに作成される。このため、経路パターン識別子（６０３）は、割当可能な接続要素に対する関係テーブル（３０１）の接続構成の識別子（３０５）と同じ値を持つ。
【００２１】
ネットワーク接続経路情報（６０４，６０５）は、２つのサーバ間の接続関係を表すものであり、それぞれ、順方向（６０４）と逆方向（６０５）の経路情報をもつ。各要素は、経路を構成する要素を表しており、どの装置の出力データをどの装置が入力するかを示すものであり、出力側の装置を示す出力装置（６０７），出力装置から出力されたデータを受信する入力装置（６０８），その経路間の使用状況を表す使用状況（６０９）で構成される。入力装置（６０７），出力装置（６０８）には、装置情報として装置名称に加え、どの通信装置を用いているかのインターフェース名称の組み合わせの値が入れられる。図６は、サーバａとサーバｂの接続関係を表したものであり、サーバａのインターフェース２（ｉｆ２）から出力されたデータは、ルータ１のインターフェース１（ｉｆ１）に渡される。そして、ルータ１のインターフェース３（ｉｆ３）から出力され、ルータ２のインターフェース４（ｉｆ４）で受信される。最後に、ルータ２のインターフェース１（ｉｆ１）から出力され、サーバｂのインターフェース１（ｉｆ１）で受信される。本例では、サーバｂからサーバａへのデータ送信はサーバａからサーバｂへのデータ転送と同じ経路を逆向きに行われるものとしている。
【００２２】
３つ以上の場合、それぞれのコンポーネント間の接続関係を求め、考えられる組み合わせに関して順方向，逆方向の経路を求める。
【００２３】
使用状況（６０９）および総使用状況（６０６）に関しては、サーバ間の接続経路を取得した時点（５０３）ではまだ入力されていない状況である。
【００２４】
考えられるサーバの組み合わせ全てに対してサーバ間の接続情報を取得すると、次に経路情報内に含まれるネットワーク装置のインターフェースに対するトラヒック情報をネットワーク管理機能から取得する（５０４）。
【００２５】
取得した情報は、ネットワーク接続関係情報テーブル（６０１）の使用状況（６０９）の中に設定する。本例では、トラヒックの使用状況として、使用可能帯域を取得する。これは、転送可能帯域から現在の使用帯域を引いたものである。例えば、１００メガ・ビット／秒の転送可能帯域の接続に対して４０メガ・ビット／秒の帯域が使用されていたとき、６０メガ・ビット／秒の帯域が使用状況（６０９）に入る。
【００２６】
全ての使用状況が求められると、タスク解析プログラムは、総使用状況を決定する（５０５）。本例では、テーブル内に存在する使用状況の中で最も小さな値を総使用状況とする。つまり、使用状況が最も小さな個所が経路上のボトルネックとなり、データ転送速度を制約する可能性があるためである。
【００２７】
全てのネットワーク接続関係情報テーブルに対して総利用状況が決定されれば、次に処理の要求先を決定する（５０６）。これは、総利用状況が最も大きな値（即ちボトルネックになる可能性が低い場合）を持つもネットワーク接続関係情報テーブルの経路パターン識別子を基に管理情報データベースに存在する要求タスクに関する関係テーブルの接続構成（３０４）をもとめ、対応する識別子を持つ要素の要求先（３０６）の値を要求先として決定する。
【００２８】
タスクの要求先が決まるとタスク解析プログラム（１４２）は、タスク送受信プログラム（１４１）に対してタスクの宛先情報を通知する（５０７）。
【００２９】
以上がタスク解析プログラムによる要求検索処理である。
【００３０】
タスク送受信プログラム（１４１）は、タスク解析プログラムから通知された要求先サーバに対してクライアントから受信した要求タスクを送信する（４０４）。そして、タスク送受信プログラム（１４１）は、タスクの結果をサーバから受信すると結果をクライアントに送信する（４０５）。
【００３１】
以上の処理により、タスク実行を行うサーバは、ネットワークの負荷を考慮して決められるため、ネットワークがタスクのボトルネックになりにくくなり、結果として要求タスクを効率的に処理することが可能となる。
【００３２】
次に第二の実施形態について図を用いて説明する。
【００３３】
図７は、第二の実施形態におけるタスク割当装置の一構成例を表したものである。本実施形態は、プログラムメモリ（１４）上にコンポーネント間のトラヒック計測情報を取得するトラヒック収集プログラム（７０１）を有すること以外は第一の実施形態のタスク割当装置と同じである。
【００３４】
次に本実施例におけるタスク割当装置の動作について説明する。
【００３５】
図８は本実施例上でのトラヒック収集プログラムの処理概要を表したフローチャートである。タスク割当装置（１０）が起動すると、トラヒック収集プログラム（７０１）は、管理情報データベース内に存在する全ての関係テーブル（３０１）を取得する（８０１）。そして、取得した関係テーブルを基に、要求タスクとコンポーネントの関係を抽出し、関連するサーバからの接続関係をネットワーク管理機能から取得し、管理情報データベース内に第一の実施形態で示したネットワーク接続関係情報テーブル（６０１）を格納する（８０２）。
【００３６】
その後、トラヒック収集プログラムは、ネットワーク管理機能に対して関連するネットワーク装置のインターフェースのトラヒックがある閾値以上になった場合にその状態を通知するように設定する（８０３）。
【００３７】
ここで、与えられる閾値は、タスク処理を実行する上で不具合が生じる可能性のある値を設定する。
【００３８】
以後、ネットワーク管理機能から閾値突破のイベントを受信（８０４）した場合、ネットワーク接続関係情報テーブル（６０１）の該当接続の使用状況（６０９）に要注意を表す値（例えば−１）を設定し、総使用状況（６０６）にも要注意を表す値（例えば−１）を設定する（８０５）。
【００３９】
また、ネットワーク管理機能から閾値を超えなくなったというイベントを受信（８０６）した場合、まず該当接続の使用状況（６０９）の要注意を表す値を削除する（８０７）。前述の処理の結果、全ての該当接続の使用状況に要注意の値が入っていない場合に総使用状況の中の要注意を表す値を削除する（８０８）。
【００４０】
また、サーバ構成およびネットワーク構成が変更された（８０９）場合、タスク関係情報テーブルを作り直す処理を行う。
【００４１】
以上がトラヒック収集プログラムの動作である。
【００４２】
次に、タスクを受け付けたときの動作について説明する。
【００４３】
クライアントからタスクを受信するとタスク送受信プログラムは図４に示すような第一の実施形態と同様の処理を行うが、タスク解析プログラムが行う要求検索処理（４０３）が異なる。
【００４４】
図９は、第二の実施形態におけるタスク解析プログラムにおける要求先検索処理の操作概要を表したフローチャートである。
【００４５】
タスク解析プログラムは、タスク送受信プログラムから受け取ったタスクに対して、管理情報データベース内に存在する関係テーブルを取得し（９０１）、要求タスクに対する実行可能なサーバ群を抽出する（９０２）。次に、識別子（３０５）を基に対応するネットワーク構成テーブルを取得し、総使用状況が要注意を表す値となっていないテーブルを検索する（９０３）。総使用状況が要注意となっていない要素が存在すれば（９０４）、以後は、そのテーブルに対して第一の実施例と同様に現在のネットワーク使用状況を取得し（９０５）、取得データをもとに処理要求先サーバを同定し（９０６）、その結果をタスク送受信プログラムに通知する（９０７）。
【００４６】
もし、サーバの使用状況と総使用状況が要注意を表す値となっていないテーブルが存在しなければ、要注意を表す値が最も少ない要素を取り出し（９０８）、以下同様の処理（９０５〜９０７）を行うことにより要求先サーバを決定する。
【００４７】
以上がタスク要求時の動作である。
【００４８】
以上の処理により、ネットワークの負荷も考慮してタスク実行サーバを決める処理において、使用状況を判断する要素数を限定させることができ、タスクを実行するサーバを検索する処理を少ないオペレーションで行うことができる。
【００４９】
【発明の効果】
本発明により、計算機へのタスク割当において、タスクを実行する装置間のトラヒック性能を考慮して計算機を割り当てることができ、タスク全体としての処理速度を向上させることが可能となる。
【図面の簡単な説明】
【図１】各実施形態に基づくタスク割当装置を有したサーバおよびネットワーク装置で構成される計算システムの一構成例を表した図である。
【図２】第一の実施形態でのタスク割当装置の構成を表した図である。
【図３】タスク割当装置で保有するタスクの実行環境を表すテーブルの一構成を示した図である。
【図４】第一の実施形態のタスク割当装置において、タスクを任意の計算機に割り当てる全体処理概要を表したフローチャートである。
【図５】第一の実施形態のタスク割当装置内に存在するタスク解析プログラムの処理概要を表したフローチャートである。
【図６】タスク解析プログラムによって作成されるネットワーク接続関係情報テーブルの一構成を表した図である。
【図７】第二の実施形態でのタスク割当装置の構成を表した図である。
【図８】第二の実施形態のタスク割当装置内に存在するトラヒック収集プログラムの処理概要を表したフローチャートである。
【図９】第二の実施形態のタスク割当装置内に存在するタスク解析プログラムの処理概要をあらわしたフローチャートである。
【符号の説明】
１…  広域通信網，１０…  タスク割当装置，１１１…  タスク受け付け用通信制御装置，１１２…  タスク送信用通信制御装置，１２…  ワークメモリ，１３…  管理情報データベース，１４…プログラムメモリ，１５…  中央処理装置，２０…  タスク処理サーバ，  ３０…  ネットワーク装置，４０…  タスク要求クライアント，５０…  ネットワーク管理装置
【図１】
2004355060.tif 000003
【図２】
2004355060.tif 000004
【図３】
2004355060.tif 000005
【図４】
2004355060.tif 000006
【図５】
2004355060.tif 000007
【図６】
2004355060.tif 000008
【図７】
2004355060.tif 000009
【図８】
2004355060.tif 000010
【図９】
2004355060.tif 000011