(57)【要約】【課題】複数の拠点間で連携して行われる処理を実現するソフトウェアを効率よく開発する。【解決手段】情報処理システムは、複数の拠点の夫々に設けられ、ＡＰソフトを実行する複数のＡＰ実行装置を含む。ＡＰ実行装置の夫々は、同じ処理ブロックを同じ順序で実行する共通のＡＰソフトを記憶する。ＡＰソフトは、第１の拠点の第１のＡＰ実行装置で実行された処理ブロックの処理を、第２の拠点の第２のＡＰ実行装置に連携する処理を実現する転送処理ブロックを含む。第１のＡＰ実行装置は、ＡＰソフトの処理ブロックの順次実行に際して第１の転送処理ブロックに到達すると、第１の転送処理ブロックの識別子を含む、連携開始を通知する連携開始メッセージを第２のＡＰ実行装置に送信し、第２のＡＰ実行装置は、連携開始メッセージを受信すると、第１の転送処理ブロックに後続する処理ブロックから順次実行を開始する。【選択図】図２
2020198068.tif 000002
【特許請求の範囲】
【請求項１】
複数の拠点の夫々に設けられ、アプリケーションの機能を実現するソフトウェアであるＡＰソフトを実行する情報処理装置である複数のＡＰ実行装置を含み、
前記ＡＰ実行装置は通信ネットワークを介して互いに通信可能に接続されており、
前記ＡＰ実行装置の夫々は、同じ処理ブロックを同じ順序で実行する共通のＡＰソフトを記憶し、
前記ＡＰソフトは、第１の前記拠点の第１の前記ＡＰ実行装置で実行された前記処理ブロックの処理を、第２の前記拠点の第２の前記ＡＰ実行装置に連携するための処理を実現する処理ブロックである転送処理ブロックを含み、
前記第１のＡＰ実行装置は、前記ＡＰソフトの処理ブロックの順次実行に際して第１の前記転送処理ブロックに到達すると、連携開始を通知するメッセージである連携開始メッセージを前記第２のＡＰ実行装置に送信し、
前記第２のＡＰ実行装置は、前記連携開始メッセージを受信すると、前記第１の転送処理ブロックに後続する処理ブロックから順次実行を開始する、
情報処理システム。
【請求項２】
請求項１に記載の情報処理システムであって、
前記連携開始メッセージは、前記第１の転送処理ブロックの直前の処理ブロックまでの実行結果を含み、
前記第２のＡＰ実行装置は、前記実行結果を前記第１の転送処理ブロックに後続する処理ブロックに入力する、
情報処理システム。
【請求項３】
請求項１に記載の情報処理システムであって、
前記第１のＡＰ実行装置は、前記ＡＰソフトの処理ブロックの順次実行に際して第１の前記転送処理ブロックに到達すると、当該第１の転送処理ブロックの識別子を含む、連携開始を通知するメッセージである連携開始メッセージを前記第２のＡＰ実行装置に送信し、
前記第２のＡＰ実行装置は、前記第１の転送処理ブロックに後続する処理ブロックの順次実行に際して第２の前記転送処理ブロックに到達すると、前記第１の転送処理ブロックの識別子を含む、連携終了を通知するメッセージである連携終了メッセージを前記第１のＡＰ実行装置に送信し、
前記第１のＡＰ実行装置は、前記連携開始メッセージを受信すると、前記第２の転送処理ブロックに後続する処理ブロックから順次実行を開始する、
情報処理システム。
【請求項４】
請求項３に記載の情報処理システムであって、
前記連携終了メッセージは、前記第２の転送処理ブロックの直前の処理ブロックまでの実行結果を含み、
前記第１のＡＰ実行装置は、前記実行結果を前記第２の転送処理ブロックに後続する処理ブロックに入力する、
情報処理システム。
【請求項５】
請求項１に記載の情報処理システムであって、
複数の前記ＡＰ実行装置は、同じ前記ＡＰソフトを連携して実行するクラスタを構成し、
前記複数のＡＰ実行装置の夫々と通信可能に接続する情報処理装置であるクラスタ管理装置を備え、
前記クラスタ管理装置は、前記クラスタの夫々に属する前記ＡＰ実行装置を示す情報で
あるＡＰ実行装置情報を記憶し、前記複数のＡＰ実行装置の夫々に前記ＡＰ実行装置情報を送信する、
情報処理システム。
【請求項６】
請求項５に記載の情報処理システムであって、
前記ＡＰ実行装置情報は、前記ＡＰ実行装置の前記通信ネットワークにおける所在を示す情報である通信情報と、前記ＡＰソフトに記述される、前記ＡＰ実行装置の所在を特定する情報である属性情報と、を対応づけた情報を含む、
情報処理システム。
【請求項７】
請求項６に記載の情報処理システムであって、
前記ＡＰソフトは、連携先となる前記第２のＡＰ実行装置を指定する前記属性情報の記述を含み、前記ＡＰ実行装置は、前記記述と前記ＡＰ実行装置情報とを対照することにより連携先の前記ＡＰ実行装置の前記通信ネットワークにおける所在を特定する、
情報処理システム。
【請求項８】
請求項６に記載の情報処理システムであって、
前記クラスタ管理装置は、ユーザが操作する情報処理装置であるクライアント装置と通信可能に接続し、前記クライアント装置を介してユーザから前記ＡＰ実行装置情報の設定を受付ける、
情報処理システム。
【請求項９】
請求項８に記載の情報処理システムであって、
前記クラスタ管理装置は、ユーザから受付けた前記ＡＰ実行装置情報の内容の誤りを検査する、
情報処理システム。
【請求項１０】
請求項８に記載の情報処理システムであって、
前記クラスタ管理装置は、記憶している前記ＡＰ実行装置情報を前記クライアント装置に送信する、
情報処理システム。
【請求項１１】
請求項６に記載の情報処理システムであって、
前記クラスタ管理装置は、新たな前記ＡＰ実行装置の前記クラスタへの参加登録を受付け、受付けた前記ＡＰ実行装置の前記ＡＰ実行装置情報を前記クラスタに属する他の前記ＡＰ実行装置に送信する、
情報処理システム。
【請求項１２】
請求項１１に記載の情報処理システムであって、
前記クラスタ管理装置は、ある前記クラスタに属する前記ＡＰ実行装置において生成される前記ＡＰソフトを実行するプロセスであるＡＰプロセスの生存確認を前記通信ネットワークを介して行い、一の前記ＡＰ実行装置の前記ＡＰプロセスの生存が確認できなくなると、当該ＡＰ実行装置を当該クラスタから離脱させるとともに、当該ＡＰ実行装置が前記クラスタから離脱した旨を他の前記ＡＰ実行装置に通知する、
情報処理システム。
【請求項１３】
請求項６に記載の情報処理システムであって、
前記クラスタ管理装置は、
ユーザが操作する情報処理装置であるクライアント装置と通信可能に接続し、
前記クライアント装置から前記ＡＰソフトを受信して記憶し、
前記ＡＰ実行装置から送られてくる前記ＡＰソフトの取得要求に応じて前記ＡＰソフトを前記ＡＰ実行装置に送信する、
情報処理システム。
【請求項１４】
請求項１３に記載の情報処理システムであって、
前記クラスタ管理装置は、前記ＡＰソフトのバージョン管理を行う情報処理装置であるＡＰ管理装置と通信可能に接続し、前記ＡＰソフトを前記ＡＰ管理装置から取得して記憶する、
情報処理システム。
【請求項１５】
請求項１に記載の情報処理システムであって、
前記複数のＡＰ実行装置の夫々において利用可能なデータを示す情報であるデータリストを管理し、
前記第１のＡＰ実行装置は、
前記ＡＰソフトの処理ブロックの順次実行に際して第１の前記転送処理ブロックに到達すると、前記データリストに基づき、当該第１の転送処理ブロックに記述されている、前記第２の拠点におけるデータを指定する情報であるデータ指定情報に対応するデータを利用可能な前記ＡＰ実行装置を前記第２のＡＰ実行装置として選出し、
連携開始を通知するメッセージである連携開始メッセージを、選出した前記第２のＡＰ実行装置に送信し、
前記第２のＡＰ実行装置は、前記連携開始メッセージを受信すると、前記第１の転送処理ブロックに後続する処理ブロックから順次実行を開始する、
情報処理システム。
【請求項１６】
請求項１５に記載の情報処理システムであって、
前記ＡＰ実行装置の夫々は、前記ＡＰソフトの実行時に利用するデータを管理するデータベースと通信可能に接続し、
前記ＡＰ実行装置が、前記データベースにアクセスすることにより、自身にデプロイされた前記ＡＰソフトに記述されている前記データ指定情報に対応するデータを取得可能か否かを検証し、
取得可能な場合に前記データを前記データリストに管理する、
情報処理システム。
【請求項１７】
請求項１６に記載の情報処理システムであって、
前記ＡＰ実行装置の夫々と通信可能に接続され、前記データリストを分散処理方式で更新管理する複数の情報処理装置を含む、
情報処理システム。
【請求項１８】
請求項１６に記載の情報処理システムであって、
前記ＡＰ実行装置の夫々は、夫々が前記データベースに接続するために必要な情報であるＤＢ接続情報を個別に管理する、
情報処理システム。
【請求項１９】
複数の拠点の夫々に設けられ、アプリケーションの機能を実現するソフトウェアであるＡＰソフトを実行する情報処理装置である複数のＡＰ実行装置を含み、前記ＡＰ実行装置は通信ネットワークを介して互いに通信可能に接続されて構成される情報処理システムの制御方法であって、
前記ＡＰ実行装置の夫々が、同じ処理ブロックを同じ順序で実行する共通のＡＰソフトを記憶し、
前記ＡＰソフトは、第１の前記拠点の第１の前記ＡＰ実行装置で実行された前記処理ブ
ロックの処理を、第２の前記拠点の第２の前記ＡＰ実行装置に連携するための処理を実現する処理ブロックである転送処理ブロックを含み、
前記第１のＡＰ実行装置は、前記ＡＰソフトの処理ブロックの順次実行に際して第１の前記転送処理ブロックに到達すると、連携開始を通知するメッセージである連携開始メッセージを前記第２のＡＰ実行装置に送信し、
前記第２のＡＰ実行装置は、前記連携開始メッセージを受信すると、前記第１の転送処理ブロックに後続する処理ブロックから順次実行を開始する、
情報処理システムの制御方法。
【請求項２０】
請求項１９に記載の情報処理システムの制御方法であって、
前記複数のＡＰ実行装置の夫々において利用可能なデータを示す情報であるデータリストを管理し、
前記第１のＡＰ実行装置が、
前記ＡＰソフトの処理ブロックの順次実行に際して第１の前記転送処理ブロックに到達すると、前記データリストに基づき、当該第１の転送処理ブロックに記述されている、前記第２の拠点におけるデータを指定する情報であるデータ指定情報に対応するデータを利用可能な前記ＡＰ実行装置を前記第２のＡＰ実行装置として選出し、
連携開始を通知するメッセージである連携開始メッセージを、選出した前記第２のＡＰ実行装置に送信し、
前記第２のＡＰ実行装置が、前記連携開始メッセージを受信すると、前記第１の転送処理ブロックに後続する処理ブロックから順次実行を開始する、
情報処理システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、及び情報処理システムの制御方法に関する。
【背景技術】
【０００２】
特許文献１には、パーソナルコンピュータ、セル電話、スマートフォン、携帯情報端末等の複数のエッジデバイスが、夫々ネットワークを介してクラウドと通信可能に接続されるシステムにおいて、クラウドとエッジデバイス間でリアルタイムに処理を行うアプリケーションが、エッジデバイスやクラウドから収集されるリアルタイムフィードに基づき通知や推奨等のサービスを提供することが記載されている。
【０００３】
特許文献２には、クラウドサービスを利用するエッジ側の装置において、アプリケーションの開発容易性の向上や、アプリケーションから各種のクラウドサービスの柔軟な利用を可能にすることを目的として構成されたクラウド中継装置について記載されている。クラウド中継装置は、クラウドサービス装置と接続可能なクラウド接続処理部と、クラウド接続処理部に対応するユーザインタフェース部と、クラウド接続処理部とユーザインタフェース部との間でデータの中継を行う中継部とを備える。
【先行技術文献】
【非特許文献】
【０００４】
【特許文献１】特表２０１５−５０５４０４号公報
【特許文献２】特開２０１８−９２５６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
低遅延で行うべき処理等をエッジ側で実行し、クラウド側ではエッジ側の処理内容の管理等を行う、いわゆるエッジコンピューティングが注目されている。またエッジコンピューティングのように複数の拠点間で行われる処理を実現するためのソフトウェアを開発する機会が増加している。またクラウドやエッジのアプリケーションが公開するＡＰＩ（Application Program Interface）を利用してクラウド側やエッジ側で提供されるアプリケ
ーションの処理を連携させるソフトウェアが注目されている。
【０００６】
こうした複数の拠点間で処理を連携するソフトウェアの開発に際しては、拠点間の通信負荷の軽減やセキュリティの向上、ソフトウェアの開発負荷の軽減等を図ることが求められる。またソフトウェアの開発手法は、従来のデータの管理（ＳｏＲ：System of Record）を中心とした開発手法から、顧客を中心とした開発手法（ＳｏＥ：system of Engagement）にシフトしつつあり、ソフトウェアの開発に際しては、ドメイン側（エッジ側）の状況を熟知したシステムの発注側（ドメインエキスパート）の参加が重要になってきている。
【０００７】
特許文献１では、個々のエッジデバイスが個別にクラウドとの間で通信する構成であるため、クラウド及び個々のエッジデバイスの夫々について個別にソフトウェアを構築する必要があり、システム全体の開発負担が大きく、とくにクラウドとの連携処理に習熟していないドメインエキスパートによる開発は困難である。またエッジデバイスごとにクラウドとの間で通信が発生するため、クラウドとエッジデバイスとの間の通信負荷やセキュリティの確保が問題となる。
【０００８】
また特許文献２に記載された構成では、エッジ側のクラウド中継装置の機能を実現する
ソフトウェアを開発する必要があり、各拠点のクラウド中継装置について個別にソフトウェアを開発する必要があるため開発負担が大きく、とくにクラウド中継装置とクラウドとの間の連携処理を実現するソフトウェアの開発はドメインエキスパートには困難である。
【０００９】
本発明はこうした背景に基づきなされたものであり、複数の拠点間で連携して行われる処理を実現するソフトウェアを効率よく開発することが可能な、情報処理システム、及び情報処理システムの制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するための本発明の一つは、情報処理システムであって、複数の拠点の夫々に設けられ、アプリケーションの機能を実現するソフトウェアであるＡＰソフトを実行する情報処理装置である複数のＡＰ実行装置を含み、前記ＡＰ実行装置は通信ネットワークを介して互いに通信可能に接続されており、前記ＡＰ実行装置の夫々は、同じ処理ブロックを同じ順序で実行する共通のＡＰソフトを記憶し、前記ＡＰソフトは、第１の前記拠点の第１の前記ＡＰ実行装置で実行された前記処理ブロックの処理を、第２の前記拠点の第２の前記ＡＰ実行装置に連携するための処理を実現する処理ブロックである転送処理ブロックを含み、前記第１のＡＰ実行装置は、前記ＡＰソフトの処理ブロックの順次実行に際して第１の前記転送処理ブロックに到達すると、当該第１の転送処理ブロックの識別子を含む、連携開始を通知するメッセージである連携開始メッセージを前記第２のＡＰ実行装置に送信し、前記第２のＡＰ実行装置は、前記連携開始メッセージを受信すると、前記第１の転送処理ブロックに後続する処理ブロックから順次実行を開始する。
【００１１】
その他、本願が開示する課題、及びその解決方法は、発明を実施するための形態の欄、及び図面により明らかにされる。
【発明の効果】
【００１２】
本発明によれば、複数の拠点間で連携して行われる処理を実現するソフトウェアを効率よく開発することができる。
【図面の簡単な説明】
【００１３】
【図１】情報処理システムの概略的な構成を示す図である。
【図２】ＡＰソフトの生成から実行までの概略的な流れを説明する図である。
【図３】ＡＰソフトの具体例を示す図である。
【図４】情報処理装置の構成例である。
【図５】クライアント装置の主な機能を説明する図である。
【図６】ＡＰ管理装置の主な機能を説明する図である。
【図７】クラスタ管理装置の主な機能を説明する図である。
【図８】ＡＰ実行装置の主な機能を説明する図である。
【図９】ＡＰプロセスにより実現される主な機能を説明する図である。
【図１０】ＡＰソフト登録シーケンスを説明する図である。
【図１１】新たなＡＰ実行装置をクラスタに追加する手順を説明するフローチャートである。
【図１２】ＡＰ実行装置情報４５１の一例である。
【図１３】ＡＰ実行装置情報受付シーケンスを説明する図である。
【図１４】属性情報変更シーケンスを説明する図である。
【図１５】属性情報の変更情報の一例である。
【図１６】属性情報提供シーケンスを説明する図である。
【図１７】ＡＰソフト実行準備シーケンスを説明する図である。
【図１８】クラスタ内情報共有シーケンス（ＡＰプロセス起動時）を説明する図である。
【図１９】クラスタ内情報共有シーケンス（ＡＰプロセス消滅時）を説明する図である。
【図２０】ＡＰソフト実行シーケンスを説明する図である。
【図２１】ＡＰソフトの構成を説明する図である。
【図２２】転送開始メッセージの一例である。
【図２３】連携開始メッセージの一例である。
【図２４】連携終了メッセージの一例である。
【図２５】第２実施形態のＡＰ管理装置の主な機能を説明する図である。
【図２６】第２実施形態のクラスタ管理装置の主な機能を説明する図である。
【図２７】ＡＰソフト反映シーケンスを説明する図である。
【図２８】第３実施形態の情報処理システムの概略的な構成を示す図である。
【図２９】第３実施形態のＡＰ実行装置の主な機能を説明する図である。
【図３０】第３実施形態のクラスタ管理装置の主な機能を説明する図である。
【図３１】クラスタ管理装置が管理するデータリストの一例である。
【図３２】第３実施形態におけるＡＰソフトの記述例である。
【図３３】ＤＢ接続情報の一例である。
【図３４】第３実施形態のＡＰプロセスにより実現される主な機能を説明する図である。
【図３５】ＤＢ接続確認シーケンスを説明する図である。
【図３６】第３実施形態のＡＰソフト実行シーケンスを説明する図である。
【図３７】第３実施形態の転送開始メッセージの一例である。
【発明を実施するための形態】
【００１４】
以下、実施形態につき図面を参照しつつ説明する。以下の説明において、同一のまたは類似する構成に同一の符号を付して重複した説明を省略することがある。また「アプリケーションソフトウェア」のことを「ＡＰ」と表記することがある。また「データベースのことを」のことを「ＤＢ」と表記することがある。また以下の説明において、同種の構成を区別する必要がある場合、構成を総称する符号の後に括弧書きで識別子（数字、アルファベット等）を表記することがある。
【００１５】
［第１実施形態］
図１に第１実施形態として説明する情報処理システム１の概略的な構成を示している。同図に示すように、情報処理システム１は、クライアント装置２、ＡＰ管理装置３、クラスタ管理装置４、及び複数の拠点８（１）〜（Ｎ）の夫々に存在する一つ以上のＡＰ実行装置１０を含む。これらの装置は、いずれも情報処理装置（コンピュータ）を用いて構成され、通信ネットワーク５を介して互いに通信可能に接続されている。
【００１６】
通信ネットワーク５は、イーサネット（登録商標）やＴＣＰ／ＩＰ等の所定の通信プロトコルに従った通信を実現する通信基盤（Network Infrastructure）であり、例えば、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）、インターネット、専用線
、公衆通信網等である。
【００１７】
クライアント装置２は、ソフトウェア開発技術者やドメインエキスパート等のユーザに、ＡＰ実行装置１０で実行されるアプリケーションソフトウェア（以下、「ＡＰソフト」と称する。）の編集及び生成環境（以下、「ソフトウェア開発環境」と称する。）を提供する。尚、本実施形態では、一例として、クライアント装置２は、ビジュアルプログラミングツール（以下、「ＶＰツール」と略記する。）を用いたソフトウェア開発環境を提供するものとするが、ソフトウェア開発環境の態様は必ずしも限定されない。
【００１８】
ＶＰツールを用いたソフトウェア開発においては、各種の処理が表現されるノードに、
用途や環境、その他の状況に対応した情報をプロパティ値として設定し、ノード間を線で繋ぐことにより一連の処理をフローとして記述する。ノードは、一般的な手続き型プログラミング言語における関数またはメソッドに相当する。ユーザは、ＶＰツールを用いることで、意図した処理を行うソフトウェアを直感的に開発することができる。ＶＰツールの一例としてＮｏｄｅ−ＲＥＤがある。Ｎｏｄｅ−ＲＥＤで開発した一連のフローは、ＪａｖａＳｃｒｉｐｔ（登録商標）をベースとしたＪＳＯＮ(JavaScript Object Notation)形式のコードで管理される。また他のＶＰツールの例として、Ａｐａｃｈｅ  Ｎｉｆｉ等がある。
【００１９】
図１において、ＡＰ管理装置３は、クライアント装置２により生成されたＡＰソフトの管理（記憶）を行う。例えば、ＡＰソフトがＮｏｄｅ−ＲＥＤにより生成されたものである場合、ＡＰ管理装置３は、ＡＰソフトのＪＳＯＮ形式のコードを管理する。ＡＰソフトは、コンテナ（ＡＰソフトの実行モジュール、実行環境に関する情報、展開方法や操作方法に関する情報等をパッケージ化したもの）としてＡＰ管理装置３に管理されるものであってもよい。コンテナの一例としてＤｏｃｋｅｒ（登録商標）によるものがある。ＡＰ管理装置３は、ＡＰソフトのバージョン管理を行う仕組み（ＧｉｔＨｕｂ（登録商標）、ＧｉｔＬａｂ（登録商標）等）を備えていてもよい。
【００２０】
拠点８（１）〜（Ｎ）は、例えば、クラウド、センサデータの収集等が行われる現場（工場、各種作業現場、物流倉庫、オフィス、各種設備（エレベータ、自動改札機、各種ゲート、鉄道設備、道路設備、センサ利用の環境計測設備、移動体（自動車、列車、航空機、ドローン、農業機器等）、農場、データセンタ等である。
【００２１】
クラスタ管理装置４は、ＡＰ実行装置１０における処理の実行制御や監視、複数のＡＰ実行装置１０を利用したクラスタサービス（負荷分散、フェールオーバ等）の提供（管理、監視、制御）を行う。本明細書において、クラスタとは、連携してＡＰソフトの処理を実行することができるＡＰ実行装置１０の集合を指す。またクラスタ管理装置４は、一つ以上のクラスタを管理し、例えば、クラスタへのＡＰ実行装置１０の登録（参加）や登録解除に関する処理を行う。またクラスタ管理装置４は、ＡＰ実行装置１０への情報（ＡＰソフト、後述するＡＰ実行装置情報等）の配信やＡＰ実行装置１０間での情報（クラスタに参加中のＡＰ実行装置１０の情報（参加中のＡＰ実行装置１０の一覧や後述するＡＰ実行装置情報等））の共有を行う。クラスタ管理装置４は、同一拠点８内のＡＰ実行装置１０間だけでなく、拠点８を超えたＡＰ実行装置１０間でのクラスタサービスを実現する。
【００２２】
各拠点８（１）〜（Ｎ）には一つ以上のＡＰ実行装置１０が存在する。各拠点８（１）〜（Ｎ）に存在するＡＰ実行装置１０は、同じクラスタに属している同一又は異なる拠点８の他のＡＰ実行装置１０と連携してＡＰソフトを実行することができる。
【００２３】
図２は、クライアント装置２により生成されたＡＰソフトがＡＰ実行装置１０に提供（デプロイ）され、各ＡＰ実行装置１０がＡＰソフトを実行するまでの概略的な流れを示す図である。
【００２４】
同図に示すように、クライアント装置２により生成されたＡＰソフト７は、ＡＰ管理装置３に登録されるとともに、クラスタ管理装置４に提供（送信）される（Ｓ２１）。例示するＡＰソフト７は、順次実行される５つの処理ブロック（「処理Ａ」、「処理Ｂ」、「転送処理」、「処理Ｃ」、及び「処理Ｄ」）を有する。各処理ブロックは、例えば、ＶＰツールにおける１つの処理ブロック、また一般的な手続き型プログラミング言語における関数またはメソッド、に相当する。処理ブロックは、ＡＰ実行装置１０に既に存在する他のソフトウェア（例えば、ＡＰＩ（Application Program Interface）として提供される
ソフトウェア）を呼び出して利用するものであってもよい。「処理Ａ」及び「処理Ｂ」は
、拠点８（１）で実行されることが予定された処理ブロックであり、「処理Ｃ」及び「処理Ｄ」は、拠点８（２）で実行されることが予定された処理ブロックである。
【００２５】
続いて、クラスタ管理装置４は、共通の（同じ）構成を有するＡＰソフト７を、同じクラスタに属している複数のＡＰ実行装置１０にデプロイする（Ｓ２２）。本例では、クラスタ管理装置４が、拠点８（１）のＡＰ実行装置１０（１）と拠点８（２）のＡＰ実行装置１０（２）を共通のクラスタに属するＡＰ実行装置１０として管理し、拠点８（１）のＡＰ実行装置１０（１）と拠点８（２）のＡＰ実行装置１０（２）に共通のＡＰソフト７をデプロイする。
【００２６】
ＡＰ実行装置１０にデプロイされたＡＰソフトの処理は、例えば、クラスタ管理装置４が、ＡＰ実行装置１０（１）の一つにＡＰソフト７の実行開始命令を送信することにより開始される。本例では、拠点８（１）のＡＰ実行装置１０（１）にクラスタ管理装置４から実行開始命令が送信され、ＡＰ実行装置１０（１）がＡＰソフトの実行を開始（「処理Ａ」から実行開始）するものとする。
【００２７】
「処理Ａ」が終了すると、ＡＰ実行装置１０（１）は、続いて「処理Ｂ」を実行し、続いて「転送処理」を実行する。「転送処理」は、他のＡＰ実行装置１０に処理を連携させる（引継ぐ）処理である。本例では、拠点８（２）のＡＰ実行装置１０（２）に処理が連携され、「処理Ｂ」の処理結果が、ＡＰ実行装置１０（２）の「転送処理」に引継がれ、ＡＰ実行装置１０（２）の「転送処理」は、後続する「処理Ｃ」から処理を開始する。
【００２８】
図３にＡＰソフト７の具体例を示す。例示するＡＰソフト７は、エッジコンピューティングによる、機械学習モデル（以下、「学習モデル」と称する。）を利用した予兆診断の機能を実現するソフトウェアである。
【００２９】
同図に示すように、クラウドである拠点８（１）のＡＰ実行装置１０（１）は、エッジである拠点８（２）のＡＰ実行装置１０（２）が予兆診断に際して利用する一つ以上の学習モデル３０を管理（記憶）する。
【００３０】
まずＡＰ実行装置１０（１）が、エッジである拠点８（２）のＡＰ実行装置１０（２）に提供する学習モデルを取得し（Ｓ３１）、取得した学習モデルを拠点８（２）のＡＰ実行装置１０に転送する（Ｓ３２）。Ｓ３２の処理は、前述した「転送処理」に相当する。
【００３１】
拠点８（２）のＡＰ実行装置１０（２）は、学習モデルを受信して記憶する（Ｓ３３）。続いてＡＰ実行装置１０（２）はセンサデータを取得し（Ｓ３４）、取得したセンサデータを、記憶している学習モデルに適用して予兆診断を行い（Ｓ３５）、予兆診断の結果に応じた処理（アラートの出力等）を行う（Ｓ３６）。
【００３２】
一方、ＡＰ実行装置１０（２）は、取得したセンサデータを学習データとした機械学習することにより学習モデルを更新し（Ｓ３７）、更新済の学習モデルを拠点８（１）のＡＰ実行装置１０（１）に転送する（Ｓ３８）。Ｓ３３及びＳ３８は、前述した「転送処理」に相当する。
【００３３】
クラウドのＡＰ実行装置１０（１）は、学習モデルを受信し（Ｓ３９）、管理（記憶）している学習モデル３０を受信した学習モデルの内容に更新する（Ｓ４０）。Ｓ３９の処理は前述した「転送処理」に相当する。
【００３４】
以上のように、連携して処理を実行する複数のＡＰ実行装置１０の夫々には、共通の（同じ）構成を有するＡＰソフト７が提供（デプロイ）される。従って、ＡＰ実行装置１０
毎に異なるＡＰソフト７を構築する必要がなく、ＡＰソフト７は、例えば、クラウドと拠点８間の処理に精通している特定の開発者が構築すればよい。そのため、各拠点８のドメインエキスパートが個別にＡＰソフト７を構築する必要がなく、複数の拠点８間で連携して処理を実行するソフトウェアを情報処理システム１全体として効率よく開発することができる。
【００３５】
また複数のＡＰ実行装置１０のいずれにも共通の（同じ）ＡＰソフト７が提供（デプロイ）される。そのため、ＡＰソフト７の管理（保守）負担や運用負担が少なくて済む。またＡＰ実行装置１０間の通信は、原則として転送処理でのみ発生するので情報処理システム１全体として通信負荷を軽減することができ、また特定の処理ブロック（転送処理）に集中して監視すればよいのでセキュリティの向上を図ることができる。
【００３６】
図４に、以上に説明したクライアント装置２、ＡＰ管理装置３、クラスタ管理装置４、及びＡＰ実行装置１０の実現に用いる情報処理装置１００のハードウェアの一例を示す。同図に示すように、例示する情報処理装置１００は、プロセッサ１１、主記憶装置１２、補助記憶装置１３、入力装置１４、出力装置１５、及び通信装置１６を備える。
【００３７】
クライアント装置２、ＡＰ管理装置３、クラスタ管理装置４、及びＡＰ実行装置１０は、例えば、クラウドシステム（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）等の他の機能をさらに備えていてもよい。クライアント装置２、ＡＰ管理装置３、クラスタ管理装置４、及びＡＰ実行装置１０は、各種の情報（データ）を、例えば、データベースのテーブルやファイルとして記憶する。
【００４２】
図５にクライアント装置２が備える主な機能を示している。同図に示すように、クライアント装置２は、記憶部２０５、ＡＰソフト編集部２１０、ＡＰソフト転送部２２０、属性情報取得提示部２３０、及び処理要求送信部２４０の各機能を備える。尚、クライアント装置２は、ソフトウェア開発技術者やドメインエキスパート、クラスタの管理者等のユーザによって操作される。
【００４３】
上記機能のうち、記憶部２０５は、ＡＰソフト７及び属性情報２５２を記憶する。
【００４４】
ＡＰソフト編集部２１０は、ＶＰツールを用いたＡＰソフト７の開発環境をユーザに提供し、ＡＰソフト７の生成を行う。
【００４５】
ＡＰソフト転送部２２０は、ＡＰソフト編集部２１０により生成されたＡＰソフト７をＡＰ管理装置３及びクラスタ管理装置４に転送する。
【００４６】
属性情報取得提示部２３０は、後述する属性情報の取得要求をクラスタ管理装置４に送信し、クラスタ管理装置４から送られてくる属性情報を受信してユーザに提示する。属性情報については後述する。
【００４７】
処理要求送信部２４０は、クラスタ管理装置４に、後述するＡＰプロセス８００の生成指示やＡＰソフト７の実行開始指示等の処理要求をクラスタ管理装置４に送信する。
【００４８】
図６にＡＰ管理装置３が備える主な機能を示している。同図に示すように、ＡＰ管理装置３は、記憶部３０５、ＡＰソフト受信部３１０、及びＡＰソフト管理部５２０を備える。
【００４９】
ＡＰソフト受信部３１０は、クライアント装置２から通信ネットワーク５を介して送られてくるＡＰソフト７を受信する。ＡＰソフト受信部３１０が受信したＡＰソフトは記憶部３０５が記憶する。ＡＰソフト管理部５２０は、ＡＰソフト７のバージョン管理を行う。
【００５０】
図７にクラスタ管理装置４が備える主な機能を示している。同図に示すように、クラスタ管理装置４は、記憶部４０５、処理要求受付部４１０、及びクラスタ管理部４２０を備える。
【００５１】
記憶部４０５は、ＡＰ実行装置情報４５１、クラスタ管理情報４５２、及びＡＰソフト７を記憶する。ＡＰ実行装置情報４５１は、ＡＰ実行装置１０に関する各種の情報を含む。クラスタ管理情報４５２は、クラスタの構成やクラスタの稼動状況に関する情報を含む。クラスタ管理情報４５２の内容は、クラスタ管理部４２０及びプロセス間情報共有部４２３が管理する。
【００５２】
処理要求受付部４１０は、クライアント装置２から処理の実行要求（属性情報の提供要求、ＡＰソフト７の実行開始要求、ＡＰソフト７やＡＰ実行装置情報４５１の設定（登録／変更／削除）要求等）を受付ける。このようにクラスタ管理装置４は、ユーザからの要求を受付けるユーザインタフェース（ユーザとの接点）としても機能する。
【００５３】
クラスタ管理部４２０は、ＡＰ実行装置情報管理部４２１、属性情報管理部４２２、及びプロセス間情報共有部４２３を含む。
【００５４】
このうちＡＰ実行装置情報管理部４２１は、クラスタを構成するＡＰ実行装置１０に関する情報のうち、ＡＰ実行装置１０において生成されるプロセス（ＡＰソフト７を実行することにより生成されるプロセス。以下、「ＡＰプロセス」と称する。）に関する情報を管理する。上記情報は、例えば、ＡＰプロセスが動作するＡＰ実行装置１０のネットワークアドレス（ＩＰアドレス等）やＡＰプロセスと通信するためのポート番号等である。
【００５５】
属性情報管理部４２２は、ＡＰプロセスが前述した「転送処理」を行う際に転送先のＡＰ実行装置１０を特定するために必要な情報（以下、「属性情報」と称する。）を管理する。属性情報の詳細については後述する。
【００５６】
プロセス間情報共有部４２３は、ＡＰ実行装置１０において生成される各ＡＰプロセスの間での情報共有に関する処理を行う。プロセス間情報共有部４２３は、クラスタを構成するＡＰ実行装置１０の間や各ＡＰプロセスの間で共有すべき情報（ＡＰソフト７、後述するＡＰ実行装置情報等）を管理（記憶）し、上記情報について、通信ネットワーク５を介してＡＰ実行装置１０及びＡＰプロセス間での高速（リアルタイム）な共有（配信、通知）を実現する。またプロセス間情報共有部４２３は、ＡＰプロセスから送られてくるクラスタへの参加登録要求を受信してクラスタ管理情報４５２を更新（上記ＡＰプロセスが所定のクラスタに属する内容に更新）する。またプロセス間情報共有部４２３は、ＡＰ実行装置１０の後述するＡＰプロセス８００から送られてくる生存通知（ハートビート）を監視することで、ＡＰプロセス８００が正常に機能しているか否かをリアルタイムに把握する。
【００５７】
プロセス間情報共有部４２３は、例えば、エッジ側の各拠点８（１）〜（Ｎ）に存在する情報処理装置を通信可能に接続して構成される分散処理システムにより実現してもよい。そのようにすることで、クラスタ管理装置４のような特定の情報処理装置への負荷の集中を防ぐとともに、各拠点８（１）〜（Ｎ）における処理の高速化を図ることができる。上記分散処理システムは、例えば、Ａｐａｃｈｅソフトウェア財団（Apache Software Foundation）が提供するＺｏｏＫｅｅｐｅｒを用いて実現することができる。
【００５８】
図８にＡＰ実行装置１０が備える主な機能を示している。同図に示すように、ＡＰ実行装置１０は、記憶部１０５、センサデータ取得部１１０、及びプロセス実行管理部１２０を備える。
【００５９】
センサデータ取得部１１０は、当該ＡＰ実行装置１０が存在する拠点８に設けられているセンサ装置等から送られてくるセンサデータを受信する。センサデータ取得部１１０が受信したセンサデータは、記憶部１０５がセンサデータ１５２として記憶する。尚、以下では、このようにＡＰ実行装置１０（ＡＰプロセス８００）が処理対象とするデータがセンサデータである場合を例として説明するが、ＡＰ実行装置１０（ＡＰプロセス８００）が処理対象とするデータの種類は必ずしも限定されず、ＡＰ実行装置１０（ＡＰプロセス８００）が処理対象とするデータはセンサデータ以外のデータであってもよい。
【００６０】
プロセス実行管理部１２０は、ＡＰプロセス８００（Ｄｏｃｋｅｒ（登録商標）コンテナのプロセス等）の管理（ＡＰプロセスの生成や消滅、ＡＰプロセスの状態監視等）を行う。
【００６１】
図９は、ＡＰ実行装置１０が生成するＡＰプロセス８００により実現される主な機能を概念的に示したものである。同図に示すように、ＡＰプロセス８００は、ＡＰソフト受信部８１１、プロセス実行制御部８１２、及び生存通知送信部８１３を備える。これらの機能の一部は、ＡＰ実行装置１０が備えるオペレーティングシステムやプロセス実行管理部１２０によって実現されるものであってもよい。
【００６２】
ＡＰソフト受信部８１１は、クラスタ管理装置４のプロセス間情報共有部４２３からＡＰソフト７を受信する。記憶部１０５は、ＡＰソフト受信部８１１が受信したＡＰソフト７を記憶する。これによりＡＰ実行装置１０（ＡＰプロセス８００）にＡＰソフト７がデプロイされる。
【００６３】
プロセス実行制御部８１２は、ＡＰソフト７の実行環境を提供する。例えば、ＡＰソフト７がＮｏｄｅ−ＲＥＤにより生成されたものである場合、プロセス実行制御部８１２は、ＡＰソフト７を実行するためのＮｏｄｅ−ＲＥＤの実行環境を提供する。またプロセス実行制御部８１２は、ＡＰソフト７の実行制御を行う。
【００６４】
プロセス実行制御部８１２は、ＡＰソフト処理実行部８１２１及びメッセージ転送部８１２２を有する。このうちＡＰソフト処理実行部８１２１は、ＡＰソフト７のフロー制御（処理ブロックの順次実行制御）を行う。メッセージ転送部８１２２は、前述した「転送処理」に際し、ＡＰプロセス８００間での処理の連携（引継ぎ）に必要な情報（以下、「メッセージ」と称する。）を他のＡＰプロセス８００との間で送信又は受信する。
【００６５】
生存通知送信部８１３は、プロセス間情報共有部４２３と生存通知（ハートビート）を随時（例えば定期的に）送受信する。
【００６６】
＜処理説明＞
続いて、情報処理システム１において行われる各種の処理について順に説明する。
【００６７】
図１０は、クライアント装置２からＡＰ管理装置３及びクラスタ管理装置４にＡＰソフト７が登録（記憶）される際に行われる処理（以下、ＡＰソフト登録シーケンスＳ１０００と称する。）を説明するシーケンス図である。
【００６８】
まずクライアント装置２は、ＡＰ管理装置３にＡＰソフト７とＡＰソフト７の登録要求を送信する（Ｓ１０１１）。ＡＰ管理装置３は、クライアント装置２から上記登録要求を受信すると、上記登録要求とともに受信したＡＰソフト７を管理対象として登録（記憶）する（Ｓ１０１２）。
【００６９】
またクライアント装置２は、クラスタ管理装置４にＡＰソフト７を送信する。クラスタ管理装置４の処理要求受付部４１０は、クライアント装置２から送られてきた上記ＡＰソフト７を受信する（Ｓ１０１３）。
【００７０】
クラスタ管理装置４の処理要求受付部４１０は、受信したＡＰソフト７を自身のプロセス間情報共有部４２３に送信する（Ｓ１０１４）。プロセス間情報共有部４２３は、ＡＰソフト７を受信して管理対象として登録（記憶）する（Ｓ１０１５）。
【００７１】
尚、別の処理順序として、処理要求受付部４１０が、ＡＰソフト７の受信後に、プロセ
ス間情報共有部４２３とともにＡＰ管理装置３にＡＰソフト７を送信し、ＡＰ管理装置３がＡＰソフト７を登録するようにしてもよい。この処理順序の場合、クライアント装置２がＡＰソフト登録要求を送信する回数を１回に抑えることができる。
【００７２】
図１１は、クラスタ管理装置４が管理するクラスタに新たなＡＰ実行装置１０を追加する手順を説明するフローチャートである。
【００７３】
まずＡＰ実行装置１０の管理者等が、ＡＰ実行装置１０を通信ネットワーク５に接続する（Ｓ１１１１）。
【００７４】
続いて、クラスタ管理装置４の管理者等が、新たに通信ネットワーク５に接続された上記のＡＰ実行装置１０の情報をＡＰ実行装置情報４５１として登録（記憶）する（Ｓ１１１２）。尚、新たに登録されたＡＰ実行装置情報４５１は、プロセス間情報共有部４２３にも通知（共有）され、当該ＡＰ実行装置１０が属するクラスタの各ＡＰ実行装置１０に共有される。
【００７５】
図１２は、ＡＰ実行装置情報４５１の一例である。例示するＡＰ実行装置情報４５１は、ＪＳＯＮ形式のデータで記述されている。ＡＰ実行装置情報４５１は、通信関連情報、前述した属性情報、及び認証情報を含む。
【００７６】
このうち通信関連情報は、同じクラスタに属するＡＰ実行装置１０（ＡＰプロセス８００）間でＡＰソフトの処理を連携して行う際、各ＡＰ実行装置１０（ＡＰプロセス８００）間で通信を行うために必要な情報（例えば、ＡＰ実行装置１０のＩＰアドレス、ＡＰプロセス８００のポート番号等）である。同図では「０００２」行目に記述されている情報が通信関連情報に相当する。
【００７７】
また属性情報は、ＡＰプロセスが前述した「転送処理」を行う際に転送先のＡＰ実行装置１０を特定するために必要な情報であり、例えば、ＡＰ実行装置１０が設置されている拠点８やＡＰ実行装置１０を管理する組織を特定する情報、ＡＰ実行装置１０の名称、ＡＰ実行装置１０の構成（プロセッサやメモリの情報）を示す情報等である。尚、ＡＰ実行装置１０が仮想マシンを提供する場合、属性情報には仮想マシンに関する情報が含まれる。同図では「０００３」〜「００１９」行に記述されている情報が属性情報に相当する。
【００７８】
また認証情報は、ＡＰ実行装置１０のＡＰプロセス８００やＡＰプロセス８００により実現される機能にアクセス（通信、利用等）する際に必要となる情報（ユーザＩＤ、パスワード）等である。同図では「００２０」〜「００２１」行に記述されている情報が認証情報に相当する。
【００７９】
図１３は、図１１のＳ１１１２において、クラスタ管理装置４がクライアント装置２からＡＰ実行装置情報を受付けた際に行う処理（以下、「ＡＰ実行装置情報受付シーケンスＳ１３００」と称する。）を説明するシーケンス図である。
【００８０】
まず処理要求受付部４１０が、クライアント装置２からＡＰ実行装置情報を受信し（Ｓ１３１１）、受信したＡＰ実行装置情報をクラスタ管理部４２０に送信し、クラスタ管理部４２０（ＡＰ実行装置情報管理部４２１、プロセス間情報共有部４２３）がＡＰ実行装置情報を受信する（Ｓ１３１２）。
【００８１】
クラスタ管理部４２０のＡＰ実行装置情報管理部４２１は、受信したＡＰ実行装置情報をＡＰ実行装置情報４５１として記憶する（Ｓ１３１３）。またクラスタ管理部４２０のプロセス間情報共有部４２３は、受信したＡＰ実行装置情報４５１を管理対象として記憶
する（Ｓ１３１４）。
【００８２】
尚、別の処理順序として、ＡＰ実行装置情報が登録（Ｓ１３１３）された後に、ＡＰ実行装置情報管理部４２１がＡＰ実行装置情報をプロセス間情報共有部４２３に送信し（Ｓ１３１２）、プロセス間情報共有部４２３がＡＰ実行装置情報４５１を記憶（Ｓ１３１４）するようにしてもよい。
【００８３】
図１４は、クラスタ管理装置４が、クライアント装置２から属性情報の変更要求を受付けた際に行う処理（以下、「属性情報変更シーケンスＳ１４００」と称する。）を説明するシーケンス図である。
【００８４】
まず処理要求受付部４１０が、クライアント装置２から属性情報の変更情報を受信し（Ｓ１４１１）、受信した上記変更情報をクラスタ管理部４２０に送信し、クラスタ管理部４２０（ＡＰ実行装置情報管理部４２１、プロセス間情報共有部４２３）が上記変更情報を受信する（Ｓ１４１２）。尚、上記変更情報の受付けに際し、処理要求受付部４１０が、上記変更情報の内容を検査（変更情報に不正文字が含まれていないか、変更情報に含まれているＡＰ実行装置１０の識別子に重複はないか等を検査）し、属性情報が不正な内容でクラスタ管理装置４に記憶されないようにしてもよい。このように処理要求受付部４１０が変更情報の内容を検査することでトラブルの発生を未然に防ぐことができる。
【００８５】
続いて、ＡＰ実行装置情報管理部４２１が、受信した上記変更情報をＡＰ実行装置情報４５１に反映する（Ｓ１４１３）。またプロセス間情報共有部４２３が、送られてきた上記変更情報を、自身が記憶しているＡＰ実行装置情報に反映する（Ｓ１４１４）。尚、ＡＰ実行装置情報４５１の内容と、プロセス間情報共有部４２３が記憶しているＡＰ実行装置情報の内容は同期している必要があるため、Ｓ１４１３にて上記変更情報がＡＰ実行装置情報４５１に反映されたことが確認された後に、プロセス間情報共有部４２３が記憶しているＡＰ実行装置情報の内容に反映する（Ｓ１４１４）ことが好ましい。
【００８６】
図１５は、属性情報の変更情報の一例である。例示する変更情報はＪＳＯＮ形式のデータで記述されている。例示する変更情報は、通信関連情報（「０００２」行目）及び属性情報（「０００３」〜「００１９」行）を含むが、認証情報は含まない。尚、変更情報が通信関連情報を含むのは、当該変更情報の反映の対象となるＡＰ実行装置情報を特定する必要があるためである。
【００８７】
図１６は、クラスタ管理装置４がクライアント装置２から属性情報の取得要求を受付けた際に行う処理（以下、「属性情報提供シーケンスＳ１６００」と称する。）を説明するシーケンス図である。尚、ユーザは、例えば、ＡＰソフトの編集に際して当該処理により提供される属性情報を参照する。
【００８８】
まず処理要求受付部４１０が、クライアント装置２から属性情報の取得要求を受付ける（Ｓ１６１１）。上記取得要求は、特定のＡＰ実行装置１０の属性情報を指定するものでもよいし、クラスタ管理装置４が管理（記憶）している複数の属性情報を指定するものでもよい。
【００８９】
処理要求受付部４１０は、上記取得要求を受信すると、クラスタ管理部４２０の属性情報管理部４２２に、上記取得要求で指定された属性情報の提供要求を送信する（Ｓ１６１２）。
【００９０】
属性情報管理部４２２は、上記提供要求を受信すると、当該提供要求で指定された属性情報を処理要求受付部４１０に送信する（Ｓ１６１３）。
【００９１】
処理要求受付部４１０は、属性情報管理部４２２から属性情報を受信すると、受信した属性情報をクライアント装置２に送信する（Ｓ１６１４）。
【００９２】
図１７は、クラスタ管理装置４がクライアント装置２からＡＰプロセス８００の生成指示を受信した際に行う処理（以下、「ＡＰソフト実行準備シーケンスＳ１７００」と称する。）を説明するシーケンス図である。ＡＰソフト実行準備シーケンスＳ１７００は、ＡＰ実行装置１０がＡＰソフト７を実行するための準備処理である。
【００９３】
まずクライアント装置２からクラスタ管理装置４の処理要求受付部４１０にＡＰプロセス８００の生成指示が送信される（Ｓ１７１１）。
【００９４】
処理要求受付部４１０は、上記生成指示を受信すると、ＡＰプロセスの生成指示を、当該生成指示の対象になっているＡＰプロセス８００を連携して実行させる予定の複数のＡＰ実行装置１０（同じクラスタに属するＡＰ実行装置１０。本例では３つのＡＰ実行装置１０（１）〜（３）が同じクラスタに属しているものとする。）に送信する（Ｓ１７１２）。
【００９５】
ＡＰ実行装置１０のプロセス実行管理部１２０は、上記生成指示を受信すると（Ｓ１７１３）、ＡＰプロセス８００を生成する（Ｓ１７１３，Ｓ１７１４）。
【００９６】
起動したＡＰプロセス８００は、プロセス間情報共有部４２３にＡＰソフト７の取得要求を送信する（Ｓ１７１５）。プロセス間情報共有部４２３は、上記取得要求を受信すると、要求されたＡＰソフト７を要求元のＡＰプロセス８００に送信し、ＡＰプロセス８００が上記ＡＰソフト７を受信して記憶する（Ｓ１７１６）。これによりＡＰ実行装置１０（ＡＰプロセス８００）にＡＰソフト７がデプロイされる。
【００９７】
続いて、ＡＰプロセス８００は、プロセス間情報共有部４２３にクラスタ（ＡＰソフト７を連携して処理するＡＰ実行装置１０が所属するクラスタ）への参加登録要求を送信する（Ｓ１７１７）。プロセス間情報共有部４２３は、上記参加登録要求を受信すると、クラスタ管理情報４５２を更新して当該ＡＰプロセス８００を上記クラスタに登録する（Ｓ１７１８）。
【００９８】
続いて、ＡＰプロセス８００は、上記所定のクラスタの情報（当該クラスタに属しているＡＰプロセス８００の情報（一覧情報等）、当該クラスタに属しているＡＰプロセス８００が存在するＡＰ実行装置１０の属性情報等）の提供要求をプロセス間情報共有部４２３に送信する（Ｓ１７１９）。
【００９９】
プロセス間情報共有部４２３は、上記提供要求を受信すると、該当の情報を記憶部４０５から取得し、取得した情報をＡＰプロセス８００に送信する（Ｓ１７２０）。
【０１００】
図１８は、クラスタに新たなＡＰプロセス８００が参加する際に行われる、当該クラスタに所属するＡＰ実行装置１０（本例では３つのＡＰ実行装置１０（１）〜（３）が属しているものとする。）間での情報共有に関する処理（以下、「クラスタ内情報共有シーケンス（ＡＰプロセス起動時）Ｓ１８００」と称する。）を説明するシーケンス図である。
【０１０１】
あるクラスタ属するＡＰ実行装置１０（１）において新たにＡＰプロセス８００（１）が起動すると、前述したようにＡＰプロセス８００（１）が当該クラスタへの参加登録要求を送信する（Ｓ１８１１）。
【０１０２】
プロセス間情報共有部４２３は、上記参加登録要求を受信すると、クラスタ管理情報４５２を更新して当該ＡＰプロセス８００（１）を上記クラスタに登録する（Ｓ１８１２）。
【０１０３】
続いて、プロセス間情報共有部４２３は、当該クラスタに属する他のＡＰ実行装置１０（２），（３）に、ＡＰプロセス８００（１）が存在するＡＰ実行装置１０（１）のＡＰ実行装置情報（通信情報、属性情報、及び認証情報を含む）を送信し、他のＡＰ実行装置１０（２），（３）は、上記ＡＰ実行装置情報を受信して記憶する（Ｓ１８１３）。
【０１０４】
図１９は、ＡＰプロセス８００が消滅した際に行われる、当該クラスタに所属するＡＰ実行装置１０（本例では３つのＡＰ実行装置１０（１）〜（３）が属しているものとする。）間での情報共有に関する処理（以下、「クラスタ内情報共有シーケンス（ＡＰプロセス消滅時）Ｓ１９００」と称する。）を説明するシーケンス図である。尚、ＡＰプロセス８００の消滅理由として、例えば、ＡＰ実行装置１０や通信ネットワーク５の障害、ユーザの意図的な消滅操作の実施等がある。
【０１０５】
プロセス間情報共有部４２３は、ＡＰプロセス８００から送られてくる生存通知をリアルタイムに監視している（Ｓ１９１１）。プロセス間情報共有部４２３は、あるＡＰプロセス８００（１）の生存通知が途絶したことを検知すると（Ｓ１９１２）、クラスタ管理情報４５２を更新して当該ＡＰプロセス８００（１）の現在当該ＡＰプロセス８００（１）が属しているクラスタへの参加を無効化する（Ｓ１９１３）。
【０１０６】
続いて、プロセス間情報共有部４２３は、ＡＰプロセス８００（１）が上記クラスタから離脱したことを当該クラスタに属する他のＡＰプロセス８００（２），（３）に通知する（Ｓ１９１４）。他のＡＰプロセス８００（２），（３）は、上記通知を受信すると、夫々が記憶している、当該クラスタへの参加状況に関する情報を更新し、ＡＰプロセス８００（１）の当該クラスタへの参加を無効化する（Ｓ１９１５）。
【０１０７】
尚、以上に説明した、ＡＰソフト実行準備シーケンスＳ１７００、クラスタ内情報共有シーケンス（ＡＰプロセス起動時）Ｓ１８００、及びクラスタ内情報共有シーケンス（ＡＰプロセス消滅時）Ｓ１９００により、同じクラスタに属するＡＰ実行装置１０（ＡＰプロセス８００）間で、クラスタに関する情報の同期が常時維持される。
【０１０８】
図２０は、ＡＰ実行装置１０（ＡＰプロセス８００）がＡＰソフト７を実行する際の処理の流れ（以下、「ＡＰソフト実行シーケンスＳ２０００」と称する。）を説明するシーケンス図である。尚、本例では、同じクラスタに属する、拠点８（１）のＡＰ実行装置１０（１）のＡＰプロセス８００（１）と拠点８（２）のＡＰ実行装置１０（２）のＡＰプロセス８００（２）とが連携してＡＰソフト７を実行するものとする。またＡＰソフト７は、一例として図２１に例示する構成であるものとする。
【０１０９】
図２０に示すように、まずＡＰプロセス８００（１）のＡＰソフト処理実行部８１２１（１）が、クラスタ管理装置４からの実行開始指示を受けてＡＰソフト７の実行を開始（「処理Ａ」からの順次実行を開始）する（Ｓ２０１１，Ｓ２０１２）。
【０１１０】
「処理Ｂ」の実行を経て処理が「転送処理ａ」に到達すると（Ｓ２０１３）、ＡＰソフト処理実行部８１２１（１）は、ＡＰプロセス８００（１）のメッセージ転送部８１２２（１）に、ＡＰプロセス８００（２）に処理を連携（引継ぐ）するために必要な情報を含むメッセージ（以下、「転送開始メッセージ」と称する。）を送信する（Ｓ２０１４）。
【０１１１】
図２２に転送開始メッセージの一例を示す。同図に示すように、転送開始メッセージは
、宛先となるＡＰ実行装置１０を指定する情報（「０００２」行目の記述。以下、「宛先装置指定情報」と称する。）、「転送処理ａ」の識別子（「０００３」行目の記述。以下、「処理ブロックＩＤ」と称する。）、当該メッセージの種別（種類）を示す情報（「０００４」行目の記述。以下、「転送種別」と称する。）、及び、連携先（引継ぎ先）の処理ブロックに渡す情報（「０００５」〜「０００７」行目の記述。以下、「連携情報」と称する。）を含む。
【０１１２】
本例では、宛先装置指定情報として「edge_siteA」が記述されている。これは拠点８（２）に存在するＡＰ実行装置１０（２）を宛先として指定すべきことを指定している。また転送種別として「start」が指定されている。これは当該メッセージが転送開始メッセ
ージであることを示している。連携情報は、例えば、ＡＰソフト７が図３に例示するものである場合は学習モデル３０（パラメータ）である。
【０１１３】
図２０に戻り、メッセージ転送部８１２２（１）は、転送開始メッセージを受信すると、当該転送開始メッセージの宛先装置指定情報とＡＰ実行装置情報４５１及びクラスタ管理情報４５２とを対照し、宛先装置指定情報で指定される属性を有するＡＰ実行装置１０（２）を連携先のＡＰ実行装置１０（２）として選出する（Ｓ２０１５）。尚、上記選出に際し、メッセージ転送部８１２２（１）は、選出したＡＰ実行装置１０（２）（ＡＰプロセス８００（２））の所在を特定する情報（例えば、ＡＰ実行装置１０のネットワークアドレスと当該ＡＰ実行装置１０（２）のＡＰプロセス８００（２）のポート番号）を取得する。
【０１１４】
続いて、メッセージ転送部８１２２（１）は、選出したＡＰ実行装置１０（２）（ＡＰプロセス８００（２））に、連携開始を通知するメッセージ（以下、「連携開始メッセージ」と称する。）を送信する（Ｓ２０１６）。
【０１１５】
図２３に連携開始メッセージの一例を示す。同図に示すように、連携開始メッセージは、送信元のＡＰ実行装置１０（１）を示す情報（「０００２」行目の記述。以下、「送信元情報」と称する。）、「転送処理ａ」の識別子（「０００３」行目の記述。以下、「処理ブロックＩＤ」と称する。）、当該メッセージの種別（種類）を示す情報（「０００４」行目の記述。以下、「転送種別」と称する。）、連携先（引継ぎ先）の処理ブロックに渡す情報（「０００５」〜「０００７」行目の記述。以下、「連携情報」と称する。）を含む。尚、送信元情報は、連携先であるＡＰプロセス８００（２）が再びＡＰプロセス８００（１）に処理を引継ぐ際に必要になる情報である。
【０１１６】
図２０に戻り、連携先のＡＰ実行装置１０（２）のＡＰプロセス８００（２）のメッセージ転送部８１２２（２）は、連携開始メッセージを受信すると、受信した連携開始メッセージを当該ＡＰプロセス８００（２）のＡＰソフト処理実行部８１２１（２）に通知（送信）する（Ｓ２０１７）。
【０１１７】
ＡＰソフト処理実行部８１２１（２）は、連携開始メッセージを受信すると、連携開始メッセージの「連携情報」の内容を入力として「処理Ｃ」から処理を開始する（Ｓ２０１８，Ｓ２０１９）。尚、ＡＰソフト処理実行部８１２１（２）は、連携開始メッセージの「処理ブロックＩＤ」に「転送処理ａ」の識別子が設定されていることから、「転送処理ａ」に後続する「処理Ｃ」から処理を開始する。
【０１１８】
「処理Ｄ」の実行を経て処理が「転送処理ｂ」に到達すると（Ｓ２０２０）、続いてＡＰソフト処理実行部８１２１（２）は、ＡＰプロセス８００（２）のメッセージ転送部８１２２（２）に、ＡＰプロセス８００（１）への処理の連携（引継ぐ）を指示するメッセージ（以下、「転送終了メッセージ」と称する。）を通知（送信）する（Ｓ２０２１）。
【０１１９】
メッセージ転送部８１２２（２）は、転送終了メッセージを受信すると、ＡＰ実行装置１０（１）のＡＰプロセス８００（１）に、連携終了を通知するメッセージ（以下、「連携終了メッセージ」と称する。）を送信する（Ｓ２０２２）。
【０１２０】
図２４に連携終了メッセージの一例を示す。同図に示すように、連携終了メッセージは、連携開始メッセージの送信元のＡＰ実行装置１０（１）を示す情報（「０００２」行目の記述。以下、「送信元情報」と称する。）、「転送処理ａ」の識別子（「０００３」行目の記述。以下、「処理ブロックＩＤ」と称する。）、当該メッセージの種別（種類）を示す情報（「０００４」行目の記述。以下、「転送種別」と称する。）、連携先（引継ぎ先）の処理ブロックに渡す情報（「０００５」〜「０００７」行目の記述。以下、「連携情報」と称する。）を含む。尚、連携終了メッセージにおける送信元情報は、連携開始メッセージの送信元情報と同じである。また連携情報には、例えば、ＡＰソフト７が図３に例示したものである場合、センサデータにより更新された学習モデル３０（パラメータ）が設定される。
【０１２１】
図２０に戻り、ＡＰプロセス８００（１）のメッセージ転送部８１２２（１）は、連携終了メッセージを受信すると、受信した連携終了メッセージの内容をＡＰソフト処理実行部８１２１（１）に通知（送信）する（Ｓ２０２３）。ＡＰソフト処理実行部８１２１（１）は、上記通知を受けると、連携終了メッセージの内容に基づき次に実行すべき処理ブロックを特定（本例では「処理Ｅ」と特定）し、連携終了メッセージの「連携情報」を入力として、特定した処理ブロック（「処理Ｅ」）から処理を開始する。尚、ＡＰソフト処理実行部８１２１（１）は、連携終了メッセージの「処理ブロックＩＤ」に「転送処理ａ」の識別子が設定され、「転送種別」に連携終了を意味する「ｅｎｄ」が設定されていることから、「転送処理ｂ」に後続する「処理Ｅ」から処理を開始する。
【０１２２】
以上のように、「転送処理」を介して、各拠点８のＡＰ実行装置１０（ＡＰプロセス８００）間で処理が連携され、各拠点８のＡＰ実行装置１０にデプロイされている同じ（共通の）ＡＰソフト７により処理が実行される。
【０１２３】
以上詳細に説明したように、本実施形態の情報処理システム１においては、連携して処理を実行する複数のＡＰ実行装置１０の夫々には、共通の（同じ）構成を有するＡＰソフト７が提供（デプロイ）されるので、ＡＰ実行装置１０毎に異なるＡＰソフト７を構築する必要がなく、複数の拠点８間で連携して処理を実行するソフトウェアを情報処理システム１全体として効率よく開発することができる。またユーザが設定可能なＡＰ実行装置情報４５１においてＡＰソフト７を実行させるＡＰ実行装置１０を指定することができるため、ユーザはＡＰソフト７の実行環境を容易かつ柔軟に選択することができる。
【０１２４】
また複数のＡＰ実行装置１０のいずれにも共通の（同じ）ＡＰソフト７が提供（デプロイ）されるので、ＡＰソフト７の管理（保守）負担や運用負担が少なくて済む。また情報処理システム１全体として通信負荷を軽減することができ、セキュリティの向上を図ることもできる。
【０１２５】
［第２実施形態］
図１０に示したように、第１実施形態では、クライアント装置２からクラスタ管理装置４にＡＰソフトが直接提供されていたが、バージョン管理を含むＡＰソフトの管理をＡＰ管理装置３で行い、クラスタ管理装置４がＡＰ管理装置３からＡＰソフトの提供を受けるようにしてもよい。以下、第１実施形態と相違する部分を中心として説明する。
【０１２６】
図２５は、第２実施形態のＡＰ管理装置３の主な機能を説明する図である。同図に示す
ように、第２実施形態のＡＰ管理装置３は、第１実施形態のＡＰ管理装置３が備える機能に加えて、ＡＰソフト提供部５３０をさらに備える。ＡＰソフト提供部５３０は、クラスタ管理装置４からの要求に応じて、指定されたバージョンのＡＰソフト７をクライアント装置４に送信する。
【０１２７】
図２６は、第２実施形態のクラスタ管理装置４の主な機能を説明する図である。同図に示すように、第２実施形態のクラスタ管理装置４は、第１実施形態のクラスタ管理装置４が備える機能に加えて、ＡＰソフト取得部４３０をさらに備える。ＡＰソフト取得部４３０は、ＡＰ管理装置３からの所定バージョンのＡＰソフト７の取得と、取得したＡＰソフト７のプロセス間情報共有部４２３への反映を行う。
【０１２８】
図２７は、第２実施形態のクラスタ管理装置４の処理要求受付部４１０がクライアント装置２からＡＰソフトの反映要求を受信した際に行う処理の流れ（以下、「ＡＰソフト反映シーケンスＳ７００」と称する。）を説明するシーケンス図である。
【０１２９】
第１実施形態と同様、クライアント装置２からＡＰ管理装置３にＡＰソフト７が送信され（Ｓ２７１１）、ＡＰ管理装置３は送られてきたＡＰソフト７を受信して管理対象として登録（記憶）する（Ｓ２７１２）。
【０１３０】
クラスタ管理装置４の処理要求受付部４１０は、クライアント装置２からＡＰソフトの反映要求を受信すると（Ｓ２７１３）、受信した反映要求をＡＰソフト取得部４３０に通知する（Ｓ２７１４）。
【０１３１】
ＡＰソフト取得部４３０は、上記反映要求を受信するとＡＰソフトの取得要求をＡＰ管理装置３に送信して（Ｓ２７１５）ＡＰ管理装置３からＡＰソフト７を取得し（Ｓ２７１６）、取得したＡＰソフト７をプロセス間情報共有部４２３に送信する（Ｓ２７１７）。
【０１３２】
プロセス間情報共有部４２３は、ＡＰソフト７を受信し、受信したＡＰソフト７を管理対象として登録（記憶）する（Ｓ１０１８）。
【０１３３】
このようにバージョン管理を含むＡＰソフトの管理をＡＰ管理装置３が行う構成である場合には、クラスタ管理装置４がＡＰ管理装置３からＡＰソフトの提供を受けるようにしてもよい。
【０１３４】
［第３実施形態］
図２１及び図２２に示したように、第１実施形態の情報処理システム１では、ＡＰソフト７の開発者がＡＰソフト７の「転送処理ａ」において宛先装置指定情報を設定することで、当該処理ブロック以降の処理ブロックが、宛先装置指定情報で指定された拠点８で実行される。対して、以下に説明する第３実施形態の情報処理システム１では、ＡＰソフト７の開発者が、ＡＰソフト７の転送処理ブロックにおいて、当該処理以降の処理に必要なデータ（データのメタ情報）を設定することで、自動的にＡＰソフト７の転送処理ブロック以降の処理ブロックを実行可能な（当該データを利用可能な）拠点８のＡＰ実行装置１０が選択され、選択されたＡＰ実行装置１０で転送処理ブロック以降の処理ブロックの処理が実行される。この第３実施形態の情報処理システム１によれば、ＡＰソフト７の開発者は、処理ブロックの実行に際して必要なデータがいずれの拠点８に存在するかを把握している必要がなく、当該データを必要とする処理に当該データを指定する情報（以下、「データ指定情報」と称する。）を付加するだけで、当該処理ブロックが当該データを利用可能な拠点８のＡＰ実行装置１０で実行されるようにすることができる。第３実施形態の情報処理システム１の基本的な構成は、第１実施形態の情報処理システム１と同様である。以下、第１実施形態と相違する部分を中心として説明する。
【０１３５】
図２８は、第３実施形態の情報処理システム１の概略的な構成を示す図である。同図に示すように、第３実施形態の情報処理システム１は、第１実施形態の情報処理システム１が備える構成に加えて、各拠点８の夫々に、各拠点８において収集されたデータを管理するデータベース２８０１を備える。データベース２８０１は、例えば、ＤＢＭＳにより実現されるリレーショナルデータベースである。各拠点８のデータベース２８０１（１）〜（Ｎ）は、各拠点８に存在するＡＰ実行装置１０（１）〜（Ｎ）と通信可能に接続されている。
【０１３６】
図２９に、第３実施形態のＡＰ実行装置１０が備える主な機能を示している。第３実施形態のＡＰ実行装置１０は、第１実施形態のＡＰ実行装置１０が備える機能に加えて、データ情報管理部１３０を備える。また第３実施形態のＡＰ実行装置１０の記憶部１０５は、第１実施形態の記憶部１０５が記憶するデータに加えて、データリスト１５３とＤＢ接続情報１５４を記憶する。各拠点８のデータリスト１５３は、夫々の拠点８のデータベース２８０１に含まれているデータを指定する情報（前述したデータ指定情報）のリストを含む。ＤＢ接続情報１５４は、データベース２８０１のデータにアクセスする際に必要となる情報（以下、「ＤＢ接続情報」と称する。）を含む。ＤＢ接続情報の例として、データベース２８０１のネットワークアドレス、データベース２８０１の種類を特定する情報、データベース２８０１にアクセスするための認証情報等がある。
【０１３７】
データ情報管理部１３０は、データリスト１５３やＤＢ接続情報１５４を編集（登録、変更、削除等）するためのユーザインタフェースを提供する。各拠点８のユーザ（データ管理者等）は、データ情報管理部１３０を介してデータリスト１５３やＤＢ接続情報１５４を編集することができる。ＤＢ接続情報１５４は、情報の外部流出防止等の観点から各ＡＰ実行装置１０において個別に管理され、クラスタ管理装置４には原則として送信されない。データリスト１５３は、通信ネットワーク５を介してクラスタ管理装置４にも送信される。
【０１３８】
図３０に、第３実施形態のクラスタ管理装置４が備える主な機能を示している。第３実施形態のクラスタ管理装置４の記憶部４０５は、第１実施形態のクラスタ管理装置４の記憶部４０５が記憶するデータに加えて、データリスト４５３を記憶する。データリスト４５３は、各拠点８のＡＰ実行装置１０から送られてくるデータリスト１５３を統合したデータであり、プロセス間情報共有部４２３によって管理される。尚、後述するように、データリスト４５３に登録されている各データにＡＰ実行装置１０が実際にアクセス可能か否かはＡＰソフト７のＡＰ実行装置１０へのデプロイ時等に確認（検証）される。ＡＰソフト７の開発者は、クライアント装置２の処理要求受付部４１０を介してデータリスト４５３を参照することができる。これによりＡＰソフト７の開発者は、ＡＰソフト７の開発に際し、データリスト４５３を確認しつつ、ＡＰソフト７にデータ指定情報を記述することができる。
【０１３９】
図３１にデータリスト４５３の一例を示す。例示するデータリスト４５３は、ＡＰ実行装置ＩＤ４５３１、データ名４５３２、及び説明４５３３の各項目（カラム）を有する一つ以上のレコードを含む。ＡＰ実行装置ＩＤ４５３１には、ＡＰ実行装置１０の識別子（以下、「ＡＰ実行装置ＩＤ」と称する。）が設定される。データ名４５３２には、データ指定情報（本例ではデータ名）が設定される。説明４５３３には、当該データを説明する情報（ＡＰソフト７の開発者等の人が参照する情報）が設定される。尚、データリスト４５３に、さらに各データのフォーマットやサンプルデータが設定される項目（カラム）を設けてもよい。また例示するデータリスト４５３は、リレーショナルデータベース形式のフォーマットで記述したものであるが、データリスト４５３のフォーマットは必ずしも限定されない。
【０１４０】
図３２に第３実施形態におけるＡＰソフト７の記述例を示す。例示するＡＰソフト７はＰｙｔｈｏｎ言語の構文に従って記述されている。尚、ＡＰソフト７を記述する言語は必ずしも限定されない。第１実施形態の図２１に示したＡＰソフト７の一つの処理ブロックは、図３２に例示したＡＰソフト７に記述されている一つの関数に対応している。図３２に例示したＡＰソフト７には５つの関数が記述されている。このうちmain関数（３２２３〜３２２６行）が最初に実行され、他の４つの関数はmain関数から順次呼び出されて実行される。同図に示すように、本例では、anomaly_factor関数（３２０６〜３２１２行）にのみ、「＠」記号を用いて記述されるデコレータが付加されている。このデコレータは、Anomaly_factor関数が、「pic.line-a.jp」というデータ名（データ指定情報）に対応す
るデータが管理されている拠点８において実行されることを示している。尚、３２０６行目には、同時に複数のデータ名（データ指定情報）を記述することができる。
【０１４１】
３２０９行目の「db_connector.get(data[0])」は、データベース２８０１のデータに
アクセスする関数である。当該関数が実行されることでデータベース２８０１からデータの値が取得される。３２１１行目では、３２０９行目で取得した値を用いた処理が行われる。尚、上記関数は、データベース２８０１の種類（以下、「ＤＢ種別」と称する。）に依存しない汎用的な記述形式で記述される。これによりＡＰソフト７の開発者は、ＤＢ種別を意識することなく効率よくＡＰソフト７を開発することができる。
【０１４２】
図３３にＤＢ接続情報１５４の一例を示す。ＤＢ接続情報１５４には、ＡＰ実行装置１０がデータベース２８０１にアクセスするために必要な情報（ＤＢ接続情報）が管理される。例示するＤＢ接続情報１５４は、データ名１５４１、ＤＢ種別１５４２、接続先１５４３、認証情報１５４４等の各項目を含む一つ以上のレコードで構成される。
【０１４３】
データ名１５４１には、前述したデータ指定情報が設定される。ＤＢ種別１５４２には、当該データが格納されているデータベース２８０１のＤＢ種別を示す情報が設定される。接続先１５４３には、データベース２８０１にアクセスする際に用いられる接続情報（ＩＰアドレス、ポート番号等）が設定される。認証情報１５４４には、データベース２８０１にアクセスする際に必要となる認証情報（ユーザＩＤ、パスワード等）が設定される。
【０１４４】
尚、ＡＰソフト７の開発者は、ＡＰソフト７の開発に際し、ＡＰソフト７に図３２の３２０９行目に記述されているデータ取得関数（db_connector.get）のような汎用的な関数を記述するだけでよく、ＡＰ実行装置１０からデータベース２８０１へのアクセスは、ＡＰ実行装置１０が、拠点８側で管理されているＤＢ接続情報１５４を参照することにより行われる。このため、ＡＰソフト７の開発者は、ＡＰソフト７を効率よく開発することができる。尚、ＡＰソフト７にデータベース２８０１に管理されているデータの編集（登録、更新、削除等）を行う処理を記述する場合についても、例示したデータ取得関数と同様に汎用的な関数を記述できるようにすることで、ＡＰソフト７の開発効率の向上を図ることができる。
【０１４５】
図３４に、第３実施形態のＡＰプロセス８００により実現される主な機能を示している。同図に示すように、第３実施形態のＡＰプロセス８００は、第１実施形態のＡＰプロセス８００が備える機能に加えて、ＤＢ接続確認実行部８１２３をさらに備える。ＤＢ接続確認実行部８１２３は、ＡＰソフト７がＡＰ実行装置１０にデプロイされた際等の適宜なタイミングで、自身を含むＡＰプロセス８００が存在する拠点８に、ＡＰソフト７に記述されているデータ指定情報に対応するデータが利用可能か否かを確認する処理（以下、ＤＢ接続確認シーケンスＳ３５００と称する。）を行う。
【０１４６】
図３５は、ＤＢ接続確認シーケンスＳ３５００の一例を説明するシーケンス図である。同図に示すように、図１７のＡＰソフト実行準備シーケンスＳ１７００にてＡＰプロセス８００にＡＰソフト７がデプロイ投入されると（Ｓ１７１６）、ＤＢ接続確認実行部８１２３は、記憶部１０５に格納されているＡＰソフト７を参照し（Ｓ３５０１〜Ｓ３５０２）、ＡＰソフト７に記述されているデータ指定情報を読み取る（Ｓ３５０３）。またＤＢ接続確認実行部８１２３は、読み取ったデータ指定情報に対応するデータのＤＢ接続情報１５４を記憶部１０５から取得する（Ｓ３５０４〜Ｓ３５０５）。
【０１４７】
続いて、ＤＢ接続確認実行部８１２３は、取得したＤＢ接続情報１５４を用いてデータベース２８０１にアクセスし、データベース２８０１にアクセス可能か否かを確認（例えば、ｐｉｎｇコマンドがデータベース２８０１に到達するか否かを確認）する（Ｓ３５０６〜３５０７）。
【０１４８】
続いて、ＤＢ接続確認実行部８１２３は、アクセス先のデータベース２８０１のデータ指定情報に対応するデータを利用可能か否かを確認（実際に当該データの値を取得できるか否か）する（Ｓ３５０８〜３５０９）。データ指定情報に対応するデータが利用可能である場合、ＤＢ接続確認実行部８１２３は、自身を含むＡＰプロセス８００において当該データが利用可能であること（即ち、当該データを利用する処理（例えば、図３２の３２０６〜３２１２行に記述されている処理）を実行可能であること。）を、プロセス間情報共有部４２３に通知する（Ｓ３５１０）。一方、データ指定情報に対応するデータが利用可能でない場合、ＤＢ接続確認実行部８１２３は、自身を含むＡＰプロセス８００において当該データを利用できないこと（即ち、当該データを利用する処理を実行できないこと。）をプロセス間情報共有部４２３に通知する（Ｓ３５１０）。
【０１４９】
プロセス間情報共有部４２３は、以上の通知を受信することによりデータリスト４５３を更新し、更新後のデータリスト４５３の内容を各ＡＰ実行装置１０やクラスタ管理装置４に提供する。これにより、ＡＰプロセス８００のメッセージ転送部８１２２は、自身を含むＡＰプロセス８００以外の他のＡＰプロセス８００（ＡＰ実行装置１０）のうち、いずれの拠点８のＡＰプロセス８００（ＡＰ実行装置１０）がいずれのデータを利用可能であるかを知ることができる。
【０１５０】
ところで、以上では、ＡＰソフト７がデプロイされた（Ｓ１７１６）ことを契機としてＡＰ実行装置１０がデータベース２８０１のデータを実際に利用可能か否かを確認する場合を例示したが、上記確認は、例えば、データベース２８０１の内容が更新（データの登録、編集、削除）された場合やデータベース２８０１が存在しなくなった場合に行ってもよい。
【０１５１】
図３６は、第３実施形態のＡＰソフト実行シーケンスＳ２０００を説明するシーケンス図である。第３実施形態のＡＰソフト実行シーケンスＳ２０００は、第１実施形態のＡＰソフト実行シーケンスＳ２０００と、Ｓ２０１４で送信される転送開始メッセージの内容及びＳ２０１５の処理の内容が異なる。
【０１５２】
同図に示すように、ＡＰソフト７に記述されている処理の実行が開始され、拠点８のデータを用いる処理（例えば、図３２の３２０６〜３２１２行目の処理）に到達すると（Ｓ３６０１）、第１実施形態と同様、ＡＰソフト処理実行部８１２１（１）からメッセージ転送部８１２２（１）に転送開始メッセージが送信される（Ｓ３６０２）。但し、第１実施形態と異なり、送信される転送開始メッセージには、転送先の拠点３の属性情報ではなく、以降の処理ブロックの実行に際して利用されるデータを指定するデータ指定情報（データ名等）が記述されている。
【０１５３】
続いて、メッセージ転送部８１２２（１）は、データ指定情報に対応するデータを利用可能なＡＰ実行装置１０を選出する（Ｓ３６０３）。この処理は、前述の通り、メッセージ転送部８１２２（１）が、プロセス間情報共有部４２３から提供されるデータリスト４５３を参照することにより行われる。その後のＡＰソフト実行シーケンスＳ２０００の各処理は第１実施形態と同様である。
【０１５４】
図３７は、図２６のＳ３６０２で送信される転送開始メッセージの一例である。第１実施形態と異なり、例示する転送開始メッセージには、拠点８の属性情報を示す情報ではなく、以降の処理ブロックで利用されるデータのデータ指定情報（データ名）が記述されている（３７０２〜３７０４行）。尚、複数のデータを用いる処理にも対応できるように、転送開始メッセージには、リスト形式で複数のデータ指定情報を記述することも可能である。
【０１５５】
以上に説明したように、第３実施形態の情報処理システム１によれば、連携に際してＡＰソフト７に記述されているデータ指定情報（データ名等）を利用可能なＡＰ実行装置１０が自動的に選択され、選択されたＡＰ実行装置１０に連携開始メッセージが送信される。そのため、開発者はいずれの拠点８のＡＰ実行装置１０が連携可能か否かを把握しておく必要がなく、効率よくＡＰソフト７を開発することができ、とくに多数の拠点８が広範囲に存在する場合には多大な効果が期待される。またＡＰソフト７の開発者は、各拠点８におけるＤＢ接続情報を管理する必要がないため拠点８毎の環境を常時把握している必要がなく、ＡＰソフト７の開発や保守のためのＡＰソフト７の開発者の情報の管理負荷が軽減される。
【０１５６】
以上、本発明の一実施形態について説明したが、本発明は上記の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記の実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また上記実施形態の構成の一部について、他の構成の追加や削除、置換をすることが可能である。
【０１５７】
また上記の各構成、機能部、処理部、処理手段等は、それらの一部または全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、ＳＳＤ（Solid State Drive）等の記録装置、ＩＣ
カード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０１５８】
また上記の各図において、制御線や情報線は説明上必要と考えられるものを示しており、必ずしも実装上の全ての制御線や情報線を示しているとは限らない。例えば、実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【０１５９】
また以上に説明した各情報処理装置の各種機能部、各種処理部、各種データベースの配置形態は一例に過ぎない。各種機能部、各種処理部、各種データベースの配置形態は、これらの装置が備えるハードウェアやソフトウェアの性能、処理効率、通信効率等の観点から最適な配置形態に変更し得る。
【０１６０】
また前述した各種のデータを格納するデータベースの構成（スキーマ（Schema）等）は、リソースの効率的な利用、処理効率向上、アクセス効率向上、検索効率向上等の観点から柔軟に変更し得る。
【符号の説明】
【０１６１】
１  情報処理システム、２  クライアント装置、２０５  記憶部、２１０  ＡＰソフト編集部、２２０  ＡＰソフト転送部、２３０  属性情報取得提示部、２４０  処理要求送信部、２５２  属性情報、３  ＡＰ管理装置、３０５  記憶部、３１０  ＡＰソフト受信部、３２０  ＡＰソフト管理部、４  クラスタ管理装置、４０５  記憶部、４１０  処理要求受付部、４２０  クラスタ管理部、４２１  ＡＰ実行装置情報管理部、４２２  属性情報管理部、４２３  プロセス間情報共有部、４５１  ＡＰ実行装置情報、４５２  クラスタ管理情報、５  通信ネットワーク、７  ＡＰソフト、８  拠点、１０  ＡＰ実行装置、１０５  記憶部、１１０  センサデータ取得部、１２０  プロセス実行管理部、１５２  センサデータ、８００  プロセス、８１１  ＡＰソフト受信部、８１２  プロセス実行制御部、８１２１  ＡＰソフト処理実行部、８１２２  メッセージ転送部、８１３  生存通知送信部、１５３  データリスト、１５４  ＤＢ接続情報、８１２３  ＤＢ接続確認実行部
【図１】
2020198068.tif 000003
【図２】
2020198068.tif 000004
【図３】
2020198068.tif 000005
【図４】
2020198068.tif 000006
【図５】
2020198068.tif 000007
【図６】
2020198068.tif 000008
【図７】
2020198068.tif 000009
【図８】
2020198068.tif 000010
【図９】
2020198068.tif 000011
【図１０】
2020198068.tif 000012
【図１１】
2020198068.tif 000013
【図１２】
2020198068.tif 000014
【図１３】
2020198068.tif 000015
【図１４】
2020198068.tif 000016
【図１５】
2020198068.tif 000017
【図１６】
2020198068.tif 000018
【図１７】
2020198068.tif 000019
【図１８】
2020198068.tif 000020
【図１９】
2020198068.tif 000021
【図２０】
2020198068.tif 000022
【図２１】
2020198068.tif 000023
【図２２】
2020198068.tif 000024
【図２３】
2020198068.tif 000025
【図２４】
2020198068.tif 000026
【図２５】
2020198068.tif 000027
【図２６】
2020198068.tif 000028
【図２７】
2020198068.tif 000029
【図２８】
2020198068.tif 000030
【図２９】
2020198068.tif 000031
【図３０】
2020198068.tif 000032
【図３１】
2020198068.tif 000033
【図３２】
2020198068.tif 000034
【図３３】
2020198068.tif 000035
【図３４】
2020198068.tif 000036
【図３５】
2020198068.tif 000037
【図３６】
2020198068.tif 000038
【図３７】
2020198068.tif 000039