(57)【要約】【課題】異なる計算機間でのプログラムの移行を適切に行い得る計算機システムおよびプログラム移行方法を提供する。【解決手段】第１の計算機は、ハードウェア資源の使用量に対する重み付けを示す情報と、複数のプログラムの各々を実行したときの第１の計算機におけるハードウェア資源の稼働情報とに基づいて、複数のプログラムの各々について移行優先度を算出し、複数の移行フェーズの各々において第２の計算機が有するハードウェア資源を規定したハードウェア資源増設スケジュール情報に基づいて、複数の移行フェーズの先頭の移行フェーズから順に、かつ、算出した移行優先度順に、各移行フェーズで用いられるハードウェア資源においてプログラムの移行可否を判定し、複数のプログラムの各々を移行する移行フェーズを決定するようにした。【選択図】図１
2019109584.tif 000002
【特許請求の範囲】
【請求項１】
複数のプログラムの移行元の第１の計算機と、前記複数のプログラムの移行先であって、前記第１の計算機とは異なる第２の計算機とを備える計算機システムであって、
前記第１の計算機は、
ハードウェア資源の使用量に対する重み付けを示す情報と、前記複数のプログラムの各々を実行したときの前記第１の計算機におけるハードウェア資源の稼働情報とに基づいて、前記複数のプログラムの各々について移行優先度を算出し、
複数の移行フェーズの各々において前記第２の計算機が有するハードウェア資源を規定したハードウェア資源増設スケジュール情報に基づいて、前記複数の移行フェーズの先頭の移行フェーズから順に、かつ、算出した移行優先度順に、各移行フェーズで用いられるハードウェア資源においてプログラムの移行可否を判定し、前記複数のプログラムの各々を移行する移行フェーズを決定する、
ことを特徴とする計算機システム。
【請求項２】
前記第１の計算機は、
実行対象のプログラムが前記第２の計算機で動作可能に改変されたプログラムが前記第２の計算機に移植済みであり、前記第２の計算機が前記移植済みプログラムの実行を遅延なく終了したと判定した場合、前記実行対象のプログラムを移行するための処理を行う、
ことを特徴とする請求項１に記載の計算機システム。
【請求項３】
前記第１の計算機は、
前記実行対象のプログラムを実行した結果と前記第２の計算機が前記移植済みプログラムを実行した結果とが一致したと更に判定したとき、前記実行対象のプログラムを移行するための処理を行う、
ことを特徴とする請求項２に記載の計算機システム。
【請求項４】
前記第２の計算機には、実行対象のプログラムが前記第２の計算機で動作可能に改変されたプログラムが移植済みであり、
前記第１の計算機は、
前記実行対象のプログラムを実行した結果と前記第２の計算機が前記移植済みプログラムを実行した結果とが一致しない、または前記第２の計算機が前記移植済みプログラムの実行を遅延して終了した場合、前記実行対象のプログラムと前記実行対象のプログラムが移行される移行フェーズより後の移行フェーズで移行されるプログラムとからなる未移行のプログラムを対象とし、前記後の移行フェーズの先頭の移行フェーズから順に、かつ、算出した移行優先度順に、各移行フェーズで用いられるハードウェア資源においてプログラムの移行可否を判定し、前記未移行のプログラムを移行する移行フェーズを決定する、
ことを特徴とする請求項１に記載の計算機システム。
【請求項５】
前記第１の計算機は、
前記複数のプログラムの各々を移行する移行フェーズを示す移行スケジュール情報を出力する、
ことを特徴とする請求項１に記載の計算機システム。
【請求項６】
前記第１の計算機は、
前記移行スケジュール情報を修正した後の修正移行スケジュール情報を受付可能であり、前記修正移行スケジュール情報に基づいて、各移行フェーズで用いられるハードウェア資源においてプログラムの移行可否を判定する、
ことを特徴とする請求項５に記載の計算機システム。
【請求項７】
前記第１の計算機は、
前記ハードウェア資源増設スケジュール情報を修正した後の修正ハードウェア資源増設スケジュール情報を受付可能であり、前記修正移行スケジュール情報および前記修正ハードウェア資源増設スケジュール情報に基づいて、各移行フェーズで用いられるハードウェア資源においてプログラムの移行可否を判定する、
ことを特徴とする請求項６に記載の計算機システム。
【請求項８】
複数のプログラムの移行元の第１の計算機と、前記複数のプログラムの移行先であって、前記第１の計算機とは異なる第２の計算機とを備える計算機システムにおけるプログラム移行方法であって、
計算機が、ハードウェア資源の使用量に対する重み付けを示す情報と、前記複数のプログラムの各々を実行したときの前記第１の計算機におけるハードウェア資源の稼働情報とに基づいて、前記複数のプログラムの各々について移行優先度を算出する第１のステップと、
計算機が、複数の移行フェーズの各々において前記第２の計算機が有するハードウェア資源を規定したハードウェア資源増設スケジュール情報に基づいて、前記複数の移行フェーズの先頭の移行フェーズから順に、かつ、移行優先度順に、各移行フェーズで用いられるハードウェア資源においてプログラムの移行可否を判定し、前記複数のプログラムの各々を移行する移行フェーズを決定する第２のステップと、
を備えることを特徴とするプログラム移行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は計算機システムおよびプログラム移行方法に関し、例えば、第１の計算機から第２の計算機へのプログラムの移行に適用して好適なものである。
【背景技術】
【０００２】
メインフレームシステムからオープンシステムへの業務の移行は、業務処理を実行するための全てのプログラムをオープンシステムに応じた形式にそれぞれ改変した上で移行を実施した後に、メインフレームシステム側の業務を一旦停止してオープンシステム側で業務を再開するようにして行われている。
【０００３】
この方法では、移行先のオープンシステムで必要となるハードウェア資源の見積もり、数千〜万単位のプログラムの改変、プログラムの検証等を行う必要があるため、その準備を全て完了させるには、数か月〜数年の期間を要し、プログラムの移行を迅速に行うことができない問題がある。
【０００４】
また、必要なハードウェアリソースの見積もりに際しては、リソース不足に起因する不具合の発生を予防するために、ある程度の余裕をもった見積もりを行う必要があり、その分、オープンシステムの初期導入の費用として余分な費用が必要となる問題もある。
【０００５】
加えて、上述のようにメインフレームシステム側において業務を一旦停止する必要があるため、その間、業務処理を実行できないという問題もある。
【０００６】
上記を解決する手段として、プログラム単位に自動でジョブステップを移行する方法が開示されている（特許文献１参照）。この方法では、オープンシステム側で実行したいジョブステップを動作させるために必要なプログラムを予めオープンシステム側で実行可能にしておき、自動でメインフレームシステムから該当プログラムのみをオープンシステム側で動作させるように制御する。これにより、システムを停止することなく、改変が完了したプログラムから順にオープンシステムに移行することが可能となる。そして、全てのプログラムの移行が完了し、オープンシステムで全ジョブステップを動作できるようになると、マイグレーションの完了となる。また、オープンシステム側には、移行したプログラムの実行に必要なハードウェア資源があればよいため、オープンシステムのハードウェアに係る初期導入の費用を抑えることができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２０１７／０７２９７８号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
一般に、メインフレームシステムのハードウェア資源は、オープンシステムのハードウェア資源よりも高価であるが、特許文献１に記載の技術では、この点が加味されていないので、プログラムの移行順序によってはマイグレーションの終盤までメインフレームシステムのハードウェア資源を削減できずに運用コストがかかってしまう問題がある。また、オープンシステムのハードウェア資源の不足により、処理の突き抜け（予定終了時間までに処理が終了しない事態）が発生してしまう問題がある。
【０００９】
本発明は以上の点を考慮してなされたもので、異なる計算機間でのプログラムの移行を適切に行い得る計算機システムおよびプログラム移行方法を提案しようとするものである。
【課題を解決するための手段】
【００１０】
かかる課題を解決するため本発明においては、複数のプログラムの移行元の第１の計算機と、前記複数のプログラムの移行先であって、前記第１の計算機とは異なる第２の計算機とを備える計算機システムであって、前記第１の計算機は、ハードウェア資源の使用量に対する重み付けを示す情報と、前記複数のプログラムの各々を実行したときの前記第１の計算機におけるハードウェア資源の稼働情報とに基づいて、前記複数のプログラムの各々について移行優先度を算出し、複数の移行フェーズの各々において前記第２の計算機が有するハードウェア資源を規定したハードウェア資源増設スケジュール情報に基づいて、前記複数の移行フェーズの先頭の移行フェーズから順に、かつ、算出した移行優先度順に、各移行フェーズで用いられるハードウェア資源においてプログラムの移行可否を判定し、前記複数のプログラムの各々を移行する移行フェーズを決定するようにした。
【００１１】
また本発明においては、複数のプログラムの移行元の第１の計算機と、前記複数のプログラムの移行先であって、前記第１の計算機とは異なる第２の計算機とを備える計算機システムにおけるプログラム移行方法であって、計算機が、ハードウェア資源の使用量に対する重み付けを示す情報と、前記複数のプログラムの各々を実行したときの前記第１の計算機におけるハードウェア資源の稼働情報とに基づいて、前記複数のプログラムの各々について移行優先度を算出する第１のステップと、計算機が、複数の移行フェーズの各々において前記第２の計算機が有するハードウェア資源を規定したハードウェア資源増設スケジュール情報に基づいて、前記複数の移行フェーズの先頭の移行フェーズから順に、かつ、移行優先度順に、各移行フェーズで用いられるハードウェア資源においてプログラムの移行可否を判定し、前記複数のプログラムの各々を移行する移行フェーズを決定する第２のステップと、を設けるようにした。
【００１２】
上記構成によれば、複数のプログラムの各々を移行する移行フェーズを決定することができる。
【発明の効果】
【００１３】
本発明によれば、異なる計算機間でのプログラムの移行を適切に行うことができる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施の形態による計算機システムの構成の一例を示す図である。
【図２】第１の実施の形態によるＪＣＬファイルの一例を示す図である。
【図３】第１の実施の形態によるジョブステップ稼働情報テーブルの一例を示す図である。
【図４】第１の実施の形態によるジョブステップ稼働情報集計テーブルの一例を示す図である。
【図５】第１の実施の形態による移行方針テーブルの一例を示す図である。
【図６】第１の実施の形態による算定基準係数テーブルの一例を示す図である。
【図７】第１の実施の形態による移行優先度テーブルの一例を示す図である。
【図８】第１の実施の形態による移行プログラム管理テーブルの一例を示す図である。
【図９】第１の実施の形態による移行フェーズ管理テーブルの一例を示す図である。
【図１０】第１の実施の形態によるハードウェア資源増設スケジュールテーブルの一例を示す図である。
【図１１】第１の実施の形態による移行スケジュール作成処理に係る処理手順の一例を示す図である。
【図１２】第１の実施の形態による移行スケジュール導出処理に係る処理手順の一例を示す図である。
【図１３】第１の実施の形態による移行スケジュール修正処理に係る処理手順の一例を示す図である。
【図１４】第１の実施の形態による移行設定処理に係る処理手順の一例を示す図である。
【図１５】第１の実施の形態によるジョブステップ実行処理に係る処理手順の一例を示す図である。
【図１６】第１の実施の形態によるプログラム移行処理に係る処理手順の一例を示す図である。
【図１７】第１の実施の形態による移行スケジュール再導出処理に係る処理手順の一例を示す図である。
【図１８】第１の実施の形態による移行スケジュールの出力の一例を示す図である。
【図１９】第１の実施の形態による移行スケジュールの出力の一例を示す図である。
【図２０】第１の実施の形態による移行レポートの出力の一例を示す図である。
【図２１】第１の実施の形態による移行レポートの出力の一例を示す図である。
【図２２】第１の実施の形態による移行レポートの出力の一例を示す図である。
【図２３】第１の実施の形態による移行レポートの出力の一例を示す図である。
【発明を実施するための形態】
【００１５】
以下図面について、本発明の一実施の形態を詳述する。
【００１６】
（１）本実施の形態による計算機システムの構成
図１において、１は全体として第１の実施の形態による計算機システムを示す。計算機システム１は、プログラムの移行元である第１の計算機１００とプログラムの移行先である第２の計算機２００とを含んで構成される。第１の計算機１００と第２の計算機２００とは、互いに異なる計算機であり、通信可能に接続される。かかる計算機システム１では、例えば、第１の計算機１００で実行される業務（例えば、バッチ処理）に係る複数のプログラムのうちハードウェア資源の使用量の多い移行可能なプログラムから第２の計算機２００に移行される。以下、詳細について説明する。
【００１７】
第１の計算機１００は、予め設定された各種の業務処理を実行するサーバ装置、メインフレームシステムのコンピュータ等であり、内部バス１１０を介して接続されたＣＰＵ（Central  Processing  Unit）１２０、主記憶装置１３０、通信装置１４０等の情報処理資源を備えて構成される。
【００１８】
ＣＰＵ１２０は、第１の計算機１００全体の動作制御を司るプロセッサである。主記憶装置１３０は、例えば半導体メモリなどから構成され、各種プログラムを記憶するために利用されるほか、ＣＰＵ１２０のワークメモリとしても利用される。例えば、ＣＰＵ１２０が補助記憶装置１５０、ＲＯＭ（Read  Only  Memory：図示は省略。）等に格納されたプログラムを主記憶装置１３０に読み出して実行することにより、プログラムモジュール（ジョブ実行制御部１３１、ハードウェア資源管理部１３２など）が実現される。
【００１９】
なお、詳細については後述するが、ジョブ実行制御部１３１は、バッチ処理におけるジョブの制御、移行スケジュールの作成、プログラムの移行管理等を行う。ハードウェア資源管理部１３２は、第１の計算機１００のハードウェア資源（例えば、ＣＰＵ１２０、主記憶装置１３０（メモリ）、補助記憶装置１５０（ディスク））を管理する。例えば、ハードウェア資源管理部１３２は、ハードウェア資源に係る情報（第１のハードウェア資源情報）を収集（取得）し、第１のハードウェア資源情報をジョブ実行制御部１３１に送信（通知）する。第１のハードウェア資源情報は、第１の計算機１００のハードウェア資源のスペック（例えば、ＣＰＵ性能、ＣＰＵコア数、メモリ容量、ディスク容量）を示す情報である。
【００２０】
通信装置１４０は、例えば、ＮＩＣ（Network  Interface  Card）から構成され、第２の計算機２００との通信時におけるプロトコル制御を行う。
【００２１】
また、第１の計算機１００には、補助記憶装置１５０および第１の端末装置１６０が接続されている。
【００２２】
補助記憶装置１５０は、ハードディスク装置、ＳＳＤ（Solid  State  Drive）などの大容量の不揮発性の記憶装置から構成される。補助記憶装置１５０には、ＪＣＬ（Job  Control  Language）でバッチ処理の内容が記述されたＪＣＬファイル１５１Ａ（図２）、各種のプログラムを含むプログラム群１５１Ｂ（図２）、ジョブステップ稼働情報テーブル１５２（図３）、ジョブステップ稼働情報集計テーブル１５３（図４）、移行方針テーブル１５４（図５）、算定基準係数テーブル１５５（図６）、移行優先度テーブル１５６（図７）、移行プログラム管理テーブル１５７（図８）、移行フェーズ管理テーブル１５８（図９）、ハードウェア資源増設スケジュールテーブル１５９（図１０）などが格納される。
【００２３】
第１の端末装置１６０は、各種情報を受付可能であり、ユーザ（管理者など）が移行スケジュールの作成、プログラムの移行状況の確認などを行うことが可能なノート型パーソナルコンピュータ、スマートフォンなどである。例えば、ユーザは、第１の端末装置１６０を用いて第１の計算機１００に各種設定を行ったり、第１の計算機１００に関する各種情報を第１の端末装置１６０に表示させたりすることができる。
【００２４】
第２の計算機２００は、予め設定された各種の業務処理を実行するサーバ装置、オープンシステムのコンピュータ等であり、内部バス２１０を介して接続されたＣＰＵ２２０、主記憶装置２３０、通信装置２４０等の情報処理資源を備えて構成される。また、第２の計算機２００には、補助記憶装置２５０および第２の端末装置２６０が接続されている。これらＣＰＵ２２０、主記憶装置２３０、通信装置２４０、補助記憶装置２５０、および第２の端末装置２６０は、第１の計算機１００の対応部位と同様であるため、ここでの説明は省略する。
【００２５】
（２）第１の計算機が使用する各種データ（ファイル、テーブルなど）
（２−１）ＪＣＬファイル
図２は、ＪＣＬファイル１５１Ａの一例を示す図である。ＪＣＬファイル１５１Ａには、ジョブ実行制御部１３１に対してバッチ処理の指定、常駐プロセス起動時の指定等をするために、実行するプログラム、アクセスするディスク等の情報が記述される。
【００２６】
ここで、バッチ処理は、図２に示すように、実行順序が規定された複数のジョブ（ＪＯＢ１、ＪＯＢ２、……）から構成され、各ジョブは、それぞれ実行順序が規定された１または複数のジョブステップ（ＳＴＥＰ１、ＳＴＥＰ２、……）から構成される。「ジョブ」は、バッチ処理における処理単位であり、「ジョブステップ」は、ジョブにおける処理単位である。
【００２７】
１つのジョブステップは、当該ジョブステップと対応付けられた１つのプログラムが実行されることにより完了する。１つのジョブは、各ジョブステップに対応付けられた各プログラムがジョブステップの順番で順次実行されることにより完了する。１つのバッチ処理は、全てのジョブが完了したことにより終了する。なお、図２に示すように、プログラムには、１つのジョブステップが対応付けられていることも、複数のジョブステップが対応付けられていることもある。
【００２８】
（２−２）ジョブステップ稼働情報テーブル
図３は、ジョブステップ稼働情報テーブル１５２の一例を示す図である。ジョブステップ稼働情報テーブル１５２には、ジョブ実行制御部１３１がジョブステップの実行を終了したときに実行に使用したハードウェア資源の使用量を記録した情報（ジョブステップ稼働情報）が格納される。例えば、ジョブステップ稼働情報テーブル１５２には、ジョブ名、ジョブステップ名、プログラム名、実行開始日時、実行時間、ＣＰＵ使用時間、メモリ使用量、およびディスク使用量の情報が対応付けられて格納される。
【００２９】
ジョブ名には、ジョブを識別可能な識別情報が格納される。ジョブステップ名には、ジョブステップを識別可能な識別情報が格納される。プログラム名には、ジョブステップに対応付けられたプログラムを識別可能な識別情報が格納される。実行開始日時には、ジョブステップの実行を開始した日時を示す情報が格納される。実行時間には、ジョブステップを実行するのに要した時間を示す情報が格納される。
【００３０】
ＣＰＵ使用時間には、ジョブステップの実行においてＣＰＵ１２０が使用された時間を示す情報が格納される。メモリ使用量には、ジョブステップの実行において使用された主記憶装置１３０の容量を示す情報が格納される。ディスク使用量には、ジョブステップの実行において使用された補助記憶装置１５０の容量を示す情報が格納される。
【００３１】
（２−３）ジョブステップ稼働情報集計テーブル
図４は、ジョブステップ稼働情報集計テーブル１５３の一例を示す図である。ジョブステップ稼働情報集計テーブル１５３には、ジョブ実行制御部１３１がジョブステップ稼働情報を集計した結果が格納される。例えば、ジョブステップ稼働情報集計テーブル１５３には、ジョブ名、ジョブステップ名、プログラム名、ジョブステップ別移行優先度、実行回数、平均ＣＰＵ使用時間、平均メモリ使用量、平均ディスク使用量、ディスク使用台数、実行頻度、および平均実行時間の情報が対応付けられて格納される。
【００３２】
ジョブ名には、ジョブを識別可能な識別情報が格納される。ジョブステップ名には、ジョブステップを識別可能な識別情報が格納される。プログラム名には、ジョブステップに対応付けられたプログラムを識別可能な識別情報が格納される。ジョブステップ別移行優先度には、ジョブステップの移行優先度を示す情報が格納される。なお、移行優先度の算出方法については後述する。
【００３３】
実行回数には、集計期間（例えば、１か月）に、ジョブステップが実行された回数を示す情報が格納される。平均ＣＰＵ使用時間には、ジョブステップを実行したときにＣＰＵ１２０を使用した時間の集計期間における平均値を示す情報が格納される。平均メモリ使用量には、ジョブステップを実行したときに主記憶装置１３０を使用した容量の集計期間における平均値を示す情報が格納される。平均ディスク使用量には、ジョブステップを実行したときに補助記憶装置１５０を使用した容量の集計期間における平均値を示す情報が格納される。ディスク使用台数には、ジョブステップを実行したときにディスクを使用した台数を示す情報が格納される。実行頻度には、所定期間内にジョブステップが実行される頻度を示す情報が格納される。平均実行時間には、ジョブステップが実行されるのに要した時間の集計期間における平均値を示す情報が格納される。
【００３４】
（２−４）移行方針テーブル
図５は、移行方針テーブル１５４の一例を示す図である。移行方針テーブル１５４には、ユーザが入力したハードウェア資源の使用量のうち、移行スケジュールの作成においてどの項目を重視するかを示す情報（移行優先度の重み付け）、およびバッチ処理の実行時間の許容伸び時間（バッチ処理許容伸び時間）を示す情報が格納される。例えば、移行方針テーブル１５４には、移行方針パラメタ名、ＣＰＵ使用時間優先度相対比、メモリ使用量優先度相対比、ディスク使用量優先度相対比、ディスク使用台数優先度相対比、およびバッチ処理許容伸び時間の情報が対応付けられて格納される。
【００３５】
例えば、ユーザは、第１の端末装置１６０を用いて、ＣＰＵ使用時間、メモリ使用量、ディスク使用量、およびディスク使用台数についての重み付けを相対比で入力すると、入力された値が移行方針テーブル１５４に格納される。なお、ユーザは、考慮しなくてよい観点については「０」を入力する。また、例えば、ユーザは、第１の端末装置１６０を用いてバッチ処理許容伸び時間を入力すると、入力された値が移行方針テーブル１５４に格納される。
【００３６】
（２−５）算定基準係数テーブル
図６は、算定基準係数テーブル１５５の一例を示す図である。算定基準係数テーブル１５５には、ハードウェア資源の使用量の単位を揃えるための係数（算定基準係数）の情報が格納される。例えば、算定基準係数テーブル１５５には、第１の計算機１００の機種、ＣＰＵ使用時間算定基準係数、メモリ使用量算定基準係数、ディスク使用量算定基準係数、およびディスク使用台数算定基準係数の情報が対応付けられて格納される。なお、算定基準係数（数値）については、例えば、ハードウェアアーキテクチャに応じて決定される。
【００３７】
（２−６）移行優先度テーブル
図７は、移行優先度テーブル１５６の一例を示す図である。移行優先度テーブル１５６には、ジョブ実行制御部１３１がプログラムを移行する際の優先度（プログラムの移行優先度）を示す情報が格納される。例えば、移行優先度テーブル１５６には、プログラム名、およびプログラム別移行優先度の情報が対応付けられて格納される。プログラム別移行優先度は、プログラム名が同じジョブステップの移行優先度が合計されて算出されるものである。
【００３８】
（２−７）移行プログラム管理テーブル
図８は、移行プログラム管理テーブル１５７の一例を示す図である。移行プログラム管理テーブル１５７には、ジョブ実行制御部１３１がプログラムの移行状況を管理するための情報が格納される。例えば、移行プログラム管理テーブル１５７には、移行フェーズ、プログラム名、移植済みフラグ、移行済みフラグ、成功回数、および移行失敗コードの情報が対応付けられて格納される。
【００３９】
移行フェーズには、移行フェーズを識別可能な識別情報が格納される。プログラム名には、プログラムを識別可能な情報が格納される。移植済みフラグには、第２の計算機２００で動作可能にプログラムが改変（改修）されて第２の計算機２００に移植されているか否かを示す情報が格納される。なお、第２の計算機２００で動作可能に改変されて移植されたプログラムを「移植プログラム」と適宜称する。移行済みフラグは、移植プログラムが第２の計算機２００で正常に動作されることが確認されてプログラムの移行が終了したか否かを示す情報が格納される。なお、プログラムの移行が終了することにより、当該プログラムの実行を第２の計算機２００が引き継ぎ、第１の計算機１００では当該プログラムの実行がされなくなる。
【００４０】
成功回数には、移植プログラムが第２の計算機２００で正常に動作した回数を示す情報が格納される。移行失敗コードには、プログラムの移行における失敗に係る情報が格納される。例えば、移行失敗コード「０」は、第２の計算機２００での移植プログラムの実行において失敗がないことを示し、移行失敗コード「１」は、第２の計算機２００で移植プログラムを実行した結果に不正があったことを示し、移行失敗コード「２」は、第２の計算機２００での移植プログラムの実行において遅延があったことを示す。
【００４１】
（２−８）移行フェーズ管理テーブル
図９は、移行フェーズ管理テーブル１５８の一例を示す図である。移行フェーズ管理テーブル１５８には、ジョブ実行制御部１３１が移行フェーズを管理するための情報が格納される。例えば、移行フェーズ管理テーブル１５８には、移行フェーズ、移行実行中フラグ、および移行フェーズ完了フラグの情報が対応付けられて格納される。
【００４２】
移行フェーズには、移行フェーズを識別可能な識別情報が格納される。移行実行中フラグには、移行中の移行フェーズであるか否かを示す情報が格納される。移行フェーズ完了フラグには、移行が完了した移行フェーズであるか否かを示す情報が格納される。
【００４３】
（２−９）ハードウェア資源増設スケジュールテーブル
図１０は、ハードウェア資源増設スケジュールテーブル１５９の一例を示す図である。ハードウェア資源増設スケジュールテーブル１５９には、ユーザが入力したハードウェア資源の増設スケジュールの情報（ハードウェア資源増設スケジュール情報）が格納される。例えば、ハードウェア資源増設スケジュールテーブル１５９には、移行フェーズ、ＣＰＵ性能、ＣＰＵコア数、メモリ容量、およびディスク容量の情報が対応付けられて格納される。
【００４４】
移行フェーズには、移行フェーズを識別可能な識別情報が格納される。ＣＰＵ性能には、当該移行フェーズで用いられるＣＰＵ２２０が１秒間に何回の命令を実行できるかを示す情報が格納される。ＣＰＵコア数には、当該移行フェーズで用いられるＣＰＵ２２０のコア数を示す情報が格納される。メモリ容量には、当該移行フェーズで用いられる主記憶装置２３０の容量を示す情報が格納される。当該移行フェーズで用いられる補助記憶装置２５０の容量を示す情報が格納される。
【００４５】
例えば、移行フェーズが「フェーズ１」では、ハードウェア資源として、ＣＰＵ性能「３０ＭＩＰＳ」、ＣＰＵコア数「１」のＣＰＵ２２０と、メモリ容量「１ＧＢ」の主記憶装置２３０と、ディスク容量「１ＴＢ」の補助記憶装置２５０とが用いられる。
【００４６】
（３）バッチ処理に係るプログラムの移行に関する各種処理
本実施の形態による各種処理の具体的な処理内容（プログラム移行方法）について説明する。なお、以下においては、各種処理の処理主体が「プログラムモジュール」として説明するが、実際上は、そのプログラムモジュールに基づいて第１の計算機１００のＣＰＵ１２０または第２の計算機２００のＣＰＵ２２０がその処理を実行することは言うまでもない。
【００４７】
（Ａ）バッチ処理に係るプログラムの移行スケジュールに関する各種処理
（Ａ−１）移行スケジュール作成処理
図１１は、ユーザによる移行スケジュール作成の指示を第１の端末装置１６０で受け付けたタイミングで第１の計算機１００のジョブ実行制御部１３１により実行される移行スケジュール作成処理に係る処理手順の一例を示す図である。
【００４８】
まず、ジョブ実行制御部１３１は、第１の端末装置１６０で入力された移行優先度の重み付け（ＣＰＵ使用時間優先度相対比、メモリ使用量優先度相対比、ディスク使用量優先度相対比、およびディスク使用台数優先度相対比）とバッチ処理許容伸び時間との情報を第１の端末装置１６０から受信する（ステップＳ１１）。
【００４９】
続いて、ジョブ実行制御部１３１は、入力された移行優先度の重み付けとバッチ処理許容伸び時間との情報を移行方針テーブル１５４に格納（登録）する（ステップＳ１２）。
【００５０】
続いて、ジョブ実行制御部１３１は、第１の端末装置１６０で入力されたハードウェア資源増設スケジュール情報を第１の端末装置１６０から受信する（ステップＳ１３）。
【００５１】
続いて、ジョブ実行制御部１３１は、入力されたハードウェア資源増設スケジュール情報をハードウェア資源増設スケジュールテーブル１５９に格納（登録）する（ステップＳ１４）。
【００５２】
続いて、ジョブ実行制御部１３１は、移行スケジュール導出処理を行い（ステップＳ１５）、移行スケジュール作成処理を終了する。なお、詳細については後述するが、移行スケジュール導出処理では、各プログラムについて移行フェーズを規定した移行スケジュールが導出（作成）される。
【００５３】
（Ａ−２）移行スケジュール導出処理
図１２は、移行スケジュール導出処理に係る処理手順の一例を示す図である。
【００５４】
まず、ジョブ実行制御部１３１は、全てのＪＣＬファイル１５１Ａを探索し、ジョブ名、ジョブステップ名、プログラム名、およびディスク使用台数の情報を抽出し、ジョブステップ稼働情報集計テーブル１５３の対応する項目に格納する（ステップＳ２１）。
【００５５】
続いて、ジョブ実行制御部１３１は、ジョブステップ稼働情報テーブル１５２に基づいて過去ｎ日分のハードウェア資源の使用量（平均ＣＰＵ使用時間、平均メモリ使用量、平均ディスク使用量）、実行頻度、実行回数、および平均実行時間を集計する（ステップＳ２２）。なお、ジョブ実行制御部１３１は、集計した結果をジョブステップ稼働情報集計テーブル１５３の対応する項目に格納する。
【００５６】
続いて、ジョブ実行制御部１３１は、ジョブステップ毎の移行優先度を計算する（ステップＳ２３）。なお、ジョブ実行制御部１３１は、計算した結果をジョブステップ稼働情報集計テーブル１５３のジョブステップ別移行優先度に格納する。
【００５７】
例えば、ジョブ実行制御部１３１は、下記の（式１）を用いて各ジョブステップについて移行優先度を計算する。
【００５８】
ジョブステップの移行優先度＝
（ＣＰＵ使用時間優先度相対比×ＣＰＵ使用時間算定基準係数×平均ＣＰＵ使用時間
＋メモリ使用量優先度相対比×メモリ使用量算定基準係数×平均メモリ使用量
＋ディスク使用量優先度相対比×ディスク使用量算定基準係数×平均ディスク使用量）
×実行頻度
＋ディスク使用台数優先度相対比×ディスク使用台数算定基準係数×ディスク使用台数
・・・（式１）
【００５９】
続いて、ジョブ実行制御部１３１は、プログラム名が同じジョブステップの移行優先度を合計してプログラムの移行優先度を算出する（ステップＳ２４）。なお、ジョブ実行制御部１３１は、算出したプログラムの移行優先度を移行優先度テーブル１５６のプログラム別移行優先度に格納する。付言するならば、図２で説明したように、プログラムには、複数のジョブステップが対応付けられていることがあるため、プログラムの移行優先度を算出するために、プログラム名が同じジョブステップの移行優先度を合計している。
【００６０】
このように、ジョブ実行制御部１３１は、ハードウェア資源の使用量に対する重み付けを示す情報（ＣＰＵ使用時間優先度相対比×ＣＰＵ使用時間算定基準係数など）と、各プログラムを実行したときの第１の計算機１００におけるハードウェア資源の稼働情報（平均ＣＰＵ使用時間など）とに基づいて、各プログラムについて移行優先度を算出する。
【００６１】
続いて、ジョブ実行制御部１３１は、移行フェーズ管理テーブル１５８のエントリをハードウェア資源増設スケジュールテーブル１５９の移行フェーズ数分作成する（ステップＳ２５）。
【００６２】
続いて、ジョブ実行制御部１３１は、移行スケジュールの導出を開始するにあたり、ハードウェア資源増設スケジュールテーブル１５９の最初（先頭）の移行フェーズ「フェーズ１」を処理対象に設定する（ステップＳ２６）。
【００６３】
続いて、ジョブ実行制御部１３１は、移行優先度テーブル１５６に格納されているプログラムの移行優先度の降順にプログラムの移行可否判定を実施する（ステップＳ２７）。例えば、ジョブ実行制御部１３１は、プログラムの移行優先度の降順に、下記の（式２）を用いて各プログラムの移行可否判定を行う。
【００６４】
（判定対象プログラム移行前ＣＰＵ使用時間合計
＋移行済想定プログラム移行前ＣＰＵ使用時間合計）
×（移行後ＣＰＵ性能×ＣＰＵコア数／移行前ＣＰＵ性能×ＣＰＵコア数）
＋未移行プログラム移行前ＣＰＵ使用時間合計
＜  バッチ処理時間＋バッチ処理許容伸び時間・・・（式２）
【００６５】
ここで、移行フェーズ「フェーズ１」において、全プログラム（「ＡＡＡ」〜「ＥＥＥ」）のうち移行優先度の高いプログラム「ＡＡＡ」、「ＢＢＢ」が既に移行可能であると判定され、次に移行優先度の高いプログラム「ＣＣＣ」の移行可否判定が行われる場合を例に挙げてプログラムの移行可否判定を説明する。
【００６６】
この場合、第２の計算機２００でのＣＰＵ２２０の使用時間の見積りは、（判定対象のプログラム「ＣＣＣ」によるＣＰＵ１２０の使用時間の合計＋移行が済んだと想定したプログラム「ＡＡＡ」、「ＢＢＢ」によるＣＰＵ１２０の使用時間の合計）×（ＣＰＵ２２０のＣＰＵ性能×ＣＰＵ２２０のコア数／ＣＰＵ１２０のＣＰＵ性能×ＣＰＵ１２０のコア数）として示される。また、第１の計算機１００でのＣＰＵ１２０の使用時間の見積もりは、未だ移行していないプログラム「ＤＤＤ」、「ＥＥＥ」のＣＰＵ１２０の使用時間の合計として示される。
【００６７】
つまり、プログラムの移行可否判定では、第２の計算機２００でのＣＰＵ２２０の使用時間の見積り、および第１の計算機１００でのＣＰＵ１２０の使用時間の見積もりの合計とバッチ処理許容時間（バッチ処理時間およびバッチ処理許容伸び時間の合計）とに基づいてプログラムの移行ができるか否かの判定が行われる。
【００６８】
続いて、ジョブ実行制御部１３１は、処理対象の移行フェーズにおいて、移行可能なプログラムがあるか否かを判定する（ステップＳ２８）。ジョブ実行制御部１３１は、移行可能なプログラムがあると判定した場合、ステップＳ２９に処理を移し、移行可能なプログラムがないと判定した場合、ステップＳ３０に処理を移す。
【００６９】
ステップＳ２９では、ジョブ実行制御部１３１は、移行可能なプログラムの移行フェーズを処理対象の移行フェーズに設定して移行プログラム管理テーブル１５７に格納（登録）し、ステップＳ３０に処理を移す。
【００７０】
ステップＳ３０では、ジョブ実行制御部１３１は、全ての移行フェーズで移行スケジュールの導出が完了したか否かを判定する。ジョブ実行制御部１３１は、完了したと判定した場合、ステップＳ３１に処理を移し、完了していないと判定した場合、処理対象を次の移行フェーズに設定し、ステップＳ２７に処理を移す。
【００７１】
ステップＳ３１では、ジョブ実行制御部１３１は、全てのプログラムが移行可能であるか否かを判定する。ジョブ実行制御部１３１は、全てのプログラムが移行可能であると判定した場合、ステップＳ３３に処理を移し、移行不可能なプログラムがあると判定した場合、ステップＳ３２に処理を移す。
【００７２】
ステップＳ３２では、ジョブ実行制御部１３１は、エラー情報を表示する旨の指示を第１の端末装置１６０に送信し、ステップＳ３３に処理を移す。なお、第１の端末装置１６０では、エラー情報の表示が行われる。
【００７３】
ステップＳ３３では、ジョブ実行制御部１３１は、移行スケジュール（移行スケジュール情報）を出力する。例えば、ジョブ実行制御部１３１は、移行スケジュールを表示する旨の指示を第１の端末装置１６０に送信する。第１の端末装置１６０は、当該指示を受信すると、移行スケジュールを表示する。なお、図１８および図１９に、移行スケジュールの出力例を示す。
【００７４】
続いて、ジョブ実行制御部１３１は、移行スケジュールを修正するか否か（第１の端末装置１６０から移行スケジュールを修正する旨の指示を受信したか否か）を判定する（ステップＳ３４）。ジョブ実行制御部１３１は、移行スケジュールを修正すると判定した場合、ステップＳ３５に処理を移し、移行スケジュールを修正しないと判定した場合、移行スケジュール導出処理を終了する。
【００７５】
ステップＳ３５では、ジョブ実行制御部１３１は、移行スケジュール修正処理を行い、移行スケジュール導出処理を終了する。なお、詳細については後述するが、移行スケジュール修正処理では、修正された内容（修正移行スケジュール情報、修正ハードウェア資源増設スケジュール情報など）に基づいて、全てのプログラムが移行可能であるかが判定されると共に、修正された移行スケジュールが出力される。
【００７６】
（Ａ−３）移行スケジュール修正処理
図１３は、移行スケジュール修正処理に係る処理手順の一例を示す図である。
【００７７】
まず、ジョブ実行制御部１３１は、第１の端末装置１６０からの指示に基づいて移行スケジュールを修正する（ステップＳ４１）。
【００７８】
続いて、ジョブ実行制御部１３１は、ハードウェア資源増設スケジュールを修正するか否か（ハードウェア資源増設スケジュールを修正する旨の指示を受信したか否か）を判定する（ステップＳ４２）。ジョブ実行制御部１３１は、ハードウェア資源増設スケジュールを修正すると判定した場合、ステップＳ４３に処理を移し、ハードウェア資源増設スケジュールを修正しないと判定した場合、ステップＳ４５に処理を移す。
【００７９】
ステップＳ４３では、ジョブ実行制御部１３１は、第１の端末装置１６０からの指示に基づいてハードウェア資源増設スケジュールを修正する。
【００８０】
続いて、ジョブ実行制御部１３１は、修正後のハードウェア資源増設スケジュール（修正ハードウェア資源増設スケジュール情報）をハードウェア資源増設スケジュールテーブル１５９に格納（登録）し（ステップＳ４４）、ステップＳ４５に処理を移す。
【００８１】
ステップＳ４５では、ジョブ実行制御部１３１は、修正後の移行スケジュール（修正移行スケジュール情報）に基づいて移行プログラム管理テーブル１５７に新規作成する。
【００８２】
続いて、ジョブ実行制御部１３１は、未実行の移行フェーズのうち最小（先頭）の移行フェーズを処理対象に設定する（ステップＳ４６）。
【００８３】
続いて、ジョブ実行制御部１３１は、処理対象の移行フェーズにおける全てのプログラムの移行可否判定を行う（ステップＳ４７）。なお、ジョブ実行制御部１３１は、上記（式２）を用いてプログラムの移行可否判定を行う。
【００８４】
続いて、ジョブ実行制御部１３１は、処理対象の移行フェーズにおける全てのプログラムが移行可能であるか否かを判定する（ステップＳ４８）。ジョブ実行制御部１３１は、全てのプログラムが移行可能であると判定した場合、ステップＳ５０に処理を移し、移行不可能なプログラムがあると判定した場合、ステップＳ４９に処理を移す。
【００８５】
ステップＳ４９では、ジョブ実行制御部１３１は、エラー情報を表示する旨の指示を第１の端末装置１６０に送信し、ステップＳ５０に処理を移す。なお、第１の端末装置１６０では、エラー情報の表示が行われる。
【００８６】
ステップＳ５０では、ジョブ実行制御部１３１は、全ての移行フェーズで移行可否判定が完了したか否かを判定する。ジョブ実行制御部１３１は、完了したと判定した場合、ステップＳ５１に処理を移し、完了していないと判定した場合、処理対象を次の移行フェーズに設定し、ステップＳ４７に処理を移す。
【００８７】
ステップＳ５１では、ジョブ実行制御部１３１は、移行スケジュールを出力し、移行スケジュール修正処理を終了する。例えば、ジョブ実行制御部１３１は、移行スケジュールを表示する旨の指示を第１の端末装置１６０に送信する。第１の端末装置１６０は、当該指示を受信すると、移行スケジュールを表示する。なお、図１８および図１９に、移行スケジュールの出力例を示す。
【００８８】
（Ｂ）バッチ処理に係るプログラムの移行の設定に関する移行設定処理
第１の計算機１００のプログラムを第２の計算機２００に移行するにあたり、ユーザは、移行スケジュールに従って当該プログラムに改変を行い、第２の計算機２００に移植する。当該プログラムの改変プログラムが第２の計算機２００に移植された際、第２の計算機２００から第１の計算機１００に移植が完了した旨の通知が行われる。第１の計算機１００は、当該通知に基づいて、移行プログラム管理テーブル１５７における当該プログラムに対応する移植済みフラグをオンに更新する。そして、ユーザは、プログラムの移行の準備が整うと、プログラムの移行を開始するために、第１の端末装置１６０を用いて移行開始コマンドを投入する。
【００８９】
図１４は、移行設定処理に係る処理手順の一例を示す図である。
【００９０】
まず、ジョブ実行制御部１３１は、第１の端末装置１６０から移行開始コマンドが投入されたことを示す情報を受信する（ステップＳ６１）。
【００９１】
続いて、ジョブ実行制御部１３１は、移行が完了していない移行フェーズ（残移行フェーズ）があるか否かを判定する（ステップＳ６２）。ジョブ実行制御部１３１は、残移行フェーズがあると判定した場合、ステップＳ６３に処理を移し、残移行フェーズがないと判定した場合、ステップＳ６６に処理を移す。
【００９２】
ステップＳ６３では、ジョブ実行制御部１３１は、第２の計算機２００に第２のハードウェア資源情報を問い合わせ、第２の計算機２００から第２のハードウェア資源情報を取得する。なお、第２の計算機２００のジョブ実行制御部２３１は、ハードウェア資源管理部２３２を介して第２のハードウェア資源情報を取得し、第１の計算機１００に送信する。付言するならば、第２のハードウェア資源情報は、第２の計算機２００のハードウェア資源のスペック（例えば、ＣＰＵ性能、ＣＰＵコア数、メモリ容量、ディスク容量）を示す情報である。
【００９３】
続いて、ジョブ実行制御部１３１は、取得した第２のハードウェア資源情報とハードウェア資源増設スケジュールテーブル１５９における実行すべき移行フェーズのハードウェア資源増設スケジュール情報とが一致するか否かを判定する（ステップＳ６４）。ジョブ実行制御部１３１は、一致すると判定した場合、ステップＳ６５に処理を移し、一致しないと判定した場合、ステップＳ６６に処理を移す。
【００９４】
ステップＳ６５では、ジョブ実行制御部１３１は、移行フェーズ管理テーブル１５８の実行すべき移行フェーズの移行実行中フラグをオンに設定し、移行設定処理を終了する。
【００９５】
ステップＳ６６では、ジョブ実行制御部１３１は、エラー情報を表示する旨の指示を第１の端末装置１６０に送信し、移行設定処理を終了する。なお、第１の端末装置１６０では、エラー情報の表示が行われる。
【００９６】
（Ｃ）バッチ処理に係るプログラムの移行に関する各種処理
（Ｃ−１）ジョブステップ実行処理
図１５は、ジョブステップ実行処理に係る処理手順の一例を示す図である。ジョブステップ実行処理は、バッチ処理に係るジョブのジョブステップを実行する際に開始される。
【００９７】
まず、ジョブ実行制御部１３１は、実行するジョブステップに対応する実行対象のプログラム（実行プログラム）の移行プログラム管理テーブル１５７の移行済みフラグがオンであるか否か（実行プログラムが移行済みであるか否か）を判定する（ステップＳ７１）。ジョブ実行制御部１３１は、実行プログラムが移行済みであると判定した場合、ステップＳ７２に処理を移し、実行プログラムが移行済みでないと判定した場合、ステップＳ７３に処理を移す。
【００９８】
ステップＳ７２では、ジョブ実行制御部１３１は、第２の計算機２００にジョブステップ（ジョブステップに対応するプログラムの移行済みプログラム）を実行するように指示を送信し、ジョブステップ実行処理を終了する。なお、第２の計算機２００では、ジョブステップ（移行済みプログラム）の実行が行われる。
【００９９】
ステップＳ７３では、ジョブ実行制御部１３１は、移行フェーズ管理テーブル１５８に移行実行中フラグがオンの移行フェーズがあるか否か（移行中の移行フェーズがあるか否か）を判定する。ジョブ実行制御部１３１は、移行中の移行フェーズがあると判定した場合、ステップＳ７４に処理を移し、移行中の移行フェーズがないと判定した場合、ステップＳ７９に処理を移す。
【０１００】
ステップＳ７４では、ジョブ実行制御部１３１は、移行プログラム管理テーブル１５７に基づいて、実行プログラムが現在の移行フェーズの移行対象であるか否かを判定する。ジョブ実行制御部１３１は、移行対象であると判定した場合、ステップＳ７５に処理を移し、移行対象でないと判定した場合、ステップＳ７９に処理を移す。
【０１０１】
ステップＳ７５では、ジョブ実行制御部１３１は、移行プログラム管理テーブル１５７の実行プログラムの移植済みフラグがオンであるか否か（実行プログラムが移植済みであるか否か）を判定する。ジョブ実行制御部１３１は、実行プログラムが移植済みであると判定した場合、ステップＳ７６に処理を移し、実行プログラムが移植済みでないと判定した場合、ステップＳ７９に処理を移す。
【０１０２】
ステップＳ７６では、ジョブ実行制御部１３１は、プログラム移行処理を行う。なお、詳細については後述するが、プログラム移行処理では、第１の計算機１００および第２の計算機２００における実行結果と実行時間とに基づいて実行プログラムの移行が行われる。
【０１０３】
続いて、ジョブ実行制御部１３１は、移行プログラム管理テーブル１５７の実行プログラムの移行失敗コードが「０」でないか否か（実行プログラムの移行に失敗しているか否か）を判定する（ステップＳ７７）。ジョブ実行制御部１３１は、実行プログラムの移行に失敗していると判定した場合、ステップＳ７８に処理を移し、実行プログラムの移行に失敗していない（成功している）と判定した場合、ジョブステップ実行処理を終了する。
【０１０４】
ステップＳ７８では、ジョブ実行制御部１３１は、移行スケジュール再導出処理を行い、ジョブステップ実行処理を終了する。なお、詳細については後述するが、移行スケジュール再導出処理では、移行スケジュールが再導出され得る。
【０１０５】
ステップＳ７９では、ジョブ実行制御部１３１は、第１の計算機１００においてジョブステップ（ジョブステップに対応するプログラム）を実行し、ジョブステップ実行処理を終了する。
【０１０６】
（Ｃ−２）プログラム移行処理
図１６は、プログラム移行処理に係る処理手順の一例を示す図である。
【０１０７】
まず、ジョブ実行制御部１３１は、第１の計算機１００において実行プログラムを実行し、実行プログラムが第２の計算機２００で動作可能なように改変されて移植されたプログラム（移植プログラム）を実行する指示を第２の計算機２００に送信する（ステップＳ８１）。つまり、第１の計算機１００および第２の計算機２００の両方で処理内容が同じプログラム（実行プログラムおよび移植プログラム）が実行される。
【０１０８】
続いて、ジョブ実行制御部１３１は、第２の計算機２００のジョブ実行制御部２３１から移植プログラムの実行結果と実行時間とを取得する（ステップＳ８２）。
【０１０９】
続いて、ジョブ実行制御部１３１は、第１の計算機１００での実行結果と第２の計算機２００での実行結果とが等しいか否かを判定する（ステップＳ８３）。ジョブ実行制御部１３１は、等しいと判定した場合、ステップＳ８４に処理を移し、等しくないと判定した場合、ステップＳ９２に処理を移す。
【０１１０】
ステップＳ８４では、ジョブ実行制御部１３１は、第２の計算機２００で実行した移植プログラムの実行時間の伸びがバッチ処理許容伸び時間内であるか否かを判定する。ジョブ実行制御部１３１は、移植プログラムの実行時間の伸びがバッチ処理許容伸び時間内であると判定した場合、ステップＳ８５に処理を移し、移植プログラムの実行時間の伸びがバッチ処理許容伸び時間内でないと判定した場合、ステップＳ９３に処理を移す。
【０１１１】
ステップＳ８５では、ジョブ実行制御部１３１は、移行プログラム管理テーブル１５７の実行プログラムに対応する成功回数を「１」加算する。
【０１１２】
続いて、ジョブ実行制御部１３１は、成功回数が所定の回数（ｎ回）以上となったか否かを判定する（ステップＳ８６）。ジョブ実行制御部１３１は、成功回数が所定の回数以上となったと判定した場合、ステップＳ８７に処理を移し、成功回数が所定の回数以上となっていないと判定した場合、プログラム移行処理を終了する。
【０１１３】
ステップＳ８７では、ジョブ実行制御部１３１は、移行プログラム管理テーブル１５７の実行プログラムに対応する移行済みフラグをオンに設定する。
【０１１４】
続いて、ジョブ実行制御部１３１は、実行プログラムが属する移行フェーズの移行が完了したか否か（移行プログラム管理テーブル１５７において実行プログラムが属する移行フェーズの移行済みフラグが全てオンになったか否か）を判定する（ステップＳ８８）。ジョブ実行制御部１３１は、完了したと判定した場合、ステップＳ８９に処理を移し、完了していないと判定した場合、プログラム移行処理を終了する。
【０１１５】
ステップＳ８９では、ジョブ実行制御部１３１は、移行フェーズ管理テーブル１５８の移行実行中フラグをオフに設定する。
【０１１６】
続いて、ジョブ実行制御部１３１は、移行フェーズ管理テーブル１５８の移行フェーズ完了フラグをオンに設定する（ステップＳ９０）。
【０１１７】
続いて、ジョブ実行制御部１３１は、移行レポートを出力し（ステップＳ９１）、プログラム移行処理を終了する。例えば、ジョブ実行制御部１３１は、移行レポートを表示する旨の指示を第１の端末装置１６０に送信する。第１の端末装置１６０は、当該指示を受信すると、移行レポートを表示する。なお、図２０および図２１に、移行レポートの出力例を示す。
【０１１８】
ステップＳ９２では、ジョブ実行制御部１３１は、移行プログラム管理テーブル１５７の実行プログラムに対応する移行失敗コードに「１」（実行結果が不正であることを示す情報）を設定し、プログラム移行処理を終了する。
【０１１９】
ステップＳ９３では、ジョブ実行制御部１３１は、移行プログラム管理テーブル１５７の実行プログラムに対応する移行失敗コードに「２」（実行遅延が発生することを示す情報）を設定し、プログラム移行処理を終了する。
【０１２０】
（Ｃ−３）移行スケジュール再導出処理
図１７は、移行スケジュール再導出処理に係る処理手順の一例を示す図である。
【０１２１】
まず、ジョブ実行制御部１３１は、移行中の移行フェーズより後の移行フェーズ（後の移行フェーズ）があるか否かを判定する（ステップＳ１０１）。ジョブ実行制御部１３１は、後の移行フェーズがあると判定した場合、ステップＳ１０２に処理を移し、後の移行フェーズがないと判定した場合、ステップＳ１１２に処理を移す。
【０１２２】
ステップＳ１０２では、ジョブ実行制御部１３１は、移行に失敗したプログラム（移行失敗プログラム）のエントリを移行プログラム管理テーブル１５７に新規に追加する。
【０１２３】
続いて、ジョブ実行制御部１３１は、後の移行フェーズのうち最小（先頭）の移行フェーズを処理対象に設定する（ステップＳ１０３）。
【０１２４】
続いて、ジョブ実行制御部１３１は、移行優先度テーブル１５６に格納されているプログラムの移行優先度の降順に処理対象のプログラム（移行失敗プログラムおよび後の移行フェーズでの移行対象のプログラム）の移行可否判定を実施する（ステップＳ１０４）。
【０１２５】
続いて、ジョブ実行制御部１３１は、移行可能なプログラムがあるか否かを判定する（ステップＳ１０５）。ジョブ実行制御部１３１は、移行可能なプログラムがあると判定した場合、ステップＳ１０６に処理を移し、移行可能なプログラムがないと判定した場合、ステップＳ１０７に処理を移す。
【０１２６】
ステップＳ１０６では、ジョブ実行制御部１３１は、移行プログラム管理テーブル１５７の移行可能なプログラムに対応する移行フェーズを更新し、ステップＳ１０７に処理を移す。
【０１２７】
ステップＳ１０７では、ジョブ実行制御部１３１は、全ての後の移行フェーズで移行スケジュールの導出が完了したか否かを判定する。ジョブ実行制御部１３１は、完了したと判定した場合、ステップＳ１０８に処理を移し、完了していないと判定した場合、処理対象を次の移行フェーズに設定し、ステップＳ１０４に処理を移す。
【０１２８】
ステップＳ１０８では、ジョブ実行制御部１３１は、移行失敗時の移行レポートを出力する。例えば、ジョブ実行制御部１３１は、移行レポートを表示する旨の指示を第１の端末装置１６０に送信する。第１の端末装置１６０は、当該指示を受信すると、移行レポートを表示する。なお、図２２および図２３に、移行レポートの出力例を示す。
【０１２９】
続いて、ジョブ実行制御部１３１は、移行スケジュールを出力する（ステップＳ１０９）。例えば、ジョブ実行制御部１３１は、移行スケジュールを表示する旨の指示を第１の端末装置１６０に送信する。第１の端末装置１６０は、当該指示を受信すると、移行スケジュールを表示する。なお、図１８および図１９に、移行スケジュールの出力例を示す。
【０１３０】
続いて、ジョブ実行制御部１３１は、移行スケジュールを修正するか否か（第１の端末装置１６０から移行スケジュールを修正する旨の指示を受信したか否か）を判定する（ステップＳ１１０）。ジョブ実行制御部１３１は、移行スケジュールを修正すると判定した場合、ステップＳ１１１に処理を移し、移行スケジュールを修正しないと判定した場合、移行スケジュール再導出処理を終了する。
【０１３１】
ステップＳ１１１では、ジョブ実行制御部１３１は、移行スケジュール修正処理を行い、移行スケジュール再導出処理を終了する。
【０１３２】
ステップＳ１１２では、ジョブ実行制御部１３１は、エラー情報を表示する旨の指示を第１の端末装置１６０に送信し、ステップＳ１０８に処理を移す。なお、第１の端末装置１６０では、エラー情報の表示が行われる。
【０１３３】
（４）移行スケジュール
移行スケジュールには、移行フェーズに係る情報（移行フェーズを特定可能な情報、当該移行フェーズで用いられる第２のハードウェア資源情報など）と、当該移行フェーズでの移行対象となるプログラムを示す情報と、当該プログラムの移行優先度を示す情報とが対応付けられて格納されている。
【０１３４】
図１８は、全てのプログラムが移行可能であると判定されたときに出力される移行スケジュールの出力の一例（移行スケジュール出力例３０１）を示す図である。
【０１３５】
移行スケジュール出力例３０１では、全てのプログラム（「ＡＡＡ」〜「ＥＥＥ」）が移行可能であることを示す。また、移行スケジュール出力例３０１においては、移行フェーズ「フェーズ１」で用いられるハードウェア資源では、プログラム「ＡＡＡ」、「ＢＢＢ」に続いて、プログラム「ＣＣＣ」は移行できないが、プログラム「ＤＤＤ」、「ＥＥＥ」は移行できることが示されている。なお、ＣＰＵ２２０のコア数が増設される移行フェーズ「フェーズ２」では、プログラム「ＣＣＣ」が移行できることが示されている。
【０１３６】
図１９は、移行できないプログラムが存在すると判定されたときに出力される移行スケジュールの出力の一例（移行スケジュール出力例３０２）を示す図である。
【０１３７】
移行スケジュール出力例３０２においは、現在のハードウェア資源増設スケジュールでは、プログラム「ＦＦＦ」を移行できないことが示されている。
【０１３８】
ユーザは、例えば、移行スケジュールを確認することで、全てのプログラムが移行可能であるか否か、どの移行フェーズでどのプログラムが移行できるかを把握できるようになる。また、例えば、各移行フェーズのハードウェア資源、プログラムの移行優先度が表示されるので、ユーザは、ハードウェア資源増設スケジュール、プログラムの移行順序などを容易に見直すことができるようになる。
【０１３９】
（５）移行レポート
移行レポートには、移行フェーズに係る情報（移行フェーズを特定可能な情報、当該移行フェーズで用いられる第２のハードウェア資源情報など）と、当該移行フェーズでの移行対象となるプログラムを示す情報と、当該プログラムの移行優先度を示す情報と、当該プログラムの実行が連続して成功した回数を示す情報と、当該プログラムの移行が成功したか否かを示す情報とが対応付けられて格納されている。
【０１４０】
図２０は、一の移行フェーズに係る全てのプログラムの移行が完了したときに出力される移行レポートの出力の一例（移行レポート出力例３０３）を示す図である。
【０１４１】
移行レポート出力例３０３では、移行フェーズ「フェーズ１」で移行される予定の全てのプログラム（「ＡＡＡ」、「ＢＢＢ」、「ＤＤＤ」、および「ＥＥＥ」）の移行が成功し、移行フェーズ「フェーズ１」の移行が完了したことが示されている。移行フェーズ「フェーズ２」で移行される予定の全てのプログラム（「ＣＣＣ」）については、移行フェーズ「フェーズ２」の移行が完了していないことが示されている。
【０１４２】
図２１は、全ての移行フェーズの移行が完了したときに出力される移行レポートの出力の一例（移行レポート出力例３０４）を示す図である。
【０１４３】
移行レポート出力例３０４では、移行フェーズ「フェーズ１」で移行される予定の全てのプログラム（「ＡＡＡ」、「ＢＢＢ」、「ＤＤＤ」、および「ＥＥＥ」）の移行が成功し、移行フェーズ「フェーズ１」の移行が完了し、移行フェーズ「フェーズ２」で移行される予定の全てのプログラム（「ＣＣＣ」）の移行が成功し、移行フェーズ「フェーズ２」の移行が完了したことが示されている。
【０１４４】
図２２は、ある移行フェーズに係るプログラムの実行結果が不正であったときに出力される移行レポートの出力の一例（移行レポート出力例３０５）を示す図である。なお、計算機システム１では、プログラムの移行が失敗した場合、後の移行フェーズで当該プログラムの移行が行われる移行スケジュールが再導出される。
【０１４５】
移行レポート出力例３０５では、移行フェーズ「フェーズ１」で移行される予定のプログラム「ＥＥＥ」の移行において、プログラム「ＥＥＥ」の移植済みプログラムの実行結果が不正であり、プログラム「ＥＥＥ」の移行が失敗したことが示されている。
【０１４６】
計算機システム１では、プログラム「ＥＥＥ」の移行が失敗した場合、失敗の理由（本例では、実行結果が不正であることを示す情報「失敗（結果不正）」）が含まれる移行レポートが出力されるので、例えば、ユーザは、プログラム「ＥＥＥ」の移植済みプログラムの再改変を行い、移行開始コマンドを投入し、再導出された移行スケジュールでプログラムの移行を再開することができる。
【０１４７】
図２３は、ある移行フェーズに係るプログラムに実行遅延があったときに出力される移行レポートの出力の一例（移行レポート出力例３０６）を示す図である。
【０１４８】
移行レポート出力例３０６では、移行フェーズ「フェーズ１」で移行される予定のプログラム「ＥＥＥ」の移行において、プログラム「ＥＥＥ」の移植済みプログラムの実行遅延があり、プログラム「ＥＥＥ」の移行が失敗したことが示されている。
【０１４９】
計算機システム１では、プログラム「ＥＥＥ」の移行が失敗した場合、失敗の理由（本例では、実行遅延となることを示す情報「失敗（実行遅延）」）が含まれる移行レポートが出力されるので、例えば、ユーザは、移行スケジュールの修正、ハードウェア資源増設スケジュールの変更などを行い、移行開始コマンドを投入し、再導出された移行スケジュールでプログラムの移行を再開することができる。
【０１５０】
（６）計算機システムの特徴的な構成
計算機システム１は、ハードウェア資源の使用量（例えば、ＣＰＵ使用量、メモリ使用量、ディスク使用量）に対する重み付けと、第１の計算機１００（例えば、メインフレームシステム）における稼働情報とに基づいてプログラムごとに移行優先度を算出し、移行優先度順にハードウェア資源増設スケジュール（移行フェーズごとの第２の計算機２００（例えば、オープンシステム）のハードウェア資源情報）に基づいて先頭の移行フェーズからプログラムの移行可否を判定して移行スケジュール（プログラムの移行順序）を作成することを特徴とする。
【０１５１】
かかる計算機システム１によれば、第１の計算機１００においてハードウェア資源の使用量の多い移行可能なプログラムから第２の計算機２００に移行するための移行スケジュールが提供されるので、マイグレーションの初期段階から第１の計算機１００のハードウェア資源を削減して運用コストを抑えることができるようになる。
【０１５２】
また、計算機システム１によれば、第２の計算機２００のハードウェア資源情報を加味してプログラムの移行可否が判定されるので、処理の突き抜けを回避できるようになる。
【０１５３】
ここで、ハードウェア資源増設スケジュールによっては、使用量の多いプログラムが後回しになってしまう問題がある。
【０１５４】
この点、計算機システム１では、移行スケジュール（移行順序および移行優先度）が出力されるので、ユーザは、使用量の多いプログラムが後回しにならないように、移行スケジュールの修正、ハードウェア資源増設スケジュールの変更などを行うことができる。
【０１５５】
また、プログラムの移行可否を判定したとしても、見積り以上に時間がかかり移行できない事態が生じてしまう問題がある。
【０１５６】
この点、計算機システム１では、現在の第２の計算機２００のハードウェア資源情報を取得し、当該情報がハードウェア資源増設スケジュール情報に合致し、プログラムが第２の計算機２００に移行済みであり、当該プログラムの移植済みプログラムを実行し、実行が成功（遅延なく終了）した場合、当該プログラムを移行するための処理（当該プログラムの移行済みフラグをオンに設定する等）を行う。このように、実際の実行時間に基づいてプログラムの移行が行われるので、プログラムの移行後に第２の計算機２００で処理の突き抜けが発生する事態を回避できる。
【０１５７】
本実施の形態によれば、異なる計算機間でのプログラムの移行を適切に行うことができる。
【０１５８】
（７）他の実施の形態
なお上述の実施の形態においては、本発明を計算機システム１に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の計算機システムに広く適用することができる。
【０１５９】
また上述の実施の形態においては、移行優先度の重み付けとして、ＣＰＵ使用時間優先度相対比、メモリ使用量優先度相対比、ディスク使用量優先度相対比、およびディスク使用台数優先度相対比の４つを例に挙げて述べたが、本発明はこれに限らず、これら４つの相対比うち任意の３つの相対比を採用してもよいし、任意の２つの相対比を採用してもよいし、任意の１つの使用量を採用してもよい。
【０１６０】
また上述の実施の形態においては、伸びの許容値としてバッチ処理許容伸び時間を例に挙げて説明したが、本発明はこれに限らず、ジョブステップ、ジョブ、バッチ処理の何れの単位を採用してもよい。また、ハードウェア増設スケジュールの移行フェーズごとに異なる値を設定してもよい。
【０１６１】
また上述の実施の形態においては、プログラム移行方法においてジョブ実行制御部１３１（第１の計算機１００）が図１１〜図１７に示す処理（ステップ）を実行する場合について述べたが、本発明はこれに限らず、一または複数の他の計算機が図１１〜図１７に示す処理のうちの一部を実行するようにしてもよい。この場合、処理に必要な情報は、他の計算機が適宜のタイミングで取得しているものとする。
【０１６２】
また上述の実施の形態においては、第１の端末装置１６０を介して各種の入力を行う場合について述べたが、本発明はこれに限らず、第１の計算機１００は、入力内容が含まれるテキストデータを読み込むように構成してもよい。
【０１６３】
また上述の実施の形態においては、ステップＳ３５の処理が終了したとき、移行スケジュール導出処理が終了する場合について述べたが、本発明はこれに限らず、ステップＳ３５の処理が終了したとき、ステップＳ３４に処理を戻すように構成してもよい。
【０１６４】
また上述の実施の形態においては、ステップＳ１１１の処理が終了したとき、移行スケジュール再導出処理が終了する場合について述べたが、本発明はこれに限らず、ステップＳ１１１の処理が終了したとき、ステップＳ１１０に処理を戻すように構成してもよい。
【０１６５】
また上述の実施の形態においては、各種データ（テーブル、ファイル等）を補助記憶装置１５０に格納する場合について述べたが、本発明はこれに限らず、第１の計算機１００と通信可能なストレージ装置に格納するようにしてもよい。この場合、ストレージ装置は、例えば、複数のハードディスク装置等の記憶装置が搭載されたディスクアレイ装置から構成され、第１の計算機１００が実行する各種バッチ業務に必要なデータを保持する。ストレージ装置は、第１の計算機１００からのライト要求に応じてデータを記憶装置に格納したり、第１の計算機１００からのリード要求に応じて、要求されたデータを記憶装置から読み出して第１の計算機１００に送信したりする。
【０１６６】
上述した内容については、本発明の要旨を超えない範囲において、適宜に、組み合わせたり、省略したり、変形したり、順序を入れ替えたりすることができる。
【符号の説明】
【０１６７】
１……計算機システム、１００……第１の計算機、１１０……内部バス、１２０……ＣＰＵ、１３０……主記憶装置、１４０……通信装置、１５０……補助記憶装置、１６０……第１の端末装置、２００……第２の計算機、２１０……内部バス、２２０……ＣＰＵ、２３０……主記憶装置、２４０……通信装置、２５０……補助記憶装置、２６０……第２の端末装置。
【図１】
2019109584.tif 000003
【図２】
2019109584.tif 000004
【図３】
2019109584.tif 000005
【図４】
2019109584.tif 000006
【図５】
2019109584.tif 000007
【図６】
2019109584.tif 000008
【図７】
2019109584.tif 000009
【図８】
2019109584.tif 000010
【図９】
2019109584.tif 000011
【図１０】
2019109584.tif 000012
【図１１】
2019109584.tif 000013
【図１２】
2019109584.tif 000014
【図１３】
2019109584.tif 000015
【図１４】
2019109584.tif 000016
【図１５】
2019109584.tif 000017
【図１６】
2019109584.tif 000018
【図１７】
2019109584.tif 000019
【図１８】
2019109584.tif 000020
【図１９】
2019109584.tif 000021
【図２０】
2019109584.tif 000022
【図２１】
2019109584.tif 000023
【図２２】
2019109584.tif 000024
【図２３】
2019109584.tif 000025