(57)【要約】【課題】データ処理の実行に伴う負荷及びデータ処理の属性を考慮して、特定の計算機の負荷を削減する。【解決手段】収集されたデータを用いたデータ処理を実行する計算機システムであって、データを収集するゲートウェイ及びゲートウェイと接続するサーバを備え、データ処理は複数のプロセスから構成され、サーバは、データ処理の属性を管理し、データ処理の実行に伴うゲートウェイ及びサーバの負荷を監視し、データ処理の属性及び負荷の監視結果に基づいて、データ処理の実行に伴う負荷の削減を目的としたプロセス制御処理を実行し、プロセス制御処理は、プロセスを移動する移動処理及びプロセスの性能を制御するパラメータを変更する性能変更処理を含む。【選択図】図１
2019082857.tif 000002
【特許請求の範囲】
【請求項１】
収集されたデータを用いたデータ処理を実行する計算機システムであって、
前記計算機システムは、データを収集するゲートウェイ及び前記ゲートウェイと接続するサーバを備え、
前記データ処理は、複数のプロセスから構成され、
前記ゲートウェイ及び前記サーバの各々は、少なくとも一つのプロセスを実行し、
前記サーバは、
前記データ処理の属性を管理し、
前記データ処理の実行に伴う前記ゲートウェイ及び前記サーバの負荷を監視し、
前記データ処理の属性及び前記負荷の監視結果に基づいて、前記データ処理の実行に伴う負荷の削減を目的としたプロセス制御処理を実行し、
前記プロセス制御処理は、前記ゲートウェイ及び前記サーバの間において前記プロセスを移動する移動処理、並びに、前記プロセスの性能を制御するパラメータを変更する性能変更処理を含むことを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記サーバは、
前記負荷の監視結果に基づいて、負荷の削減対象となる前記ゲートウェイ又は前記サーバをターゲット計算機として選択し、
前記移動処理では、前記ターゲット計算機が実行する前記プロセスを前記ターゲット計算機とは異なる計算機に移動し、
前記性能変更処理では、前記複数のプロセスの少なくとも一つのプロセスの性能を減少させるように、前記パラメータを変更することを特徴とする計算機システム。
【請求項３】
請求項２に記載の計算機システムであって、
前記計算機システムは、複数のデータ処理を実行し、
前記データ処理の属性は、前記データの欠損を許容するか否かを示す値を含み、
前記サーバは、
前記ターゲット計算機が実行する前記プロセスから構成されるデータ処理の中からターゲットデータ処理を選択し、
前記ターゲットデータ処理が前記データの欠損を許容するか否かを判定し、
前記ターゲットデータ処理が前記データの欠損を許容すると判定された場合、前記ターゲットデータ処理を構成する複数のプロセスの少なくとも一つのプロセスに対して前記移動処理を実行し、
前記ターゲットデータ処理が前記データの欠損を許容しないと判定された場合、前記ターゲットデータ処理を構成する複数のプロセスの少なくとも一つのプロセスに対して前記性能変更処理を実行することを特徴とする計算機システム。
【請求項４】
請求項３に記載の計算機システムであって、
前記複数のデータ処理には、前記データ処理の重要性を示す優先度が設定され、
前記サーバは、重要性が低い前記優先度が設定された前記データ処理から順に前記ターゲットデータ処理を選択することを特徴とする計算機システム。
【請求項５】
請求項３に記載の計算機システムであって、
前記サーバは、前記性能変更処理において、前記ターゲットデータ処理を構成する複数のプロセスを実行する前記ゲートウェイ及び前記サーバの負荷が小さくなるように、前記パラメータを所定の刻み幅で段階的に変更することを特徴とする計算機システム。
【請求項６】
請求項５に記載の計算機システムであって、
前記サーバは、
前記ターゲットデータ処理を構成する複数のプロセスを実行する前記ゲートウェイ及び前記サーバの各々の負荷が閾値より小さく、かつ、負荷が減少傾向にある場合、前記性能変更処理が実行されたプロセスのパラメータを前記所定の刻み幅で段階的に元に戻すことを特徴とする計算機システム。
【請求項７】
請求項３に記載の計算機システムであって、
前記ターゲットデータ処理を構成する複数のプロセスを実行する前記ゲートウェイ及び前記サーバの各々の負荷が閾値より小さく、かつ、負荷が減少傾向にある場合、前記移動処理が実行されたプロセスを前記ターゲット計算機に移動することを特徴とする計算機システム。
【請求項８】
データを収集するゲートウェイ及び前記ゲートウェイと接続するサーバを備える計算機システムが実行するデータ処理の制御方法であって、
前記データ処理は、収集されたデータを処理する複数のプロセスから構成され、
前記ゲートウェイ及び前記サーバの各々は、少なくとも一つのプロセスを実行し、
前記データ処理の制御方法は、
前記サーバが、前記データ処理の属性を管理する第１のステップと、
前記サーバが、前記データ処理の実行に伴う前記ゲートウェイ及び前記サーバの負荷を監視する第２のステップと、
前記サーバが、前記データ処理の属性及び前記負荷の監視結果に基づいて、前記データ処理の実行に伴う負荷の削減を目的としたプロセス制御処理を実行する第３のステップと、
前記プロセス制御処理は、前記ゲートウェイ及び前記サーバの間において前記プロセスを移動する移動処理、並びに、前記プロセスの性能を制御するパラメータを変更する性能変更処理を含むことを特徴とするデータ処理の制御方法。
【請求項９】
請求項８に記載のデータ処理の制御方法であって、
前記第３のステップは、前記サーバが、前記負荷の監視結果に基づいて、負荷の削減対象となる前記ゲートウェイ又は前記サーバをターゲット計算機として選択する第４のステップを含み、
前記移動処理では、前記サーバが、前記ターゲット計算機が実行する前記プロセスを前記ターゲット計算機とは異なる計算機に移動するステップを含み、
前記性能変更処理では、前記サーバが、前記複数のプロセスの少なくとも一つのプロセスの性能を減少させるように、前記パラメータを変更するステップを含むことを特徴とするデータ処理の制御方法。
【請求項１０】
請求項９に記載のデータ処理の制御方法であって、
前記計算機システムは、複数のデータ処理を実行し、
前記データ処理の属性は、前記データの欠損を許容するか否かを示す値を含み、
前記第３のステップは、
前記サーバが、前記ターゲット計算機が実行する前記プロセスから構成されるデータ処理の中からターゲットデータ処理を選択するステップと、
前記サーバが、前記ターゲットデータ処理が前記データの欠損を許容するか否かを判定するステップと、
前記ターゲットデータ処理が前記データの欠損を許容すると判定された場合、前記サーバが、前記ターゲットデータ処理を構成する複数のプロセスの少なくとも一つのプロセスに対して前記移動処理を実行するステップと、
前記ターゲットデータ処理が前記データの欠損を許容しないと判定された場合、前記サーバが、前記ターゲットデータ処理を構成する複数のプロセスの少なくとも一つのプロセスに対して前記性能変更処理を実行するステップと、を含むことを特徴とするデータ処理の制御方法。
【請求項１１】
請求項１０に記載のデータ処理の制御方法であって、
前記複数のデータ処理には、前記データ処理の重要性を示す優先度が設定され、
前記第４のステップは、前記サーバが、重要性が低い前記優先度が設定された前記データ処理から順に前記ターゲットデータ処理を選択するステップを含むことを特徴とするデータ処理の制御方法。
【請求項１２】
請求項１０に記載のデータ処理の制御方法であって、
前記性能変更処理では、前記サーバが、前記ターゲットデータ処理を構成する複数のプロセスを実行する前記ゲートウェイ及び前記サーバの負荷が小さくなるように、前記パラメータを所定の刻み幅で段階的に変更するステップを含むことを特徴とするデータ処理の制御方法。
【請求項１３】
請求項１２に記載のデータ処理の制御方法であって、
前記サーバが、前記ターゲットデータ処理を構成する複数のプロセスを実行する前記ゲートウェイ及び前記サーバの各々の負荷が閾値より小さく、かつ、負荷が減少傾向にある場合、前記性能変更処理が実行されたプロセスのパラメータを前記所定の刻み幅で段階的に元に戻すステップを含むことを特徴とするデータ処理の制御方法。
【請求項１４】
請求項１０に記載のデータ処理の制御方法であって、
前記サーバが、前記ターゲットデータ処理を構成する複数のプロセスを実行する前記ゲートウェイ及び前記サーバの各々の負荷が閾値より小さく、かつ、負荷が減少傾向にある場合、前記移動処理が実行されたプロセスを前記ターゲット計算機に移動するステップを含むことを特徴とするデータ処理の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、収集したデータを用いたデータ処理を実行する計算機システム及び当該データ処理の制御方法に関する。
【背景技術】
【０００２】
ＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）の発展に伴い、センサ等のデバイスから収集したデータを分析することによって付加価値のあるソリューションを提供するサービスが登場している。
【０００３】
当該サービスでは、多種多様の大量のデータの収集、データ解析、業務計画の改善等を実行する業務アプリケーションが利用できるデータ形式へのデータ変換、及び変換されたデータの提供を、低コストで実現するデータ処理システムが求められる。
【０００４】
近年のデータ処理システムは、エッジコンピューティング技術の普及に伴って、現場に配置された複数のエッジ計算機及び複数のエッジ計算機と接続するサーバから構成されるシステム形態が増加している。ここで、エッジコンピューティング技術は、工場等の現場に配置されるゲートウェイ等のエッジ計算機がデータの変換等を実行することによって、ネットワークを介して接続されるサーバとの間の通信量の削減及びリアルタイムデータ処理等を実現する技術である。
【０００５】
顧客要件又は業務状態が変更された場合、データ処理を変更する必要がある。データ処理の変更を容易にする方法として、複数のプロセスを任意の順番で連結してデータ処理を実現する方法が知られている。これによって、プロセス単位でデータ処理を変更できる。
【０００６】
複数のエッジ計算機及びサーバから構成されるデータ処理システムでは、データ処理の変更に伴って特定のエッジ計算機又はサーバの負荷が増大することによって、システム性能が低下し、又は、システムが停止する場合がある。
【０００７】
前述の問題に対して、特許文献１に記載の技術が知られている。特許文献１には、「ノード変更装置１０において、シーケンス監視部１２が、ＵＥ９０によるノードの使用状態を示す情報（例えば、課金上限通知）を取得する。配置計算部１４は、上記課金上限通知に基づいて、ＵＥ９０からの要求処理を実行するノードを、ＲＡＮに接続しているエッジ４０からデータセンタ７０へ変更する。よって、使用情報を用いて別ネットワークのノードに処理を変更をするので、使用度に応じて、コストと速度とのバランスを取ることができる。」ことが記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】国際公開第２０１７／００２７２９号
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、エッジ計算機及びサーバの両方の負荷が高い場合、特許文献１の技術を用いてもデータ処理の負荷の削減ができず、システム性能の低下又はシステムの停止が発生する可能性がある。
【００１０】
また、特許文献１では、モバイル通信端末の課金処理という特定のデータ処理のみを想定した技術であり、データ処理の構成、データ処理の要件、及びデータ処理間の優先順位等のデータ処理の属性が考慮されていない。そのため、様々なデータ処理を実行するデータ処理システムに、特許文献１の技術をそのまま適用できない。
【００１１】
例えば、ＩｏＴでは、警報データ等の欠損が許容できないデータを扱う場合がある。エッジ計算機とサーバとの間でプロセスを移動させる場合、プロセスの移動が完了するまでデータ処理を中断する必要があるため、データ処理を中断することによって、収集されたデータが処理されずに失われる可能性がある。したがって、特許文献１の技術では、データ処理の要件を満たしつつ、データ処理の負荷の削減を実現できない。
【００１２】
本発明は、データ処理の負荷及びデータ処理の属性を考慮して、データ処理の負荷が特定のエッジ計算機又はサーバに集中することを回避するデータ処理の制御を実現するシステム及びその方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、収集されたデータを用いたデータ処理を実行する計算機システムであって、前記計算機システムは、データを収集するゲートウェイ及び前記ゲートウェイと接続するサーバを備え、前記データ処理は、複数のプロセスから構成され、前記ゲートウェイ及び前記サーバの各々は、少なくとも一つのプロセスを実行し、前記サーバは、前記データ処理の属性を管理し、前記データ処理の実行に伴う前記ゲートウェイ及び前記サーバの負荷を監視し、前記データ処理の属性及び前記負荷の監視結果に基づいて、前記データ処理の実行に伴う負荷の削減を目的とした前記プロセス制御処理を実行し、前記プロセス制御処理は、前記ゲートウェイ及び前記サーバの間において前記プロセスを移動する移動処理並びに前記プロセスの性能を制御するパラメータを変更する性能変更処理を含むことを特徴とする。
【発明の効果】
【００１４】
本発明によれば、計算機の負荷及びデータ処理の属性を考慮したデータ処理の負荷の削減を実現できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
【図面の簡単な説明】
【００１５】
【図１】実施例１のシステム全体の構成例を示す図である。
【図２】実施例１のデータ処理の構成例を示す図である。
【図３】実施例１のデータ処理システムに含まれる装置のハードウェア構成の一例を示す図である。
【図４】実施例１のゲートウェイ性能情報の一例を示す図である。
【図５】実施例１のプロセスフロー構成情報の一例を示す図である。
【図６】実施例１のプロセスフロー要件情報の一例を示す図である。
【図７】実施例１のプロセスフロー負荷情報の一例を示す図である。
【図８】実施例１のサーバが実行するプロセス制御処理の一例を説明するフローチャートである。
【図９Ａ】実施例１のプロセス制御部が実行する低優先度プロセス制御処理及び高優先度プロセス制御処理の一例を説明するフローチャートである。
【図９Ｂ】実施例１のプロセス制御部が実行する低優先度プロセス制御処理及び高優先度プロセス制御処理の一例を説明するフローチャートである。
【図１０】実施例１のプロセス制御部が実行するプロセス移動処理の一例を説明するフローチャートである。
【図１１】実施例１のプロセス制御部が実行するプロセス性能変更処理の一例を説明するフローチャートである。
【図１２】実施例１のプロセス制御部が実行するプロセス位置復帰処理の一例を説明するフローチャートである。
【図１３】実施例１のプロセス制御部が実行するパラメータ復帰処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【００１７】
以下に説明では、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【実施例１】
【００１８】
図１は、実施例１のシステム全体の構成例を示す図である。図２は、実施例１のデータ処理の構成例を示す図である。
【００１９】
システムは、データ処理システム１、複数のセンサ１０２−１、１０２−２、１０２−３、１０２−４及び業務計算機１０３から構成される。
【００２０】
複数のセンサ１０２−１、１０２−２、１０２−３、１０２−４及び業務計算機１０３は、データ処理システム１に接続される。データ処理システム１は、サーバ１００及び複数のゲートウェイ１０１−１、１０１−２から構成される。サーバ１００及び複数のゲートウェイ１０１−１、１０１−２は、ネットワーク１０５を介して互いに接続される。
【００２１】
なお、ネットワーク１０５は、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）及びＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等であり、接続方式は、無線及び有線のいずれでもよい。
【００２２】
以下の説明では、センサ１０２−１、１０２−２、１０２−３、１０２−４を区別しない場合、センサ１０２と記載する。また、ゲートウェイ１０１−１、１０１−２を区別しない場合、ゲートウェイ１０１と記載する。
【００２３】
データ処理システム１は、センサ１０２からデータを収集し、当該データを用いてデータ処理を実行し、業務アプリケーションが稼働する業務計算機１０３に処理結果を送信する。
【００２４】
図２に示すように、データ処理は、処理の追加及び変更等に柔軟に対応できるように実行順に連結された複数のプロセス１５０から構成される。プロセス１５０は、任意の機能を実現するプログラム（アプリケーション）を実行することによって実現される。以下の説明では、データ処理を実現するプロセス１５０の集合をプロセスフローとも記載する。
【００２５】
図２では、観測対象の状態の異常を判定するプロセスフローを示す。データ処理システム１は、センサ１０２から１秒に２０個のバイナリデータをセンサデータとして受信した場合、データ変換のプロセス１５０、フィルタリングのプロセス１５０、サンプリングのプロセス１５０、及び異常判定のプロセス１５０を実行し、判定結果を業務計算機１０３に送信する。
【００２６】
データ変換のプロセス１５０では、バイナリデータがメタデータに変換される。フィルタリングのプロセス１５０では、条件に合致するメタデータが抽出される。サンプリングのプロセス１５０では、メタデータが間引かれる。ここでは、１秒に２０個のメタデータが、１秒に１０個のメタデータに間引かれる。異常判定のプロセス１５０では、メタデータを解析し、解析結果に基づいて観測対象の状態が正常であるか否かが判定される。
【００２７】
本実施例では、プロセスフローを構成する複数のプロセス１５０がサーバ１００及びゲートウェイ１０１に分散して配置される。図１では、プロセスフローを構成するプロセス１５０の接続関係を点線で示す。すなわち、識別情報が「Ｆ１」、「Ｆ３」、「Ｆ４」、「Ｆ５」であるプロセス１５０群から構成されるプロセスフロー、及び、識別情報が「Ｆ２」、「Ｆ６」であるプロセス１５０群から構成されるプロセスフローがデータ処理システム１によって実行されている。
【００２８】
本実施例では、一つのプロセスフローは、一つのゲートウェイ１０１及びサーバ１００によって実行される。すなわち、各ゲートウェイ１０１に配置されたプロセス１５０は異なるプロセスフローを構成する。
【００２９】
なお、一つのセンサデータを入力として扱うプロセスフローを定義してもよいし、複数のセンサデータを入力として扱うプロセスフローを定義してもよい。一つのセンサデータを入力として扱うプロセスフローを定義した場合、センサ１０２の数とプロセスフローの数は同一となる。
【００３０】
センサ１０２は、観測対象から一定間隔で計測値を取得し、計測値を含むセンサデータをゲートウェイ１０１に送信する。センサ１０２は、例えば、温度センサ、湿度センサ、振動センサ、カメラ等のセンシングデバイス、及びこれらを含む監視センサ等である。なお、図１では、一つのゲートウェイ１０１に二つのセンサ１０２が接続されているが、本発明はこれに限定されない。一つのゲートウェイ１０１に接続されるセンサ１０２の数は、一つでもよいし、また、三つ以上でもよい。
【００３１】
ゲートウェイ１０１は、エッジ計算機として機能する計算機であり、センサ１０２からセンサデータを収集し、センサデータを用いてプロセス１５０を実行し、センサデータ又は処理結果をサーバ１００に送信する。本実施例では、ゲートウェイ１０１は、データ処理に対応するプロセスフローを構成する一つ以上のプロセス１５０を実行する。なお、ゲートウェイ１０１は、異なるプロセスフローを構成する一つ以上のプロセス１５０を実行できる。
【００３２】
ゲートウェイ１０１は、負荷監視部１３０、振分部１３１、及びプロセスフロー処理部１３２を有する。
【００３３】
負荷監視部１３０は、ゲートウェイ１０１の負荷を監視する。例えば、負荷監視部１３０は、演算装置２１０（図３参照）の使用率をゲートウェイ１０１の負荷として監視する。ここで、ゲートウェイ１０１の負荷とは、ゲートウェイ１０１に関連する全てのプロセスフローの実行に伴う負荷を表す。本実施例では、ゲートウェイ１０１の負荷の推定を容易にするために、プロセスフロー単位の負荷が監視される。なお、プロセスフロー単位の負荷とは、プロセスフローを構成するプロセス１５０に起因する負荷を示す。
【００３４】
以下の説明では、プロセスフロー単位の負荷をプロセスフロー負荷とも記載する。本実施例では、ゲートウェイ１０１のプロセスフロー負荷の合計値がゲートウェイ１０１の負荷として算出される。
【００３５】
負荷監視部１３０は、周期的に、又は、サーバ１００から送信指示を受信した場合に、負荷の監視結果を送信する。負荷の監視結果にはプロセスフロー負荷の監視結果が含まれる。
【００３６】
振分部１３１は、受信したセンサデータの種別等に基づいて当該センサデータを振り分けて、適切なプロセス１５０（プロセスフロー）に入力する。
【００３７】
プロセスフロー処理部１３２は、センサデータを用いてプロセス１５０を実行し、処理結果をサーバ１００に送信する。
【００３８】
サーバ１００は、ゲートウェイ１０１からセンサデータ又は処理結果を受信し、センサデータ又は処理結果を用いてプロセス１５０を実行し、処理結果を業務計算機１０３に送信する。本実施例では、サーバ１００は、データ処理に対応するプロセスフローを構成する一つ以上のプロセス１５０を実行する。なお、サーバ１００は、異なるプロセスフローを構成する一つ以上のプロセス１５０を実行できる。
【００３９】
サーバ１００は、負荷監視部１１０、振分部１１１、プロセスフロー処理部１１２、及びプロセス制御部１１３を有する。また、サーバ１００は、ゲートウェイ性能情報１２０、プロセスフロー構成情報１２１、プロセスフロー要件情報１２２、及びプロセスフロー負荷情報１２３を保持する。
【００４０】
負荷監視部１１０は、サーバ１００の負荷を監視する。例えば、負荷監視部１１０は、演算装置２００（図３参照）の使用率をサーバ１００の負荷として監視する。ここで、サーバ１００の負荷とは、サーバ１００に関連する全てのプロセスフローの実行に伴う負荷を表す。本実施例では、サーバ１００の負荷の推定を容易にするために、プロセスフロー単位の負荷が監視される。本実施例では、サーバ１００のプロセスフロー負荷の合計値がサーバ１００の負荷として算出される。
【００４１】
振分部１１１は、センサデータ又は処理結果の送信元のゲートウェイ１０１の識別情報及び受信したセンサデータ又は処理結果の種別等に基づいて当該センサデータ又は処理結果を振り分けて、適切なプロセス１５０（プロセスフロー）に入力する。
【００４２】
プロセスフロー処理部１１２は、ゲートウェイ１０１から受信したデータを用いてプロセス１５０を実行し、処理結果を業務計算機１０３に送信する。
【００４３】
プロセス制御部１１３は、サーバ１００及びゲートウェイ１０１の負荷及びプロセスフローの属性等に基づいて、プロセス１５０の配置及びプロセス１５０の内容を制御する。ここで、プロセスフローの属性（データ処理の属性）は、プロセスフローの構成及びプロセスフローの要件等を示す。また、プロセスフローの要件（データ処理の要件）は、プロセスフローの優先度及びプロセスフローの特性等を示す。
【００４４】
ゲートウェイ性能情報１２０は、ゲートウェイ１０１の性能を管理する情報である。本実施例では、サーバ１００とゲートウェイ１０１との間の性能差に基づいてゲートウェイ１０１の性能が管理される。ゲートウェイ性能情報１２０の詳細は図４を用いて説明する。
【００４５】
プロセスフロー構成情報１２１は、プロセスフローの構成を管理する情報である。プロセスフロー構成情報１２１の詳細は図５を用いて説明する。
【００４６】
プロセスフロー要件情報１２２は、プロセスフローの要件を管理する情報である。プロセスフロー要件情報１２２の詳細は図６を用いて説明する。
【００４７】
プロセスフロー負荷情報１２３は、プロセスフローの実行に伴うデータ処理システム１の負荷を管理する情報である。プロセスフロー負荷情報１２３の詳細は図７を用いて説明する。
【００４８】
図３は、実施例１のデータ処理システム１に含まれる計算機のハードウェア構成の一例を示す図である。
【００４９】
サーバ１００は、演算装置２００、記憶装置２０１、及びインタフェース２０２を有する。なお、サーバ１００は、キーボード、マウス、及びタッチパネル等の入力装置、並びに、ディスプレイ等の出力装置を有してもよい。
【００５０】
演算装置２００は、記憶装置２０１に格納されるプログラムを実行する装置であり、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）及びＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等である。演算装置２００は、プログラムにしたがって処理を実行することによって、所定の機能を実現する機能部（モジュール）として動作する。以下の説明では、機能部を主語に処理を説明する場合、演算装置２００が当該機能部を実現するプログラムを実行していることを示す。
【００５１】
なお、サーバ１００が有する各機能部については、複数の機能部を一つの機能部にまとめてもよいし、一つの機能部を複数の機能部に分けてもよい。
【００５２】
記憶装置２０１は、演算装置２００が実行するプログラム及び当該プログラムが使用する情報を格納する装置であり、例えば、メモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、及びＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等である。なお、記憶装置２０１は、プログラムが一時的に使用するワークエリアを含む。
【００５３】
本実施例の記憶装置２０１は、負荷監視部１１０、振分部１１１、プロセスフロー処理部１１２、及びプロセス制御部１１３を実現するプログラムを格納する。また、本実施例の記憶装置２０１は、プロセス１５０を実現するプログラムを格納する。さらに、本実施例の記憶装置２０１は、ゲートウェイ性能情報１２０、プロセスフロー構成情報１２１、プロセスフロー要件情報１２２、及びプロセスフロー負荷情報１２３を格納する。
【００５４】
インタフェース２０２は、外部の計算機と接続する装置であり、例えば、Ｉ／Ｏインタフェース及びネットワークインタフェース等である。
【００５５】
なお、サーバ１００の論理的な接続関係は以下に示すとおりである。負荷監視部１１０及びプロセス制御部１１３は、ゲートウェイ性能情報１２０、プロセスフロー構成情報１２１、プロセスフロー要件情報１２２、及びプロセスフロー負荷情報１２３にアクセスすることができる。負荷監視部１１０及びプロセスフロー処理部１１２は、互いに通信することができる。振分部１１１及びプロセスフロー処理部１１２は、互いに通信することができる。振分部１１１及びプロセス制御部１１３は、互いに通信することができる。プロセスフロー処理部１１２は、業務アプリケーションと通信することができる。また、プロセス制御部１１３は、プロセスフロー処理部１３２と通信することができる。
【００５６】
本実施例では、負荷監視部１１０、振分部１１１、プロセスフロー処理部１１２、及びプロセス制御部１１３はプログラムとして実現されているがこれに限定されない。負荷監視部１１０、振分部１１１、プロセスフロー処理部１１２、及びプロセス制御部１１３を専用のハードウェアを用いて実現してもよい。この場合、負荷監視部１１０は、プロセスフロー処理部１１２を実現するハードウェアの負荷を監視する。
【００５７】
ゲートウェイ１０１は、演算装置２１０、記憶装置２１１、及びインタフェース２１２を有する。演算装置２１０、記憶装置２１１、及びインタフェース２１２は、演算装置２００、記憶装置２０１、及びインタフェース２０２と同一のものである。
【００５８】
本実施例の記憶装置２１１は、負荷監視部１３０、振分部１３１、及びプロセスフロー処理部１３２を実現するプログラム、並びに、プロセス１５０を実現するプログラムを格納する。
【００５９】
なお、ゲートウェイ１０１の論理的な接続関係は以下に示すとおりである。振分部１３１は、センサ１０２と通信することができる。振分部１３１及びプロセスフロー処理部１３２は、互いに通信することができる。負荷監視部１１０は、サーバ１００の負荷監視部１１０及びプロセス制御部１１３のいずれかと通信することができる。
【００６０】
本実施例では、負荷監視部１３０、振分部１３１、プロセスフロー処理部１３２はプログラムとして実現されているがこれに限定されない。負荷監視部１３０、振分部１３１、プロセスフロー処理部１３２を専用のハードウェアを用いて実現してもよい。この場合、負荷監視部１３０は、プロセスフロー処理部１３２を実現するハードウェアの負荷を監視する。
【００６１】
本実施例では、物理的なサーバ１００及びゲートウェイ１０１を用いているが、同様の機能を有する仮想計算機を用いてもよい。
【００６２】
次に、サーバ１００が保持する情報の詳細について説明する。
【００６３】
図４は、実施例１のゲートウェイ性能情報１２０の一例を示す図である。
【００６４】
ゲートウェイ性能情報１２０は、ゲートウェイＩＤ３０１及び性能比３０２から構成されるエントリを含む。一つのエントリが一つのゲートウェイ１０１に対応する。
【００６５】
ゲートウェイＩＤ３０１は、ゲートウェイ１０１の識別情報を格納するフィールドである。ゲートウェイ１０１の識別情報は、ＩＰアドレス及び任意の入力値でもよい。また、ゲートウェイ１０１の識別情報は自動的又は手動で設定されてもよい。図４に示すゲートウェイ性能情報１２０は、識別情報が「Ｇ１」、「Ｇ２」、「Ｇ３」であるゲートウェイ１０１のエントリを含む。
【００６６】
性能比３０２は、サーバ１００の性能値を「１」とした場合のゲートウェイ１０１の性能値を格納するフィールドである。データ処理システム１の管理者が、例えば、演算装置の性能、記憶装置の記憶容量、ベンチマークテストの結果等に基づいて性能値を設定する。
【００６７】
図５は、実施例１のプロセスフロー構成情報１２１の一例を示す図である。
【００６８】
プロセスフロー構成情報１２１は、プロセスフローＩＤ４０１、プロセスＩＤ４０２、内容４０３、パラメータ４０４、初期計算機ＩＤ４０５、及び計算機ＩＤ４０６から構成されるエントリを含む。一つのエントリが一つのプロセスフローに対応する。
【００６９】
プロセスフローＩＤ４０１は、プロセスフローの識別情報を格納するフィールドである。プロセスフローの識別情報は、例えば、プロセスフローの設定時に自動的に又は手動で設定される。一つのプロセスフローに対応するエントリには、プロセスフローを構成するプロセス１５０の数だけ行が含まれる。
【００７０】
プロセスＩＤ４０２は、プロセスフローを構成するプロセス１５０の識別情報を格納するフィールドである。プロセス１５０の識別情報は、例えば、プロセスフローの設定時に自動的に又は手動で設定される。なお、プロセス１５０の識別情報は、実行順にしたがって上から順に設定される。図５に示す例では、最初に実行される識別情報が「Ｆ１」のプロセス１５０の行が一番上に設定され、最後に実行される識別情報が「Ｆ５」のプロセス１５０の行が一番下に設定される。
【００７１】
内容４０３は、プロセス１５０の種別及び内容等を格納するフィールドである。プロセス１５０の種別及び内容等は、例えば、プロセスフローの設定時に自動的に又は手動で設定される。
【００７２】
パラメータ４０４は、プロセス１５０の性能を制御するパラメータを格納するフィールドである。なお、変更可能なパラメータが存在しないプロセス１５０、又は、パラメータを変更できないプロセス１５０のパラメータ４０４は空欄となる。
【００７３】
変更可能なパラメータが存在するプロセス１５０のパラメータ４０４には、項目、設定値、通常値、最小値、及び刻み幅等が格納される。項目は対象のパラメータの識別情報である。設定値は現在設定されている値である。通常値はプロセスフローの設定時に与えられる初期値であり、負荷の増大に伴って変更される前の値である。最小値は設定可能なパラメータの最小値である。刻み幅は値を変更する場合の刻み幅である。
【００７４】
初期計算機ＩＤ４０５及び計算機ＩＤ４０６は、プロセスＩＤ４０２に対応するプロセス１５０を実行する装置の識別情報を格納するフィールドである。初期計算機ＩＤ４０５及び計算機ＩＤ４０６には、サーバ１００及びゲートウェイ１０１のいずれかの識別情報が格納される。なお、「Ｓ」はサーバ１００の識別情報を示す。
【００７５】
初期計算機ＩＤ４０５には、プロセスフローの設定時にプロセス１５０を配置した計算機の識別情報が格納される。計算機ＩＤ４０６には、プロセス１５０が現在配置されている計算機の識別情報が格納される。プロセスフローの設定時には、各行の初期計算機ＩＤ４０５及び計算機ＩＤ４０６には同一の識別情報が設定される。
【００７６】
図５では、識別情報が「Ｆ１」、「Ｆ３」、「Ｆ４」、「Ｆ５」であるプロセス１５０から構成されるプロセスフローのエントリを一例として示している。
【００７７】
図６は、実施例１のプロセスフロー要件情報１２２の一例を示す図である。
【００７８】
プロセスフロー要件情報１２２は、プロセスフローＩＤ５０１、ゲートウェイＩＤ５０２、優先度５０３、運用フラグ５０４、及び制御フラグ５０５から構成されるエントリを含む。一つのエントリが一つのプロセスフローに対応する。
【００７９】
プロセスフローＩＤ５０１は、プロセスフローＩＤ４０１と同一のフィールドである。
【００８０】
ゲートウェイＩＤ５０２は、プロセスフローを構成するプロセス１５０を実行するゲートウェイ１０１の識別情報を格納するフィールドである。すなわち、ゲートウェイＩＤ５０２には、プロセスフローに関連するゲートウェイ１０１の識別情報が格納される。
【００８１】
優先度５０３は、プロセスフロー（データ処理）の重要性を示す優先度を格納するフィールドである。本実施例では、優先度５０３は、後述するプロセス制御処理の対象となる前記データ処理の選択基準として用いられる。本実施例の優先度５０３には、「高」及び「低」のいずれかが格納される。「高」は優先度が高いことを示し、「低」は優先度が低いことを示す。本実施例のサーバ１００は、優先度が高いプロセスフローを可能な限り変更しないように制御する。
【００８２】
なお、優先度が低いプロセスフローとしては、温度監視を行うプロセスフローがある。また、優先度が高いプロセスフローとしては、異常検知を行うプロセスフローがある。
【００８３】
なお、優先度５０３には数字を格納してもよい。例えば、「１」が最も優先度が高くなるように数字を格納する。
【００８４】
運用フラグ５０４は、プロセスフローの変更が行われたか否かを示すフラグを格納するフィールドである。ここで、プロセスフローの変更とは、サーバ１００及びゲートウェイ１０１間のプロセス１５０の移動又はプロセス１５０のパラメータの変更を示す。運用フラグ５０４には、「０」及び「１」のいずれかが格納される。「０」はプロセスフローの変更が行われていないことを示し、「１」はプロセスフローの変更が行われたことを示す。
【００８５】
制御フラグ５０５は、プロセスフロー、すなわち、データ処理の要件を示す情報を格納するフィールドである。本実施例の制御フラグ５０５には、プロセスフローの制御、すなわち、プロセスフローを構成するプロセス１５０のサーバ１００及びゲートウェイ１０１間の移動によるデータの欠損が許容されているか否かを示すフラグが格納される。制御フラグ５０５には、「０」及び「１」のいずれかが格納される。「０」はプロセス１５０の移動によるデータの欠損が許容されていないことを示し、「１」はプロセス１５０の移動によるデータの欠損が許容されていることを示す。
【００８６】
制御フラグ５０５は、データ処理システム１の管理者によって設定されているものとする。なお、任意のタイミングで変更することができる。
【００８７】
図７は、実施例１のプロセスフロー負荷情報１２３の一例を示す図である。
【００８８】
プロセスフロー負荷情報１２３は、プロセスフローＩＤ６０１、負荷情報６０２、負荷変動情報６０３から構成されるエントリを含む。一つのエントリが一つのプロセスフローを示す。
【００８９】
プロセスフローＩＤ６０１は、プロセスフローＩＤ４０１と同一のフィールドである。
【００９０】
負荷情報６０２は、サーバ１００及びゲートウェイ１０１の現在のプロセスフロー負荷を格納するフィールドである。負荷情報６０２には、データ処理システム１に含まれるサーバ１００及び全てのゲートウェイ１０１に対応する列が含まれる。
【００９１】
負荷変動情報６０３は、サーバ１００及びゲートウェイ１０１のプロセスフロー負荷の変化傾向を示す値を格納するフィールドである。
【００９２】
本実施例の負荷変動情報６０３には、現在から一定時間前の時間範囲における演算装置２００、２１０の使用率の変化傾向を示す値（変化値）が格納される。例えば、時間範囲及び使用率の変位を用いて算出される値が、負荷変動情報６０３に格納される。時間範囲は例えば５分と設定できる。値が「０」に近いほど、演算装置２００、２１０の使用率が変化していないこと、すなわち、演算装置２００、２１０の負荷が一定であることを示す。
【００９３】
プロセスフロー負荷情報１２３は、例えば、以下のようにして更新される。負荷監視部１１０は、サーバ１００及びゲートウェイ１０１のプロセスフロー負荷の監視結果及びプロセスフロー構成情報１２１に基づいて、負荷情報６０２を更新する。また、負荷監視部１１０は、プロセスフロー負荷の履歴に基づいて変化値を算出する。さらに、負荷監視部１１０は、当該変化値及びプロセスフロー構成情報１２１に基づいて負荷変動情報６０３を更新する。
【００９４】
図８は、実施例１のサーバ１００が実行するプロセス制御処理の一例を説明するフローチャートである。以下で説明する処理は、プロセス制御部１１３が周期的に又は管理者から実行指示を受け付けた場合に開始する。
【００９５】
プロセス制御部１１３は、プロセスフロー負荷情報１２３を参照し、負荷が高い計算機が存在するか否かを判定する（ステップＳ１０１）。
【００９６】
具体的には、プロセス制御部１１３は、プロセスフロー負荷情報１２３の負荷情報６０２を参照し、各装置のプロセスフロー負荷の合計値を算出する。さらに、プロセス制御部１１３は、算出されたプロセスフロー負荷の合計値が閾値以上である計算機を検索する。プロセス制御部１１３は、検索された計算機のリストを生成する。なお、閾値は予め設定されているものとする。ただし、閾値は適宜更新できる。
【００９７】
図７に示す例では、サーバ１００の演算装置２００の使用率（プロセスフロー負荷）の合計値は７７％と算出される。識別情報が「Ｇ１」であるゲートウェイ１０１の演算装置２１０の使用率（プロセスフロー負荷）の合計値は９０％と算出される。識別情報が「Ｇ２」であるゲートウェイ１０１の演算装置２１０の使用率（プロセスフロー負荷）の合計値は７０％と算出される。識別情報が「Ｇ３」であるゲートウェイ１０１の演算装置２１０の使用率（プロセスフロー負荷）の合計値は９０％と算出される。８０％を閾値に設定した場合、識別情報が「Ｇ１」であるゲートウェイ１０１及び識別情報が「Ｇ３」であるゲートウェイ１０１が、負荷が高い計算機として検索される。
【００９８】
負荷が高い計算機が存在しないと判定された場合（ステップＳ１０１がＮＯ）、プロセス制御部１１３は、プロセス制御処理を終了する。
【００９９】
負荷が高い計算機が存在すると判定された場合（ステップＳ１０１がＹＥＳ）、プロセス制御部１１３は、検索された計算機の中からターゲット計算機を選択する（ステップＳ１０２）。
【０１００】
具体的には、プロセス制御部１１３は、ステップＳ１０１において生成された計算機のリストの中からターゲット計算機を選択する。このとき、プロセス制御部１１３は、リストからターゲット計算機を削除する。プロセス制御部１１３は、例えば、負荷の大きい順にターゲット計算機を選択する。なお、前述の選択方法は、一例であって本発明はこれに限定されない。
【０１０１】
次に、プロセス制御部１１３は、ターゲット計算機に関連するプロセスフロー（データ処理）であり、かつ、優先度５０３が「低」であるプロセスフロー（データ処理）を対象とした低優先度プロセス制御処理を実行する（ステップＳ１０３）。低優先度プロセス制御処理の詳細は図９Ａを用いて説明する。
【０１０２】
プロセス制御部１１３は、低優先度プロセス制御処理が完了した後、低優先度プロセス制御処理の結果に基づいて、ターゲット計算機の負荷の削減が成功したかを判定する（ステップＳ１０４）。
【０１０３】
ターゲット計算機の負荷の削減が成功したと判定された場合（ステップＳ１０４がＹＥＳ）、プロセス制御部１１３は、ステップＳ１０９に進む。
【０１０４】
ターゲット計算機の負荷の削減が失敗したと判定された場合（ステップＳ１０４がＮＯ）、プロセス制御部１１３は、優先度５０３が「低」かつ未処理のプロセスフローが存在するか否かを判定する（ステップＳ１０５）。
【０１０５】
具体的には、プロセス制御部１１３は、低優先度プロセス制御処理において生成されたプロセスフローのリストが空であるか否かを判定する。プロセスフローのリストが空である場合、プロセス制御部１１３は、優先度５０３が「低」かつ未処理のプロセスフローが存在しないと判定する。
【０１０６】
優先度５０３が「低」かつ未処理のプロセスフローが存在すると判定された場合（ステップＳ１０５がＹＥＳ）、プロセス制御部１１３は、ステップＳ１０３に戻り、同様の処理を実行する。
【０１０７】
優先度５０３が「低」かつ未処理のプロセスフローが存在しないと判定された場合（ステップＳ１０５がＮＯ）、プロセス制御部１１３は、ターゲット計算機に関連するプロセスフロー（データ処理）であり、かつ、優先度５０３が「高」であるプロセスフロー（データ処理）を対象とした高優先度プロセス制御処理を実行する（ステップＳ１０６）。高優先度プロセス制御処理の詳細は図９Ｂを用いて説明する。
【０１０８】
プロセス制御部１１３は、高優先度プロセス制御処理が完了した後、高優先度プロセス制御処理の結果に基づいて、ターゲット計算機の負荷の削減が成功したか否かを判定する（ステップＳ１０７）。
【０１０９】
ターゲット計算機の負荷の削減が成功したと判定された場合（ステップＳ１０７がＹＥＳ）、プロセス制御部１１３は、ステップＳ１０９に進む。
【０１１０】
ターゲット計算機の負荷の削減が失敗したと判定された場合（ステップＳ１０７がＮＯ）、プロセス制御部１１３は、優先度５０３が「高」かつ未処理のプロセスフローが存在するか否かを判定する（ステップＳ１０８）。
【０１１１】
具体的には、プロセス制御部１１３は、高優先度プロセス制御処理において生成されたプロセスフローのリストが空であるか否かを判定する。プロセスフローのリストが空である場合、プロセス制御部１１３は、優先度５０３が「高」かつ未処理のプロセスフローが存在しないと判定する。
【０１１２】
優先度５０３が「高」かつ未処理のプロセスフローが存在すると判定された場合（ステップＳ１０８がＹＥＳ）、プロセス制御部１１３は、ステップＳ１０６に戻り、同様の処理を実行する。
【０１１３】
優先度５０３が「高」かつ未処理のプロセスフローが存在しないと判定された場合（ステップＳ１０８がＮＯ）、プロセス制御部１１３は、ステップＳ１０９に進む。
【０１１４】
ステップＳ１０９では、プロセス制御部１１３は、ステップＳ１０１において検索された全ての計算機について処理が完了したか否かを判定する（ステップＳ１０９）。
【０１１５】
ステップＳ１０１において検索された全ての計算機について処理が完了していないと判定された場合（ステップＳ１０９がＮＯ）、プロセス制御部１１３は、ステップＳ１０２に戻り、同様の処理を実行する。
【０１１６】
ステップＳ１０１において検索された全ての計算機について処理が完了したと判定された場合（ステップＳ１０９がＹＥＳ）、プロセス制御部１１３は、プロセス制御処理を終了する。
【０１１７】
図９Ａは、実施例１のプロセス制御部１１３が実行する低優先度プロセス制御処理の一例を説明するフローチャートである。図９Ｂは、実施例１のプロセス制御部１１３が実行する高優先度プロセス制御処理の一例を説明するフローチャートである。
【０１１８】
まず、図９Ａを用いて低優先度プロセス制御処理について説明する。
【０１１９】
プロセス制御部１１３は、ターゲット計算機に関連するプロセスフローの中から優先度が低いプロセスフローを検索する（ステップＳ２０１）。
【０１２０】
具体的には、プロセス制御部１１３は、プロセスフロー構成情報１２１を参照し、計算機ＩＤ４０６にターゲット計算機の識別情報が設定されたプロセスフローを特定する。さらに、プロセス制御部１１３は、プロセスフロー要件情報１２２を参照し、プロセスフローＩＤ５０１に特定されたプロセスフローの識別情報が格納されるエントリの中から、優先度５０３が「低」であるプロセスフローを検索する。プロセス制御部１１３は、検索されたプロセスフローのリストを生成する。
【０１２１】
次に、プロセス制御部１１３は、検索されたプロセスフローの中からターゲットプロセスフローを選択する（ステップＳ２０２）。
【０１２２】
具体的には、プロセス制御部１１３は、生成されたリストの中からターゲットプロセスフローを選択する。このとき、プロセス制御部１１３は、リストからターゲットプロセスフローを削除する。ターゲットプロセスフローの選択方法は、リストの登録順に選択する方法等がある。
【０１２３】
次に、プロセス制御部１１３は、プロセス１５０の移動によるデータの欠損が許容されているか否かを判定する（ステップＳ２０３）。
【０１２４】
具体的には、プロセス制御部１１３は、プロセスフロー要件情報１２２を参照し、ターゲットプロセスフローに対応するエントリの制御フラグ５０５が「１」であるか否かを判定する。制御フラグ５０５が「１」である場合、プロセス制御部１１３は、プロセス１５０の移動によるデータの欠損が許容されていると判定する。
【０１２５】
プロセス１５０の移動によるデータの欠損が許容されていると判定された場合（ステップＳ２０３がＹＥＳ）、プロセス制御部１１３は、プロセス移動処理を実行し（ステップＳ２０４）、その後、低優先度プロセス制御処理を終了する。
【０１２６】
プロセス移動処理は、サーバ１００及びゲートウェイ１０１間でプロセス１５０を移動させることによって、ターゲット計算機の負荷を削減するための処理である。プロセス移動処理の詳細は図１０で説明する。なお、プロセス移動処理では、ターゲットプロセスフローを構成するプロセス１５０が移動対象となる。
【０１２７】
プロセス１５０の移動によるデータの欠損が許容されていないと判定された場合（ステップＳ２０３がＮＯ）、プロセス制御部１１３は、プロセス性能変更処理を実行し（ステップＳ２０５）、その後、低優先度プロセス制御処理を終了する。
【０１２８】
プロセス性能変更処理は、プロセス１５０の性能を制御するパラメータを変更することによって、ターゲット計算機の負荷を削減するための処理である。プロセス性能変更処理の詳細は図１１で説明する。なお、プロセス性能変更処理では、ターゲットプロセスフローを構成するプロセス１５０のパラメータが変更対象となる。
【０１２９】
次に、図９Ｂを用いて高優先度プロセス制御処理について説明する。
【０１３０】
プロセス制御部１１３は、ターゲット計算機に関連するプロセスフローの中から優先度が高いプロセスフローを検索する（ステップＳ３０１）。
【０１３１】
具体的には、プロセス制御部１１３は、プロセスフロー構成情報１２１を参照し、計算機ＩＤ４０６にターゲット計算機の識別情報が設定されたプロセスフローを特定する。さらに、プロセス制御部１１３は、プロセスフロー要件情報１２２を参照し、プロセスフローＩＤ５０１に特定されたプロセスフローの識別情報が格納されるエントリの中から、優先度５０３が「高」であるプロセスフローを検索する。プロセス制御部１１３は、検索されたプロセスフローのリストを生成する。
【０１３２】
ステップＳ３０２からステップＳ３０５の処理は、ステップＳ２０２及びステップＳ２０５の処理と同様の処理である。ただし、処理の対象は優先度５０３が「高」であるプロセスフローである点が異なる。
【０１３３】
本実施例では、制御フラグ５０５に基づいて、プロセス移動処理及びプロセス性能変更処理のいずれかを実行するように制御しているがこれに限定されない。例えば、以下のような処理でもよい。
【０１３４】
プロセス制御部１１３は、プロセスフロー構成情報１２１を参照し、ターゲットプロセスフローを構成するプロセス１５０を実行する計算機を特定する。プロセス制御部１１３は、プロセスフロー負荷情報１２３を参照し、特定された計算機のプロセスフロー負荷の合計値（計算機の負荷）を算出する。さらに、プロセス制御部１１３は、特定された全ての計算機の負荷が閾値以上であるか否かを判定する。すなわち、プロセスフローを構成するプロセス１５０の移動が可能であるか否かが判定される。
【０１３５】
特定された計算機のうち少なくとも一つの計算機の負荷が閾値より小さいと判定された場合、プロセス制御部１１３は、プロセス移動処理を実行する。
【０１３６】
特定された全ての計算機の負荷が閾値以上であると判定された場合、プロセス制御部１１３は、プロセス１５０の移動によるデータの欠損が許容されているか否かを判定する。プロセス１５０の移動によるデータの欠損が許容されている場合、プロセス制御部１１３はプロセス移動処理を実行する。プロセス１５０の移動によるデータの欠損が許容されていない場合、プロセス制御部１１３は管理者に対してエラーを通知する。
【０１３７】
以上が低優先度プロセス制御処理及び高優先度プロセス制御処理の変形例の説明である。
【０１３８】
図１０は、実施例１のプロセス制御部１１３が実行するプロセス移動処理の一例を説明するフローチャートである。
【０１３９】
プロセス制御部１１３は、ステップＳ１０２において選択されたターゲット計算機がサーバ１００であるか否かを判定する（ステップＳ４０１）。
【０１４０】
ターゲット計算機がサーバ１００であると判定された場合（ステップＳ４０１がＹＥＳ）、プロセス制御部１１３は、プロセスフロー構成情報１２１を参照し、サーバ１００が実行しているプロセス１５０の中からターゲットプロセスフロー内の実行順が最も先頭のプロセス１５０を選択する（ステップＳ４０２）。
【０１４１】
例えば、図５に示すプロセスフロー構成情報１２１の場合、識別情報が「Ｆ３」のプロセス１５０が選択される。このように制御する理由は、プロセス１５０を移動した後もプロセスフローを構成するプロセス１５０の実行順を維持するためである。
【０１４２】
次に、プロセス制御部１１３は、ターゲットプロセスフローを構成するプロセス１５０を実行するゲートウェイ１０１に、選択されたプロセス１５０を移動させた場合の推定負荷を算出する（ステップＳ４０３）。具体的には、以下のような処理が実行される。
【０１４３】
プロセス制御部１１３は、プロセスフロー負荷情報１２３を参照し、ターゲットプロセスフローに対応するエントリからサーバ１００のプロセスフロー負荷を取得する。また、プロセス制御部１１３は、プロセスフロー負荷情報１２３を参照し、移動先のゲートウェイ１０１に対応する列の値に基づいて、当該ゲートウェイ１０１のプロセスフロー負荷の合計値（ゲートウェイ１０１の負荷）を算出する。ここで、移動対象として選択されたプロセス１５０の負荷をαとし、ゲートウェイ１０１のプロセスフロー負荷の合計値をσとする。αの値は、計算機のプロセス毎の負荷を監視する機能を用いて取得できる。例えば、サーバ１００のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）がＬｉｎｕｘ（登録商標）である場合、ｔｏｐコマンド及びｐｓコマンドを使用することによってプロセス毎の負荷を取得することができる。
【０１４４】
プロセス制御部１１３は、ゲートウェイ性能情報１２０を参照し、ターゲットプロセスフローを構成するプロセス１５０を実行するゲートウェイ１０１に対応するエントリから性能比を取得する。ここで取得された性能比をβとする。
【０１４５】
プロセス制御部１１３は、下式（１）にしたがって、選択されたプロセス１５０の移動後のゲートウェイ１０１の推定負荷を算出する。ここで、γは選択されたプロセス１５０の移動後のゲートウェイ１０１の推定負荷を表す。
【０１４６】
【数１】
2019082857.tif 000003
【０１４７】
以上がステップＳ４０３の処理の説明である。
【０１４８】
次に、プロセス制御部１１３は、ゲートウェイ１０１の推定負荷が閾値より小さいか否かを判定する（ステップＳ４０４）。すなわち、移動先のゲートウェイ１０１に選択されたプロセス１５０を移動できるか否かが判定される。ゲートウェイ１０１の推定負荷が閾値より小さい場合、ゲートウェイ１０１へのプロセス１５０の移動が可能であると判定される。
【０１４９】
ゲートウェイ１０１の推定負荷が閾値以上であると判定された場合（ステップＳ４０４がＮＯ）、プロセス制御部１１３は、プロセス移動処理を終了する。このとき、プロセス制御部１１３は、ターゲット計算機の負荷の削減の失敗を示す値を出力する。
【０１５０】
ゲートウェイ１０１の推定負荷が閾値より小さいと判定された場合（ステップＳ４０４がＹＥＳ）、プロセス制御部１１３は、選択されたプロセス１５０をサーバ１００からゲートウェイ１０１に移動させる（ステップＳ４０５）。また、プロセス制御部１１３は、プロセスフロー要件情報１２２のターゲットプロセスフローに対応するエントリの運用フラグ５０４に「１」を設定する（ステップＳ４０６）。計算機間のプロセス１５０の移動方法は公知の技術であるため詳細な説明は省略する。なお、計算機間のプロセス１５０の移動に伴ってデータ処理を一時的に停止される必要がある。
【０１５１】
このとき、プロセス制御部１１３は、プロセスフロー構成情報１２１を参照し、選択されたプロセス１５０に対応する行の計算機ＩＤ４０６に移動先のゲートウェイ１０１の識別情報を設定する。
【０１５２】
次に、プロセス制御部１１３は、選択されたプロセス１５０の移動後のサーバ１００の負荷の削減が成功したか否かを判定する（ステップＳ４０７）。
【０１５３】
例えば、プロセス制御部１１３は、プロセスフロー負荷情報１２３を参照し、ターゲットプロセスフローのプロセスフロー負荷を除く、サーバ１００のプロセスフロー負荷の合計値が閾値より小さいか否かを判定する。また、別の方法としては、プロセス制御部１１３は、プロセス１５０を移動した後に一定時間待ち状態に移行し、その間に更新されたプロセスフロー負荷情報１２３に基づいて、サーバ１００のプロセスフロー負荷の合計値を算出し、プロセスフロー負荷の合計値が閾値より小さいか否かを判定する。
【０１５４】
上記の判定の結果、サーバ１００のプロセスフロー負荷の合計値が閾値より小さい場合、プロセス制御部１１３は、サーバ１００の負荷の削減が成功したと判定する。
【０１５５】
サーバ１００の負荷の削減が成功したと判定された場合（ステップＳ４０７がＹＥＳ）、プロセス制御部１１３は、プロセス移動処理を終了する。このとき、プロセス制御部１１３は、ターゲット計算機の負荷の削減の成功を示す値を出力する。
【０１５６】
サーバ１００の負荷の削減が失敗したと判定された場合（ステップＳ４０７がＮＯ）、プロセス制御部１１３は、プロセスフロー構成情報１２１を参照し、サーバ１００がターゲットプロセスフローを構成する他のプロセス１５０を実行しているか否かを判定する（ステップＳ４０８）。
【０１５７】
サーバ１００がターゲットプロセスフローを構成する他のプロセス１５０を実行していると判定された場合（ステップＳ４０８がＹＥＳ）、プロセス制御部１１３は、ステップＳ４０２に戻り、同様の処理を実行する。
【０１５８】
サーバ１００がターゲットプロセスフローを構成する他のプロセス１５０を実行していないと判定された場合（ステップＳ４０８がＮＯ）、プロセス制御部１１３は、プロセス移動処理を終了する。このとき、プロセス制御部１１３は、ターゲット計算機の負荷の削減の失敗を示す値を出力する。
【０１５９】
ステップＳ４０１において、ターゲット計算機がゲートウェイ１０１であると判定された場合（ステップＳ４０１がＮＯ）、プロセス制御部１１３は、プロセスフロー構成情報１２１を参照し、ゲートウェイ１０１が実行しているプロセス１５０の中からターゲットプロセスフロー内の実行順が最後尾のプロセス１５０を選択する（ステップＳ４０９）。
【０１６０】
例えば、図５に示すプロセスフロー構成情報１２１の場合、識別情報が「Ｆ１」のプロセス１５０が選択される。このように制御する理由は、プロセス１５０を移動した後もプロセスフローを構成するプロセス１５０の実行順を維持するためである。
【０１６１】
次に、プロセス制御部１１３は、ターゲットプロセスフローを構成するプロセス１５０を実行するサーバ１００に、選択されたプロセス１５０を移動させた場合の推定負荷を算出する（ステップＳ４１０）。具体的には、以下のような処理が実行される。
【０１６２】
プロセス制御部１１３は、プロセスフロー負荷情報１２３を参照し、ターゲットプロセスフローに対応するエントリからゲートウェイ１０１のプロセスフロー負荷を取得する。また、プロセス制御部１１３は、プロセスフロー負荷情報１２３を参照し、移動先のサーバ１００に対応する列の値に基づいて、当該サーバ１００のプロセスフロー負荷の合計値（サーバ１００の負荷）を算出する。ここで、移動対象として選択されたプロセス１５０の負荷をα’とし、サーバ１００のプロセスフロー負荷の合計値をσ’とする。α’の値は、前述のαと同様に、計算機のプロセス毎の負荷を監視する機能を用いて取得できる。
【０１６３】
プロセス制御部１１３は、ゲートウェイ性能情報１２０を参照し、選択されたプロセス１５０を実行するゲートウェイ１０１に対応するエントリから性能比を取得する。ここで取得された性能比をβ’とする。
【０１６４】
プロセス制御部１１３は、下式（２）にしたがって、選択されたプロセス１５０の移動後のサーバ１００の推定負荷を算出する。ここで、γ’は選択されたプロセス１５０の移動後のサーバ１００の推定負荷を表す。
【０１６５】
【数２】
2019082857.tif 000004
【０１６６】
以上がステップＳ４１０の処理の説明である。
【０１６７】
次に、プロセス制御部１１３は、サーバ１００の推定負荷が閾値より小さいか否かを判定する（ステップＳ４１１）。すなわち、サーバ１００に選択されたプロセス１５０を移動できるか否かが判定される。サーバ１００の推定負荷が閾値より小さい場合、サーバ１００へのプロセス１５０の移動が可能であると判定される。
【０１６８】
サーバ１００の推定負荷が閾値以上であると判定された場合（ステップＳ４１１がＮＯ）、プロセス制御部１１３は、プロセス移動処理を終了する。このとき、プロセス制御部１１３は、ターゲット計算機の負荷の削減の失敗を示す値を出力する。
【０１６９】
サーバ１００の推定負荷が閾値より小さいと判定された場合（ステップＳ４１１がＹＥＳ）、プロセス制御部１１３は、選択されたプロセス１５０をゲートウェイ１０１からサーバ１００に移動させる（ステップＳ４１２）。また、プロセス制御部１１３は、プロセスフロー要件情報１２２のターゲットプロセスフローに対応するエントリの運用フラグ５０４に「１」を設定する（ステップＳ４１３）。計算機間のプロセス１５０の移動方法は公知の技術であるため詳細な説明は省略する。
【０１７０】
このとき、プロセス制御部１１３は、プロセスフロー構成情報１２１を参照し、選択されたプロセス１５０に対応する行の計算機ＩＤ４０６にサーバ１００の識別情報を設定する。
【０１７１】
次に、プロセス制御部１１３は、選択されたプロセス１５０の移動後のゲートウェイ１０１の負荷の削減が成功したか否かを判定する（ステップＳ４１４）。ステップＳ４１４の判定方法は、ステップＳ４０７と同様である。
【０１７２】
ゲートウェイ１０１の負荷の削減が成功したと判定された場合（ステップＳ４１４がＹＥＳ）、プロセス制御部１１３は、プロセス移動処理を終了する。このとき、プロセス制御部１１３は、ターゲット計算機の負荷の削減の成功を示す値を出力する。
【０１７３】
ゲートウェイ１０１の負荷の削減が失敗したと判定された場合（ステップＳ４１４がＮＯ）、プロセス制御部１１３は、プロセスフロー構成情報１２１を参照し、ゲートウェイ１０１がターゲットプロセスフローを構成する他のプロセス１５０を実行しているか否かを判定する（ステップＳ４１５）。
【０１７４】
ゲートウェイ１０１がターゲットプロセスフローを構成する他のプロセス１５０を実行していると判定された場合（ステップＳ４１５がＹＥＳ）、プロセス制御部１１３は、ステップＳ４０９に戻り、同様の処理を実行する。
【０１７５】
ゲートウェイ１０１がターゲットプロセスフローを構成する他のプロセス１５０を実行していないと判定された場合（ステップＳ４１５がＮＯ）、プロセス制御部１１３は、プロセス移動処理を終了する。このとき、プロセス制御部１１３は、ターゲット計算機の負荷の削減の失敗を示す値を出力する。
【０１７６】
図１１は、実施例１のプロセス制御部１１３が実行するプロセス性能変更処理の一例を説明するフローチャートである。
【０１７７】
プロセス制御部１１３は、プロセスフロー構成情報１２１を参照し、ターゲットプロセスフローを構成するプロセス１５０の中にパラメータの値を変更できるプロセス１５０が存在するか否かを判定する（ステップＳ５０１）。
【０１７８】
具体的には、プロセス制御部１１３は、プロセスフローＩＤ４０１がターゲットプロセスフローの識別情報に一致するエントリを参照し、パラメータ４０４に値が設定された行が存在するか否かを判定する。当該行に対応するプロセス１５０がパラメータの値を変更できるプロセス１５０に対応する。
【０１７９】
なお、パラメータの値を変更できるプロセス１５０が存在する場合、プロセス制御部１１３は、当該プロセス１５０のリストを生成する。
【０１８０】
ターゲットプロセスフローを構成するプロセス１５０の中にパラメータの値を変更できるプロセス１５０が存在しないと判定された場合（ステップＳ５０１がＮＯ）、プロセス制御部１１３は、プロセス性能変更処理を終了する。このとき、プロセス制御部１１３は、ターゲット計算機の負荷の削減の失敗を示す値を出力する。
【０１８１】
ターゲットプロセスフローを構成するプロセス１５０の中にパラメータの値を変更できるプロセス１５０が存在すると判定された場合（ステップＳ５０１がＹＥＳ）、プロセス制御部１１３は、検索されたプロセス１５０の中からターゲットプロセス１５０を選択する（ステップＳ５０２）。
【０１８２】
具体的には、プロセス制御部１１３は、ステップＳ５０１において生成されたリストの中からターゲットプロセス１５０を選択する。このとき、プロセス制御部１１３は、リストからターゲットプロセス１５０を削除する。また、プロセス制御部１１３は、ターゲットプロセス１５０に対応する行のパラメータ４０４のコピーを第１シミュレーション用データとして生成し、プロセスフロー負荷情報１２３のコピーを第２シミュレーション用データとして生成する。
【０１８３】
ターゲットプロセス１５０の選択方法は、プロセス１５０の実行順に基づいて選択する方法、計算機の負荷の高さの順に基づいてプロセス１５０を選択する方法、及び、負荷が最も高い計算機が実行するプロセス１５０を選択する方法等が考えられる。
【０１８４】
次に、プロセス制御部１１３は、ターゲットプロセス１５０のパラメータの値を変更した場合の各計算機の推定負荷を算出する（ステップＳ５０３）。具体的には、以下のような処理が実行される。
【０１８５】
プロセス制御部１１３は、第１シミュレーション用データの設定値を、刻み幅に基づいて一段階下げた値に変更する。さらに、プロセス制御部１１３は、当該パラメータに関連する計算式に基づいて各計算機の推定プロセスフロー負荷を算出する。
【０１８６】
プロセス制御部１１３は、第２シミュレーション用データの負荷情報６０２に推定プロセスフロー負荷を設定する。プロセス制御部１１３は、第２シミュレーション用データを参照して、各計算機のプロセスフロー負荷の合計値（計算機の推定負荷）を算出する。
【０１８７】
ここで、一例として、ターゲットプロセス１５０がフィルタリングである場合を考える。抽出するデータ数が「５」から「４」に変更された場合、ターゲットプロセス１５０より実行順が後のプロセス１５０が扱うデータ数も削減される。この場合、プロセス制御部１１３は、ターゲットプロセス１５０及びターゲットプロセス１５０より実行順が後のプロセス１５０による負荷（プロセスフロー負荷）の４／５を推定プロセスフロー負荷として算出する。
【０１８８】
なお、前述した算出方法は一例であってこれに限定されない。プロセス１５０の種別及びパラメータの変更内容に応じた算出式を設定することができる。以上がステップＳ５０３の処理の説明である。
【０１８９】
次に、プロセス制御部１１３は、ターゲット計算機の推定負荷が閾値より小さいか否かを判定する（ステップＳ５０４）。
【０１９０】
ターゲット計算機の推定負荷が閾値より小さいと判定された場合（ステップＳ５０４がＹＥＳ）、プロセス制御部１１３は、ステップＳ５０３のパラメータの値の変更結果を実際のプロセス１５０に反映する（ステップＳ５０５）。また、プロセス制御部１１３は、プロセスフロー要件情報１２２のターゲットプロセスフローに対応するエントリの運用フラグ５０４に「１」を設定する（ステップＳ５０７）。その後、プロセス制御部１１３は、プロセス性能変更処理を終了する。このとき、プロセス制御部１１３は、ターゲット計算機の負荷の削減の成功を示す値を出力する。なお、パラメータの変更に伴うデータ処理の停止の必要はない。
【０１９１】
具体的には、プロセス制御部１１３は、ターゲットプロセス１５０を実行する計算機に、パラメータの値の変更内容として第１シミュレーション用データを含む変更要求を送信する。また、プロセス制御部１１３は、第１シミュレーション用データに基づいて、ステップＳ５０１で検索されたプロセスフロー構成情報１２１の行のパラメータ４０４を更新する。
【０１９２】
ステップＳ５０４において、ターゲット計算機の推定負荷が閾値以上であると判定された場合（ステップＳ５０４がＮＯ）、プロセス制御部１１３は、ターゲットプロセス１５０のパラメータをさらに変更できるか否かを判定する（ステップＳ５０６）。
【０１９３】
具体的には、プロセス制御部１１３は、第１シミュレーション用データの設定値が最小値と一致するか否かを判定する。設定値が最小値と一致する場合、プロセス制御部１１３は、ターゲットプロセス１５０のパラメータを変更できないと判定する。
【０１９４】
ターゲットプロセス１５０のパラメータを変更できると判定された場合（ステップＳ５０６がＹＥＳ）、プロセス制御部１１３は、ステップＳ５０３に戻り、同様の処理を実行する。
【０１９５】
ターゲットプロセス１５０のパラメータを変更できないと判定された場合（ステップＳ５０６がＮＯ）、プロセス制御部１１３は、ステップＳ５０１に戻り、同様の処理を実行する。なお、ステップＳ５０１では、プロセス制御部１１３は、リストが空であるか否かを判定することによって、パラメータを変更できるプロセス１５０が存在するか否かを判定する。
【０１９６】
図８から図１１を用いて説明したように、データ処理システム１を構成するサーバ１００及びゲートウェイ１０１のいずれかの負荷が高くなった場合、サーバ１００は、プロセスフロー負荷及びプロセスフローの属性に基づいて、プロセス１５０の移動又はプロセス１５０のパラメータの変更のいずれかを実行する。これによって、特定の計算機の負荷が高い状態を回避できる。
【０１９７】
図１２は、実施例１のプロセス制御部１１３が実行するプロセス位置復帰処理の一例を説明するフローチャートである。
【０１９８】
プロセス位置復帰処理は、プロセス移動処理によって移動されたプロセス１５０を可能な限り、変更前の位置に戻すための処理である。
【０１９９】
プロセス制御部１１３は、周期的に、又は、管理者からの指示を受け付けた場合、以下で説明するプロセス位置復帰処理を実行する。
【０２００】
プロセス制御部１１３は、プロセスフローの中からターゲットプロセスフローを選択する（ステップＳ６０１）。具体的には、以下のような処理が実行される。
【０２０１】
プロセス制御部１１３は、プロセスフロー要件情報１２２を参照し、運用フラグ５０４が「１」であるプロセスフローを特定する。さらに、プロセス制御部１１３は、プロセスフロー構成情報１２１を参照し、特定されたプロセスフローの初期計算機ＩＤ４０５及び計算機ＩＤ４０６の値が異なる行を含むエントリを検索する。プロセス制御部１１３は、検索されたプロセスフローのリストを生成する。
【０２０２】
プロセス制御部１１３は、リストからターゲットプロセスを選択する。このとき、プロセス制御部１１３は、リストからターゲットプロセスフローを削除する。また、プロセス制御部１１３は、プロセスフロー構成情報１２１を参照し、ターゲットプロセスフローを構成するプロセス１５０であり、かつ、初期計算機ＩＤ４０５及び計算機ＩＤ４０６の値が異なるプロセス１５０のリストを生成する。すなわち、移動されたプロセス１５０のリストが生成される。
【０２０３】
以下の説明では、プロセス１５０のリストに登録されるプロセス１５０を復帰プロセス１５０とも記載する。以上がステップＳ６０１の処理の説明である。
【０２０４】
次に、プロセス制御部１１３は、プロセスフロー負荷情報１２３を参照し、ターゲットプロセスフローを構成するプロセス１５０を実行する全ての計算機の負荷が閾値より小さいか否かを判定する（ステップＳ６０２）。
【０２０５】
ターゲットプロセスフローを構成するプロセス１５０を実行する少なくとも一つの計算機の負荷が閾値以上であると判定された場合（ステップＳ６０２がＮＯ）、プロセス制御部１１３は、復帰プロセス１５０の移動ができないため、ステップＳ６１０に進む。
【０２０６】
ターゲットプロセスフローを構成するプロセス１５０を実行する全ての計算機の負荷が閾値より小さいと判定された場合（ステップＳ６０２がＹＥＳ）、プロセス制御部１１３は、全ての計算機の負荷が減少傾向にあるか否かを判定する（ステップＳ６０３）。
【０２０７】
具体的には、プロセス制御部１１３は、プロセスフロー負荷情報１２３のターゲットプロセスフローに対応するエントリの負荷変動情報６０３を参照する。プロセス制御部１１３は、各計算機の統計値が閾値より小さいか否かを判定する。例えば、プロセス制御部１１３は、負荷変動情報６０３の値が「０」より小さいか否かを判定する。
【０２０８】
少なくとも一つの計算機の負荷が減少傾向にないと判定された場合（ステップＳ６０３がＮＯ）、プロセス制御部１１３は、復帰プロセス１５０の移動ができないため、ステップＳ６１０に進む。
【０２０９】
全ての計算機の負荷が減少傾向にあると判定された場合（ステップＳ６０３がＹＥＳ）、プロセス制御部１１３は、復帰プロセス１５０の中からターゲットプロセス１５０を選択する（ステップＳ６０４）。
【０２１０】
このとき、プロセス制御部１１３は、ステップＳ６０１で生成された復帰プロセス１５０のリストからターゲットプロセス１５０を削除する。
【０２１１】
次に、プロセス制御部１１３は、ターゲットプロセス１５０を移動前の計算機に移動した場合の各計算機の推定負荷を算出する（ステップＳ６０５）。ステップＳ６０５の処理はステップＳ４０３又はステップＳ４０９の処理と同様の処理である。
【０２１２】
次に、プロセス制御部１１３は、各計算機の推定負荷が閾値より小さいか否かを判定する（ステップＳ６０６）。
【０２１３】
少なくとも一つの計算機の推定負荷が閾値以上であると判定された場合（ステップＳ６０６がＮＯ）、プロセス制御部１１３は、復帰プロセス１５０の移動ができないため、ステップＳ６１０に進む。
【０２１４】
各計算機の推定負荷が閾値より小さいと判定された場合（ステップＳ６０６がＹＥＳ）、プロセス制御部１１３は、ターゲットプロセス１５０を元の計算機に移動する（ステップＳ６０７）。
【０２１５】
このとき、プロセス制御部１１３は、プロセスフロー構成情報１２１を参照し、ターゲットプロセス１５０に対応する行の計算機ＩＤ４０６に初期計算機ＩＤ４０５の値を設定する。
【０２１６】
次に、プロセス制御部１１３は、未処理の復帰プロセス１５０が存在するか否かを判定する（ステップＳ６０８）。
【０２１７】
具体的には、プロセス制御部１１３は、ステップＳ６０１において生成された復帰プロセス１５０のリストが空であるか否かを判定する。復帰プロセス１５０のリストが空である場合、プロセス制御部１１３は、未処理の復帰プロセス１５０が存在しないと判定する。
【０２１８】
未処理の復帰プロセス１５０が存在すると判定された場合（ステップＳ６０８がＹＥＳ）、プロセス制御部１１３は、ステップＳ６０４に戻り、同様の処理を実行する。
【０２１９】
未処理の復帰プロセス１５０が存在しないと判定された場合（ステップＳ６０８がＮＯ）、プロセス制御部１１３は、プロセスフロー要件情報１２２を参照し、ターゲットプロセスフローに対応するエントリの運用フラグ５０４に「０」を設定する（ステップＳ６０９）。その後、プロセス制御部１１３は、ステップＳ６１０に進む。
【０２２０】
ステップＳ６１０では、プロセス制御部１１３は、未処理のプロセスフローが存在するか否かを判定する（ステップＳ６１０）。
【０２２１】
具体的には、プロセス制御部１１３は、ステップＳ６０１において生成されたプロセスフローのリストが空であるか否かを判定する。プロセスフローのリストが空であると判定された場合、プロセス制御部１１３は、未処理のプロセスフローが存在しないと判定する。
【０２２２】
未処理のプロセスフローが存在しないと判定された場合（ステップＳ６１０がＮＯ）、プロセス制御部１１３は、プロセス位置復帰処理を終了する。
【０２２３】
未処理のプロセスフローが存在すると判定された場合（ステップＳ６１０がＹＥＳ）、プロセス制御部１１３は、ステップＳ６０１に戻り、同様の処理を実行する。
【０２２４】
プロセス位置復帰処理を実行することによって、負荷の減少に伴って、プロセス１５０の位置を元に戻すことができる。
【０２２５】
図１３は、実施例１のプロセス制御部１１３が実行するパラメータ復帰処理の一例を説明するフローチャートである。
【０２２６】
パラメータ復帰処理は、プロセス性能変更処理によって変更されたパラメータの値を可能な限り、変更前の値に戻すための処理である。
【０２２７】
プロセス制御部１１３は、周期的に、又は、管理者からの指示を受け付けた場合、以下で説明する復帰処理を実行する。
【０２２８】
プロセス制御部１１３は、プロセスフローの中からターゲットプロセスフローを選択する（ステップＳ７０１）。具体的には、以下のような処理が実行される。
【０２２９】
プロセス制御部１１３は、プロセスフロー要件情報１２２を参照し、運用フラグ５０４が「１」であるプロセスフローを特定する。さらに、プロセス制御部１１３は、プロセスフロー構成情報１２１を参照し、通常値及び設定値が異なるプロセスの行を含むエントリを検索する。プロセス制御部１１３は、検索されたプロセスフローのリストを生成する。
【０２３０】
プロセス制御部１１３は、リストからターゲットプロセスを選択する。このとき、プロセス制御部１１３は、リストからターゲットプロセスフローを削除する。また、プロセス制御部１１３は、プロセスフロー構成情報１２１を参照し、ターゲットプロセスフローを構成するプロセス１５０であり、かつ、設定値が通常値と異なるプロセス１５０のリストを生成する。すなわち、プロセス性能変更処理によってパラメータの値が変更されたプロセス１５０のリストが生成される。
【０２３１】
以下の説明では、プロセス１５０のリストに登録されるプロセス１５０を復帰プロセス１５０とも記載する。以上がステップＳ７０１の処理の説明である。
【０２３２】
次に、プロセス制御部１１３は、プロセスフロー負荷情報１２３を参照し、ターゲットプロセスフローを構成するプロセス１５０を実行する全ての計算機の負荷が閾値より小さいか否かを判定する（ステップＳ７０２）。ステップＳ７０２の処理は、ステップＳ６０２の処理と同様である。
【０２３３】
ターゲットプロセスフローを構成するプロセス１５０を実行する少なくとも一つの計算機の負荷が閾値以上であると判定された場合（ステップＳ７０２がＮＯ）、プロセス制御部１１３は、復帰プロセス１５０のパラメータの値を変更できないため、ステップＳ７１１に進む。
【０２３４】
ターゲットプロセスフローを構成するプロセス１５０を実行する全ての計算機の負荷が閾値より小さいと判定された場合（ステップＳ７０２がＹＥＳ）、プロセス制御部１１３は、全ての計算機の負荷が減少傾向にあるか否かを判定する（ステップＳ７０３）。ステップＳ７０３の処理は、ステップＳ６０３の処理と同様である。
【０２３５】
少なくとも一つの計算機の負荷が減少傾向にないと判定された場合（ステップＳ７０３がＮＯ）、プロセス制御部１１３は、復帰プロセス１５０のパラメータの値を変更できないため、ステップＳ７１１に進む。
【０２３６】
全ての計算機の負荷が減少傾向にあると判定された場合（ステップＳ７０３がＹＥＳ）、プロセス制御部１１３は、復帰プロセス１５０の中からターゲットプロセス１５０を選択する（ステップＳ７０４）。
【０２３７】
このとき、プロセス制御部１１３は、復帰プロセス１５０のリストからターゲットプロセス１５０を削除する。また、プロセス制御部１１３は、プロセスフロー構成情報１２１を参照し、ターゲットプロセス１５０に対応する行のパラメータ４０４のコピーを第３シミュレーション用データとして生成する。
【０２３８】
次に、プロセス制御部１１３は、ターゲットプロセス１５０のパラメータの値を変更した場合の各計算機の推定負荷を算出する（ステップＳ７０５）。ステップＳ６０５の処理はステップＳ５０３の処理と同様の処理である。ただし、ステップＳ６０５では、プロセス制御部１１３は、シミュレーション用データの設定値を刻み幅に基づいて一段階上げた値に変更する。
【０２３９】
次に、プロセス制御部１１３は、各計算機の推定負荷が閾値より小さいか否かを判定する（ステップＳ７０６）。
【０２４０】
少なくとも一つの計算機の推定負荷が閾値以上であると判定された場合（ステップＳ７０６がＮＯ）、プロセス制御部１１３は、復帰プロセス１５０のパラメータの値を変更できないため、ステップＳ７１１に進む。
【０２４１】
各計算機の推定負荷が閾値より小さいと判定された場合（ステップＳ７０６がＹＥＳ）、プロセス制御部１１３は、ステップＳ７０５のパラメータの値の変更結果を実際のプロセス１５０に反映する（ステップＳ７０７）。
【０２４２】
具体的には、プロセス制御部１１３は、ターゲットプロセス１５０を実行する計算機に、パラメータの値の変更内容として第３シミュレーション用データを含む変更要求を送信する。このとき、プロセス制御部１１３は、ステップＳ７０３で検索されたプロセスフロー構成情報１２１の行のパラメータ４０４を第３シミュレーション用データに基づいて更新する。
【０２４３】
次に、プロセス制御部１１３は、変更後のパラメータの値が通常値に一致するか否かを判定する（ステップＳ７０８）。
【０２４４】
具体的には、プロセス制御部１１３は、プロセスフロー構成情報１２１のターゲットプロセス１５０に対応する行のパラメータ４０４を参照し、設定値が通常値に一致するか否かを判定する。
【０２４５】
変更後のパラメータの値が通常値に一致しないと判定された場合（ステップＳ７０８がＮＯ）、プロセス制御部１１３は、ステップＳ７０５に戻り、同様の処理を実行する。
【０２４６】
変更後のパラメータの値が通常値に一致すると判定された場合（ステップＳ７０８がＹＥＳ）、プロセス制御部１１３は、プロセスフロー要件情報１２２を参照し、ターゲットプロセスフローに対応するエントリの運用フラグ５０４に「０」を設定する（ステップＳ７０９）。
【０２４７】
次に、プロセス制御部１１３は、未処理の復帰プロセス１５０が存在するか否かを判定する（ステップＳ７１０）。
【０２４８】
具体的には、プロセス制御部１１３は、ステップＳ７０１において生成された復帰プロセス１５０のリストが空であるか否かを判定する。復帰プロセス１５０のリストが空である場合、プロセス制御部１１３は、未処理の復帰プロセス１５０が存在しないと判定する。
【０２４９】
未処理の復帰プロセス１５０が存在すると判定された場合（ステップＳ７１０がＹＥＳ）、プロセス制御部１１３は、ステップＳ７０４に戻り、同様の処理を実行する。
【０２５０】
未処理の復帰プロセス１５０が存在しないと判定された場合（ステップＳ７１０がＮＯ）、プロセス制御部１１３は、ステップＳ７１１に進む。
【０２５１】
ステップＳ７１１では、プロセス制御部１１３は、未処理のプロセスフローが存在するか否かを判定する（ステップＳ７１１）。
【０２５２】
具体的には、プロセス制御部１１３は、ステップＳ７０１において生成されたプロセスフローのリストが空であるか否かを判定する。プロセスフローのリストが空であると判定された場合、プロセス制御部１１３は、未処理のプロセスフローが存在しないと判定する。
【０２５３】
未処理のプロセスフローが存在しないと判定された場合（ステップＳ７１１がＮＯ）、プロセス制御部１１３は、パラメータ復帰処理を終了する。
【０２５４】
未処理のプロセスフローが存在すると判定された場合（ステップＳ７１１がＹＥＳ）、プロセス制御部１１３は、ステップＳ７０１に戻り、同様の処理を実行する。
【０２５５】
パラメータ復帰処理を実行することによって、負荷の減少に伴って、段階的にプロセスフローの性能を元に戻すことができる。
【０２５６】
以上で説明したように、本実施例によれば、プロセスフローを構成するプロセス１５０の性能の変更及び位置の変更のいずれかを実行することによって、プロセス１５０の実行に伴う特定の計算機の負荷を削減できる。これによって、データ処理を継続することができる。
【０２５７】
また、本実施例の制御方法では、データ処理に要するリソースの追加する必要がないため、運用コストを削減できる効果も有する。
【０２５８】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【０２５９】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【０２６０】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ（登録商標）等の広範囲のプログラム又はスクリプト言語で実装できる。
【０２６１】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【０２６２】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【符号の説明】
【０２６３】
１  データ処理システム
１００  サーバ
１０１  ゲートウェイ
１０２  センサ
１０３  業務計算機
１０５  ネットワーク
１１０、１３０  負荷監視部
１１１、１３１  振分部
１１２、１３２  プロセスフロー処理部
１１３    プロセス制御部
１２０    ゲートウェイ性能情報
１２１    プロセスフロー構成情報
１２２    プロセスフロー要件情報
１２３    プロセスフロー負荷情報
１５０    プロセス
２００、２１０  演算装置
２０１、２１１  記憶装置
２０２、２１２  インタフェース
【図１】
2019082857.tif 000005
【図２】
2019082857.tif 000006
【図３】
2019082857.tif 000007
【図４】
2019082857.tif 000008
【図５】
2019082857.tif 000009
【図６】
2019082857.tif 000010
【図７】
2019082857.tif 000011
【図８】
2019082857.tif 000012
【図９Ａ】
2019082857.tif 000013
【図９Ｂ】
2019082857.tif 000014
【図１０】
2019082857.tif 000015
【図１１】
2019082857.tif 000016
【図１２】
2019082857.tif 000017
【図１３】
2019082857.tif 000018