(57)【要約】  処理部により実行される処理が実行不能となる予兆を示す事象が生じたか否かを検知する予兆検知部と、前記予兆検知部により前記予兆を示す事象が生じたことが検知されたとき、前記処理装置において行われる処理の代替処理を行うことが可能な代替処理装置に、該代替処理を開始可能な状態となるように依頼し、該開始可能な状態となるように依頼した後、設定条件が成立したときに前記代替処理を開始可能な状態を終了するように前記代替処理装置に依頼する制御部と、を備える処理装置。
2014006728.tif 000002
【特許請求の範囲】
【請求項１】
処理部により実行される処理が実行不能となる予兆を示す事象が生じたか否かを検知する予兆検知部と、
前記予兆検知部により前記予兆を示す事象が生じたことが検知されたとき、前記処理部により実行される処理の代替処理を行うことが可能な代替処理装置に、該代替処理を開始可能な状態となるように依頼し、該開始可能な状態となるように依頼した後、設定条件が成立したときに前記代替処理を開始可能な状態を終了するように前記代替処理装置に依頼する制御部と、
を備える処理装置。
【請求項２】
前記制御部が、前記代替処理を開始可能な状態となるように前記代替処理装置に依頼した後、前記処理部により実行される処理の経過に応じて変化する情報を前記代替処理装置に送信する経過情報送信部を備える、
請求項１記載の処理装置。
【請求項３】
前記代替処理装置は、クラウドサービスを提供する装置であり、
前記制御部は、前記代替処理を開始可能な状態となるように前記代替処理装置に依頼する際に、前記代替処理を実行するためのプログラムを前記代替処理装置に送信する、
請求項２記載の処理装置。
【請求項４】
前記制御部は、前記代替処理を開始可能な状態となるように前記代替処理装置に依頼する際に、前記処理部により実行される処理の実行状態を確認するためのプログラムを前記代替処理装置に送信し、該プログラムが実行されることにより、前記処理部により実行される処理が実行不能となったことが確認された場合に前記代替処理を開始するように、前記代替処理装置に依頼する、
請求項１ないし３のいずれか１記載の処理装置。
【請求項５】
前記制御部が、前記代替処理を開始可能な状態となるように前記代替処理装置に依頼した後、前記処理部により実行される処理が実行不能となったか否かを確認し、前記処理部により実行される処理が実行不能となったときに、前記代替処理を開始するように前記代替処理装置に依頼する実行状態確認部を備える、
請求項１又は２記載の処理装置。
【請求項６】
前記設定条件は、前記処理部により実行される処理が実行不能となることなく所定期間が経過したことである、
請求項１ないし５のいずれか１項記載の処理装置。
【請求項７】
処理装置に、
処理部により実行される処理が実行不能となる予兆を示す事象が生じたか否かを検知させ、
前記予兆を示す事象が生じたことが検知されたとき、前記処理部により実行される処理の代替処理を行うことが可能な代替処理装置に、該代替処理を開始可能な状態となるように依頼させ、
前記代替処理を開始可能な状態となるように依頼させた後、設定条件が成立したときに前記代替処理を開始可能な状態を終了するように前記代替処理装置に依頼させる、
プログラム。
【請求項８】
前記処理装置に、
前記代替処理を開始可能な状態となるように前記代替処理装置に依頼させた後、前記処理部により実行される処理の経過に応じて変化する情報を前記代替処理装置に送信させる、
請求項７記載のプログラム。
【請求項９】
前記代替処理装置は、クラウドサービスを提供する装置であり、
前記処理装置に、
前記代替処理を開始可能な状態となるように前記代替処理装置に依頼させる際に、前記代替処理を実行するためのプログラムを前記代替処理装置に送信させる、
請求項８記載のプログラム。
【請求項１０】
前記処理装置に、
前記代替処理を開始可能な状態となるように前記代替処理装置に依頼させる際に、前記処理部により実行される処理の実行状態を確認するためのプログラムを前記代替処理装置に送信させ、該プログラムが実行されることにより、前記処理部により実行される処理が実行不能となったことが確認された場合に前記代替処理を開始するように、前記代替処理装置に依頼させる、
請求項９記載のプログラム。
【請求項１１】
前記処理装置に、
前記代替処理を開始可能な状態となるように前記代替処理装置に依頼させた後、前記処理部により実行される処理が実行不能となったか否かを確認させ、
前記処理部により実行される処理が実行不能となったときに、前記代替処理を開始するように前記代替処理装置に依頼させる、
請求項７又は８記載のプログラム。
【請求項１２】
前記設定条件は、前記処理部により実行される処理が実行不能となることなく所定期間が経過したことである、
請求項７ないし１１のいずれか１項記載のプログラム。
【請求項１３】
処理部により実行される処理が実行不能となる予兆を示す事象が生じたか否かを検知する予兆検知部、及び前記予兆検知部により前記予兆を示す事象が生じたことが検知されたとき、前記処理部により実行される処理の代替処理を行うことが可能な代替処理装置が前記代替処理を開始可能な状態となるように制御する制御部を備える処理装置と、
前記代替処理を開始可能な状態となるように依頼された後、設定条件が成立したときに前記開始可能な状態を終了する前記代替処理装置と、
を備える処理システム。
【請求項１４】
前記処理装置は、前記制御部が、前記代替処理を開始可能な状態となるように前記代替処理装置に依頼した後、前記処理部により実行される処理の経過に応じて変化する情報を、前記代替処理装置がアクセス可能な記憶装置に格納する、
請求項１３記載の処理システム。
【請求項１５】
前記代替処理装置は、前記代替処理を開始可能な状態となるように依頼された後、前記処理部により実行される処理が実行不能となったか否かを確認する実行状態確認部を備え、
該実行状態確認部により前記処理部により実行される処理が実行不能となったことが確認されたときに、前記代替処理を開始する、
請求項１３又は１４記載の処理システム。
【請求項１６】
前記設定条件は、前記処理部により実行される処理が実行不能となることなく所定期間が経過したことである、
請求項１３ないし１５のいずれか１項記載の処理システム。
【請求項１７】
処理装置と、該処理装置において行われる処理の代替処理を行うことが可能な代替処理装置とを備える処理システムに、
前記処理装置において行われる処理が実行不能となる予兆を示す事象が生じたか否かを検知させ、
前記予兆を示す事象が生じたことが検知されたとき、前記代替処理装置が前記代替処理を開始可能な状態となるよう制御させ、
前記代替処理を開始可能な状態となるように制御させた後、設定条件が成立したときに、前記代替処理装置に前記代替処理を開始可能な状態を終了させる、
プログラム。
【請求項１８】
前記処理装置に、
前記代替処理を開始可能な状態となるように前記代替処理装置に依頼させた後、前記処理部により実行される処理の経過に応じて変化する情報を、前記代替処理装置がアクセス可能な記憶装置に記憶させる、
請求項１７記載のプログラム。
【請求項１９】
前記代替処理装置に、
前記代替処理を開始可能な状態となるように依頼された後、前記処理部により実行される処理が実行不能となったか否かを確認させ、
前記処理部により実行される処理が実行不能となったことが確認されたときに、前記代替処理を開始させる、
請求項１７又は１８記載のプログラム。
【請求項２０】
前記設定条件は、前記処理部により実行される処理が実行不能となることなく所定期間が経過したことである、
請求項１７ないし１９のいずれか１項記載のプログラム。
【請求項２１】
処理装置が、
処理部により実行される処理が実行不能となる予兆を示す事象が生じたか否かを検知し、
前記予兆を示す事象が生じたことが検知されたとき、前記処理部により実行される処理の代替処理を行うことが可能な代替処理装置に、該代替処理を開始可能な状態となるように依頼し、
前記代替処理を開始可能な状態となるように依頼させた後、設定条件が成立したときに前記代替処理を開始可能な状態を終了するように前記代替処理装置に依頼する、
処理方法。
【請求項２２】
処理装置と、該処理装置において行われる処理の代替処理を行うことが可能な代替処理装置とを備える処理システムが、
前記処理装置において行われる処理が実行不能となる予兆を示す事象が生じたか否かを検知し、
前記予兆を示す事象が生じたことが検知されたとき、前記代替処理装置が前記代替処理を開始可能な状態となるよう制御し、
前記代替処理を開始可能な状態となるように制御させた後、設定条件が成立したときに、前記代替処理装置が前記代替処理を開始可能な状態を終了する、
処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理装置、処理システム、及びプログラムに関する。
【背景技術】
【０００２】
従来、複数の記憶装置のうち、将来的に故障すると予測された記憶装置に格納されているデータを、複数の記憶装置が全て同一の記憶容量を有していないことから生じる余剰記憶領域にコピーするディスクアレイコントローラが知られている。このディスクアレイコントローラのＣＰＵ部は、予測された記憶装置が故障した場合において、予測された記憶装置に対するリード又はライトアクセスがあったときに、余剰記憶領域にコピーしたデータによりリード又はライトアクセスを実行する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１６０６２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来のディスクアレイコントローラでは、将来的に故障すると予測された記憶装置に格納されているデータを余剰記憶領域にコピーした後、故障の予測がはずれることに対する配慮がなく、リソースを無駄に消費する問題がある。【０００５】
一つの側面では、本発明は、リソースの浪費の抑制を図ることを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様は、処理部により実行される処理が実行不能となる予兆を示す事象が生じたか否かを検知する予兆検知部と、前記予兆検知部により前記予兆を示す事象が生じたことが検知されたとき、前記処理装置において行われる処理の代替処理を行うことが可能な代替処理装置に、該代替処理を開始可能な状態となるように依頼し、該開始可能な状態となるように依頼した後、設定条件が成立したときに前記代替処理を開始可能な状態を終了するように前記代替処理装置に依頼する制御部と、を備える処理装置である。
【発明の効果】
【０００７】
一実施態様によれば、リソースの浪費の抑制を図ることができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の第１実施例に係る処理システム１のシステム構成例である。
【図２】サーバ１０及びサーバ１００のハードウェア構成例である。
【図３】代替処理準備依頼がなされた結果として生じる状態を示す図である。
【図４】実行状態確認コマンドを実行した結果、サーバ１０により行われる処理の流れを示すフローチャートの一例である。
【図５】代替処理が開始された状態を示す図である。
【図６】図５に示す状態からジョブ管理部１０Ａが復旧する様子を示す図である。
【図７】ジョブ管理部１０Ａにフェールオーバが発生せずに、所定期間が経過した状態を示す図である。
【図８】第１実施例に係るサーバ１０の仮想サーバ設定処理部１０Ｃにより実行される処理の流れを示すフローチャートの一例である。
【図９】第１実施例に係るサーバ１００により実行される処理の流れを示すフローチャートの一例である。
【図１０】本発明の第２実施例に係る処理システム２のシステム構成例である。
【図１１】仮想サーバ設定処理部２０Ｃ、２２Ｃから代替処理準備依頼がなされた結果として生じる状態を示す図である。
【図１２】ジョブ管理部２２Ａの代替処理が開始された状態を示す図である。
【図１３】図１２に示す状態からジョブ管理部２２Ａが復旧する様子を示す図である。
【図１４】ジョブ管理部２０Ａにフェールオーバが発生せずに、所定期間が経過した状態を示す図である。
【図１５】第２実施例に係るサーバ２０、２２の仮想サーバ設定処理部２０Ｃ、２２Ｃにより実行される処理の流れを示すフローチャートの一例である。
【図１６】第２実施例に係るサーバ２００により実行される処理の流れを示すフローチャートの一例である。
【図１７】本発明の第３実施例に係る処理システム３のシステム構成例である。
【図１８】サーバ３２が起動される様子を示す図である。
【図１９】ジョブ管理部３０Ａにより代替処理が開始された状態を示す図である。
【図２０】ジョブ管理部３０Ａにフェールオーバが発生せずに、所定期間が経過した状態を示す図である。
【図２１】第３実施例に係るサーバ３０の起動制御部３０Ｃにより実行される処理の流れを示すフローチャートの一例である。
【図２２】第３実施例に係るサーバ３２の実行状態確認部３２Ｄにより実行される処理の流れを示すフローチャートの一例である。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【００１０】
＜第１実施例＞
以下、図面を参照し、本発明の第１実施例に係る処理装置、処理システム、及びプログラムについて説明する。【００１１】
［全体構成］
図１は、本発明の第１実施例に係る処理システム１のシステム構成例である。処理システム１は、サーバ１０と、サーバ１００とを備える。【００１２】
サーバ１０は、例えばシステムの自動運転処理等、スケジュールに従った自発的な処理を行う。また、これに限らず、サーバ１０は、ＬＡＮを介してクライアントコンピュータに接続され、クライアントコンピュータからの要求に応じた処理を行い、処理結果をクライアントコンピュータに提供するものであってもよい。また、サーバ１０は、オペレータ等により図示しない入出力手段に対して入力された要求に応じた処理を行ってもよい。【００１３】
サーバ１０とサーバ１００は、例えばインターネット等のネットワーク５０によって接続されている。サーバ１００は、サーバ１０その他のネットワーク５０に接続された装置に対して、クラウドサービスを提供する。【００１４】
図２は、サーバ１０及びサーバ１００のハードウェア構成例である。サーバ１０及びサーバ１００は、例えば、ＣＰＵ（Central  Processing  Unit）Ａと、ドライブ装置Ｂと、補助記憶装置Ｄと、メモリ装置Ｅと、インターフェース装置Ｆと、入力装置Ｇと、表示装置Ｈと、を備える。これらの構成要素は、バスやシリアル回線等を介して接続されている。また、サーバ１０及びサーバ１００は、図示しないタイマやＤＭＡ（Direct  Memory  Access）コントローラ、割り込みコントローラ等を備えてよい。なお、図１では、補助記憶装置とメモリ装置を区別せず、単に記憶装置１１、１１０と表現している。【００１５】
ＣＰＵＡは、例えば、プログラムカウンタや命令デコーダ、各種演算器、ＬＳＵ（Load  Store  Unit）、汎用レジスタ等を有するプロセッサである。ドライブ装置Ｂは、記憶媒体Ｃからプログラムやデータを読み込み可能な装置である。プログラムを記録した記憶媒体Ｃがドライブ装置Ｂに装着されると、プログラムが記憶媒体Ｃからドライブ装置Ｂを介して補助記憶装置Ｄにインストールされる。記憶媒体Ｃは、例えば、ＣＤ（Compact  Disc）、ＤＶＤ（Digital  Versatile  Disc）、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型の記憶媒体である。また、補助記憶装置Ｄは、例えば、ＨＤＤ（Hard  Disk  Drive）やフラッシュメモリである。【００１６】
プログラムのインストールは、上記のように記憶媒体Ｃを用いる他、インターフェース装置Ｆがネットワークを介して他のコンピュータよりダウンロードし、補助記憶装置Ｄにインストールすることによって行うこともできる。ネットワークは、インターネット、ＬＡＮ（Local  Area  Network）、無線ネットワーク等である。また、プログラムは、サーバ１０又はサーバ１００の出荷時に、予め補助記憶装置ＤやＲＯＭ（Read  Only  Memory）等に格納されていてもよい。【００１７】
このようにしてインストール又は予め格納されたプログラムをＣＰＵＡが実行することにより、図２に示す態様の情報処理装置が、本実施例のサーバ１０又はサーバ１００として機能することができる。【００１８】
メモリ装置Ｅは、例えば、ＲＡＭ（Random  Access  Memory）やＥＥＰＲＯＭ（Electrically  Erasable  and  Programmable  Read  Only  Memory）である。インターフェース装置Ｆは、上記ネットワークとの接続等を制御する。【００１９】
入力装置Ｇは、例えば、キーボード、マウス、ボタン、タッチパッド、タッチパネル、マイク等である。また、表示装置Ｈは、例えば、ＬＣＤ（Liquid  Crystal  Display）やＣＲＴ（Cathode  Ray  Tube）等の表示装置である。サーバ１０及びサーバ１００は、表示装置Ｈの他、プリンタ、スピーカ等の他の種類の出力装置を備えてもよい。【００２０】
なお、サーバ１０及びサーバ１００が同じハードウェア構成を有する必要はなく、それぞれが、図２に示すハードウェアから一部の要素を削除、又は他の要素に置換したものであってよく、他の要素を付加したものであっても構わない。【００２１】
サーバ１０は、ＣＰＵがプログラムを実行することにより機能する機能部として、ジョブ管理部１０Ａと、予兆検知部１０Ｂと、仮想サーバ設定処理部１０Ｃと、経過情報送信部１０Ｄとを備える。【００２２】
また、サーバ１０は、図２における補助記憶装置Ｄ或いはメモリ装置Ｅとして機能する記憶装置１１を備える。記憶装置１１には、ジョブ情報１１Ａが格納される。【００２３】
サーバ１００は、ＣＰＵがプログラムを実行することにより機能する機能部として、スケジュール管理部１００Ａと、ジョブ実行管理部１００Ｂとを備える。また、サーバ１００は、図２における補助記憶装置Ｄ或いはメモリ装置Ｅとして機能する記憶装置１１０を備える。【００２４】
サーバ１０、１００が備える機能ブロックは、明確に分離したプログラムによって実現される必要はなく、サブルーチンや関数として他のプログラムによって呼び出されるものであってもよい。また、機能ブロックの一部が、ＬＳＩ（Large  Scale  Integrated  circuit）、ＩＣ（Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等のハードウェア手段であっても構わない。【００２５】
ジョブ管理部１０Ａは、例えば上記のように、種々の情報処理等を行う。ジョブ管理部１０Ａが行う処理は、例えばアプリケーションプログラムＡＰを包含するジョブＪＢが集合したジョブネットＪＮ単位で行われる。ジョブＪＢは、業務を処理するためのアプリケーションプログラムＡＰを包含しているオブジェクトであり、バッチファイル／シェルスクリプト、コマンドなどを含む。また、ジョブネットＪＮは、一連の流れを有する一以上のジョブＪＢの集合である。ジョブ管理部１０Ａは、情報処理を行うのに限らず、例えばデータ管理のための処理を行うものであってもよい。【００２６】
［予兆検知］
予兆検知部１０Ｂは、ジョブ管理部１０Ａが実行する処理が実行不能となる、フェールオーバが発生する予兆を示す事象が生じたか否かを検知する。「フェールオーバが発生する予兆を示す事象」は、例えば以下に列挙する事象のいずれか又は組み合わせである。予兆検知部１０Ｂは、このような事象が生じているかどうかを、例えば一定間隔で確認する。なお、予兆検知部１０Ｂは、事象毎に異なる確認間隔を設定してもよい。
（ハードウェアに関する事象）
・ＣＰＵを冷却する冷却ファンに異常が発生した
・ＣＰＵの縮退運転が発生した
・サーバ１０の電源ユニットに障害が発生した
・ネットワーク５０との通信インターフェースであるＮＩＣ（Network  Interface  Card）、或いはクライアントコンピュータとの通信を行うローカルＬＡＮやネットワーク５０に異常が発生した
・ネットワーク５０やサーバ１０、或いは上記ローカルＬＡＮ等が高負荷状態となった
・ディスク異常（ディスクＩ／Ｏのハングアップなど）が生じた
（ソフトウェアに関する事象）
・常駐プロセスが停止し、その後再起動された
・ＣＰＵ使用率が、長時間、閾値を超えた
・メモリ不足が生じた
・アプリケーションプログラムがハングアップした、或いはアプリケーションのレスポンス異常が検出された
［代替処理準備依頼］
予兆検知部１０Ｂが上記のような事象を検知すると、仮想サーバ設定処理部１０Ｃは、サーバ１００上に仮想サーバ１００Ｃを設定し、ジョブ管理部１０Ａと同等の処理すなわち代替処理を開始可能な状態となるように、サーバ１００に依頼する。以下、係る依頼を「代替処理準備依頼」と称する。図３は、代替処理準備依頼がなされた状態を示す図である。代替処理準備依頼は、例えば仮想サーバ設定処理部１０Ｃからサーバ１００に対して所定のフォーマットに従ったデータを送信することによって行われる。【００２７】
仮想サーバ設定処理部１０Ｃは、代替処理準備依頼を行う際に、記憶装置１１に格納されたジョブ情報１１Ａを、サーバ１００の記憶装置１１０に転送する。ジョブ情報１１Ａは、例えば、サーバ１０の名称及びＩＰアドレス、ジョブ名、ジョブ番号（ジョブＩＤ）、ジョブを構成するアプリケーションプログラムやバッチファイル等、ジョブの状態、スケジュール情報、ジョブの実行履歴（処理結果）を含む。【００２８】
また、仮想サーバ設定処理部１０Ｃは、代替処理準備依頼を行う際に、ジョブ管理部１０Ａの実行状態を確認するためのソフトウェアである「実行状態確認ツールＴＬ」をサーバ１００に送信する。【００２９】
サーバ１００のスケジュール管理部１００Ａ及びジョブ実行管理部１００Ｂは、記憶装置１１０に転送されたジョブ情報１１０Ａに基づいて仮想サーバ１００Ｃを設定する。また、記憶装置１１０に転送されたジョブの状態、スケジュール情報、ジョブの実行履歴は、スケジュール管理部１００Ａ及びジョブ実行管理部１００Ｂに処理パラメータとして入力される。これによって、仮想サーバ１００Ｃは、ジョブ管理部１０Ａと同等の処理すなわち代替処理が開始可能な状態となる。【００３０】
［経過情報送信］
経過情報送信部１０Ｄは、仮想サーバ設定処理部１０Ｃが代替処理準備依頼を行うと、ジョブ管理部１０Ａによるジョブの実行経過に応じて変化する経過情報を、例えば所定周期でサーバ１００に送信する。経過情報送信部１０Ｄが送信する経過情報は、例えばジョブの状態、スケジュール情報、ジョブの実行履歴であり、これらの情報によって記憶装置１１０に転送された情報が、最新の情報に書き換えられる。【００３１】
係る処理によって仮想サーバ１００Ｃは、代替処理準備依頼がなされた後、ジョブ管理部１０Ａによりジョブの実行が進行しジョブの状態等が変化した場合であっても、改めて状態情報を取得せずにフレッシュな状態情報を用いて代替処理を開始することができる。すなわち、仮想サーバ１００Ｃは、実際に代替処理を開始する際に、どこから処理を開始すれば良いのかを把握することができる。従って、仮想サーバ１００Ｃは、代替処理準備依頼がなされた後、代替処理が開始可能な状態を維持することができる。【００３２】
［実行状態確認］
サーバ１００の例えばＯＳ（オペレーティングシステム）は、サーバ１０から受信した実行状態確認ツールＴＬを実行して実行状態確認部１００Ｄを機能させる。【００３３】
実行状態確認部１００Ｄは、ジョブ管理部１０Ａの実行状態を確認するために、サーバ１０に対して実行状態確認コマンド（checkprocess）を、例えば所定周期で送信する。【００３４】
サーバ１０は、実行状態確認コマンドを受信すると、実行状態確認コマンドに記述された命令を実行する。図４は、実行状態確認コマンドを実行した結果、サーバ１０により行われる処理の流れを示すフローチャートの一例である。【００３５】
サーバ１０は、ジョブ管理部１０Ａ中に、ジョブ管理部１０Ａの稼働に必要な「メインプロセス」が存在するか否かを確認する（Ｓ４００）。【００３６】
ジョブ管理部１０Ａの稼働に必要な「メインプロセス」が存在する場合、サーバ１０は、ジョブ管理部１０Ａ上で動作しているジョブネットＪＮがスケジュール通りに実行されているか否かを確認する（Ｓ４０２）。【００３７】
「メインプロセス」が存在し、且つジョブネットＪＮがスケジュール通りに実行されている場合、サーバ１０は、復帰値１をサーバ１００に返信する（Ｓ４０４）。【００３８】
一方、「メインプロセス」が存在しない場合、或いはジョブネットがスケジュール通りに実行されていない場合、サーバ１０は、復帰値−１をサーバ１００に返信する（Ｓ４０６）。【００３９】
（代替処理開始）
実行状態確認部１００Ｄは、サーバ１０から復帰値−１を受信すると、ジョブ管理部１０Ａが実行する処理が実行不能となるフェールオーバが発生したと判断し、仮想サーバ１００Ｃに代替処理を開始させる。実行状態確認部１００Ｄは、例えばスケジュール管理部１００Ａに、フェールオーバが発生したことを通知する。スケジュール管理部１００Ａは、ジョブ実行管理部１００Ｂにフェールオーバが発生したことを通知する。そして、ジョブ実行管理部１００Ｂは、仮想サーバ１００Ｃにアプリケーションプログラムの実行を開始させる。仮想サーバ１００Ｃは、例えば、ジョブ管理部１０Ａに入力される入力情報をサーバ１０から取得し、ジョブ管理部１０Ａと同等の処理を行い、処理結果を記憶装置１１０に格納する。処理結果は、例えばジョブ情報１１０Ａの一部に追加される。図５は、代替処理が開始された状態を示す図である。【００４０】
（復旧処理）
実行状態確認部１００Ｄは、代替処理が開始された後も、サーバ１０に対して実行状態確認コマンドを、例えば所定周期で送信する。そして、実行状態確認部１００Ｄは、サーバ１０から復帰値１を受信すると、例えばスケジュール管理部１００Ａに、ジョブ管理部１０Ａが復旧可能であることを通知する。スケジュール管理部１００Ａは、ジョブ実行管理部１００Ｂにジョブ管理部１０Ａが復旧可能であることを通知する。そして、ジョブ実行管理部１００Ｂは、仮想サーバ１００Ｃにアプリケーションプログラムの実行を停止させる。係る実行停止指示に応じて仮想サーバ１００Ｃは、記憶装置１１０に格納された、仮想サーバ１００Ｃの処理結果を含むジョブ情報１１０Ａを、サーバ１０の記憶装置１１に転送する。このように、復旧に応じて仮想サーバ１００Ｃにアプリケーションプログラムの実行を停止させるため、代替処理開始後においても、不要な仮想サーバの稼働によるリソースの浪費を抑制することができる。【００４１】
以上の処理が完了すると、例えばサーバ１０の仮想サーバ設定処理部１０Ｃは、仮想サーバ１００Ｃ、実行状態確認部１１０Ｄ、及びジョブ情報１１０Ａを削除するようにサーバ１００に依頼する。以下、係る依頼を「削除依頼」と称する。図６は、図５に示す状態からジョブ管理部１０Ａが復旧する様子を示す図である。【００４２】
［代替処理準備終了依頼］
上記のように、代替処理の準備依頼後、実際にフェールオーバが発生した場合には、仮想サーバ１００Ｃにより代替処理が開始され、代替処理が開始された後に、復旧が可能であることが検出されると、仮想サーバ１００Ｃのアプリケーションプログラムの実行が停止される。【００４３】
ここでは、代替処理の準備依頼後、実際にはフェールオーバが発生しなかった場合について説明する。代替処理の準備依頼後、フェールオーバが発生しなかった場合、仮想サーバ設定処理部１０Ｃは、代替処理を開始可能な状態を終了するようにサーバ１００に依頼する。以下、係る依頼を「代替処理準備終了依頼」と称する。【００４４】
仮想サーバ設定処理部１０Ｃは、代替処理準備依頼をした後、設定条件が成立したときに、代替処理を開始可能な状態を終了するように、サーバ１００に依頼する。設定条件は、例えば、代替処理準備依頼をした時点から、ジョブ管理部１０Ａにフェールオーバが発生せずに所定期間が経過したことである。仮想サーバ設定処理部１０Ｃは、例えば代替処理準備依頼するとタイマによる計時を開始し、タイマの計時する時間が所定期間（例えば３０［ｍｉｎ］程度）経過すると、代替処理準備終了依頼を行う。所定期間は、予めデフォルト値として設定され、ユーザによって変更可能としてよい。【００４５】
代替処理準備終了依頼の内容は、仮想サーバ１００Ｃの停止依頼を含んでもよいし、仮想サーバ１００Ｃ、実行状態確認部１００Ｄ、及びジョブ情報１１０Ａを削除するようにサーバ１００に依頼することを含んでもよい。図７は、ジョブ管理部１０Ａにフェールオーバが発生せずに、所定期間が経過した状態を示す図である。【００４６】
係る処理によって、サーバ１０は、代替処理を開始可能な状態を維持するために必要なリソースの消費を抑制することができる。【００４７】
また、サーバ１００は、クラウドサービスを提供するサーバであるため、一般的に、仮想サーバ１００Ｃが設定されている時間に応じて課金する仕組みとなっている。従って、サーバ１０は、代替処理準備依頼をした後、フェールオーバが発生せずに所定期間が経過した場合に仮想サーバ１００Ｃを削除するように依頼することによって、そのまま仮想サーバ１００Ｃを存続（停止状態も含む）させるものに比して、課金額を低減することができる。また、サーバ１００が無償でサービスを提供し、或いはサーバ１０と同事業者によって運営される場合であっても、サーバ１００におけるメモリ容量や電力消費を低減することができるため、サーバ１０は、運用上のコストを低減することができる。【００４８】
なお、「予兆を示す事象を検知したとき」ではなく、「フェールオーバが発生したとき」に仮想サーバ１００Ｃを設定する場合、本実施例に比して更にコストを低減できるとも考えられる。しかしながら、この場合、サーバ１００は、迅速に代替処理を開始することができない場合がある。サーバ１０からクラウド環境下のサーバ１００に処理を移行させるには、ジョブ情報１１Ａをサーバ１００側にコピーする処理と、仮想サーバ１００Ｃをジョブ情報１１０Ａに基づいて生成する処理が必要となる。係る処理は、クラウド環境によっては比較的長い時間を要する場合があり、ジョブ管理部１０Ａが実行するジョブネットがリアルタイム性の高いものであれば、移行処理に要する時間によって実用性が損なわれる場合がある。従って、本実施例のように「予兆を示す事象を検知したとき」に仮想サーバ１００Ｃを設定させることによって、サーバ１００が、代替処理を迅速に開始することができる。【００４９】
［フローチャート］
図８は、第１実施例に係るサーバ１０の仮想サーバ設定処理部１０Ｃにより実行される処理の流れを示すフローチャートの一例である。本フローチャートは、例えば周期的に繰り返し実行される。【００５０】
まず、仮想サーバ設定処理部１０Ｃは、予兆検知部１０Ｂが、フェールオーバが発生する予兆を示す事象が生じたことを検知するまで待機する（Ｓ５００）。【００５１】
予兆検知部１０Ｂが、フェールオーバが発生する予兆を示す事象が生じたことを検知すると、仮想サーバ設定処理部１０Ｃは、代替処理準備依頼のためのデータをサーバ１００に送信する（Ｓ５０２）。【００５２】
次に、仮想サーバ設定処理部１０Ｃは、実行状態確認コマンドに対する応答としてサーバ１００に復帰値−１が返信されたか否かを判定する（Ｓ５０４）。【００５３】
実行状態確認コマンドに対する応答としてサーバ１００に復帰値−１が返信されなかった場合、仮想サーバ設定処理部１０Ｃは、代替処理準備依頼のためのデータを送信してから所定期間が経過したか否かを判定する（Ｓ５０６）。代替処理準備依頼のためのデータを送信してから所定期間が経過していない場合、仮想サーバ設定処理部１０Ｃは、Ｓ５０４に戻り、判定を行う。【００５４】
代替処理準備依頼を送信してから所定期間が経過すると、仮想サーバ設定処理部１０Ｃは、代替処理準備終了依頼のためのデータをサーバ１００に送信し（Ｓ５０８）、本フローチャートの１ルーチンを終了する。【００５５】
一方、実行状態確認コマンドに対する応答としてサーバ１００に復帰値−１が返信された場合、仮想サーバ設定処理部１０Ｃは、ジョブ管理部１０Ａに復旧処理を行わせ（Ｓ５１０）、本フローチャートの１ルーチンを終了する。【００５６】
図９は、第１実施例に係るサーバ１００により実行される処理の流れを示すフローチャートの一例である。本フローチャートは、例えば周期的に繰り返し実行される。【００５７】
まず、サーバ１００は、代替処理準備依頼のためのデータを受信するまで待機する（Ｓ５５０）。【００５８】
代替処理準備依頼のためのデータを受信すると、サーバ１００は、仮想サーバ１００Ｃと実行状態確認部１００Ｄを設定する（Ｓ５５２）。【００５９】
次に、サーバ１００の実行状態確認部１００Ｄは、ジョブ管理部１０Ａにフェールオーバが発生したか否かを判定する（Ｓ５５４）。【００６０】
ジョブ管理部１０Ａにフェールオーバが発生していない場合、サーバ１００は、代替処理準備終了依頼のためのデータを受信したか否かを判定する（Ｓ５５６）。代替処理準備終了依頼のためのデータを受信していない場合、サーバ１００は、Ｓ５５４に戻り、実行状態確認部１００Ｄによる判定を行う。【００６１】
代替処理準備終了依頼のためのデータを受信すると、サーバ１００は、仮想サーバ１００Ｃ、実行状態確認部１００Ｄ、及びジョブ情報１１０Ａを削除し（Ｓ５５８）、本フローチャートの１ルーチンを終了する。【００６２】
一方、ジョブ管理部１０Ａにフェールオーバが発生した場合、サーバ１００は、代替処理を開始する（Ｓ５６０）。【００６３】
代替処理を開始すると、サーバ１００の実行状態確認部１００Ｄは、ジョブ管理部１０Ａが復旧可能であるか否かを判定する（Ｓ５６２）。本判定は、前述のように、実行状態確認コマンドの復帰値を参照して行われる。ジョブ管理部１０Ａが復旧可能でない場合、実行状態確認部１００Ｄは、Ｓ５６２の判定を周期的に繰り返し実行する。【００６４】
実行状態確認部１００Ｄによりジョブ管理部１０Ａが復旧可能であると判定されると、サーバ１００の仮想サーバ１００Ｃは、ジョブ情報１１０Ａをサーバ１０の記憶装置１１に転送する（Ｓ５６４）。【００６５】
次に、サーバ１００は、サーバ１０から削除依頼を受信するまで待機し（Ｓ５６６）、削除依頼を受信すると、仮想サーバ１００Ｃ、実行状態確認部１００Ｄ、及びジョブ情報１１０Ａを削除し（Ｓ５６８）、本フローチャートの１ルーチンを終了する。【００６６】
［まとめ］
以上説明した本発明の第１実施例に係る処理装置、処理システム、及びプログラムによれば、代替処理準備依頼をした時点からフェールオーバが発生せずに所定期間が経過した場合に代替処理準備終了依頼を行うため、リソースの浪費の抑制を図ることができる。【００６７】
また、本発明の第１実施例に係る処理装置、処理システム、及びプログラムによれば、代替処理準備依頼を行った後、ジョブの実行経過に応じて変化する経過情報を送信するため、代替処理が開始可能な状態を維持することができる。【００６８】
なお、請求項１における「処理部」は、例えばジョブ管理部１０Ａに対応し、「制御部」は、例えば仮想サーバ設定処理部１０Ｃに対応し、「処理装置」は、例えばサーバ１０に対応し、「代替処理装置」は、例えばサーバ１００に対応する。【００６９】
＜第２実施例＞
以下、図面を参照し、本発明の第２実施例に係る処理装置、処理システム、及びプログラムについて説明する。【００７０】
［全体構成］
図１０は、本発明の第２実施例に係る処理システム２のシステム構成例である。処理システム２は、サーバ２０、２２、２５と、サーバ２００とを備える。【００７１】
サーバ２０、２２は、例えばシステムの自動運転処理等、スケジュールに従った自発的な処理を行う。また、これに限らず、サーバ２０、２２は、ＬＡＮを介してクライアントコンピュータに接続され、クライアントコンピュータからの要求に応じた処理を行い、処理結果をクライアントコンピュータに提供するものであってもよい。また、サーバ２０、２２は、オペレータ等により図示しない入出力手段に対して入力された要求に応じた処理を行ってもよい。【００７２】
サーバ２０とサーバ２２は、例えば通信線２７によって接続されている。サーバ２５は、通信線２７に接続され、後述するようにサーバ２０、２２の監視を行う。【００７３】
サーバ２５が監視するサーバの数は、図１０に示す二個に限らず、如何なる数であってもよい。【００７４】
また、サーバ２０、２２、２５とサーバ２００は、例えばインターネット等のネットワーク５０によって接続されている。サーバ２００は、サーバ２０、２２、２５その他のネットワーク５０に接続された装置に対して、クラウドサービスを提供する。【００７５】
本実施例では、サーバ２０、２２、２５及びサーバ２００のハードウェア構成については、第１実施例に係るサーバ１０等と同様であるため、図２を参照することとし、説明を省略する。【００７６】
サーバ２０は、ＣＰＵがプログラムを実行することにより機能する機能部として、ジョブ管理部２０Ａと、仮想サーバ設定処理部２０Ｃと、経過情報送信部２０Ｄとを備える。同様に、サーバ２２は、ＣＰＵがプログラムを実行することにより機能する機能部として、ジョブ管理部２２Ａと、仮想サーバ設定処理部２２Ｃと、経過情報送信部２２Ｄとを備える。【００７７】
サーバ２５は、ＣＰＵがプログラムを実行することにより機能する機能部として、予兆検知部２５Ｂと、実行状態確認部２５Ｄとを備える。【００７８】
また、サーバ２０は、補助記憶装置或いはメモリ装置として機能する記憶装置２１を備える。記憶装置２１には、ジョブ情報２１Ａが格納される。また、サーバ２２は、補助記憶装置或いはメモリ装置として機能する記憶装置２３を備える。記憶装置２３には、ジョブ情報２３Ａが格納される。【００７９】
サーバ２００は、ＣＰＵがプログラムを実行することにより機能する機能部として、スケジュール管理部２００Ａと、ジョブ実行管理部２００Ｂとを備える。また、サーバ２００は、補助記憶装置或いはメモリ装置として機能する記憶装置２１０を備える。【００８０】
サーバ２０、２２、２５、２００が備える機能ブロックは、明確に分離したプログラムによって実現される必要はなく、サブルーチンや関数として他のプログラムによって呼び出されるものであってもよい。また、機能ブロックの一部が、ＬＳＩ、ＩＣやＦＰＧＡ等のハードウェア手段であっても構わない。【００８１】
ジョブ管理部２０Ａ、２２Ａは、例えば上記のように、種々の情報処理を行う。ジョブ管理部２０Ａ、２２Ａが行う処理は、例えばアプリケーションプログラムＡＰを包含するジョブＪＢが集合したジョブネットＪＮ単位で行われる。ジョブＪＢは、業務を処理するためのアプリケーションプログラムＡＰを包含しているオブジェクトであり、バッチファイル／シェルスクリプト、コマンドなどを含む。また、ジョブネットＪＮは、一連の流れを有する一以上のジョブＪＢの集合である。ジョブ管理部１０Ａは、情報処理を行うのに限らず、例えばデータ管理のための処理を行うものであってもよい。【００８２】
［予兆検知］
本実施例のサーバ２５は、サーバ２０、２２に関してフェールオーバの監視を行う。サーバ２５の予兆検知部２５Ｂは、ジョブ管理部２０Ａ、２２Ａにフェールオーバが発生する予兆を示す事象が生じたか否かを検知する。「フェールオーバが発生する予兆を示す事象」については、第１実施例と同様であるため、説明を省略する。予兆検知部２５Ｂは、フェールオーバが発生する予兆を示す事象が生じているかどうかを、例えば一定間隔で確認する。なお、予兆検知部２５Ｂは、事象毎に異なる確認間隔を設定してもよい。【００８３】
予兆検知部２５Ｂは、サーバ２０に関してフェールオーバが発生する予兆を示す事象を検知すると、その旨を通知するための予兆検知信号をサーバ２０に送信する。また、予兆検知部２５Ｂは、サーバ２２に関してフェールオーバが発生する予兆を示す事象を検知すると、その旨を通知するための予兆検知信号をサーバ２２に送信する。【００８４】
なお、このような一括監視はあくまで一例であり、本実施例の処理システムは、例えばサーバＡ、Ｂ、Ｃが存在する場合に、サーバＡがサーバＢの監視を行い、サーバＢがサーバＣの監視を行い、サーバＣがサーバＡの監視を行う循環的な監視を行ってもよい。また、本実施例の処理システムは、一対のサーバが互いに監視を行う相互的な監視を行ってもよい。【００８５】
［代替処理準備依頼］
サーバ２０の仮想サーバ設定処理部２０Ｃは、予兆検知信号を受信すると、サーバ２００上に仮想サーバ２００Ｃａを設定し、ジョブ管理部２０Ａと同等の処理すなわち代替処理を開始可能な状態となるように、サーバ２００に依頼する。【００８６】
また、サーバ２２の仮想サーバ設定処理部２２Ｃは、予兆検知信号を受信すると、サーバ２００上に仮想サーバ２００Ｃｂを設定し、ジョブ管理部２２Ａと同等の処理すなわち代替処理を開始可能な状態となるように、サーバ２００に依頼する。以下、これらの処理を「代替処理準備依頼」と称する。図１１は、仮想サーバ設定処理部２０Ｃ、２２Ｃから代替処理準備依頼がなされた状態を示す図である。代替処理準備依頼は、例えば仮想サーバ設定処理部２０Ｃ、２０Ｄからサーバ２００に対して所定のフォーマットに従ったデータを送信することによって行われる。【００８７】
仮想サーバ設定処理部２０Ｃは、代替処理準備依頼を行う際に、記憶装置２１に格納されたジョブ情報２１Ａを、サーバ２００の記憶装置２１０に転送する。ジョブ情報２１Ａは、例えば、サーバ２０の名称及びＩＰアドレス、ジョブ名、ジョブ番号（ジョブＩＤ）、ジョブを構成するアプリケーションプログラムやバッチファイル等、ジョブの状態、スケジュール情報、ジョブの実行履歴（処理結果）を含む。【００８８】
同様に、仮想サーバ設定処理部２２Ｃは、代替処理準備依頼を行う際に、記憶装置２３に格納されたジョブ情報２３Ａを、サーバ２００の記憶装置２１０に転送する。ジョブ情報２３Ａには、例えば、サーバ２２の名称及びＩＰアドレス、ジョブ名、ジョブ番号（ジョブＩＤ）、ジョブを構成するアプリケーションプログラムやバッチファイル等、ジョブの状態、スケジュール情報、ジョブの実行履歴（処理結果）が含まれる。【００８９】
サーバ２００のスケジュール管理部２００Ａ及びジョブ実行管理部２００Ｂは、代替処理準備依頼を行ったサーバ毎に、仮想サーバを設定する。すなわち、サーバ２００のスケジュール管理部２００Ａ及びジョブ実行管理部２００Ｂは、仮想サーバ設定処理部２０Ｃによって記憶装置２１０に転送されたジョブ情報２１０Ａａに基づいて仮想サーバ２００Ｃａを設定する。同様に、サーバ２００のスケジュール管理部２００Ａ及びジョブ実行管理部２００Ｂは、仮想サーバ設定処理部２２Ｃによって記憶装置２１０に転送されたジョブ情報２１０Ａｂに基づいて仮想サーバ２００Ｃｂを設定する。また、記憶装置２１０に転送されたジョブの状態、スケジュール情報、ジョブの実行履歴は、スケジュール管理部２００Ａ及びジョブ実行管理部２００Ｂに処理パラメータとして入力される。これによって、仮想サーバ２００Ｃａ、２００Ｃｂは、ジョブ管理部２０Ａ、２２Ａと同等の処理すなわち代替処理が開始可能な状態となる。【００９０】
［経過情報送信］
経過情報送信部２０Ｄは、仮想サーバ設定処理部２０Ｃが代替処理準備依頼を行うと、ジョブ管理部２０Ａによるジョブの実行経過に応じて変化する経過情報を、例えば所定周期でサーバ２００に送信する。経過情報送信部２０Ｄが送信する経過情報は、例えばジョブの状態、スケジュール情報、ジョブの実行履歴であり、これらの情報によって記憶装置２１０に転送された情報が書き換えられる。【００９１】
同様に、経過情報送信部２２Ｄは、仮想サーバ設定処理部２２Ｃが代替処理準備依頼を行うと、ジョブ管理部２２Ａによるジョブの実行経過に応じて変化する経過情報を、例えば所定周期でサーバ２００に送信する。経過情報送信部２２Ｄが送信する経過情報は、例えばジョブの状態、スケジュール情報、ジョブの実行履歴であり、これらの情報によって記憶装置２１０に転送された情報が書き換えられる。【００９２】
係る処理によって仮想サーバ２００Ｃａは、代替処理準備依頼がなされた後、ジョブ管理部２０Ａによりジョブの実行が進行しジョブの状態等が変化した場合であっても、改めて状態情報を取得せずにフレッシュな状態情報を用いて代替処理を開始することができる。同様に、仮想サーバ２００Ｃｂは、代替処理準備依頼がなされた後、ジョブ管理部２２Ａによりジョブの実行が進行しジョブの状態等が変化した場合であっても、改めて状態情報を取得せずにフレッシュな状態情報を用いて代替処理を開始することができる。すなわち、仮想サーバ２００Ｃａ、２００Ｃｂは、実際に代替処理を開始する際に、どこから処理を開始すれば良いのかを把握することができる。従って、仮想サーバ２００Ｃａ、２００Ｃｂは、代替処理準備依頼がなされた後、代替処理が開始可能な状態を維持することができる。【００９３】
［実行状態確認］
サーバ２５の実行状態確認部２５Ｄは、ジョブ管理部２０Ａ、２２Ｂの実行状態を確認するために、サーバ２０、２２に対して実行状態確認コマンド（checkprocess）を、例えば所定周期で送信する。実行状態確認コマンドの送信は、フェールオーバが発生する予兆を示す事象が検知されたサーバに対して行われる。【００９４】
サーバ２０、２２は、実行状態確認コマンドを受信すると、実行状態確認コマンドに記述された命令を実行する。実行状態確認コマンドを実行した結果として行われる処理の流れについては、第１実施例で図４を用いて説明したものと同様であるため、説明を省略する。実行状態確認コマンドの復帰値は、サーバ２５の実行状態確認部２５Ｄに返信される。【００９５】
（代替処理開始）
実行状態確認部２５Ｄは、サーバ２０又は２２から復帰値−１を受信すると、ジョブ管理部２０Ａ又は２０Ｂが実行する処理が実行不能となるフェールオーバが発生したと判断し、サーバ２００に代替処理を開始させる。実行状態確認部２５Ｄは、例えばスケジュール管理部２００Ａに、該当するサーバにフェールオーバが発生したことを示すフェールオーバ発生通知を送信する。以下の説明では、サーバ２２のジョブ管理部２２Ａにフェールオーバが発生したものとして説明するが、サーバ２０に関しても同様である。スケジュール管理部２００Ａは、ジョブ実行管理部２００Ｂに、サーバ２２のジョブ管理部２２Ａにフェールオーバが発生したことを通知する。ジョブ実行管理部２００Ｂは、仮想サーバ２００Ｃｂにアプリケーションプログラムの実行を開始させる。仮想サーバ２００Ｃｂは、例えば、ジョブ管理部２２Ａに入力される入力情報をサーバ２２から取得し、ジョブ管理部２２Ａと同等の処理を行い、処理結果を記憶装置２１０に格納する。処理結果は、例えばジョブ情報２１０Ａｂの一部に追加される。図１２は、ジョブ管理部２２Ａの代替処理が開始された状態を示す図である。【００９６】
（復旧処理）
実行状態確認部２５Ｄは、代替処理が開始された後も、サーバ２０、２２に対して実行状態確認コマンドを、例えば所定周期で送信する。そして、実行状態確認部２５Ｄは、代替処理が開始されたサーバから復帰値１を受信すると、例えばスケジュール管理部２００Ａに、当該サーバのジョブ管理部が復旧可能であることを示す復旧可能通知を送信する。以下、サーバ２２に関してのみ説明するが、サーバ２０についても同様の処理が行われる。ジョブ管理部２２Ａについての復旧可能通知を受信したスケジュール管理部２００Ａは、ジョブ実行管理部２００Ｂに、ジョブ管理部２２Ａが復旧可能であることを通知する。そして、ジョブ実行管理部２００Ｂは、仮想サーバ２００Ｃｂにアプリケーションプログラムの実行を停止させる。係る停止指示に応じて仮想サーバ２００Ｃｂは、記憶装置２１０に格納された、仮想サーバ２００Ｃｂの処理結果を含むジョブ情報２１０Ａｂを、サーバ２２の記憶装置２３に転送する。以上の処理が完了すると、サーバの仮想サーバ設定処理部２２Ｃは、仮想サーバ２００Ｃｂ、及びジョブ情報２１０Ａｂを削除するようにサーバ２００に依頼する。以下、係る依頼を「削除依頼」と称する。図１３は、図１２に示す状態からジョブ管理部２２Ａが復旧する様子を示す図である。【００９７】
［代替処理準備終了依頼］
上記のように、実際にフェールオーバが発生した場合には、仮想サーバにより代替処理が開始されるが、フェールオーバが発生しなかった場合には、仮想サーバ設定処理部２０Ｃ、２２Ｃが、代替処理を開始可能な状態を終了するようにサーバ２００に依頼する。以下、係る依頼を「代替処理準備終了依頼」と称する。【００９８】
仮想サーバ設定処理部２０Ｃは、代替処理準備依頼をした後、設定条件が成立したときに、代替処理を開始可能な状態を終了するように、サーバ２００に依頼する。設定条件は、例えば、代替処理準備依頼をした時点から、ジョブ管理部２０Ａにフェールオーバが発生せずに所定期間が経過したことである。仮想サーバ設定処理部２０Ｃは、代替処理準備依頼するとタイマによる計時を開始し、タイマの計時する時間が所定期間（例えば３０［ｍｉｎ］程度）経過すると、代替処理準備終了依頼を行う。所定期間は、予めデフォルト値として設定され、ユーザによって変更可能としてよい。【００９９】
同様に、仮想サーバ設定処理部２２Ｃは、代替処理準備依頼をした後、設定条件が成立したときに、代替処理を開始可能な状態を終了するように、サーバ２００に依頼する。設定条件は、例えば、代替処理準備依頼をした時点から、ジョブ管理部２２Ａにフェールオーバが発生せずに所定期間が経過したことである。仮想サーバ設定処理部２２Ｃは、代替処理準備依頼するとタイマによる計時を開始し、タイマの計時する時間が所定期間（例えば３０［ｍｉｎ］程度）経過すると、代替処理準備終了依頼を行う。所定期間は、予めデフォルト値として設定され、ユーザによって変更可能としてよい。【０１００】
仮想サーバ設定処理部２０Ｃによる代替処理準備終了依頼の内容は、仮想サーバ２００Ｃａ、及びジョブ情報２１０Ａａを削除するようにサーバ２００に依頼することを含む。仮想サーバ設定処理部２２Ｃによる代替処理準備終了依頼の内容は、仮想サーバ２００Ｃｂ、及びジョブ情報２１０Ａｂを削除するようにサーバ２００に依頼することを含む。図１４は、ジョブ管理部２０Ａにフェールオーバが発生せずに、所定期間が経過した状態を示す図である。なお、図１４は、ジョブ管理部２２Ａにはフェールオーバが発生し、代替処理が開始されている状態を示している。【０１０１】
係る処理によって、サーバ２０、２２は、運用上のコストを低減することができる。サーバ２００は、クラウドサービスを提供するサーバであるため、一般的に、各仮想サーバが設定されている時間に応じて課金する仕組みとなっている。従って、サーバ２０、２２は、代替処理準備依頼をした時点からフェールオーバが発生せずに所定期間が経過した場合に該当する仮想サーバを削除するように依頼することによって、そのまま仮想サーバを存続させるものに比して、課金額を低減することができる。また、サーバ２００が無償でサービスを提供し、或いはサーバ２０、２２と同事業者によって運営される場合であっても、サーバ２００におけるメモリ容量や電力消費を低減することができるため、サーバ２０、２２は、運用上のコストを低減することができる。【０１０２】
［フローチャート］
図１５は、第２実施例に係るサーバ２０、２２の仮想サーバ設定処理部２０Ｃ、２２Ｃにより実行される処理の流れを示すフローチャートの一例である。本フローチャートは、例えば周期的に繰り返し実行される。なお、図１５及び図１６は、サーバ２０に関するものとして説明するが、サーバ２２に関しても同様の処理が行われる。【０１０３】
まず、仮想サーバ設定処理部２０Ｃは、予兆検知部２５Ｂから予兆検知信号を受信するまで待機する（Ｓ６００）。【０１０４】
予兆検知部２５Ｂから予兆検知信号を受信すると、仮想サーバ設定処理部２０Ｃは、代替処理準備依頼のためのデータをサーバ２００に送信する（Ｓ６０２）。【０１０５】
次に、仮想サーバ設定処理部２０Ｃは、実行状態確認コマンドに対する応答としてサーバ２００に復帰値−１が返信したか否かを判定する（Ｓ６０４）。【０１０６】
実行状態確認コマンドに対する応答としてサーバ２００に復帰値−１が返信されなかった場合、仮想サーバ設定処理部２０Ｃは、代替処理準備依頼のためのデータを送信してから所定期間が経過したか否かを判定する（Ｓ６０６）。代替処理準備依頼のためのデータを送信してから所定期間が経過していない場合、仮想サーバ設定処理部２０Ｃは、Ｓ６０４に戻り、判定を行う。【０１０７】
代替処理準備依頼のためのデータを送信してから所定期間が経過すると、仮想サーバ設定処理部２０Ｃは、代替処理準備終了依頼をサーバ２００に送信し（Ｓ６０８）、本フローチャートの１ルーチンを終了する。【０１０８】
一方、実行状態確認コマンドに対する応答としてサーバ２００に復帰値−１が返信された場合、仮想サーバ設定処理部２０Ｃは、ジョブ管理部２０Ａに復旧処理を行わせ（Ｓ６１０）、本フローチャートの１ルーチンを終了する。【０１０９】
図１６は、第２実施例に係るサーバ２００により実行される処理の流れを示すフローチャートの一例である。本フローチャートは、例えば周期的に繰り返し実行される。【０１１０】
まず、サーバ２００は、サーバ２０から代替処理準備依頼のためのデータを受信するまで待機する（Ｓ６５０）。【０１１１】
サーバ２０から代替処理準備依頼のためのデータを受信すると、サーバ２００は、仮想サーバ２００Ｃａを設定する（Ｓ６５２）。【０１１２】
次に、サーバ２００は、実行状態確認部２５Ｄからフェールオーバ発生通知を受信したか否かを判定する（Ｓ６５４）。【０１１３】
実行状態確認部２５Ｄからフェールオーバ発生通知を受信しなかった場合、サーバ２００は、サーバ２０から代替処理準備終了依頼のためのデータを受信したか否かを判定する（Ｓ６５６）。サーバ２０から代替処理準備終了依頼のためのデータを受信していない場合、サーバ２００は、Ｓ６５４に戻り、判定を行う。【０１１４】
代替処理準備終了依頼のためのデータを受信すると、サーバ２００は、仮想サーバ２００Ｃａ、及びジョブ情報２１０Ａａを削除し（Ｓ６５８）、本フローチャートの１ルーチンを終了する。【０１１５】
一方、実行状態確認部２５Ｄからフェールオーバ発生通知を受信した場合、サーバ２００は、代替処理を開始する（Ｓ６６０）。【０１１６】
代替処理を開始すると、サーバ２００の図示しないＯＳは、実行状態確認部２５Ｄからジョブ管理部２０Ａが復旧可能であることを示す復旧可能通知を受信するまで待機する（Ｓ６６２）。【０１１７】
ジョブ管理部２０Ａが復旧可能であることを示す復旧可能通知を受信すると、サーバ２００の仮想サーバ２００Ｃａは、ジョブ情報２１０Ａａをサーバ２０の記憶装置２１に転送する（Ｓ６６４）。【０１１８】
次に、サーバ２００は、サーバ２０から削除依頼を受信するまで待機し（Ｓ６６６）、サーバ２０から削除依頼を受信すると、仮想サーバ２００Ｃａ、及びジョブ情報２１０Ａａを削除し（Ｓ６６８）、本フローチャートの１ルーチンを終了する。【０１１９】
［まとめ］
以上説明した本発明の第２実施例に係る処理装置、処理システム、及びプログラムによれば、代替処理準備依頼をした時点からフェールオーバが発生せずに所定期間が経過した場合に代替処理準備終了依頼を行うため、リソースの浪費の抑制を図ることができる。【０１２０】
また、本発明の第２実施例に係る処理装置、処理システム、及びプログラムによれば、代替処理準備依頼を行った後、ジョブの実行経過に応じて変化する経過情報を送信するため、代替処理が開始可能な状態を維持することができる。【０１２１】
本実施例では、サーバ２５が実行状態確認部２５Ｄを備え、フェールオーバが生じたか否かを確認するものとしたが、第１実施例と同様に、サーバ２０、２２、２５のいずれかが実行状態確認ツールＴＬをサーバ２００に送信して実行状態確認を行わせてもよい。【０１２２】
なお、請求項１の「処理部」は、例えばジョブ管理部２０Ａ、２２Ａに対応し、「制御部」は、例えば仮想サーバ設定処理部２０Ｃ、２２Ｃに対応し、「処理装置」は、例えばサーバ２０、２２に対応し、「代替処理装置」は、例えばサーバ２００に対応する。【０１２３】
また、請求項５の「実行状態確認部」は、例えば実行状態確認部２５Ｄに対応する。【０１２４】
＜第３実施例＞
以下、図面を参照し、本発明の第３実施例に係る処理装置、処理システム、及びプログラムについて説明する。【０１２５】
［全体構成］
図１７は、本発明の第３実施例に係る処理システム３のシステム構成例である。処理システム３は、サーバ３０と、サーバ３２と、共有メモリ３５とを備える。【０１２６】
サーバ３０は、例えばシステムの自動運転処理等、スケジュールに従った自発的な処理を行う。また、これに限らず、サーバ３０は、ＬＡＮを介してクライアントコンピュータに接続され、クライアントコンピュータからの要求に応じた処理を行い、処理結果をクライアントコンピュータに提供するものであってもよい。また、サーバ３０は、オペレータ等により図示しない入出力手段に対して入力された要求に応じた処理を行ってもよい。【０１２７】
サーバ３０とサーバ３２は、例えば通信線３７によって接続されている。サーバ３２は、サーバ３０の代替処理装置として機能する。また、サーバ３０、３２は、例えばメモリバス３８によって共有メモリ３５にアクセス可能となっている。【０１２８】
本実施例では、サーバ３０、３２のハードウェア構成については、第１実施例に係るサーバ１０等と同様であるため、図２を参照することとし、説明を省略する。【０１２９】
サーバ３０は、ＣＰＵが図示しない補助記憶装置に格納されたプログラムを実行することにより機能する機能部として、ジョブ管理部３０Ａと、予兆検知部３０Ｂと、起動制御部３０Ｃとを備える。同様に、サーバ３２は、ＣＰＵが図示しない補助記憶装置に格納されたプログラムを実行することにより機能する機能部として、ジョブ管理部３２Ａと、実行状態確認部３２Ｄと、を備える。【０１３０】
サーバ３０、３２が備える機能ブロックは、明確に分離したプログラムによって実現される必要はなく、サブルーチンや関数として他のプログラムによって呼び出されるものであってもよい。また、機能ブロックの一部が、ＬＳＩ、ＩＣやＦＰＧＡ等のハードウェア手段であっても構わない。【０１３１】
共有メモリ３５は、例えば補助記憶装置やメモリ装置であり、ジョブ情報３５Ａが格納される。【０１３２】
ジョブ管理部３０Ａは、例えば上記のように、種々の情報処理を行う。ジョブ管理部３０Ａが行う処理は、アプリケーションプログラムＡＰを包含するジョブＪＢが集合したジョブネットＪＮ単位で行われる。ジョブＪＢは、業務を処理するためのアプリケーションプログラムＡＰを包含しているオブジェクトであり、バッチファイル／シェルスクリプト、コマンドなどを含む。また、ジョブネットＪＮは、一連の流れを有する一以上のジョブＪＢの集合である。ジョブ管理部３０Ａは、情報処理を行うのに限らず、例えばデータ管理のための処理を行うものであってもよい。ジョブ管理部３０Ａが行った処理の結果、履歴等は、共有メモリ３５にジョブ情報３５Ａとして格納される。【０１３３】
ジョブ情報３５Ａは、例えば、ジョブ名、ジョブ番号（ジョブＩＤ）、ジョブの状態、スケジュール情報、ジョブの実行履歴（処理結果）を含む。本実施例において、ジョブ管理部３０Ａが実行するアプリケーションプログラムやバッチファイル等は、代替処理装置として機能するサーバ３２が保持しているため、必ずしもジョブ情報３５Ａに含まれる必要はない。【０１３４】
［予兆検知］
予兆検知部３０Ｂは、ジョブ管理部３０Ａが実行する処理が実行不能となる、フェールオーバが発生する予兆を示す事象が生じたか否かを検知する。「フェールオーバが発生する予兆を示す事象」については、第１実施例と同様であるため、説明を省略する。予兆検知部３０Ｂは、フェールオーバが発生する予兆を示す事象が生じているかどうかを、例えば一定間隔で確認する。なお、予兆検知部３０Ｂは、事象毎に異なる確認間隔を設定してもよい。【０１３５】
予兆検知部３０Ｂは、ジョブ管理部３０Ａについてフェールオーバが発生する予兆を示す事象を検知すると、その旨を起動制御部３０Ｃに出力する。【０１３６】
［サーバ３２の起動］
起動制御部３０Ｃは、予兆検知部３０Ｂが予兆を示す事象を検知すると、サーバ３２の図示しない電源回路及びＯＳ等に指示し、サーバ３２を起動状態にする。【０１３７】
サーバ３２は、ジョブ情報３５Ａを参照すればサーバ３０と同等の処理すなわち代替処理を行うジョブ管理部３２Ａを機能させるためのプログラムを、予め補助記憶装置等に保持している。従って、サーバ３２は、起動制御部３０Ｃによって起動されると、メインプロセスを起動させてジョブ管理部３２Ａが動作可能な状態となり、ジョブ管理部３０Ａの代替処理を開始可能な状態となる。図１８は、サーバ３２が起動される様子を示す図である。【０１３８】
［実行状態確認］
サーバ３２の実行状態確認部３２Ｄは、ジョブ管理部３０Ａの実行状態を確認するために、サーバ３０に対して実行状態確認コマンド（checkprocess）を、例えば所定周期で送信する。【０１３９】
サーバ３０は、実行状態確認コマンドを受信すると、実行状態確認コマンドに記述された命令を実行する。実行状態確認コマンドを実行した結果として行われる処理の流れについては、第１実施例で図４を用いて説明したものと同様であるため、説明を省略する。実行状態確認コマンドの復帰値は、サーバ３２の実行状態確認部３２Ｄに返信される。【０１４０】
（代替処理開始）
実行状態確認部３２Ｄは、サーバ３０から復帰値−１を受信すると、ジョブ管理部３０Ａが実行する処理が実行不能となるフェールオーバが発生したと判断し、ジョブ管理部３２Ａに代替処理を開始させる。ジョブ管理部３２Ａは、例えば、ジョブ管理部３０Ａに入力される入力情報をサーバ３０から取得し、ジョブ管理部３０Ａと同等の処理を行い、処理結果を共有メモリ３５に格納する。処理結果は、例えばジョブ情報３５Ａの一部に追加される。図１９は、ジョブ管理部３０Ａにより代替処理が開始された状態を示す図である。【０１４１】
（復旧処理）
実行状態確認部３２Ｄは、代替処理が開始された後も、サーバ３０に対して実行状態確認コマンドを、例えば所定周期で送信する。そして、実行状態確認部３２Ｄは、サーバ３０から復帰値１を受信すると、ジョブ管理部３２Ａに代替処理を停止させ、サーバ３０をシャットダウンしてサーバ３０の電源をオフにする。【０１４２】
［代替処理準備終了］
上記のように、実際にフェールオーバが発生した場合には、ジョブ管理部３２Ａにより代替処理が開始されるが、フェールオーバが発生しなかった場合には、起動制御部３０Ｃが、サーバ３２をシャットダウンしてサーバ３２の電源をオフにする制御を行う。【０１４３】
起動制御部３０Ｃは、サーバ３２を起動させた後、設定条件が成立したときに、サーバ３２をシャットダウンしてサーバ３２の電源をオフにする制御を行う。設定条件は、例えば、サーバ３２を起動した時点から（或いはジョブ管理部３２Ａのメインプロセスを起動した時点から）、ジョブ管理部３０Ａにフェールオーバが発生せずに所定期間が経過したことである。起動制御部３０Ｃは、サーバ３２を起動するとタイマによる計時を開始し、タイマの計時する時間が所定期間（例えば３０［ｍｉｎ］程度）経過すると、サーバ３２をシャットダウンしてサーバ３２の電源をオフにする。所定期間は、予めデフォルト値として設定され、ユーザによって変更可能としてよい。図２０は、ジョブ管理部３０Ａにフェールオーバが発生せずに、所定期間が経過した状態を示す図である。【０１４４】
係る処理によって、サーバ３０、３２は、運用上のコストを低減することができる。サーバ３２は、起動されて代替処理を開始可能な状態となってから、実際にフェールオーバが発生せずに所定期間経過すればシャットダウンされるため、電力消費を低減することができる。また、サーバ３０、３２の双方がアクセス可能な共有メモリ３５にジョブの実行結果等を格納することにより、サーバ３２は代替処理を開始可能な状態を維持することができる。この結果、サーバ３０、３２は、サーバ間の処理の受け渡しを迅速に行うことができる。【０１４５】
［フローチャート］
図２１は、第３実施例に係るサーバ３０の起動制御部３０Ｃにより実行される処理の流れを示すフローチャートの一例である。本フローチャートは、例えば周期的に繰り返し実行される。【０１４６】
まず、起動制御部３０Ｃは、予兆検知部３０Ｂが、フェールオーバが発生する予兆を示す事象が生じたことを検知したか否かを判定する（Ｓ７００）。【０１４７】
予兆検知部３０Ｂが、フェールオーバが発生する予兆を示す事象が生じたことを検知すると、起動制御部３０Ｃは、サーバ３２を起動させる（Ｓ７０２）。【０１４８】
次に、起動制御部３０Ｃは、実行状態確認コマンドに対する応答としてサーバ３２に復帰値−１が返信されたか否かを判定する（Ｓ７０４）。【０１４９】
実行状態確認コマンドに対する応答としてサーバ３２に復帰値−１が返信された場合、起動制御部３０Ｃは、ジョブ管理部３０Ａに復旧処理を行わせる（Ｓ７０６）。【０１５０】
図２２は、第３実施例に係るサーバ３２の実行状態確認部３２Ｄにより実行される処理の流れを示すフローチャートの一例である。本フローチャートは、サーバ３２が起動されたときに開始される。【０１５１】
まず、実行状態確認部３２Ｄは、ジョブ管理部３２Ａを機能させるためのメインプロセスを起動させる（Ｓ７５０）。【０１５２】
次に、実行状態確認部３２Ｄは、サーバ３０から復帰値−１を受信したか否かを判定する（Ｓ７５２）。【０１５３】
サーバ３０から復帰値−１を受信した場合、実行状態確認部３２Ｄは、ジョブ管理部３２Ａにジョブ管理部３０Ａの代替処理を開始させる（Ｓ７５４）。【０１５４】
次に、実行状態確認部３２Ｄは、サーバ３０から復帰値１を受信するまで待機する（Ｓ７５６）。サーバ３０から復帰値１を受信すると、実行状態確認部３２Ｄは、ジョブ管理部３２Ａに代替処理を停止させ、サーバ３２をシャットダウンしてサーバ３２の電源をオフにする（Ｓ７５８）。【０１５５】
一方、Ｓ７５２においてサーバ３０から復帰値−１を受信しなかったと判定された場合、実行状態確認部３２Ｄは、サーバ３２の起動から所定期間が経過したか否かを判定する（Ｓ７６０）。サーバ３２の起動から所定期間が経過していない場合、実行状態確認部３２Ｄは、Ｓ７５２に戻り、判定を行う。【０１５６】
サーバ３２の起動から所定期間が経過した場合、実行状態確認部３２Ｄは、サーバ３２をシャットダウンしてサーバ３２の電源をオフにする（Ｓ７６２）。【０１５７】
［まとめ］
以上説明した本発明の第３実施例に係る処理装置、処理システム、及びプログラムによれば、サーバ３２が起動された後、実際にフェールオーバが発生せずに所定期間経過すればサーバ３２がシャットダウンされるため、電力消費を低減することができる。また、本発明の第３実施例に係る処理装置等は、リソースの浪費の抑制を図ることができる。また、サーバ３０、３２の双方がアクセス可能な共有メモリ３５にジョブの実行結果等を格納することにより、サーバ３２は、代替処理を開始可能な状態を維持することができる。この結果、サーバ３０、３２は、サーバ間の処理の受け渡しを迅速に行うことができる。【０１５８】
なお、請求項１３における「処理部」は、例えばジョブ管理部３０Ａに対応し、「制御部」は、例えば起動制御部３０Ｃに対応し、「処理装置」は、例えばサーバ３０に対応し、「代替処理装置」は、例えばサーバ３２に対応する。【０１５９】
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。【０１６０】
例えば、上記実施例とは異なり、特許請求の範囲における「処理装置」と「代替処理装置」の双方がクラウドサービスを提供する装置であってもよい。
【産業上の利用可能性】
【０１６１】
本発明は、コンピュータ製造業、コンピュータ・ソフトウェア産業、コンピュータサービス提供産業、データ管理サービス提供産業等に利用することができる。
【符号の説明】
【０１６２】
１、２、３                                          処理システム
１０、２０、２２、２５、３０、３２、１００、２００  サーバ
１０Ａ、２０Ａ、２２Ａ、３０Ａ、３２Ａ              ジョブ管理部
１０Ｂ、２５Ｂ                                      予兆検知部
１０Ｃ、２０Ｃ、２２Ｃ                              仮想サーバ設定処理部
１０Ｄ、２０Ｄ、２２Ｄ                              経過情報送信部
１１、２１、２３、１１０、２１０                    記憶装置
１１Ａ、２１Ａ、２３Ａ、３５Ａ、１１０Ａ、２１０Ａａ、２１０Ａｂ  ジョブ情報
２５Ｄ、３２Ｄ、１００Ｄ                            実行状態確認部
３０Ｃ                                              起動制御部
３５                                                共有メモリ
１００Ａ、２００Ａ                                  スケジュール管理部
１００Ｂ、２００Ｂ                                  ジョブ実行管理部
１００Ｃ、２００Ｃａ、２００Ｃｂ                    仮想サーバ
【図１】
2014006728.tif 000003
【図２】
2014006728.tif 000004
【図３】
2014006728.tif 000005
【図４】
2014006728.tif 000006
【図５】
2014006728.tif 000007
【図６】
2014006728.tif 000008
【図７】
2014006728.tif 000009
【図８】
2014006728.tif 000010
【図９】
2014006728.tif 000011
【図１０】
2014006728.tif 000012
【図１１】
2014006728.tif 000013
【図１２】
2014006728.tif 000014
【図１３】
2014006728.tif 000015
【図１４】
2014006728.tif 000016
【図１５】
2014006728.tif 000017
【図１６】
2014006728.tif 000018
【図１７】
2014006728.tif 000019
【図１８】
2014006728.tif 000020
【図１９】
2014006728.tif 000021
【図２０】
2014006728.tif 000022
【図２１】
2014006728.tif 000023
【図２２】
2014006728.tif 000024
【国際調査報告】
2014006728.tif 000025
2014006728.tif 000026
2014006728.tif 000027
2014006728.tif 000028