(57)【要約】【課題】フローエディタの高い生産性を享受しつつ情報処理システムのスケーラビリティや信頼性を確保する。【解決手段】分散処理開始ブロック、分散処理終了ブロック、および分散処理開始ブロックと分散処理終了ブロックとの間に記述されるブロックである分散処理対象ブロックを含むデータフローをフローエディタにより編集する。クラスタを構成するマスタ装置は、データフローの実行時に分散処理開始ブロックに到達すると、分散処理対象ブロックの実行指示を含むメッセージを、クラスタを構成するワーカ装置に送信し、ワーカ装置の夫々は、メッセージを受信すると分散処理対象ブロックを実行し、分散処理対象ブロックの実行結果を含むメッセージをマスタ装置に送信し、マスタ装置は、ワーカ装置から実行結果を受信すると、分散処理終了ブロックに後続するデータフローのブロックを実行する。【選択図】図１
2019207546.tif 000002
【特許請求の範囲】
【請求項１】
フローエディタにより編集されたデータフローに基づくソフトウェアを実行する情報処理システムであって、
前記ソフトウェアの分散処理を行うクラスタを構成する複数の情報処理装置を含み、
前記データフローは、分散処理を開始させるブロックである分散処理開始ブロック、分散処理を終了させるブロックである分散処理終了ブロック、および前記分散処理開始ブロックと前記分散処理終了ブロックとの間に記述されるブロックである分散処理対象ブロックを含み、
前記クラスタを構成する前記情報処理装置であるマスタ装置は、前記データフローの実行時に前記分散処理開始ブロックに到達すると、前記分散処理対象ブロックの実行指示を含むメッセージを、前記クラスタを構成する複数のワーカ装置に送信し、
前記ワーカ装置の夫々は、前記メッセージを受信すると前記分散処理対象ブロックを実行し、前記分散処理対象ブロックの実行結果を含むメッセージを前記マスタ装置に送信し、
前記マスタ装置は、前記複数のワーカ装置から前記実行結果を受信すると、前記分散処理終了ブロックに後続する前記データフローのブロックを実行する、
情報処理システム。
【請求項２】
請求項１に記載の情報処理システムであって、
前記ソフトウェアは、前記データフローの実行制御を行うフロー実行制御部、および前記分散処理に際して前記実行指示または前記実行結果を含む前記メッセージを送受信して前記情報処理装置間の処理を連携する処理連携部、の各機能を実現するプログラムを含み、
前記分散処理は、前記情報処理装置が、共通のロジックで記述された前記プログラムを実行することにより実現される、
情報処理システム。
【請求項３】
請求項２に記載の情報処理システムであって、
前記フロー実行制御部は、
前記データフローのブロックを開始する契機が到来すると、前記契機を生じさせたブロックの実行主体である発信元が前記フロー実行制御部または前記処理連携部のいずれであるかを判定し、
前記発信元が前記フロー実行制御部である場合、前記ブロックが前記分散処理開始ブロックに起因するものであるか前記分散処理終了ブロックに起因するものであるかを示す情報である分散処理状態情報を設定した前記メッセージを自装置の前記処理連携部に送信し
前記発信元が前記処理連携部である場合、前記分散処理開始ブロックに起因するものであるか前記分散処理終了ブロックに起因するものであるかを示す情報である分散処理状態情報を前記メッセージに設定して前記メッセージの処理を継続する、
情報処理システム。
【請求項４】
請求項２または３に記載の情報処理システムであって、
前記処理連携部は、
前記データフローのブロックを開始する契機が到来すると、前記契機を生じさせたブロックの実行主体である発信元が前記フロー実行制御部または前記処理連携部のいずれであるかを判定し、
前記発信元が前記フロー実行制御部である場合、自装置が前記マスタ装置または前記ワーカ装置のいずれであるかを判定し、自装置が前記マスタ装置である場合は前記ワーカ装置の前記処理連携部に前記メッセージを送信し、自装置が前記ワーカ装置である場合は前記マスタ装置の前記処理連携部に前記メッセージを送信し、
前記発信元が前記処理連携部である場合は前記メッセージの処理を継続する、
情報処理システム。
【請求項５】
請求項２に記載の情報処理システムであって、
前記ソフトウェアは、前記フロー実行制御部および前記処理連携部の各機能を実現するためのプログラムを含んだコンテナとして、前記クラスタを構成する前記情報処理装置に記憶される、
情報処理システム。
【請求項６】
請求項１に記載の情報処理システムであって、
前記クラスタを構成する前記複数の情報処理装置と通信可能に接続する情報処理装置であるクラスタ管理装置を含み、
前記クラスタ管理装置は、前記ワーカ装置の夫々から送られてくるハートビートに基づき前記ワーカ装置における障害の発生有無を監視し、前記ワーカ装置の一つに障害が発生したことを検知すると、前記障害の発生を前記マスタ装置に通知し、
前記マスタ装置は、障害の発生していない他の前記ワーカ装置に前記実行指示を再送する、
情報処理システム。
【請求項７】
請求項１に記載の情報処理システムであって、
前記クラスタを構成する前記複数の情報処理装置と通信可能に接続する情報処理装置であるクラスタ管理装置を含み、
前記クラスタは、稼動系の前記マスタ装置と待機系の前記マスタ装置とを含み、
前記クラスタ管理装置は、前記稼動系のマスタ装置から送られてくるハートビートに基づき前記稼動系のマスタ装置における障害の発生有無を監視し、前記稼動系のマスタ装置に障害が発生したことを検知すると、前記障害の発生を前記待機系のマスタ装置に通知し、
前記待機系のマスタ装置は、前記通知を受信すると稼動系の前記マスタ装置として動作を開始する、
情報処理システム。
【請求項８】
請求項１に記載の前記情報処理システムにおける前記データフローの編集環境を提供する情報処理装置であって、
前記分散処理開始ブロック、前記分散処理終了ブロック、および前記分散処理対象ブロックを含んだデータフローの編集環境を提供する、
情報処理装置。
【請求項９】
フローエディタにより編集されたデータフローに基づくソフトウェアを実行し、前記ソフトウェアの分散処理を行うクラスタを構成する複数の情報処理装置を含んで構成される情報処理システムの制御方法であって、
前記データフローは、分散処理を開始させるブロックである分散処理開始ブロック、分散処理を終了させるブロックである分散処理終了ブロック、および前記分散処理開始ブロックと前記分散処理終了ブロックとの間に記述されるブロックである分散処理対象ブロックを含み、
前記クラスタを構成する前記情報処理装置であるマスタ装置が、前記データフローの実行時に前記分散処理開始ブロックに到達すると、前記分散処理対象ブロックの実行指示を含むメッセージを、前記クラスタを構成する複数のワーカ装置に送信するステップ、
前記ワーカ装置の夫々が、前記メッセージを受信すると前記分散処理対象ブロックを実行し、前記分散処理対象ブロックの実行結果を含むメッセージを前記マスタ装置に送信するステップ、および、
前記マスタ装置が、前記複数のワーカ装置から前記実行結果を受信すると、前記分散処理終了ブロックに後続する前記データフローのブロックを実行するステップ、
を実行する、情報処理システムの制御方法。
【請求項１０】
請求項９に記載の情報処理システムの制御方法であって、
前記ソフトウェアは、前記データフローの実行制御を行うフロー実行制御部、および前記分散処理に際して前記実行指示または前記実行結果を含む前記メッセージを送受信して前記情報処理装置間の処理を連携する処理連携部、の各機能を実現するプログラムを含み、
前記分散処理は、前記情報処理装置が、共通のロジックで記述された前記プログラムを実行することにより実現される、
情報処理システムの制御方法。
【請求項１１】
請求項１０に記載の情報処理システムの制御方法であって、
前記フロー実行制御部が、
前記データフローのブロックを開始する契機が到来すると、前記契機を生じさせたブロックの実行主体である発信元が前記フロー実行制御部または前記処理連携部のいずれであるかを判定するステップ、
前記発信元が前記フロー実行制御部である場合、前記ブロックが前記分散処理開始ブロックに起因するものであるか前記分散処理終了ブロックに起因するものであるかを示す情報である分散処理状態情報を設定した前記メッセージを自装置の前記処理連携部に送信するステップ、
前記発信元が前記処理連携部である場合、前記分散処理開始ブロックに起因するものであるか前記分散処理終了ブロックに起因するものであるかを示す情報である分散処理状態情報を前記メッセージに設定し、前記メッセージの処理を継続するステップ、
を実行する、情報処理システムの制御方法。
【請求項１２】
請求項１０または１１に記載の情報処理システムの制御方法あって、
前記処理連携部が、
前記データフローのブロックを開始する契機が到来すると、前記契機を生じさせたブロックの実行主体である発信元が前記フロー実行制御部または前記処理連携部のいずれであるかを判定するステップ、
前記発信元が前記フロー実行制御部である場合、自装置が前記マスタ装置または前記ワーカ装置のいずれであるかを判定し、自装置が前記マスタ装置である場合は前記ワーカ装置の前記処理連携部に前記メッセージを送信し、自装置が前記ワーカ装置である場合は前記マスタ装置の前記処理連携部に前記メッセージを送信するステップ、
前記発信元が前記処理連携部である場合、前記メッセージについての処理を継続するステップ、
をさらに実行する、情報処理システムの制御方法。
【請求項１３】
請求項１０に記載の情報処理システムの制御方法であって、
前記ソフトウェアは、前記フロー実行制御部および前記処理連携部の各機能を実現するためのプログラムを含んだコンテナとして、前記クラスタを構成する前記情報処理装置に記憶される、
情報処理システムの制御方法。
【請求項１４】
請求項９に記載の情報処理システムの制御方法であって、
前記クラスタを構成する前記複数の情報処理装置と通信可能に接続する情報処理装置であるクラスタ管理装置を含み、
前記クラスタ管理装置が、前記ワーカ装置の夫々から送られてくるハートビートに基づ
き前記ワーカ装置における障害の発生有無を監視し、前記ワーカ装置の一つに障害が発生したことを検知すると、前記障害の発生を前記マスタ装置に通知するステップ、および、
前記マスタ装置が、障害の発生していない他の前記ワーカ装置に前記実行指示を再送するステップ、
をさらに実行する、情報処理システムの制御方法。
【請求項１５】
請求項９に記載の情報処理システムの制御方法であって、
前記クラスタを構成する前記複数の情報処理装置と通信可能に接続する情報処理装置であるクラスタ管理装置を含み、
前記クラスタは、稼動系の前記マスタ装置と待機系の前記マスタ装置とを含み、
前記クラスタ管理装置が、前記稼動系のマスタ装置から送られてくるハートビートに基づき前記稼動系のマスタ装置における障害の発生有無を監視し、前記稼動系のマスタ装置に障害が発生したことを検知すると、前記障害の発生を前記待機系のマスタ装置に通知するステップ、及び、
前記待機系のマスタ装置が、前記通知を受信すると稼動系の前記マスタ装置として動作を開始するステップ、
をさらに実行する、情報処理システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、および情報処理システムの制御方法に関する。
【背景技術】
【０００２】
特許文献１には、「アプリケーション開発の生産性を向上させることが可能な分散システムにおけるシステム間連携装置を提供する」、「システム間連携装置は、他のシステムにアクセスして所定のアプリケーションを実行させるためのアプリケーション処理部と、アプリケーション処理部が所定のアプリケーションの実行指示を受けた場合に、所定のアプリケーションからの要求に応じて、プロトコル定義に含まれる通信プロトコル形態およびシステム構成およびネットワーク構成に基づいて定められるシステムと他のシステムとの間の処理を行うために必要な要件値と非機能要件との組み合わせに基づいて、複数のモジュールの中からアプリケーションによる処理を実行させるために必要なモジュールを選択する組合せ処理部とを備える」と記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−６１７６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ビジネスの変化が激しい昨今においては、仮説検証の過程で試行錯誤しつつデータフローを迅速かつ効率よく構築することが可能なツールが求められている。そのようなツールとして、ＧＵＩ（Graphical User Interface）を利用してノンプログラミングにデータフローを定義していくことが可能なフローエディタがある。フローエディタは豊富な入出力インタフェースを提供し、ブロックを組み合わせていく感覚でデータフローを作成することができるため、従来のプログラムやスクリプトによる方法に比べて編集環境が直感的で理解しやすく、高度な技術知識を有していない場合でも取り扱いが容易で生産性に優れるといった利点を有する。
【０００５】
一方で、現状の多くのフローエディタはロジックの構築容易性を主目的とした構成であるため、情報処理システムのスケーラビリティや信頼性といった観点でのサポートが十分でないことがある。ここで情報処理システムのスケーラビリティや信頼性を向上させる方法として分散処理技術があるが、現状のフローエディタには分散処理に対する仕組みが用意されておらず、フローエディタにより作成されたデータフローに基くソフトウェアについて、分散処理を実現するための仕組みを別途開発する必要がある。またフローエディタによりロジックが変更されるたびに分散処理の仕組みも変更する必要があり、生産効率や保守効率の観点から課題がある。
【０００６】
特許文献１には、アプリケーション開発の生産性を向上させることを目的として構成された、分散システムにおけるシステム間連携装置について記載されている。しかし特許文献１には、フローエディタにより作成されたデータフローに基づくソフトウェアを分散処理する仕組みについては何も開示されていない。また特許文献１には、システムのスケーラビリティや信頼性を向上させる観点に基づく技術についても何も開示されていない。
【０００７】
本発明はこうした背景に鑑みてなされたもので、フローエディタの高い生産性を享受しつつ情報処理システムのスケーラビリティや信頼性を確保することが可能な、情報処理シ
ステム、情報処理装置、および情報処理システムの制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するための本発明の一つは、フローエディタにより編集されたデータフローに基づくソフトウェアを実行する情報処理システムであって、前記ソフトウェアの分散処理を行うクラスタを構成する複数の情報処理装置を含み、前記データフローは、分散処理を開始させるブロックである分散処理開始ブロック、分散処理を終了させるブロックである分散処理終了ブロック、および前記分散処理開始ブロックと前記分散処理終了ブロックとの間に記述されるブロックである分散処理対象ブロックを含み、前記クラスタを構成する前記情報処理装置であるマスタ装置は、前記データフローの実行時に前記分散処理開始ブロックに到達すると、前記分散処理対象ブロックの実行指示を含むメッセージを、前記クラスタを構成する複数のワーカ装置に送信し、前記ワーカ装置の夫々は、前記メッセージを受信すると前記分散処理対象ブロックを実行し、前記分散処理対象ブロックの実行結果を含むメッセージを前記マスタ装置に送信し、前記マスタ装置は、前記複数のワーカ装置から前記実行結果を受信すると、前記分散処理終了ブロックに後続する前記データフローのブロックを実行する。
【０００９】
その他、本願が開示する課題、及びその解決方法は、発明を実施するための形態の欄、及び図面により明らかにされる。
【発明の効果】
【００１０】
本発明によれば、フローエディタの高い生産性を享受しつつ情報処理システムのスケーラビリティや信頼性を確保することができる。
【図面の簡単な説明】
【００１１】
【図１】情報処理システムの概略的な構成を示す図である。
【図２】フロー編集装置、センサ装置、クラスタ管理装置、ＡＰ実行装置、および管理装置として利用可能な情報処理装置のハードウェアの一例である。
【図３】フロー編集装置が備える主な機能を示す図である。
【図４】センサ装置が備える主な機能を示す図である。
【図５】クラスタ管理装置が備える主な機能を示す図である。
【図６】管理装置が備える主な機能を示す図である。
【図７】ＡＰ実行装置が備える主な機能を示す図である。
【図８】ＡＰソフトウェアの機能を概念的に示した図である。
【図９】データフローの一例を示す図である。
【図１０】コンテナ配信シーケンスを説明する図である。
【図１１】ＡＰソフト実行シーケンスを説明する図である。
【図１２】ＡＰソフト実行シーケンス（ワーカ障害時）を説明する図である。
【図１３】ＡＰソフト実行シーケンス（マスタ障害時）を説明する図である。
【図１４】処理Iの詳細を説明するフローチャートである。
【図１５】処理IIの詳細を説明するフローチャートである。
【図１６】処理IIIの詳細を説明するフローチャートである。
【図１７】障害監視処理（処理IV）の詳細を説明するフローチャートである。
【図１８】分散処理シーケンスを説明する図である。
【図１９】フロー実行制御部の処理を説明するフローチャートである。
【図２０】処理連携部の処理を説明するフローチャートである。
【図２１】メッセージのデータ構成を示す図である。
【図２２】クラスタ管理情報の一例である。
【発明を実施するための形態】
【００１２】
以下、実施形態につき図面を参照しつつ説明する。以下の説明において、同一のまたは類似する構成に同一の符号を付して重複した説明を省略することがある。また「アプリケ
ーション」のことを「ＡＰ」と表記することがある。
【００１３】
図１に実施形態として説明する情報処理システム１の概略的な構成を示している。同図に示すように、情報処理システム１は、フロー編集装置２、一つ以上のセンサ装置３、クラスタ管理装置４、４つのＡＰ実行装置１０、および管理装置５を含む。これらの装置は、いずれも情報処理装置（コンピュータ）を用いて構成されており、通信ネットワーク８を介して互いに通信可能に接続されている。
【００１４】
通信ネットワーク８は、イーサネット（登録商標）やＴＣＰ／ＩＰ等の所定の通信プロトコルに従った通信を実現する通信基盤（インフラストラクチャ）であり、例えば、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）、インターネット、専用線、
公衆通信網等である。
【００１５】
４つのＡＰ実行装置１０はクラスタ(cluster）を構成しており、夫々、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬ、ＡＰ実行装置（マスタ）（待機系）１０ＭＳ、およびＡＰ実行装置（ワーカ）１０Ｗとして機能する。尚、本例では、説明の簡単のため、ＡＰ実行装置１０の数を４つとしているが、ＡＰ実行装置１０の数は必ずしも限定されない。
【００１６】
ＡＰ実行装置（マスタ）（稼動系）１０ＭＬとＡＰ実行装置（マスタ）（待機系）１０ＭＳとは、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬを稼動系（Leader）とし、ＡＰ実行装置（マスタ）（待機系）１０ＭＳを待機系（Stand-by）（障害発生時のバックアップ先）とする、障害対応クラスタ（フェールオーバクラスタ）を構成している。
【００１７】
また４つのＡＰ実行装置１０は、負荷分散クラスタを構成し、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬおよびＡＰ実行装置（マスタ）（待機系）１０ＭＳは、上記負荷分散クラスタにおいて主側（マスタ側）装置として機能し、２つのＡＰ実行装置（ワーカ）１０Ｗは、上記負荷分散クラスタにおいて従側（ワーカ側）装置として機能する。尚、本例ではＡＰ実行装置（ワーカ）１０Ｗを２つとしているが、ＡＰ実行装置（ワーカ）１０Ｗは３つ以上としてもよい。
【００１８】
図２に、フロー編集装置２、センサ装置３、クラスタ管理装置４、ＡＰ実行装置１０、および管理装置５、として利用可能な情報処理装置１００のハードウェアの一例を示している。同図に示すように、情報処理装置１００は、プロセッサ１１、主記憶装置１２、補助記憶装置１３、入力装置１４、出力装置１５、通信装置１６、およびセンサ１７を備える。尚、センサ１７はセンサ装置３についてのみ必須の構成である。
【００１９】
フロー編集装置２、センサ装置３、クラスタ管理装置４、ＡＰ実行装置１０、および管理装置５は、例えば、クラウドシステム（Cloud System）により提供されるクラウドサーバ（Cloud Server）のような仮想的な情報処理資源を用いて実現されるものであってもよい。また例えば、フロー編集装置２、センサ装置３、クラスタ管理装置４、ＡＰ実行装置１０、および管理装置５は、協調して動作する複数の情報処理装置１００によって実現されるものであってもよい。また例えば、フロー編集装置２、センサ装置３、クラスタ管理装置４、ＡＰ実行装置１０、および管理装置５のうちの２つ以上を共通の情報処理装置１００で実現するようにしてもよい。
【００２０】
プロセッサ１１は、例えば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＧＰＵ（Graphics Processing Unit）等を用いて構成されている。主記憶装置１２は、プログラムやデータを記憶する装置であり、例えば、ＲＯＭ（Read Only Memory）（ＳＲＡＭ（Static Random Access Memory）、ＮＶＲＡＭ（Non Volatile RAM
）、マスクＲＯＭ（Mask Read Only Memory）、ＰＲＯＭ（Programmable ROM）等）、Ｒ
ＡＭ（Random Access Memory）（ＤＲＡＭ（Dynamic Random Access Memory）等）等である。補助記憶装置１３は、ハードディスクドライブ（Hard Disk Drive）、フラッシュメ
モリ（Flash Memory）、ＳＳＤ（Solid State Drive）、光学式記憶装置（ＣＤ（Compact
Disc）、ＤＶＤ(Digital Versatile Disc)等）等である。補助記憶装置１３に格納され
ているプログラムやデータは、随時、主記憶装置１２に読み込まれる。
【００２１】
入力装置１４は、ユーザから情報を受け付けるユーザインタフェースであり、例えば、キーボード、マウス、カードリーダ、タッチパネル等である。出力装置１５は、情報を出力（表示出力、音声出力、印字出力等）することによりユーザに情報を提供するユーザインタフェースであり、例えば、各種情報を可視化する表示装置（ＬＣＤ（Liquid Crystal
Display）、グラフィックカード等）や音声出力装置（スピーカ）、印字装置等である。通信装置１６は、通信ネットワーク８を介して他の装置と通信する通信インタフェースであり、例えば、ＮＩＣ（Network Interface Card）、無線通信モジュール、ＵＳＢ（Universal Serial Interface）モジュール、シリアル通信モジュール等である。通信装置１６は、通信可能に接続する他の装置から情報を受信する入力装置として機能させることもできる。また通信装置１６は、通信可能に接続する他の装置に情報を送信する出力装置として機能させることもできる。
【００２２】
センサ装置３は、上記の構成に加えて、センシング対象から環境情報等の種々のデータ（以下、センサデータとも称する。）を収集する一つ以上のセンサ１７（カメラ、赤外線検知機器、ミリ波レーダ、温度計、振動計等）を備える。情報処理システム１はセンサ装置３を複数含んでいてもよい。
【００２３】
フロー編集装置２、センサ装置３、クラスタ管理装置４、ＡＰ実行装置１０、および管理装置５の機能は、プロセッサ１１が、主記憶装置１２に格納されているプログラムを読み出して実行することにより実現される。また上記のプログラムは、例えば、記録媒体に記録して配布することができる。また上記のプログラムは、例えば、上記プログラムを蓄積管理する配信サーバ装置から通信設備を介してフロー編集装置２、センサ装置３、クラスタ管理装置４、ＡＰ実行装置１０、および管理装置５にダウンロードすることにより配布することができる。
【００２４】
フロー編集装置２、センサ装置３、クラスタ管理装置４、ＡＰ実行装置１０、および管理装置５は、上記の機能に加えて、例えば、オペレーティングシステム、ファイルシステム、デバイスドライバ、ＤＢＭＳ（DataBase Management System）等の他の機能をさらに備えていてもよい。フロー編集装置２、センサ装置３、クラスタ管理装置４、ＡＰ実行装置１０、および管理装置５は、各種の情報（データ）を、例えば、データベースのテーブルやファイルとして記憶する。
【００２５】
図１に示すフロー編集装置２は、対話処理によりデータフローを編集する環境（以下、フローエディタと称する。）をユーザに提供する。フロー編集装置２は、フローエディタを利用して作成されたデータフローを記述したファイル形式のデータであるフローファイルを生成し、生成したフローファイルを管理装置５に転送する。
【００２６】
図３にフロー編集装置２が備える主な機能を示している。同図に示すように、フロー編集装置２は、記憶部２０５およびフロー編集部２１０の各機能を備える。
【００２７】
記憶部２０５は、編集されたデータフローの実体（アプリケーションのロジック）を記述したファイルであるフローファイル２５１を記憶する。フロー編集部２１０は、フローエディタによるデータフローのインタラクティブな編集環境をユーザに提供するフロー編集環境提供部２１１と、フローファイル２５１の管理装置５への転送を行うフローファイ
ル転送部２１２とを含む。
【００２８】
図１に戻り、センサ装置３は、センシング対象から種々のデータを収集し、収集したデータ（以下、センサデータと称する。）を通信ネットワーク８を介してＡＰ実行装置１０に供給する。
【００２９】
図４にセンサ装置３が備える主な機能を示している。同図に示すように、センサ装置３は、記憶部３０５および計測部３１０の各機能を備える。
【００３０】
計測部３１０は、センサ１７からセンサデータを取得するセンサデータ取得部３１１と、センサデータ３５１をＡＰ実行装置１０に転送するセンサデータ転送部３１２とを含む。記憶部３０５は、センサデータ取得部３１１によって取得されたセンサデータをセンサデータ３５１として記憶する。
【００３１】
尚、センサ装置３は、ＡＰ実行装置１０の処理対象となる入力データを提供する装置の一例に過ぎず、上記入力データは他の方法により提供されるデータ（インターネット（internet）上の情報提供サイトのクローリング（crawling）により収集されたデータやＩｏＴシステムによって収集されたビッグデータ等）であってもよい。
【００３２】
図１に示すクラスタ管理装置４は、ＡＰ実行装置１０により構成される前述のクラスタの稼動状況の監視を行う。
【００３３】
図５にクラスタ管理装置４が備える主な機能を示している。同図に示すように、クラスタ管理装置４は、記憶部４０５およびクラスタ管理部４１０を備える。
【００３４】
記憶部４０５は、クラスタの構成や稼動状況に関する情報が管理されるクラスタ管理情報４５１を記憶する。クラスタ管理部４１０は、クラスタの構成を管理するクラスタ構成管理部４１１と、クラスタの稼動状況を監視するクラスタ稼動状況監視部４１２を備える。
【００３５】
図６に管理装置５が備える主な機能を示している。同図に示すように、管理装置５は、記憶部５０５、コンテナ管理部５１０、およびコンテナ実行状況監視部５２０を備える。
【００３６】
記憶部５０５は、フローファイル５５１、コンテナ５５２、コンテナ実行状況５５３、およびＡＰ実行装置構成情報５５４を記憶する。
【００３７】
コンテナ管理部５１０は、フローファイル受信部５１１、コンテナ生成部５１２、およびコンテナ配信部５１３を含む。
【００３８】
フローファイル受信部５１１は、フロー編集装置２から通信ネットワーク８を介して送られてくるフローファイルを受信する。フローファイル受信部５１１が受信したフローファイルは、記憶部５０５がフローファイル５５１として記憶する。
【００３９】
コンテナ生成部５１２は、フローファイル５５１に基づくアプリケーションソフトウェア（以下、ＡＰソフトウェアと称する。）のイメージデータであるコンテナを生成する。コンテナは、ＡＰソフトウェアの実行モジュール、実行環境に関する情報、展開方法や操作方法に関する情報をパッケージ化したものである。コンテナの一例としてＤｏｃｋｅｒ（登録商標）におけるコンテナがある。コンテナ生成部５１２が生成したコンテナは、記憶部５０５がコンテナ５５２として記憶する。
【００４０】
コンテナ配信部５１３は、通信ネットワーク８を介してコンテナ５５２をＡＰ実行装置１０に配信（デプロイ）する。ＡＰ実行装置構成情報５５４には、通信ネットワーク８におけるＡＰ実行装置１０に関する情報（ネットワークＩＤ等）が管理されている。コンテナ配信部５１３は、ＡＰ実行装置構成情報５５４に基づき配信先を特定する。
【００４１】
コンテナ実行状況監視部５２０は、ＡＰ実行装置１０の夫々におけるコンテナの実行状況に関する情報を取得する。記憶部５０５は、上記情報をコンテナ実行状況５５３として記憶する。
【００４２】
図１に戻り、ＡＰ実行装置１０は、管理装置５によって配信されたコンテナ５５２に基づきＡＰソフトウェアを実行する。本実施形態では、上記ＡＰソフトウェアは、一例としてセンサ装置３から受信したセンサデータを分析してその結果を出力するソフトウェアであるものとするが、ＡＰソフトウェアの種類は必ずしも限定されない。
【００４３】
図７にＡＰ実行装置１０が備える主な機能を示している。同図に示すように、ＡＰ実行装置１０は、記憶部１０５、コンテナ受信部１１０、およびコンテナ実行制御部１２０を備える。
【００４４】
コンテナ受信部１１０は、管理装置５から送られてくるコンテナを受信する。コンテナ受信部１１０が受信したコンテナは、記憶部１０５がコンテナ１５１として記憶する。センサデータ受信部１１５は、センサ装置３から送られてくるセンサデータを受信する。センサデータ受信部１１５が受信したセンサデータは、記憶部１０５がセンサデータ１５２として記憶する。コンテナ実行制御部１２０は、コンテナに基づくＡＰソフトウェアの実行制御や状態監視を行う。
【００４５】
図８はコンテナを実行することにより実現されるＡＰソフトウェアの機能を概念的に示したものである。同図に示すように、ＡＰソフトウェア８００は、フロー実行制御部８１１および処理連携部８１２の各機能を備える。尚、これらの機能の一部は、ＡＰ実行装置１０が備えるオペレーティングシステムやコンテナ実行制御部１２０によって実現されるものであってもよい。
【００４６】
フロー実行制御部８１１は、ＡＰソフトウェア８００の主要部分のロジック（アルゴリズム）を実行する。
【００４７】
処理連携部８１２は、ＡＰソフトウェア８００を複数のＡＰ実行装置１０により負荷分散（例えば、並列分散や並行分散）して実行するための機能（ＡＰ実行装置１０間でメッセージを送受信してＡＰ実行装置１０間の処理を連携する機能等）を提供する。
【００４８】
図９にフロー編集装置２のフロー編集部２１０が提供するフローエディタによって生成されるデータフローの一例を示す。データフロー９００は、ＡＰソフトウェア８００の処理の流れ（ロジック）を、同図において矩形枠で示す複数のブロック（ノードとも称される。）を、同図において矢線で示す接続線（リンクとも称される。）で接続した構造として記述したものである。
【００４９】
同図に示すように、データフロー９００は、一つ以上の前処理ブロック９１１、前処理ブロック９１１に後続する一つ以上の分散処理開始ブロック９１２、分散処理開始ブロック９１２に後続する一つ以上の分散処理対象ブロック９１３、分散処理対象ブロック９１３に後続する一つ以上の分散処理終了ブロック９１４、および、分散処理終了ブロック９１４に後続する一つ以上の後処理ブロック９１５、の各ブロックを含む。
【００５０】
分散処理対象ブロック９１３は、前述した負荷分散クラスタによる分散処理の対象となるブロックである。同図に示すように、データフロー９００において、分散処理対象ブロック９１３は、分散処理開始ブロック９１２と分散処理終了ブロック９１４との間に挟まれた位置に記述される。
【００５１】
分散処理開始ブロック９１２は、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬが分散処理を開始するためのロジックを含む。また分散処理終了ブロック９１４は、ＡＰ実行装置（ワーカ）１０Ｗが分散処理を終了するためのロジックを含む。
【００５２】
前処理ブロック９１１は、例えば、ＡＰソフトウェア８００の入力データに対する前処理を行うロジック（センサデータ３５１を所定形式のデータに変換するロジック等）を含む。
【００５３】
後処理ブロック９１５は、例えば、分散処理対象ブロック９１３で生成されたデータに対する後処理を行うロジック（生成されたデータを所定形式のデータに変換する生成するロジック等）を含む。
【００５４】
管理装置５は、クラスタを構成する複数のＡＰ実行装置１０の夫々に、図９に示す構成を有するデータフロー９００に基づき生成されるコンテナを配信する。
【００５５】
図１０は、管理装置５がコンテナ５５２をＡＰ実行装置１０に配信（デプロイ）する際に情報処理システム１にて行われる処理（以下、コンテナ配信シーケンスＳ１０００と称する。）を説明するシーケンス図である。
【００５６】
同図に示すように、まずフロー編集装置２が、管理装置５にフローファイルを転送し、管理装置５がこれをフローファイル５５１として記憶する（Ｓ１０１１）。
【００５７】
管理装置５は、フローファイル５５１に基づきコンテナ５５２を生成し、生成したコンテナ５５２を４つのＡＰ実行装置１０の夫々に配信（デプロイ）する（Ｓ１０１２）。
【００５８】
尚、本実施形態では、管理装置５は、クラスタを構成する４つのＡＰ実行装置１０の夫々に内容が共通するコンテナ５５２を配信する。このように各ＡＰ実行装置１０に配信されるコンテナ５５２の内容を共通にすることで、管理装置５側ではＡＰ実行装置１０に配信するコンテナをＡＰ実行装置１０毎に管理する必要がなく、コンテナの管理やコンテナの配信処理を簡素化することができる。尚、各ＡＰ実行装置１０に配信されるコンテナ５５２の内容を共通にするための仕組みについては後述する。
【００５９】
図１１は、コンテナ１５１に基づきＡＰ実行装置１０がＡＰソフトウェア８００を実行する際に情報処理システム１にて行われる処理（以下、ＡＰソフト実行シーケンスＳ１１００と称する。）の流れを説明するシーケンス図である。
【００６０】
まずＳ１１１１では、センサ装置３が、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬにセンサデータを送信する。
【００６１】
ＡＰ実行装置（マスタ）（稼動系）１０ＭＬは、センサデータを受信すると、受信したセンサデータをセンサデータ１５２として記憶し、センサデータ１５２を入力データとしてコンテナ１５１に基づきＡＰソフトウェア８００の実行を開始する。
【００６２】
具体的には、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬは、まず前処理ブロック９１１を実行して前処理（センサデータのデータ形式の変換等）を行う。前処理ブロック９１
１が終了し、分散処理開始ブロック９１２に到達すると、続いてＡＰ実行装置（マスタ）（稼動系）１０ＭＬは、２つのＡＰ実行装置（ワーカ）１０Ｗに対し、センサデータとともに分散処理対象ブロック９１３の実行を指示するメッセージ（以下、実行指示とも称する。）を送信（ディスパッチ）する（Ｓ１１１２）。尚、本例では、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬは、２つのＡＰ実行装置（ワーカ）１０Ｗの夫々に異なるセンサデータを送信し、夫々が異なるセンサデータについて共通の分散処理対象ブロック９１３を実行するものとする。
【００６３】
ＡＰ実行装置（マスタ）（稼動系）１０ＭＬから実行指示を受信したＡＰ実行装置（ワーカ）１０Ｗ（より詳細にはＡＰ実行装置（ワーカ）１０Ｗの分散処理開始ブロック９１２により実現される機能）は、夫々、実行指示とともに受信したセンサデータについて分散処理対象ブロック９１３の実行を開始する。分散処理対象ブロック９１３の実行後、ＡＰ実行装置（ワーカ）１０Ｗ（より詳細にはＡＰ実行装置（ワーカ）１０Ｗの分散処理終了ブロック９１４により実現される機能）は、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬに実行結果を通知するメッセージ（以下、実行結果とも称する。）を送信する（Ｓ１１１３）。
【００６４】
ＡＰ実行装置（マスタ）（稼動系）１０ＭＬ（より詳細にはＡＰ実行装置（マスタ）（稼動系）１０ＭＬの分散処理終了ブロック９１４により実現される機能）は、２つのＡＰ実行装置（ワーカ）１０Ｗの夫々から実行結果を受信すると、後処理ブロック９１５を実行する（Ｓ１１１４）。
【００６５】
ここで以上のＡＰソフト実行シーケンスＳ１１００において、ＡＰ実行装置（ワーカ）１０Ｗの一つに障害が発生した場合には、前述した障害対応クラスタによって処理が自動的に継続される。
【００６６】
図１２は、ＡＰ実行装置（ワーカ）１０Ｗの一つに障害が発生した場合に情報処理システム１にて行われる処理（以下、ＡＰソフト実行シーケンス（ワーカ障害時）Ｓ１２００と称する。）の流れを説明するシーケンス図である。
【００６７】
同図に示すように、ＡＰ実行装置（ワーカ）１０Ｗは、クラスタ管理装置４にハートビートを送信している（Ｓ１２１１）。
【００６８】
続いて実行されるＳ１２１２、Ｓ１２１３、およびＳ１２１４の処理は、夫々、図１１のＳ１１１１、Ｓ１１１２、およびＳ１１１３と同様である。尚、図１１に示したＡＰソフト実行シーケンスＳ１１００においても同様にＡＰ実行装置（ワーカ）１０Ｗからクラスタ管理装置４にハートビートの送信が行われているが、説明の簡単のため同図では省略している。
【００６９】
クラスタ管理装置４は、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬからＡＰ実行装置（ワーカ）１０Ｗに実行指示が送信された後、ハートビートの途絶によりＡＰ実行装置（ワーカ）１０Ｗの一つに障害の発生を検知すると（Ｓ１２１６）、当該ＡＰ実行装置（ワーカ）１０Ｗに障害が発生していることをＡＰ実行装置（マスタ）（稼動系）１０ＭＬに通知する（Ｓ１２１７）。
【００７０】
ＡＰ実行装置（マスタ）（稼動系）１０ＭＬは、上記通知を受信すると、正常に稼動している他方のＡＰ実行装置（ワーカ）１０Ｗに、障害が発生している一方のＡＰ実行装置（ワーカ）１０Ｗに送信すべきセンサデータとともに実行指示を再送する（Ｓ１２１８）。
【００７１】
上記実行指示を受信すると、他方のＡＰ実行装置（ワーカ）１０Ｗは、上記実行指示とともに受信したセンサデータについて分散処理対象ブロック９１３を実行し、実行結果をＡＰ実行装置（マスタ）（稼動系）１０ＭＬに送信する（Ｓ１２１９）。
【００７２】
ＡＰ実行装置（マスタ）（稼動系）１０ＭＬは、２つのＡＰ実行装置（ワーカ）１０Ｗから実行結果を受信すると、後処理ブロック９１５を実行する（Ｓ１２１５，Ｓ１２２０）。
【００７３】
図１３は、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬに障害が発生した場合に情報処理システム１にて行われる処理（以下、ＡＰソフト実行シーケンス（マスタ障害時）Ｓ１３００と称する。）の流れを説明するシーケンス図である。以下、同図とともにＡＰソフト実行シーケンス（マスタ障害時）Ｓ１３００について説明する。
【００７４】
同図に示すように、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬおよびＡＰ実行装置（マスタ）（待機系）１０ＭＳは、クラスタ管理装置４にハートビートを送信している（Ｓ１３１１）。尚、同図におけるＳ１３１２の処理は、夫々、図１１のＳ１１１１と同様であるので説明を省略する。尚、図１１に示したＡＰソフト実行シーケンスＳ１１００でも同様にＡＰ実行装置（マスタ）（稼動系）１０ＭＬおよびＡＰ実行装置（マスタ）（待機系）１０ＭＳからクラスタ管理装置４にハートビートの送信が行われているが、説明の簡単のため同図では省略している。また同図では、図１２に示したＡＰ実行装置（ワーカ）１０Ｗからクラスタ管理装置４へのハートビートの送信も省略している。
【００７５】
クラスタ管理装置４は、ハートビートの途絶によりＡＰ実行装置（マスタ）（稼動系）１０ＭＬの障害の発生を検知すると（Ｓ１３１３）、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬに障害が発生していることをＡＰ実行装置（マスタ）（待機系）１０ＭＳに通知する（Ｓ１３１４）。
【００７６】
ＡＰ実行装置（マスタ）（待機系）１０ＭＳは、上記通知を受信すると、稼動系として動作を開始し、センサ装置３からセンサデータを受信する（Ｓ１３１５）。その後、情報処理システム１では、図１１のＳ１１１２〜Ｓ１１１４と同様の処理（Ｓ１３１６〜Ｓ１３１８）が行われる。
【００７７】
図１４は、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬが行う、図１１のＳ１１１２の処理（以下、処理I（Ｓ１４００）と称する。）の詳細を説明するフローチャートである
。以下、同図とともに処理I（Ｓ１４００）について説明する。
【００７８】
まずＡＰ実行装置（マスタ）（稼動系）１０ＭＬは、センサ装置３からセンサデータを受信する（Ｓ１４１１）。
【００７９】
続いて、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬは、ＡＰソフトウェア８００の実行を開始し、ＡＰソフトウェア８００のフロー実行制御部８１１が、前処理ブロック９１１の実行を開始する（Ｓ１４１２）。
【００８０】
上記のフロー実行制御部８１１は、前処理ブロック９１１が終了して処理が分散処理開始ブロック９１２に到達したか否かを判定する（Ｓ１４１３）。処理が分散処理開始ブロック９１２に到達すると（Ｓ１４１３：ＹＥＳ）、ＡＰソフトウェア８００の処理連携部８１２は、ＡＰ実行装置（ワーカ）１０Ｗに実行指示を送信する（Ｓ１４１４）。
【００８１】
図１５は、ＡＰ実行装置（ワーカ）１０Ｗが行う図１１のＳ１１１３の処理（以下、処理II（Ｓ１５００）と称する。）の詳細を説明するフローチャートである。以下、同図と
ともに処理II（Ｓ１５００）について説明する。
【００８２】
まずＡＰ実行装置（ワーカ）１０ＷのＡＰソフトウェア８００の処理連携部８１２は、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬからセンサデータと実行指示を受信する（Ｓ１５１１）。
【００８３】
続いて、ＡＰ実行装置（ワーカ）１０Ｗのフロー実行制御部８１１は、実行指示とともに受信したセンサデータについて分散処理対象ブロック９１３を実行する（Ｓ１５１２）。
【００８４】
ＡＰ実行装置（ワーカ）１０Ｗのフロー実行制御部８１１は、分散処理対象ブロック９１３が終了して処理が分散処理終了ブロック９１４に到達したか否かを判定する（Ｓ１５１３）。処理が分散処理終了ブロック９１４に到達すると（Ｓ１５１３：ＹＥＳ）、ＡＰ実行装置（ワーカ）１０ＷのＡＰソフトウェア８００の処理連携部８１２は、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬに実行結果を送信する（Ｓ１５１４）。
【００８５】
図１６は、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬが行う図１１のＳ１１１４の処理（以下、処理III（Ｓ１６００）と称する。）の詳細を説明するフローチャートである
。以下、同図とともに処理IIIについて説明する。
【００８６】
ＡＰ実行装置（マスタ）（稼動系）１０ＭＬの処理連携部８１２は、ＡＰ実行装置（ワーカ）１０Ｗの処理連携部８１２から実行結果を受信する（Ｓ１６１１）。
【００８７】
続いて、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬのフロー実行制御部８１１が、後処理ブロック９１５を実行する（Ｓ１６１２）。
【００８８】
図１７は、クラスタ管理装置４が図１２および図１３において行う、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬまたはＡＰ実行装置（ワーカ）１０Ｗの障害の発生を監視する処理（以下、処理IV（Ｓ１７００）と称する。）を説明するフローチャートである。以下、同図とともに処理IV（Ｓ１７００）について説明する。
【００８９】
前述したように、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬ、ＡＰ実行装置（マスタ）（待機系）１０ＭＳおよび２つのＡＰ実行装置（ワーカ）１０Ｗは、正常な稼動状態においてクラスタ管理装置４にハートビートを送信している。クラスタ管理装置４は、いずれかのＡＰ実行装置１０についてハートビートの途絶を検知すると（Ｓ１７１１：ＹＥＳ）、ハートビートが途絶した装置の種類を判定する（Ｓ１７１２）。
【００９０】
装置の種類がＡＰ実行装置（ワーカ）１０Ｗであった場合（Ｓ１７１２：ワーカ）、クラスタ管理装置４は、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬにＡＰ実行装置（ワーカ）１０Ｗの障害の発生を通知する（Ｓ１７１３）。
【００９１】
一方、装置の種類がＡＰ実行装置（マスタ）（稼動系）１０ＭＬであった場合（Ｓ１７１２：マスタ）、クラスタ管理装置４は、ＡＰ実行装置（マスタ）（待機系）１０ＭＳにＡＰ実行装置（マスタ）（稼動系）１０ＭＬの障害の発生を通知する（Ｓ１７１４）。
【００９２】
尚、クラスタ管理装置４は、以上の処理（Ｓ１７１１〜Ｓ１７１４）を繰り返し実行する。
【００９３】
以上の障害監視処理（処理IV）によれば、ＡＰ実行装置（ワーカ）１０ＷおよびＡＰ実行装置（マスタ）（稼動系）１０ＭＬの双方における障害の発生に対応することができ、
システムの信頼性を担保することができる。
【００９４】
図１８は、図１１のＳ１１１２〜Ｓ１１１４の処理（処理I〜処理III）に際し、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬとＡＰ実行装置（ワーカ）１０Ｗとの間で行われる処理（以下、分散処理シーケンスＳ１８００と称する。）の詳細を、各装置でロジックの内容が共通するＡＰソフトウェア８００（フロー実行制御部８１１および処理連携部８１２）の動作に着目して説明したシーケンス図である。以下、同図とともに分散処理シーケンスＳ１８００について説明する。尚、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬの障害発生時に稼動系として動作するＡＰ実行装置（マスタ）（待機系）１０ＭＳのＡＰソフトウェア８００も同様の処理を行う。
【００９５】
同図に示すように、まずＳ１１１２の分散処理開始ブロック９１２の一つであるブロック（１８０５−１）において、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬのフロー実行制御部８１１が、当該装置の処理連携部８１２に実行指示（メッセージ）を送信する。このときフロー実行制御部８１１は、送信する実行指示に、当該実行指示が分散処理開始ブロック９１２に起因するものであるか分散処理終了ブロック９１４に起因するものであるかを示す情報（以下、分散処理状態情報と称する。）を設定する（含ませる）。本例では、フロー実行制御部８１１は、分散処理状態情報として、分散処理開始ブロック９１２のブロックＩＤである「１８０５」を設定するものとする。
【００９６】
続いて、同ブロックＳ１１１２の一つであるブロック（１８０７−１）において、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬの処理連携部８１２が、ＡＰ実行装置（ワーカ）１０Ｗの処理連携部８１２に、フロー実行制御部８１１から受信した実行指示をセンサデータとともに送信する。
【００９７】
ＡＰ実行装置（ワーカ）１０Ｗの処理連携部８１２は、上記実行指示を受信すると、ＡＰ実行装置（ワーカ）１０Ｗのフロー実行制御部８１１に実行指示をセンサデータとともに送信する（１８０７−２）。
【００９８】
以上により、ＡＰ実行装置（ワーカ）１０Ｗにおいて、分散処理対象ブロック９１３の処理が開始される（１８０５−２）。
【００９９】
分散処理対象ブロック９１３の処理が終了すると、ＡＰ実行装置（ワーカ）１０Ｗのフロー実行制御部８１１が、ＡＰ実行装置（ワーカ）１０Ｗの処理連携部８１２に実行結果（メッセージ）を送信する（Ｓ１８０６−２）。またこのときフロー実行制御部８１１は、送信する実行結果に、分散処理状態情報として、当該実行結果が分散処理終了ブロック９１４に起因するものであることを示す情報を設定する（含ませる）。本例では、フロー実行制御部８１１は、分散処理状態情報として、分散処理終了ブロック９１４のブロックＩＤである「１８０６」を設定するものとする。
【０１００】
ＡＰ実行装置（ワーカ）１０Ｗの処理連携部８１２は、上記実行結果を受信すると、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬの処理連携部８１２に実行結果を送信する（Ｓ１８０８−２）。
【０１０１】
ＡＰ実行装置（マスタ）（稼動系）１０ＭＬの処理連携部８１２は、上記実行結果を受信すると、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬのフロー実行制御部８１１に実行結果を送信する（Ｓ１８０８−１）。
【０１０２】
ＡＰ実行装置（マスタ）（稼動系）１０ＭＬのフロー実行制御部８１１は、上記実行結果を受信すると（Ｓ１８０６−１）、続いて、後処理ブロック９１５の実行を開始する（
Ｓ１８０６−１）。
【０１０３】
図１９は、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬのフロー実行制御部８１１、またはＡＰ実行装置（ワーカ）１０Ｗのフロー実行制御部８１１の処理Ｓ１９００（図１８の１８０５−１、１８０５−２、１８０６−２、１８０６−１の各ブロックにおける処理）の詳細を説明するフローチャートである。
【０１０４】
まずフロー実行制御部８１１が、イベントの発生を契機として（Ｓ１９１１：ＹＥＳ）、メッセージの発信元を判定する（Ｓ１９１２）。尚、ここでいうイベントの発生とは、当該ブロック（図１８の１８０５−１、１８０５−２、１８０６−２、１８０６−１のいずれか）の処理を開始する契機が到来したことを意味する。またここでいう発信元とは、上記契機を生じさせたブロックの実行主体（フロー実行制御部８１１または処理連携部８１２）をいう。
【０１０５】
発信元がフロー実行制御部８１１である場合（Ｓ１９１２：フロー実行制御部）、処理はＳ１９１３に進む。発信元が処理連携部８１２である場合（Ｓ１９１２：処理連携部）、処理はＳ１９１５に進む。
【０１０６】
Ｓ１９１３では、フロー実行制御部８１１は、分散処理状態情報に当該ブロックのブロックＩＤを設定したメッセージ（実行指示または実行結果）を生成し、生成したメッセージを自装置の処理連携部８１２に送信する（Ｓ１９１４）。その後、処理はＳ１９１１に戻る。
【０１０７】
一方、Ｓ１９１５では、フロー実行制御部８１１は、分散処理状態情報に当該ブロックのブロックＩＤを設定したメッセージ（実行指示または実行結果）を生成し、生成したメッセージの処理を継続する（Ｓ１９１６）。その後、処理はＳ１９１１に戻る。
【０１０８】
図１８とともに図１９の処理を具体的に説明する。
【０１０９】
例えば、分散処理開始ブロック９１２である１８０５−１のブロックを開始する契機が到来した場合（Ｓ１９１１：ＹＥＳ）、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬのフロー実行制御部８１１は、メッセージの発信元をフロー実行制御部８１１であると判定し（Ｓ１９１２：フロー実行制御部）、分散処理状態情報に当該ブロック（分散処理開始ブロック９１２）のブロックＩＤである「１８０５」を設定した実行指示を生成し（Ｓ１９１３）、生成した実行指示を自装置であるＡＰ実行装置（マスタ）（稼動系）１０ＭＬの処理連携部８１２に送信する（Ｓ１９１４）。
【０１１０】
また例えば、分散処理開始ブロック９１２である１８０５−２のブロックを開始する契機が到来した場合（Ｓ１９１１：ＹＥＳ）、ＡＰ実行装置（ワーカ）１０Ｗのフロー実行制御部８１１は、メッセージの発信元を処理連携部８１２であると判定し（Ｓ１９１２：処理連携部）、分散処理状態情報に当該ブロック（分散処理開始ブロック９１２）のブロックＩＤである「１８０５」を設定した実行指示を生成し（Ｓ１９１５）、当該フロー実行制御部８１１は分散処理対象ブロック９１３の処理を開始する（Ｓ１９１６）。
【０１１１】
また例えば、分散処理終了ブロック９１４である１８０６−２のブロックを開始する契機が到来した場合（Ｓ１９１１：ＹＥＳ）、ＡＰ実行装置（ワーカ）１０Ｗのフロー実行制御部８１１は、メッセージの発信元をフロー実行制御部８１１であると判定し（Ｓ１９１２：フロー実行制御部）、分散処理状態情報に当該ブロック（分散処理終了ブロック９１４）のブロックＩＤである「１８０６」を設定した実行指示を生成し（Ｓ１９１３）、生成した実行結果を自装置であるＡＰ実行装置（ワーカ）１０Ｗの処理連携部８１２に送
信する（Ｓ１９１４）。
【０１１２】
また例えば、分散処理終了ブロック９１４である１８０６−１のブロックを開始する契機が到来した場合（Ｓ１９１１：ＹＥＳ）、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬのフロー実行制御部８１１は、メッセージの発信元を処理連携部８１２であると判定し（Ｓ１９１２：処理連携部）、分散処理状態情報に当該ブロック（分散処理終了ブロック９１４）のブロックＩＤである「１８０６」を設定した実行指示を生成し（Ｓ１９１５）、当該フロー実行制御部８１１は後処理ブロック９１５の処理を開始する（Ｓ１９１６）。
【０１１３】
以上に説明したように、フロー実行制御部８１１の処理は、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬとＡＰ実行装置（ワーカ）１０Ｗとで共通のロジックとすることができる。そのため、ＡＰソフトウェア８００の生産性や保守性を向上することができる。
【０１１４】
図２０は、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬの処理連携部８１２、またはＡＰ実行装置（ワーカ）１０Ｗの処理連携部８１２の処理Ｓ２０００（図１８の１８０７−１、１８０７−２、１８０８−２、１８０８−１のブロックにおける処理）の詳細を説明するフローチャートである。
【０１１５】
Ｓ２０１１では、処理連携部８１２は、イベントの発生を契機として（Ｓ２０１１：ＹＥＳ）、メッセージの発信元を判定する（Ｓ２０１２）。尚、ここでいうイベントの発生とは、当該ブロック（図１８の１８０７−１、１８０７−２、１８０８−２、１８０８−１のいずれか）の処理を開始する契機が到来したことを意味する。またここでいう発信元とは、上記契機を生じさせたブロックの実行主体（フロー実行制御部８１１または処理連携部８１２）をいう。
【０１１６】
発信元がフロー実行制御部８１１である場合（Ｓ２０１２：フロー実行制御部）、処理はＳ２０１３に進む。発信元が処理連携部８１２である場合（Ｓ２０１２：処理連携部）、処理はＳ２０１６に進む。
【０１１７】
Ｓ２０１３では、処理連携部８１２は、自装置の種類（自装置がマスタであるかワーカであるか）を判定する。自装置がマスタである場合（Ｓ２０１３：マスタ）、処理はＳ２０１４に進む。自装置がワーカである場合（Ｓ２０１３：ワーカ）、処理はＳ２０１５に進む。
【０１１８】
Ｓ２０１４では、処理連携部８１２は、ＡＰ実行装置（ワーカ）１０Ｗの処理連携部８１２にメッセージを送信する。
【０１１９】
Ｓ２０１５では、処理連携部８１２は、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬの処理連携部８１２にメッセージを送信する。
【０１２０】
一方、Ｓ２０１６では、自装置のフロー実行制御部８１１がメッセージの処理を継続する。
【０１２１】
図１８とともに図２０の処理を具体的に説明する。
【０１２２】
例えば、分散処理開始ブロック９１２である１８０７−１のブロックを開始する契機が到来した場合（Ｓ２０１１：ＹＥＳ）、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬの処理連携部８１２は、メッセージの発信元をフロー実行制御部８１１であると判定し（Ｓ２０１２：フロー実行制御部）、続いて、自装置の種類をマスタであると判定し（Ｓ２０１３：マスタ）、ＡＰ実行装置（ワーカ）１０Ｗの処理連携部８１２にセンサデータととも
に実行指示を送信する（Ｓ２０１４）。
【０１２３】
また例えば、分散処理開始ブロック９１２である１８０７−２のブロックを開始する契機が到来した場合（Ｓ２０１１：ＹＥＳ）、ＡＰ実行装置（ワーカ）１０Ｗの処理連携部８１２は、メッセージの発信元を処理連携部８１２であると判定し（Ｓ２０１２：処理連携部）、続いて、自装置の種類をマスタと判定し（Ｓ２０１３：マスタ）、実行指示を自装置であるＡＰ実行装置（ワーカ）１０Ｗのフロー実行制御部８１１に送信して当該ブロックの処理を継続する（Ｓ２０１６）。
【０１２４】
また例えば、分散処理終了ブロック９１４である１８０８−２のブロックを開始する契機が到来した場合（Ｓ２０１１：ＹＥＳ）、ＡＰ実行装置（ワーカ）１０Ｗの処理連携部８１２は、メッセージの発信元をフロー実行制御部８１１であると判定し（Ｓ２０１２：フロー実行制御部）、続いて、自装置の種類をワーカであると判定し（Ｓ２０１３：ワーカ）、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬの処理連携部８１２に実行結果を送信する（Ｓ２０１５）。
【０１２５】
また例えば、分散処理終了ブロック９１４である１８０８−１のブロックを開始する契機が到来した場合（Ｓ２０１１：ＹＥＳ）、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬの処理連携部８１２は、メッセージの発信元を処理連携部８１２であると判定し（Ｓ２０１２：処理連携部）、続いて、実行結果を自装置であるＡＰ実行装置（マスタ）（稼動系）１０ＭＬのフロー実行制御部８１１に送信して自装置のフロー実行制御部８１１が後処理ブロック９１５の処理を開始する（Ｓ２０１６）。
【０１２６】
以上に説明したように、処理連携部８１２の処理は、ＡＰ実行装置（マスタ）（稼動系）１０ＭＬとＡＰ実行装置（ワーカ）１０Ｗとで共通のロジック（アルゴリズム）とすることができる。そのため、ＡＰソフトウェア８００の生産性や保守性を向上することができる。
【０１２７】
図２１に、前述したメッセージ（実行指示、実行結果）のデータ構成の一例を示す。同図に示すように、メッセージ２１００は、種別２１１１、分散処理状態情報２１１２、およびデータ２１１３の各項目を有する。
【０１２８】
種別２１１１には、当該メッセージ２１００の種別（実行指示であるか、実行結果であるか）を示す情報が設定される。分散処理状態情報２１１２には、前述した分散処理状態情報が設定される。データ２１１３には、例えば、当該メッセージ２１００の種別が実行指示である場合は実行指示とともに送信されるセンサデータが設定され、また当該メッセージ２１００の種別が実行結果である場合はＡＰソフトウェア８００の処理の結果（例えば、センサデータについて分散処理対象ブロック９１３が行った処理の結果）が設定される。
【０１２９】
図２２は、クラスタ管理装置４が管理するクラスタ管理情報４５１の一例である。クラスタ管理装置４は、ＡＰ実行装置１０と通信することによりクラスタ管理情報４５１の内容を随時（例えば、リアルタイムに）取得し、取得した内容をクラスタ管理情報４５１に反映する。
【０１３０】
同図に示すように、クラスタ管理情報４５１は、ＡＰ実行装置ＩＤ２２１１、種類２２１２、および稼動状態２２１３の各項目を有する複数（クラスタを構成しているＡＰ実行装置１０の数）のレコードを含む。
【０１３１】
ＡＰ実行装置ＩＤ２２１１には、ＡＰ実行装置１０の識別子（以下、ＡＰ実行装置ＩＤ
と称する。）が設定される。種類２２１２には、当該ＡＰ実行装置１０の種類（マスタまたはワーカ）を示す情報が設定される。稼動状態２２１３には、当該ＡＰ実行装置１０の稼動状態を示す情報（正常または異常）が設定される。
【０１３２】
以上、詳細に説明したように、本実施形態の情報処理システム１によれば、フローエディタによりデータフローを編集することで分散処理に対応したソフトウェアを作成することができる。とくにユーザは、データフローに分散処理開始ブロック９１２および分散処理終了ブロックを挿入するだけで、分散処理に対応したソフトウェアを容易に作成することができ、生産コストを削減するとともに開発期間を短縮することができる。
【０１３３】
このように、本実施形態の情報処理システム１によれば、フローエディタの高い生産性を享受しつつスケーラビリティや信頼性を確保することができ、ひいてはフローエディタにより構築したロジックをそのまま大規模システムや高信頼性が求められるミッションクリティカルなシステムにも適用することができる。
【０１３４】
以上、本発明の一実施形態について説明したが、本発明は上記の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記の実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また上記実施形態の構成の一部について、他の構成の追加や削除、置換をすることが可能である。
【０１３５】
また上記の各構成、機能部、処理部、処理手段等は、それらの一部または全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、ＳＳＤ（Solid State Drive）等の記録装置、ＩＣ
カード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０１３６】
また上記の各図において、制御線や情報線は説明上必要と考えられるものを示しており、必ずしも実装上の全ての制御線や情報線を示しているとは限らない。例えば、実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【０１３７】
また以上に説明したフロー編集装置２、センサ装置３、クラスタ管理装置４、ＡＰ実行装置１０、および管理装置５の各種機能部、各種処理部、各種データベースの配置形態は一例に過ぎない。各種機能部、各種処理部、各種データベースの配置形態は、これらの装置が備えるハードウェアやソフトウェアの性能、処理効率、通信効率等の観点から最適な配置形態に変更し得る。
【０１３８】
例えば、クラスタ管理装置４と管理装置５を１つの情報処理装置１００において実現してもよい。また以上の実施形態では、マスタとして動作するＡＰ実行装置１０を稼動系と待機系によるデュプレックスシステムとしたが、デュアルシステムとして冗長性を確保するようにしてもよい。
【０１３９】
また前述した各種のデータを格納するデータベースの構成（スキーマ（Schema）等）は、リソースの効率的な利用、処理効率向上、アクセス効率向上、検索効率向上等の観点から柔軟に変更し得る。
【符号の説明】
【０１４０】
１  情報処理システム、２  フロー編集装置、２０５  記憶部、２１０  フロー編集部、２１１  フロー編集環境提供部、２１２  フローファイル転送部、２５１  フローファイ
ル、３  センサ装置、４  クラスタ管理装置、４０５  記憶部、４１０  クラスタ管理部、４１１  クラスタ構成管理部、４１２  クラスタ稼動状況監視部、４５１  クラスタ管理情報、５  管理装置、５０５  記憶部、５１０  コンテナ管理部、５１１  フローファイル受信部、５１２  コンテナ生成部、５１３  コンテナ配信部、５２０  コンテナ実行状況監視部、５５１  フローファイル、５５２  コンテナ、５５３  コンテナ実行状況、５５４  ＡＰ実行装置構成情報、８  通信ネットワーク、１０  ＡＰ実行装置、１０ＭＬ
ＡＰ実行装置（マスタ）（稼動系）、１０ＭＳ  ＡＰ実行装置（マスタ）（待機系）、１０Ｗ  ＡＰ実行装置（ワーカ）、１００  情報処理装置、１０５  記憶部、１１０  コンテナ受信部、１２０  コンテナ実行制御部１２０、１５１  コンテナ、８００  ＡＰソフトウェア、８１１  フロー実行制御部、８１２  処理連携部、９００  データフロー
【図１】
2019207546.tif 000003
【図２】
2019207546.tif 000004
【図３】
2019207546.tif 000005
【図４】
2019207546.tif 000006
【図５】
2019207546.tif 000007
【図６】
2019207546.tif 000008
【図７】
2019207546.tif 000009
【図８】
2019207546.tif 000010
【図９】
2019207546.tif 000011
【図１０】
2019207546.tif 000012
【図１１】
2019207546.tif 000013
【図１２】
2019207546.tif 000014
【図１３】
2019207546.tif 000015
【図１４】
2019207546.tif 000016
【図１５】
2019207546.tif 000017
【図１６】
2019207546.tif 000018
【図１７】
2019207546.tif 000019
【図１８】
2019207546.tif 000020
【図１９】
2019207546.tif 000021
【図２０】
2019207546.tif 000022
【図２１】
2019207546.tif 000023
【図２２】
2019207546.tif 000024