(57)【要約】  委譲状態管理部（１０４）は、委譲候補のプロセスがゲートウェイ装置（１１１）に委譲されてゲートウェイ装置（１１１）でプロセスが実行された場合に正しい実行結果が得られるか否かを検証する検証テストをゲートウェイ装置（１１１）に行わせる。また、委譲状態管理部（１０４）は、ゲートウェイ装置（１１１）から検証テストの結果を取得し、取得した検証テストの結果に基づき、プロセスの実行をゲートウェイ装置（１１１）に委譲するか否かを決定する。
2017134785.tif 000002
【特許請求の範囲】
【請求項１】
委譲候補のプロセスが子局装置に委譲されて前記子局装置で前記プロセスが実行された場合に正しい実行結果が得られるか否かを検証する検証テストを前記子局装置に行わせる検証テスト管理部と、
前記子局装置から前記検証テストの結果を取得し、取得した前記検証テストの結果に基づき、前記プロセスの実行を前記子局装置に委譲するか否かを決定する委譲決定部とを有する親局装置。
【請求項２】
前記検証テスト管理部は、
テストデータと、前記テストデータを用いた前記プロセスの実行により得られる正しい実行結果が記述された正解データとを前記子局装置に送信し、
前記検証テストとして、前記子局装置に前記テストデータを用いた前記プロセスの実行を行わせるとともに、前記プロセスの実行結果が前記正解データと一致するか否かを前記子局装置に判定させ、
前記委譲決定部は、
前記検証テストの結果として、前記子局装置における判定結果を前記子局装置から受信し、
前記子局装置から受信した前記判定結果が、前記プロセスの実行結果が前記正解データに一致することを示している場合に、前記プロセスの実行を前記子局装置に委譲することを決定する請求項１に記載の親局装置。
【請求項３】
前記検証テスト管理部は、
前記プロセスの実行結果が前記正解データと一致するか否かを前記子局装置に判定させるための委譲判定プロセスを前記子局装置に送信し、前記子局装置に前記委譲判定プロセスを実行させて前記プロセスの実行結果が前記正解データと一致するか否かを前記子局装置に判定させる請求項２に記載の親局装置。
【請求項４】
前記検証テスト管理部は、
前記プロセスが前記子局装置に委譲された場合に前記子局装置が前記プロセスの実行に用いるデータのデータ量を前記子局装置に推定させ、推定されたデータ量になるように前記テストデータのデータ量を調整させ、
前記検証テストとして、前記子局装置に、データ量が調整された後の前記テストデータを用いた前記プロセスの実行を行わせるとともに、前記プロセスの実行結果が前記正解データと一致するか否か及び前記プロセスの実行が規定時間以内に完了したか否かを前記子局装置に判定させ、
前記委譲決定部は、
前記検証テストの結果として、前記子局装置における判定結果を前記子局装置から受信し、
前記子局装置から受信した前記判定結果が、前記プロセスの実行結果が前記正解データに一致すること及び前記プロセスの実行が前記規定時間以内に完了したことを示している場合に、前記プロセスの実行を前記子局装置に委譲することを決定する請求項２に記載の親局装置。
【請求項５】
前記親局装置は、更に、
前記プロセスの実行タイミングに、前記委譲決定部により前記プロセスの実行が前記子局装置に委譲されているか否かを判定し、前記プロセスの実行が前記子局装置に委譲されていれば、前記子局装置で前記プロセスが実行されて得られた実行結果を取得し、前記プロセスの実行が前記子局装置に委譲されていなければ、前記プロセスを実行するジョブ実行部とを有する請求項１に記載の親局装置。
【請求項６】
前記ジョブ実行部は、
前記プロセスの実行タイミングに、前記委譲決定部により前記プロセスの実行が前記子局装置に委譲されているか否かを判定し、
前記プロセスの実行が前記子局装置に委譲されている場合に、前記子局装置から前記プロセスの実行が不能になったことを通知されているか否かを判定し、
前記子局装置から前記プロセスの実行が不能になったことを通知されていなければ、前記子局装置で前記プロセスが実行されて得られた実行結果を取得し、
前記子局装置から前記プロセスの実行が不能になったことを通知されていれば、前記プロセスを実行する請求項５に記載の親局装置。
【請求項７】
前記ジョブ実行部は、
前記子局装置から前記プロセスの実行が不能になったことを通知された以降の前記プロセスの実行タイミングでは、前記プロセスは前記子局装置に委譲されていないと判定する請求項１に記載の親局装置。
【請求項８】
委譲候補のプロセスが親局装置から委譲されて前記プロセスを実行した場合に正しい実行結果が得られるか否かを検証する検証テストを行い、前記検証テストの結果を前記親局装置に送信する検証テスト実行部と、
前記親局装置から前記プロセスの実行が委譲された場合に、前記プロセスを実行し、前記プロセスの実行により得られた実行結果を前記親局装置に送信するプロセス実行部とを有する子局装置。
【請求項９】
前記検証テスト実行部は、
前記親局装置から、テストデータと、前記テストデータを用いた前記プロセスの実行により得られる正しい実行結果が記述された正解データとを受信し、
前記検証テストとして、前記テストデータを用いて前記プロセスを実行するとともに、前記プロセスの実行結果が前記正解データと一致するか否かを判定し、
前記検証テストの結果として、判定結果を前記親局装置に送信する請求項８に記載の子局装置。
【請求項１０】
前記検証テスト実行部は、
前記プロセスの実行結果が前記正解データと一致するか否かを判定するための委譲判定プロセスを前記親局装置から受信し、受信した前記委譲判定プロセスを実行して前記プロセスの実行結果が前記正解データと一致するか否かを判定する請求項９に記載の子局装置。
【請求項１１】
前記検証テスト実行部は、
前記親局装置から前記プロセスを委譲された場合に前記プロセスの実行に用いるデータのデータ量を推定し、推定したデータ量になるように前記テストデータのデータ量を調整し、
前記検証テストとして、データ量を調整した後の前記テストデータを用いて前記プロセスを実行するとともに、前記プロセスの実行結果が前記正解データと一致するか否か及び前記プロセスの実行が規定時間以内に完了したか否かを判定し、
前記検証テストの結果として、判定結果を前記親局装置に送信する請求項９に記載の子局装置。
【請求項１２】
前記検証テスト実行部は、
統計的に計算負荷が高い時間帯に、前記検証テストを行う請求項８に記載の子局装置。
【請求項１３】
前記プロセス実行部は、
前記プロセスの実行が規定時間以内に完了しない場合に、前記プロセスの実行が不能になったことを前記親局装置に通知する請求項８に記載の子局装置。
【請求項１４】
コンピュータである親局装置が、委譲候補のプロセスが子局装置に委譲されて前記子局装置で前記プロセスが実行された場合に正しい実行結果が得られるか否かを検証する検証テストを前記子局装置に行わせ、
前記親局装置が、前記子局装置から前記検証テストの結果を取得し、取得した前記検証テストの結果に基づき、前記プロセスの実行を前記子局装置に委譲するか否かを決定するプロセス委譲管理方法。
【請求項１５】
コンピュータである子局装置が、委譲候補のプロセスが親局装置から委譲されて前記プロセスを実行した場合に正しい実行結果が得られるか否かを検証する検証テストを行い、前記検証テストの結果を前記親局装置に送信し、
前記親局装置から前記プロセスの実行が委譲された場合に、前記子局装置が、前記プロセスを実行し、前記プロセスの実行により得られた実行結果を前記親局装置に送信するプロセス実行方法。
【請求項１６】
コンピュータである親局装置に、
委譲候補のプロセスが子局装置に委譲されて前記子局装置で前記プロセスが実行された場合に正しい実行結果が得られるか否かを検証する検証テストを前記子局装置に行わせる検証テスト管理処理と、
前記子局装置から前記検証テストの結果を取得し、取得した前記検証テストの結果に基づき、前記プロセスの実行を前記子局装置に委譲するか否かを決定する委譲決定処理とを実行させるプロセス委譲管理プログラム。
【請求項１７】
コンピュータである子局装置に、
委譲候補のプロセスが親局装置から委譲されて前記プロセスを実行した場合に正しい実行結果が得られるか否かを検証する検証テストを行い、前記検証テストの結果を前記親局装置に送信する検証テスト実行処理と、
前記親局装置から前記プロセスの実行が委譲された場合に、前記プロセスを実行し、前記プロセスの実行により得られた実行結果を前記親局装置に送信するプロセス実行処理とを実行させるプロセス実行プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセスの実行を委譲する技術に関する。
本明細書では、プロセスとは、複数のコンピュータが階層化された階層構造の最上位階層にあるコンピュータが実行するプログラム（以下、ジョブという）の一部に相当する部分プログラムである。
【背景技術】
【０００２】
特許文献１には、ジョブの一部の実行を最上位階層のコンピュータが下位階層のコンピュータに委譲する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１９８３７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１の技術では、委譲先で正しい実行結果が得られるか否かを考慮せずにプロセスを委譲するため、正しい実行結果が得られない委譲先にプロセスが委譲されてしまうという課題がある。【０００５】
本発明は、このような課題を解決することを主な目的としており、正しい実行結果が得られる委譲先にのみプロセスが委譲される構成を得ることを主な目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る親局装置は、
委譲候補のプロセスが子局装置に委譲されて前記子局装置で前記プロセスが実行された場合に正しい実行結果が得られるか否かを検証する検証テストを前記子局装置に行わせる検証テスト管理部と、
前記子局装置から前記検証テストの結果を取得し、取得した前記検証テストの結果に基づき、前記プロセスの実行を前記子局装置に委譲するか否かを決定する委譲決定部とを有する。
【発明の効果】
【０００７】
本発明では、検証テストを子局装置に行わせ、検証テストの結果に基づき、プロセスの実行を子局装置に委譲するか否かを決定する。このため、本発明によれば、検証テストにより正しい実行結果が得られることが判明した子局装置にのみプロセスを委譲することができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係るサーバ装置とゲートウェイ装置の機能構成例を示す図。
【図２】実施の形態１に係る委譲状態管理表の例を示す図。
【図３】実施の形態１に係るジョブ実行計画の例を示す図。
【図４】実施の形態１に係る階層構造の例を示す図。
【図５】実施の形態１に係るサーバ装置とゲートウェイ装置のハードウェア構成例を示す図。
【図６】実施の形態１に係るサーバ装置における委譲状態管理表更新処理の例を示すフローチャート図。
【図７】実施の形態１に係るサーバ装置におけるジョブ実行処理の例を示すフローチャート図。
【図８】実施の形態１に係るゲートウェイ装置における委譲判定処理の例を示すフローチャート図。
【図９】実施の形態１に係るゲートウェイ装置における検証処理の例を示すフローチャート図。
【図１０】実施の形態１に係る委譲状態管理表の例を示す図。
【図１１】実施の形態１に係るジョブ実行計画の例を示す図。
【図１２】実施の形態１に係る更新後の委譲状態管理表の例を示す図。
【図１３】実施の形態１に係る更新後のジョブ実行計画の例を示す図。
【図１４】実施の形態２に係るサーバ装置とゲートウェイ装置の機能構成例を示す図。
【図１５】実施の形態２に係るサーバ装置におけるジョブ実行処理の例を示すフローチャート図。
【図１６】実施の形態２に係るゲートウェイ装置におけるプロセス実行処理の例を示すフローチャート図。
【発明を実施するための形態】
【０００９】
実施の形態１．
本実施の形態では、親局装置が子局装置にプロセスを委譲する構成を説明する。なお、親局装置とは、複数のコンピュータが階層化された階層構造において、最上位階層にあるコンピュータである。一方、子局装置とは、階層構造に含まれるコンピュータのうち親局装置以外のコンピュータである。
本実施の形態では、親局装置は、委譲候補のプロセスが子局装置に委譲されて子局装置でプロセスが実行された場合に正しい実行結果が得られるか否かを検証する検証テストを子局装置に行わせる。子局装置は、検証テストを行い、検証テストの結果を親局装置に送信する。親局装置は、子局装置から検証テストの結果を取得し、取得した検証テストの結果に基づき、プロセスの実行を子局装置に委譲するか否かを決定する。子局装置は、親局装置からプロセスの実行が委譲された場合に、プロセスを実行し、プロセスの実行により得られた実行結果を親局装置に送信する。また、親局装置は、プロセスの実行タイミングに、プロセスの実行が子局装置に委譲されているか否かを判定し、プロセスの実行が子局装置に委譲されていれば、子局装置でプロセスが実行されて得られた実行結果を取得し、プロセスの実行が子局装置に委譲されていなければ、プロセスを実行する。
以下では、親局装置の例をサーバ装置１０１とし、子局装置の例をゲートウェイ装置１１１として説明を行う。また、以下で説明しているサーバ装置１０１の動作は、プロセス委譲管理方法及びプロセス委譲管理プログラムの例に相当し、ゲートウェイ装置１１１の動作は、プロセス実行方法及びプロセス実行プログラムの例に相当する。
なお、以下では、サーバ装置１０１を単にサーバともいい、ゲートウェイ装置１１１を単にゲートウェイともいう。
【００１０】
＊＊＊構成の説明＊＊＊
図１は、本実施の形態に係るサーバ装置１０１及びゲートウェイ装置１１１の機能構成例を示す。
図５は、本実施の形態に係るサーバ装置１０１及びゲートウェイ装置１１１のハードウェア構成例を示す。
【００１１】
図５に示すように、サーバ装置１０１は、ハードウェアとして、プロセッサ９０１、記憶装置９０２、通信インタフェース９０３を備える。
また、図１に示すように、サーバ装置１０１は、機能構成として、データ送受信部１０２、ジョブ実行部１０３、委譲状態管理部１０４、データ格納領域１０５を備える。
通信インタフェース９０３は、ゲートウェイ装置１１１と通信を行う回路である。データ送受信部１０２は、通信インタフェース９０３により実現される。
記憶部９０２は、データ格納領域１０５を構成する。
また、記憶装置９０２には、ジョブ実行部１０３、委譲状態管理部１０４の機能を実現するプログラムが記憶されている。
そして、プロセッサ９０１がこれらプログラムを実行して、後述するジョブ実行部１０３、委譲状態管理部１０４の動作を行う。
図５では、プロセッサ９０１がジョブ実行部１０３、委譲状態管理部１０４の機能を実現するプログラムを実行している状態を模式的に表している。
【００１２】
図５に示すように、ゲートウェイ装置１１１は、ハードウェアとして、プロセッサ９１１、記憶装置９１２、通信インタフェース９１３を備える。
また、図１に示すように、ゲートウェイ装置１１１は、機能構成として、データ送受信部１１２、プロセス実行部１１３、委譲判定部１１４、データ格納領域１１５を備える。
通信インタフェース９１３は、サーバ装置１０１と通信を行う回路である。データ送受信部１１２は、通信インタフェース９１３により実現される。
記憶部９１２は、データ格納領域１１５を構成する。
また、記憶装置９１２には、プロセス実行部１１３、委譲判定部１１４の機能を実現するプログラムが記憶されている。
そして、プロセッサ９１１がこれらプログラムを実行して、後述するプロセス実行部１１３、委譲判定部１１４の動作を行う。
図５では、プロセッサ９１１がプロセス実行部１１３、委譲判定部１１４の機能を実現するプログラムを実行している状態を模式的に表している。
【００１３】
データ格納領域１０５では、委譲状態管理表１０６、プロセス１０７、委譲判定プロセス１０８、代替プロセス１０９、ジョブ実行計画１１０が格納されている。
データ格納領域１１５では、プロセス１１６、委譲判定プロセス１１７、テストデータ１１８、正解データ１１９、統計情報１２０が格納されている。
【００１４】
委譲状態管理表１０６は、例えば図２に示す情報である。委譲状態管理表１０６は、装置ＩＤ２０１、ジョブＩＤ２０２、親プロセスＩＤ２０３、プロセスＩＤ２０４、委譲判定プロセスＩＤ２０５、委譲状況２０６、代替プロセスＩＤ２０７から構成される。
装置ＩＤ２０１の欄には、サーバ装置１０１、ゲートウェイ装置１１１の識別子が記述される。図２の例では、ゲートウェイ装置１１１が３台存在する。
ジョブＩＤ２０２の欄には、ジョブ実行計画１１０の識別子が記述される。
親プロセスＩＤ２０３の欄には、ジョブ実行計画１１０に含まれるプロセスのうちの最上位のプロセスの識別子が記述される。換言すると、親プロセスＩＤ２０３の欄に記述されるプロセスは、プロセスＩＤ２０４の欄に記述されるプロセスの親プロセスである。
プロセスＩＤ２０４の欄には、ジョブＩＤ２０２の欄に記述されるジョブ実行計画に含まれるプロセスの識別子が記述される。
委譲判定プロセスＩＤ２０５の欄には、委譲判定プロセスの識別子が記述される。委譲判定プロセスについては後述する。
委譲状況２０６の欄には、プロセスＩＤ２０４の欄に記述されるプロセスが、ゲートウェイ装置１１１に委譲されているか否かが記述される。委譲状況２０６の欄には、「Ｙ」、「Ｎ」、「？」の３つのうちのいずれかが記述される。「Ｙ」はプロセスがゲートウェイ装置１１１に委譲されていることを示す。「Ｎ」は、プロセスがゲートウェイ装置１１１に委譲されていないことを示す。「？」は、プロセスの委譲が可能であるか否かの検証テスト中であることを示す。
代替プロセスＩＤ２０７の欄には、代替プロセスの識別子が記述される。代替プロセスについては後述する。
なお、サーバ装置１０１でのみ実行可能なプロセスのＩＤは、図２の「ｐｓ００１」のように、先頭が「ｐｓ」で始まる。また、ゲートウェイ装置１１１へ委譲されたプロセス又はゲートウェイ装置１１１への委譲候補のプロセスのＩＤは、図２の「ｐ００１」のように先頭が「ｐ」で始まる。また、代替プロセスのＩＤは、図２の「ａｐ００１」のように先頭が「ａｐ」で始まる。また、委譲判定プロセスのＩＤは、図２の「ｖｓ００１」又は「ｖ００１」のように、先頭が「ｖｓ」又は「ｖ」で始まる。
【００１５】
プロセス１０７は、委譲候補のプロセスとしてサーバ装置１０１からゲートウェイ装置１１１に送信される。また、委譲判定プロセス１０８、テストデータ及び正解データもサーバ装置１０１からゲートウェイ装置１１１に送信される。
サーバ装置１０１から送信されたプロセス１０７は、ゲートウェイ装置１１１においてプロセス１１６としてデータ格納領域１１５に格納される。また、サーバ装置１０１から送信された委譲判定プロセス１０８、テストデータ及び正解データも、ゲートウェイ装置１１１において委譲判定プロセス１１７、テストデータ１１８及び正解データ１１９としてデータ格納領域１１５に格納される。
委譲判定プロセス１１７（委譲判定プロセス１０８）は、プロセス１１６の実行結果が正解データ１１９と一致するか否かをゲートウェイ装置１１１に判定させるためのプログラムである。
テストデータ１１８はプロセス１１６の実行時に用いられるデータである。正解データ１１９は、テストデータ１１８を用いたプロセス１１６の実行により得られる正しい実行結果が記述されたデータである。
ゲートウェイ装置１１１は、検証テストとして、テストデータを用いてプロセス１１６を実行し、委譲判定プロセス１１７を用いて、プロセス１１６の実行結果が正解データ１１９と一致するか否かを判定する。
代替プロセス１０９は、プロセス１１６（プロセス１０７）をゲートウェイ装置１１１に委譲できない場合に、プロセス１１６（プロセス１０７）の代わりにサーバ装置１０１で実行するプログラムである。サーバ装置１０１がプロセス１０７を実行できる場合は、代替プロセス１０９を用意しなくてもよい。
プロセス１０７、委譲判定プロセス１０８、代替プロセス１０９、プロセス１１６、委譲判定プロセス１１７は、例えばネイティブコードで記述されたものでもよいし、中間言語にコンパイルされたものでもよいし、スクリプト言語のようにインタプリタで実行されるものでもよい。
【００１６】
統計情報１２０には、データ流量、プロセスの実行時間、プロセス実行時のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）使用率及びＩＯ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）使用率等についての統計値が示される。
【００１７】
ジョブ実行計画１１０は、例えば図３に示す情報である。ジョブ実行計画１１０は、委譲状態管理表１０６に記載の情報を用いて、ジョブごとにプロセスの実行順序を木構造の形式で保持する。ジョブ実行計画１１０の根ノードは、サーバ装置１０１で実行されるプロセス３０１である。葉ノードのプロセス３０２、３０３は、ゲートウェイ装置１１１で実行される。つまり、プロセス３０２、３０３、は、ゲートウェイ装置１１１に委譲されたプロセスである。また、葉ノードのプロセス３０４は、代替プロセスである。
根ノード以外のノードでは、ゲートウェイ装置１１１でのプロセス１１６の実行又はサーバ装置１０１での代替プロセス１０９の実行のいずれかが行われる。
図３の階層構造は２階層であるため中間ノードは存在しないが、３階層以上の階層構造では、中間ノードが存在する。中間ノードに位置するゲートウェイ装置１１１は、下位ノードに位置するゲートウェイ装置１１１でのプロセスの実行結果を受信し、受信した実行結果に対してプロセスを実行する。そして、中間ノードに位置するゲートウェイ装置１１１は、プロセスの実行による新たな実行結果を、上位ノードに位置するゲートウェイ装置１１１又はサーバ装置１０１に転送する。
【００１８】
図４は、サーバ装置１０１及び複数のゲートウェイ装置１１１が含まれる階層構造を示す。
ゲートウェイ装置１１１の配下には、データを送信する機能のみを備えたセンシング装置１２１が配置されてもよい。また、ゲートウェイ装置１１１にセンシング装置１２１が内包されるような構成でもよい。また、ゲートウェイ装置１１１の配下に更にゲートウェイ装置１１１が配置されてもよい。ゲートウェイ装置１１１の配下にゲートウェイ装置１１１が配置される場合では、下位のゲートウェイ装置１１１にとっては１階層上の上位のゲートウェイ装置１１１が親局装置に相当する。また、上位のゲートウェイ装置１１１にとっては１階層下の下位のゲートウェイ装置１１１が子局装置に相当する。
なお、サーバ装置１０１の配下にはゲートウェイ装置１１１が複数台あってもかまわない。
【００１９】
＊＊＊動作の説明＊＊＊
次に、サーバ装置１０１のデータ送受信部１０２、ジョブ実行部１０３、委譲状態管理部１０４の動作を説明する。
【００２０】
データ送受信部１０２は、委譲状態管理部１０４からの指示に基づき、プロセス１０７、委譲判定プロセス１０８、テストデータ及び正解データをゲートウェイ装置１１１に送信する。また、データ送受信部１０２は、ゲートウェイ装置１１１から検証テストの結果を受信する。
また、データ送受信部１０２は、ゲートウェイ装置１１１に委譲されたプロセスの実行結果をゲートウェイ装置１１１から受信する。
【００２１】
委譲状態管理部１０４は、委譲候補のプロセスがゲートウェイ装置１１１に委譲されてゲートウェイ装置１１１でプロセスが実行された場合に正しい実行結果が得られるか否かを検証する検証テストをゲートウェイ装置１１１に行わせる。より具体的には、委譲状態管理部１０４は、プロセス１０７、委譲判定プロセス１０８、テストデータ及び正解データをデータ送受信部１０２を介してゲートウェイ装置１１１に送信して、検証テストをゲートウェイ装置１１１に行わせる。
委譲状態管理部１０４は、プロセス１１６がゲートウェイ装置１１１に委譲された場合にゲートウェイ装置１１１がプロセス１１６の実行に用いるデータのデータ量をゲートウェイ装置１１１に推定させる。そして、委譲状態管理部１０４は、検証テストとして、ゲートウェイ装置１１１にデータ量が調整された後のテストデータ１１８を用いたプロセス１１６の実行を行わせるとともに、ゲートウェイ装置１１１に委譲判定プロセス１１７を実行させてプロセス１１６の実行結果が正解データと一致するか否か及びプロセス１１６の実行が規定時間以内に完了したか否かをゲートウェイ装置１１１に判定させる。
更に、委譲状態管理部１０４は、データ送受信部１０２を介して、ゲートウェイ装置１１１から検証テストの結果を取得する。そして、委譲状態管理部１０４は、取得した検証テストの結果に基づき、プロセス１１６の実行をゲートウェイ装置１１１に委譲するか否かを決定する。より具体的には、検証テストの結果として、ゲートウェイ装置１１１における判定結果をゲートウェイ装置１１１から受信し、判定結果が、プロセス１１６の実行結果が正解データに一致すること及びプロセス１１６の実行が規定時間以内に完了したことを示している場合に、委譲状態管理部１０４は、プロセス１１６の実行をゲートウェイ装置１１１に委譲することを決定する。
また、委譲状態管理部１０４は、検証テストの結果に基づき、委譲状態管理表１０６を更新する。
委譲状態管理部１０４は、検証テスト管理部及び委譲決定部の例に相当する。委譲状態管理部１０４により行われる動作は、検証テスト管理処理及び委譲決定処理の例に相当する。
【００２２】
ジョブ実行部１０３は、ジョブ実行計画１１０に従い、ジョブを実行する。ジョブ実行部１０３は、ジョブ実行計画１１０に含まれる各プロセスの実行タイミングにおいて、対象のプロセスの実行が委譲状態管理部１０４によりゲートウェイ装置１１１に委譲されているか否かを判定する。そして、対象のプロセスの実行がゲートウェイ装置１１１に委譲されていれば、ジョブ実行部１０３は、ゲートウェイ装置１１１で当該プロセスが実行されて得られた実行結果を取得する。一方、当該プロセスの実行がゲートウェイ装置１１１に委譲されていなければ、ジョブ実行部１０３は、代替プロセス１０９を実行する。
【００２３】
次に、ゲートウェイ装置１１１のデータ送受信部１１２、プロセス実行部１１３、委譲判定部１１４の動作を説明する。
なお、以下では、ゲートウェイ装置１１１が、サーバ装置１０１からプロセスを委譲される場合を主に説明するが、図４に示すように、ゲートウェイ装置１１１の配下にゲートウェイ装置１１１が配置されていれば、下位のゲートウェイ装置１１１が上位のゲートウェイ装置１１１からプロセスを委譲される場合がある。この場合には、以下の「サーバ装置１０１」との記載を「上位のゲートウェイ装置１１１」と読み替える。また、この場合は、下位のゲートウェイ装置１１１にとって、上位のゲートウェイ装置１１１が親局装置に相当する。
【００２４】
データ送受信部１１２は、センシング装置１２１または下位のゲートウェイ装置１１１からデータを受信し、プロセス１１６の実行結果をサーバ装置１０１に送信する。
また、データ送受信部１１２は、サーバ装置１０１から送信されたプロセス１０７、委譲判定プロセス１０８、テストデータ、正解データを受信する。
また、データ送受信部１１２は、委譲判定部１１４による検証テストの結果をサーバ装置１０１に送信する。
【００２５】
委譲判定部１１４は、サーバ装置１０１から送信された、プロセス１０７、委譲判定プロセス１０８、テストデータ及び正解データをデータ送受信部１１２を介して取得する。また、委譲判定部１１４は、プロセス１０７、委譲判定プロセス１０８、テストデータ及び正解データを、プロセス１１６、委譲判定プロセス１１７、テストデータ１１８及び正解データ１１９としてデータ格納領域１１５に格納する。
また、委譲判定部１１４は、検証テストを行い、検証テストの結果をデータ送受信部１１２を介してサーバ装置１０１に送信する。
委譲判定部１１４は、プロセス１１６を委譲された場合にプロセス１１６の実行に用いるデータのデータ量を推定し、推定したデータ量になるようにテストデータ１１８のデータ量を調整する。そして、委譲判定部１１４は、検証テストとして、データ量を調整した後のテストデータ１１８を用いてプロセスを実行するとともに、委譲判定プロセス１１７を実行してプロセス１１６の実行結果が正解データ１１９と一致するか否か及びプロセス１１６の実行が規定時間以内に完了したか否かを判定する。また、委譲判定部１１４は、統計的に計算負荷が高い時間帯に、検証テストを行う。
委譲判定部１１４は、検証テスト実行部の例に相当する。また、委譲判定部１１４により行われる動作は、検証テスト実行処理の例に相当する。
【００２６】
プロセス実行部１１３は、サーバ装置１０１からプロセス１１６の実行が委譲された場合に、プロセス１１６を実行し、プロセス１１６の実行により得られた実行結果をデータ送受信部１１２を介してサーバ装置１０１に送信する。
また、プロセス実行部１１３は、プロセス１１６を実行した際の実行時間、ＣＰＵ使用率、Ｉ／Ｏ使用率等の情報を統計情報１２０に記録する。
【００２７】
次に、図６に示すフローチャートに基づいて、サーバ装置１０１の委譲状態管理部１０４による委譲状態管理表更新処理について説明する。
【００２８】
ステップＳ１０１において、データ送受信部１０２がプロセス、委譲判定プロセス、テストデータ、正解データを、委譲候補先のゲートウェイ装置１１１に送信する。ここで、委譲状態管理部１０４が委譲状態管理表１０６に装置ＩＤ、ジョブＩＤ、親プロセスＩＤ、プロセスＩＤ、委譲判定プロセスＩＤ、代替プロセスＩＤの組を追加する。また、委譲状態管理部１０４は、装置ＩＤおよび委譲判定プロセスＩＤをキーにして委譲状態管理表１０６内の更新すべき行を特定し、委譲状況２０６を「？」に更新する。
【００２９】
ステップＳ１０２において、データ送受信部１０２がゲートウェイ装置１１１から、検証テストの結果である委譲判定結果を受信する。
【００３０】
ステップＳ１０３において、委譲状態管理部１０４がデータ送受信部１０２から委譲判定結果を取得し、委譲判定結果を解釈する。
肯定的な委譲判定結果であれば、処理がステップＳ１０４に進む。一方、否定的な委譲判定結果であれば、処理がステップＳ１０５に進む。
肯定的な委譲判定結果は、ゲートウェイ装置１１１でのプロセスの実行結果が正解データ１１９に一致し、ゲートウェイ装置１１１でのプロセスの実行が規定時間以内に完了している場合の委譲判定結果である。一方、否定的な委譲結果は、ゲートウェイ装置１１１でのプロセスの実行結果が正解データ１１９に一致しない場合及びゲートウェイ装置１１１でのプロセスの実行が規定時間以内に完了しなかった場合の少なくともいずれかにおける、委譲判定結果である。
【００３１】
ステップＳ１０４において、委譲状態管理部１０４は、装置ＩＤおよび委譲判定プロセスＩＤをキーにして委譲状態管理表１０６内の更新すべき行を特定し、委譲状況２０６を「Ｙ」に更新する。
つまり、委譲状態管理部１０４は、当該プロセスの実行をゲートウェイ装置１１１に委譲することを決定する。
【００３２】
ステップＳ１０５において、委譲状態管理部１０４は、装置ＩＤおよび委譲判定プロセスＩＤをキーにして委譲状態管理表１０６内で更新すべき行を特定し、委譲状況２０６を「Ｎ」に更新する。
つまり、委譲状態管理部１０４は、当該プロセスの実行をゲートウェイ装置１１１に委譲しないことを決定する。
【００３３】
ステップＳ１０６において、委譲状態管理部１０４が、プロセスの委譲状況に応じて、ジョブ実行計画１１０を再構築する。
【００３４】
次に、図７に示すフローチャートに基づいて、サーバ装置１０１のジョブ実行部１０３によるジョブ実行処理を説明する。
【００３５】
ステップＳ２０１において、ジョブ実行部１０３がジョブ実行計画１１０を取得する。
【００３６】
ステップＳ２０２において、ジョブ実行部１０３がジョブ実行計画１１０を根ノードから深さ優先探索で辿り、根ノード以外の実行済みとマークされていないノードを探す。
【００３７】
ステップＳ２０３において、実行済みとマークされていないノードが見つかった場合は、処理がＳ２０４に進む。一方、実行済みとマークされていないノードが見つからなかった場合は、処理がＳ２０９に進む。
【００３８】
ステップＳ２０４において、取得されたノードが委譲されたプロセスの場合はステップＳ２０５に進み、取得されたノードが委譲されたプロセスでない場合は、ステップＳ２０６に進む。
【００３９】
ステップＳ２０５において、ジョブ実行部１０３は、ゲートウェイ装置１１１の実行結果を取得する。
本実施の形態では、ゲートウェイ装置１１１に委譲されたプロセスは、サーバ装置１０１からの実行指示なくゲートウェイ装置１１１で自律的に実行されるものとする。例えば、ゲートウェイ装置１１１で周期的にプロセスが実行されてもよいし、データ送受信部１１２がデータを受信する度にプロセスが実行されてもよい。ゲートウェイ装置１１１はプロセスを実行する度に、実行結果をサーバ装置１０１に送信する。サーバ装置１０１では、ゲートウェイ装置１１１から実行結果が送信される度に、データ送受信部１０２が実行結果を受信し、受信した実行結果をデータ格納領域１０５に格納する。ジョブ実行部１０３は、ステップＳ２０５のタイミング、すなわち、委譲されたプロセスの実行タイミングになったら、ゲートウェイ装置１１１での実行結果をデータ格納領域１０５から取得する。
【００４０】
ステップＳ２０６において、ジョブ実行部１０３は代替プロセス１０９を実行する。
【００４１】
ステップＳ２０７において、ジョブ実行部１０３が実行結果を親プロセスに渡す。ステップＳ２０５でゲートウェイ装置１１１での実行結果を取得した場合は、ジョブ実行部１０３は取得した実行結果を親プロセスに渡す。一方、ステップＳ２０６で代替プロセス１０９が実行された場合は、ジョブ実行部１０３は代替プロセス１０９の実行結果を親プロセスに渡す。
【００４２】
ステップＳ２０８において、ジョブ実行部１０３がジョブ実行計画１１０においてステップＳ２０３で取得したノードに実行済みとマークする。
【００４３】
ステップＳ２０９において、ジョブ実行部１０３が根ノードのプロセスを実行し、実行結果を返却する。
【００４４】
次に、図９に示すフローチャートに基づいて、ゲートウェイ装置１１１の委譲判定部１１４による委譲判定処理について説明する。
【００４５】
ステップＳ４０１において、委譲判定部１１４が統計情報からＣＰＵ使用率、ＩＯ使用率が高くなる時間帯を推定し、ＣＰＵ使用率、ＩＯ使用率が高くなると推定される時間帯で検証テストを行う検証計画を生成する。検証計画では、複数回の検証テストが計画されてもよい。
【００４６】
ステップＳ４０２において、委譲判定部１１４は、未実施の検証計画があるか否かを判定する。未実施の検証計画がある場合は、処理がステップＳ４０３に進む。一方、未実施の検証計画がない場合は、処理がステップＳ４０４に進む。
【００４７】
ステップＳ４０３において、委譲判定部１１４が委譲判定プロセス１１７を用いて、検証テストを行う。ステップＳ４０３の詳細は、図９を参照して後述する。
【００４８】
ステップＳ４０４において、委譲判定部１１４は、すべての検証テストが成功したかどうかを判定する。すべての検証テストが成功した場合は、処理がＳ４０５に進む。一方、いずれかの検証テストが失敗であった場合は、処理がＳ４０６に進む。
検証テストの成功とは、後述する図９のステップＳ３０６が行われて、統計情報１２０に正常終了が記録されることである。検証テストの失敗とは、後述する図９のステップＳ３０７が行われて、統計情報１２０に異常終了が記録されることである。
【００４９】
ステップＳ４０５において、委譲判定部１１４は、データ送受信部１１２を介して、プロセスの委譲が可能なことをサーバ装置１０１に通知する。つまり、委譲判定部１１４は、肯定的な委譲判定結果をデータ送受信部１１２を介してサーバ装置１０１に送信する。
【００５０】
ステップＳ４０６において、委譲判定部１１４は、データ送受信部１１２を介して、プロセスの委譲が不可能であることをサーバ装置１０１に通知する。つまり、委譲判定部１１４は、否定的な委譲判定結果をデータ送受信部１１２を介してサーバ装置１０１に送信する。
【００５１】
次に、図９に示すフローチャートに基づいて、ゲートウェイ装置１１１の委譲判定部１１４による検証処理について説明する。
【００５２】
ステップＳ３０１において、委譲判定部１１４が統計情報に基づき、これまで受信したデータ流量のばらつきから最大流量を推定し、テストデータ流量を決定する。
つまり、委譲判定部１１４は、サーバ装置１０１から委譲候補のプロセスを委譲された場合に当該プロセスの実行に用いるデータのデータ量を推定し、テストデータ流量を決定する。
ゲートウェイ装置１１１に接続されているセンシング装置１２１からのデータを用いて実行されるプロセスが委譲候補のプロセスであれば、委譲判定部１１４は、センシング装置１２１からのデータのデータ流量に基づき、テストデータ流量を決定する。
委譲判定部１１４は、例えば、これまで受信した最大のデータ量を最大流量と推定する。または、委譲判定部１１４は、正規分布を仮定した確率分布から＋３σをとり最大流量を推定してもよい。
また、委譲判定部１１４は、推定した最大流量を、テストデータ流量にする。
【００５３】
ステップＳ３０２において、委譲判定部１１４が委譲判定プロセス１１７を用いてテストデータ１１８からテストデータ流量分の検証データを生成する。
例えば、サーバ装置１０１から受信したテストデータ１１８のデータ量がステップＳ３０１で決定したテストデータ流量に満たない場合は、テストデータ１１８のデータ量をテストデータ流量まで拡張する。
例えば、テストデータのデータ量がｎ、テストデータ流量がｍのとき、検証データのデータ量は、ｎ＊ｃｅｉｌ（ｍ／ｎ）となりる。ここで、ｃｅｉｌ（）は、小数点以下を切り上げる関数である。テストデータのデータ量をテストデータ流量にするために、たとえばテストデータを繰り返しｃｅｉｌ（ｍ／ｎ）分コピーすることが考えられる。
【００５４】
ステップＳ３０３において、委譲判定部１１４が委譲判定プロセス１１７を用い、検証データに対してプロセス１１６を実行する。
【００５５】
ステップＳ３０４において、委譲判定部１１４は、実行結果と正解データ１１９とを比較する。実行結果が正しい場合、すなわち、実行結果が正解データ１１９に一致する場合は、処理はステップＳ３０５に進む。一方、実行結果が正しくない場合、すなわち、実行結果が正解データ１１９に一致しない場合は、処理はステップＳ３０６に進む。
【００５６】
ステップＳ３０５において、委譲判定部１１４は、プロセス１１６の実行が規定時間内に完了したか否かを判定する。プロセス１１６の実行が規定時間以内に完了した場合は、処理はステップＳ３０６に進む。一方、プロセス１１６の実行が規定時間内に完了しなかった場合は、処理はステップＳ３０７に進む。
【００５７】
ステップＳ３０６において、委譲判定部１１４は、統計情報１２０に正常終了を記録する。
【００５８】
ステップＳ３０７において、委譲判定部１１４は、統計情報１２０に異常終了を記録する。
【００５９】
次に、図１０の委譲状態管理表の例と図１１のジョブ実行計画の例と図１２の更新後の委譲状態管理表の例と図１３の更新後のジョブ実行計画の例を用いて、本実施の形態に係るサーバ装置１０１とゲートウェイ装置１１１の動作の具体例を説明する。
【００６０】
ここでは、図１０に示す委譲状態管理表がサーバ装置１０１のデータ格納領域１０５に格納されているとする。また、図１１に示すジョブ実行計画がサーバ装置１０１のデータ格納領域１０５に格納されているとする。
【００６１】
まず、図１１に示すジョブ実行計画の例の実行について説明する。図１１に示すジョブ実行計画では、根ノードにサーバ装置１０１が実行する親プロセス「ｐｓ００１１」がある。この親プロセス「ｐｓ００１１」は、３つの子プロセス（１１０２〜１１０４）の実行結果を用いて実行される。
図１０の委譲状態管理表では、「ｇｗ００１」のゲートウェイ装置１１１には、すべてのプロセスが委譲されている。また、「ｇｗ００２」のゲートウェイ装置１１１ではプロセス「ｐ００２」が委譲判定待ちの状態である。また、「ｇｗ００３」のゲートウェイ装置１１１ではプロセス「ｐ００３」のみが委譲可能となっている。
【００６２】
「ｇｗ００１」のゲートウェイ装置１１１は、すべてのプロセスが委譲されているため、プロセス「ｐ００１」の実行結果が「ｇｗ００１」のゲートウェイ装置１１１からサーバ装置１０１に送信される。
「ｇｗ００２」のゲートウェイ装置１１１は、プロセス「ｐ００２」が委譲判定待ちとなっているため、その上位のプロセス「ｐ００１」はサーバ装置１０１で実行される。このため、プロセス「ｐ００３」の実行結果のみ「ｇｗ００２」のゲートウェイ装置１１１からサーバ装置１０１に送信される。
「ｇｗ００３」のゲートウェイ装置１１１には、プロセス「ｐ００３」のみが委譲されているため、プロセス「ｐ００３」の実行結果のみが「ｇｗ００３」のゲートウェイ装置１１１からサーバ装置１０１に送信される。
【００６３】
ジョブ実行部１０３は、ゲートウェイ装置１１１からの実行結果を得られないプロセスには、代替プロセス１０９を実行する。このようにして、ジョブ実行部１０３は、ゲートウェイ装置１１１へのプロセス委譲状況に基づき、ジョブを実行することができる。
【００６４】
次に、図１０に示す委譲状態管理表及び図１１に示すジョブ実行計画の更新について説明する。以下では、図１０に示す委譲状態管理表および図１１に示すジョブ実行計画から図１２に示す委譲状態管理表および図１３に示すジョブ実行計画に更新されることを説明する。
【００６５】
ここでは、委譲状態管理部１０４が、図１０にて委譲状況が委譲判定待ちの「？」となっているプロセス「ｐ００２」について「ｇｗ００２」のゲートウェイ装置１１１から肯定的な委譲判定結果をサーバ装置１０１が受信したとする。委譲状態管理部１０４は、「ｇｗ００２」の装置ＩＤ、ジョブＩＤ、「ｐ００２」のプロセスＩＤを受け取り、委譲状態管理表から更新すべき行を取得する。委譲状態管理部１０４は、取得した行の委譲状況１００６を「Ｙ」に更新する。さらに、委譲状態管理部１０４は、ジョブ実行計画の「ａｐ００２」１１０６を「ｐ００２」１３０６のように代替プロセスＩＤからプロセスＩＤに変更し、ゲートウェイ装置１１１に当該プロセスが委譲されたことをジョブ実行計画に反映させる。続けて、委譲状態管理部１０４は、ジョブ実行計画の「ａｐ００１」１１０３を「ｐ００１」１３０３のように代替プロセスＩＤからプロセスＩＤに変更し、ゲートウェイ装置１１１に当該プロセスが委譲されたことをジョブ実行計画に反映させる。
【００６６】
＊＊＊実施の形態の効果の説明＊＊＊
このように、本実施の形態によれば、正しい実行結果が得られるゲートウェイ装置にのみサーバ装置からプロセスが委譲される。従来はゲートウェイ装置に委譲されたプロセスが正しい実行結果となることをサーバ装置が把握できなかった。このため、ゲートウェイ装置でのプロセスの実行結果がサーバ装置でのプロセスの実行結果と同じであることを保証することが困難であった。本実施の形態では、委譲されたプロセスのゲートウェイ装置での実行結果がサーバ装置での実行結果と同じであることを保証できる。
また、本実施の形態では、サーバ装置は、ゲートウェイ装置に委譲されたプロセスと委譲されていないプロセスを識別しながら、ジョブを実行することができる。
【００６７】
実施の形態２．
実施の形態２では、ゲートウェイ装置に委譲したプロセスをゲートウェイ装置が実行不能になった場合の動作を説明する。
【００６８】
＊＊＊構成の説明＊＊＊
図１４は、実施の形態２に係るサーバ装置１４０１及びゲートウェイ装置１４１１の構成例を示す。
図１４のサーバ装置１４０１では、図１のサーバ装置１０１と比較して、委譲状態動的変更部１４３０が追加されている。また、図１４のゲートウェイ装置１４１１では、図１のゲートウェイ装置１１１と比較して、入力データ１４２１が追加されている。
委譲状態動的変更部１４３０及び入力データ１４２１以外の要素は、図１に示した同じ名称の要素と同じである。
また、サーバ装置１４０１及びゲートウェイ装置１４１１のハードウェア構成例は、図５に示すものと実質的に同じである。サーバ装置１４０１では、委譲状態動的変更部１４３０は、プログラムで構成され、委譲状態動的変更部１４３０を実現するプログラムは、プロセッサ９０１で実行される。
なお、以下では、主に実施の形態１との差異を説明する。
以下で説明していない事項は、実施の形態１と同じである。
【００６９】
＊＊＊動作の説明＊＊＊
以下、図１５に示すフローチャートに基づいて、サーバ装置１４０１のジョブ実行部１４０３によるジョブ実行処理について説明する。
なお、ステップＳ５０１〜Ｓ５０４は、図７のＳ２０１〜Ｓ２０４と同じであるため、説明を省略する。
【００７０】
ステップＳ５０５において、ジョブ実行部１４０３は、ゲートウェイ装置１４１１に委譲されたプロセスについて一時実行不能通知を受信しているか否かを判定する。
一時実行不能通知は、ゲートウェイ装置１４１１に委譲されたプロセスの実行が一時的に不能になったことを通知するメッセージである。
一時実行不能通知を受信していない場合は、処理がステップＳ５０６に進み、一時実行不能通知を受信している場合は、処理がステップＳ５０７に進む。
ステップＳ５０６では、図７のＳ２０５と同様に、ジョブ実行部１４０３がゲートウェイ装置１４１１の実行結果を取得する。
また、ステップＳ５０７では、図７のＳ２０６と同様に、ジョブ実行部１４０３が代替プロセス１４０９を実行する。
このように、本実施の形態に係るジョブ実行部１４０３は、ゲートウェイ装置１４１１からプロセスの実行が不能になったことを通知されていなければ、ゲートウェイ装置１４１１でのプロセスの実行結果を取得し、ゲートウェイ装置１４１１からプロセスの実行が不能になったことを通知されていれば、代替プロセス１４０９を実行する。
また、ジョブ実行部１４０３は、一時実行不能通知を受信している場合は、委譲状態動的変更部１４３０に一時実行不能通知を受信していることを通知する。委譲状態動的変更部１４３０は、委譲状態管理表１４０６において、該当するゲートウェイ装置及び該当するプロセスについての委譲状況を「Ｙ」から「Ｎ」に更新する。
また、ゲートウェイ装置１４１１から実行結果とともに回復通知を受信している場合は、ジョブ実行部１４０３は、回復通知を受信していることを委譲状態動的変更部１４３０に通知する。回復通知は、一時実行不能通知を送信したゲートウェイ装置１４１１が再度プロセスの実行が可能になったことを通知するメッセージである。委譲状態動的変更部１４３０は、回復通知の受信を通知された場合は、委譲状態管理表１４０６において、該当するゲートウェイ装置及び該当するプロセスについての委譲状況を「Ｎ」から「Ｙ」に更新する。
【００７１】
ステップＳ５０８〜Ｓ５１０は、図７のステップＳ２０７〜Ｓ２０９と同じであるため、説明を省略する。
【００７２】
以下、図１６に示すフローチャートに基づいて、ゲートウェイ装置１４１１のプロセス実行部１４１３によるプロセス実行処理について説明する。
【００７３】
ステップＳ６０１において、プロセス実行部１４１３がプロセス１４１６を起動する。つまり、プロセス実行部１４１３がプロセス１４１６を実行する。プロセス１４１６は入力されたデータを入力データ１４２１に保存する。
【００７４】
ステップＳ６０２において、プロセス実行部１４１３は一定時間待つ。
【００７５】
ステップＳ６０３において、プロセス１４１６の実行が完了しているか否かを判定する。プロセスの実行が完了している場合は、処理がステップＳ６０６に進む。一方、プロセス１４１６の実行が完了していない場合は、処理がステップＳ６０４に進む。
【００７６】
ステップＳ６０４において、プロセス１４１６の実行時間が規定時間を超過した場合、つまり、プロセス１４１６の実行が規定時間以内に完了しない場合に、処理はステップＳ６０５に進む、一方、プロセス１４１６の実行時間が規定時間を超過していない場合は、処理はステップＳ６０２に進む。
【００７７】
ステップＳ６０５において、プロセス実行部１４１３がプロセス１４１６の実行を中断し、プロセスの入力データ１４２１および一時実行不能通知をサーバ装置１４０１又は上位のゲートウェイ装置１４１１に送信する。
【００７８】
ステップＳ６０６において、プロセス実行部１４１３は、プロセス１４１６の実行結果をサーバ装置１４０１又は上位のゲートウェイ装置１４１１に送信する。
なお、サーバ装置１４０１又は上位のゲートウェイ装置１４１１に一時実行不能通知を送信した後に初めてプロセス１４１６の実行結果を送信する場合は、プロセス実行部１４１３は、回復通知もサーバ装置１４０１又は上位のゲートウェイ装置１４１１に送信する。
【００７９】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態では、ゲートウェイ装置の委譲状況を委譲実施後に動的に変更可能である。
従来は、委譲されたプロセスは必ずゲートウェイ装置で実行する必要があったためゲートウェイ装置の負荷が一時的に高まった場合に処理の遅延が発生することがあった。本実施の形態では、ゲートウェイ装置でのプロセス実行状況に応じてゲートウェイ装置に委譲したプロセスを一時的に委譲していないものとして扱うことで、ゲートウェイ装置の負荷が一時的に高まった場合においても処理の遅延を最小限にとどめることが可能である。
＊＊＊ハードウェア構成の説明＊＊＊
最後に、ハードウェア構成の補足説明を行う。
図５に示すプロセッサ９０１、９１１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。
プロセッサ９０１、９１１は、ＣＰＵ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等である。
図５に示す記憶装置９０２、９２１は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等である。
図５に示す通信インタフェース９０３、９１３は、データを受信するレシーバー及びデータを送信するトランスミッターを含む。
通信インタフェース９０３、９１３は、例えば、通信チップ又はＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
【００８０】
また、記憶装置９０２、９１２には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。
そして、ＯＳの少なくとも一部がプロセッサ９０１により実行される。
プロセッサ９０１はＯＳの少なくとも一部を実行しながら、ジョブ実行部１０３、委譲状態管理部１０４、ジョブ実行部１４０３、委譲状態管理部１４０４、委譲状態動的変更部１４３０の機能を実現するプログラムを実行する。
同様に、プロセッサ９１１はＯＳの少なくとも一部を実行しながら、プロセス実行部１１３、委譲判定部１１４、プロセス実行部１４１３、委譲判定部１４１４の機能を実現するプログラムを実行する。
以下では、ジョブ実行部１０３、委譲状態管理部１０４、ジョブ実行部１４０３、委譲状態管理部１４０４、委譲状態動的変更部１４３０、プロセス実行部１１３、委譲判定部１１４、プロセス実行部１４１３、委譲判定部１４１４を、まとめて「部」という。
プロセッサ９０１、９１１がＯＳを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、「部」の処理の結果を示す情報やデータや信号値や変数値が、記憶装置９０２、９２１、又は、プロセッサ９０１、９１１内のレジスタ又はキャッシュメモリに記憶される。
また、「部」の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の可搬記憶媒体に記憶されてもよい。
【００８１】
また、「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、サーバ装置１０１、１４０１、ゲートウェイ装置１１１、１４１１は、ロジックＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）といった電子回路により実現されてもよい。
この場合は、「部」は、それぞれ電子回路の一部として実現される。
なお、プロセッサ及び上記の電子回路を総称してプロセッシングサーキットリーともいう。
【符号の説明】
【００８２】
１０１  サーバ装置、１０２  データ送受信部、１０３  ジョブ実行部、１０４  委譲状態管理部、１０５  データ格納領域、１０６  委譲状態管理表、１０７  プロセス、１０８  委譲判定プロセス、１０９  代替プロセス、１１１  ゲートウェイ装置、１１０  ジョブ実行計画、１１２  データ送受信部、１１３  プロセス実行部、１１４  委譲判定部、１１５  データ格納領域、１１６  プロセス、１１７  委譲判定プロセス、１１８  テストデータ、１１９  正解データ、１２０  統計情報、１２１  センシング装置、１４０１  サーバ装置、１４０２  データ送受信部、１４０３  ジョブ実行部、１４０４  委譲状態管理部、１４０５  データ格納領域、１４０６  委譲状態管理表、１４０７  プロセス、１４０８  委譲判定プロセス、１４０９  代替プロセス、１４１０  ジョブ実行計画、１４１１  ゲートウェイ装置、１４１２  データ送受信部、１４１３  プロセス実行部、１４１４  委譲判定部、１４１５  データ格納領域、１４１６  プロセス、１４１７  委譲判定プロセス、１４１８  テストデータ、１４１９  正解データ、１４２０  統計情報、１４２１  入力データ、１４３０  委譲状態動的変更部。
【図１】
2017134785.tif 000003
【図２】
2017134785.tif 000004
【図３】
2017134785.tif 000005
【図４】
2017134785.tif 000006
【図５】
2017134785.tif 000007
【図６】
2017134785.tif 000008
【図７】
2017134785.tif 000009
【図８】
2017134785.tif 000010
【図９】
2017134785.tif 000011
【図１０】
2017134785.tif 000012
【図１１】
2017134785.tif 000013
【図１２】
2017134785.tif 000014
【図１３】
2017134785.tif 000015
【図１４】
2017134785.tif 000016
【図１５】
2017134785.tif 000017
【図１６】
2017134785.tif 000018
【手続補正書】
【提出日】平成29年11月1日(2017.11.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
委譲候補のプロセスが子局装置に委譲されて前記子局装置で前記プロセスが実行された場合に正しい実行結果が得られるか否かを検証する検証テストを前記子局装置に行わせる検証テスト管理部と、
前記子局装置から前記検証テストの結果を取得し、取得した前記検証テストの結果に基づき、前記プロセスの実行を前記子局装置に委譲するか否かを決定する委譲決定部とを有し、
前記検証テスト管理部は、
テストデータと、前記テストデータを用いた前記プロセスの実行により得られる正しい実行結果が記述された正解データとを前記子局装置に送信し、
前記プロセスが前記子局装置に委譲された場合に前記子局装置が前記プロセスの実行に用いるデータのデータ量を前記子局装置に推定させ、推定されたデータ量になるように前記テストデータのデータ量を調整させ、
前記検証テストとして、前記子局装置に、データ量が調整された後の前記テストデータを用いた前記プロセスの実行を行わせるとともに、前記プロセスの実行結果が前記正解データと一致するか否か及び前記プロセスの実行が規定時間以内に完了したか否かを前記子局装置に判定させ、
前記委譲決定部は、
前記検証テストの結果として、前記子局装置における判定結果を前記子局装置から受信し、
前記子局装置から受信した前記判定結果が、前記プロセスの実行結果が前記正解データに一致すること及び前記プロセスの実行が前記規定時間以内に完了したことを示している場合に、前記プロセスの実行を前記子局装置に委譲することを決定する親局装置。
【請求項２】
前記検証テスト管理部は、
前記プロセスの実行結果が前記正解データと一致するか否かを前記子局装置に判定させるための委譲判定プロセスを前記子局装置に送信し、前記子局装置に前記委譲判定プロセスを実行させて前記プロセスの実行結果が前記正解データと一致するか否かを前記子局装置に判定させる請求項１に記載の親局装置。
【請求項３】
前記親局装置は、更に、
前記プロセスの実行タイミングに、前記委譲決定部により前記プロセスの実行が前記子局装置に委譲されているか否かを判定し、前記プロセスの実行が前記子局装置に委譲されていれば、前記子局装置で前記プロセスが実行されて得られた実行結果を取得し、前記プロセスの実行が前記子局装置に委譲されていなければ、前記プロセスを実行するジョブ実行部とを有する請求項１に記載の親局装置。
【請求項４】
前記ジョブ実行部は、
前記プロセスの実行タイミングに、前記委譲決定部により前記プロセスの実行が前記子局装置に委譲されているか否かを判定し、
前記プロセスの実行が前記子局装置に委譲されている場合に、前記子局装置から前記プロセスの実行が不能になったことを通知されているか否かを判定し、
前記子局装置から前記プロセスの実行が不能になったことを通知されていなければ、前記子局装置で前記プロセスが実行されて得られた実行結果を取得し、
前記子局装置から前記プロセスの実行が不能になったことを通知されていれば、前記プロセスを実行する請求項３に記載の親局装置。
【請求項５】
前記ジョブ実行部は、
前記子局装置から前記プロセスの実行が不能になったことを通知された以降の前記プロセスの実行タイミングでは、前記プロセスは前記子局装置に委譲されていないと判定する請求項３に記載の親局装置。
【請求項６】
委譲候補のプロセスが親局装置から委譲されて前記プロセスを実行した場合に正しい実行結果が得られるか否かを検証する検証テストを行い、前記検証テストの結果を前記親局装置に送信する検証テスト実行部と、
前記親局装置から前記プロセスの実行が委譲された場合に、前記プロセスを実行し、前記プロセスの実行により得られた実行結果を前記親局装置に送信するプロセス実行部とを有し、
前記検証テスト実行部は、
前記親局装置から、テストデータと、前記テストデータを用いた前記プロセスの実行により得られる正しい実行結果が記述された正解データとを受信し、
前記親局装置から前記プロセスを委譲された場合に前記プロセスの実行に用いるデータのデータ量を推定し、推定したデータ量になるように前記テストデータのデータ量を調整し、
前記検証テストとして、データ量を調整した後の前記テストデータを用いて前記プロセスを実行するとともに、前記プロセスの実行結果が前記正解データと一致するか否か及び前記プロセスの実行が規定時間以内に完了したか否かを判定し、
前記検証テストの結果として、判定結果を前記親局装置に送信する子局装置。
【請求項７】
前記検証テスト実行部は、
前記プロセスの実行結果が前記正解データと一致するか否かを判定するための委譲判定プロセスを前記親局装置から受信し、受信した前記委譲判定プロセスを実行して前記プロセスの実行結果が前記正解データと一致するか否かを判定する請求項６に記載の子局装置。
【請求項８】
前記検証テスト実行部は、
統計的に計算負荷が高い時間帯に、前記検証テストを行う請求項６に記載の子局装置。
【請求項９】
前記プロセス実行部は、
前記プロセスの実行が規定時間以内に完了しない場合に、前記プロセスの実行が不能になったことを前記親局装置に通知する請求項６に記載の子局装置。
【請求項１０】
コンピュータである親局装置が、委譲候補のプロセスが子局装置に委譲されて前記子局装置で前記プロセスが実行された場合に正しい実行結果が得られるか否かを検証する検証テストを前記子局装置に行わせる検証テスト管理処理と、
前記親局装置が、前記子局装置から前記検証テストの結果を取得し、取得した前記検証テストの結果に基づき、前記プロセスの実行を前記子局装置に委譲するか否かを決定する委譲決定処理とを有し、
前記検証テスト管理処理において、
前記親局装置は、
テストデータと、前記テストデータを用いた前記プロセスの実行により得られる正しい実行結果が記述された正解データとを前記子局装置に送信し、
前記プロセスが前記子局装置に委譲された場合に前記子局装置が前記プロセスの実行に用いるデータのデータ量を前記子局装置に推定させ、推定されたデータ量になるように前記テストデータのデータ量を調整させ、
前記検証テストとして、前記子局装置に、データ量が調整された後の前記テストデータを用いた前記プロセスの実行を行わせるとともに、前記プロセスの実行結果が前記正解データと一致するか否か及び前記プロセスの実行が規定時間以内に完了したか否かを前記子局装置に判定させ、
前記委譲決定処理において、
前記親局装置は、
前記検証テストの結果として、前記子局装置における判定結果を前記子局装置から受信し、
前記子局装置から受信した前記判定結果が、前記プロセスの実行結果が前記正解データに一致すること及び前記プロセスの実行が前記規定時間以内に完了したことを示している場合に、前記プロセスの実行を前記子局装置に委譲することを決定するプロセス委譲管理方法。
【請求項１１】
コンピュータである子局装置が、委譲候補のプロセスが親局装置から委譲されて前記プロセスを実行した場合に正しい実行結果が得られるか否かを検証する検証テストを行い、前記検証テストの結果を前記親局装置に送信する検証テスト実行処理と、
前記親局装置から前記プロセスの実行が委譲された場合に、前記子局装置が、前記プロセスを実行し、前記プロセスの実行により得られた実行結果を前記親局装置に送信するプロセス実行処理とを有し、
前記検証テスト実行処理において、
前記子局装置は、
前記親局装置から、テストデータと、前記テストデータを用いた前記プロセスの実行により得られる正しい実行結果が記述された正解データとを受信し、
前記親局装置から前記プロセスを委譲された場合に前記プロセスの実行に用いるデータのデータ量を推定し、推定したデータ量になるように前記テストデータのデータ量を調整し、
前記検証テストとして、データ量を調整した後の前記テストデータを用いて前記プロセスを実行するとともに、前記プロセスの実行結果が前記正解データと一致するか否か及び前記プロセスの実行が規定時間以内に完了したか否かを判定し、
前記検証テストの結果として、判定結果を前記親局装置に送信するプロセス実行方法。
【請求項１２】
コンピュータである親局装置に、
委譲候補のプロセスが子局装置に委譲されて前記子局装置で前記プロセスが実行された場合に正しい実行結果が得られるか否かを検証する検証テストを前記子局装置に行わせる検証テスト管理処理と、
前記子局装置から前記検証テストの結果を取得し、取得した前記検証テストの結果に基づき、前記プロセスの実行を前記子局装置に委譲するか否かを決定する委譲決定処理とを実行させるプロセス委譲管理プログラムであって、
前記検証テスト管理処理において、
前記親局装置に、
テストデータと、前記テストデータを用いた前記プロセスの実行により得られる正しい実行結果が記述された正解データとを前記子局装置に送信させ、
前記プロセスが前記子局装置に委譲された場合に前記子局装置が前記プロセスの実行に用いるデータのデータ量を前記子局装置に推定させ、推定されたデータ量になるように前記テストデータのデータ量を調整させる処理を行わせ、
前記検証テストとして、前記子局装置に、データ量が調整された後の前記テストデータを用いた前記プロセスの実行を行わせるとともに、前記プロセスの実行結果が前記正解データと一致するか否か及び前記プロセスの実行が規定時間以内に完了したか否かを前記子局装置に判定させる処理を行わせ、
前記委譲決定処理において、
前記親局装置に、
前記検証テストの結果として、前記子局装置における判定結果を前記子局装置から受信させ、
前記子局装置から受信した前記判定結果が、前記プロセスの実行結果が前記正解データに一致すること及び前記プロセスの実行が前記規定時間以内に完了したことを示している場合に、前記プロセスの実行を前記子局装置に委譲することを決定させるプロセス委譲管理プログラム。
【請求項１３】
コンピュータである子局装置に、
委譲候補のプロセスが親局装置から委譲されて前記プロセスを実行した場合に正しい実行結果が得られるか否かを検証する検証テストを行い、前記検証テストの結果を前記親局装置に送信する検証テスト実行処理と、
前記親局装置から前記プロセスの実行が委譲された場合に、前記プロセスを実行し、前記プロセスの実行により得られた実行結果を前記親局装置に送信するプロセス実行処理とを実行させるプロセス実行プログラムであって、
前記検証テスト実行処理において、
前記子局装置に、
前記親局装置から、テストデータと、前記テストデータを用いた前記プロセスの実行により得られる正しい実行結果が記述された正解データとを受信させ、
前記親局装置から前記プロセスを委譲された場合に前記プロセスの実行に用いるデータのデータ量を推定させ、推定したデータ量になるように前記テストデータのデータ量を調整させ、
前記検証テストとして、データ量を調整した後の前記テストデータを用いて前記プロセスを実行させるとともに、前記プロセスの実行結果が前記正解データと一致するか否か及び前記プロセスの実行が規定時間以内に完了したか否かを判定させ、
前記検証テストの結果として、判定結果を前記親局装置に送信させるプロセス実行プログラム。
【国際調査報告】
2017134785.tif 000019
2017134785.tif 000020
2017134785.tif 000021
2017134785.tif 000022