(57)【特許請求の範囲】
【請求項１】
複数の計算機と、
複数のネットワーク装置と、
前記複数の計算機の中から、アプリケーションを構成するプロセスを処理する計算機を該アプリケーションに割り当てるとともに、前記複数のネットワーク装置の中から、該計算機間で前記プロセスの処理に必要なデータを転送するネットワーク装置を該アプリケーションに割り当てる管理装置と、を備える管理システムであって、
前記管理装置は、
前記複数の計算機および前記複数のネットワーク装置の負荷状況をモニタするグローバルモニタ手段と、
前記アプリケーションに割り当てられている計算機またはネットワーク装置の負荷状況を示す値が所定の閾値を超えた場合、該負荷状況を示す値が所定の閾値を超えた計算機またはネットワーク装置以外の、前記計算機およびネットワーク装置の負荷状況に基づいて、前記アプリケーションに割り当てる計算機およびネットワーク装置を変更するリソース管理手段と、
前記割り当ての変更により、データ転送の通信設定の変更が必要なネットワーク装置に対して、前記通信設定の変更を指示する設定指示手段と、を有する管理システム。
【請求項２】
前記リソース管理手段は、
予め定められたポリシーに基づいて、前記アプリケーションに割り当てる計算機およびネットワーク装置の候補を選択し、
前記計算機および前記ネットワーク装置の候補の中から、前記負荷状況を示す値が所定の閾値を超えた計算機またはネットワーク装置以外の、前記計算機およびネットワーク装置の負荷状況に基づいて、前記アプリケーションに計算機およびネットワーク装置を割り当てる、請求項１に記載の管理システム。
【請求項３】
前記設定指示手段は、
前記割り当ての変更により、処理するプロセス、または、データの転送先の少なくとも一方の設定の変更が必要となる計算機に対して、該プロセスまたは該転送先の設定の変更を要求する第１の設定変更要求を送信し、
前記複数の計算機の各々は、
自機にて処理するプロセスが設定されるプロセス管理手段と、
自機からのデータの転送先が設定される第１の通信設定管理手段と、
前記プロセス管理手段に設定されたプロセスを処理するとともに、前記第１の通信設定管理手段に設定された転送先へデータを転送する演算処理手段と、を有し、
前記プロセス管理手段は、
プロセスの設定の変更を要求する前記第１の設定変更要求が送信されてきた場合、該第１の設定変更要求に従い、前記プロセスの設定を変更し、
前記第１の通信設定管理手段は、
データの転送先の設定の変更を要求する前記第１の設定変更要求が送信されてきた場合、該第１の設定変更要求に従い、データの転送先の設定を変更する、請求項１または２に記載の管理システム。
【請求項４】
前記設定指示手段は、
前記割り当ての変更により、データの転送先の設定の変更が必要となるネットワーク装置に対して、該転送先への設定の変更を要求する第２の設定変更要求を送信し、
前記複数のネットワーク装置の各々は、
自装置からのデータの転送先が設定される第２の通信設定管理手段と、
自装置に送信されてきたデータを、前記第２の通信設定管理手段に設定された転送先に転送する通信処理手段と、を有し、
前記第２の通信設定管理手段は、
前記第２の設定変更要求が送信されてきた場合、該第２の設定変更要求に従い、データの転送先の設定を変更する、請求項３記載の管理システム。
【請求項５】
前記リソース管理手段は、
前記データに対して設定した識別情報と該識別情報が設定された前記データの転送先とを対応付けて定めた、または、該識別情報が設定された前記データのうち、該データを破棄する前記識別情報を定めたフロー情報を設定し、
前記設定指示手段は、
前記リソース管理手段により設定された前記フロー情報を前記ネットワーク装置に送信し、
前記演算処理手段は、
前記管理装置から送信されてきた前記第１の設定変更要求に基づき、前記識別情報を含むデータを転送し、
前記複数のネットワーク装置の各々は、
前記管理装置から送信されてきた前記フロー情報が設定されるフロー管理手段と、
前記フロー管理手段に設定されたフロー情報に基づき、自装置に転送されてきたデータに含まれる前記識別情報に対応する前記転送先に該データを転送し、または、該データを破棄する通信処理手段と、をさらに有する請求項３に記載の管理システム。
【請求項６】
前記複数の計算機の各々は、
自機の負荷状況をモニタする第１のローカルモニタ手段を、さらに有し、
前記演算処理手段は、
前記第１のローカルモニタ手段によりモニタされた自機の負荷状況を示す第１のモニタ情報を前記管理装置に送信し、
前記複数のネットワーク装置の各々は、
自装置の負荷状況をモニタする第２のローカルモニタ手段を、さらに有し、
前記通信処理手段は、
前記第２のローカルモニタ手段によりモニタされた自装置の負荷状況を示す第２のモニタ情報を前記管理装置に送信し、
前記グローバルモニタ手段は、
前記複数の計算機から送信されてきた前記第１のモニタ情報に基づき、前記複数の計算機の負荷状況をモニタするとともに、前記複数のネットワーク装置から送信されてきた前記第２のモニタ情報に基づき、前記複数のネットワーク装置の負荷状況をモニタする、請求項４または５に記載の管理システム。
【請求項７】
複数の計算機の中から、アプリケーションを構成するプロセスを処理する計算機を該アプリケーションに割り当てるとともに、複数のネットワーク装置の中から、該計算機間で前記プロセスの処理に必要なデータを転送するネットワーク装置を該アプリケーションに割り当てる管理装置であって、
前記複数の計算機および前記複数のネットワーク装置の負荷状況をモニタするグローバルモニタ手段と、
前記アプリケーションに割り当てられている計算機またはネットワーク装置の負荷状況を示す値が所定の閾値を超えた場合、該負荷状況を示す値が所定の閾値を超えた計算機またはネットワーク装置以外の、前記計算機およびネットワーク装置の負荷状況に基づいて、前記アプリケーションに割り当てる計算機およびネットワーク装置を変更するリソース管理手段と、
前記割り当ての変更により、データ転送の通信設定の変更が必要なネットワーク装置に対して、前記通信設定の変更を指示する設定指示手段と、を有する管理装置。
【請求項８】
前記リソース管理手段は、
予め定められたポリシーに基づいて、前記アプリケーションに割り当てる計算機およびネットワーク装置の候補を選択し、
前記計算機および前記ネットワーク装置の候補の中から、前記負荷状況を示す値が所定の閾値を超えた計算機またはネットワーク装置以外の、前記計算機およびネットワーク装置の負荷状況に基づいて、前記アプリケーションに計算機およびネットワーク装置を割り当てる、請求項７に記載の管理装置。
【請求項９】
前記設定指示手段は、
前記割り当ての変更により、処理するプロセス、または、データの転送先の少なくとも一方の設定の変更が必要となる計算機に対して、該プロセスまたは該転送先の設定の変更を要求する第１の設定変更要求を送信する、請求項７または８に記載の管理装置。
【請求項１０】
前記設定指示手段は、
前記割り当ての変更により、データの転送先の設定の変更が必要となるネットワーク装置に対して、該転送先への設定の変更を要求する第２の設定変更要求を送信する、請求項９に記載の管理装置。
【請求項１１】
前記リソース管理手段は、
前記データに対して設定した識別情報と該識別情報が設定された前記データの転送先とを対応付けて定めた、または、該識別情報が設定された前記データのうち、該データを破棄する前記識別情報を定めたフロー情報を設定し、
前記設定指示手段は、
前記リソース管理手段により設定された前記フロー情報を前記ネットワーク装置に送信する、請求項９に記載の管理装置。
【請求項１２】
前記グローバルモニタ手段は、
前記複数の計算機から送信されてきた、該計算機の負荷状況を示す第１のモニタ情報に基づき、前記複数の計算機の負荷状況をモニタするとともに、前記複数のネットワーク装置から送信されてきた、該ネットワーク装置の負荷状況を示す第２のモニタ情報に基づき、前記複数のネットワーク装置の負荷状況をモニタする、請求項７から１１のいずれか１項に記載の管理装置。
【請求項１３】
管理装置によりアプリケーションに割り当てられ、前記アプリケーションを構成するプロセスを処理する複数の計算機間で前記プロセスの処理に必要なデータを転送するネットワーク装置であって、
前記管理装置から送信されてきた、前記データに対して設定された識別情報と該識別情報が設定された前記データの転送先とを対応付けて定めた、または、該識別情報が設定された前記データのうち、該データを破棄する前記識別情報を定めたフロー情報が設定されるフロー管理手段と、
前記フロー管理手段に設定されたフロー情報に基づき、前記計算機から転送されてきたデータに含まれる前記識別情報に対応する前記転送先に該データを転送し、または、該データを破棄する通信処理手段と、を有するネットワーク装置。
【請求項１４】
複数の計算機の中から、アプリケーションを構成するプロセスを処理する計算機を該アプリケーションに割り当てるとともに、複数のネットワーク装置の中から、該計算機間で前記プロセスの処理に必要なデータを転送するネットワーク装置を該アプリケーションに割り当てる管理装置に適用される管理方法であって、
前記複数の計算機および前記複数のネットワーク装置の負荷状況をモニタし、
前記アプリケーションに割り当てられている計算機またはネットワーク装置の負荷状況を示す値が所定の閾値を超えた場合、該負荷状況を示す値が所定の閾値を超えた計算機またはネットワーク装置以外の、前記計算機およびネットワーク装置の負荷状況に基づいて、前記アプリケーションに割り当てる計算機およびネットワーク装置を変更し、
前記割り当ての変更により、データ転送の通信設定の変更が必要なネットワーク装置に対して、前記通信設定の変更を指示する、管理方法。
【請求項１５】
予め定められたポリシーに基づいて、前記アプリケーションに割り当てる計算機およびネットワーク装置の候補を選択し、
前記計算機および前記ネットワーク装置の候補の中から、前記負荷状況を示す値が所定の閾値を超えた計算機またはネットワーク装置以外の、前記計算機およびネットワーク装置の負荷状況に基づいて、前記アプリケーションに計算機およびネットワーク装置を割り当てる、請求項１４に記載の管理方法。
【請求項１６】
前記割り当ての変更により、処理するプロセス、または、データの転送先の少なくとも一方の設定の変更が必要となる計算機に対して、該プロセスまたは該転送先の設定の変更を要求する第１の設定変更要求を送信する、請求項１４または１５に記載の管理方法。
【請求項１７】
前記割り当ての変更により、データの転送先の設定の変更が必要となるネットワーク装置に対して、該転送先への設定の変更を要求する第２の設定変更要求を送信する、請求項１６に記載の管理方法。
【請求項１８】
前記データに対して設定した識別情報と該識別情報が設定された前記データの転送先とを対応付けて定めた、または、該識別情報が設定された前記データのうち、該データを破棄する前記識別情報を定めたフロー情報を設定し、
前記設定されたフロー情報を前記ネットワーク装置に送信する、請求項１６に記載の管理方法。
【請求項１９】
前記複数の計算機から送信されてきた、該計算機の負荷状況を示す第１のモニタ情報に基づき、前記複数の計算機の負荷状況をモニタするとともに、前記複数のネットワーク装置から送信されてきた、該ネットワーク装置の負荷状況を示す第２のモニタ情報に基づき、前記複数のネットワーク装置の負荷状況をモニタする、請求項１４から１８のいずれか１項に記載の管理方法。
【請求項２０】
複数の計算機の中から、アプリケーションを構成するプロセスを処理する計算機を該アプリケーションに割り当てるとともに、複数のネットワーク装置の中から、該計算機間で前記プロセスの処理に必要なデータを転送するネットワーク装置を該アプリケーションに割り当てる管理装置に、
前記複数の計算機および前記複数のネットワーク装置の負荷状況をモニタするグローバルモニタ処理と、
前記アプリケーションに割り当てられている計算機またはネットワーク装置の負荷状況を示す値が所定の閾値を超えた場合、該負荷状況を示す値が所定の閾値を超えた計算機またはネットワーク装置以外の、前記計算機およびネットワーク装置の負荷状況に基づいて、前記アプリケーションに割り当てる計算機およびネットワーク装置を変更するリソース管理処理と、
前記割り当ての変更により、データ転送の通信設定の変更が必要なネットワーク装置に対して、前記通信設定の変更を指示する設定指示処理と、を実行させるプログラム。
【請求項２１】
管理装置によりアプリケーションに割り当てられ、前記アプリケーションを構成するプロセスを処理する複数の計算機間で前記プロセスの処理に必要なデータを転送するネットワーク装置に、
前記管理装置から送信されてきた、前記データに対して設定された識別情報と該識別情報が設定された前記データの転送先とを対応付けて定めた、または、該識別情報が設定された前記データのうち、該データを破棄する前記識別情報を定めたフロー情報を設定するフロー管理処理と、
前記フロー管理処理により設定されたフロー情報に基づき、前記計算機から転送されてきたデータに含まれる前記識別情報に対応する前記転送先に該データを転送し、または、該データを破棄する通信処理と、を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散コンピューティング環境において、アプリケーションに割り当てる計算機およびネットワーク装置を管理する管理システム、管理装置、管理方法およびプログラム、ならびに、ネットワーク装置に関する。
【背景技術】
【０００２】
近年、通信ネットワーク（以下、ネットワークと称する）を介して複数の計算資源を接続した、グリッドコンピューティングシステムやデータセンターなどの、分散コンピューティング環境の利用が広がっている。
【０００３】
分散コンピューティング環境では、アプリケーションを構成する複数のプロセスを、複数の計算資源で分散して同時並行的に処理してアプリケーションを実行することで高い処理性能を得ることができる。
【０００４】
このような分散コンピューティング環境において、アプリケーションの実行に必要な分散コンピューティング資源は、大きく分けて、計算資源とネットワーク資源とから構成される。
【０００５】
計算資源は、プロセスを処理するための資源であり、汎用のＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）やサーバなどの計算機、あるいは、特定の処理を高速化するアクセラレーションエンジンを搭載した計算機なども含まれる。なお、アクセラレーションエンジンには、例えば、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を汎用処理に適用したＧＰＧＰＵ（Ｇｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  ｃｏｍｐｕｔｉｎｇ  ｏｎ  ＧＰＵ）やＦＰＧＡ（Ｆｅｉｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などが用いられる。
【０００６】
また、ネットワーク資源は、プロセスを分散して処理する計算機間で、プロセスの処理に必要なデータを転送するための資源であり、ネットワークの通信帯域や、ルーターやスイッチ、ロードバランサ、ファイアウォールなどのデータの転送を行うネットワーク装置が含まれる。
【０００７】
ところで、一般に、分散コンピューティング環境は、複数のユーザやアプリケーションにより同時に利用される。
【０００８】
また、上述したアクセラレーションエンジンを搭載した、特定の処理を高速化する計算機は、汎用の計算機に比べて高コストである。そのため、複数の計算機の一部を特定の処理を高速化する計算機とし、複数のユーザやアプリケーションでその計算機を共有するといった運用が行われる。
【０００９】
このような複数のユーザやアプリケーションによる、分散コンピューティング環境の同時利用や、特定の計算機の共有に対応するために、各アプリケーションへの分散コンピューティング資源の割り当ての変更が頻繁に起こることが考えられる。
【００１０】
なお、上述したように、計算機によるプロセスの処理と、ネットワーク装置によるデータの転送により、分散コンピューティング環境においてアプリケーションが実行される。
【００１１】
従って、計算機やネットワーク装置をアプリケーションに割り当てることにより、分散コンピューティング資源の割り当てを行うことができる。
【００１２】
特許文献１には、アプリケーションに割り当てる計算機を変更する管理装置が記載されている。
【００１３】
特許文献１に記載の管理装置は、分散コンピューティング環境を監視し、プロセスを処理する計算機の変更が必要となることを示すトリガを検出すると、プロセスを処理する計算機を変更することで、そのプロセスを含むアプリケーションへの計算機の割り当てを変更する。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００５−１８２７９６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかしながら、特許文献１に記載の管理装置は、アプリケーションへの、計算機の割り当てのみを変更するもので、ネットワーク装置の割り当てについては考慮がされていないため、特定のネットワーク装置にアプリケーションを実行するための負荷が集中する可能性がある。
【００１６】
このような特定のネットワーク装置や計算機への負荷の集中が起こると、割り当てられたネットワーク装置や計算機に見合っただけの処理性能を得ることができず、分散コンピューティング環境の利用効率が低下する可能性があるという課題がある。
【００１７】
本発明の目的は、分散コンピューティング環境の利用効率の低下を抑制することができる管理システム、管理装置、ネットワーク装置、管理方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１８】
上記目的を達成するために本発明の管理システムは、
複数の計算機と、
複数のネットワーク装置と、
前記複数の計算機の中から、アプリケーションを構成するプロセスを処理する計算機を該アプリケーションに割り当てるとともに、前記複数のネットワーク装置の中から、該計算機間で前記プロセスの処理に必要なデータを転送するネットワーク装置を該アプリケーションに割り当てる管理装置と、を備える管理システムであって、
前記管理装置は、
前記複数の計算機および前記複数のネットワーク装置の負荷状況をモニタするグローバルモニタ手段と、
前記アプリケーションに割り当てられている計算機またはネットワーク装置の負荷状況を示す値が所定の閾値を超えた場合、該負荷状況を示す値が所定の閾値を超えた計算機またはネットワーク装置以外の、前記計算機およびネットワーク装置の負荷状況に基づいて、前記アプリケーションに計算機およびネットワーク装置を新たに割り当てるリソース管理手段と、を有する。
【００１９】
上記目的を達成するために本発明の管理装置は、
複数の計算機の中から、アプリケーションを構成するプロセスを処理する計算機を該アプリケーションに割り当てるとともに、複数のネットワーク装置の中から、該計算機間で前記プロセスの処理に必要なデータを転送するネットワーク装置を該アプリケーションに割り当てる管理装置であって、
前記複数の計算機および前記複数のネットワーク装置の負荷状況をモニタするグローバルモニタ手段と、
前記アプリケーションに割り当てられている計算機またはネットワーク装置の負荷状況を示す値が所定の閾値を超えた場合、該負荷状況を示す値が所定の閾値を超えた計算機またはネットワーク装置以外の、前記計算機およびネットワーク装置の負荷状況に基づいて、前記アプリケーションに計算機およびネットワーク装置を新たに割り当てるリソース管理手段と、を有する。
【００２０】
上記目的を達成するために本発明のネットワーク装置は、
管理装置によりアプリケーションに割り当てられ、前記アプリケーションを構成するプロセスを処理する複数の計算機間で前記プロセスの処理に必要なデータを転送するネットワーク装置であって、
前記管理装置から送信されてきた、前記データに対して設定された識別情報と該識別情報が設定された前記データの転送先とを対応付けて定めた、または、該識別情報が設定された前記データのうち、該データを破棄する前記識別情報を定めたフロー情報が設定されるフロー管理手段と、
前記フロー管理手段に設定されたフロー情報に基づき、前記計算機から転送されてきたデータに含まれる前記識別情報に対応する前記転送先に該データを転送し、または、該データを破棄する通信処理手段と、を有する。
【００２１】
上記目的を達成するために本発明の管理方法は、
複数の計算機の中から、アプリケーションを構成するプロセスを処理する計算機を該アプリケーションに割り当てるとともに、複数のネットワーク装置の中から、該計算機間で前記プロセスの処理に必要なデータを転送するネットワーク装置を該アプリケーションに割り当てる管理装置に適用される管理方法であって、
前記複数の計算機および前記複数のネットワーク装置の負荷状況をモニタし、
前記アプリケーションに割り当てられている計算機またはネットワーク装置の負荷状況を示す値が所定の閾値を超えた場合、該負荷状況を示す値が所定の閾値を超えた計算機またはネットワーク装置以外の、前記計算機およびネットワーク装置の負荷状況に基づいて、前記アプリケーションに計算機およびネットワーク装置を新たに割り当てる。
【００２２】
上記目的を達成するために本発明の第１のプログラムは、
複数の計算機の中から、アプリケーションを構成するプロセスを処理する計算機を該アプリケーションに割り当てるとともに、複数のネットワーク装置の中から、該計算機間で前記プロセスの処理に必要なデータを転送するネットワーク装置を該アプリケーションに割り当てる管理装置に、
前記複数の計算機および前記複数のネットワーク装置の負荷状況をモニタするグローバルモニタ処理と、
前記アプリケーションに割り当てられている計算機またはネットワーク装置の負荷状況を示す値が所定の閾値を超えた場合、該負荷状況を示す値が所定の閾値を超えた計算機またはネットワーク装置以外の、前記計算機およびネットワーク装置の負荷状況に基づいて、前記アプリケーションに計算機およびネットワーク装置を新たに割り当てるリソース管理処理と、を実行させる。
【００２３】
上記目的を達成するために本発明の第２のプログラムは、
管理装置によりアプリケーションに割り当てられ、前記アプリケーションを構成するプロセスを処理する複数の計算機間で前記プロセスの処理に必要なデータを転送するネットワーク装置に、
前記管理装置から送信されてきた、前記データに対して設定された識別情報と該識別情報が設定された前記データの転送先とを対応付けて定めた、または、該識別情報が設定された前記データのうち、該データを破棄する前記識別情報を定めたフロー情報を設定するフロー管理処理と、
前記フロー管理処理により設定されたフロー情報に基づき、前記計算機から転送されてきたデータに含まれる前記識別情報に対応する前記転送先に該データを転送し、または、該データを破棄する通信処理と、を実行させる。
【発明の効果】
【００２４】
本発明によれば、管理装置は、計算機およびネットワーク装置の負荷状況をモニタし、アプリケーションに割り当てられている計算機またはネットワーク装置の負荷状況を示す値が所定の閾値を越えた場合、その計算機またはネットワーク装置以外の、計算機およびネットワーク装置の負荷状況に基づいて、アプリケーションに計算機およびネットワーク装置を新たに割り当てる。
【００２５】
そのため、管理装置は、計算機およびネットワーク装置の負荷状況に基づいて、アプリケーションに割り当てる計算機およびネットワーク装置を決定するので、アプリケーションの実行のための負荷を分散させることができ、分散コンピューティング環境の利用効率が低下するのを抑制することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の第１の実施形態の管理システムの構成を示すブロック図である。
【図２】図１に示す管理装置の構成を示すブロック図である。
【図３】図１に示すネットワーク装置の構成を示すブロック図である。
【図４】図１に示す計算機の構成を示すブロック図である。
【図５】図２に示す管理装置による再配置処理の動作を説明するための図である。
【図６】図２に示す管理装置による再配置処理の動作の他の一例を説明するための図である。
【図７】図１に示す管理システムの動作を示すシーケンス図である。
【図８】図７におけるステップＳ２０からステップＳ３０、ステップＳ６０およびステップＳ９０の管理装置の動作を示すフローチャートである。
【図９】図７におけるステップＳ１０のローカル計算機の動作を示すフローチャートである。
【図１０】図７におけるステップＳ９５のローカル計算機の動作を示すフローチャートである。
【図１１】図７におけるステップＳ４０からステップＳ５０までのネットワーク装置の動作を示すフローチャートである。
【図１２】図７におけるステップＳ７０からステップＳ８０までのリモート計算機の動作を示すフローチャートである。
【図１３】図１に示す管理システムの他の動作を示すシーケンス図である。
【図１４】図１に示す管理システムの更に他の動作を示すシーケンス図である。
【図１５】図１４におけるステップＳ１６のローカル計算機の動作を示すフローチャートである
【図１６】図１４におけるステップＳ１６のローカル計算機の他の動作を示すフローチャートである。
【図１７】本発明の第２の実施形態の管理システムにおけるネットワーク装置の構成を示すブロック図である。
【図１８】図１７に示すネットワーク装置の動作を示すフローチャートである。
【図１９】図３に示すネットワーク装置によるデータの転送の動作を説明するための図である。
【図２０】図１７に示すネットワーク装置によるデータの転送の動作を説明するための図である。
【発明を実施するための形態】
【００２７】
以下に、本発明を実施するための形態について図面を参照して説明する。
【００２８】
（第１の実施形態）
図１は、本発明の第１の実施形態の分散コンピューティング環境１における管理システムの構成を示すブロック図である。
【００２９】
図１に示す管理システムは、管理装置１０と、ｍ個のネットワーク装置３０（ｍは２以上の整数）と、ｎ個の計算機５０（ｎは２以上の整数）と、を有している。
【００３０】
管理装置１０は、アプリケーションに割り当てるネットワーク装置３０と計算機５０とを決定する。
【００３１】
ネットワーク装置３０は、管理装置１０および計算機５０と接続されるとともに、他のネットワーク装置３０とも接続されている。
【００３２】
なお、管理装置１０とネットワーク装置３０と計算機５０とを接続するネットワークの具体例としては、ローカルエリアネットワークやワイドエリアネットワーク、インターネットなどがある。
【００３３】
そして、ネットワーク装置３０は、計算機５０同士を接続するネットワーク経路上で、自装置に転送されてきた、プロセスの処理に必要なデータを、そのデータを必要とする計算機５０に転送する。
【００３４】
なお、ネットワーク装置３０の具体例としては、ルーターやスイッチのほかに、ファイアウォールやロードバランサなどの種々の装置がある。
【００３５】
計算機５０は、管理装置１０により割り当てられたアプリケーションを構成するプロセスを処理する。
【００３６】
また、計算機５０は、他の計算機５０とプロセスを同時並行的に処理する場合は、そのプロセスの処理に必要なデータを、他の計算機５０と送受信する。
【００３７】
なお、計算機５０の具体例としては、汎用、あるいは特定処理向けのＰＣやサーバなどや、これらの上で稼動する仮想マシンなどがある。
【００３８】
図２は、管理装置１０の構成を示すブロック図である。
【００３９】
図２に示す管理装置１０は、ポリシー管理ブロック１１０と、管理インタフェース１２０と、グローバルモニタブロック１３０と、リソース管理ブロック１４０と、経路計算ブロック１５０と、スケジューラブロック１６０と、設定指示ブロック１７０と、を有する。
【００４０】
なお、ブロックとは、ソフトウェア、プログラムおよびハードウェアの少なくともいずれかにより実現される一機能単位を示す。
【００４１】
ポリシー管理ブロック１１０は、予め定められたアプリケーションへのネットワーク装置３０および計算機５０の割り当てのポリシーの設定を保持する。
【００４２】
ポリシーの一例として、例えば、分散コンピューティング環境１の利用に際して、ユーザに課金するような場合には、ユーザへの課金状況に応じて、そのユーザが実行を要求するアプリケーションに割り当てるネットワーク装置３０および計算機５０を変えるようにするなどがある。
【００４３】
なお、ポリシーは、入出力１１を介して外部装置から設定することができる。
【００４４】
管理インタフェース１２０は、ネットワーク装置３０とのインタフェースである。
【００４５】
そして、管理インタフェース１２０は、ネットワーク装置３０から送信されてきた、後述する計算機モニタ情報やネットワーク装置モニタ情報などのモニタ情報を受信するとともに、ネットワーク装置３０や計算機５０への種々の通知や要求を送信する。
【００４６】
なお、管理装置１０へのモニタ情報の送信は、管理装置１０がモニタ情報の送信を要求する、あるいは、ネットワーク装置３０や計算機５０が主体的にモニタ情報を送信する、など種々の方法がある。
【００４７】
また、計算機５０への通知や要求の送信はネットワーク装置３０を介して行われるが、管理装置１０と計算機５０とを直接接続すれば、ネットワーク装置３０を介さずに行うことも可能である。
【００４８】
グローバルモニタブロック１３０は、管理インタフェース１２０により受信されたネットワーク装置モニタ情報と計算機モニタ情報とに基づき、ネットワーク装置３０および計算機５０の利用状況や負荷状況をモニタする。
【００４９】
そして、グローバルモニタブロック１３０は、モニタしたネットワーク装置３０および計算機５０の利用状況や負荷状況を示す負荷情報をリソース管理ブロック１４０に出力する。
【００５０】
ここで、負荷情報には、ネットワーク装置３０や計算機５０が割り当てられているアプリケーションの実行を要求するユーザの情報や、そのアプリケーションの実行時間の情報といった、アプリケーションに割り当てられているネットワーク装置３０および計算機５０に関する情報なども含まれる。
【００５１】
リソース管理ブロック１４０は、各ネットワーク装置３０や計算機５０がネットワーク上のどこに存在するか、あるいは各ネットワーク装置３０や計算機５０の負荷状況といった、各ネットワーク装置３０および計算機５０に関する情報を管理する。この情報には、どの計算機５０同士が、どのネットワーク経路を介してデータの転送を行っているかといった情報も含まれる。
【００５２】
また、リソース管理ブロック１４０は、各ネットワーク装置３０や計算機５０の仕様などの静的な情報や、アプリケーションへの割り当ての変更が必要となる各ネットワーク装置３０および計算機５０の負荷状況を示す値である負荷量の閾値を示す情報、さらに、ネットワーク装置３０や計算機５０の負荷量を求めるための重み情報を保持する。
【００５３】
なお、これらの情報は、入出力１２を介して外部装置から設定することができる。
【００５４】
ここで、重み情報の例として、負荷状況を示す各パラメータのうち、特定のパラメータを、負荷量とする例がある。
【００５５】
なお、以下の説明では、計算機５０の負荷状況として、プロセスを処理する計算機５０のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）とメモリの利用率という２つのパラメータがモニタされているとする。
【００５６】
この場合、例えば、重み情報が計算機５０のＣＰＵの利用率というパラメータである場合、計算機５０のＣＰＵの利用率をその計算機５０の負荷量とする。
【００５７】
また、重み情報の例として、負荷状況を示す各パラメータに掛ける係数が設定される例がある。
【００５８】
この場合、例えば、重み情報として、ＣＰＵの利用率とメモリの利用率とに掛ける係数がそれぞれ設定される。そして、ＣＰＵおよびメモリの利用率に、それぞれ設定された係数を掛けた後、それらを合計するなどして、計算機５０の負荷量が求められる。
【００５９】
そして、リソース管理ブロック１４０は、グローバルモニタブロック１３０から出力された負荷情報と、重み情報とに基づき、ネットワーク装置３０や計算機５０の負荷量が閾値を超えていないか否かを判定する。
【００６０】
なお、上述したように、重み情報が負荷状況を示す各パラメータに掛ける係数として設定されている場合には、リソース管理ブロック１４０は、設定された係数を掛け、負荷量を求めた上で、閾値を超えていないか否かを判定する。
【００６１】
そして、ネットワーク装置３０または計算機５０の負荷量が閾値を超えていると判定した場合には、リソース管理ブロック１４０は、アプリケーションに割り当てるネットワーク装置３０および計算機５０を変更する再配置処理を行う。
【００６２】
また、リソース管理ブロック１４０は、分散コンピューティング環境１において実行されるアプリケーションが減るなどして、ネットワーク装置３０および計算機５０の負荷量が閾値未満となった場合には、予め定められた設定に従い再配置処理を行う。
【００６３】
ここで、例えば、計算機５０における消費電力を低減するように設定されている場合には、リソース管理ブロック１４０は、１つの計算機でプロセスを処理するほうが消費電力は少ないため、複数の計算機５０で処理していたプロセスを１つの計算機５０で処理するように再配置処理を行う。
【００６４】
そして、リソース管理ブロック１４０は、再配置処理により決定した割り当ての内容を示すスケジュール情報をスケジューラブロック１６０に出力する。
【００６５】
経路計算ブロック１５０は、再配置処理において新たに計算機５０を割り当てる場合に、その計算機５０とデータの転送を行う必要がある他の計算機５０とを接続するネットワーク経路を計算する。
【００６６】
ここで、ネットワーク経路の計算には、計算機５０同士の最短経路だけでなく、ネットワークの混雑を避けるために、迂回経路を求めることも含まれる。そのため、経路計算ブロック１５０は、ネットワーク接続する際のリンクコスト、ポリシー管理ブロック１１０に設定されたポリシーなど、ネットワーク経路の計算に必要な情報をリソース管理ブロック１４０から取得する。
【００６７】
そして、経路計算ブロック１５０は、計算したネットワーク経路を示す経路計算結果をリソース管理ブロック１４０に出力する。
【００６８】
スケジューラブロック１６０は、リソース管理ブロック１４０から出力されたスケジュール情報に基づきネットワーク装置３０や計算機５０のスケジューリングを行い、再配置処理により処理するプロセスの設定や通信設定の変更が必要となるネットワーク装置３０や計算機５０に対して、必要な設定変更を要求するように設定指示ブロック１７０に指示する。
【００６９】
また、スケジューラブロック１６０は、アプリケーションへのネットワーク装置３０や計算機５０の割り当てが無効となった場合には、その旨をネットワーク装置３０や計算機５０に通知するように設定指示ブロック１７０に指示する。
【００７０】
設定指示ブロック１７０は、スケジューラブロック１６０からの指示に基づき、管理インタフェース１２０を介して、種々の内容の通知や要求をネットワーク装置３０に送信する。
【００７１】
ここで、設定指示ブロック１７０から送信される通知には、例えば、計算機５０に対する、新たにプロセスへの割り当てを行った旨の通知がある。
【００７２】
また、設定指示ブロック１７０から送信される要求には、例えば、計算機５０に処理するプロセスの設定の変更を要求したり、ネットワーク装置３０および計算機５０にデータの転送先の設定の変更を要求したりする設定変更要求がある。
【００７３】
次に、ネットワーク装置３０の構成について説明する。
【００７４】
図３は、ネットワーク装置３０の構成を示すブロック図である。
【００７５】
図３に示すネットワーク装置３０は、ネットワークインタフェース３１０と、管理インタフェース３２０と、通信設定管理ブロック３３０と、通信処理ブロック３４０と、ローカルモニタブロック３５０と、を有する。
【００７６】
ネットワークインタフェース３１０は、計算機５０や他のネットワーク装置３０とのインタフェースであり、ネットワークポートを１個以上含む。
【００７７】
そして、ネットワークインタフェース３１０は、計算機５０から送信されてきた計算機モニタ情報を受信するとともに、管理装置１０から送信されてきた計算機５０に対する通知や要求を計算機５０に送信する。
【００７８】
管理インタフェース３２０は、管理装置１０とのインタフェースである。
【００７９】
なお、管理インタフェース３２０は、ネットワークインタフェース３１０と物理的に異なるインタフェースであっても、ネットワークインタフェース３１０に含まれるネットワークポートの一部であってもよい。
【００８０】
管理インタフェース３２０は、管理装置１０から送信されてきた計算機５０に対する新たにプロセスへの割り当てを行った旨の通知や、ネットワーク装置３０および計算機５０に対するデータの転送先の設定の変更を要求する設定変更要求などを受信するとともに、ネットワーク装置モニタ情報やネットワークインタフェース３１０により受信された計算機モニタ情報を管理装置１０に送信する。
【００８１】
通信設定管理ブロック３３０は、自装置からのデータの転送先を示す通信設定を保持する。具体的には、自装置に転送されてきたデータの転送先のネットワークポートの設定などが保持される。
【００８２】
そして、通信設定管理ブロック３３０は、管理装置１０から通信設定の変更を要求する設定変更要求が送信されると、その設定変更要求に従い通信設定を変更する。
【００８３】
通信処理ブロック３４０は、通信設定管理ブロック３３０に設定された通信設定に従い、自装置に転送されてきたデータの処理を行う。
【００８４】
また、通信処理ブロック３４０は、後述するローカルモニタブロック３５０から出力されたネットワーク装置モニタ情報や、ネットワークインタフェース３１０により受信された計算機モニタ情報を、管理インタフェース３２０を介して管理装置１０に送信する。
【００８５】
ローカルモニタブロック３５０は、自装置の利用状況や負荷状況をモニタする。
【００８６】
具体的には、自機の利用状況としてモニタされるのは、自装置においてデータの転送を行っているか否かなどである。
【００８７】
また、自機の負荷状況としてモニタされるのは、ネットワークインタフェース３１０に含まれる各ネットワークポートで転送を行う単位時間当たりのデータ量や、転送を行うデータを格納する通信バッファの状態、通信処理ブロック３４０の負荷、自装置の温度、消費電力などのパラメータである。
【００８８】
そして、ローカルモニタブロック３５０は、自装置の利用状況や負荷状況を示すネットワーク装置モニタ情報を通信処理ブロック３４０に出力する。
【００８９】
次に、計算機５０の構成について説明する。
【００９０】
図４は、計算機５０の構成を示すブロック図である。
【００９１】
図４に示す計算機５０は、ネットワークインタフェース５１０と、通信設定管理ブロック５２０と、プロセス管理ブロック５３０と、演算処理ブロック５４０と、ローカルモニタブロック５５０とを、有する。
【００９２】
ネットワークインタフェース５１０は、ネットワーク装置３０とのインタフェースであり、通信を行うためのネットワークポートを１個以上含む。
【００９３】
そして、ネットワークインタフェース５１０は、ネットワーク装置３０を介して、管理装置１０から送信されてきた計算機５０に対する通知や要求を受信するとともに、管理装置１０に計算機モニタ情報を送信する。
【００９４】
なお、これらの送受信は、計算機５０と管理装置１０とを直接接続すれば、ネットワーク装置３０を介さず行うことも可能である。
【００９５】
また、ネットワークインタフェース５１０は、ネットワーク装置３０を介して、同時並行的にプロセスの処理を行う他の計算機５０との間でデータの送受信を行う。
【００９６】
通信設定管理ブロック５２０は、自機からのデータの転送先を示す通信設定を保持し、管理装置１０から通信設定の変更を要求する設定変更要求が送信されると、その設定変更要求に従い通信設定を変更する。
【００９７】
プロセス管理ブロック５３０は、自機にて処理するプロセスの設定を保持する。
【００９８】
そして、プロセス管理ブロック５３０は、管理装置１０から自機にて処理するプロセスの設定の変更を要求する設定変更要求が送信されると、その設定変更要求に従い設定を変更する。
【００９９】
演算処理ブロック５４０は、プロセス管理ブロック５３０に設定された処理するプロセスの設定に従い、自機に割り当てられたプロセスを処理する。
【０１００】
また、演算処理ブロック５４０は、通信設定管理ブロック５２０に設定された通信設定に従い、ネットワークインタフェース５１０を介して、ネットワーク装置３０にデータを転送したり、計算機モニタ情報を送信したりする。
【０１０１】
なお、演算処理ブロック５４０は、汎用のメモリやＣＰＵ、特定の処理に特化したＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ上に搭載された回路、またはこれらの組み合わせにより実現される。
【０１０２】
ローカルモニタブロック５５０は、自機の利用状況や負荷状況をモニタする。
【０１０３】
具体的には、自機の利用状況としてモニタされるのは、自機においてプロセスの処理を行っているか否かなどである。
【０１０４】
また、自機の負荷状況としてモニタされるのは、ネットワークインタフェース５１０に含まれる各ネットワークポートで転送を行う単位時間当たりのデータ量や、転送するデータを格納する通信バッファの状態、プロセスを処理するＣＰＵやメモリの利用率、自機の温度、消費電力などのパラメータである。
【０１０５】
そして、ローカルモニタブロック５５０は、自機の利用状況や負荷状況を示す計算機モニタ情報を演算処理ブロック５４０に出力する。
【０１０６】
次に、管理装置１０による再配置処理の動作について説明する。
【０１０７】
まず、リソース管理ブロック１４０は、負荷情報と重み情報とに基づき、各ネットワーク装置３０および計算機５０の負荷量を求める。そして、リソース管理ブロック１４０は、ネットワーク装置３０または計算機５０の負荷量が閾値を越えているかに基づき、再配置処理が必要であるか否かを判定する。
【０１０８】
そして、再配置処理が必要であると判定した場合、リソース管理ブロック１４０は、ポリシー管理ブロック１１０に設定されたポリシーに従い、負荷量が閾値を超えているネットワーク装置３０または計算機５０が割り当てられているアプリケーションに、新たに割り当てる計算機５０の候補を選択する。
【０１０９】
なお、候補の選択の際には、リソース管理ブロック１４０は、新たにアプリケーションを割り当てることが、計算機５０の負荷状況から適さない場合には、その計算機５０を除外することができる。
【０１１０】
そして、リソース管理ブロック１４０は、選択した各計算機５０について、新たにアプリケーションを割り当てた場合に、その計算機５０とデータの転送を行う他の計算機５０とを接続するネットワーク経路の計算を経路計算ブロック１５０に指示する。
【０１１１】
そして、リソース管理ブロック１４０は、候補として選択された計算機５０およびネットワーク装置３０の負荷状況に基づき、どのネットワーク装置３０と計算機５０とを、どれだけの期間割り当てるかを決定する。
【０１１２】
なお、割り当てる期間には、１０分や１時間などの時間を指定することや、計算機５０に他のプロセスが割り当てられるまで、など種々の期間を割り当てることができる。
【０１１３】
次に、管理装置１０による再配置処理の動作について、図５および図６を参照して説明する。
【０１１４】
図５は、管理装置１０による再配置処理の動作の一例を説明するための図である。
【０１１５】
具体的には、プロセスを処理する計算機５０の負荷量が閾値を超えた場合に、再配置処理を行う管理装置１０の動作を説明するための図である。
【０１１６】
なお、以下の説明では、予め定められた計算機５０およびネットワーク装置３０の割り当てに従って、アプリケーションが実行されているものとする。
【０１１７】
図５に示す管理システムは、例として、４個のネットワーク装置３０（３０Ｗ，３０Ｘ，３０Ｙ，３０Ｚ）と、４個の計算機５０（５０Ａ，５０Ｂ，５０Ｃ，５０Ｄ）と、を有する。
【０１１８】
また、重み情報として、計算機５０のＣＰＵの利用率を、計算機５０の負荷量とするとされているとする。この場合、管理装置１０は、各計算機５０から送信されてきた計算機モニタ情報に含まれるＣＰＵの利用率を各計算機の負荷量とする。なお、以下では、計算機５０のＣＰＵの利用率を、計算機の利用率と称する。
【０１１９】
図５の例では、計算機５０Ｂ，５０Ｃ，５０Ｄの利用率がそれぞれ、８０％、５０％、１０％である。
【０１２０】
また、各ネットワーク装置３０間に付された数値は、そのネットワーク装置３０間でのネットワーク経路の利用率を示している。従って、ネットワーク装置３０Ｗ，３０Ｘ間、ネットワーク装置３０Ｘ，３０Ｙ間、ネットワーク装置３０Ｙ，３０Ｚ間、ネットワーク装置３０Ｚ，３０Ｘ間のネットワーク経路の利用率はそれぞれ、１０％，１０％，１０％，８０％である。
【０１２１】
ここで、ネットワーク経路の利用率とは、例えば、各ネットワーク装置３０間で転送可能な単位時間当たりのデータ量である最大データ転送量に対して、単位時間当たりに転送が行われているデータのデータ量の割合を示す値である。
【０１２２】
なお、管理装置１０は、各ネットワーク装置３０間の最大データ転送量を、例えば、ネットワークインタフェース３１０に含まれるネットワークポートの仕様から求めることができる。これは、ネットワークポートの最大データ転送量を示す転送速度は、ネットワークポートの仕様から求めることができるからである。
【０１２３】
そして、管理装置１０は、各ネットワーク装置３０間の最大データ転送量と、各ネットワーク装置３０から送信されてきたネットワーク装置モニタ情報に含まれる各ネットワークポートで転送を行う単位時間当たりのデータ量とから、ネットワーク装置３０間でのネットワークの利用率を求めることができる。
【０１２４】
なお、データの転送を行うネットワーク装置３０同士のネットワークポートの仕様によっては、最大データ転送量が異なる場合がある。この場合には、最大データ転送量が少ないネットワークポートの最大データ転送量が、そのネットワーク装置３０間での最大データ転送量となる。
【０１２５】
まず、管理装置１０は、プロセスを処理している計算機５０Ａの負荷量が閾値を超えると、再配置処理を行うために、ポリシーに基づき、計算機５０Ａで処理されているプロセスを含むアプリケーションに新たに割り当てる計算機５０の候補として計算機５０Ｂ，５０Ｃ，５０Ｄをリストアップする。
【０１２６】
次に、管理装置１０は、ポリシーに基づき、割り当てることが可能なネットワーク装置３０を介する、計算機５０Ａと計算機５０Ｂ，５０Ｃ，５０Ｄとをそれぞれ接続する１つまたは複数のネットワーク経路の計算を行う。
【０１２７】
図５の例では、例えば、計算機５０Ａと計算機５０Ｄとの間では、ネットワーク装置３０Ｗとネットワーク装置３０Ｚとを介するネットワーク経路（ｒｏｏｔ（１））と、ネットワーク装置３０Ｗとネットワーク装置３０Ｘとネットワーク装置３０Ｙとネットワーク装置３０Ｚとを介するネットワーク経路（ｒｏｏｔ（２））とが得られる。
【０１２８】
次に、リソース管理ブロック１４０は、計算機５０Ａで処理されているプロセスを含むアプリケーションに新たに割り当てるネットワーク装置３０と計算機５０とを決定する。
【０１２９】
なお、データの転送はネットワーク経路上のネットワーク装置３０により行われるので、ネットワーク経路を決定することにより、アプリケーションに割り当てるネットワーク装置３０を決定することができる。
【０１３０】
ここで、特許文献１に記載の管理装置は、プロセスを処理する計算機５０の割り当てを決定するのみである。そこで、例えば、特許文献１に記載の管理装置が、計算機の利用率が最も低い計算機５０Ｄを割り当てると決定したとする。
【０１３１】
また、特許文献１では、ネットワーク経路の決定は、ネットワーク装置３０により行われる。その結果、計算機５０Ａと計算機５０Ｄとを接続する最短経路であるｒｏｏｔ（１）がネットワーク経路として決定されたとする。
【０１３２】
ここで、ｒｏｏｔ（１）上のネットワーク装置３０Ｗ，３０Ｚ間のネットワーク経路の利用率は８０％と高い。この場合、計算機５０Ａと計算機５０Ｄとの間で転送されるデータ量が増大すると、計算機５０Ａと計算機５０Ｄとの間でのデータの転送が進まないことにより、アプリケーションに計算機５０Ｄを新たに割り当てても、計算機５０Ｄに見合った処理性能を得られないことがある。
【０１３３】
一方、本実施形態の管理装置１０は、アプリケーションに新たに割り当てる計算機５０およびネットワーク装置３０を、各ネットワーク装置３０と各計算機５０の負荷状況とに基づき決定する。
【０１３４】
ここで、例えば、計算機の利用率が５０％未満、かつ、ネットワークの利用率が５０％未満の計算機５０およびネットワーク装置３０を割り当てるという条件が、ポリシー管理ブロック１１０に予め設定されていたとすると、管理装置１０は、その条件に従い、新たに割り当てる計算機５０と、ネットワーク経路とを決定する。
【０１３５】
計算機の利用率が５０％未満であるのは計算機５０Ｄだけなので、管理装置１０は、計算機５０Ｄを新たに割り当てる計算機５０として決定する。
【０１３６】
また、計算機５０Ａと計算機５０Ｄとを接続するネットワーク経路として、ｒｏｏｔ（１）とｒｏｏｔ（２）が得られているが、管理装置１０は、ｒｏｏｔ（１）上のネットワーク装置３０Ｗ，３０Ｚ間のネットワークの利用率は８０％であるのに対し、ｒｏｏｔ（２）上のネットワーク装置３０Ｗ，３０Ｘ間、ネットワーク装置３０Ｘ，３０Ｙ間、ネットワーク装置３０Ｙ，３０Ｚ間のネットワークの利用率は全て１０％であるので、設定された条件に従い、ｒｏｏｔ（２）をネットワーク経路として決定し、ｒｏｏｔ（２）上の各ネットワーク装置３０をアプリケーションに新たに割り当てるネットワーク装置３０として決定する。
【０１３７】
ｒｏｏｔ（２）は、ｒｏｏｔ（１）よりも多くのネットワーク装置３０を介し、迂回経路となる。しかし、ｒｏｏｔ（２）上の各ネットワーク装置３０間のネットワークの利用率は低いため、計算機５０Ａと計算機５０Ｄとの間で転送するデータの量の増大にも対応することができ、新たに割り当てた計算機５０Ｄに見合った処理能力を得ることができる。
【０１３８】
なお、例えば、計算機の利用率が６０％未満、かつ、ネットワークの利用率が５０％未満のネットワーク装置３０および計算機５０を割り当てるという条件が予め設定されていたとすると、計算機５０Ｃと計算機５０Ｄとが計算機の利用率が６０％未満という設定を満たす。
【０１３９】
そして、計算機５０Ａと計算機５０Ｃとの間では、ネットワーク装置３０Ｗとネットワーク装置３０Ｘとネットワーク装置３０Ｙとを介する経路が、また、計算機５０Ａと計算機５０Ｄとの間では、上述のｒｏｏｔ（２）の経路が、ネットワークの利用率が５０％未満という設定を満たす。
【０１４０】
このように、複数の計算機５０とネットワーク経路とが、条件を満たす場合、例えば、その複数の計算機５０およびネットワーク経路の中から任意に選択する、計算機の利用率が低い計算機５０を優先する、ネットワーク経路上のネットワーク装置３０の数は３個以下にする、などの条件を予め設定しておくことで、管理装置１０は、アプリケーションに新たに割り当てるネットワーク装置３０と計算機５０とを決定することができる。
【０１４１】
図６は、管理装置１０による再配置処理の動作の他の一例を説明するための図である。
【０１４２】
具体的には、ネットワーク装置３０の負荷状況を示す値が閾値を超えた場合に、再配置処理を行う管理装置１０の動作を説明するための図である。
【０１４３】
図６では、図５と同様に、計算機５０Ｂ，５０Ｃ，５０Ｄに付された数字は、各計算機の利用率を示し、また、各ネットワーク装置３０間に付された数字は、そのネットワーク装置３０間でのネットワーク経路の利用率を示している。
【０１４４】
また、図６では、計算機５０Ａと計算機５０Ｄとの間で、ネットワーク装置３０Ｗとネットワーク装置３０Ｚとを介するネットワーク経路（ｒｏｏｔ（３））でデータの転送が行われ、計算機５０Ｂと計算機５０Ｄとの間で、ネットワーク装置３０Ｘとネットワーク装置３０Ｗとネットワーク装置３０Ｚとを介するネットワーク経路（ｒｏｏｔ（４））でデータの転送が行われているとする。
【０１４５】
なお、上述したように、管理装置５０は、ネットワーク経路の利用率を求める際に、各ネットワーク装置３０のネットワークポートの単位時間当たりのデータ転送量をモニタしている。そこで、重み情報として、ネットワークポートの単位時間当たりのデータ転送量を、ネットワーク装置３０の負荷量とするとされているとすると、その負荷量が閾値を超えた場合に、再配置処理を行う。
【０１４６】
ここで、ネットワーク装置３０Ｗ，３０Ｚ間のネットワークの利用率が８０％と高くなり、ネットワーク装置３０Ｗやネットワーク装置３０Ｚの負荷量が閾値を超えたとすると、管理装置１０は、計算機５０Ａと５０Ｂとに対して、計算機５０Ｄで処理されているプロセスを含むアプリケーションに新たに割り当てる計算機５０の候補の選択と、ネットワーク経路の計算とを行う。
【０１４７】
具体的には、管理装置１０は、まず、計算機５０Ｄが計算機５０Ａとの間で同時並行的に処理しているプロセスを割り当てる候補として計算機５０Ｂ，５０Ｃ，５０Ｄを選択する。なお、図６の例では、計算機５０Ｄの負荷量が閾値を超えたわけではないので、管理装置１０は、計算機５０Ｄも候補として選択する。
【０１４８】
また、管理装置１０は、計算機５０Ｄが計算機５０Ｂとの間で同時並行的に処理しているプロセスを割り当てる候補として計算機５０Ａ，５０Ｃ，５０Ｄを選択する。この場合も、計算機５０Ｄの負荷量が閾値を超えたわけではないので、管理装置１０は、計算機５０Ｄも候補として選択する。
【０１４９】
そして、管理装置１０は、計算機５０Ａと計算機５０Ｂ，５０Ｃ，５０Ｄとをそれぞれ接続するネットワーク経路と、計算機５０Ｂと計算機５０Ａ，５０Ｃ，５０Ｄとをそれぞれ接続するネットワーク経路と、を計算する。
【０１５０】
そして、管理装置１０は、予め設定された条件に従い、割り当てる計算機５０とネットワーク経路とを決定する。
【０１５１】
図６の例では、管理装置１０は、計算機５０Ｃを、計算機５０Ｄが計算機５０Ａとの間で同時並行的に処理していたプロセスに割り当てる計算機５０として決定する。また、管理装置１０は、ｒｏｏｔ（５）を計算機５０Ａと計算機５０Ｃとを接続するネットワーク経路として決定し、ｒｏｏｔ（５）上のネットワーク装置３０Ｗとネットワーク装置３０Ｘとネットワーク装置３０Ｙとをそのアプリケーションに割り当てるネットワーク装置３０として決定する。
【０１５２】
また、管理装置１０は、計算機５０Ｄの、計算機５０Ｂとの間で同時並行的に処理していたプロセスへの割り当ては変更せず、ｒｏｏｔ（６）を計算機５０Ｂと計算機５０Ｄとを接続するネットワーク経路として決定し、ｒｏｏｔ（６）上のネットワーク装置３０Ｘとネットワーク装置３０Ｙとネットワーク装置３０Ｚとをそのアプリケーションに割り当てるネットワーク装置３０として決定する。
【０１５３】
このように管理装置１０は、各計算機５０やネットワーク装置３０の負荷状況に基づき、アプリケーションに新たに割り当てるネットワーク装置３０および計算機５０を決定する。
【０１５４】
次に、本実施形態の管理システムの動作について説明する。
【０１５５】
（１）アプリケーションに新たに計算機５０を割り当てる際の動作
図７は、本実施形態の管理システムによるアプリケーションに新たに計算機５０を割り当てる際の動作を示すシーケンス図である。
【０１５６】
まず、あるプロセスを処理している計算機５０（以下、ローカル計算機５１と称する）は、自機の利用状況や負荷状況をモニタし、管理装置１０に計算機モニタ情報を送信する（ステップＳ１０）。
【０１５７】
なお、ローカル計算機５１は、定期的、あるいは、自機の負荷量が所定の閾値を超えた場合など、種々のタイミングで計算機モニタ情報を送信することができる。
【０１５８】
管理装置１０は、ローカル計算機５１の負荷量が閾値を超えているかに基づき、再配置処理が必要であるか否かを判定する。
【０１５９】
再配置処理が必要であると判定した場合、管理装置１０は、ローカル計算機５１で処理されているプロセスの一部を新たに割り当てる計算機５０（以下、リモート計算機５２と称する）と、ローカル計算機５１とリモート計算機５２とを接続するネットワーク経路とを決定する（ステップＳ２０）。
【０１６０】
そして、管理装置１０は、決定したネットワーク経路上のネットワーク装置３０に、通信設定の変更を要求する設定変更要求を送信する（ステップＳ３０）。
【０１６１】
設定変更要求を受信したネットワーク装置３０は、その設定変更要求に従い、自装置の通信設定を変更し（ステップＳ４０）、設定変更が完了すると、その旨を示すＡＣＫ（Ａｃｋｎｏｗｌｅｄｇｅ）を管理装置１０に送信する（ステップＳ５０）。
【０１６２】
管理装置１０は、ネットワーク装置３０からＡＣＫを受信すると、新たにアプリケーションへの割り当てを行った旨の通知を、処理するプロセスの設定や通信設定の変更を要求する設定変更要求とともにリモート計算機５２に送信する（ステップＳ６０）。
【０１６３】
リモート計算機５２は、管理装置１０から送信されてきた設定変更要求に従い、処理するプロセスの設定の変更、プロセスの処理の開始、通信設定の変更などの必要な処理を行い（ステップＳ７０）、処理が完了すると、その旨を示すＡＣＫを管理装置１０に送信する（ステップＳ８０）。
【０１６４】
管理装置１０は、リモート計算機５２からＡＣＫを受信すると、ローカル計算機５１で処理していたプロセスにリモート計算機５２を新たに割り当てた旨と、そのリモート計算機５２に関する情報とを示す通知をローカル計算機５１に送信する（ステップＳ９０）。
【０１６５】
ローカル計算機５１は、管理装置１０からの通知を受信すると、管理装置１０からの通知の内容をリモート計算機５２での処理の対象となったプロセスに通知する（ステップＳ９５）。
【０１６６】
なお、管理装置１０は、ステップＳ３０からステップＳ５０までの処理を行う前に、ステップＳ６０からステップＳ８０までの処理を先に行うことも可能である。例えば、ローカル計算機５１で既に処理を開始しているプロセスをリモート計算機５２で処理する場合には、先にリモート計算機５２の設定を行うことが望ましい。
【０１６７】
また、管理装置１０は、ステップＳ３０からステップＳ５０までの処理と、ステップＳ６０からステップＳ８０までの処理とをオーバラップさせることも可能である。この場合、管理装置１０は、ネットワーク装置３０およびリモート計算機５２からＡＣＫの受信を待つという処理を行うことになる。
【０１６８】
次に、管理装置１０の動作について説明する。
【０１６９】
図８は、図７におけるステップＳ２０からステップＳ３０、ステップＳ６０およびステップＳ９０の管理装置１０の動作を示すフローチャートである。
【０１７０】
まず、リソース管理ブロック１４０は、ローカル計算機５１の負荷量が所定の閾値を超えているかに基づき、再配置処理が必要であるか否かを判定する。
【０１７１】
再配置処理が必要であると判定した場合、ポリシーに基づき、ローカル計算機５１で処理されているプロセスの一部を新たに割り当てる計算機５０の候補を選択する（ステップＳ２１０）。
【０１７２】
次に、リソース管理ブロック１４０は、アプリケーションに新たに割り当てられる候補として選択された計算機５０の負荷状況に基づき、アプリケーションに割り当てることができる計算機５０が存在するか否かを判定する（ステップＳ２２０）。
【０１７３】
アプリケーションに割り当てることができる計算機５０が存在しない場合（ステップＳ２２０：ＮＯ）、リソース管理ブロック１４０は、再配置処理を終了する。
【０１７４】
アプリケーションに割り当てることができる計算機５０が存在する場合（ステップＳ２２０：ＹＥＳ）、リソース管理ブロック１４０は、その計算機５０とローカル計算機５１とを接続するネットワーク経路の計算を経路計算ブロック１５０に指示し、経路計算ブロック１５０は、その指示に基づき、ネットワーク経路を計算する（ステップＳ２３０）。
【０１７５】
リソース管理ブロック１４０は、アプリケーションに割り当てることができる計算機５０および経路計算ブロック１５０により計算されたネットワーク経路上のネットワーク装置３０の負荷状況に基づき、リモート計算機５２と、ローカル計算機５１とリモート計算機５２とを接続するネットワーク経路とを決定する。また、リソース管理ブロック１４０は、リモート計算機５２と、決定したネットワーク経路上のネットワーク装置３０とを割り当てる期間を決定する（ステップＳ２４０）。なお、リソース管理ブロック１４０は、複数の計算機５０をリモート計算機５２として決定することもある。
【０１７６】
次に、リソース管理ブロック１４０は、再配置処理により決定した割り当ての内容を示すスケジュール情報をスケジューラブロック１６０に出力する。
【０１７７】
スケジューラブロック１６０は、スケジュール情報に基づきスケジューリングを行い、通信設定の変更が必要なネットワーク装置３０に対して、設定変更を要求するように設定指示ブロックに指示し、設定指示ブロック１７０は、ネットワーク装置３０に設定変更要求を送信する（ステップＳ３００）。
【０１７８】
次に、設定指示ブロック１７０は、ステップＳ３００で設定変更要求を送信した全てのネットワーク装置３０からＡＣＫを受信したか否かを判定する（ステップＳ３１０）。
【０１７９】
全てのネットワーク装置３０からＡＣＫを受信していない場合（ステップＳ３１０：ＮＯ）、設定指示ブロック１７０は、ステップＳ３１０の処理を繰り返す。
【０１８０】
全てのネットワーク装置３０からＡＣＫを受信した場合（ステップＳ３１０：ＹＥＳ）、設定指示ブロック１７０は、新たにアプリケーションへの割り当てを行った旨の通知を、処理するプロセスの設定や通信設定の変更を要求する設定変更要求とともにリモート計算機５２に送信する（ステップＳ６００）。
【０１８１】
次に、設定指示ブロック１７０は、ステップＳ６００で通知を送信した全てのリモート計算機５２からＡＣＫを受信したか否かを判定する（ステップＳ６１０）。
【０１８２】
全てのリモート計算機５２からＡＣＫを受信していない場合（ステップＳ６１０：ＮＯ）、設定指示ブロック１７０は、ステップＳ６１０の処理を繰り返す。
【０１８３】
全てのリモート計算機５２からＡＣＫを受信した場合（ステップＳ６１０：ＹＥＳ）、設定指示ブロック１７０は、その旨をスケジューラブロック１６０に通知するともに、ローカル計算機５１で処理していたプロセスにリモート計算機５２を新たに割り当てた旨と、そのリモート計算機５２に関する情報とを示す通知をローカル計算機５１に送信する（ステップＳ９００）。
【０１８４】
なお、管理装置１０は、ステップＳ３００からステップＳ３１０までの処理を行う前に、ステップＳ６００からステップＳ６１０までの処理を先に行うことも可能である。
【０１８５】
また、管理装置１０は、ステップＳ３００からステップＳ３１０までの処理と、ステップＳ６００からステップＳ６１０までの処理とをオーバラップさせることも可能である。
【０１８６】
次に、図７に示すローカル計算機５１の動作について図９および図１０を参照して説明する。
【０１８７】
図９は、図７におけるステップＳ１０のローカル計算機５１の動作を示すフローチャートである。
【０１８８】
ローカルモニタブロック５５０は、自機の利用状況や負荷状況をモニタし（ステップＳ１００）、演算処理ブロック５４０は、計算機モニタ情報をネットワーク装置３０に送信する（ステップＳ１１０）。
【０１８９】
図１０は、図７におけるステップＳ９５のローカル計算機５１の動作を示すフローチャートである。
【０１９０】
演算処理ブロック５４０は、管理装置１０からローカル計算機５１で処理していたプロセスにリモート計算機５２を新たに割り当てた旨の通知が送信されたか否かを判定する（ステップＳ９５０）。
【０１９１】
なお、管理装置１０から通知が送信されたか否かを判定する方法は、ローカル計算機５１が特定の記憶領域をポーリングする方法や、ローカル計算機５１内で、管理装置１０から送信された通知に関連付けられた割り込みを発生させ、これに基づき通知が送信されたか否かを判定する方法などがある。
【０１９２】
管理装置１０から通知が送信されていない場合（ステップＳ９５０：ＮＯ）、演算処理ブロック５４０は、ステップＳ９５０の処理を繰り返す。
【０１９３】
管理装置１０から通知が送信された場合（ステップＳ９５０：ＹＥＳ）、プロセス管理ブロック５３０は、リモート計算機５２での処理の対象となったプロセスに、管理装置１０からの通知の内容を通知する（ステップＳ９６０）。
【０１９４】
なお、リモート計算機５２での処理の対象となったプロセスが、分散コンピューティング環境１で処理されることを想定して記述されたプログラムであれば、ローカル計算機５１からの通知を受信する機構が存在することが期待できる。また、そのような機構が存在しなくても、ローカル計算機５１からの通知の内容に従って、プロセスの処理に使用される汎用的なプログラムであるライブラリを変更するようなライブラリフックな機構を導入することで、通知の内容に従って、そのプロセスを処理する計算機５０を、ローカル計算機５１からリモート計算機５２に変更することができる。
【０１９５】
次に、図７に示すネットワーク装置３０の動作について説明する。
【０１９６】
図１１は、図７におけるステップＳ４０からステップＳ５０までのネットワーク装置３０の動作を示すフローチャートである。
【０１９７】
通信処理ブロック３４０は、管理装置１０から通信設定の変更を要求する設定変更要求が送信されたか否かを判定する（ステップＳ４００）。
【０１９８】
なお、管理装置１０から設定変更要求が送信されたか否かの判定は、上述したローカル計算機５１が管理装置１０から通知を送信されたか否かを判定するのと同様の方法により行うことができる。
【０１９９】
設定変更要求が送信されていない場合（ステップＳ４００：ＮＯ）、通信処理ブロック３４０は、ステップＳ４００の処理を繰り返す。
【０２００】
設定変更要求が送信された場合（ステップＳ４００：ＹＥＳ）、通信設定管理ブロック３３０は、送信されてきた設定変更要求に従い通信設定を変更する（ステップＳ４１０）。
【０２０１】
通信処理ブロック３４０は、設定変更が完了すると、その旨を示すＡＣＫを管理装置１０に送信する（ステップＳ５００）。
【０２０２】
次に、図７に示すリモート計算機５２の動作について説明する。
【０２０３】
図１２は、図７におけるステップＳ７０からステップＳ８０までのリモート計算機５２の動作を示すフローチャートである。
【０２０４】
演算処理ブロック５４０は、管理装置１０から新たにアプリケーションへの割り当てを行った旨の通知が送信されたか否かを判定する（ステップＳ７００）。
【０２０５】
なお、管理装置１０から通知が送信されたか否かの判定は、上述したローカル計算機５１が管理装置１０から通知を送信されたか否かを判定するのと同様の方法により行うことができる。
【０２０６】
管理装置１０から通知が送信されていない場合（ステップＳ７００：ＮＯ）、演算処理ブロック５４０は、ステップＳ７００の処理を繰り返す。
【０２０７】
管理装置１０から通知が送信された場合（ステップＳ７００：ＹＥＳ）、通知とともに送信されてきた、自機で処理するプロセスの設定や通信設定の変更を要求する設定変更要求に従い、通信設定管理ブロック５２０およびプロセス管理ブロック５３０は、必要な処理を行う（ステップＳ７１０）。
【０２０８】
演算処理ブロック５４０は、通信設定管理ブロック５２０およびプロセス管理ブロック５３０による処理が完了すると、その旨を示すＡＣＫを管理装置１０に送信する（ステップＳ８００）。
【０２０９】
（２）アプリケーションに新たにネットワーク装置３０を割り当てる際の動作
図１３は、本実施形態の管理システムによるアプリケーションに新たにネットワーク装置３０を割り当てる際の動作を示すシーケンス図である。
【０２１０】
なお、図１３において、図７と同様の処理については同一の符号を付し、詳細な説明を省略する。
【０２１１】
まず、ネットワーク装置３０Ｗは、自装置の利用状況や負荷状況をモニタし、ネットワーク装置モニタ情報を管理装置１０に送信する（ステップＳ１８）。
【０２１２】
管理装置１０は、ネットワーク装置３０Ｗの負荷量が閾値を超えているかに基づき、再配置処理が必要であるか否かを判定する。そして、再配置処理が必要であると判定した場合、新たにアプリケーションに割り当てるリモート計算機５２と、リモート計算機５２とデータの転送を行う必要がある計算機とを接続するネットワーク経路とを決定する（ステップＳ２０）。
【０２１３】
そして、管理装置１０は、ローカル計算機５１で処理していたプロセスにリモート計算機５２を新たに割り当てた旨の通知を、処理するプロセスの設定や通信設定の変更を要求する設定変更要求とともに、それらの設定の変更が必要となる全ての計算機５０に送信する（ステップＳ６０）。
【０２１４】
管理装置１０から設定変更要求を送信された計算機５０は、その設定変更要求に従い、必要な処理を行い（ステップＳ７０）、処理が完了すると、その旨を示すＡＣＫを管理装置１０に送信する（ステップＳ８０）。
【０２１５】
通知を送信した全ての計算機５０からＡＣＫを受信すると、管理装置１０は、通信設定の変更が必要な全てのネットワーク装置３０（ネットワーク装置３０Ｗおよびネットワーク装置３０Ｘ）に設定変更要求を送信する（ステップＳ３０）。
【０２１６】
管理装置１０から設定変更要求を送信されたネットワーク装置３０は、その設定変更要求に従い、通信設定の変更を行い（ステップＳ４０）、設定変更が完了すると、その旨を示すＡＣＫを管理装置１０に送信する（ステップＳ５０）。
【０２１７】
なお、リモート計算機５２を新たに割り当てる必要が無く、ネットワーク経路のみを変更する場合も考えられ、この場合はステップＳ６０〜Ｓ８０の処理を実行しない。
（３）管理装置１０がモニタ情報の送信を要求する際の動作
図１４は、本実施形態の管理システムによる管理装置１０がモニタ情報の送信を要求し、送信されてきたモニタ情報に基づき、アプリケーションに割り当てる計算機５０を変更する際の動作を示すシーケンス図である。
【０２１８】
なお、図１４において、図７と同様の処理については同一の符号を付し、詳細な説明を省略する。
【０２１９】
また、以下では、管理装置１０が、計算機５０に計算機モニタ情報の送信を要求する場合を例として説明するが、ネットワーク装置３０にネットワーク装置モニタ情報の送信を要求する場合にも適用可能である。
【０２２０】
まず、管理装置１０は、設定指示ブロック１７０により、ローカル計算機５１に計算機モニタ情報の取得要求を送信する（ステップＳ１５）。
【０２２１】
ローカル計算機５１は、取得要求を受信すると、計算機モニタ情報を管理装置１０に送信する（ステップＳ１６）。
【０２２２】
管理装置１０は、送信されてきた計算機モニタ情報に基づき、ローカル計算機５１の負荷量が閾値を超えているような場合には、再配置処理を行う。
【０２２３】
そして、管理装置１０は、ローカル計算機５１に割り当てられているプロセスの一部を処理する、そのプロセスを含むアプリケーションに割り当てるリモート計算機５２と、ローカル計算機５１とリモート計算機５２とを接続するネットワーク経路とを決定する（ステップＳ２０）。
【０２２４】
次に、図１４に示すローカル計算機５１の動作について図１５および図１６を参照して説明する。
【０２２５】
図１５は、図１４におけるステップＳ１６のローカル計算機５１の動作を示すフローチャートである。
【０２２６】
まず、ローカルモニタブロック５５０は、定期的に自機の負荷状況をモニタする。
【０２２７】
そして、演算処理ブロック５４０は、管理装置１０から計算機モニタ情報の取得要求が送信されたか否かを判定する（ステップＳ１６０）。
【０２２８】
計算機モニタ情報の取得要求が送信されていない場合（ステップＳ１６０：ＮＯ）、演算処理ブロック５４０は、同様の処理を繰り返す。
【０２２９】
計算機モニタ情報の取得要求が送信された場合（ステップＳ１６０：ＹＥＳ）、演算処理ブロック５４０は、ローカルモニタブロック５５０によりモニタされている自機の最新の利用状況や負荷状況を示す計算機モニタ情報を管理装置１０に送信する（ステップＳ１６４）。
【０２３０】
図１６は、図１４におけるステップＳ１６のローカル計算機５１の他の動作を示すフローチャートである。
【０２３１】
なお、図１６において、図１５と同様の処理については同一の符号を付し、その説明を省略する。
【０２３２】
計算機モニタ情報の取得要求が送信された場合（ステップＳ１６０：ＹＥＳ）、ローカルモニタブロック５５０は、自機の負荷状況をモニタし（ステップＳ１６２）、演算処理ブロック５４０は、計算機モニタ情報を管理装置１０に送信する（ステップＳ１６４）。
【０２３３】
図１６においては、図１５と異なり、ローカルモニタブロック５５０は、取得要求を受信した場合にのみ、自機の負荷状況をモニタする。
【０２３４】
このようにすることで、取得要求の送信の頻度によっては、モニタを行う回数を減らすことができ、ローカル計算機５１におけるモニタのための負荷を削減することができる。
【０２３５】
このように本実施形態によれば、管理装置１０は、計算機５０およびネットワーク装置３０の負荷状況をモニタし、モニタした計算機５０またはネットワーク装置３０の負荷量が閾値を超えた場合、計算機５０およびネットワーク装置３０の負荷状況に基づいて、アプリケーションに計算機５０およびネットワーク装置３０を新たに割り当てる。
【０２３６】
そのため、管理装置１０は、計算機５０およびネットワーク装置３０の負荷状況に基づいて、アプリケーションに新たに割り当てる計算機５０およびネットワーク装置３０を決定するので、アプリケーションの実行のための負荷を分散させることができ、分散コンピューティング環境１の利用効率が低下するのを抑制することができる。
【０２３７】
（第２の実施形態）
本発明の第２の実施形態の管理システムは、第１の実施形態の管理システムと比較して、ネットワーク装置３０をネットワーク装置３５に変更した点が異なる。
【０２３８】
なお、計算機５０および管理装置１０の構成については、第１の実施形態と同様であるため、その説明を省略する。
【０２３９】
まず、管理装置１０の動作について説明する。
【０２４０】
管理装置１０は、リソース管理ブロック１４０により、計算機５０間で転送されるデータに対して識別情報を設定する。そして、管理装置１０は、データに対して設定した識別情報と、その識別情報が設定されたデータの転送先とを対応付けて定めた、または、識別情報が設定されたデータのうち、そのデータを破棄する識別情報を定めたフロー情報を設定する。そして、管理装置１０は、管理インタフェース１２０を介して、各ネットワーク装置３５に対して、設定したフロー情報を送信する。
【０２４１】
なお、識別情報は、転送元の計算機５０から転送されるデータに含まれる、ネットワーク装置３５の入力ポート、転送元の計算機５０のＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスやＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス、ポート番号、計算機５０が割り当てられているアプリケーションや、処理しているプロセスの固有のヘッダあるいはデータなどの、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）参照モデルにおける各階層のプロトコルに関する情報や、それらの組み合わせなどからなる。
【０２４２】
そして、識別情報に、どの情報を用いるかについては、予め計算機５０と管理装置１０との間で定められている。
【０２４３】
次に、計算機５０の動作について説明する。
【０２４４】
計算機５０は、管理装置１０との間で予め定められている情報を用いて、自機から転送するデータに識別情報を含めて、ネットワーク装置３５に転送する。
【０２４５】
次に、ネットワーク装置３５の構成について説明する。
【０２４６】
図１７は、本実施形態の管理システムにおけるネットワーク装置３５の構成を示すブロック図である。
【０２４７】
なお、図１７において、図３に示したネットワーク装置３０と同様の構成には同一の符号を付し、説明を省略する。
【０２４８】
図１７に示すネットワーク装置３５は、図３に示したネットワーク装置３０と比較して、通信設定管理ブロック３３０に代えてフロー管理ブロック３３５を設けた点が異なる。
【０２４９】
フロー管理ブロック３３５は、管理装置１０から送信されてきたフロー情報を保持する。
【０２５０】
そして、通信処理ブロック３４０は、自装置にデータが転送されてくると、フロー管理ブロック３３５に設定されたフロー情報に基づき、そのデータに含まれる識別情報に対応する転送先にそのデータを転送したり、そのデータを破棄したりする。
【０２５１】
次に、ネットワーク装置３５の動作について説明する。
【０２５２】
図１８は、ネットワーク装置３５の動作を示すフローチャートである。
【０２５３】
通信処理ブロック３４０は、自装置に送信されてきたデータについて、そのデータに含まれる識別情報を抽出する（ステップＳ３５１）。そして、通信処理ブロック３４０は、フロー管理ブロック３３５に設定されているフロー情報を照合し（ステップＳ３５２）、抽出したデータに含まれる識別情報が、フロー管理ブロック３３５に設定されているか否かを判定する（ステップＳ３５３）。
【０２５４】
データに含まれる識別情報が、フロー管理ブロック３３５に設定されている場合（ステップＳ３５３：ＹＥＳ）、通信処理ブロック３４０は、そのデータを、対応する転送先に転送したり、破棄したりする（ステップＳ３５４）。
【０２５５】
データに含まれる識別情報が、フロー管理ブロック３３５に設定されていない場合（ステップＳ３５３：ＮＯ）、通信処理ブロック３４０は、そのデータの破棄や、標準で設定されている転送先への転送、そのデータの転送先の外部装置への問い合わせなどの処理を行う（ステップＳ３５５）。
【０２５６】
なお、外部装置とは、データごとに、そのデータの処理内容を管理する管理サーバなどの装置を指す。
【０２５７】
ここで、第１の実施形態のネットワーク装置３０と、本実施形態のネットワーク装置３５とによるデータの転送の動作について、図１９および図２０を参照して説明する。
【０２５８】
まず、第１の実施形態のネットワーク装置３０によるデータの転送を説明する。
【０２５９】
図１９は、第１の実施形態のネットワーク装置３０によるデータの転送の動作の一例を説明する図である。
【０２６０】
図１９において、ネットワーク装置３０は、計算機５０Ａと計算機５０Ｂとの間、計算機５０Ａと計算機５０Ｃとの間で、それぞれデータの転送を行っている。
【０２６１】
なお、図１９において、計算機５０Ａからネットワーク装置３０に転送されるデータの「Ａ→Ｂ」は、計算機５０Ａから計算機５０Ｂに転送されるデータであることを示しており、そのデータに含まれる、転送先である計算機５０ＢのＭＡＣアドレスにより識別することができる。
【０２６２】
ここで、一般的に、ネットワーク装置３０は、データに含まれる転送先のＭＡＣアドレスに従って、データの転送を行う。
【０２６３】
従って、ネットワーク装置３０の通信設定には、「データに含まれるＭＡＣアドレスが計算機５０Ｂを示していれば計算機５０Ｂにデータを転送し、ＭＡＣアドレスが計算機５０Ｃを示していれば計算機５０Ｃにデータを転送する」という設定が行われる。そして、ネットワーク装置３０は、その通信設定に従い、データに含まれるＭＡＣアドレスに基づいて、データの転送を行う。
【０２６４】
ここで、再配置処理により、計算機５０Ｃで処理されていたプロセスを計算機５０Ｄで処理するように割り当てが変更されたとする。
【０２６５】
このとき、管理装置１０は、ネットワーク装置３０の通信設定を、「ＭＡＣアドレスが計算機５０Ｃを示していれば計算機５０Ｃにデータを転送する」から、「ＭＡＣアドレスが計算機５０Ｄを示していれば計算機５０Ｄにデータを転送する」に変更する。
【０２６６】
ここで、計算機５０Ａに対して、プロセスを処理する計算機が計算機５０Ｄに変更された旨の通知がされなかったとすると、計算機５０Ａは、計算機５０ＣのＭＡＣアドレスを含むデータを転送し続けることになる。そうすると、ネットワーク装置３０は、通信設定には、ＭＡＣアドレスが計算機５０Ｃを示す場合の設定が行われていないので、計算機５０Ａから転送されたデータ（Ａ→Ｃ）を転送することができない。
【０２６７】
そのため、データの転送元である計算機５０Ａは、プロセスを処理する計算機５０が変更されるたびに、変更された計算機５０に関する情報を管理装置１０から通知され、その通知に従い、通信設定を変更する必要があった。
【０２６８】
次に、本実施形態のネットワーク装置３５によるデータの転送を説明する。
【０２６９】
図２０は、本実施形態のネットワーク装置３５によるデータの転送の動作の一例を説明する図である。
【０２７０】
図２０においても、図１９と同様に、ネットワーク装置３５は、計算機５０Ａと計算機５０Ｂとの間、計算機５０Ａと計算機５０Ｃとの間で、それぞれデータ転送を行っている。
【０２７１】
そして、不図示の管理装置１０は、計算機５０Ａからネットワーク装置３５を介して計算機５０Ｂに転送されるデータに対する識別情報を「フロー１」とし、計算機５０Ａからネットワーク装置３５を介して計算機５０Ｂに転送されるデータに対する識別情報を「フロー２」と設定する。
【０２７２】
また、図２０において、計算機５０Ａからネットワーク装置３５に転送されるデータの「フロー１」は、転送されるデータに、識別情報「フロー１」が含まれていることを示す。
【０２７３】
ここで、識別情報「フロー１」は、例えば、計算機ＡのＩＰアドレスと、計算機５０Ａで処理されている、計算機５０Ｂとの間でデータの転送が必要となるプロセスを示す情報との組み合わせにより示され、また、識別情報「フロー２」は、計算機５０ＡのＩＰアドレスと、計算機５０Ａで処理されている、計算機５０Ｃとの間でデータの転送が必要となるプロセスを示す情報との組み合わせにより示されるとする。なお、上述したように、識別情報に、どの情報を用いるかについては、予め計算機５０と管理装置１０との間で定められている。
【０２７４】
また、管理装置１０は、識別情報「フロー１」が設定されたデータの転送先を計算機５０Ｂとし、識別情報「フロー２」が設定されたデータの転送先を計算機５０Ｃとするフロー情報をネットワーク装置３５に送信する。
【０２７５】
なお、上述したように、フロー情報には、データを破棄する識別情報を定めることも可能であるが、図２０においては、データに対して設定した識別情報と、その識別情報が設定されたデータの転送先とを対応付けて定めたフロー情報が、管理装置１０からネットワーク装置３５に送信されたとする。
【０２７６】
そして、ネットワーク装置３５は、送信されてきたフロー情報をフロー管理ブロック３３５に設定する。
【０２７７】
計算機５０Ａは、計算機５０Ｂに転送するデータに、識別情報「フロー１」を示す、計算機５０ＡのＩＰアドレスと、計算機５０Ａが計算機５０Ｂとの間で同時並行的に処理していたプロセスを示す情報とを含めて、ネットワーク装置３５に転送する。
【０２７８】
また、同様に、計算機５０Ａは、計算機５０Ｃに転送するデータに、識別情報「フロー２」示す、計算機５０ＡのＩＰアドレスと、計算機５０Ａが計算機５０Ｃとの間で同時並行的に処理していたプロセスを示す情報とを含めて、ネットワーク装置３５に転送する。
【０２７９】
ネットワーク装置３５は、フロー管理ブロック３３５に設定されているフロー情報に基づき、計算機５０Ａから転送されてきたデータに含まれる識別情報に対応する転送先にデータを転送する。
【０２８０】
ここで、再配置処理により、計算機５０Ｃで処理されていたプロセスを計算機５０Ｄで処理するように割り当てが変更されたとする。
【０２８１】
この場合、管理装置１０は、識別情報「フロー２」が設定されたデータの転送先を計算機５０Ｃから計算機５０Ｄに変更するように、ネットワーク装置３５に設定変更要求を送信し、ネットワーク装置３５は、管理装置１０から送信されてきた設定変更要求に従い、そのデータの転送先を計算機Ｄに変更する。
【０２８２】
ここで、プロセスを処理する計算機が計算機５０Ｃから計算機５０Ｄに変更されたとしても、識別情報「フロー２」を示す情報は、計算機５０ＡのＩＰアドレスと、計算機５０Ａで処理しているプロセスを示す情報とからなるだけなので、計算機５０Ａは、識別情報を変更することなく、そのままネットワーク装置３５へのデータの転送を行うことができる。
【０２８３】
また、ネットワーク装置３５は、識別情報「フロー２」が設定されたデータの転送先の設定は計算機５０Ｄに変更されているので、そのデータを計算機５０Ｄに転送することができる。
【０２８４】
このように、本実施形態によれば、管理装置１０は、ネットワーク装置３５による計算機５０間でのデータの転送が行われるデータの識別情報と、その識別情報が設定されたデータの転送先とを対応付けて定めた、または、識別情報が設定されたデータのうち、そのデータを破棄する識別情報を定めたフロー情報をネットワーク装置３５に送信する。
【０２８５】
また、計算機５０は、管理装置１０との間で予め定められている情報を用いて、識別情報を含むデータをネットワーク装置３５に転送する。そして、ネットワーク装置３５は、フロー情報に基づき、自装置に転送されてきたデータに含まれる識別情報に対応する転送先にそのデータを転送したり、そのデータを破棄したりする。
【０２８６】
そのため、ネットワーク装置３５は、自装置に転送されてきたデータに、そのデータの転送先を示す情報が含まれていなくても、自装置に転送されてきたデータを処理することができる。
【０２８７】
また、データの転送元の計算機５０は、アプリケーションへの計算機５０の割り当てが変更され、データの転送先が変更された場合にも、通信設定を変更する必要がない。
【０２８８】
なお、本実施形態の管理システムは、例えば、データベースシステムが分散コンピューティング環境１で稼動している場合にも適用することが可能である。
【０２８９】
データベースシステムの一形態として、データベースシステムにユーザが問い合わせる際のインタフェースとなるフロントエンドと、実際にデータベースに対してアクセスを行うバックエンドとからなる形態がある。このようなデータベースシステムに本実施形態の管理装置１０を適用すると、フロントエンドにアクセスしてきたユーザごとに異なる識別情報を設定し、識別情報の一部、あるいは全ての情報ごとに、異なるバックエンドにユーザからの要求を転送することが可能になり、負荷の分散を図ることができる。
【０２９０】
本発明の管理装置およびネットワーク装置にて行われる方法は、コンピュータに実行させるためのプログラムに適用してもよい。また、そのプログラムを記憶媒体に格納することも可能であり、ネットワークを介して外部に提供することも可能である。
【符号の説明】
【０２９１】
１    分散コンピューティング環境
１０    管理装置
１１，１２    入出力
１１０    ポリシー管理ブロック
１２０，３２０    管理インタフェース
１３０    グローバルモニタブロック
１４０    リソース管理ブロック
１５０    経路計算ブロック
１６０    スケジューラブロック
１７０    設定指示ブロック
３０，３０Ｗ，３０Ｘ，３０Ｙ，３０Ｚ    ネットワーク装置
３１０，５１０    ネットワークインタフェース
３３０，５２０    通信設定管理ブロック
３３５    フロー管理ブロック
３４０    通信処理ブロック
３５０，５５０    ローカルモニタブロック
５０，５０Ａ，５０Ｂ，５０Ｃ，５０Ｄ    計算機
５１    ローカル計算機
５２    リモート計算機
５３０    プロセス管理ブロック
５４０    演算処理ブロック
【図１】
0005471166.tif 000002
【図２】
0005471166.tif 000003
【図３】
0005471166.tif 000004
【図４】
0005471166.tif 000005
【図５】
0005471166.tif 000006
【図６】
0005471166.tif 000007
【図７】
0005471166.tif 000008
【図８】
0005471166.tif 000009
【図９】
0005471166.tif 000010
【図１０】
0005471166.tif 000011
【図１１】
0005471166.tif 000012
【図１２】
0005471166.tif 000013
【図１３】
0005471166.tif 000014
【図１４】
0005471166.tif 000015
【図１５】
0005471166.tif 000016
【図１６】
0005471166.tif 000017
【図１７】
0005471166.tif 000018
【図１８】
0005471166.tif 000019
【図１９】
0005471166.tif 000020
【図２０】
0005471166.tif 000021