JP2024044443A - 情報処理システム及び情報処理方法 - Google Patents

情報処理システム及び情報処理方法 Download PDF

Info

Publication number
JP2024044443A
JP2024044443A JP2022149953A JP2022149953A JP2024044443A JP 2024044443 A JP2024044443 A JP 2024044443A JP 2022149953 A JP2022149953 A JP 2022149953A JP 2022149953 A JP2022149953 A JP 2022149953A JP 2024044443 A JP2024044443 A JP 2024044443A
Authority
JP
Japan
Prior art keywords
application execution
execution device
processing
external
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022149953A
Other languages
English (en)
Inventor
ダルシャン チャブダ
博泰 西山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2022149953A priority Critical patent/JP2024044443A/ja
Publication of JP2024044443A publication Critical patent/JP2024044443A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

【課題】外部処理を含むアプリケーションの場合であっても、異常を早期に検出し、アプリケーションの実行処理の信頼性を向上させることが可能な情報処理手段を提供すること。【解決手段】アプリケーションを実行する複数のアプリ実行装置と、アプリ実行装置を管理する中央管理装置と、所定の動作の実行を指示する外部装置とを含む情報処理システムにおいて、中央管理装置は、待機モードで作動している第1のアプリ実行装置から、第1の処理を実行する時間を示す第1の処理時間情報を受信し、稼働モードで作動している第2のアプリ実行装置から、第1の処理を実行する時間を示す第2の処理時間情報を、第1の処理時間情報を受信してから所定の時間以内に受信しなかった場合、第2のアプリ実行装置について異常が発生したと判定し、第1のアプリ実行装置を待機モードから稼働モードに変更し、アプリケーションの実行を継続させる。【選択図】図2

Description

本発明は、情報処理システム及び情報処理方法に関する。
ビジネスの変化が激しい昨今においては、仮説検証の過程で試行錯誤しつつ、データフローを迅速かつ効率よく構築することが可能なツールが求められている。そのようなツールとして、GUI(Graphical User Interface)を利用してノンプログラミングにデータフローを定義していくことが可能なフローエディタが存在する。
フローエディタは、豊富な入出力インターフェースを提供し、ブロックを組み合わせていく感覚でデータフローを作成することができる。このため、従来のプログラムやスクリプトによる方法に比べて編集環境が直感的で理解しやすく、高度な技術知識を有していない場合でも、取り扱いが容易で生産性に優れるといった利点を有する。
フローエディタを提供する情報処理手段に関して、いくつかの提案がなされている。
例えば、特許第7013326号(特許文献1)には、「フローエディタにより編集されたデータフローに基づくソフトウェアを実行する情報処理システムであって、前記ソフトウェアの分散処理を行うクラスタを構成する複数の情報処理装置を含み、前記データフローは、分散処理を開始させるブロックである分散処理開始ブロック、分散処理を終了させるブロックである分散処理終了ブロック、および前記分散処理開始ブロックと前記分散処理終了ブロックとの間に記述されるブロックである分散処理対象ブロックを含み、前記クラスタを構成する前記情報処理装置であるマスタ装置は、前記データフローの実行時に前記分散処理開始ブロックに到達すると、前記分散処理対象ブロックの実行指示を含むメッセージを、前記クラスタを構成する複数のワーカ装置に送信し、前記ワーカ装置の夫々は、前記メッセージを受信すると前記分散処理対象ブロックを実行し、前記分散処理対象ブロックの実行結果を含むメッセージを前記マスタ装置に送信し、前記マスタ装置は、前記複数のワーカ装置から前記実行結果を受信すると、前記分散処理終了ブロックに後続する前記データフローのブロックを実行する、情報処理システム」が記載されている。
特許第7013326号
特許文献1には、複数のプロセス制御ツール(AP実行装置)を用いて所定の処理タスクを実行する手段が記載されている。特許文献1に記載の手段では、フローエディタによって作成され、複数の連結した処理ブロックで定義されるアプリケーションは、各AP実行装置内で実行される。特定のAP実行装置での処理が終了すると、当該AP実行装置はその旨を他のAP実行装置に通知する。一方、特定のAP実行装置において異常が発生し、処理が正常に終了しなかった場合、待機していた他のAP実行装置は、正常に終了しなかった処理を最初から再度実行する。
特許文献1に記載の手段によれば、複数のプロセス制御ツール(AP実行装置)を用いることで、アプリケーション実行の信頼性を向上させることができる。
しかし、特許文献1に記載の手段は、AP実行装置内で完結する内部処理に着目しているが、実際には、アプリケーションのデータフローは、内部処理のみならず、外部装置との通信を要する外部処理を含むことがある。特許文献1には、内部処理のみを含むアプリケーションに関する情報処理手段が記載されているものの、外部処理を含むアプリケーションの対応については検討されていない。
これらの外部処理は、例えば生産工程を実行するロボットや機械を制御する指示を規定することがある。このため、特許文献1に記載の情報処理手段を、外部処理を含むアプリケーションに適用した場合、正常に終了しなかった処理が最初から再度実行され、外部装置が同じ処理タスクを複数回実行し、生産ラインにおいて乱れが発生する虞がある。
更に、特許文献1に記載の手段では、処理が正常に終了した否かは、データフローの最後の終了ブロックで判定されるため、データフローの途中で発生した異常の検出が遅れてしまう課題がある。
そこで、本開示は、外部処理を含むアプリケーションの場合であっても、異常を早期に検出し、アプリケーションの実行処理の信頼性を向上させることが可能な情報処理手段を提供することを目的とする。
上記の課題を解決するために、代表的な本発明の情報処理システムの一つは、データフローに基づくアプリケーションを並行に実行する複数のアプリ実行装置と、前記複数のアプリ実行装置を管理する中央管理装置と、所定の動作を前記アプリ実行装置からの指令に基づいて遂行する外部装置とが通信ネットワークを介して接続されている情報処理システムであって、前記アプリケーションは、前記アプリ実行装置内で実行される内部処理と、前記外部装置との通信を要する外部処理とを含み、アプリ実行装置は、前記アプリケーションにおける外部処理を実行する場合、前記所定の動作の実行を指示する指令情報を前記外部装置に送信し、出力情報を前記外部装置から受信する稼働モードと、前記アプリケーションにおける外部処理を実行する場合、前記所定の動作の実行を指示する指令情報を前記外部装置に送信せず、前記中央管理装置を介して送信される前記出力情報を受信するまで待機する待機モードのいずれか一方の作動モードで作動するように構成され、前記中央管理装置は、前記待機モードで作動している第1のアプリ実行装置から、前記第1のアプリ実行装置において第1の処理を実行する時間を示す第1の処理時間情報を受信し、前記稼働モードで作動している第2のアプリ実行装置から、前記第2のアプリ実行装置において前記第1の処理を実行する時間を示す第2の処理時間情報を、前記第1の処理時間情報を受信してから所定の時間以内に受信しなかった場合、前記第2のアプリ実行装置について異常が発生したと判定し、前記第2のアプリ実行装置について異常が発生したと判定した場合、前記第1のアプリ実行装置を前記待機モードから前記稼働モードに変更し、前記アプリケーションの実行を継続させる。
本発明によれば、外部処理を含むアプリケーションの場合であっても、異常を早期に検出し、アプリケーションの実行処理の信頼性を向上させることが可能な情報処理手段を提供することができる。
上記以外の課題、構成及び効果は、以下の発明を実行するための形態における説明により明らかにされる。
図1は、本開示の実施形態を実行するためのコンピュータシステムを示す図である。 図2は、本開示の実施形態に係る情報処理システムの構成の一例を示す図である。 図3は、本開示の実施形態に係る中央管理装置の構成の一例を示す図である。 図4は、本開示の実施形態に係るアプリ実行装置の構成の一例を示す図である。 図5は、本開示の実施形態に係る外部装置の構成の一例を示す図である。 図6は、本開示の実施形態に係るクラスタ管理部の構成の一例を示す図である。 図7は、本開示の実施形態に係るアプリ実行同期管理部の構成の一例を示す図である。 図8は、本開示の実施形態に係るフロー編集管理部の構成の一例を示す図である。 図9は、本開示の実施形態に係るアプリ実行部の構成の一例を示す図である。 図10は、本開示の実施形態に係るデータフローの一例を示す図である。 図11は、本開示の実施形態に係る情報処理システムにおけるアプリ実行処理の流れの一例を示す図である。 図12は、本開示の実施形態に係る情報処理システムにおける正常のアプリ実行処理の具体例を示す図である。 図13は、本開示の実施形態に係るアプリ実行処理の内部処理中に異常が発生した場合の異常対応処理の流れの一例を示す図である。 図14は、本開示の実施形態に係るアプリ実行処理の外部処理中に異常が発生した場合の異常対応処理の流れの一例を示す図である。 図15は、本開示の実施形態に係るアプリ実行処理の外部処理後に異常が発生した場合の異常対応処理の流れを示す図である。 図16は、本開示の実施形態に係る稼働係のアプリ実行装置におけるアプリ実行処理の流れの一例を示す図である。 図17は、本開示の実施形態に係る中央管理装置における管理処理の流れの一例を示す図である。 図18は、本開示の実施形態に係る外部装置処理の流れの一例を示す図である。 図19は、本開示の実施形態に係るアプリ実行装置情報処理システムの、正常の外部処理の場合のデータ転送の流れを示す図である。 図20は、本開示の実施形態に係るアプリ実行処理おいて外部処理中に異常が発生した場合の情報処理システムのデータ転送の流れを示す図である。 図21は、本開示の実施形態に係るアプリ実行処理において外部処理後に異常が発生した場合の情報処理システムのデータ転送の流れを示す図である。 図22は、本開示の実施形態に係る処理時間情報管理テーブルを示す図である。
以下、図面を参照して、本発明の実施形態について説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
また、「第1」、「第2」、「第3」等の用語は、本開示において様々な要素又は構成要素を説明するのに用いられる場合があるが、これらの要素又は構成要素はこれらの用語によって限定されるべきでないことが理解されるであろう。これらの用語は、或る要素又は構成要素を別の要素又は構成要素と区別するためにのみ用いられる。したがって、以下で論述する第1の要素又は構成要素は、本発明概念の教示から逸脱することなく第2の要素又は構成要素と呼ぶこともできる。
(本開示の背景)
近年、生産工場等で自動化作業を制御するために使用されてきた従来の処理管理ツール(Programmable Logic Controllerなど)はレガシーになりつつあり、人工知能、IoT、最新のプログラミング言語との互換性が限られている。また、従来の処理管理ツールは複雑で、使用するに当たって専門知識が必要なため、ユーザへの負担が大きい。これらのことから、効率及び信頼性を向上させる新たな処理管理ツールが求められている。
そこで、人工知能、IoT、最新のプログラミング言語に対応可能であり、ブロックを組み合わせていく感覚でデータフローを容易に作成することが可能なフローエディタを提供するツールとして、マイクロコントローラなどのエッジデバイスが注目されている。
しかし、従来の処理管理ツールと比較して、マイクロコントローラなどのエッジデバイスは、使用される環境に合わせて設計したものでないため、耐久性が限られており、環境条件によっては、記憶障害、熱暴走などの障害が発生してしまうことがある。
このため、処理管理ツールによって実行されるアプリケーション処理の信頼性を向上させる手段が望まれている。
上述したように、例えば特許文献1には、複数のプロセス制御ツール(AP実行装置)を用いることで、アプリケーション実行の信頼性を向上させる提案がなされている。
しかし、特許文献1に記載の手段では、外部装置との通信を要する外部処理を含むアプリケーションが検討されていない上、処理が正常に終了した否かは、データフローの最後の終了ブロックで判定されるため、データフローの途中で発生した異常の検出が遅れてしまう課題がある。
そこで、本開示は、外部処理を含むアプリケーションの場合であっても、異常を早期に検出し、アプリケーションの実行処理の信頼性を向上させることが可能な情報処理手段を提供することに関する。
まず、図1を参照して、本開示の実施形態を実行するためのコンピュータシステム100について説明する。本明細書で開示される様々な実施形態の機構及び装置は、任意の適切なコンピューティングシステムに適用されてもよい。コンピュータシステム100の主要コンポーネントは、1つ以上のプロセッサ102、メモリ104、端末インターフェース112、ストレージインタフェース113、I/O(入出力)デバイスインタフェース114、及びネットワークインターフェース115を含む。これらのコンポーネントは、メモリバス106、I/Oバス108、バスインターフェースユニット109、及びI/Oバスインターフェースユニット110を介して、相互的に接続されてもよい。
コンピュータシステム100は、プロセッサ102と総称される1つ又は複数の汎用プログラマブル中央処理装置(CPU)102A及び102Bを含んでもよい。ある実施形態では、コンピュータシステム100は複数のプロセッサを備えてもよく、また別の実施形態では、コンピュータシステム100は単一のCPUシステムであってもよい。各プロセッサ102は、メモリ104に格納された命令を実行し、オンボードキャッシュを含んでもよい。
ある実施形態では、メモリ104は、データ及びプログラムを記憶するためのランダムアクセス半導体メモリ、記憶装置、又は記憶媒体(揮発性又は不揮発性のいずれか)を含んでもよい。メモリ104は、本明細書で説明する機能を実行するプログラム、モジュール、及びデータ構造のすべて又は一部を格納してもよい。例えば、メモリ104は、情報処理アプリケーション150を格納していてもよい。ある実施形態では、情報処理アプリケーション150は、後述する機能をプロセッサ102上で実行する命令又は記述を含んでもよい。
ある実施形態では、情報処理アプリケーション150は、プロセッサベースのシステムの代わりに、またはプロセッサベースのシステムに加えて、半導体デバイス、チップ、論理ゲート、回路、回路カード、および/または他の物理ハードウェアデバイスを介してハードウェアで実行されてもよい。ある実施形態では、情報処理アプリケーション150は、命令又は記述以外のデータを含んでもよい。ある実施形態では、カメラ、センサ、または他のデータ入力デバイス(図示せず)が、バスインターフェースユニット109、プロセッサ102、またはコンピュータシステム100の他のハードウェアと直接通信するように提供されてもよい。
コンピュータシステム100は、プロセッサ102、メモリ104、表示システム124、及びI/Oバスインターフェースユニット110間の通信を行うバスインターフェースユニット109を含んでもよい。I/Oバスインターフェースユニット110は、様々なI/Oユニットとの間でデータを転送するためのI/Oバス108と連結していてもよい。I/Oバスインターフェースユニット110は、I/Oバス108を介して、I/Oプロセッサ(IOP)又はI/Oアダプタ(IOA)としても知られる複数のI/Oインタフェースユニット112,113,114、及び115と通信してもよい。
表示システム124は、表示コントローラ、表示メモリ、又はその両方を含んでもよい。表示コントローラは、ビデオ、オーディオ、又はその両方のデータを表示装置126に提供することができる。また、コンピュータシステム100は、データを収集し、プロセッサ102に当該データを提供するように構成された1つまたは複数のセンサ等のデバイスを含んでもよい。
例えば、コンピュータシステム100は、心拍数データやストレスレベルデータ等を収集するバイオメトリックセンサ、湿度データ、温度データ、圧力データ等を収集する環境センサ、及び加速度データ、運動データ等を収集するモーションセンサ等を含んでもよい。これ以外のタイプのセンサも使用可能である。表示システム124は、単独のディスプレイ画面、テレビ、タブレット、又は携帯型デバイスなどの表示装置126に接続されてもよい。
I/Oインタフェースユニットは、様々なストレージ又はI/Oデバイスと通信する機能を備える。例えば、端末インタフェースユニット112は、ビデオ表示装置、スピーカテレビ等のユーザ出力デバイスや、キーボード、マウス、キーパッド、タッチパッド、トラックボール、ボタン、ライトペン、又は他のポインティングデバイス等のユーザ入力デバイスのようなユーザI/Oデバイス116の取り付けが可能である。ユーザは、ユーザインターフェースを使用して、ユーザ入力デバイスを操作することで、ユーザI/Oデバイス116及びコンピュータシステム100に対して入力データや指示を入力し、コンピュータシステム100からの出力データを受け取ってもよい。ユーザインターフェースは例えば、ユーザI/Oデバイス116を介して、表示装置に表示されたり、スピーカによって再生されたり、プリンタを介して印刷されたりしてもよい。
ストレージインタフェース113は、1つ又は複数のディスクドライブや直接アクセスストレージ装置117(通常は磁気ディスクドライブストレージ装置であるが、単一のディスクドライブとして見えるように構成されたディスクドライブのアレイ又は他のストレージ装置であってもよい)の取り付けが可能である。ある実施形態では、ストレージ装置117は、任意の二次記憶装置として実装されてもよい。メモリ104の内容は、ストレージ装置117に記憶され、必要に応じてストレージ装置117から読み出されてもよい。I/Oデバイスインタフェース114は、プリンタ、ファックスマシン等の他のI/Oデバイスに対するインターフェースを提供してもよい。ネットワークインターフェース115は、コンピュータシステム100と他のデバイスが相互的に通信できるように、通信経路を提供してもよい。この通信経路は、例えば、ネットワーク130であってもよい。
ある実施形態では、コンピュータシステム100は、マルチユーザメインフレームコンピュータシステム、シングルユーザシステム、又はサーバコンピュータ等の、直接的ユーザインターフェースを有しない、他のコンピュータシステム(クライアント)からの要求を受信するデバイスであってもよい。他の実施形態では、コンピュータシステム100は、デスクトップコンピュータ、携帯型コンピューター、ノートパソコン、タブレットコンピュータ、ポケットコンピュータ、電話、スマートフォン、又は任意の他の適切な電子機器であってもよい。
次に、図2を参照して、本開示の実施形態に係る情報処理システムの構成について説明する。
図2は、本開示の実施形態に係る情報処理システム200の構成の一例を示す図である。情報処理システム200は、フローエディタにより編集されたデータフローに基づくアプリケーション(以下、「アプリ」)の実行処理における異常を早期に検出し、異常対策を迅速に実行することが可能な情報処理システムであり、図2に示すように、中央管理装置210、第1のアプリ実行装置220、第2のアプリ実行装置230、外部装置240及び通信ネットワーク250を含む。情報処理システム200において、中央管理装置210、第1のアプリ実行装置220、第2のアプリ実行装置230及び外部装置240は、通信ネットワーク250を介して、標準の通信プロトコルに基づくデータの送受信を行うように接続されてもよい。
なお、図2に示す中央管理装置210、第1のアプリ実行装置220、第2のアプリ実行装置230及び外部装置240は、図1に示すコンピュータシステム100として実装されてもよい。この場合、コンピュータシステム100は、第1のアプリ実行装置220、第2のアプリ実行装置230及び外部装置240の機能を発揮する情報処理アプリケーション150を実行することで、本開示の実施形態に係る情報処理手段を行う情報処理装置として機能する。
中央管理装置210は、第1のアプリ実行装置220、第2のアプリ実行装置230及び外部装置240を管理し、アプリ実行処理における異常を検出するための装置である。図2に示すように、中央管理装置210は、クラスタ管理部211と、アプリ実行同期管理部212とを少なくとも含む。
クラスタ管理部211は、第1のアプリ実行装置220及び第2のアプリ実行装置230等を含むアプリ実行装置クラスタ215を管理するための機能部である。クラスタ管理部211は、アプリ実行装置クラスタ215に含まれるアプリ実行装置220、230によって実行されるアプリ実行処理における異常を検出すると共に、検出した異常への対策として、アプリ実行装置の作動モード切替を行うことができる。
アプリ実行同期管理部212は、アプリ実行装置クラスタ215に含まれる各アプリ実行装置によるアプリ実行処理に関する処理時間情報を管理すると共に、当該アプリ実行処理を同期させるための機能部である。
アプリ実行装置クラスタ215は、第1のアプリ実行装置220や第2のアプリ実行装置230等の複数のアプリ実行装置を含む論理的グループである。なお、図2では、説明の便宜上、第1のアプリ実行装置220や第2のアプリ実行装置230等の2つのアプリ実行装置を含む場合を一例としているが、本開示はこれに限定されず、アプリ実行装置は任意の数であってもよい。
第1のアプリ実行装置220及び第2のアプリ実行装置230は、いわゆるフローエディタ(例えば、後述するフロー編集管理部221、231)によって作成されるデータフローに基づくアプリを実行するための装置である。ある実施形態では、第1のアプリ実行装置220及び第2のアプリ実行装置230は、稼働モード又は待機モードのいずれかの作動モードで作動するように構成されてもよい。
原則として、アプリ実行装置クラスタ215に含まれる複数のアプリ実行装置の内、1つのアプリ実行装置が稼働モードで作動し、それ以外のアプリ実行装置は待機モードで作動するように設定される。以下では、説明の便宜上、第1のアプリ実行装置220が稼働モードで作動する「稼働係」のアプリ実行装置とし、第2のアプリ実行装置230が待機モードで作動する「待機係」のアプリ実行装置として作動するように設定した場合を一例として説明する。
ここでの稼働モードとは、アプリ実行処理に含まれる外部処理を実行する場合、外部装置240への入力データを含む外部メッセージを外部装置240に送信すると共に、外部装置240からの出力データを直接に受信する作動モードである。この入力データは、例えば所定の動作の実行を外部装置240に指示する指令情報を含んでもよい。
また、ここでの待機モードとは、アプリ実行処理に含まれる外部処理を実行する場合、外部装置240への入力データを含む外部メッセージを外部装置240に送信せず、中央管理装置210を介して外部装置240からの出力データを受信するまで待機する作動モードである。また、後述するように、待機モードに設定されるアプリ実行装置は、例えば稼働係のアプリ実行装置で異常が発生した場合に、稼働モードに変更され、新たな稼働係のアプリ実行装置となるための予備のアプリ実行装置として用いられてもよい。
図2に示すように、第1のアプリ実行装置220及び第2のアプリ実行装置230のそれぞれは、フロー編集管理部221、231と、アプリ実行部222、232とを含む。
フロー編集管理部221、231は、所定のタスク(生産管理など)を実行するためのデータフローを作成し、編集するための機能部である。ある実施形態では、フロー編集管理部221、231は、タスクにおける特定のステップを表すブロックを組み合わせることでデータフローを作成及び編集するためのGUIを提供するいわゆるフローエディタであってもよい。
アプリ実行部222、232は、フロー編集管理部221によって作成されるデータフローをアプリとして実行するための機能部である。このアプリを実行するためのアプリ実行処理は、アプリ実行装置内で行われる内部処理と、後述する外部装置240との通信を要する外部処理とから構成されてもよい。
外部装置240は、アプリ実行部222、232によって実行されるアプリ実行処理において用いられる装置である。外部装置240は、アプリ実行処理における外部処理が行われる際、稼働係のアプリ実行装置からの入力データを受信し、当該入力データに基づいて動作した後、出力データを稼働係のアプリ実行装置及び中央管理装置210に送信する。一例として、本開示の実施形態に係る情報処理システム200を工場での生産作業に適用した場合、外部装置240は、例えば特定の生産工程を行うためのロボットや機械であってもよい。
通信ネットワーク250は、イーサネット(登録商標)やTCP/IP等の所定の通信プロトコルに従った通信を実現する通信基盤(インフラストラクチャ)であり、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット、専用線、公衆通信網等であってもよい。
以上説明した情報処理システム200によれば、フローエディタにより編集されたデータフローに基づくアプリの実行処理における異常を早期に検出し、異常対策を迅速に実行することが可能な情報処理手段を提供することができる。
次に、図3を参照して、本開示の実施形態に係る中央管理装置の構成について説明する。
図3は、本開示の実施形態に係る中央管理装置210の構成の一例を示す図である。上述したように、中央管理装置210は、第1のアプリ実行装置220、第2のアプリ実行装置230及び外部装置240を管理し、アプリ実行処理における異常を検出するための装置である。図3に示すように、中央管理装置210は、クラスタ管理部211、アプリ実行同期管理部212、記憶部305及び通信部310を主に含む。
クラスタ管理部211は、第1のアプリ実行装置220及び第2のアプリ実行装置230等を含むアプリ実行装置クラスタ(例えば、図2に示すアプリ実行装置クラスタ215)を管理するための機能部である。
なお、クラスタ管理部211の構成の詳細については後述するため、ここではその説明を省略する。
アプリ実行同期管理部212は、アプリ実行装置クラスタ215に含まれる各アプリ実行装置によるアプリ実行処理に関する処理時間情報を管理すると共に、当該アプリ実行処理を同期させるための機能部である。
なお、アプリ実行同期管理部212の構成の詳細については後述するため、ここではその説明を省略する。
記憶部305は、中央管理装置210に用いられる各種データを格納するためのストレージ領域である。記憶部305は、処理データ306を格納してもよい。この処理データ306は、中央管理装置210によって用いられるデータであり、例えば第1のアプリ実行装置220や第2のアプリ実行装置230によって実行されているアプリに関するデータ、外部装置240からの出力データ等を含んでもよい。
通信部310は、中央管理装置210、第1のアプリ実行装置220、第2のアプリ実行装置230及び外部装置240の間でのデータ通信を行うための機能部である。より具体的には、図3に示すように、通信部310は、処理データ306を第1のアプリ実行装置220、第2のアプリ実行装置230及び外部装置240から取得するための処理データ取得部312と、取得した処理データ306を第1のアプリ実行装置220、第2のアプリ実行装置230及び外部装置240に転送するための処理データ転送部314を含んでもよい。
次に、図4を参照して、本開示の実施形態に係るアプリ実行装置について説明する。
図4は、本開示の実施形態に係るアプリ実行装置400の構成の一例を示す図である。アプリ実行装置400は、いわゆるフローエディタによって作成されるデータフローに基づくアプリを実行するための装置である。また、上述したように、アプリ実行装置400は、稼働モード又は待機モードのいずれかの作動モードで作動するように設定されてもよい。
なお、図4に示すアプリ実行装置400は、図2に示す第1のアプリ実行装置220や第2のアプリ実行装置230として用いられてもよい。
図4に示すように、アプリ実行装置は、フロー編集管理部402、アプリ実行部404、記憶部405、通信部410及び指示処理管理部420を含む。
フロー編集管理部402は、所定のタスク(生産管理など)を実行するためのデータフローを作成し、編集するための機能部である。図4に示すフロー編集管理部402は、図2に示す第1のアプリ実行装置220のフロー編集管理部221及び第2のアプリ実行装置230のフロー編集管理部231に実質的に対応する。
アプリ実行部404は、フロー編集管理部402によって作成されるデータフローをアプリとして実行するための機能部である。図4に示すアプリ実行部404は、図2に示す第1のアプリ実行装置220のアプリ実行部222及び第2のアプリ実行装置230のアプリ実行部232に実質的に対応する。
なお、アプリ実行部404の詳細については後述するため、ここではその説明を省略する。
記憶部405は、アプリ実行装置400に用いられる各種データを格納するためのストレージ領域である。記憶部405は、処理データ406を格納してもよい。この処理データ406は、アプリ実行装置400によって用いられるデータであり、例えばアプリに関するデータ、外部装置240に送信する入力データ、外部装置240からの出力データ等を含んでもよい。
通信部410は、中央管理装置210、アプリ実行装置クラスタ215に含まれる各アプリ実行装置及び外部装置240の間でのデータ通信を行うための機能部である。より具体的には、図4に示すように、通信部410は、処理データ406を中央管理装置210や外部装置240から取得するための処理データ取得部412と、取得した処理データ406を中央管理装置210や外部装置240に転送するための処理データ転送部414を含んでもよい。
指示処理管理部420は、アプリを実行するアプリ実行処理における指示処理(Message Processing)を行うための機能部である。より具体的には、指示処理管理部420は、指示処理を構成する指示構成管理部422と、指示処理の演算を行う指示処理演算部424とを含んでもよい。
ある実施形態では、指示処理管理部420は、TCP/IP(Transmission Control Protocol/Internet Protocol)、MQTT(Message Queuing Telemetry Transport)、又はWeb socketMessage Processingを実行するように構成されてもよい。
次に、図5を参照して、本開示の実施形態に係る外部装置の構成について説明する。
図5は、本開示の実施形態に係る外部装置240の構成の一例を示す図である。上述したように、外部装置240は、アプリ実行部222、232によって実行されるアプリ実行処理において用いられる装置である。図5に示すように、外部装置240は、記憶部505、通信部510、動作実行部522及び動作状態監視部524を主に含む。
記憶部505は、外部装置240に用いられる各種データを格納するためのストレージ領域である。記憶部505は、処理データ506を格納してもよい。この処理データ506は、外部装置240によって用いられるデータであり、例えば第1のアプリ実行装置220や第2のアプリ実行装置230からの入力データ、外部装置240によって生成される出力データ等を含んでもよい。
通信部510は、中央管理装置210、第1のアプリ実行装置220及び第2のアプリ実行装置230の間でのデータ通信を行うための機能部である。より具体的には、図5に示すように、通信部510は、処理データ506を中央管理装置210、第1のアプリ実行装置220及び第2のアプリ実行装置230から取得するための処理データ取得部512と、取得した処理データ506を中央管理装置210や外部装置240に転送するための処理データ転送部514を含んでもよい。
動作実行部522は、第1のアプリ実行装置220又は第2のアプリ実行装置230(稼働係のアプリ実行装置)から取得した入力データに基づいて所定の動作を実行するための機能部である。ここでの動作とは、データを処理する処理タスクや、部品を動かす作業など、任意のアクションを含んでもよい。一例として、動作実行部522は、部品の組み立てや商品の梱包等、所定の生産工程を実行するための用いられてもよい。
動作状態監視部524は、動作実行部522によって実行されている動作の状態に関する情報を取得するための機能部である。動作状態監視部524は、例えばモーションセンサやカメラ等のセンサ装置であってもよい。ある実施形態では、動作状態監視部524は、動作の進捗状態(未着手、実行途中、完了)や動作の結果等に関するデータを取得し、出力データとして処理データ転送部514を介して稼働係のアプリ実行装置や中央管理装置210に送信してもよい。
次に、図6を参照して、本開示の実施形態に係るクラスタ管理部の構成について説明する。
図6は、本開示の実施形態に係るクラスタ管理部211の構成の一例を示す図である。上述したように、クラスタ管理部211は、第1のアプリ実行装置220及び第2のアプリ実行装置230等を含むアプリ実行装置クラスタを管理するための機能部であり、図6に示すように、クラスタ構成管理部610、クラスタ稼働状況監視部612、異常検出部614、作動モード管理部616及び記憶部605を主に含む。
クラスタ構成管理部610は、アプリ実行装置クラスタに含まれるアプリ実行装置の構成(各アプリ実行装置を識別する情報等)を管理するための機能部である。
クラスタ稼働状況監視部612は、アプリ実行装置クラスタに含まれるアプリ実行装置の稼働状況(稼働モードか待機モードか等)を管理するための機能部である。
異常検出部614は、アプリ実行装置クラスタに含まれるアプリ実行装置によって実行されるアプリ実行処理における異常を検出するための機能部である。ある実施形態では、異常検出部614は、各アプリ実行装置内で実行されるアプリ実行処理の開始時間を示す時間情報や、外部装置240からの出力データに基づいてアプリ実行処理の異常を検出してもよい。
作動モード管理部616は、アプリ実行装置クラスタに含まれるアプリ実行装置の作動モードを変更するための機能部である。ある実施形態では、稼働モードで作動しているアプリ実行装置(つまり、稼働係のアプリ実行装置)について異常が検出された場合、作動モード管理部616は、待機モードで作動しているアプリ実行装置(つまり、待機係のアプリ実行装置)を稼働係に変更してもよい。これにより、アプリ実行処理における外部通信を途絶えることなく継続することができる。
記憶部605は、クラスタ管理部211に用いられる各種データを格納するためのストレージ領域である。記憶部605は、処理データ606を格納してもよい。この処理データ606は、クラスタ管理部211によって用いられるデータであり、例えば各アプリ実行装置内で実行されるアプリ実行処理の開始時間を示す処理時間情報、各アプリ実行装置の作動モードを示す情報、特定のアプリ実行装置の作動モードを変更する作動モード変更指示等を含んでもよい。
次に、図7を参照して、本開示の実施形態に係るアプリ実行同期管理部について説明する。
図7は、本開示の実施形態に係るアプリ実行同期管理部212の構成の一例を示す図である。上述したように、アプリ実行同期管理部212は、アプリ実行装置クラスタ215に含まれる各アプリ実行装置によるアプリ実行処理に関する処理時間情報を管理すると共に、当該アプリ実行処理を同期させるための機能部である。図7に示すように、アプリ実行同期管理部212は、アプリ実行管理部710、休止・再開部712、処理時間情報管理部714、データ共有部716及び記憶部720を主に含む。
アプリ実行管理部710は、アプリ実行装置クラスタ215に含まれる各アプリ実行装置によるアプリ実行処理を管理するための機能部である。アプリ実行管理部710は、例えば、アプリ実行装置クラスタ215に含まれる各アプリ実行装置がアプリ実行処理を同時に開始し、並行に実行するように各アプリ実行装置を制御してもよい。
休止・再開部712は、アプリ実行装置クラスタ215に含まれる各アプリ実行装置によるアプリ実行処理を休止及び再開させるための機能部である。ある実施形態では、稼働係のアプリ実行装置が外部装置240に対する外部通信を行う際(つまり、入力データを外部装置240に送信した後)、休止・再開部712は、アプリ実行装置におけるアプリ実行処理を休止させる。その後、稼働係のアプリ実行装置の外部装置240に対する外部通信が終了し、各アプリ実行装置は外部装置240からの出力データを受信した後、休止・再開部712は、アプリ実行装置におけるアプリ実行処理を再開させてもよい。
これにより、稼働係のアプリ実行装置と待機係のアプリ実行装置におけるアプリ実行処理のタイミングが外部通信によりずれることを防止することができる。
処理時間情報管理部714は、アプリ実行装置クラスタ215に含まれる各アプリ実行装置によるアプリ実行処理の開始時間を示す処理時間情報を各アプリ実行装置から取得し、管理するための機能部である。上述したように、クラスタ管理部211における異常検出部614は、この処理時間情報に基づいて、特定のアプリ実行装置によるアプリ実行処理において異常が発生したか否かを判定することができる。
データ共有部716は、外部装置240から取得した出力データを待機係のアプリ実行装置に共有するための機能部である。ある実施形態では、稼働係のアプリ実行装置が外部装置240に対する外部通信を行う際、データ共有部716は、外部装置240から出力データを取得し、このように取得した出力データをアプリ実行装置クラスタ215に含まれる待機係のアプリ実行装置に転送してもよい。このように、各アプリ実行装置は、次の処理に必要な出力データを取得し、それ以降の処理を並行に実行することができる。
記憶部720は、アプリ実行同期管理部に用いられる各種データを格納するためのストレージ領域である。記憶部720は、処理データ721を格納してもよい。この処理データ721は、アプリ実行同期管理部212によって用いられるデータであり、例えば各アプリ実行装置内で実行されるアプリ実行処理の開始時間を示す処理時間情報や、外部装置240から取得した出力データを含んでもよい。
次に、図8を参照して、本開示の実施形態に係るフロー編集管理部について説明する。
図8は、本開示の実施形態に係るフロー編集管理部402の構成の一例を示す図である。フロー編集管理部402は、所定のタスクを実行するためのデータフローを作成し、編集するための機能部である。図8に示すフロー編集管理部402は、図2に示す第1のアプリ実行装置220のフロー編集管理部221及び第2のアプリ実行装置230のフロー編集管理部231に実質的に対応する。
図8に示すように、フロー編集管理部402は、フロー編集部810及び記憶部820を主に含む。
フロー編集部810は、データフローを作成するための機能部であり、図8に示すように、フロー編集環境812及びフローファイル転送部814を含む。
フロー編集環境812は、フローエディタによるデータフローのインタラクティブな編集環境をユーザに提供するための機能部である。ユーザは、フロー編集環境812のGUIを用いて、タスクにおける特定のステップを表すブロックを組み合わせることでデータフローを作成及び編集することができる。
フローファイル転送部814は、フロー編集環境812によって作成されたデータフローの実体(アプリケーションのロジック)を記述したファイルであるフローファイル821を転送するための機能部である。フローファイル転送部814は、フロー編集環境812によって作成されたデータフローを定義するフローファイルを例えばアプリ実行部404に転送してもよい。
記憶部820は、フロー編集管理部402に用いられる各種データを格納するためのストレージ領域である。記憶部820は、フローファイル821を格納してもよい。
次に、図9を参照して、本開示の実施形態に係るアプリ実行部について説明する。
図9は、本開示の実施形態に係るアプリ実行部404の構成の一例を示す図である。上述したように、アプリ実行部404は、上述したフロー編集管理部402によって作成されるデータフローをアプリとして実行するための機能部である。図4に示すように、アプリ実行部404は、フロー処理部910と記憶部930を主に含む。
フロー処理部910は、データフローを実行するための機能部であり、図9に示すように、内部指示処理部912と、外部指示処理部914とを含む。
フロー処理部910は、データフロー(つまり、フローファイル)に含まれるブロックを順番に処理することで、当該データフローをアプリケーションとして実行することができる。上述したように、アプリを構成するデータフローは、アプリ実行装置内で行われる内部処理を規定するブロックと、外部装置240との通信を要する外部処理を規定するブロックとから構成されてもよい。
内部指示処理部912は、データフローのブロックに規定される内部処理を実行するための機能部である。
外部指示処理部914は、データフローのブロックに規定される外部処理を実行するための機能部である。
記憶部930は、アプリ実行部404に用いられる各種データを格納するためのストレージ領域である。記憶部930は、データフローを定義するフローファイル931を格納してもよい。
次に、図10を参照して、本開示の実施形態に係るデータフローについて説明する。
図10は、本開示の実施形態に係るデータフローの1000一例を示す図である。このデータフローの1000は、上述したフロー編集管理部402が提供するフローエディタによって生成されるデータ構造である。より具体的には、データフロー1000は、所定のタスクを実行するためのアプリの処理の流れ(ロジック)を、矩形枠で示す複数のブロック(ノードとも称される)と、矢線で示す接続線(リンクとも称される)で接続した構造として記述したものとして示される。
図10に示すように、データフローの1000は、一つ以上の入力データブロック1001と、一つ以上の前処理ブロック1002と、一つ以上の処理対象ブロック1003と、一つ以上の後処理ブロック1005と、一つ以上の出力データブロック1006とを含んでもよい。
入力データブロック1001は、処理の対象となる入力データを取得するロジックを含むブロックである。
前処理ブロック1002は、入力データブロック1001で取得した入力データに対する前処理を行うロジック(入力データを所定形式のデータに変換するロジック等)を含むブロックである。
処理対象ブロック1003は、入力データブロック1001で取得した入力データに対する所定の処理を行うロジックを含むブロックである。上述したように、この処理対象ブロック1003は、アプリ実行装置内で行われる内部処理を規定する内部処理ブロック又は外部装置240との通信を要する外部処理を規定する外部処理ブロック1004であってもよい。
後処理ブロック1005は、例えば、処理対象ブロック1003で生成されたデータに対する後処理を行うロジック(生成されたデータを所定形式のデータに変換する生成するロジック等)を含むブロックである。
出力データブロック1006は、後処理ブロック1005で得られた出力データを所定の転送先(外部装置240、中央管理装置210等)に転送するロジックを含むブロックである。
次に、図11を参照して、本開示の実施形態に係る情報処理システムにおけるアプリ実行処理について説明する。
図11は、本開示の実施形態に係る情報処理システムにおけるアプリ実行処理の流れの一例を示す図である。より具体的には、図11は、中央管理装置210と、第1のアプリ実行装置220と、第2のアプリ実行装置230と、第3のアプリ実行装置235と、外部装置240からなるアプリ実行装置情報処理システムにおけるアプリ実行処理の流れを示す。
また、ここでは、第1のアプリ実行装置220が稼働モードに設定されている稼働係であり、第2のアプリ実行装置230及び第3のアプリ実行装置235が待機モードに設定されている待機係である場合を一例として説明する。
図11に示すように、第1のアプリ実行装置220、第2のアプリ実行装置230及び第3のアプリ実行装置235のそれぞれのアプリ実行部は、特定の処理を規定する複数の処理ブロック(A、B、C、D)からなるデータフローに基づくアプリの処理を実行する。上述したように、このアプリ実行処理は、アプリ実行装置内で行われる内部処理と、後述する外部装置240との通信を要する外部処理とから構成されてもよい。
上述したように、第1のアプリ実行装置220、第2のアプリ実行装置230及び第3のアプリ実行装置235のそれぞれのアプリ実行部によって実行されるアプリ実行処理は、同一のデータフローに基づく処理である。また、このアプリ実行処理は、第1のアプリ実行装置220、第2のアプリ実行装置230及び第3のアプリ実行装置235のそれぞれにおいて互いに同期されており、並行に実行される。
アプリ実行処理において外部処理が発生した場合、稼働係のアプリ実行装置である第1のアプリ実行装置220は、当該外部処理を実行する時間を示す処理時間情報を中央管理装置210に送信すると共に、入力データを含む外部メッセージを、外部装置240に転送する。
次に、中央管理装置210のアプリ実行同期管理部212は、外部処理を実行する時間を示す処理時間情報を第1のアプリ実行装置220、第2のアプリ実行装置230及び第3のアプリ実行装置235から受信した後、第1のアプリ実行装置220、第2のアプリ実行装置230及び第3のアプリ実行装置235におけるアプリ実行処理を休止させる休止指示(図19では例示せず)を送信する。これにより、出力データが外部装置240から送信されるまで、第1のアプリ実行装置220、第2のアプリ実行装置230及び第3のアプリ実行装置235におけるアプリ実行処理が休止する。
次に、外部装置240は、入力データを第1のアプリ実行装置220から受信し、取得した入力データに基づいて、所定の動作を実行した後、出力データを含むメッセージを稼働係のアプリ実行装置である第1のアプリ実行装置220と、中央管理装置210に送信する。
次に、中央管理装置210は、外部装置240からの出力データを受信し、取得した出力データを待機係である第2のアプリ実行装置230及び第3のアプリ実行装置235に転送する。その後、中央管理装置210のアプリ実行同期管理部212は、第2のアプリ実行装置230及び第3のアプリ実行装置235が出力データを受信したことを確認した後、第1のアプリ実行装置220、第2のアプリ実行装置230及び第3のアプリ実行装置235におけるアプリ実行処理を再開させる再開指示(図11では例示せず)を送信する。
次に、第1のアプリ実行装置220、第2のアプリ実行装置230及び第3のアプリ実行装置235のそれぞれのアプリ実行部がデータフローの次の処理を開始すると、処理を開始した時間を示す処理時間情報を中央管理装置210に送信する。中央管理装置210のアプリ実行同期管理部212は、各アプリ実行装置から取得した処理時間情報を格納する。後述するように、中央管理装置210のクラスタ管理部211は、この処理時間情報に基づいて、特定のアプリ実行装置のアプリ実行処理において発生した異常を検出することができる。
次に、図12を参照して、本開示の実施形態に係る情報処理システムにおける正常のアプリ実行処理の具体例について説明する。
図12は、本開示の実施形態に係る情報処理システムにおける正常のアプリ実行処理の具体例を示す図である。より具体的には、図12は、中央管理装置210と、第1のアプリ実行装置220と、第2のアプリ実行装置230と、外部装置240からなるアプリ実行装置情報処理システムにおける正常のアプリ実行処理の流れを示す。
また、ここでは、第1のアプリ実行装置220が稼働モードに設定されている稼働係であり、第2のアプリ実行装置230が待機モードに設定されている待機係である場合を一例として説明する。
第1のアプリ実行装置220と、第2のアプリ実行装置230において、同一のアプリ実行処理1200が並行に実行される。図12に示すように、このアプリ実行処理1200は、内部処理1201、内部処理1202、外部処理1203及び内部処理1204から構成される。
まず、第1のアプリ実行装置220は、内部処理1201を開始する時間を示す処理時間情報1211Aを中央管理装置210に送信し、内部処理1201を行う。
同様に、第2のアプリ実行装置230は、内部処理1201を開始する時間を示す処理時間情報1211Bを中央管理装置210に送信し、内部処理1201を行う。
次に、第1のアプリ実行装置220は、内部処理1202を開始する時間を示す処理時間情報1212Aを中央管理装置210に送信し、内部処理1202を行う。
同様に、第2のアプリ実行装置230は、内部処理1202を開始する時間を示す処理時間情報1212Bを中央管理装置210に送信し、内部処理1202を行う。
次に、稼働係である第1のアプリ実行装置220は、外部処理1203を開始する時間を示す処理時間情報1213Aを中央管理装置210に送信すると共に、外部処理1203を行い、入力データを含む外部メッセージ1213Bを外部装置240に送信する。
また、待機係である第2のアプリ実行装置230は、外部処理1203を開始する時間を示す処理時間情報と、外部装置240からの出力データを要求する出力データ要求を含むメッセージ1213Cを中央管理装置210に送信する。
次に、中央管理装置210は、アプリ実行処理1200の実行を休止させる休止指示1213Dを第1のアプリ実行装置220及び第2のアプリ実行装置230に対して送信する。
次に、入力データに基づいて所定の動作を行った後、外部装置240は、生成した出力データを含むメッセージ1213Eを稼働係である第1のアプリ実行装置220及び中央管理装置210に送信する。
次に、中央管理装置210は、外部装置240から取得した出力データを含むメッセージ1213Fを待機係である第2のアプリ実行装置230に送信する。その後、中央管理装置210は、第2のアプリ実行装置230がメッセージ1213Fを受信したことを確認した後、アプリ実行処理を再開させる再開指示1213Gを第1のアプリ実行装置220及び第2のアプリ実行装置230に送信する。
次に、第1のアプリ実行装置220は、内部処理1204を開始する時間を示す処理時間情報1214Aを中央管理装置210に送信した、内部処理1204を行う。
同様に、第2のアプリ実行装置230は、内部処理1204を開始する時間を示す処理時間情報1214Bを中央管理装置210に送信した後、内部処理1204を行う。
以上説明したアプリ実行処理1200によれば、内部処理及び外部処理を含むアプリケーションを、複数のアプリ実行装置からなるアプリ実行装置クラスタにおいて実行することができる。
上述したように、アプリ実行装置は、アプリ実行処理を実行する際、異常が発生することがある。これらの異常は、例えば記憶障害、熱暴走、経年劣化などによって発生し得る。このような異常が発生した場合、アプリ実行処理を円滑に継続するための対応が必要となり、この対応は、異常が発生したタイミングによって異なる。そこで、本開示の実施形態に係る情報処理手段の一態様は、異常が発生したタイミングに合わせて、アプリ実行処理を円滑に継続するための適切な対応を行うことに関する。
以下、図13~図15を参照して、異常が異なるタイミングで発生した場合のアプリ実行処理について説明する。
図13は、本開示の実施形態に係るアプリ実行処理の内部処理中に異常が発生した場合の異常対応処理の流れの一例を示す図である。より具体的には、図13は、中央管理装置210と、第1のアプリ実行装置220と、第2のアプリ実行装置230と、外部装置240からなるアプリ実行装置情報処理システムのアプリ実行処理の内部処理中に異常が発生した場合の異常対応処理の流れを示す。
また、ここでは、第1のアプリ実行装置220が稼働モードに設定されている稼働係であり、第2のアプリ実行装置230が待機モードに設定されている待機係である場合を一例として説明する。
第1のアプリ実行装置220と、第2のアプリ実行装置230において、同一のアプリ実行処理1300が並行に実行される。図13に示すように、このアプリ実行処理1300は、内部処理1301、内部処理1302、外部処理1303及び内部処理1304から構成される。また、図13では、このアプリ実行処理1300の内部処理1302において異常が発生した場合を示している。
まず、第1のアプリ実行装置220は、内部処理1301を開始する時間を示す処理時間情報1311Aを中央管理装置210に送信し、内部処理1301を行う。
同様に、第2のアプリ実行装置230は、内部処理1301を開始する時間を示す処理時間情報1311Bを中央管理装置210に送信し、内部処理1301を行う。
次に、第1のアプリ実行装置220は、内部処理1302を開始する時間を示す処理時間情報1312Aを中央管理装置210に送信するが、異常1312Xが発生し、内部処理1302は実行されない。
一方、第2のアプリ実行装置230は、内部処理1302を開始する時間を示す処理時間情報1312Bを中央管理装置210に送信した後、内部処理1302を正常に行う。
次に、待機係の第2のアプリ実行装置230は、外部処理1303を開始する時間を示す処理時間情報と、外部装置240からの出力データの要求とを含むメッセージ1313Aを中央管理装置210に送信し、外部処理1303を行う。
しかし、内部処理1302の時点で発生した異常1312Xにより、待機係の第1のアプリ実行装置220は、外部処理1303を実行することができないため、外部処理1303を開始する時間を示す処理時間情報を中央管理装置210に送信することや、入力データを外部装置240に送信することはない。
次に、中央管理装置210は、外部処理1303を開始する時間を示す処理時間情報と、外部装置240からの出力データの要求とを含むメッセージ1313Aを待機係の第2のアプリ実行装置230から受信した後、アプリ実行処理1300の実行を休止させる休止指示1313Bを第1のアプリ実行装置220及び第2のアプリ実行装置230に対して送信する。
次に、中央管理装置210は、外部処理1303を開始する時間を示す処理時間情報を含むメッセージ1313Aを第2のアプリ実行装置230から受信したものの、外部処理1303を開始する時間を示す処理時間情報を所定の時間以内に稼働係である第1のアプリ実行装置220から受信しなかったことから、稼働係である第1のアプリ実行装置220において異常が発生したと判定する。
稼働係である第1のアプリ実行装置220について異常が発生したことを検出した後、中央管理装置210は、待機係である第2のアプリ実行装置230の作動モードを稼働モードに変更する。その後、稼働係に変更された第2のアプリ実行装置230は、入力データを含む外部メッセージ1313Cを外部装置240に送信する。
次に、入力データに基づいて所定の動作を行った後、外部装置240は、生成した出力データを含むメッセージ1313Dを稼働係となった第2のアプリ実行装置230及び中央管理装置210に送信する。
次に、中央管理装置210は、外部装置240から取得した出力データを含むメッセージを他の待機係のアプリ実行装置に送信する(図13では図示せず)。その後、中央管理装置210は、アプリ実行処理を再開させる再開指示1314を第2のアプリ実行装置230に送信し、内部処理1304以降の処理を継続する。
図14は、本開示の実施形態に係るアプリ実行処理の外部処理中に異常が発生した場合の異常対応処理の流れの一例を示す図である。より具体的には、図14は、中央管理装置210と、第1のアプリ実行装置220と、第2のアプリ実行装置230と、外部装置240からなるアプリ実行装置情報処理システムのアプリ実行処理の外部処理中に異常が発生した場合の異常対応処理の流れを示す。
また、ここでは、第1のアプリ実行装置220が稼働モードに設定されている稼働係であり、第2のアプリ実行装置230が待機モードに設定されている待機係である場合を一例として説明する。
第1のアプリ実行装置220と、第2のアプリ実行装置230において、同一のアプリ実行処理1400が並行に実行される。図14に示すように、このアプリ実行処理1400は、内部処理1401、内部処理1402、外部処理1403及び内部処理1404から構成される。また、図14では、このアプリ実行処理1400の外部処理1403の途中で異常が発生した場合を示している。
まず、第1のアプリ実行装置220は、内部処理1401を開始する時間を示す処理時間情報1411Aを中央管理装置210に送信し、内部処理1401を行う。
同様に、第2のアプリ実行装置230は、内部処理1401を開始する時間を示す処理時間情報1411Bを中央管理装置210に送信し、内部処理1401を行う。
次に、第1のアプリ実行装置220は、内部処理1402を開始する時間を示す処理時間情報1412Aを中央管理装置210に送信し、内部処理1402を行う。
同様に、第2のアプリ実行装置230は、内部処理1402を開始する時間を示す処理時間情報1412Bを中央管理装置210に送信し、内部処理1402を行う。
次に、稼働係である第1のアプリ実行装置220は、外部処理1403を開始する時間を示す処理時間情報1413Aを中央管理装置210に送信するが、外部処理1403において異常1413Xが発生し、入力データを含むメッセージは、外部装置240に送信されない。
一方、第2のアプリ実行装置230は、外部処理1403を開始する時間を示す処理時間情報と、外部装置240からの出力データの要求を含むメッセージ1413Bを中央管理装置210に送信した後、外部処理1403を正常に行う。
次に、中央管理装置210は、外部処理1403を開始する時間を示す処理時間情報1413A、1413Bを受信した後、アプリ実行処理1400の実行を休止させる休止指示1413Cを第1のアプリ実行装置220及び第2のアプリ実行装置230に対して送信する。
次に、中央管理装置210は、外部装置240からの出力データを含むメッセージを受信するまで待機するが、異常1413Xにより、外部装置240は入力データを含むメッセージを第1のアプリ実行装置220から取得できていないため、動作を行うことができず、出力データを含むメッセージを中央管理装置210や第1のアプリ実行装置220に送信することはない。
従って、中央管理装置210は、外部装置240からの出力データを含むメッセージを所定の時間以内に受信しなかった場合、稼働係である第1のアプリ実行装置220において異常が発生したと判定する。
稼働係である第1のアプリ実行装置220について異常が発生したことを検出した後、中央管理装置210は、待機係である第2のアプリ実行装置230の作動モードを稼働モードに変更する。その後、稼働係に変更された第2のアプリ実行装置230は、入力データを含む外部メッセージ1413Dを外部装置240に送信する。
次に、入力データに基づいて所定の動作を行った後、外部装置240は、生成した出力データを含むメッセージ1413Eを稼働係となった第2のアプリ実行装置230及び中央管理装置210に送信する。
次に、中央管理装置210は、外部装置240から取得した出力データを含むメッセージを他の待機係のアプリ実行装置に送信する(図14では図示せず)。その後、中央管理装置210は、アプリ実行処理を再開させる再開指示1414を第2のアプリ実行装置230に送信し、内部処理1404以降の処理を継続する。
図15は、本開示の実施形態に係るアプリ実行処理の外部処理後に異常が発生した場合の異常対応処理の流れを示す図である。より具体的には、図15は、中央管理装置210と、第1のアプリ実行装置220と、第2のアプリ実行装置230と、外部装置240からなるアプリ実行装置情報処理システムのアプリ実行処理の外部処理後に異常が発生した場合の異常対応処理の流れを示す。
また、ここでは、第1のアプリ実行装置220が稼働モードに設定されている稼働係であり、第2のアプリ実行装置230が待機モードに設定されている待機係である場合を一例として説明する。
第1のアプリ実行装置220と、第2のアプリ実行装置230において、同一のアプリ実行処理1500が並行に実行される。図15に示すように、このアプリ実行処理1500は、内部処理1501、内部処理1502、外部処理1503及び内部処理1504から構成される。また、図15では、このアプリ実行処理1500の外部処理1503の実行後に異常が発生した場合を示している。
まず、第1のアプリ実行装置220は、内部処理1501を開始する時間を示す処理時間情報1511Aを中央管理装置210に送信し、内部処理1501を行う。
同様に、第2のアプリ実行装置230は、内部処理1501を開始する時間を示す処理時間情報1511Bを中央管理装置210に送信し、内部処理1501を行う。
次に、第1のアプリ実行装置220は、内部処理1502を開始する時間を示す処理時間情報1512Aを中央管理装置210に送信し、内部処理1502を行う。
同様に、第2のアプリ実行装置230は、内部処理1502を開始する時間を示す処理時間情報1512Bを中央管理装置210に送信し、内部処理1502を行う。
次に、稼働係である第1のアプリ実行装置220は、外部処理1503を開始する時間を示す処理時間情報1513Aを中央管理装置210に送信すると共に、入力データを含む外部メッセージ1513Bを外部装置240に送信する。しかし、外部メッセージ1513Bを外部装置240に送信した後、第1のアプリ実行装置220において異常1513Xが発生する。
第2のアプリ実行装置230は、外部処理1503を開始する時間を示す処理時間情報と、外部装置240からの出力データの要求を含むメッセージ1513Cを中央管理装置210に送信し、外部処理1503を行う。
次に、中央管理装置210は、外部処理1503を開始する時間を示す処理時間情報1513A、1513Cを受信した後、アプリ実行処理1500の実行を休止させる休止指示1513Dを第1のアプリ実行装置220及び第2のアプリ実行装置230に対して送信する。
次に、入力データに基づいて所定の動作を行った後、外部装置240は、生成した出力データを含むメッセージ1513Eを第1のアプリ実行装置220及び中央管理装置210に送信する。ただし、異常1513Xの発生により、第1のアプリ実行装置220は、メッセージ1513Eを受信することができない。
次に、中央管理装置210は、外部装置240から取得した出力データを含むメッセージ1513Fを待機係である第2のアプリ実行装置230に送信する。その後、中央管理装置210は、アプリ実行処理を再開させる再開指示1513Gを第2のアプリ実行装置230に送信する。
次に、第2のアプリ実行装置230は、内部処理1504を開始する時間を示す処理時間情報1514を中央管理装置210に送信し、内部処理1504を行う。
一方、外部処理1503の実行後に発生した異常1513Xにより、第1のアプリ実行装置220は、内部処理1504を実行することができないため、内部処理1504を開始する時間を示す処理時間情報を中央管理装置210に送信することはない。
次に、中央管理装置210は、内部処理1504を開始する時間を示す処理時間情報1514を第2のアプリ実行装置230から受信したものの、内部処理1504を開始する時間を示す処理時間情報を所定の時間以内に稼働係である第1のアプリ実行装置220から受信しなかったことから、稼働係である第1のアプリ実行装置220において異常が発生したと判定する。
稼働係である第1のアプリ実行装置220について異常が発生したことを検出した後、中央管理装置210は、待機係である第2のアプリ実行装置230の作動モードを稼働モードに変更する。その後、稼働係に変更された第2のアプリ実行装置230は、以降の処理を継続する。
以上、図13~図15を参照して説明した本開示の実施形態に係る異常対応処理によれば、稼働係のアプリ実行装置のアプリ実行処理において異常が発生した場合、待機係のアプリ実行装置を新たな稼働係とすることができる。その後、新たな稼働係となったアプリ実行装置は、異常の発生により正常に行われなかった外部装置との外部通信を行うため、外部処理を含むアプリケーションであっても、アプリ実行処理を円滑に継続することができる。
また、以上説明した異常対応処理において、異常の発生は、データフローが終了した時点のみならず、各処理ブロックを開始した時点で、各アプリ実行装置から受信した処理時間情報や外部装置からの出力データに基づいて判定されるため、アプリ実行処理の途中で異常を早期に検出することができる。
次に、図16を参照して、本開示の実施形態に係るアプリ実行装置におけるアプリ実行処理について説明する。
図16は、本開示の実施形態に係る稼働係のアプリ実行装置におけるアプリ実行処理1600の流れの一例を示す図である。アプリ実行処理1600は、フローエディタにより編集されたデータフローに基づくアプリケーションを稼働係のアプリ実行装置において実行するための処理であり、本開示の実施形態に係るアプリ実行装置(例えば、図2に示す第1のアプリ実行装置220、第2のアプリ実行装置230等)によって実行される。
まず、ステップS1601では、アプリ実行装置は、入力データを取得する。ここでの入力データは、処理の対象となるデータであり、例えば既に処理された直前の処理ブロックからの出力データであってもよい。ここでの入力データは、例えば上述した前処理を受け、所定の形式に変換されてもよい。
次に、ステップS1602では、アプリ実行装置は、ステップS1601で取得した入力データは、外部処理(つまり、外部装置との通信を要する処理)が必要か否かを判定する。外部処理が必要と判定した場合、本処理はステップS1603へ進む。一方、外部処理が不要と判定した場合、本処理はステップS1605へ進む。
次に、ステップS1603では、外部処理が必要と判定した場合、稼働係のアプリ実行装置は、外部処理を実行する時間を示す処理時間情報を中央管理装置に送信し、外部処理を実行した後、アプリ実行処理を休止させる休止指示を中央管理装置から受信する。この休止指示により、アプリ実行装置は、外部装置からの出力データが送信されるまで待機することとなる。
次に、ステップS1604では、アプリ実行装置は、外部装置からの出力データを受信する。上述したように、稼働係のアプリ実行装置は、通信ネットワークを介して、出力データを直接に外部装置から受信する。
次に、ステップS1605では、外部処理が不要と判定した場合、アプリ実行装置は、処理(つまり、内部処理)を実行する。
次に、ステップS1606では、アプリ実行装置は、未実行の処理があるか否かを判定する。未実行の処理がある場合、本処理はステップS1602へ戻り、アプリ実行処理を継続する。一方、未実行の処理がない場合、本処理は、ステップS1607へ進む。
ステップS1607では、アプリ実行装置は、これまで実行された処理の履歴や各装置の状態などを示す出力結果を生成し、中央管理装置やクライアント端末などの所定の通知先に送信する。
以上説明したアプリ実行処理1600によれば、内部処理に加えて外部装置との通信を要する外部処理を含むアプリケーションについても、アプリ実行処理を円滑に実行することができる。
次に、図17を参照して、本開示の実施形態に係る中央管理装置における管理処理について説明する。
図17は、本開示の実施形態に係る中央管理装置における管理処理1700の流れの一例を示す図である。管理処理1700は、アプリ実行装置によるアプリ実行処理を管理するための処理であり、上述したよう中央管理装置210によって実行される。
まず、ステップS1701では、中央管理装置は、各アプリ実行装置から、対象の処理を実行する時間を示す処理時間情報を取得し、上述したクラスタ管理部の記憶部(例えば、図6に示すクラスタ管理部211の記憶部605)等に格納する。
次に、ステップS1702では、中央管理装置は、外部処理(つまり、外部装置との通信を要する処理)が必要か否かを判定する。外部処理が必要と判定した場合、本処理はステップS1703へ進む。一方、外部処理が不要と判定した場合、本処理はステップS1705へ進む。
次に、ステップS1703では、外部処理が必要と判定した場合、中央管理装置のアプリ実行同期管理部(例えば、図7に示すアプリ実行同期管理部212の休止・再開部712)は、各アプリ実行装置におけるアプリ実行処理を休止させるための休止指示を各アプリ実行装置に送信する。
次に、ステップS1704では、中央管理装置のクラスタ管理部の異常検出部(例えば、図6に示すクラスタ管理部211の異常検出部614)は、稼働係のアプリ実行装置(例えば、図2に示す第1のアプリ実行装置220)において異常が発生したか否かを判定する。ここで、異常検出部は、ステップS1701で各アプリ実行装置から取得した処理時間情報に基づいて稼働係のアプリ実行装置において異常が発生したか否かを判定してもよい。ある実施形態では、異常検出部は、待機係のアプリ実行装置からの処理時間情報を受信してから所定の時間以内に稼働係のアプリ実行装置からの処理時間情報を受信していない場合、稼働係のアプリ実行装置について異常が発生したと判定してもよい。また、ある実施形態では、異常検出部は、外部装置からの出力データが所定の時間以内に取得できていない場合に稼働係のアプリ実行装置について異常が発生したと判定してもよい。
稼働係のアプリ実行装置において異常が発生したと判定した場合、本処理はステップS1705へ進む。一方、稼働係のアプリ実行装置において異常が発生していないと判定した場合、本処理はステップS1706へ進む。
次に、ステップS1705では、稼働係のアプリ実行装置において異常が発生したと判定した場合、中央管理装置の作動モード管理部(例えば、図6に示すクラスタ管理部211の作動モード管理部616)は、待機係のアプリ実行装置(例えば、図2に示す第2のアプリ実行装置230)の作動モードを待機モードから稼働モードに変更する。このように待機係から稼働係に変更されたアプリ実行装置は、異常が発生した外部処理における外部通信を行う。
次に、ステップS1706では、中央管理装置は、通信ネットワークを介して、外部装置からの出力データを受信する。
次に、ステップS1707では、中央管理装置は、ステップS1706で受信した外部装置からの出力データを待機係のアプリ実行装置に転送する。
ステップS1708では、外部処理が不要と判定した場合、中央管理装置のクラスタ管理部の異常検出部(例えば、図6に示すクラスタ管理部211の異常検出部614)は、稼働係のアプリ実行装置(例えば、図2に示す第1のアプリ実行装置220)において異常が発生したか否かを判定する。
稼働係のアプリ実行装置において異常が発生したと判定した場合、本処理はステップS1709へ進む。一方、稼働係のアプリ実行装置において異常が発生していないと判定した場合、本処理はステップS1710へ進む。
ステップS1709では、稼働係のアプリ実行装置において異常が発生したと判定した場合、中央管理装置の作動モード管理部(例えば、図6に示すクラスタ管理部211の作動モード管理部616)は、待機係のアプリ実行装置(例えば、図2に示す第2のアプリ実行装置230)の作動モードを待機モードから稼働モードに変更する。
ステップS1710では、中央管理装置は、アプリ実行処理を継続する。
以上説明した管理処理1700によれば、内部処理に加えて外部装置との通信を要する外部処理を含むアプリケーションについても、異常を早期に検出し、アプリケーションの実行処理の信頼性を向上させることが可能となる。
次に、図18を参照して、本開示の実施形態に係る外部装置処理について説明する。
図18は、本開示の実施形態に係る外部装置処理1800の流れの一例を示す図である。図18に示す外部装置処理1800は、アプリ実行装置との外部通信によって受信した入力データに基づいて行われる処理であり、本開示の実施形態に係る外部装置(例えば、図2に示す外部装置240)によって実行される。
まず、ステップS1801では、外部装置は、通信ネットワークを介して、稼働係のアプリ実行装置から入力データを受信する。上述したように、この入力データは、所定の処理や動作を行うことを要求する指示を含んでもよい。
次に、ステップS1802では、外部装置は、ステップS1801で受信した入力データに基づいて、当該入力データに指示されている処理や動作を実行する。一例として、外部装置が工場で生産工程を行うための機会である場合、外部装置は、受信した入力データに基づいて、部品の組み立てや商品の梱包等を実行してもよい。
次に、ステップS1803では、外部装置は、出力データを稼働係のアプリ実行装置及び中央管理装置に送信する。ここでの出力データとは、例えば外部装置がステップS1802で実行した処理や動作の進捗状況に関する情報を含んでもよい。
以上説明した外部装置処理1800によれば、外部装置は、アプリ実行装置内で実行されているアプリ実行処理における外部処理に関連する動作を行うことができる。
次に、図19を参照して、本開示の実施形態に係る情報処理システムの、正常の外部処理の場合のデータ転送の流れについて説明する。
図19は、本開示の実施形態に係るアプリ実行装置情報処理システムの、正常の外部処理の場合のデータ転送の流れを示す図である。より具体的には、図19は、中央管理装置210と、第1のアプリ実行装置220と、第2のアプリ実行装置230と、第3のアプリ実行装置235と、外部装置240からなるアプリ実行装置情報処理システムの、正常の外部処理の場合のデータ転送の流れを示す。
また、ここでは、第1のアプリ実行装置220が稼働モードに設定されている稼働係であり、第2のアプリ実行装置230及び第3のアプリ実行装置235が待機モードに設定されている待機係である場合を一例として説明する。
まず、アプリ実行処理において外部処理が発生した場合、第1のアプリ実行装置220、第2のアプリ実行装置230及び第3のアプリ実行装置235は、外部処理を開始する時間を示す処理時間情報(図19に例示せず)を中央管理装置210に送信する。また、稼働係のアプリ実行装置である第1のアプリ実行装置220は、入力データを含むメッセージIN1を、外部装置240に転送する。
次に、中央管理装置210のアプリ実行同期管理部212は、外部装置240からの出力データを含むメッセージOUT1を受信するまでアプリ実行処理を休止する休止指示(図19に例示せず)を第1のアプリ実行装置220、第2のアプリ実行装置230及び第3のアプリ実行装置235に送信する。
次に、外部装置240は、メッセージIN1を受信し、取得した入力データに基づいて、所定の動作や処理を実行した後、出力データを含むメッセージOUT1を稼働係のアプリ実行装置である第1のアプリ実行装置220と、中央管理装置210に送信する。
次に、中央管理装置210は、外部装置240からメッセージOUT1を受信し、取得した出力データを待機係である第2のアプリ実行装置230及び第3のアプリ実行装置235に転送する。その後、中央管理装置210は、第2のアプリ実行装置230及び第3のアプリ実行装置235がメッセージOUT1を受信したことを確認した後、第1のアプリ実行装置220、第2のアプリ実行装置230及び第3のアプリ実行装置235におけるアプリ実行処理を再開させる再開指示(図19では例示せず)を送信する。
このように、異常が発生しなかった場合に、外部処理を行いつつ、第1のアプリ実行装置220、第2のアプリ実行装置230及び第3のアプリ実行装置235におけるアプリ実行処理を同期し実行することができる。
次に、図20を参照して、本開示の実施形態に係るアプリ実行処理において外部処理中に異常が発生した場合の情報処理システムのデータ転送の流れについて説明する。
図20は、本開示の実施形態に係るアプリ実行処理おいて外部処理中に異常が発生した場合の情報処理システムのデータ転送の流れを示す図である。より具体的には、図20は、中央管理装置210と、第1のアプリ実行装置220と、第2のアプリ実行装置230と、第3のアプリ実行装置235と、外部装置240からなるアプリ実行装置情報処理システムにおいて外部処理中に異常が発生した場合の情報処理システムのデータ転送の流れを示す。
また、ここでは、第1のアプリ実行装置220が稼働モードに設定されている稼働係であり、第2のアプリ実行装置230及び第3のアプリ実行装置235が待機モードに設定されている待機係である場合を一例として説明する。
まず、アプリ実行処理において外部処理が発生した場合、第1のアプリ実行装置220、第2のアプリ実行装置230及び第3のアプリ実行装置235は、外部処理を開始する時間を示す処理時間情報(図20に例示せず)を中央管理装置210に送信すると共に、外部装置240からの出力データを含むメッセージOUT1を受信するまでアプリ実行処理を休止する休止指示(図20に例示せず)を中央管理装置210から受信する。
なお、ここで、稼働係である第1のアプリ実行装置220は、入力データを含むメッセージIN1を外部装置240に送信するはずである。しかし、図20に示す例では、稼働係である第1のアプリ実行装置220において異常が発生し、メッセージIN1が外部装置240に送信されない場合を検討する。
次に、中央管理装置210のクラスタ管理部211は、稼働係である第1のアプリ実行装置220において異常が発生したことを検出する。ここで、クラスタ管理部211は、外部処理を開始する時間を示す処理時間情報を第1のアプリ実行装置220から受信してから所定の時間以内にメッセージOUT1を外部装置240から受信しない場合に第1のアプリ実行装置220において異常が発生したと判定してもよい。
この場合、中央管理装置210のクラスタ管理部211は、例えば第2のアプリ実行装置230等のような待機係のアプリ実行装置の作動モードを待機モードから稼働モードに変更する。
次に、稼働係に変更された第2のアプリ実行装置230は、入力データを含むメッセージIN1(つまり、異常の発生により第1のアプリ実行装置220が送信できなかったメッセージ)を外部装置240に送信する。
次に、入力データに基づいて所定の動作を行った後、外部装置240は、生成した出力データを含むメッセージOUT1を稼働係となった第2のアプリ実行装置230及び中央管理装置210に送信する。
次に、中央管理装置210は、外部装置240から取得したメッセージOUT1を例えば第3のアプリ実行装置235のような他の待機係のアプリ実行装置に送信する。その後、中央管理装置210は、全てのアプリ実行装置がメッセージOUT1を受信したことを確認した後、アプリ実行処理を再開させる再開指示を第2のアプリ実行装置230や第3のアプリ実行装置235に送信し、次の処理を実行させる。
このように、外部処理を開始する時間を示す処理時間情報をアプリ実行装置から受信してから所定の時間以内に出力データを含むメッセーを外部装置から受信しない場合に、稼働係について異常が発生したことを早期に判定することができる。
次に、図21を参照して、本開示の実施形態に係るアプリ実行処理において外部処理後に異常が発生した場合の情報処理システムのデータ転送の流れについて説明する。
図21は、本開示の実施形態に係るアプリ実行処理において外部処理後に異常が発生した場合の情報処理システムのデータ転送の流れを示す図である。より具体的には、図21は、中央管理装置210と、第1のアプリ実行装置220と、第2のアプリ実行装置230と、第3のアプリ実行装置235と、外部装置240からなるアプリ実行装置情報処理システムにおいて外部処理後に異常が発生した場合の情報処理システムのデータ転送の流れを示す。
また、ここでは、第1のアプリ実行装置220が稼働モードに設定されている稼働係であり、第2のアプリ実行装置230及び第3のアプリ実行装置235が待機モードに設定されている待機係である場合を一例として説明する。
まず、アプリ実行処理において外部処理が発生した場合、第1のアプリ実行装置220、第2のアプリ実行装置230及び第3のアプリ実行装置235が、外部処理を開始する時間を示す処理時間情報(図21に例示せず)を中央管理装置210に送信すると共に、外部装置240からの出力データを含むメッセージOUT1を受信するまでアプリ実行処理を休止する休止指示(図21に例示せず)を中央管理装置210から受信する。
また、ここで、稼働係である第1のアプリ実行装置220は、外部処理を開始する時間を示す処理時間情報(図20に例示せず)を中央管理装置210に送信すると同時に、入力データを含むメッセージIN1を外部装置240に送信する。しかし、図21に示す例では、稼働係である第1のアプリ実行装置220は、メッセージIN1を外部装置240に送信した後、異常が発生し、それ以降の処理ができない状態になる場合を検討する。
次に、メッセージIN1に基づいて所定の動作を行った後、外部装置240は、生成した出力データを含むメッセージOUT1を第1のアプリ実行装置220及び中央管理装置210に送信する。ただし、異常の発生により、第1のアプリ実行装置220は、メッセージOUT1を受信することができない。
次に、中央管理装置210は、外部装置240から取得した出力データを含むメッセージOUT1を待機係である第2のアプリ実行装置230や第3のアプリ実行装置235に送信する。その後、中央管理装置210は、アプリ実行処理を再開させる再開指示(図21に例示せず)を第2のアプリ実行装置230や第3のアプリ実行装置235に送信する。
次に、第2のアプリ実行装置230及び第3のアプリ実行装置235は、アプリ実行処理における次の処理を開始する時間を示す処理時間情報を中央管理装置210に送信し、当該処理を行う。
しかし、外部処理の実行後に発生した異常により、稼働係の第1のアプリ実行装置220は、次の処理を実行することができないため、処理を開始する時間を示す処理時間情報を中央管理装置210に送信することはない。
次に、中央管理装置210は、処理を開始する時間を示す処理時間情報を第2のアプリ実行装置230及び第3のアプリ実行装置235から受信したものの、当該処理を開始する時間を示す処理時間情報を所定の時間以内に稼働係である第1のアプリ実行装置220から受信しなかったことから、稼働係である第1のアプリ実行装置220において異常が発生したと判定する。
稼働係である第1のアプリ実行装置220について異常が発生したことを検出した場合、中央管理装置210は、例えば第2のアプリ実行装置230等のような待機係のアプリ実行装置の作動モードを稼働モードに変更する。その後、稼働係に変更された第2のアプリ実行装置230は、それ以降の処理を継続する。
このように、処理を開始する時間を示す処理時間情報を待機係のアプリ実行装置から受信し、当該処理を開始する時間を示す処理時間情報を所定の時間以内に稼働係のアプリ実行装置から受信しなかった場合に、稼働係について異常が発生したことを早期に判定することができる。
次に、図22を参照して、本開示の実施形態に係る処理時間情報管理テーブルについて説明する。
図22は、本開示の実施形態に係る処理時間情報管理テーブルT221、T222、T223及びT224を示す図である。上述したように、本開示の実施形態に係る中央管理装置のクラスタ管理部211は、各アプリ実行装置から取得した処理時間情報をテーブル形式で格納することができる。以下では、処理時間情報管理テーブルT221、T222、T223及びT224を参照して、正常のアプリ実行処理の場合や、アプリ実行処理において異常が発生した場合について説明する。
テーブルT221は、アプリ実行処理が正常に実行された場合に格納された処理時間情報の一例を示すテーブルである。テーブルT221に示すように、内部処理1-IMP、内部処理2-IMP、外部処理3-IMP及び内部処理4-IMPのそれぞれの処理について、処理時間情報が稼働係のアプリ実行装置PU1や、待機係のアプリ実行装置PU2、PU3から受信され、格納されている。
テーブルT222は、アプリ実行処理の内部処理中に異常が発生した場合に格納された処理時間情報の一例を示すテーブルである。テーブルT222に示すように、内部処理1-IMPの処理について、処理時間情報が稼働係のアプリ実行装置PU1や、待機係のアプリ実行装置PU2、PU3から受信され、格納されている。
しかし、内部処理2-IMPについては、処理時間情報が待機係のアプリ実行装置PU2、PU3から受信されているものの、稼働係のアプリ実行装置PU1からは処理時間情報が受信されていない。
従って、内部処理2-IMPに対応する処理時間情報を所定の時間以内に稼働係のアプリ実行装置PU1から受信されない場合、中央管理装置は、異常が稼働係のアプリ実行装置PU1において発生したことを判定する。その後、中央管理装置は、例えばアプリ実行装置PU2等のような待機係のアプリ実行装置の作動モードを待機モードから稼働モードに変更し、それ以降の処理を継続させる。
テーブルT223は、アプリ実行処理の外部処理中に異常が発生した場合に格納された処理時間情報の一例を示すテーブルである。テーブルT223に示すように、内部処理1-IMP及び内部処理2-IMPのそれぞれの処理について、処理時間情報が稼働係のアプリ実行装置PU1や、待機係のアプリ実行装置PU2、PU3から受信され、格納されている。
しかし、中央管理装置は、外部処理3-EMPに対応する出力データを含むメッセージ(テーブルT223には図示せず)を外部装置から受信していないとする。
従って、外部処理3-EMPに対応する出力データを含むメッセージを所定の時間以内に外部装置から受信されない場合、中央管理装置は、異常が稼働係のアプリ実行装置PU1において発生したことを判定する。その後、中央管理装置は、例えばアプリ実行装置PU2等のような待機係のアプリ実行装置の作動モードを待機モードから稼働モードに変更しする。そして、待機モードから稼働モードに変更されたアプリ実行装置PU2は、外部処理3-EMPの入力データを外部装置に送信し、それ以降の処理を継続する。
なお、ここでは、出力データを含むメッセージを所定の時間以内に外部装置から受信されない場合に稼働係のアプリ実行装置において異常が発生したことを判定する例について説明したが、本開示はこれに限定されず、例えば上述したように、次の処理の開始時間を示す処理時間情報を受信しなかった場合に稼働係のアプリ実行装置において異常が発生したことを判定することも可能である。
テーブルT224は、アプリ実行処理の外部処理後に異常が発生した場合に格納された処理時間情報の一例を示すテーブルである。テーブルT224に示すように、内部処理1-IMP及び内部処理2-IMPのそれぞれの処理について、処理時間情報が稼働係のアプリ実行装置PU1や、待機係のアプリ実行装置PU2、PU3から受信され、格納されている。また、テーブルT224には示されないが、中央管理装置は、外部装置からの出力データを含むメッセージを受信していることとする。
しかし、内部処理4-EMPについては、処理時間情報が待機係のアプリ実行装置PU2、PU3から受信されているものの、稼働係のアプリ実行装置PU1からは処理時間情報が受信されていない。
従って、内部処理4-EMPに対応する処理時間情報を所定の時間以内にアプリ実行装置PU1から受信されない場合、中央管理装置は、異常が稼働係のアプリ実行装置PU1において発生したことを判定する。その後、中央管理装置は、例えばアプリ実行装置PU2等のような待機係のアプリ実行装置の作動モードを待機モードから稼働モードに変更し、それ以降の処理を継続させる。
以上、本開示の実施形態に係る情報処理手段について説明した。
上述したように、本開示の実施形態に係る情報処理手段の一態様は、フローエディタによって作成されたデータフローに基づくアプリケーションを実行するアプリ実行処理に含まれる各処理ブロックの開始時にアプリ実行装置から所得する処理時間情報に基づいて、稼働係のアプリ実行装置において異常が発生したか否かを判定することに関する。これにより、データフローが終了した時点のみならず、アプリ実行処理の途中でも、異常が発生したか否かを早期に検出することができる。
また、本開示の実施形態に係る情報処理手段のもう一態様は、稼働係のアプリ実行装置のアプリ実行処理において異常が発生した場合、待機係のアプリ実行装置を新たな稼働係とすることに関する。その後、新たな稼働係となったアプリ実行装置は、異常の発生により正常に行われなかった外部装置との外部通信などの処理を行う。これにより、外部処理を含むアプリケーションにおいて異常が発生した場合であっても、データフローを最初から再実行せず、異常が発生した時点以降の処理を実行することで、アプリ実行処理を円滑に継続することができる。
このように、本開示の実施形態に係る情報処理によれば、外部処理を含むアプリケーションの場合であっても、異常を早期に検出し、アプリケーションの実行処理の信頼性を向上させることが可能な情報処理手段を提供することができる。
上述したように、本開示の実施形態に係る異常判定手段は、以下の態様を含む。
(態様1)
データフローに基づくアプリケーションを並行に実行する複数のアプリ実行装置と、
前記複数のアプリ実行装置を管理する中央管理装置と、
所定の動作を前記アプリ実行装置からの指令に基づいて遂行する外部装置とが通信ネットワークを介して接続されている情報処理システムであって、
前記アプリケーションは、
前記アプリ実行装置内で実行される内部処理と、
前記外部装置との通信を要する外部処理とを含み、
アプリ実行装置は、
前記アプリケーションにおける外部処理を実行する場合、前記所定の動作の実行を指示する指令情報を前記外部装置に送信し、出力情報を前記外部装置から受信する稼働モードと、
前記アプリケーションにおける外部処理を実行する場合、前記所定の動作の実行を指示する指令情報を前記外部装置に送信せず、前記中央管理装置を介して送信される前記出力情報を受信するまで待機する待機モードのいずれか一方の作動モードで作動するように構成され、
前記中央管理装置は、
前記待機モードで作動している第1のアプリ実行装置から、前記第1のアプリ実行装置において第1の処理を実行する時間を示す第1の処理時間情報を受信し、
前記稼働モードで作動している第2のアプリ実行装置から、前記第2のアプリ実行装置において前記第1の処理を実行する時間を示す第2の処理時間情報を、前記第1の処理時間情報を受信してから所定の時間以内に受信しなかった場合、前記第2のアプリ実行装置について異常が発生したと判定し、
前記第2のアプリ実行装置について異常が発生したと判定した場合、前記第1のアプリ実行装置を前記待機モードから前記稼働モードに変更し、前記アプリケーションの実行を継続させる、
ことを特徴とする情報処理システム。
(態様2)
前記中央管理装置は、
前記待機モードで作動している前記第1のアプリ実行装置から、前記第1のアプリ実行装置において第1の外部処理を実行する時間を示す第1の外部処理時間情報を受信した場合、前記アプリケーションの実行を休止する休止指示を前記第1のアプリ実行装置及び前記第2のアプリ実行装置に送信し、
前記外部装置からの前記出力情報を、前記第1の外部処理時間情報を受信してから所定の時間以内に受信しなかった場合、前記第2のアプリ実行装置について異常が発生したと判定し、
前記第2のアプリ実行装置について異常が発生したと判定した場合、前記第1のアプリ実行装置を前記待機モードから前記稼働モードに変更し、
前記指令情報を前記外部装置に送信するように前記第2のアプリ実行装置を制御し、
前記出力情報を前記外部装置から受信した場合、前記アプリケーションの実行を再開する再開指示を前記第2のアプリ実行装置に送信する、
ことを特徴とする、態様1に記載の情報処理システム。
(態様3)
前記中央管理装置は、
前記待機モードで作動している前記第1のアプリ実行装置から、前記第1のアプリ実行装置において第1の外部処理を実行する時間を示す第1の外部処理時間情報を受信した場合、前記アプリケーションの実行を休止する休止指示を前記第1のアプリ実行装置及び前記第2のアプリ実行装置に送信し、
前記外部装置からの前記出力情報を前記第1の外部処理時間情報を受信してから所定の時間以内に受信した場合、前記アプリケーションの実行を再開する再開指示を前記第1のアプリ実行装置及び前記第2のアプリ実行装置に送信し、
前記待機モードで作動している前記第1のアプリ実行装置から、前記第1のアプリ実行装置において前記第1の外部処理に続く第2の処理を実行する時間を示す第3の処理時間情報を受信し、
前記稼働モードで作動している第2のアプリ実行装置から、前記第2のアプリ実行装置において前記第2の処理を実行する時間を示す第4の処理時間情報を、前記第3の処理時間情報を受信してから所定の時間以内に受信しなかった場合、前記第2のアプリ実行装置について異常が発生したと判定し、
前記第2のアプリ実行装置について異常が発生したと判定した場合、前記第1のアプリ実行装置を前記待機モードから前記稼働モードに変更し、前記アプリケーションの実行を継続させる、
ことを特徴とする、態様1又は2に記載の情報処理システム。
以上、本発明の実行の形態について説明したが、本発明は、上述した実行の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
200 情報処理システム
210 中央管理装置
211 クラスタ管理部
212 アプリ実行同期管理部
215 アプリ実行装置クラスタ
220 第1のアプリ実行装置
221 フロー編集管理部
222 アプリ実行部
230 第2のアプリ実行装置
231 フロー編集管理部
232 アプリ実行部
240 外部装置

Claims (6)

  1. データフローに基づくアプリケーションを並行に実行する複数のアプリ実行装置と、
    前記複数のアプリ実行装置を管理する中央管理装置と、
    所定の動作を前記アプリ実行装置からの指令に基づいて遂行する外部装置とが通信ネットワークを介して接続されている情報処理システムであって、
    前記アプリケーションは、
    前記アプリ実行装置内で実行される内部処理と、
    前記外部装置との通信を要する外部処理とを含み、
    アプリ実行装置は、
    前記アプリケーションにおける外部処理を実行する場合、前記所定の動作の実行を指示する指令情報を前記外部装置に送信し、出力情報を前記外部装置から受信する稼働モードと、
    前記アプリケーションにおける外部処理を実行する場合、前記所定の動作の実行を指示する指令情報を前記外部装置に送信せず、前記中央管理装置を介して送信される前記出力情報を受信するまで待機する待機モードのいずれか一方の作動モードで作動するように構成され、
    前記中央管理装置は、
    前記待機モードで作動している第1のアプリ実行装置から、前記第1のアプリ実行装置において第1の処理を実行する時間を示す第1の処理時間情報を受信し、
    前記稼働モードで作動している第2のアプリ実行装置から、前記第2のアプリ実行装置において前記第1の処理を実行する時間を示す第2の処理時間情報を、前記第1の処理時間情報を受信してから所定の時間以内に受信しなかった場合、前記第2のアプリ実行装置について異常が発生したと判定し、
    前記第2のアプリ実行装置について異常が発生したと判定した場合、前記第1のアプリ実行装置を前記待機モードから前記稼働モードに変更し、前記アプリケーションの実行を継続させる、
    ことを特徴とする情報処理システム。
  2. 前記中央管理装置は、
    前記待機モードで作動している前記第1のアプリ実行装置から、前記第1のアプリ実行装置において第1の外部処理を実行する時間を示す第1の外部処理時間情報を受信した場合、前記アプリケーションの実行を休止する休止指示を前記第1のアプリ実行装置及び前記第2のアプリ実行装置に送信し、
    前記外部装置からの前記出力情報を、前記第1の外部処理時間情報を受信してから所定の時間以内に受信しなかった場合、前記第2のアプリ実行装置について異常が発生したと判定し、
    前記第2のアプリ実行装置について異常が発生したと判定した場合、前記第1のアプリ実行装置を前記待機モードから前記稼働モードに変更し、
    前記指令情報を前記外部装置に送信するように前記第2のアプリ実行装置を制御し、
    前記出力情報を前記外部装置から受信した場合、前記アプリケーションの実行を再開する再開指示を前記第2のアプリ実行装置に送信する、
    ことを特徴とする、請求項1に記載の情報処理システム。
  3. 前記中央管理装置は、
    前記待機モードで作動している前記第1のアプリ実行装置から、前記第1のアプリ実行装置において第1の外部処理を実行する時間を示す第1の外部処理時間情報を受信した場合、前記アプリケーションの実行を休止する休止指示を前記第1のアプリ実行装置及び前記第2のアプリ実行装置に送信し、
    前記外部装置からの前記出力情報を前記第1の外部処理時間情報を受信してから所定の時間以内に受信した場合、前記アプリケーションの実行を再開する再開指示を前記第1のアプリ実行装置及び前記第2のアプリ実行装置に送信し、
    前記待機モードで作動している前記第1のアプリ実行装置から、前記第1のアプリ実行装置において前記第1の外部処理に続く第2の処理を実行する時間を示す第3の処理時間情報を受信し、
    前記稼働モードで作動している第2のアプリ実行装置から、前記第2のアプリ実行装置において前記第2の処理を実行する時間を示す第4の処理時間情報を、前記第3の処理時間情報を受信してから所定の時間以内に受信しなかった場合、前記第2のアプリ実行装置について異常が発生したと判定し、
    前記第2のアプリ実行装置について異常が発生したと判定した場合、前記第1のアプリ実行装置を前記待機モードから前記稼働モードに変更し、前記アプリケーションの実行を継続させる、
    ことを特徴とする、請求項1に記載の情報処理システム。
  4. データフローに基づくアプリケーションを並行に実行する複数のアプリ実行装置と、
    前記複数のアプリ実行装置を管理する中央管理装置と、
    所定の動作を前記アプリ実行装置からの指令に基づいて遂行する外部装置とが通信ネットワークを介して接続されている情報処理システムにおいて実行される情報処理方法であって、
    前記アプリケーションは、
    前記アプリ実行装置内で実行される内部処理と、
    前記外部装置との通信を要する外部処理とを含み、
    アプリ実行装置は、
    前記アプリケーションにおける外部処理を実行する場合、前記所定の動作の実行を指示する指令情報を前記外部装置に送信し、出力情報を前記外部装置から受信する稼働モードと、
    前記アプリケーションにおける外部処理を実行する場合、前記所定の動作の実行を指示する指令情報を前記外部装置に送信せず、前記中央管理装置を介して送信される前記出力情報を受信するまで待機する待機モードのいずれか一方の作動モードで作動するように構成され、
    前記情報処理方法は、
    前記待機モードで作動している第1のアプリ実行装置から、前記第1のアプリ実行装置において第1の処理を実行する時間を示す第1の処理時間情報を受信する工程と、
    前記稼働モードで作動している第2のアプリ実行装置から、前記第2のアプリ実行装置において前記第1の処理を実行する時間を示す第2の処理時間情報を、前記第1の処理時間情報を受信してから所定の時間以内に受信しなかった場合、前記第2のアプリ実行装置について異常が発生したと判定する工程と、
    前記第2のアプリ実行装置について異常が発生したと判定した場合、前記第1のアプリ実行装置を前記待機モードから前記稼働モードに変更し、前記アプリケーションの実行を継続させる工程と、
    を前記中央管理装置によって実行することを特徴とする情報処理方法。
  5. 前記情報処理方法は、
    前記待機モードで作動している前記第1のアプリ実行装置から、前記第1のアプリ実行装置において第1の外部処理を実行する時間を示す第1の外部処理時間情報を受信した場合、前記アプリケーションの実行を休止する休止指示を前記第1のアプリ実行装置及び前記第2のアプリ実行装置に送信する工程と、
    前記外部装置からの前記出力情報を、前記第1の外部処理時間情報を受信してから所定の時間以内に受信しなかった場合、前記第2のアプリ実行装置について異常が発生したと判定する工程と、
    前記第2のアプリ実行装置について異常が発生したと判定した場合、前記第1のアプリ実行装置を前記待機モードから前記稼働モードに変更する工程と、
    前記指令情報を前記外部装置に送信するように前記第2のアプリ実行装置を制御する工程と、
    前記出力情報を前記外部装置から受信した場合、前記アプリケーションの実行を再開する再開指示を前記第2のアプリ実行装置に送信する工程と、
    を前記中央管理装置によって実行することを特徴とする、請求項4に記載の情報処理方法。
  6. 前記情報処理方法は、
    前記待機モードで作動している前記第1のアプリ実行装置から、前記第1のアプリ実行装置において第1の外部処理を実行する時間を示す第1の外部処理時間情報を受信した場合、前記アプリケーションの実行を休止する休止指示を前記第1のアプリ実行装置及び前記第2のアプリ実行装置に送信する工程と、
    前記外部装置からの前記出力情報を前記第1の外部処理時間情報を受信してから所定の時間以内に受信した場合、前記アプリケーションの実行を再開する再開指示を前記第1のアプリ実行装置及び前記第2のアプリ実行装置に送信する工程と、
    前記待機モードで作動している前記第1のアプリ実行装置から、前記第1のアプリ実行装置において前記第1の外部処理に続く第2の処理を実行する時間を示す第3の処理時間情報を受信する工程と、
    前記稼働モードで作動している第2のアプリ実行装置から、前記第2のアプリ実行装置において前記第2の処理を実行する時間を示す第4の処理時間情報を、前記第3の処理時間情報を受信してから所定の時間以内に受信しなかった場合、前記第2のアプリ実行装置について異常が発生したと判定する工程と、
    前記第2のアプリ実行装置について異常が発生したと判定した場合、前記第1のアプリ実行装置を前記待機モードから前記稼働モードに変更し、前記アプリケーションの実行を継続させる工程と、
    を前記中央管理装置によって実行することを特徴とする、請求項4に記載の情報処理方法。
JP2022149953A 2022-09-21 2022-09-21 情報処理システム及び情報処理方法 Pending JP2024044443A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022149953A JP2024044443A (ja) 2022-09-21 2022-09-21 情報処理システム及び情報処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022149953A JP2024044443A (ja) 2022-09-21 2022-09-21 情報処理システム及び情報処理方法

Publications (1)

Publication Number Publication Date
JP2024044443A true JP2024044443A (ja) 2024-04-02

Family

ID=90480039

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022149953A Pending JP2024044443A (ja) 2022-09-21 2022-09-21 情報処理システム及び情報処理方法

Country Status (1)

Country Link
JP (1) JP2024044443A (ja)

Similar Documents

Publication Publication Date Title
US10812605B2 (en) Message queue-based systems and methods for establishing data communications with industrial machines in multiple locations
US9424149B2 (en) Systems and methods for fault tolerant communications
JP5149258B2 (ja) ロボットコンポーネント管理装置
EP2897007B1 (en) Process controller and updating method thereof
JP2006072591A (ja) 仮想計算機制御方法
US7003595B2 (en) Information processing system and information processing method
CN113228020A (zh) 调度机器人以用于机器人流程自动化
JP2006285810A (ja) クラスタ構成コンピュータシステム及びその系リセット方法
US8131899B2 (en) System control server, storage system, and setting method
JP2024044443A (ja) 情報処理システム及び情報処理方法
CN106909368B (zh) 一种实现快速业务开发的服务端业务层逻辑架构
WO2023241680A1 (zh) 一种基于云计算技术的边缘节点控制方法以及云管理平台
TWI303032B (en) System and method for collecting non-secs data of semiconductor manufacturing system, and computer-readable recording medium storing program for executing the method
CN105791345A (zh) 半导体工艺设备中服务端与工控机的通信系统
EP3467655A1 (en) System and method for mpi implementation in an embedded operating system
US20210019186A1 (en) Information processing system, information processing apparatus, and method of controlling an information processing system
CN105677515B (zh) 一种数据库联机备份方法及系统
CN109062686B (zh) 多进程管理方法、存储介质、电子设备及系统
CN114095343A (zh) 基于双活系统的容灾方法、装置、设备及存储介质
US9860112B2 (en) Techniques for synchronizing operations between regions when a network connection fails
EP4068015A1 (en) Controller and control method
WO2024051231A1 (zh) 一种处理器及检测处理器错误的方法
JP2014197346A (ja) コントローラおよびプログラム
Malavolta et al. The Journal of Systems & Software
JP2005284684A (ja) データ共有装置、データ共有方法、プログラム、ならびにその記録媒体