(57)【要約】【課題】  業務移行後の不具合に起因して業務に悪影響が及ぶのを有効に防止し得る信頼性及び可用性の高い情報処理システム及び業務冗長化方法を提案する。【解決手段】  第１の計算機のシステム環境で業務を実行するための各ジョブのジョブステップごとの第１のプログラムと、当該業務の移行先の第２の計算機のシステム環境に対応させて各第１のプログラムをそれぞれ改変してなる第２のプログラムとをストレージ装置に格納し、第２の計算機が第２のプログラムに基づいて各ジョブの各ジョブステップをそれぞれ実行し、いずれかのジョブのジョブステップを失敗した場合に、当該ジョブステップの代行をサーバ装置に指示し、サーバ装置が、代行を指示されたジョブステップを第１のプログラムに基づいて実行するようにした。
2017208409.tif 000002
【特許請求の範囲】
【請求項１】
情報処理システムにおいて、
システム環境が異なる第１の計算機から、１又は複数のジョブから構成される業務が移行された第２の計算機と、
前記第１の計算機のシステム環境で前記業務を実行するための各前記ジョブのジョブステップごとの第１のプログラムと、前記第２の計算機のシステム環境に対応させて各前記第１のプログラムをそれぞれ改変してなる各前記ジョブのジョブステップごとの第２のプログラムとが格納されたストレージ装置と、
前記第１のプログラムを実行することにより前記第１の計算機のシステム環境で前記業務を実行可能なサーバ装置と
を備え、
前記第２の計算機は、
前記ストレージ装置に格納された各前記第２のプログラムに基づいて各前記ジョブの各ジョブステップをそれぞれ実行し、いずれかの前記ジョブの前記ジョブステップを失敗した場合に、当該ジョブステップの代行を前記サーバ装置に指示し、
前記サーバ装置は、
失敗した前記ジョブステップの代行を前記第２の計算機から指示された場合に、前記ストレージ装置に格納された当該ジョブステップに対応する前記第１のプログラムに基づいて、当該ジョブステップを代行する
ことを特徴とする情報処理システム。
【請求項２】
前記サーバ装置は、
代行を指示された前記ジョブステップを失敗した場合に、実行中の前記ジョブの最初の前記ジョブステップから代行を指示された前記ジョブステップまでの各前記ジョブステップを実行する
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記第２の計算機は、
実行中の前記ジョブの最初の前記ジョブステップから失敗した前記ジョブステップまでの自己が実行した各前記ジョブステップの実行結果と、前記サーバ装置が実行した当該ジョブの最初の前記ジョブステップから失敗した前記ジョブステップまでの実行結果とをそれぞれ比較することにより、不当なデータを出力する前記ジョブステップを特定して提示する
ことを特徴とする請求項２に記載の情報処理システム。
【請求項４】
前記第２の計算機は、
予め規定された回数だけ前記ジョブを成功した場合に、当該ジョブの各前記ジョブステップにそれぞれ対応する前記第１のプログラムを前記ストレージ装置から削除する
ことを特徴とする請求項１に記載の情報処理システム。
【請求項５】
前記第２の計算機は、
いずれかの前記ジョブの同一の前記ジョブステップを失敗したときに、前記サーバ装置を起動して、当該ジョブステップの代行を当該サーバ装置に指示し、
当該第２の計算機において当該ジョブステップの実行が成功した場合に、前記サーバ装置の稼働を停止させる
ことを特徴とする請求項１に記載の情報処理システム。
【請求項６】
情報処理システムにおいて実行される業務冗長化方法において、
前記情報処理システムは、
システム環境が異なる第１の計算機から、１又は複数のジョブから構成される業務が移行された第２の計算機と、
前記第１の計算機のシステム環境で前記業務を実行するための各前記ジョブのジョブステップごとの第１のプログラムと、前記第２の計算機のシステム環境に対応させて各前記第１のプログラムをそれぞれ改変してなる各前記ジョブのジョブステップごとの第２のプログラムとが格納されたストレージ装置と、
前記第１のプログラムを実行することにより前記第１の計算機のシステム環境で前記業務を実行可能なサーバ装置と
を有し、
前記第２の計算機が、前記ストレージ装置に格納された各前記第２のプログラムに基づいて各前記ジョブの各ジョブステップをそれぞれ実行し、いずれかの前記ジョブの前記ジョブステップを失敗した場合に、当該ジョブステップの代行を前記サーバ装置に指示する第１のステップと、
前記サーバ装置が、失敗した前記ジョブステップの代行を前記第２の計算機から指示された場合に、前記ストレージ装置に格納された当該ジョブステップに対応する前記第１のプログラムに基づいて、当該ジョブステップを代行する第２のステップと
を備えることを特徴とする業務冗長化方法。
【請求項７】
前記第２のステップにおいて、前記サーバ装置は、
代行を指示された前記ジョブステップを失敗した場合に、実行中の前記ジョブの最初の前記ジョブステップから代行を指示された前記ジョブステップまでの各前記ジョブステップを実行する
ことを特徴とする請求項６に記載の業務冗長化方法。
【請求項８】
前記第２の計算機は、
実行中の前記ジョブの最初の前記ジョブステップから失敗した前記ジョブステップまでの自己が実行した各前記ジョブステップの実行結果と、前記サーバ装置が実行した当該ジョブの最初の前記ジョブステップから失敗した前記ジョブステップまでの実行結果とをそれぞれ比較することにより、不当なデータを出力する前記ジョブステップを特定して提示する
ことを特徴とする請求項７に記載の業務冗長化方法。
【請求項９】
前記第２の計算機は、
予め規定された回数だけ前記ジョブを成功した場合に、当該ジョブの各前記ジョブステップにそれぞれ対応する前記第１のプログラムを前記ストレージ装置から削除する
ことを特徴とする請求項６に記載の業務冗長化方法。
【請求項１０】
前記第２の計算機は、
いずれかの前記ジョブの同一の前記ジョブステップを失敗したときに、前記サーバ装置を起動して、当該ジョブステップの代行を当該サーバ装置に指示し、
当該第２の計算機において当該ジョブステップの実行が成功した場合に、前記サーバ装置の稼働を停止させる
ことを特徴とする請求項６に記載の業務冗長化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理システム及び業務冗長化方法に関し、例えば、メインフレームからバッチ業務が移行されたオープンシステムを有する情報処理システムに適用して好適なものである。
【背景技術】
【０００２】
メインフレームは、企業等の基幹業務システムなどに用いられる大型のコンピュータシステムである。メインフレームは、使用されるハードウェアやソフトウェアがそれ専用に設計されたものが多く、信頼性及び処理能力は高いものの、維持に相応のコストを要するという欠点がある。【０００３】
一方、オープンシステムは、汎用のハードウェアやソフトウェアを組み合わせて構築されたコンピュータ装置であり、メインフレームに比べて信頼性や処理能力は落ちるものの、安価に導入及び運用できるという利点を有している。このため、近年、コスト削減を目的として、業務システムにおいて使用する計算機をメインフレームからオープンシステムに入れ替える企業が増えてきている。【０００４】
かかる計算機の入れ替え作業では、メインフレームで実施している業務をオープンシステムに移行することが必要となる。そして、このようなメインフレームからオープンシステムへの業務の移行作業は、その業務を実行するためのすべてのプログラムをオープンシステムに応じた形式にそれぞれ改変してオープンシステムに移植した後に、メインフレーム側における業務を一旦停止し、その後、オープンシステム側で業務を再開するようにして行われている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平５−６１７００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、従来、メインフレームからオープンシステムに業務を移行した後の環境において、オープンシステムで業務の実行中に障害が発生した場合、障害が発生したプログラムをそのオープンシステムで再実行することにより対応している（特許文献１参照）。【０００７】
ところが、かかる障害の発生原因がプログラムの改変の失敗にある場合、オープンシステム上でそのプログラムを再実行したとしても再び同様の障害が発生することになる。このため、最終的にはオープンシステムによる業務の実行を停止させてプログラムの不具合を修正することとなるが、その間、業務が停止することとなり、業務に悪影響を与える問題があった。【０００８】
本発明は以上の点を考慮してなされたもので、業務移行後の不具合に起因して業務に悪影響が及ぶのを有効に防止し得る信頼性及び可用性の高い情報処理システム及び業務冗長化方法を提案しようとするものである。
【課題を解決するための手段】
【０００９】
かかる課題を解決するため本発明においては、情報処理システムにおいて、システム環境が異なる第１の計算機から、１又は複数のジョブから構成される業務が移行された第２の計算機と、前記第１の計算機のシステム環境で前記業務を実行するための各前記ジョブのジョブステップごとの第１のプログラムと、前記第２の計算機のシステム環境に対応させて各前記第１のプログラムをそれぞれ改変してなる各前記ジョブのジョブステップごとの第２のプログラムとが格納されたストレージ装置と、前記第１のプログラムを実行することにより前記第１の計算機のシステム環境で前記業務を実行可能なサーバ装置とを設け、前記第２の計算機が、前記ストレージ装置に格納された各前記第２のプログラムに基づいて各前記ジョブの各ジョブステップをそれぞれ実行し、いずれかの前記ジョブの前記ジョブステップを失敗した場合に、当該ジョブステップの代行を前記サーバ装置に指示し、前記サーバ装置が、失敗した前記ジョブステップの代行を前記第２の計算機から指示された場合に、前記ストレージ装置に格納された当該ジョブステップに対応する前記第１のプログラムに基づいて、当該ジョブステップを代行するようにした。【００１０】
また本発明においては、情報処理システムにおいて実行される業務冗長化方法において、前記情報処理システムは、システム環境が異なる第１の計算機から、１又は複数のジョブから構成される業務が移行された第２の計算機と、前記第１の計算機のシステム環境で前記業務を実行するための各前記ジョブのジョブステップごとの第１のプログラムと、前記第２の計算機のシステム環境に対応させて各前記第１のプログラムをそれぞれ改変してなる各前記ジョブのジョブステップごとの第２のプログラムとが格納されたストレージ装置と、前記第１のプログラムを実行することにより前記第１の計算機のシステム環境で前記業務を実行可能なサーバ装置とを有し、前記第２の計算機が、前記ストレージ装置に格納された各前記第２のプログラムに基づいて各前記ジョブの各ジョブステップをそれぞれ実行し、いずれかの前記ジョブの前記ジョブステップを失敗した場合に、当該ジョブステップの代行を前記サーバ装置に指示する第１のステップと、前記サーバ装置が、失敗した前記ジョブステップの代行を前記第２の計算機から指示された場合に、前記ストレージ装置に格納された当該ジョブステップに対応する前記第１のプログラムに基づいて、当該ジョブステップを代行する第２のステップとを設けるようにした。【００１１】
本発明の情報処理システム及び業務冗長化方法によれば、第２のプログラムの不具合等により第２の計算機が実行中のジョブのジョブステップを行うことができない場合においても、そのジョブステップをサーバ装置が代行するため、業務が停止することを有効に回避することができる。
【発明の効果】
【００１２】
本発明によれば、業務移行後の不具合に起因して業務に悪影響が及ぶのを有効に防止し得る信頼性及び可用性の高い情報処理システム及び業務冗長化方法を実現できる。
【図面の簡単な説明】
【００１３】
【図１】本実施の形態による情報処理システムの構成を示すブロック図である。
【図２】バッチ業務の説明に供する概念図である。
【図３】本実施の形態によるバッチ業務冗長化機能の説明に供するブロック図である。
【図４】本実施の形態によるバッチ業務冗長化機能の説明に供するブロック図である。
【図５】本実施の形態によるバッチ業務冗長化機能の説明に供するブロック図である。
【図６】結果管理テーブルの構成を示す概念図である。
【図７】実績管理テーブルの構成を示す概念図である。
【図８】代行管理テーブルの構成を示す概念図である。
【図９】バッチ業務冗長化機能メイン処理の処理手順を示すフローチャートである。
【図１０】ステップ代行終了／クラウド資源削除判定処理の処理手順を示すフローチャートである。
【図１１】ジョブステップ代行準備処理の処理手順を示すフローチャートである。
【図１２】ステップ代行準備及び不良ステップ特定処理の処理手順を示すフローチャートである。
【図１３】ステップ代行処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下図面について、本発明の一実施の形態を詳述する。
【００１５】
（１）本実施の形態による情報処理システムの構成
図１において、１は全体として本実施の形態による情報処理システムを示す。この情報処理システム１は、データセンタや企業又は官庁等に設置された業務システム２と、データセンタ３に設置されたクラウド制御サーバ４及びクラウドサーバ５とを備えて構成される。
【００１６】
業務システム２は、オープンシステムでなる計算機１０と、当該計算機１０と第１のネットワーク１１を介して接続されたストレージ装置１２とを備える。なお、以下においては、計算機１０は、メインフレーム１３で実行していた業務を引き継いだ直後の状態であるものとする。
【００１７】
また、以下においては、メインフレーム１３で実行していた業務は、バッチ処理される業務（以下、これをバッチ業務と呼ぶ）であるものとする。バッチ業務は、図２に示すように、実行順序が規定された複数のジョブ（JOB1，JOB2，……）から構成され、各ジョブは、それぞれ実行順序が規定された１又は複数のジョブステップ（JOBSTEP1，JOBSTEP2，……）から構成される。「ジョブ」は、バッチ業務における作業単位であり、「ジョブステップ」は、１つのジョブにおける作業単位である。ジョブステップは、そのジョブステップと対応付けられた１つのプログラム（プログラム１、プログラム２、……）を実行することにより処理される。従って、各ジョブステップとそれぞれ対応付けられたプログラムを、対応するジョブステップの順番で順次実行することにより１つのジョブが処理される。
【００１８】
計算機１０は、ＣＰＵ（Central Processing Unit）２０、主記憶装置２１及び補助記憶装置２２等の情報処理資源と、表示装置２３とを備えて構成される。ＣＰＵ２０は、計算機１０全体の動作制御を司るプロセッサである。また主記憶装置２１は、例えば半導体メモリなどから構成され、各種プログラムを記憶するために利用されるほか、ＣＰＵ２０のワークメモリとしても利用される。補助記憶装置２２は、ハードディスク装置やＳＳＤ（Solid State Drive）などの大容量の不揮発性の記憶装置から構成され、各種データやプログラムを長期間保持するために利用される。また表示装置２３は、必要な情報やＵＩ（User Interface）などを表示するために利用され、例えば、液晶ディスプレイや有機ＥＬ（Electroluminescence）ディスプレイなどから構成される。
【００１９】
計算機１０には、メインフレーム１３から引き継いだバッチ業務を実行するためのソフトウェアであるジョブ実行基盤２４が実装されており、計算機１０の起動時などにこのジョブ実行基盤２４が補助記憶装置２２から主記憶装置２１にロードされる。そしてＣＰＵ２０が、このジョブ実行基盤２４に基づいて、後述のようにストレージ装置１２に格納されているバッチ業務の各ジョブのジョブステップごとのプログラム３４を順番に実行することにより、かかるバッチ業務が実行される。
【００２０】
またジョブ実行基盤２４には、ジョブ連携メインプログラム２５が埋め込まれており、ＣＰＵ２０がこのジョブ連携メインプログラム２５を実行することにより、後述のような本実施の形態によるバッチ業務冗長化機能に関連する計算機１０側の各種処理が実行される。ジョブ連携メインプログラム２５の詳細については、後述する。
【００２１】
ストレージ装置１２は、１又は複数の記憶装置（図示せず）が設けられた記憶部３０と、記憶部３０に対するデータの入出力を制御するコントローラ３１とを備えて構成される。記憶部３０の記憶装置は、例えばハードディスク装置やＳＳＤ（Solid State Drive）などから構成される。１又は複数の記憶装置が１つのＲＡＩＤ（Redundant Arrays of Inexpensive Disks）グループとして管理され、１つのＲＡＩＤグループを構成する各記憶装置が提供する記憶領域上に１又は複数の論理ボリュームと呼ばれる記憶領域が定義される。
【００２２】
本実施の形態の場合、ストレージ装置１２内には、計算機１０とデータセンタ３のクラウドサーバ５とが共有し、これら計算機１０及びクラウドサーバ５の双方がアクセス可能な論理ボリューム（以下、これを共有ボリュームと呼ぶ）ＶＯＬが定義される。共有ボリュームＶＯＬの記憶領域は、計算機１０に割り当てられた第１の領域ＡＲ１と、クラウドサーバ５に割り当てられた第２の領域ＡＲ２とに区分されて管理される。
【００２３】
そして第２の領域内ＡＲ２には、かかるバッチ業務を実行するためのメインフレーム形式で作成された、各ジョブ（JOB1，JOB2，……）のジョブステップ（JOBSTEP1，JOBSTEP2，……）ごとのプログラム３２と、メインフレーム用のＯＳ（Operating System）３３とが格納される。また第１の領域ＡＲ１内には、メインフレーム１３から引き継いだバッチ業務を計算機１０で実行するために、メインフレーム用の各ジョブのジョブステップごとのプログラム３２をオープンシステム形式にそれぞれ改変してなる各ジョブ（JOB1’，JOB2’，……）のジョブステップ（JOBSTEP1’，JOBSTEP2’，……）ごとのプログラム３４が格納される。
【００２４】
クラウド制御サーバ４は、ＣＰＵ４０、主記憶装置４１及び補助記憶装置４２等の情報処理資源を備える汎用のサーバ装置から構成され、ネットワーク６を介して業務システム２の計算機１０と接続されている。これらＣＰＵ４０及び主記憶装置４１及び補助記憶装置４２の機能及び構成等は、基本的に計算機１０のＣＰＵ２０、主記憶装置２１及び補助記憶装置２２と同様であるため、ここでの説明は省略する。
【００２５】
クラウド制御サーバ４の主記憶装置４１には、クラウド制御プログラム４３が格納されている。ＣＰＵ４０は、このクラウド制御プログラム４３に基づき、計算機１０から与えられた指示に応じてクラウドサーバ５を制御することにより、クラウドサーバ５を起動又は稼働を停止させたり、共有ボリュームＶＯＬの第２の領域ＡＲ２に格納されたＯＳ３３をクラウドサーバ５に読み込ませて起動させることにより、クラウドサーバ５をメインフレームとして機能させることができる。
【００２６】
クラウドサーバ５も、ＣＰＵ５０、主記憶装置５１及び補助記憶装置５２等の情報処理資源を備える汎用のサーバ装置から構成され、ネットワーク７を介して業務システム２の計算機１０及びストレージ装置１２とそれぞれ接続されている。これらＣＰＵ５０及び主記憶装置５１及び補助記憶装置５２の機能及び構成等は、基本的に計算機１０のＣＰＵ２０、主記憶装置２１及び補助記憶装置２２と同様であるため、ここでの説明は省略する。
【００２７】
クラウドサーバ５にも計算機１０と同様のジョブ実行基盤５３が実装されており、ＣＰＵ５０が、共有ボリュームＶＯＬの第２の領域ＡＲ２からＯＳ３３を読み込んでこれを起動し、その後、ジョブ実行基盤５３に基づいて共有ボリュームＶＯＬの第２の領域ＡＲ２に格納されているプログラム３２を実行することにより、そのプログラム３２に対応するジョブステップを実行し得るようになされている。
【００２８】
またクラウドサーバ５に実装されたジョブ実行基盤５３には、ジョブ連携サブプログラム５４が埋め込まれており、ＣＰＵ５０がこのジョブ連携サブプログラム５４を実行することにより、後述のような本実施の形態によるバッチ業務冗長化機能に関連するクラウドサーバ５側の各種処理が実行される。ジョブ連携サブプログラム５４の詳細については、後述する。
【００２９】
（２）情報処理システムにおけるバッチ業務冗長化機能
（２−１）バッチ業務冗長化機能の概略
次に、本情報処理システム１におけるバッチ業務冗長化機能について説明する。
【００３０】
一般的に、メインフレームで実行されていたバッチ業務をオープンシステムに移行する場合、そのバッチ業務内の各ジョブステップとそれぞれ対応付けられた各プログラムをオープンシステムに応じた形式にそれぞれ改変する必要があるが、改変後のプログラムに不具合があった場合、オープンシステムがそのプログラムに対応するジョブステップを実行する際に障害が発生する。
【００３１】
従来、このような障害が発生した場合には、オープンシステムにおいてそのジョブステップを再実行していたが、メインフレーム形式からオープンシステム形式に改変されたプログラム自体に不具合がある場合、そのジョブステップをオープンシステムで再実行したとしても再び同様の障害が発生することとなる。
【００３２】
そこで、本実施の形態の情報処理システム１では、メインフレーム１３から業務を引き継いだ計算機１０がいずれかのジョブステップを失敗した場合には、そのジョブステップ（以下、これを失敗ジョブステップと呼ぶ）の代行をクラウドサーバ５に指示し、この指示に応じてクラウドサーバ５がその失敗ジョブステップを、共有ボリュームＶＯＬの第２の領域ＡＲ２に格納されている改変前のメインフレーム用のプログラム３２に従って実行する。
【００３３】
ただし、その失敗ジョブステップが１つ前のジョブステップの実行結果を利用して処理を行うものである場合であって、失敗ジョブステップよりも前のいずれかのジョブステップの段階で障害が発生していたときには、その失敗ジョブステップだけをクラウドサーバ５で代行したとしても再度同様の障害が発生することになる。
【００３４】
そこで、本実施の形態の情報処理システム１では、失敗ジョブステップをクラウドサーバ５が代行した場合においても失敗した場合には、その失敗ジョブステップを含むジョブ（現在実行中のジョブであり、以下、これを実行中ジョブと呼ぶ）の最初のジョブステップから失敗ジョブステップまでの各ジョブステップをクラウドサーバ５が代行する。
【００３５】
加えて、本実施の形態の情報処理システム１では、上述のようにクラウドサーバ５が実行中ジョブの最初のジョブステップから失敗ジョブステップまでの各ジョブステップを実行した結果得られたこれらジョブステップごとの実行結果（出力データ）と、これらジョブステップを計算機１０が実行したときに得られたジョブステップごとの実行結果（出力データ）とをそれぞれ比較し、比較結果に基づいて不当なデータを出力するジョブステップを特定し、特定結果をユーザに提示する。
【００３６】
ただし、実行中ジョブの最初のジョブステップから失敗ジョブステップまでの各ジョブステップをクラウドサーバ５が代行した場合においても、クラウドサーバ５がその実行中ジョブを予め設定された回数（以下、これをクラウド連続失敗閾値回数と呼ぶ）だけ連続して失敗したときには、その旨のエラーメッセージを計算機１０が表示装置２３（図１）に表示し、これによりユーザに警告を与える。
【００３７】
図３〜図５は、このような本実施の形態によるバッチ業務冗長化機能に関連して情報処理システム１において実行される一連の処理の流れを示す。なお、以下においては、各種処理の処理主体を「ソフトウェア」又は「プログラム」として説明することがあるが、実際上は、そのソフトウェア又はプログラムに基づいて対応する装置（計算機１０、クラウド制御サーバ４又はクラウドサーバ５）のＣＰＵ２０，４０，５０がその処理を実行することは言うまでもない。
【００３８】
まず、図３について説明する。図３は、計算機１０があるジョブステップを失敗したときに、そのジョブステップ（失敗ジョブステップ）の代行をクラウドサーバ５に指示するために計算機１０がクラウドサーバ５を起動するまでの流れを示す。
【００３９】
計算機１０のジョブ実行基盤２４は、ストレージ装置１２の共有ボリュームＶＯＬの第１の領域ＡＲ１に格納されているオープンシステム用に改変された各ジョブのジョブステップごとのプログラム３４を順番に実行することにより、メインフレーム１３から引き継いだバッチ業務を実行する（ＳＰ１）。
【００４０】
そして、１つのジョブステップが完了するごとに、そのジョブステップのプログラム３４から当該ジョブステップの成否（成功又は失敗）を表すリターンコードがジョブ実行基盤２４に埋め込まれたジョブ連携メインプログラム２５に与えられる（ＳＰ２）。以下においては、リターンコードの値は、そのジョブステップが成功した場合には「０」、そのジョブステップが失敗した場合には「４」にそれぞれ設定されるものとする。
【００４１】
ジョブ連携メインプログラム２５は、上述のようにジョブ実行基盤２４がジョブステップを実行するごとに与えられるリターンコードの値を監視しており、いずれかのジョブステップのリターンコードの値が「４」であった場合（つまりジョブステップを失敗した場合）には、クラウド制御サーバ４のクラウド制御プログラム４３に対してクラウドサーバ５の起動等を要求するクラウド起動要求を送信する（ＳＰ３）。
【００４２】
クラウド制御プログラム４３は、かかるクラウド起動要求を受信すると、クラウドサーバ５の電源を投入することにより当該クラウドサーバ５を起動させると共に、共有ボリュームＶＯＬの第２の領域ＡＲ２に格納されているメインフレーム用のＯＳ３３をクラウドサーバ５に読み込ませて起動させる（ＳＰ４）。そしてクラウド制御プログラム４３は、この後、計算機１０のジョブ連携メインプログラム２５にクラウドサーバ５の起動が完了した旨の第１の完了通知を送信する（ＳＰ５）。
【００４３】
またかかるクラウド制御プログラム４３により起動されたクラウドサーバ５のジョブ実行基盤５３が共有ボリュームＶＯＬの第２の領域ＡＲ２に格納されたプログラム３２に基づいてバッチ業務の各ジョブの各ジョブステップを実行可能な状態となると、クラウドサーバ５のジョブ連携サブプログラム５４が、クラウドサーバ５の起動が完了した旨の第２の完了通知を計算機１０のジョブ連携メインプログラム２５に送信する（ＳＰ６）。
【００４４】
一方、図４は、計算機１０のジョブ連携メインプログラム２５が、上述のようにしてクラウドサーバ５を起動後、その失敗ジョブステップの代行をクラウドサーバ５に指示し、この指示を受けたクラウドサーバ５がその失敗ジョブステップを実施するまでの流れを示す。
【００４５】
ジョブ連携メインプログラム２５は、図３のステップＳＰ５及びステップＳＰ６について上述した第１及び第２の完了通知の双方を受信すると、失敗ジョブステップの１つ前のジョブステップの出力データを共有ボリュームＶＯＬの第１の領域ＡＲ１から読み出し、これをメインフレーム形式のデータに変換して、当該共有ボリュームＶＯＬの第２の領域ＡＲ２の所定位置に格納する（ＳＰ１０）。
【００４６】
またジョブ連携メインプログラム２５は、この後、失敗ジョブステップのジョブステップ名と、その失敗ジョブステップを有する現在実行中のジョブ（実行中ジョブ）のジョブ名とを含む、当該失敗ジョブステップを代行すべき旨の指示（以下、これを単一ステップ代行指示と呼ぶ）をクラウドサーバ５のジョブ連携サブプログラム５４に送信する（ＳＰ１１）。
【００４７】
ジョブ連携サブプログラム５４は、かかる単一ステップ代行指示を受信すると、共有ボリュームＶＯＬの第２の領域ＡＲ２に格納されている各ジョブのジョブステップごとのプログラム３２の中から、当該単一ステップ代行指示において指定されたジョブステップ（失敗ジョブステップ）のプログラム３２を抽出し、そのジョブステップ（失敗ジョブステップ）を実行するためのジョブ（JOB1”）のジョブ定義を作成する（ＳＰ１２）。
【００４８】
またジョブ連携サブプログラム５４は、作成したジョブ定義を実行するようジョブ実行基盤５３に指示を与える（ＳＰ１３）。かくして、かかる指示を受けたジョブ実行基盤５３は、ステップＳＰ１０で共有ボリュームＶＯＬの第２の領域ＡＲ２に格納された出力データを利用してそのジョブ定義に基づくジョブを実行することにより、代行指示されたジョブステップ（つまり失敗ジョブステップ）を実行する。
【００４９】
またジョブ連携サブプログラム５４は、ジョブ実行基盤５３が失敗ジョブステップの実行に成功すると、そのとき対応するプログラム３２から与えられたリターンコード（値が「０」に設定されたリターンコード）を計算機１０のジョブ連携メインプログラム２５に転送する（ＳＰ１４）。
【００５０】
ジョブ連携メインプログラム２５は、ジョブ連携サブプログラム５４から転送されてきた上述のリターンコードを受信すると、ステップＳＰ１３においてクラウドサーバ５により実行された失敗ジョブステップの出力データを共有ボリュームＶＯＬの第２の領域ＡＲ２から読み出し、これをオープンシステム形式に変換した後に共有ボリュームＶＯＬの第１の領域ＡＲ１の所定位置に格納する（ＳＰ１５）。
【００５１】
またジョブ連携メインプログラム２５は、この後、計算機１０のジョブ実行基盤２４に対して実行中ジョブの再開を指示する。かくして、この指示を受けたジョブ実行基盤２４は、ステップＳＰ１５においてジョブ連携メインプログラム２５により共有ボリュームＶＯＬの第１の領域ＡＲ１に格納された、クラウドサーバ５により代行された失敗ジョブステップの出力データを用いて、実行中ジョブにおける失敗ジョブステップ以降のジョブステップの実行を再開する（ＳＰ１６）。
【００５２】
他方、図５は、計算機１０のジョブ連携メインプログラム２５が、上述のようにしてクラウドサーバ５を起動後、失敗ジョブステップを代行すべき旨の単一ステップ代行指示をクラウドサーバ５に送信し、この単一ステップ代行指示を受信したクラウドサーバ５がその失敗ジョブステップを実行したが、クラウドサーバ５もその失敗ジョブステップを失敗した場合の流れを示す。
【００５３】
この場合、ステップＳＰ２０〜ステップＳＰ２４の流れは、図４について上述したステップＳＰ１０〜ステップＳＰ１４と同様である。ただし、この例では、ジョブ連携メインプログラム２５から失敗ジョブステップを対象とした単一ステップ代行指示を受けたクラウドサーバ５がその失敗ジョブステップを失敗しているため、ステップＳＰ２４においてジョブ連携サブプログラム５４からジョブ連携メインプログラム２５に送信されるリターンコードの値は失敗を表す値（「４」）に設定される。
【００５４】
このリターンコードを受信したジョブ連携メインプログラム２５は、実行中ジョブの最初のジョブステップの入力データをメインフレーム形式に変換し、これを共有ボリュームＶＯＬの第２の領域ＡＲ２の所定位置に格納する（ＳＰ２５）。
【００５５】
またジョブ連携メインプログラム２５は、実行中ジョブのジョブ名と、当該実行中ジョブの失敗ジョブステップのジョブステップ名とを指定して、当該実行中ジョブの最初のジョブステップから失敗ジョブステップまでの各ジョブステップを順次実行すべき旨の指示（以下、これを複数ステップ代行指示と呼ぶ）をクラウドサーバ５のジョブ連携サブプログラム５４に送信する（ＳＰ２６）。
【００５６】
ジョブ連携サブプログラム５４は、かかる複数ステップ代行指示を受信すると、共有ボリュームＶＯＬの第２の領域ＡＲ２に格納されている実行中ジョブの最初のジョブステップから失敗ジョブステップまでの各ジョブステップのプログラム３２をそれぞれ抽出し、これらのジョブステップを順番に実行するジョブ（JOB1’’’）のジョブ定義を作成する（ＳＰ２７）。
【００５７】
またジョブ連携サブプログラム５４は、作成したジョブ定義をジョブ実行基盤５３に実行させる（ＳＰ２８）。かくしてジョブ実行基盤５３は、ステップＳＰ２５で共有ボリュームＶＯＬの第２の領域ＡＲ２に格納された入力データを利用してそのジョブ定義に基づくジョブを実行することにより、実行中ジョブの最初のジョブステップから失敗ジョブステップまでの各ジョブステップを順番に実行する。
【００５８】
またジョブ連携サブプログラム５４は、かかるジョブ実行基盤５３が実行中ジョブの最初のジョブステップから失敗ジョブステップまでの各ジョブステップをすべて成功すると、その旨のリターンコード（値が「０」に設定されたリターンコード）を計算機１０のジョブ連携メインプログラム２５に送信する（ＳＰ２９）。
【００５９】
ジョブ連携メインプログラム２５は、ジョブ連携サブプログラム５４から送信されたステップＳＰ２９のリターンコードを受信すると、ステップＳＰ２８で実行中ジョブの最初のジョブステップから失敗ジョブステップまでの各ジョブステップをそれぞれ実行することにより得られたこれらジョブステップの出力データをそれぞれオープンシステム形式に変換し、これらを共有ボリュームＶＯＬの第１の領域ＡＲ１の所定位置にそれぞれ格納する（ＳＰ３０）。
【００６０】
またジョブ連携メインプログラム２５は、この後、計算機１０のジョブ実行基盤２４に対して実行中ジョブの再開を指示する。かくして、この指示を受けたジョブ実行基盤２４は、ステップＳＰ３０においてジョブ連携メインプログラム２５により共有ボリュームＶＯＬの第１の領域ＡＲ１に格納された、クラウドサーバ５により代行された失敗ジョブステップの出力データを用いて、当該失敗ジョブステップ以降のジョブステップの実行を再開する（ＳＰ３１）。
【００６１】
これと並行して、ジョブ連携メインプログラム２５は、共有ボリュームＶＯＬの第１の領域ＡＲ１にそれぞれ格納されている、計算機１０が実行中ジョブの最初のジョブステップから失敗ジョブステップまでの各ジョブステップをそれぞれ実行したときに得られたジョブステップごとの出力データと、ステップＳＰ３０で共有ボリュームＶＯＬの第１の領域ＡＲ１にそれぞれ格納された、クラウドサーバ５がこれらのジョブステップをそれぞれ実行したときに得られた各ジョブステップの出力データとをそれぞれ比較することにより、不良のあるジョブステップ（以下、これを不良ジョブステップと呼ぶ）を特定する（ＳＰ３２）。
【００６２】
具体的に、ジョブ連携メインプログラム２５は、上述のように計算機１０のジョブ実行基盤２４がオープンシステム形式に改変された対応するプログラム３４を実行することにより得られた出力データの値と、クラウドサーバ５がメインフレーム形式の対応するプログラム３２を実行することにより得られた出力データの値とが異なるジョブステップを不良ジョブステップとして特定する。
【００６３】
そしてジョブ連携メインプログラム２５は、このようにして特定したジョブステップについて、そのジョブステップのオープンシステム形式に改変されたプログラム３４に問題があるおそれがある旨のエラーメッセージを表示装置２３に表示させる。
【００６４】
（２−２）各種テーブルの構成
以上のような本実施の形態のバッチ業務冗長化機能を実現するための手段として、計算機１０の補助記憶装置２２には、図１に示すように、結果管理テーブル２６、実績管理テーブル２７及び代行管理テーブル２８が格納されている。
【００６５】
結果管理テーブル２６は、計算機１０のジョブ実行基盤２４によりそれまでに実行された各ジョブステップの実行結果のログを管理するために利用されるテーブルであり、図６に示すように、番号欄２６Ａ、ジョブ名欄２６Ｂ、ジョブステップ名欄２６Ｃ、実行日時欄２６Ｄ、オープンリターンコード欄２６Ｅ及びメインフレームクラウドリターンコード欄２６Ｆを備えて構成される。
【００６６】
そして番号欄２６Ａには、結果管理テーブル２６に登録された各ログのレコードに対してそれぞれ付与された通し番号が格納される。またジョブステップ名欄２６Ｃには、ジョブ実行基盤２４により実行されたジョブステップの名称（ジョブステップ名）が格納され、ジョブ名欄２６Ｂには、対応するジョブステップを含むジョブの名称（ジョブ名）が格納される。
【００６７】
また実行日時欄２６Ｄには、対応するジョブステップが実行された日時が格納され、オープンリターンコード欄２６Ｅには、対応するジョブステップを実行したときにジョブ連携メインプログラム２５（図１）が得たリターンコードの値が格納される。
【００６８】
さらにメインフレームクラウドリターンコード欄２６Ｆは、単一ステップ代行欄２６ＦＡ及び複数ステップ代行欄２６ＦＢに区分されている。そして、単一ステップ代行欄２６ＦＡには、クラウドサーバ５が計算機１０のジョブ連携メインプログラム２５から与えられた単一ステップ代行指示に応じて失敗ジョブステップを代行したときに得られたリターンコードの値が格納され、複数ステップ代行欄２６ＦＢには、クラウドサーバ５が計算機１０のジョブ連携メインプログラム２５から与えられた複数ステップ代行指示に応じて実行中ジョブの最初のジョブステップから失敗ジョブステップまでの各ジョブステップを代行したときに得られたリターンコードの値が格納される。
【００６９】
従って、図６の例の場合、例えば、「JOB1」というジョブの「STEP1」というジョブステップは「1/1 1:00」に実行され、そのときにジョブ連携メインプログラム２５が得たリターンコードの値が「０」、つまりそのジョブステップが成功したことが示されている。
【００７０】
また実績管理テーブル２７は、バッチ業務の各ジョブに対する計算機１０の実績を管理するために利用されるテーブルであり、図７に示すように、番号欄２７Ａ、ジョブ名欄２７Ｂ、ジョブ実績欄２７Ｃ及び連続成功回数欄２７Ｄを備えて構成される。
【００７１】
そして、番号欄２７Ａには、実績管理テーブル２７に登録された各ジョブに対してそれぞれ付与された通し番号のうち、対応するジョブに付与された通し番号が格納され、ジョブ名欄２７Ｂには、対応するジョブのジョブ名が格納される。
【００７２】
またジョブ実績欄２７Ｃには、対応するジョブに対する計算機１０の実績（「不十分」又は「十分」）が格納され、連続成功回数欄２７Ｄには、計算機１０のみで対応するジョブを連続して成功させた回数が格納される。なお「ジョブが成功する」とは、そのジョブ内のすべてのジョブステップを成功したことを意味する。
【００７３】
本実施の形態の場合、ジョブ実績欄２７Ｃには、対応するジョブに対する実績が不十分であることを意味する「不十分」が初期値として設定され、計算機１０のみで対応するジョブを連続して10回成功させたときに、そのジョブに対する計算機１０の実績が十分になったとして、ジョブ実績欄２７Ｃに格納された値が「十分」に更新される。
【００７４】
従って、図７の例の場合、「JOB1」というジョブについては、そのジョブを連続して成功させた回数が「９回」であるため、このジョブに対する計算機１０の実績は未だ「不十分」であるとして管理されているが、「JOB2」というジョブについては、そのジョブを連続して成功させた回数が「10回」に到達しているため、このジョブに対する計算機１０の実績が既に「十分」であるとして管理されていることが示されている。
【００７５】
さらに代行管理テーブル２８は、バッチ業務を構成する各ジョブのジョブステップごとの連続失敗回数、及び、そのジョブステップがクラウドサーバ５により代行される対象（代行対象）となっているか否かを管理するために利用されるテーブルであり、図８に示すように、番号欄２８Ａ、ジョブ名欄２８Ｂ、ジョブステップ名欄２８Ｃ、代行判定欄２８Ｄ及び代行連続失敗回数欄２８Ｅを備えて構成される。
【００７６】
そして番号欄２８Ａには、代行管理テーブル２８に登録された各ジョブステップに対してそれぞれ付与された通し番号のうちのそのレコードに対応するジョブステップに付与された通し番号が格納される。またジョブステップ名欄２８Ｃには、かかるバッチ業務を構成する各ジョブステップのジョブステップ名がそれぞれすべて格納され、ジョブ名欄２８Ｂには、対応するジョブステップにより構成されるジョブの名称（ジョブ名）が格納される。
【００７７】
さらに代行判定欄２８Ｄには、対応するジョブステップがクラウドサーバ５により代行されるべき対象（代行対象）のジョブステップであるか否かの判定結果が格納され、代行連続失敗回数欄２８Ｅには、クラウドサーバ５が対応するジョブステップを代行したときにそのジョブステップを連続して失敗した場合にその回数が格納される。
【００７８】
本実施の形態の場合、代行判定欄２８Ｄには、クラウドサーバ５が対応するジョブステップを代行しないことを意味する「対象外」が初期値として格納され、計算機１０がジョブステップを失敗した場合に、そのジョブステップはクラウドサーバ５により代行されるべきジョブステップとして、対応する代行判定欄２８Ｄに格納されている値が「対象」に更新される。
【００７９】
従って、図８の例の場合、「JOB1」の「STEP1」〜「STEP4」という４つのジョブステップのうち、「STEP3」というジョブステップがクラウドサーバ５の代行対象となっており、クラウドサーバ５でも既にそのジョブステップを「２回」連続して失敗していることが示されている。
【００８０】
（２−３）バッチ業務冗長化機能に関する各種処理
次に、かかるバッチ業務冗長化機能に関連するジョブ連携メインプログラム２５（図１）及びジョブ連携サブプログラム５４（図１）の具体的な処理内容について説明する。
【００８１】
（２−３−１）ジョブ連携メインプログラムの処理
（２−３−１−１）バッチ業務冗長化機能メイン処理
本情報処理システム１において、ジョブ連携メインプログラム２５は、ジョブ実行基盤２４（図１）と共に起動され、起動後、クラウド制御サーバ４（図１）のクラウド制御プログラム４３（図１）との間の通信路を確保した後、ジョブ実行基盤２４から呼び出されるのを待ち受ける。
【００８２】
ジョブ実行基盤２４は、１つのジョブステップが完了するごとにジョブ連携メインプログラム２５を呼び出し、対応するプログラム３４から与えられるそのジョブステップの成否を表すリターンコードをジョブ連携メインプログラム２５に与える。
【００８３】
そしてジョブ連携メインプログラム２５は、ジョブ実行基盤２４から呼び出され、かかるリターンコードが与えられると、図９に示すバッチ業務冗長化機能メイン処理を開始し、まず、そのとき与えられたリターンコードの値を、そのとき実行されたジョブステップ（以下、これを実行ジョブステップと呼ぶ）及びその実行ジョブステップを含むジョブ（実行中ジョブ）と対応付けて結果管理テーブル２６（図６）に登録する（ＳＰ４０）。
【００８４】
具体的には、ジョブ連携メインプログラム２５は、結果管理テーブル２６上に未使用の行を１つ確保し、その行のオープンリターンコード欄２６Ｅにそのリターンコードの値を格納し、その行の実行日時欄２６Ｄにそのリターンコードをジョブ連携メインプログラム２５が受け取った日時を格納し、その行のジョブステップ名欄２６Ｃに実行ジョブステップのジョブステップ名を格納し、その行のジョブ名欄２６Ｂに実行中ジョブのジョブ名を格納し、その行の番号欄２６Ａに結果管理テーブル２６上での通し番号を格納する。
【００８５】
続いて、ジョブ連携メインプログラム２５は、結果管理テーブル２６を参照して、ステップＳＰ４０で結果管理テーブル２６に登録したリターンコードの値が「０」であったか否か（つまり、その実行ジョブステップが成功したか否か）を判断する（ＳＰ４１）。そしてジョブ連携メインプログラム２５は、この判断で肯定結果を得ると、図１０について後述するステップ代行終了／クラウド資源削除判定処理を実行した後（ＳＰ４２）、このバッチ業務冗長化機能メイン処理を終了する。
【００８６】
これに対して、ジョブ連携メインプログラム２５は、ステップＳＰ４１の判断で否定結果を得ると、実績管理テーブル２７（図７）のレコードのうち、ジョブ名欄２７Ｂに実行中ジョブのジョブ名が格納されたレコードを検索し（ＳＰ４３）、当該検索により検出したレコードのジョブ実績欄２７Ｃに格納されている値が「十分」であるか否かを判断する（ＳＰ４４）。
【００８７】
この判断で肯定結果を得ることは、実行中ジョブに対する計算機１０の実績が既に十分な回数にまで達していることを意味する。かくして、このときジョブ連携メインプログラム２５は、このバッチ業務冗長化機能メイン処理を終了する。
【００８８】
これに対して、ステップＳＰ４４の判断で否定結果を得ることは、実行中ジョブに対する計算機１０の実績が未だ不十分であることを意味する。かくして、このときジョブ連携メインプログラム２５は、ステップＳＰ４３の検索で検出したレコードの連続成功回数欄２７Ｄに格納されている値を「０」に更新する（ＳＰ４５）。
【００８９】
続いて、ジョブ連携メインプログラム２５は、代行管理テーブル２８のレコードうち、実行ジョブステップのジョブステップ名がジョブステップ名欄２８Ｃに格納され、実行中ジョブのジョブ名がジョブ名欄２８Ｂに格納されているレコードを検索する（ＳＰ４６）。そしてジョブ連携メインプログラム２５は、この検索により検出したレコードの代行判定欄２８Ｄを参照して、現在、実行ジョブステップがクラウドサーバ５により代行されるべき対象（代行対象）となっているか否かを判断する（ＳＰ４７）。
【００９０】
そしてジョブ連携メインプログラム２５は、この判断で肯定結果を得ると、図１１について後述するジョブステップ代行準備処理を実行した後（ＳＰ５４）、このバッチ業務冗長化機能メイン処理を終了する。
【００９１】
これに対して、ジョブ連携メインプログラム２５は、ステップＳＰ４７の判断で否定結果を得ると、その実行ジョブステップ（失敗ジョブステップ）をクラウドサーバ５が代行すべき対象に設定する（ＳＰ４８）。具体的に、ジョブ連携メインプログラム２５は、代行管理テーブル２８（図８）におけるその実行ジョブステップに対応するレコードの代行判定欄２８Ｄの値を「対象」に変更する。
【００９２】
ここで、ステップＳＰ４８でクラウドサーバ５が代行すべき対象に設定されたその実行ジョブステップ（失敗ジョブステップ）をクラウドサーバ５が代行するためには、クラウドサーバ５が起動している必要がある。そこで、ジョブ連携メインプログラム２５は、この後、現在、クラウドサーバ５が起動中であるか否かを判断する（ＳＰ４９）。この判断は、代行管理テーブル２８（図８）における実行ジョブステップに対応するレコード以外のいずれかのレコードの代行判定欄２８Ｄに「対象」が登録されているか否かを判断することにより行われる。
【００９３】
そしてジョブ連携メインプログラム２５は、この判断で肯定結果を得ると、図１１について後述するジョブステップ代行準備処理を実行した後（ＳＰ５４）、このバッチ業務冗長化機能メイン処理を終了する。
【００９４】
これに対して、ジョブ連携メインプログラム２５は、ステップＳＰ４９の判断で否定結果を得ると、クラウド起動要求をクラウド制御サーバ４（図１）に送信する（ＳＰ５０）。
【００９５】
かくして、このクラウド起動要求を受信したクラウド制御サーバ４は、クラウドサーバ５の電源を投入してクラウドサーバ５を起動すると共に、共有ボリュームＶＯＬの第２の領域ＡＲ２に格納されているメインフレーム用のＯＳ３３（図１）をクラウドサーバ５に読み込ませてこれを起動させる。そしてクラウド制御サーバ４は、以上の処理を完了すると、上述の第１の完了通知を計算機１０に送信する。また、クラウドサーバ５のジョブ連携サブプログラム５４は、クラウドサーバ５がバッチ業務のジョブステップを代行できる状態となると、上述の第２の完了通知を計算機１０に送信する。
【００９６】
一方、ジョブ連携メインプログラム２５は、ステップＳＰ５０の処理後、上述の第１及び第２の完了通知を受信するのを待ち受けており（ＳＰ５１，ＳＰ５２）、これら第１及び第２の完了通知の双方を受信すると、ジョブ連携サブプログラム５４の準備が完了した旨（つまりクラウドサーバ５の起動が完了した旨）のメッセージを表示装置２３（図１）に表示させる（ＳＰ５３）。さらにジョブ連携メインプログラム２５は、図１１について後述するジョブステップ代行準備処理を実行し（ＳＰ５４）、この後、このバッチ業務冗長化機能メイン処理を終了する。
【００９７】
（２−３−１−２）ステップ代行終了／クラウド資源削除判定処理
図１０は、上述のバッチ業務冗長化機能メイン処理（図９）のステップＳＰ４２で実行されるステップ代行終了／クラウド資源削除判定処理の具体的な処理内容を示す。このステップ代行終了／クラウド資源削除判定処理は、上述のようにリターンコードの値が「０」のとき（つまり実行ジョブステップが成功したとき）にジョブ連携メインプログラム２５により実行される処理である。
【００９８】
ジョブ連携メインプログラム２５は、バッチ業務冗長化機能メイン処理のステップＳＰ４２に進むと、この図１０に示すステップ代行終了／クラウド資源削除判定処理を開始し、まず、代行管理テーブル２８における実行ジョブステップに対応するレコードの代行判定欄２８Ｄに格納されている値に基づいて、実行ジョブステップがクラウドサーバ５の代行対象に設定されているか否かを判断する（ＳＰ６０）。そしてジョブ連携メインプログラム２５は、この判断で否定結果を得るとステップＳＰ６７に進む。
【００９９】
これに対して、ジョブ連携メインプログラム２５は、ステップＳＰ６０の判断で肯定結果を得ると、代行管理テーブル２８（図８）における実行ジョブステップのレコードの代行連続失敗回数欄２８Ｅに格納されている連続失敗回数を「０」に更新する（ＳＰ６１）。
【０１００】
続いて、ジョブ連携メインプログラム２５は、実行ジョブステップを代行対象外のジョブステップに設定する（ＳＰ６２）。具体的に、ジョブ連携メインプログラム２５は、代行管理テーブル２８における実行ジョブステップに対応するレコードの代行判定欄２８Ｄに格納されている値を「対象外」に設定する。
【０１０１】
この後、ジョブ連携メインプログラム２５は、代行管理テーブル２８における実行ジョブステップに対応するレコード以外の各レコードの代行判定欄２８Ｄにそれぞれ格納されている値に基づいて、実行ジョブステップ以外のジョブステップの中にクラウドサーバ５の代行対象に設定されているジョブステップがあるか否かを判断する（ＳＰ６３）。
【０１０２】
この判断で肯定結果を得た場合、その代行対象のジョブステップをクラウドサーバ５が代行しなければならないため、クラウドサーバ５を停止することはできない。かくして、このときジョブ連携メインプログラム２５は、ステップＳＰ６７に進む。
【０１０３】
これに対して、ステップＳＰ６３の判断で否定結果を得た場合、現在、クラウドサーバ５が代行しなければならないジョブステップが存在しないため、クラウドサーバ５を停止させることができる。かくして、このときジョブ連携メインプログラム２５は、クラウド制御サーバ４に対してクラウドサーバ５の停止を要求するクラウド停止要求を送信する（ＳＰ６４）。この結果、このクラウド停止要求を受信したクラウド制御サーバ４は、この後、クラウドサーバ５の稼働を停止させる。
【０１０４】
この後、ジョブ連携メインプログラム２５は、クラウドサーバ５の稼働を停止させた旨の通知（以下、これをクラウド停止完了通知と呼ぶ）がクラウド制御サーバ４から送信されるのを待ち受け（ＳＰ６５）、やがてかかるクラウド停止完了通知がクラウド制御サーバ４から送信されてくると、クラウドサーバ５の稼働を停止させた旨のメッセージを表示装置２３（図１）に表示させる（ＳＰ６６）。
【０１０５】
続いて、ジョブ連携メインプログラム２５は、実行ジョブステップを含むジョブ（実行中ジョブ）に対する計算機１０の実績が十分であるか否かを判断する（ＳＰ６７）。この判断は、実績管理テーブル２７（図７）における実行ジョブに対応するレコードのジョブ実績欄２７Ｃに格納されている値が「十分」であるか否かを判断することにより行われる。
【０１０６】
そしてジョブ連携メインプログラム２５は、この判断で肯定結果を得ると、このステップ代行終了／クラウド資源削除判定処理を終了する。これに対して、ジョブ連携メインプログラム２５は、ステップＳＰ６７の判断で否定結果を得ると、実行ジョブステップが実行中ジョブの最後のジョブステップであるか否かを判断する（ＳＰ６８）。
【０１０７】
ジョブ連携メインプログラム２５は、この判断で否定結果を得ると、このステップ代行終了／クラウド資源削除判定処理を終了する。これに対して、ジョブ連携メインプログラム２５は、ステップＳＰ６８の判断で肯定結果を得ると、結果管理テーブル２６（図６）における実行中ジョブを構成する各ジョブステップに対応する各レコードのオープンリターンコード欄２６Ｅをそれぞれ参照して、実行中ジョブ内のすべてのジョブステップのリターンコードが「０」であったか否かを判断する（ＳＰ６９）。
【０１０８】
ジョブ連携メインプログラム２５は、この判断で否定結果を得ると、このステップ代行終了／クラウド資源削除判定処理を終了する。これに対して、ジョブ連携メインプログラム２５は、ステップＳＰ６９の判断で肯定結果を得ると、実績管理テーブル２７における実行ジョブに対応するレコードの連続成功回数欄２７Ｄに格納されている連続成功回数に「１」を加算する（ＳＰ７０）。
【０１０９】
続いて、ジョブ連携メインプログラム２５は、実績管理テーブル２７（図７）における実行中ジョブに対応するレコードの連続成功回数欄２７Ｄに格納されている連続成功回数の値が、当該連続成功回数について予め設定された回数（以下、これを連続成功閾値回数と呼ぶ）に到達したか否かを判断する（ＳＰ７１）。
【０１１０】
ここで、この判断で否定結果を得ることは、実行ジョブに対する計算機１０の実行実績が未だ不十分であることを意味する。かくして、このときジョブ連携メインプログラム２５は、このステップ代行終了／クラウド資源削除判定処理を終了する。
【０１１１】
これに対して、ステップＳＰ７１の判断で肯定結果を得ることは、実行ジョブに対する計算機１０の実行実績が十分と判断できる程度にまで達したことを意味する。かくして、このときジョブ連携メインプログラム２５は、実績管理テーブル２７における実行ジョブに対応するレコードのジョブ実績欄２７Ｃに格納されている値を「十分」に更新する（ＳＰ７２）。
【０１１２】
またジョブ連携メインプログラム２５は、ストレージ装置１２（図１）内に形成された共有ボリュームＶＯＬ（図１）の第２の領域ＡＲ２に格納されている、実行ジョブを構成する各ジョブステップのプログラムを当該第２の領域ＡＲ２から削除し（ＳＰ７３）その旨のメッセージを表示装置２３に表示させる（ＳＰ７４）。
【０１１３】
次いで、ジョブ連携メインプログラム２５は、バッチ業務を構成する各ジョブのジョブステップごとのプログラムをすべて共有ボリュームＶＯＬの第２の領域ＡＲ２から削除し終えたか否かを判断する（ＳＰ７５）。そしてジョブ連携メインプログラム２５は、この判断で否定結果を得ると、このステップ代行終了／クラウド資源削除判定処理を終了する。
【０１１４】
これに対して、ジョブ連携メインプログラム２５は、ステップＳＰ７５の判断で肯定結果を得ると、共有ボリュームＶＯＬの第２の領域ＡＲ２に格納されているメインフレーム用のＯＳ３３（図１）を当該第２の領域ＡＲ２から削除し（ＳＰ７６）、その旨のメッセージを表示装置２３に表示させる（ＳＰ７７）。そして、ジョブ連携メインプログラム２５は、この後、このステップ代行終了／クラウド資源削除判定処理を終了して、バッチ業務冗長化機能メイン処理に戻る。
【０１１５】
（２−３−１−３）ジョブステップ代行準備処理
図１１は、上述のバッチ業務冗長化機能メイン処理（図９）のステップＳＰ５４で実行されるジョブステップ代行準備処理の具体的な処理内容を示す。このジョブステップ代行準備処理は、上述のように計算機１０が失敗したジョブステップ（失敗ジョブステップ）をクラウドサーバ５に代行してもらうための準備を行う処理である。
【０１１６】
ジョブ連携メインプログラム２５は、バッチ業務冗長化機能メイン処理のステップＳＰ５４に進むと、この図１１に示すジョブステップ代行準備処理を開始し、まず、代行管理テーブル２８（図８）における実行中ジョブに対応するレコードの代行連続失敗回数欄２８Ｅを参照して、クラウドサーバ５が実行ジョブステップの代行を上述のクラウド連続失敗閾値回数（本実施の形態では３回）だけ連続して失敗しているか否かを判断する（ＳＰ８０）。
【０１１７】
そしてジョブ連携メインプログラム２５は、この判断で肯定結果を得ると、実行ジョブステップをクラウドサーバ５でも既定のクラウド連続失敗閾値回数分だけ連続して失敗している旨のエラーメッセージを表示装置２３に表示させる（ＳＰ８１）。またジョブ連携メインプログラム２５は、実行中ジョブを異常終了し（ＳＰ８２）、この後、このジョブステップ代行準備処理を終了する。従って、この場合には、バッチ業務冗長化機能メイン処理もこの段階で終了することになる。
【０１１８】
これに対して、ジョブ連携メインプログラム２５は、ステップＳＰ８０の判断で否定結果を得ると、計算機１０で失敗ジョブステップを実行したときの入力データ（つまり失敗ジョブステップの１つ前のジョブステップの出力データ）をメインフレーム形式に変換し、変換した入力データを共有ボリュームＶＯＬの第２の領域ＡＲ２に格納する（ＳＰ８３）。
【０１１９】
またジョブ連携メインプログラム２５は、この後、失敗ジョブステップのジョブステップ名と、実行中ジョブのジョブ名とを含む上述の単一ステップ代行指示をクラウドサーバ５のジョブ連携サブプログラム５４に送信する（ＳＰ８４）。
【０１２０】
かくして、この単一ステップ代行指示を受信したジョブ連携サブプログラム５４は、当該単一ステップ代行指示に含まれるジョブ名及びジョブステップ名をジョブ実行基盤５３（図１）に引き渡し、対応するジョブステップ（失敗ジョブステップ）を実行するよう当該ジョブ実行基盤５３に指示を与える。この結果、ジョブ実行基盤５３は、共有ボリュームＶＯＬの第２の領域ＡＲ２に格納されている失敗ジョブステップのプログラム３２（図１）を実行する。またジョブ連携サブプログラム５４は、このプログラム３２から与えられる失敗ジョブステップの成否を表すリターンコードをジョブ連携メインプログラム２５に転送する。
【０１２１】
一方、ジョブ連携メインプログラム２５は、ステップＳＰ８４の処理後、ジョブ連携サブプログラム５４からリターンコードが送信されてくるのを待ち受けており（ＳＰ８５）、やがてそのリターンコードを受信すると、そのリターンコードの値を結果管理テーブル２６（図６）のメインフレームクラウドリターンコード欄２６Ｆの単一ステップ代行欄２６ＦＡに格納する（ＳＰ８６）。
【０１２２】
続いて、ジョブ連携メインプログラム２５は、ステップＳＰ８６で結果管理テーブル２６に格納したリターンコードの値が「０」であったか否かを判断する（ＳＰ８７）。そしてジョブ連携メインプログラム２５は、この判断で肯定結果を得ると、ステップＳＰ８９に進む。
【０１２３】
これに対して、ジョブ連携メインプログラム２５は、ステップＳＰ８７の判断で否定結果を得ると、実行中ジョブの最初のジョブステップから失敗ジョブステップまでの各ジョブステップをクラウドサーバ５に代行させると共に不良ジョブステップを特定する、図１２について後述するステップ代行準備及び不良ステップ特定処理を実行する（ＳＰ８８）。
【０１２４】
この後、ジョブ連携メインプログラム２５は、代行管理テーブル２８（図８）の実行中ジョブステップに対応するレコードの代行連続失敗回数欄２８Ｅに格納されている値を「０」に更新する（ＳＰ８９）。
【０１２５】
続いて、ジョブ連携メインプログラム２５は、ステップＳＰ８４の単一ステップ代行指示に応じて、又は、ステップＳＰ８８のステップ代行準備及び不良ステップ特定処理の処理結果としてクラウドサーバ５で実行された失敗ジョブステップの出力データを共有ボリュームＶＯＬの第２の領域ＡＲ２から読み出してオープンシステム形式に変換し、変換した失敗ジョブステップの出力データを共有ボリュームＶＯＬの第１の領域ＡＲ１内の所定位置に格納する（ＳＰ９０）。
【０１２６】
次いで、ジョブ連携メインプログラム２５は、失敗ジョブステップが計算機１０では異常終了したもののクラウドサーバ５の代行で成功した旨のメッセージを表示装置２３（図１）に表示させる（ＳＰ９１）。
【０１２７】
さらに、ジョブ連携メインプログラム２５は、実行中ジョブを失敗ジョブステップ以降のジョブステップから再開するようジョブ実行基盤２４（図１）に指示し（ＳＰ９２）、この後、このジョブステップ代行準備処理を終了して図９のバッチ業務冗長化機能メイン処理に戻る。
【０１２８】
なお、上述のジョブステップ代行準備処理（図１１）のステップＳＰ８８において実行されるステップ代行準備及び不良ステップ特定処理の具体的な処理内容を図１２に示す。
【０１２９】
ジョブ連携メインプログラム２５は、ジョブステップ代行準備処理のステップＳＰ８８に進むと、この図１２に示すステップ代行準備及び不良ステップ特定処理を開始し、まず、実行中ジョブの最初のジョブステップへの入力データをメインフレーム形式に変換して共有ボリュームＶＯＬの第２の領域ＡＲ２の所定位置に格納する（ＳＰ１００）。
【０１３０】
続いて、ジョブ連携メインプログラム２５は、実行中ジョブのジョブ名と、失敗ジョブステップのジョブステップ名とを含む複数ステップ代行指示をクラウドサーバ５のジョブ連携サブプログラム５４に送信する（ＳＰ１０１）。かくして、この複数ステップ代行指示を受信したジョブ連携サブプログラム５４は、実行中ジョブの最初のジョブステップから失敗ジョブステップまでの各ジョブステップをそれぞれ実行するようジョブ実行基盤５３に指示を与え、ジョブ実行基盤５３は、この指示に従って、共有ボリュームＶＯＬの第２の領域ＡＲ２に格納されている対応するプログラム３２を実行することにより、実行中ジョブの最初のジョブステップから失敗ジョブステップまでの各ジョブステップを順番に実行する。そしてジョブ連携サブプログラム５４は、このようにして実行中ジョブの最初のジョブステップから失敗ジョブステップまでの各ジョブステップをジョブ実行基盤５３が実行し終えると、これら一連のジョブステップの実行の成否を表すリターンコードを計算機１０のジョブ連携メインプログラム２５に送信する。
【０１３１】
このときジョブ連携メインプログラム２５は、ステップＳＰ１０１の処理後、ジョブ連携サブプログラム５４からリターンコードが送信されてくるのを待ち受けており（ＳＰ１０２）、このリターンコードを受信すると、そのリターンコードの値を結果管理テーブル２６（図６）のメインフレームクラウドリターンコード欄２６Ｆの複数ステップ代行欄２６ＦＢに格納する（ＳＰ１０３）。
【０１３２】
続いて、ジョブ連携メインプログラム２５は、ステップＳＰ１０３で結果管理テーブル２６に格納したリターンコードの値が「０」であったか否かを判断する（ＳＰ１０４）。
【０１３３】
そしてジョブ連携メインプログラム２５は、この判断で否定結果を得ると、代行管理テーブル２８（図８）の代行連続失敗回数欄２８Ｅに格納されている値を「１」だけ加算した値に更新し（ＳＰ１０５）、さらに実行中ジョブを計算機１０及びクラウドサーバ５の双方で異常終了した旨のメッセージを表示装置２３に表示させる（ＳＰ１０６）。
【０１３４】
さらにジョブ連携メインプログラム２５は、実行中ジョブを異常終了し（ＳＰ１０７）、この後、このステップ代行準備及び不良ステップ特定処理を終了する。従って、この場合には、ジョブステップ代行準備処理（図１１）もバッチ業務冗長化機能メイン処理（図９）もこの段階で終了することになる。
【０１３５】
これに対して、ジョブ連携メインプログラム２５は、ステップＳＰ１０４の判断で肯定結果を得ると、共有ボリュームＶＯＬの第２の領域ＡＲ２に格納されている、そのときクラウドサーバ５によって実行された実行中ジョブの最初のジョブステップから失敗ジョブステップまでの各ジョブステップの出力データをそれぞれオープンシステム形式に変換し、変換後のこれら出力データを共有ボリュームＶＯＬの第１の領域ＡＲ１の所定位置にそれぞれ格納する（ＳＰ１０８）。
【０１３６】
続いて、ジョブ連携メインプログラム２５は、計算機１０が実行中ジョブの最初のジョブステップから失敗ジョブステップまでの各ジョブステップをそれぞれ実行したときに得られた出力データと、ステップＳＰ１０８で共有ボリュームＶＯＬの第１の領域ＡＲ１に格納された、クラウドサーバ５が実行中ジョブの最初のジョブステップから失敗ジョブステップまでの各ジョブステップを実行したときに得られたこれらジョブステップの出力データとを、ジョブステップの実行順番で対応するジョブステップごとに順番に比較するようにして、これらの出力データの値、つまり計算機１０の実行結果と、クラウドサーバ５の実行結果とが最初に一致しないジョブステップを検索する（ＳＰ１０９）。
【０１３７】
そしてジョブ連携メインプログラム２５は、ステップＳＰ１０９の検索により検出したジョブステップのジョブステップ名を、計算機１０の実行結果と、クラウドサーバ５の実行結果とが一致しない旨のメッセージと共に表示装置２３に表示させ（ＳＰ１１０）、この後、このジョブステップ代行準備及び不良ステップ特定処理を終了してジョブステップ代行準備処理（図１１）に戻る。
【０１３８】
（２−３−２）ジョブ連携サブプログラムの処理
一方、図１３は、図１１について上述したジョブステップ代行準備処理のステップＳＰ８４においてジョブ連携メインプログラム２５から送信された単一ステップ代行指示を受信し、又は、図１２について上述したジョブステップ代行準備及び不良ステップ特定処理のステップＳＰ１０１においてジョブ連携メインプログラム２５から送信された複数ステップ代行指示を受信したクラウドサーバ５のジョブ連携サブプログラム５４により実行されるステップ代行処理の具体的な処理内容を示す。
【０１３９】
ジョブ連携サブプログラム５４は、ジョブ実行基盤５３（図１）と共に起動され、起動後、計算機１０のジョブ連携メインプログラム２５との間の通信路を確保した後、当該ジョブ連携メインプログラム２５から上述の単一ステップ代行指示又は複数ステップ代行指示が与えられるのを待ち受ける。
【０１４０】
そしてジョブ連携サブプログラム５４は、ジョブ連携メインプログラム２５からかかる単一ステップ代行指示又は複数ステップ代行指示が送信されてくると、この図１３に示すステップ代行処理を開始し、そのとき受信した代行指示が単一ステップ代行指示であるか否かを判断する（ＳＰ１２０）。
【０１４１】
ジョブ連携サブプログラム５４は、この判断で肯定結果を得ると、そのとき受信した単一ステップ代行指示において指定された代行すべきジョブ（実行中ジョブ）及びジョブステップ（失敗ジョブステップ）を確認し、実行中ジョブから失敗ジョブステップを抜き出した新たなジョブのジョブ定義を作成した後（ＳＰ１２１）、ステップＳＰ１２３に進む。
【０１４２】
これに対して、ジョブ連携サブプログラム５４は、ステップＳＰ１２０の判断で否定結果を得ると、そのとき受信した複数ステップ代行指示において指定された代行すべきジョブ（実行中ジョブ）及びジョブステップ（失敗ジョブステップ）を確認し、実行中ジョブの最初のジョブステップから失敗ジョブステップまでの各ジョブステップを抜き出した新たなジョブのジョブ定義を作成する（ＳＰ１２２）。
【０１４３】
そして、ジョブ連携サブプログラム５４は、この後、ステップＳＰ１２１又はステップＳＰ１２２で作成したジョブ定義を読み込み、そのジョブ定義に従ったジョブを実行するようジョブ実行基盤５３に指示を与える（ＳＰ１２３）。
【０１４４】
かくして、この指示を受けたジョブ実行基盤５３は、共有ボリュームＶＯＬの第２の領域ＡＲ２に格納された対応するプログラム３２を実行することにより、その失敗ジョブステップや（ジョブ連携サブプログラム５４が受信した代行指示が単一ステップ代行指示であった場合）、実行中ジョブの最初のジョブステップから失敗ジョブステップまでの各ジョブステップ（ジョブ連携サブプログラム５４が受信した代行指示が複数ステップ代行指示であった場合）を実施し、実行結果（各ジョブステップの出力データ）を共有ボリュームＶＯＬの第２の領域ＡＲ２内の所定位置に格納する。またジョブ実行基盤５３は、対応するプログラム３２から与えられたかかる各ジョブステップの成否を表すリターンコードをジョブ連携サブプログラム５４に与える。
【０１４５】
この後、ジョブ連携サブプログラム５４は、ステップＳＰ１２１又はステップＳＰ１２２で作成したジョブ定義を削除し（ＳＰ１２４）、さらに上述のようにジョブ実行基盤５３から与えられたリターンコードをジョブ連携メインプログラム２５に送信した後（ＳＰ１２５）、このステップ代行処理を終了する。
【０１４６】
（３）本実施の形態の効果
以上のように本情報処理システム１では、メインフレーム１３から業務が移行されたオープンシステムでなる計算機１０が、ストレージ装置１２に格納されたオープンシステム形式に改変された各ジョブステップのプログラム３４に基づいて、移行された業務の各ジョブのジョブステップを順次実行する一方、いずれかのジョブステップの実行を失敗した場合には、計算機１０が当該ジョブステップ（失敗ジョブステップ）の代行をクラウドサーバ５に指示し、クラウドサーバ５がストレージ装置１２に格納されている改変前のメインフレーム形式の対応するプログラム３２に基づいて、そのジョブステップを代行する。
【０１４７】
従って、本情報処理システム１では、オープンシステム形式に改変されたプログラム３４の不具合等により計算機１０が実行中ジョブのジョブステップを行うことができない場合においても、そのジョブステップをクラウドサーバ５が代行するため、業務が停止することがない。よって本情報処理システム１によれば、業務移行後の不具合に起因して業務に悪影響が及ぶのを有効に防止し得る信頼性の高い情報処理システムを実現することができる。
【０１４８】
また本情報処理システム１では、計算機１０から代行を指示された失敗ジョブステップの実行をクラウドサーバ５も失敗した場合には、実行中ジョブの最初のジョブステップから失敗ジョブステップまでの各ジョブステップをクラウドサーバ５で実行するため、より信頼性及び可用性の高い情報処理システムを実現することができる。
【０１４９】
さらに本情報処理システム１では、このように計算機１０から代行を指示された失敗ジョブステップの実行をクラウドサーバ５も失敗した場合には、計算機１０における実行中ジョブの最初のジョブステップから失敗ジョブステップまでの各ジョブステップの実行結果（出力データ）と、クラウドサーバ５におけるこれら各ジョブステップの実行結果とを比較して、不当な実行結果を出力するジョブステップを特定してユーザに提示するため、改変に失敗したプログラム３４を迅速に修正することができる。従って、業務移行後の計算機１０の不具合を迅速に改善することができ、その分業務システム２の信頼性及び可用性をより一層と向上させることができる。
【０１５０】
さらに本情報処理システム１では、業務の各ステップについて、計算機１０が予め設定された連続成功閾値回数だけジョブを連続して成功した場合に、そのジョブの各ジョブステップのメインフレーム用のプログラム３２をストレージ装置１２の共有ボリュームＶＯＬから削除するようにしているため、計算機１０がジョブに対する実績を十分に積むまでの間は可用性を確保しながら、計算機１０がジョブに対する実績を十分に積んだ後は不要なプログラム３２がストレージ装置１２に残存するのを防止して、記憶資源（ストレージ装置１２）の浪費を有効に防止することができる。
【０１５１】
さらに本情報処理システム１では、計算機１０がいずれかのジョブのジョブステップを連続して失敗した場合にクラウドサーバ５を起動して、当該ジョブステップ（失敗ジョブステップ）の代行を当該クラウドサーバ５に指示する一方、その後、その失敗ジョブステップのプログラム３４が修正されるなどして計算機１０がその失敗ジョブステップに成功した場合に、クラウドサーバ５の稼働を停止させるため、必要なときにのみクラウドサーバ５を稼働させることができ、その分、情報処理システム１全体としての省ネルギー化を図ることができる。
【０１５２】
（４）他の実施の形態
なお上述の実施の形態においては、本発明を図１のように構成された情報処理システム１に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成の情報処理システムに広く適用することができる。
【０１５３】
また上述の実施の形態においては、本発明を、メインフレームからオープンシステムに業務を移行した情報処理システムに適用する場合について述べたが、本発明はこれに限らず、これ以外の異なるシステム環境の間での業務の移行が行われた情報処理システムにも適用することができる。
【産業上の利用可能性】
【０１５４】
本発明は、システム環境が異なる第１の計算機から、１又は複数のジョブから構成される業務が移行された第２の計算機を有する情報処理システムに広く適用することができる。
【符号の説明】
【０１５５】
１……情報処理システム、２……業務システム、４……クラウド制御サーバ、５……クラウドサーバ、１０……計算機、１２……ストレージ装置、１３……メインフレーム、２０，４０，５０……ＣＰＵ、２３……表示装置、２４，５３……ジョブ実行基盤、２５……ジョブ連携メインプログラム、２６……結果管理テーブル、２７……実績管理テーブル、２８……代行管理テーブル、３２，３４……プログラム、４３……クラウド制御プログラム、５４……ジョブ連携サブプログラム、ＡＲ１，ＡＲ２……領域、ＶＯＬ……共有ボリューム。
【図１】
2017208409.tif 000003
【図２】
2017208409.tif 000004
【図３】
2017208409.tif 000005
【図４】
2017208409.tif 000006
【図５】
2017208409.tif 000007
【図６】
2017208409.tif 000008
【図７】
2017208409.tif 000009
【図８】
2017208409.tif 000010
【図９】
2017208409.tif 000011
【図１０】
2017208409.tif 000012
【図１１】
2017208409.tif 000013
【図１２】
2017208409.tif 000014
【図１３】
2017208409.tif 000015
【国際調査報告】
2017208409.tif 000016
2017208409.tif 000017
2017208409.tif 000018
2017208409.tif 000019