(57)【要約】【課題】ホストプログラムを変更することなくダウンサイジングすること。【解決手段】ダウンサイジング用コンパイラ２９０が、ホストプログラムソースのＯＳ又は入出力命令文に対応する複数のランタイムを格納したランタイムテーブルを備え、入力したホストプログラムソースにランタイムテーブルに格納された前記ＯＳ等が含まれていると判定したとき、前記ランタイムをコンパイラのパラメタとして指定してホスト用のプログラムソースを読み込み、これをトークンに分解してオブジェクトコードを生成し、該オブジェクトコードの命令文にランタイム呼出が必要と判定し且つコンパイルにパラメタ指定があると判定したとき、ランタイムテーブルに格納したランタイムを呼び出すようにオブジェクトコードを生成し、該生成したオブジェクトコードをコンパイルしたサーバ実行オブジェクトに挿入してダウンサイジングを行うもの。【選択図】図１
2010205068.tif 000002
【特許請求の範囲】
【請求項１】
ホストシステムのコンピュータが動作するホスト用文法により命令文が書かれたホストプログラムソースをサーバプログラムソースとし、該サーバプログラムソースを機械語の実行オブジェクトにコンパイルするダウンサイジング用コンパイラを備えるソフトウェア資源移行システムであって、
前記ダウンサイジング用コンパイラが、
前記ホストプログラムソースのＯＳ又は入出力に関与する命令文と該命令文に対応する複数の処理方法情報毎のソフトウェアモジュールであるランタイム名を格納したランタイムテーブルと、該ランタイム名に対応するランタイムを格納する第１のメモリとを有し、
前記ホストプログラムソースを入力とし、該ホストプログラムソースに前記ランタイムテーブルに格納されたＯＳ又は入出力に関与する命令文が含まれているか否かを判定する第１工程と、
該第１工程においてＯＳ又は入出力に関与する命令文が含まれていると判定したとき、前記ランタイムテーブルの命令文に対応する処理方法情報に対応するランタイム名により指示されたランタイムをコンパイラのパラメタとして指定する第２工程と、
前記ホスト用のプログラムソースを読み込み、プログラミング言語においてソースコード中の文字列の中で意味を持つ最小単位の字句であるトークンに分解する第３工程と、
該第工程３により分解したトークンの列を基にプログラムの木構文を構築し、該構築したプログラムの木構文からコンパイラがソースコードを処理した結果生成される中間的なコード表現であるオブジェクトコードを生成する第４工程と、
該第４工程により生成したオブジェクトコードの命令文にランタイム呼出が必要か否かを前記ランタイムテーブルに該当命令文の処理が格納されているかによって判定する第５工程と、
該第５工程によってランタイム呼出が必要と判定したとき、前記命令文のコンパイルにパラメタ指定があるか否かを前記ランタイムテーブルを参照して判定する第６工程と、
該第６工程において命令文のコンパイルにパラメタ指定があると判定したとき、前記第１のメモリに格納したランタイムを呼び出すようにオブジェクトコードを生成し、該生成したオブジェクトコードをコンパイルしたサーバ実行オブジェクトに挿入する第７工程を実行するソフトウェア資源移行システム。
【請求項２】
前記ホストシステムのコンピュータにより特定の機能を実行するユーティリティーソフトウェアを格納する第２のメモリと、該第２のメモリに格納したユーティリティーソフトウェアを起動するプログラムであるＪＣＬを格納するＪＣＬメモリと、サーバシステムのコンピュータにおいて前記ホストシステムのユーティリティーソフトウェアと同機能のユーティリティーソフトウェアを格納する第３のメモリと、前記ホストシステムの第２のメモリに格納したユーティリティーソフトウェアの名称と該名称のユーティリティーソフトウェアと同機能のユーティリティーソフトウェアが前記第３のメモリに格納されているか否かを示す有無情報を格納するユーティリティーテーブルと、ホストシステム用のＪＣＬをサーバ用に変換するための変換ルール情報を格納するＪＣＬ変換ルールメモリと、前記ＪＣＬメモリに格納されたホスト用のＪＣＬを前記変換ルール情報を参照してサーバ用のＪＣＬに変換するＪＣＬ変換ツールとを有し、
前記ＪＣＬ変換ツールが、
前記ＪＣＬメモリに格納したＪＣＬを読み込み、該読み込んだＪＣＬが起動するユーティリティーソフトウェアが、前記第３のメモリに格納されているか否かを前記ユーティリティーテーブルの有無情報を参照して判定する第８工程と、
該第８工程において読み込んだＪＣＬが起動するユーティリティーソフトウェアが第３のメモリに格納されていると判定したとき、前記ＪＣＬ変換ツールにより、ＪＣＬ変換ルールメモリに格納した変換ルール情報に基づいてＪＣＬメモリに格納されたホスト用のＪＣＬを前記変換ルール情報を参照してサーバ用のＪＣＬに変換する第９工程とを実行する請求項１記載のソフトウェア資源移行システム。
【請求項３】
前記サーバシステムが、ホストシステム用の帳票情報及び画面情報を左上を基点とした座標値と該座標値から延長する方向及び寸法値を規定するベクトル情報を格納する画面帳票情報メモリと、該画面帳票情報メモリに格納したベクトル情報を基に、サーバシステム用の帳票情報及び画面情報に変換する画面帳票変換ツールとを有し、
該画面帳票変換ツールが、
前記画面帳票情報メモリに格納したベクトル情報の座標値と寸法値とを基に、画面帳票の左上を基点とした描画を開始する開始座標値と該描画を終了する終点座標値に変換する第１０工程を実行する請求項１又は２記載のソフトウェア資源移行システム。
【請求項４】
前記ホストシステムが、ホストプログラムソースを機械語のホスト実行プログラムに実行するホストコンパイラと、データを入力として前記ホストコンパイラを実行した結果であるホスト結果ファイルデータを出力するホストコンピュータとを有し、
前記サーバシステムが、前記データを入力とし、前記ダウンサイジング用コンパイラが機械語にコンパイルしたサーバ実行オブジェクトを実行してサーバ結果ファイルデータを出力するサーバコンピュータと、前記ホスト結果ファイルデータとサーバ結果ファイルデータとを比較する比較ツールとを有し、
前記サーバシステムの比較ツールが、前記ホスト結果ファイルデータとサーバ結果ファイルデータとを１バイト単位で比較し、不一致の結果ファイルを出力する第１１工程を実行する請求項１から３何れかに記載のソフトウェア資源移行システム。
【請求項５】
ホストシステムのコンピュータが動作するホスト用文法により命令文が書かれたホストプログラムソースをサーバプログラムソースとし、該サーバプログラムソースを機械語の実行オブジェクトにコンパイルするダウンサイジング用コンパイラを備え、ダウンサイジング用コンパイラが、前記ホストプログラムソースのＯＳ又は入出力に関与する命令文と該命令文に対応する複数の処理方法情報毎のソフトウェアモジュールであるランタイム名を格納したランタイムテーブルと、該ランタイム名に対応するランタイムを格納する第１のメモリとを有するソフトウェア資源移行システムの資源移行方法であって、
前記ダウンサイジング用コンパイラに、
前記ホストプログラムソースを入力とし、該ホストプログラムソースに前記ランタイムテーブルに格納されたＯＳ又は入出力に関与する命令文が含まれているか否かを判定する第１工程と、
該第１工程においてＯＳ又は入出力に関与する命令文が含まれていると判定したとき、前記ランタイムテーブルの命令文に対応する処理方法情報に対応するランタイム名により指示されたランタイムをコンパイラのパラメタとして指定する第２工程と、
前記ホスト用のプログラムソースを読み込み、プログラミング言語においてソースコード中の文字列の中で意味を持つ最小単位の字句であるトークンに分解する第３工程と、
該第工程３により分解したトークンの列を基にプログラムの木構文を構築し、該構築したプログラムの木構文からコンパイラがソースコードを処理した結果生成される中間的なコード表現であるオブジェクトコードを生成する第４工程と、
該第４工程により生成したオブジェクトコードの命令文にランタイム呼出が必要か否かを前記ランタイムテーブルに該当命令文の処理が格納されているかによって判定する第５工程と、
該第５工程によってランタイム呼出が必要と判定したとき、前記命令文のコンパイルにパラメタ指定があるか否かを前記ランタイムテーブルを参照して判定する第６工程と、
該第６工程において命令文のコンパイルにパラメタ指定があると判定したとき、前記第１のメモリに格納したランタイムを呼び出すようにオブジェクトコードを生成し、該生成したオブジェクトコードをコンパイルしたサーバ実行オブジェクトに挿入する第７工程を実行させるソフトウェア資源移行方法。
【請求項６】
前記ホストシステムのコンピュータにより特定の機能を実行するユーティリティーソフトウェアを格納する第２のメモリと、該第２のメモリに格納したユーティリティーソフトウェアを起動するプログラムであるＪＣＬを格納するＪＣＬメモリと、サーバシステムのコンピュータにおいて前記ホストシステムのユーティリティーソフトウェアと同機能のユーティリティーソフトウェアを格納する第３のメモリと、前記ホストシステムの第２のメモリに格納したユーティリティーソフトウェアの名称と該名称のユーティリティーソフトウェアと同機能のユーティリティーソフトウェアが前記第３のメモリに格納されているか否かを示す有無情報を格納するユーティリティーテーブルと、ホストシステム用のＪＣＬをサーバ用に変換するための変換ルール情報を格納するＪＣＬ変換ルールメモリと、前記ＪＣＬメモリに格納されたホスト用のＪＣＬを前記変換ルール情報を参照してサーバ用のＪＣＬに変換するＪＣＬ変換ツールとを設け、
前記ＪＣＬ変換ツールに、
前記ＪＣＬメモリに格納したＪＣＬを読み込み、該読み込んだＪＣＬが起動するユーティリティーソフトウェアが、前記第３のメモリに格納されているか否かを前記ユーティリティーテーブルの有無情報を参照して判定する第８工程と、
該第８工程において読み込んだＪＣＬが起動するユーティリティーソフトウェアが第３のメモリに格納されていると判定したとき、前記ＪＣＬ変換ツールにより、ＪＣＬ変換ルールメモリに格納した変換ルール情報に基づいてＪＣＬメモリに格納されたホスト用のＪＣＬを前記変換ルール情報を参照してサーバ用のＪＣＬに変換する第９工程とを実行させる請求項５記載のソフトウェア資源移行方法。
【請求項７】
前記サーバシステムに、ホストシステム用の帳票情報及び画面情報を左上を基点とした座標値と該座標値から延長する方向及び寸法値を規定するベクトル情報を格納する画面帳票情報メモリと、該画面帳票情報メモリに格納したベクトル情報を基に、サーバシステム用の帳票情報及び画面情報に変換する画面帳票変換ツールとを設け、
該画面帳票変換ツールに、
前記画面帳票情報メモリに格納したベクトル情報の座標値と寸法値とを基に、画面帳票の左上を基点とした描画を開始する開始座標値と該描画を終了する終点座標値に変換する第１０工程を実行させる請求項５又は６記載のソフトウェア資源移行方法。
【請求項８】
前記ホストシステムに、ホストプログラムソースを機械語のホスト実行プログラムに実行するホストコンパイラと、データを入力として前記ホストコンパイラを実行した結果であるホスト結果ファイルデータを出力するホストコンピュータとを設け、
前記サーバシステムに、前記データを入力とし、前記ダウンサイジング用コンパイラが機械語にコンパイルしたサーバ実行オブジェクトを実行してサーバ結果ファイルデータを出力するサーバコンピュータと、前記ホスト結果ファイルデータとサーバ結果ファイルデータとを比較する比較ツールとを設け、
前記サーバシステムの比較ツールに、前記ホスト結果ファイルデータとサーバ結果ファイルデータとを１バイト単位で比較し、不一致の結果ファイルを出力する第１１工程を実行させる請求項５から７何れかに記載のソフトウェア資源移行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＯＢＯＬ等の過去のメインフレームに採用されたソフトウェア資源をオープン環境にダウンサイジング（リホスト）するためのソフトウェア資源移行システム及び同移行方法に係り、特にプログラム、ＪＣＬ、帳票定義（書式）、画面定義、データをオープン環境に容易にダウンサイジングすることができるソフトウェア資源移行システム及び同移行方法に関する。
【背景技術】
【０００２】
近年のコンピュータの性能向上および低価格化などにより、経費削減のため、従来のコンピュータシステムを汎用大型のメインフレームと呼ばれるホストからサーバへダウンサイジングするケースが増えている。この既存のコンピュータシステムはレガシーシステムと呼ばれ、例えばメインフレームと呼ばれる汎用機やオフィスコンピュータのシステムを示し、このレガシーシステムを構成しているリソースには、ホスト用のプログラム、ＪＣＬ、ＣＯＰＹ句（ファイル定義）、帳票／画面定義が含まれている。近年、このレガシーシステムを新しいオープン系システムに移行させる技術が、例えば下記特許文献１にて提案されている。
【０００３】
この特許文献１には、メインフレーム用アプリケーションをクライアントで利用する際にクライアントの画面に表示されるフィールドを定義するメインフレーム毎のメインフレーム用画面定義体に基づいて、クライアントの画面に表示されるフィールドの配置などの画面構成情報を複数のメインフレームに対応可能な汎用画面フォームとして作成する手段と、メインフレーム用画面定義体に基づいて、クライアントの画面に表示されるフィールドの属性を複数のメインフレームに対応可能な汎用画面データとして作成する手段と、汎用画面フォームと汎用画面データとを融合してクライアントの入力画面を作成して汎用的通信規格を介してクライアントに送信する手段とをサーバに設け、メインフレームのアプリケーション資産を生かしてオープン環境に移行するダウンサイジング技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
特開２００４−３５５４１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
前述の従来のダウンサイジング技術は、例えばホストからサーバへのダウンサイジングにおいて、ホスト上のＣＯＢＯＬプログラムをサーバ上で動作できるようにサーバ用のＣＯＢＯＬプログラムに変換するものであり、例えばホスト用のＣＯＢＯＬプログラムソースを文法の違いを訂正する様に変換してサーバ用ＣＯＢＯＬプログラムソースに変換し、これをコンパイラによって機械語に翻訳したサーバ用オプジェクトプログラムに変換して行われていた。このホスト用ＣＯＢＯＬプログラムとサーバ用ＣＯＢＯＬプログラムとの主な違いは、例えば取り扱う周辺機器や文字コードや用意されているユーティリティプログラムの相違に対応する様に文法が定義されている点である。
【０００６】
この従来技術によるダウンサイジング技術は、業務アルゴリズムの変更が発生する可能性があると共に、プログラム以外のソフトウェア資産（ＪＣＬ、帳票定義［書式］または画面定義、データ）との相互の関連性を考慮しないため、プログラム以外のソフトウェア資産のホストからサーバへの移行について、個別に移行方法を検討して移行を実施する必要があると言う不具合があった。尚、ＪＣＬとは、Ｊｏｂ  Ｃｏｎｔｒｏｌ  Ｌａｎｇｕａｇｅの略であって、メインフレームでバッチ処理を行なう際に、システムに対して実行するジョブの名前や使用する装置などを伝える言語を言う。
【０００７】
また、従来技術は、前述のようにプログラムを変換することに加え、プログラム以外のソフトウェア資産を個別に移行する必要があることから、ホストからサーバへのダウンサイジング作業時間およびコストがかかるという不具合もあった。
【０００８】
更に従来技術は、ダウンサイジング作業におけるその結果の妥当性検証では、プログラムとプログラム以外のソフトウェア資産の移行において相互の資産の関連性がなくなっているため、ファイルの妥当性検証が容易ではなく、手作業主体となり、短期間且つ低コストで検証作業を行うことが難しいと言う不具合もあった。
【０００９】
本発明の目的は、コンピュータシステムのソフトウェア資産移行、例えばホストからサーバへのダウンサイジング作業において、ホスト上のプログラムの主要部を変更することなく移行し、プログラム以外のソフトウェア資産（ＪＣＬ、帳票定義［書式］または画面定義、データ）はホスト環境におけるプログラムとの関連性を保つように自動変換で移行することを実現し、短期間、低コストでソフトウェア資産移行を行うことができるソフトウェア資源移行システム及び同移行方法を提供することである。
【課題を解決するための手段】
【００１０】
前記目的を達成するために本発明は、ホストシステムのコンピュータが動作するホスト用文法により命令文が書かれたホストプログラムソースをサーバプログラムソースとし、該サーバプログラムソースを機械語の実行オブジェクトにコンパイルするダウンサイジング用コンパイラを備えるソフトウェア資源移行システムであって、
前記ダウンサイジング用コンパイラが、
前記ホストプログラムソースのＯＳ又は入出力に関与する命令文と該命令文に対応する複数の処理方法情報毎のソフトウェアモジュールであるランタイム名を格納したランタイムテーブルと、該ランタイム名に対応するランタイムを格納する第１のメモリとを有し、
前記ホストプログラムソースを入力とし、該ホストプログラムソースに前記ランタイムテーブルに格納されたＯＳ又は入出力に関与する命令文が含まれているか否かを判定する第１工程と、
該第１工程においてＯＳ又は入出力に関与する命令文が含まれていると判定したとき、前記ランタイムテーブルの命令文に対応する処理方法情報に対応するランタイム名により指示されたランタイムをコンパイラのパラメタとして指定する第２工程と、
前記ホスト用のプログラムソースを読み込み、プログラミング言語においてソースコード中の文字列の中で意味を持つ最小単位の字句であるトークンに分解する第３工程と、
該第３工程により分解したトークンの列を基にプログラムの木構文を構築し、該構築したプログラムの木構文からコンパイラがソースコードを処理した結果生成される中間的なコード表現であるオブジェクトコードを生成する第４工程と、
該第４工程により生成したオブジェクトコードの命令文にランタイム呼出が必要か否かを前記ランタイムテーブルに該当命令文の処理が格納されているかによって判定する第５工程と、
該第５工程によってランタイム呼出が必要と判定したとき、前記命令文のコンパイルにパラメタ指定があるか否かを前記ランタイムテーブルを参照して判定する第６工程と、
該第６工程において命令文のコンパイルにパラメタ指定があると判定したとき、前記第１のメモリに格納したランタイムを呼び出すようにオブジェクトコードを生成し、該生成したオブジェクトコードをコンパイルしたサーバ実行オブジェクトに挿入する第７工程を実行することを第１の特徴とする。
【００１１】
また本発明は、前記第２の特徴のソフトウェア資源移行システムにおいて、前記ホストシステムのコンピュータにより特定の機能を実行するユーティリティーソフトウェアを格納する第２のメモリと、該第２のメモリに格納したユーティリティーソフトウェアを起動するプログラムであるＪＣＬを格納するＪＣＬメモリと、サーバシステムのコンピュータにおいて前記ホストシステムのユーティリティーソフトウェアと同機能のユーティリティーソフトウェアを格納する第３のメモリと、前記ホストシステムの第２のメモリに格納したユーティリティーソフトウェアの名称と該名称のユーティリティーソフトウェアと同機能のユーティリティーソフトウェアが前記第３のメモリに格納されているか否かを示す有無情報を格納するユーティリティーテーブルと、ホストシステム用のＪＣＬをサーバ用に変換するための変換ルール情報を格納するＪＣＬ変換ルールメモリと、前記ＪＣＬメモリに格納されたホスト用のＪＣＬを前記変換ルール情報を参照してサーバ用のＪＣＬに変換するＪＣＬ変換ツールとを有し、
前記ＪＣＬ変換ツールが、
前記ＪＣＬメモリに格納したＪＣＬを読み込み、該読み込んだＪＣＬが起動するユーティリティーソフトウェアが、前記第３のメモリに格納されているか否かを前記ユーティリティーテーブルの有無情報を参照して判定する第８工程と、
該第８工程において読み込んだＪＣＬが起動するユーティリティーソフトウェアが第３のメモリに格納されていると判定したとき、前記ＪＣＬ変換ツールにより、ＪＣＬ変換ルールメモリに格納した変換ルール情報に基づいてＪＣＬメモリに格納されたホスト用のＪＣＬを前記変換ルール情報を参照してサーバ用のＪＣＬに変換する第９工程とを実行することを第２の特徴とする。
【００１２】
また本発明は、前記第１又は第２のソフトウェア資源移行システムにおいて、前記サーバシステムが、ホストシステム用の帳票情報及び画面情報を左上を基点とした座標値と該座標値から延長する方向及び寸法値を規定するベクトル情報を格納する画面帳票情報メモリと、該画面帳票情報メモリに格納したベクトル情報を基に、サーバシステム用の帳票情報及び画面情報に変換する画面帳票変換ツールとを有し、
該画面帳票変換ツールが、
前記画面帳票情報メモリに格納したベクトル情報の座標値と寸法値とを基に、画面帳票の左上を基点とした描画を開始する開始座標値と該描画を終了する終点座標値に変換する第１０工程を実行することを第３の特徴とする。
また本発明は、前記何れかの特徴のソフトウェア資源移行システムにおいて、前記ホストシステムが、ホストプログラムソースを機械語のホスト実行プログラムに実行するホストコンパイラと、データを入力として前記ホストコンパイラを実行した結果であるホスト結果ファイルデータを出力するホストコンピュータとを有し、
前記サーバシステムが、前記データを入力とし、前記ダウンサイジング用コンパイラが機械語にコンパイルしたサーバ実行オブジェクトを実行してサーバ結果ファイルデータを出力するサーバコンピュータと、前記ホスト結果ファイルデータとサーバ結果ファイルデータとを比較する比較ツールとを有し、
前記サーバシステムの比較ツールが、前記ホスト結果ファイルデータとサーバ結果ファイルデータとを１バイト単位で比較し、不一致の結果ファイルを出力する第１１工程を実行することを第４の特徴とする。
【００１３】
更に本発明は、ホストシステムのコンピュータが動作するホスト用文法により命令文が書かれたホストプログラムソースをサーバプログラムソースとし、該サーバプログラムソースを機械語の実行オブジェクトにコンパイルするダウンサイジング用コンパイラを備え、ダウンサイジング用コンパイラが、前記ホストプログラムソースのＯＳ又は入出力に関与する命令文と該命令文に対応する複数の処理方法情報毎のソフトウェアモジュールであるランタイム名を格納したランタイムテーブルと、該ランタイム名に対応するランタイムを格納する第１のメモリとを有するソフトウェア資源移行システムの資源移行方法であって、
前記ダウンサイジング用コンパイラに、
前記ホストプログラムソースを入力とし、該ホストプログラムソースに前記ランタイムテーブルに格納されたＯＳ又は入出力に関与する命令文が含まれているか否かを判定する第１工程と、
該第１工程においてＯＳ又は入出力に関与する命令文が含まれていると判定したとき、前記ランタイムテーブルの命令文に対応する処理方法情報に対応するランタイム名により指示されたランタイムをコンパイラのパラメタとして指定する第２工程と、
前記ホスト用のプログラムソースを読み込み、プログラミング言語においてソースコード中の文字列の中で意味を持つ最小単位の字句であるトークンに分解する第３工程と、
該第工程３により分解したトークンの列を基にプログラムの木構文を構築し、該構築したプログラムの木構文からコンパイラがソースコードを処理した結果生成される中間的なコード表現であるオブジェクトコードを生成する第４工程と、
該第４工程により生成したオブジェクトコードの命令文にランタイム呼出が必要か否かを前記ランタイムテーブルに該当命令文の処理が格納されているかによって判定する第５工程と、
該第５工程によってランタイム呼出が必要と判定したとき、前記命令文のコンパイルにパラメタ指定があるか否かを前記ランタイムテーブルを参照して判定する第６工程と、
該第６工程において命令文のコンパイルにパラメタ指定があると判定したとき、前記第１のメモリに格納したランタイムを呼び出すようにオブジェクトコードを生成し、該生成したオブジェクトコードをコンパイルしたサーバ実行オブジェクトに挿入する第７工程を実行させることを第５の特徴とする。
【００１４】
また本発明は、前記第５の特徴のソフトウェア資源移行方法において、前記ホストシステムのコンピュータにより特定の機能を実行するユーティリティーソフトウェアを格納する第２のメモリと、該第２のメモリに格納したユーティリティーソフトウェアを起動するプログラムであるＪＣＬを格納するＪＣＬメモリと、サーバシステムのコンピュータにおいて前記ホストシステムのユーティリティーソフトウェアと同機能のユーティリティーソフトウェアを格納する第３のメモリと、前記ホストシステムの第２のメモリに格納したユーティリティーソフトウェアの名称と該名称のユーティリティーソフトウェアと同機能のユーティリティーソフトウェアが前記第３のメモリに格納されているか否かを示す有無情報を格納するユーティリティーテーブルと、ホストシステム用のＪＣＬをサーバ用に変換するための変換ルール情報を格納するＪＣＬ変換ルールメモリと、前記ＪＣＬメモリに格納されたホスト用のＪＣＬを前記変換ルール情報を参照してサーバ用のＪＣＬに変換するＪＣＬ変換ツールとを設け、
前記ＪＣＬ変換ツールに、
前記ＪＣＬメモリに格納したＪＣＬを読み込み、該読み込んだＪＣＬが起動するユーティリティーソフトウェアが、前記第３のメモリに格納されているか否かを前記ユーティリティーテーブルの有無情報を参照して判定する第８工程と、
該第８工程において読み込んだＪＣＬが起動するユーティリティーソフトウェアが第３のメモリに格納されていると判定したとき、前記ＪＣＬ変換ツールにより、ＪＣＬ変換ルールメモリに格納した変換ルール情報に基づいてＪＣＬメモリに格納されたホスト用のＪＣＬを前記変換ルール情報を参照してサーバ用のＪＣＬに変換する第９工程とを実行させることを第６の特徴とする。
【００１５】
また本発明は、前記第５又は第６の特徴のソフトウェア資源移行方法において、前記サーバシステムに、ホストシステム用の帳票情報及び画面情報を左上を基点とした座標値と該座標値から延長する方向及び寸法値を規定するベクトル情報を格納する画面帳票情報メモリと、該画面帳票情報メモリに格納したベクトル情報を基に、サーバシステム用の帳票情報及び画面情報に変換する画面帳票変換ツールとを設け、
該画面帳票変換ツールに、
前記画面帳票情報メモリに格納したベクトル情報の座標値と寸法値とを基に、画面帳票の左上を基点とした描画を開始する開始座標値と該描画を終了する終点座標値に変換する第１０工程を実行させることを第７の特徴とする。
【００１６】
また本発明は、前記何れかの特徴のソフトウェア資源移行方法において、前記ホストシステムに、ホストプログラムソースを機械語のホスト実行プログラムに実行するホストコンパイラと、データを入力として前記ホストコンパイラを実行した結果であるホスト結果ファイルデータを出力するホストコンピュータとを設け、
前記サーバシステムに、前記データを入力とし、前記ダウンサイジング用コンパイラが機械語にコンパイルしたサーバ実行オブジェクトを実行してサーバ結果ファイルデータを出力するサーバコンピュータと、前記ホスト結果ファイルデータとサーバ結果ファイルデータとを比較する比較ツールとを設け、
前記サーバシステムの比較ツールに、前記ホスト結果ファイルデータとサーバ結果ファイルデータとを１バイト単位で比較し、不一致の結果ファイルを出力する第１１工程を実行させることを第８の特徴とする。
【発明の効果】
【００１７】
本発明によるソフトウェア資源移行システム及び同移行方法は、ダウンサイジング用コンパイラが、ホストプログラムソース内の命令文にランタイムテーブルに格納されたＯＳや入出力に関与する命令文が含まれているとき、ランタイムテーブルの命令文に対応する処理方法情報に対応するランタイム名により指示されたランタイムをコンパイラのパラメタとして指定し、ランタイム呼出が必要と判定したパラメタ指定があると判定したとき、ランタイムを呼び出すようにオブジェクトコードを生成し、該生成したオブジェクトコードをコンパイラした機械語に挿入することによって、ホスト上のプログラムの主要部を変更することなくダウンサイジングを行うことができる。また、コンピュータシステムのソフトウェア資産移行、例えばホストからサーバへのダウンサイジング作業において、ホスト上のソフトウェア資産であるデータファイルを移行する場合、プログラムを変更することなくサーバ上で動作することと連携して、サーバ上のデータファイルのデータ形式をホストと同形式（ＥＢＣＤＩＣ）とすることによって、ソフトウェア資産をサーバ上で動作可能とする。
【００１８】
更に本発明によれば、ＪＣＬ変換ツールが、変換ルール情報を参照してホスト用のＪＣＬをサーバ用のＪＣＬに変換することや、ホストシステム用のベクトル形式の帳票情報及び画面情報を、サーバ用の座標指定形式の帳票情報及び画面情報に変換することによって、ホスト上のプログラムの主要部を変更することなくダウンサイジングを行うことができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態によるソフトウェア資源移行システムを示す図。
【図２Ａ】本実施形態によるプログラム移行の処理動作例を示すフロー図。
【図２Ｂ】本実施形態によるプログラム移行のコンパイラに係る処理動作例を示すフロー図。
【図２Ｃ】本実施形態によるＪＣＬ変換の処理動作例を示すフロー図。
【図２Ｄ】本実施形態による帳票（画面）変換の処理動作例を示すフロー図。
【図２Ｅ】本実施形態による帳票（画面）移行後の処理動作例を示すフロー図。
【図２Ｆ】本実施形態による検証の処理動作例を示すフロー図。
【図３】本実施形態によるコンパイラによるソフトウェア資産をサーバ上に移行する例を示す処理フロー図。
【図４】本実施形態によるホストと同形式のソフトウェア資産をサーバ上に移行する例を示す処理フロー図。
【図５】本実施形態によるユーティリティーの移行例を示す処理フロー図。
【図６】本実施形態によるＪＣＬ変換の処理動作例を示すフロー図。
【図７】本実施形態によるＪＣＬとプログラムの連携例を示す図。
【図８】本実施形態による帳票（画面）変換例を示す図。
【図９】本実施形態によるダウンサイジング後の帳票（画面）出力例を示す図。
【図１０】本実施形態によるダウンサイジング作業の妥当性を検証するときの結果データ比較例を示す図。
【発明を実施するための形態】
【００２０】
以下、本発明によるソフトウェア資源移行システム及び同移行方法の一実施形態を図面を参照して詳細に説明する。
［構成］
図１は、本発明によるソフトウェア資産移行、例えばホストシステム１００からサーバシステム２００へのダウンサイジング作業におけるプログラムとＪＣＬ、帳票／画面定義のダウンサイジング実施と、ダウンサイジング後のプログラム実行における結果ファイルのデータ検証を行うソフトウェア資源移行システムの全体構成を示す図であって、本ソフトウェア資源移行システムは、レガシーシステムであるホストシステム１００と、該ホストシステム１００と接続され、ホストシステム１００のソフトウェア資源が移行されるサーバシステム２００とから構成される。
【００２１】
前記ホストシステム１００は、機械語である実行オブジェクト１６１を実行するホストコンピュータ１６０と、プログラムソース１２１／画面・帳票情報１２２／ユーティリティー（ソフトウェア）１２３／ＪＣＬ１２４とを含むホスト資産１２０と、ホストコンピュータ１６０が処理対象とするデータであるファイル１４１及び１４２とを含むホスト入力ファイル１４０と、ジョブ起動１３０により実行処理されたジョブの結果であるファイル１５１及びスプール（データ）１５２を含むホストの結果ファイル１５０と、前記プログラムソース１２１をホストコンピュータ１６０に実行させるためにコンパイルするコンパイラ１１０とから構成される。
【００２２】
前記サーバシステム２００は、サーバ実行オブジェクト２７１を含むサーバコンピュータ２７０と、プログラムソース２１１／画面・帳票情報２１２／ユーティリティー２１３／変換後のＪＣＬスプリクト２１４とを含むサーバ資産２１０と、処理対象となるデータであるファイル２４１及び２５２を含むサーバ入力ファイル２５０と、処理結果のデータであるファイル２６１及びスプール（データ）２６２を含むファイルサーバ結果ファイル２６０と、前記ホストシステム１００のホスト結果ファイル１５０をダウンロードして格納するホスト結果ファイル２３０と、同様にホスト入力ファイル１４０をダウンロードして格納するホスト入力ファイル２２０と、前記ホスト資産１２０の画面・帳票情報１２２をサーバ用に変換して前記サーバ資産２１０に格納する変換ツール２７０と、前記ホストのＪＣＬ１２４をサーバ用に変換して前記サーバ資産２１０に格納する変換ツール２７２と、前記サーバが処理した結果ファイル２６０とホストが処理した結果ファイル２３０を比較して検証し、比較結果のレポート２８１及び実行ＬＯＧ２８２を出力する比較ツール２７３とを備える。尚、前述した各構成は、コンピュータのハードウェア又はソフトウェアによって構成されるものである。
【００２３】
この様に構成したソフトウェア資源移行システムは、次に述べる機能を有する。
（１）機能Ａ：
本例のダウンサイジング実施においては、移行対象のホストシステム１００上のプログラムソース１２１を変更せずにサーバシステム２００へそのまま移行して、サーバ上の資産であるプログラムソース２１１とする。移行対象のホスト上の帳票／画面・帳票情報１２２は、変換ツール２７０により変換し、サーバ上の資産である帳票／画面・帳票情報２１２とする。ホストのユーティリティー（ソフトウェア）１２３は、サーバ上にホストと同等機能のサーバ用のユーティリティー２１３を用意する。移行対象のホスト上のＪＣＬ１２４は変換ツール２７２により変換し、サーバ上の資産としてＪＣＬスクリプト２１４とする。
【００２４】
（２）機能Ｂ：
ホストシステム１００上でプログラムソース１２１および帳票／画面・帳票情報１２２を入力として、ホストのコンパイラ１１０で機械語にコンパイルすることにより、ホスト上の実行オブジェクトプログラムを作成する。このサーバ上の資産となったプログラムソース１２１および帳票／画面・帳票情報１２２を入力として、ホストと同様の手順により、本実施形態によるダウンサイジング用コンパイラ２９０でコンパイルすることにより、サーバ上の実行オブジェクトを作成する。
【００２５】
（３）機能Ｃ：
ホスト上のＪＣＬ１２４により該当プログラムのジョブ１３０を起動することにより、ホスト上の入力ファイル１４０（本例ではファイルＡ、ファイルＢ）を入力し、該当プログラムの実行オブジェクトを実行し、ホスト上に結果ファイル１５０（本例ではファイルＣ、スプール）を出力し、ホストシステム１００上の入力ファイル１４０（ファイルＡ、ファイルＢ）および結果ファイル１５０（ファイルＣ、スプール）をホストからサーバシステム２００へダウンロードして、サーバシステム２００上にホストの入力ファイル２２０（ファイルＡ、ファイルＢ）および結果ファイル２３０（ファイルＣ、スプール）を作成する。そして、入力ファイル２２０（ファイルＡ、ファイルＢ）をコピーしてサーバの入力ファイル２５０（ファイルＡ′、ファイルＢ′）を用意する。
【００２６】
（４）機能Ｄ：
サーバシステム２００上のＪＣＬスクリプト２１４から該当プログラムのジョブを起動することにより、サーバ上の入力ファイル（ファイルＡ′、ファイルＢ′）を入力し、該当プログラムの実行オブジェクトを実行し、サーバ上に結果ファイル（ファイルＣ′、スプール）を出力する。
【００２７】
（５）機能Ｅ：
サーバシステム２００上での処理による結果ファイル２６０（ファイルＣ′、スプール）とホストシステム１００上での処理による結果ファイル２３０（ファイルＣ、スプール）とを比較ツール２７３により比較することによって、サーバシステムの同値性比較を実施する機能。この比較により同値性検証を行って、ダウンサイジングの妥当性を検証することができる。
【００２８】
［プログラムソース移行の説明］
次に本実施形態によるホストシステム１００のソフトウェア資産であるプログラムの移行処理手順を図２Ａ及び図２Ｂを参照して説明する。このプログラムの移行処理手順は、ダウンサイジング用コンパイラ２９０が、ホスト側のプログラムを変更することなくサーバ側で動作するための処理であって、図２Ａに示す如く、ホストのプログラムソースを読み込むステップＳ１１と、プログラムソースが読み込み終了かどうかの判定を行うステップＳ１２と、プログラムソースが読み込み終了か否かを判定し、終了と判定したときに後述するステップＳ１７に移行するステップＳ１２と、該ステップＳ１２において終了でないと判定したとき、該当のプログラムソースについて、資産移行に影響するＯＳや入出力等に関係した命令文かどうかの判定を行い、これら命令文でないと判定したとき、ステップＳ１１に戻るステップＳ１３とを実行する。このステップＳ１３は、ソフトウェア資産であるプログラムを実行する際に必要となるソフトウェアモジュール（部品）であるランタイムに関して、下記表１のランタイムテーブルの例に示すように該当の命令文が存在するかどうかを判定するものである。尚、ランタイム（ｒｕｎ−ｔｉｍｅ）とは、複数のプログラムで共通して行うことができる処理を１つの部品（モジュール）にまとめたソフトウェアモジュール（部品）のことを言い、このランタイムテーブルは、ホスト用プログラムソースの命令文と該命令文による処理内容とケース毎の処理方法情報と該処理方法情報に応じて実行するランタイム名との関係を格納したものであり、例えばホスト用プログラムソースの命令文「ＷＲＩＴＥ命令」の処理内容が「変換後の文字コード」であり、シフトＪＩＳを使用する処理方法情報がケース１のランタイム名が「ＲＵＮＴＩＭＥ３１」であることを示している。
【００２９】
【表１】
2010205068.tif 000003
【００３０】
次いで本プログラム移行処理手順は、ステップＳ１３により該当のプログラムソースがＯＳや入出力等に関係した命令文と判定したとき、サーバ側にＯＳ／入出力等に該当したランタイムライブラリが存在するかどうかの判定を行い、存在しないと判定したとき、後述するステップＳ１６に移行するステップＳ１４を実行する。このステップＳ１４は、表１のランタイムテーブルの例に示すように該当命令文の中の該当ケース毎の処理方法情報を持つランタイムが存在するかどうかを判定することによって行う。尚、ランタイム名に対応するランタイムは、ダウンサイジング用コンパイラ２９０のメモリに格納されている。
【００３１】
本プログラム移行処理手順は、前記ステップＳ１４において該当のランタイムが存在しないと判定したとき、新規にサーバの該当ランタイムを作成し、当該新規ランタイムを表１のランタイムテーブルに追加するステップＳ１５と、サーバの該当ランタイムのインタフェースを指定する（具体的には、表１のランタイムテーブルにある該当処理のケースをコンパイラのパラメタとして指定）ステップＳ１６と、前記ステップＳ１２において読み込みが終了と判定したとき、ホストのプログラムをサーバ向けにコンパイルするステップＳ１７とを実行する。
【００３２】
該ステップＳ１７によるコンパイル処理は、図２Ｂに示す如く、既知のコンパイラ処理であるステップＳ１７ａを実行する。このステップＳ１７ａは、サーバのプログラムソースの読み込み／読み込み終了の判定／終了していないとき、ソースコードを読み込んでトークン［プログラミング言語においてソースコードに出現する文字列の中で意味を持つ最小単位の字句］に分解することにより字句を解析し、トークン列をもとにプログラムの木構文を構築する構文解析やプログラム木構文からオブジェクトコード［コンパイラがソースコードを処理した結果生成される中間的なコード表現］生成を行う一連の処理）の一連の処理である。このステップＳ１７ａを実行した後、本実施形態によるコンパイル処理は、プログラムソースを変更しないことを前提に表１のランタイムテーブルに該当命令文の処理が存在するか否かを判定することによって、命令文がサーバ側のＯＳ／入出力等に関連した処理に対応するプログラムの命令文はランタイム呼出が必要か否かを判定し、必要でないと判定したときに処理を終了するステップＳ１８と、表１のランタイムテーブルに該当命令文の該当ケースについてコンパイルのパラメタ指定（パラメタ定義ファイルでも良い）があるかどうかを判定することにより、プログラムの該当命令文の該当ケースがコンパイルのパラメタ指定ありか否かを判定し、ないと判定したときに処理を終了するステップＳ１９と、該ステップＳ１９においてパラメタ指定があると判定したとき、表１のランタイムテーブルに存在する命令文の処理の該当ケースについてコンパイルのパラメタに基づいて、該当処理のランタイムを呼ぶようにオブジェクトコードを生成することにより、該当ランタイムを呼ぶオブジェクトコードを生成し、ステップＳ１７ａに戻るステップＳ２０とを順次実行する。
【００３３】
これら一連の処理によって本実施形態によるソフトウェア資源移行システムは、ランタイムを呼ぶオブジェクトコードを生成することができる。
【００３４】
このランタイムを呼ぶオブジェクトコード生成の具体例を図３を参照して説明する。図３は、プログラムソースを変更することなく、サーバ側のＯＳ／入出力等に関連した処理に対応する例として、ダウンサイジング用コンパイラによってデータのコード変換を行う該当のランタイムを呼ぶようにオブジェクトコードを生成する例を説明するための図である。
【００３５】
まず、図３上段に示すホストシステム１００における処理の場合、ＥＢＣＤＩＣを意識したコーディングを有するプログラムの例として、プログラムの中である項目エリアＤＡＴＡを判定している１６進のＸ’Ｃ１’はＥＢＣＤＩＣの’Ａ’を指しており、項目エリアＤＡＴＡがＥＢＣＤＩＣの’Ａ’のときにＷＲＩＴＥ処理を行うことがあり、このホストのプログラムを変更せずにサーバへコピーして移行する場合、図２Ｂで示したダウンサイジング用コンパイラでコンパイルを行う。このとき、サーバシステム上のプログラムは項目エリアＤＡＴＡが’Ａ’（１６進のＸ’Ｃ１’）のときＷＲＩＴＥ処理を行うようにするべきであるが、プログラムが取り扱うデータがシフトＪＩＳの場合’Ａ’は１６進のＸ’４１’のため、プログラム中の判定で１６進のＸ’Ｃ１’と不一致になり、ホスト処理と同じようにＷＲＩＴＥ処理を行うことができなくなる。
【００３６】
これを解決するため、本実施形態においてはダウンサイジング用コンパイラ向けのパラメタとしてのオープン系入出力装置のインタフェースについて「ＲＥＡＤ命令のケース１」と「ＷＲＩＴＥ命令のケース１」の指定を受けて、ダウンサイジング用コンパイラがＲＥＡＤ命令の後に、図３下段に示す如く、入力したシフトＪＩＳデータをＥＢＣＤＩＣデータへコード変換するランタイム（表１の例ではＲＵＮＴＩＭＥ４１）を呼び出すように図２ＢのステップＳ２０によりオブジェクトコードを生成する。
【００３７】
また、ＷＲＩＴＥ命令の前に、出力するＥＢＣＤＩＣデータをシフトＪＩＳデータへコード変換するランタイム（表１の例ではＲＵＮＴＩＭＥ３１）を呼び出すようにオブジェクトコードを生成する。表３にＥＢＣＤＩＣデータとシフトＪＩＳデータの間の相互のコード変換に使用するコード変換テーブルの例を示す。
【００３８】
【表３】
2010205068.tif 000004
【００３９】
このようにして、本実施形態によるソフトウェア資源移行システムは、プログラムソースを変更することなくコンパイルを行って移行資産をサーバ上で動作可能とすることができる。
【００４０】
次に前記図３の活用例を図４を参照して説明する。図４は、プログラムソースを変更しないために、プログラム内で取り扱うデータのデータ形式をホストと同形式（ＥＢＣＤＩＣ）とすることにより、ソフトウェア資産をサーバ上に移行し実行する例を示す処理フローである。
【００４１】
まず、ホストシステムでは、ホスト上のプログラム内および外部システム１０、ホスト系プリンタ１１、ＭＴ１２等で取り扱うデータ形式はＥＢＣＤＩＣとなっている。これをサーバへ移行するときにおいて、プログラムを変更しないために、プログラム内部で取り扱うデータ形式をホストと同形式とする。ただし、オンライン端末１６やオープン系プリンタ１７とのやり取りはオープン系のコードであるシフトＪＩＳ（ＳＪＩＳ）コード等へ変換する必要がある。
【００４２】
このため、本ソフトウェア資源移行システムは、前述の図２Ａおよび図２Ｂで述べたようにプログラムにおいてオープン系入出力等に関係した命令があるときはコード変換処理（ＥＢＣＤＩＣ←→ＳＪＩＳ）のランタイムを呼ぶようにコンパイルすることにより、ホスト上のソフトウェア資産であるプログラムおよびデータを変更することなく、プログラムとデータの関連性を保って資産移行してサーバ上で動作可能とすることができる。
【００４３】
［ＪＣＬ変換の説明］
次に本実施形態によるＪＣＬ変換を図２Ｃを参照して説明する。図２Ｃは、ホストシステムからサーバシステムへのダウンサイジング作業において、ホスト上のプログラム以外のソフトウェア資産であるＪＣＬに対する変換ツール２７２による変換処理動作例を示すフローチャートである。
【００４４】
この変換処理動作は、図２Ｃに示す如く、ホストシステムのＪＣＬ１２４を読み込むステップＳ２１と、次にＪＣＬが読み込み終了かどうかの判定を行い、終了と判定したときに処理を終了するステップＳ２２と、該ステップＳ２２において終了でないと判定したとき、下記表２のユーティリティーテーブルに該当機能のユーティリティー（ソフトウェア）が存在するかどうかを判定することにより、該当ＪＣＬ文中の起動プログラムがユーティリティーかどうかの判定を行い、存在しないと判定したときに処理を終了するステップＳ２３を実行する。尚、表２は、ソートやマージ等の機能に対応するユーティリティー名とサーバシステム上での相当するユーティリティー（ソフトウェア）が存在するか否かを格納したテーブルであり、変換ツール２７２に含まれるものであるが、これに限られるものではない。
【００４５】
【表２】
2010205068.tif 000005
【００４６】
前記ステップＳ２３において該当機能のユーティリティーが存在すると判定したとき、本変換処理動作は、表２のユーティリティーテーブルに存在する該当のユーティリティーについてサーバ上の作成有無が有か否かを判定することによって、サーバ側に該当ユーティリティーと同等機能が用意されているかどうかの判定を行い、用意されていると判定したとき、後述のステップＳ２６に移行するステップＳ２４と、該ステップＳ２４により該当ユーティリティーと同等機能が用意されていないと判定したとき、新規にサーバの該当ユーティリティーを作成し、表２のユーティリティーテーブルのサーバ上の作成有無を有に更新するステップＳ２５と、図６に示す処理によってサーバ向けＪＣＬスクリプトへ変換（表４のＪＣＬ変換ルールのように変換前ＪＣＬを変換後ＪＣＬへ変換）し、前記ステップＳ２１に戻るステップＳ２６とを実行する。
【００４７】
【表４】
2010205068.tif 000006
【００４８】
前記表４に示すＪＣＬ変換ルールは、ホスト用プログラムソースでは「／／ジョブ名  ＪＯＢ  パラメタ」を「％  ＪＯＢ  ジョブ名  パラメタ」に変換する如く、先頭記号の変換とジョブ名項目とジョブ名の順番を変更することである。
【００４９】
このＪＣＬ変換ルールによる具体的変換例は、図７に示す如く、例えば図７（ａ）に示すホスト用プログラムソースにおいて「ＰＲＯＧＲＡＭ−ＩＤ」として「ＰＲＯＧＲＡＭ１」が指定され、図７（ｂ）に示す如く、前記「ＰＲＯＧＲＡＭ１」の入力データのファイルとして「ＩＮＰ０１」、出力データのファイルとして「ＯＵＴ０１」が指定され、ＪＣＬにおいて、入力データのファイル「ＩＮＰ０１」のデータセット名（ＤＳＮ）が「ＴＥＳＴ．ＩＤＡＴＡ」が指定され、出力データのファイル「ＯＵＴ０１」のデータセット名（ＤＳＮ）が「ＴＥＳＴ．ＯＤＡＴＡ」が指定されているとき、図７（ｃ）に示す如く、表５に示したファイル作成ルールに従い、フォルダー「ＤＡＳＤ」の下にファイル「ＴＥＳＴ．ＩＤＡＴＡ」を作成し、フォルダー「ＭＴ」の下位にフォルダー「ＶＳＮ００１」、この下位にフォルダー「０１ＳＬ」を作成し、このフォルダーにファイル「ＴＥＳＴ．ＯＤＡＴＡ」を格納することが定義されている。
【００５０】
また図７に示すプログラムと変換後ＪＣＬの関係は、図７（ａ）に示すプログラム中のＩＮＰＵＴ−ＯＵＴＰＵＴ  ＳＥＣＴＩＯＮにおいて記述された７行目のＳＥＬＥＣＴ文のＤＤ名（例ではＩＮＰ０１）および８行目のＤＤ名（例ではＯＵＴ０１）は各々が、図７（ｂ）に示すＪＣＬ中の４行目のＤＤ文のＤＤ名（例ではＩＮＰ０１）および５行目のＤＤ文のＤＤ名（例ではＯＵＴ０１）と連携しており、プログラムが実行されることにより、ＪＣＬ中のＤＤ名（例ではＩＮＰ０１，ＯＵＴ０１）の次に記述されたホストのＪＣＬ文法を踏襲したパラメタを基に、サーバ環境においてファイルの作成位置が表５に示した規則に従って決定される関係にある。表５にファイル作成ルールの例を示すが、サーバ上のファイルはＪＣＬのＤＤ文に記述されたパラメタから表５におけるフォルダー作成順位に基づいてフォルダーを順に下降しネスト（入れ子構造）化して作成する。
【００５１】
【表５】
2010205068.tif 000007
【００５２】
表５に示したルールに基づいてファイルを入力する場合もファイルを出力する場合も、該当ファイルの場所を特定することができる。このファイル作成ルールは、オープン環境においてファイルの作成位置を取り決めておくためのものであって、ファイルは、ＪＣＬのＤＤ文に記述されたパラメタから表５のフォルダー作成順位に基づいて、フォルダーを順に下降してネスト（入れ子構造）化して作成する。例えば、ＪＣＬのＤＤ文に、ＵＮＩＴ＝ａ、ＶＯＬ＝ＳＥＲ＝ｂ、ＬＡＢＥＬ＝（ｃ，ｄ）およびＤＳＮ＝ｅ（ｅはホスト上のデータセット名で、オープン環境のファイル名に使用）の記述があるとき、次のようにフォルダー（ａ）を作成、（ａ）の下のフォルダー（ｂ）を作成、（ｂ）の下にフォルダー（ｃｄ）を作成して、最下位のフォルダー（ｃｄ）の下にファイル（ｅ）を作成する。
【００５３】
尚、ＤＤ文パラメタについて常に全てのパラメタの記述があるとは限らないため、一部のパラメタの記述がないときは該当パラメタのフォルダー作成を不要としてフォルダー作成順を前詰めしてファイルを作成する。例えば、上記の例でＬＡＢＥＬ＝（ｃ，ｄ）のパラメタ記述がないときは、フォルダー（ａ）、（ｂ）を作成して、最下位のフォルダー（ｂ）の下にファイル（ｅ）を作成する。また、ＤＤ文パラメタにＤＩＳＰ＝Ｘが存在して、Ｘが（ＮＥＷ）を含む値のときは上記の該当フォルダーが存在しなければフォルダーを作成し、存在すればフォルダーを作成しないものとして、最下位フォルダーの下にファイルを作成する。また、Ｘが（ＳＨＲ）または（ＯＬＤ）を含む値のときはフォルダーおよびファイルを作成せず、ファイル作成ルールに基づいてファイルを参照するものとする。
【００５４】
従って、表５に示したようにＤＤ文のＤＩＳＰ（Ｄｉｓｐｏｓｉｔｉｏｎ）オペランドが、ファイルの新規作成を意味するパラメタ（例では‘ＮＥＷ’）を含む値のときは前述の該当フォルダーが存在しなければ新たにフォルダーを作成し、存在すればフォルダーを作成しないことにより、最下位フォルダーの下にファイルを作成する。また、ＤＩＳＰオペランドがファイルの参照または更新を意味するパラメタ（例では‘ＳＨＲ’または‘ＯＬＤ’）を含む値のときは前述の該当フォルダーおよびファイルを作成せず、ファイル作成ルールに基づいたファイルの位置を特定して該当ファイルを参照するものとする。図７のプログラムとＪＣＬの連携例に示すようにＪＣＬ中の４行目のＤＤ文（ＤＤ名がＩＮＰ０１）では、ＤＩＳＰオペランドがファイルの参照を意味するパラメタ（例では‘ＳＨＲ’）のため前述の表５のファイル作成ルールに基づいてフォルダー（例ではＤＡＳＤ）の下に存在するファイル（例ではＴＥＳＴ．ＩＤＡＴＡ）を参照することになり、ＪＣＬ中の５行目のＤＤ文（ＤＤ名がＯＵＴ０１）では、ＤＩＳＰオペランドにファイルの新規作成を意味するパラメタ（例では‘ＮＥＷ’）を含むため前述の表５のファイル作成ルールに基づいてフォルダー（例ではＭＴの下のＶＳＮ００１の下の０１ＳＬ）の下にファイル（例ではＴＥＳＴ．ＯＤＡＴＡ）を作成するが、各フォルダーが存在しなければ作成するものとする。これにより、本実施形態においては、ＪＣＬ体系を変更することなく、プログラムを変更することなく、移行資産をサーバ上で動作可能とすることができる。
【００５５】
［帳票（画面）の変換処理の説明］
本実施形態によるソフトウェア資源移行システムは、ホスト上のプログラム以外のソフトウェア資産である帳票（画面）の変換から、ダウンサイジング後の帳票（画面）出力を有するプログラムを実行するものであり、この帳票（画面）の変換処理を図２Ｄ及び図２Ｅのフローを参照して説明する。
【００５６】
本実施形態による帳票（画面）の変換処理は、変換ツール２７０が、図２Ｄに示す如く、ホストシステムの帳票（画面）定義情報１２２を読み込むステップＳ３１と、この定義情報の読み込みが終了したか否かを判定し、終了したと判定したときに後述のステップＳ３５に移行するステップＳ３２と、該ステップＳ３２により読み込みが終了していないと判定したとき、読み込んだ定義情報中の定義情報が文字・けい線の定義かどうかの判定し、文字・けい線でないと判定したときにステップＳ３５に移行するステップＳ３３とを実行する。このステップＳ３３による判定は、下記表６の帳票（画面）変換ルールの例における変換前の定義文の中の横けい線部（表６の例ではＨｏｒｉｚｏｎｔａｌ  Ｌｉｎｅ部）・縦けい線部（表６の例ではＶｅｒｔｉｃａｌ  Ｌｉｎｅ部）や文字部（表６の例ではＴｅｘｔ部）等が存在するか否かにより行う。
【００５７】
【表６】
2010205068.tif 000008
【００５８】
前記ステップＳ３３において定義情報が文字・けい線の定義と判定したとき、本変換処理は、表６の帳票（画面）変換ルールの例のように、変換前の横けい線部（表６の例ではＨｏｒｉｚｏｎｔａｌ  Ｌｉｎｅ部）・縦けい線部（表６の例ではＶｅｒｔｉｃａｌ  Ｌｉｎｅ部）や文字部（表６の例ではＴｅｘｔ部）を変換後の例の始点ｘ座標・始点ｙ座標、終点ｘ座標・終点ｙ座標等へ変換することによって、文字・けい線の定義をサーバ上の定義情報へ変換するステップＳ３４と、変換後の文字・けい線の修正があるかどうかを判定するステップＳ３５と、図８に示した帳票（画面）の変換の例（帳票（書式）定義名がＮ００１の例）における吹き出しの定義文の中の横線部・縦線部および文字部の値を修正することによって、変換後の文字・けい線の定義を修正するステップＳ３６とを実行する。
【００５９】
前述した定義情報の変換は、例えば、変換前の横線定義が命令文を含む「  Ｈｏｒｉｚｏｎｔａｌ  Ｌｉｎｅ    ＳＰ（０５０，００５），ＬＥＮＧＴＨ（０３２）」であったものを、変換後においては、「始点ｘ座標：３００、始点ｙ座標：７０、終点ｘ座標：４９２、終点ｙ座標：７０」の如く、座標情報に変換するものであり、この変換方法は、帳票の変換前ページの左上を起点に横方向文字位置をａ（桁／インチ）、行位置をｂ（行／インチ）として、線の長さをｃ、文字の幅をｄとしたとき、これらの値をもとに帳票を変換するため定義情報として、横方向文字間隔をα（ドット）、行間隔をβ（ドット）、フォントタイプをデフォルトで明朝としたときのフォントサイズを算出する乗数をγとしたとき、当該ルールの例では、横方向文字間隔のαを６、行間隔のβを１４、フォントサイズの算出乗数のγを０．２７５と仮定する（γは、この例ではｅが４０のときフォントサイズが１１となるため逆算して求めた結果、０．２７５となる）。尚、資産移行の際の出力装置（プリンタ等）のスペックにより、変換前後の帳票のけい線等の位置が若干ずれる可能性があるため、その際はα、β、γの値を変更することとする。
【００６０】
次に本実施形態による帳票（画面）の変換処理は、帳票（画面）定義の変換後にサーバ上で該当の帳票（画面）出力を有するプログラムを実行する。この帳票（画面）出力処理手順は、図２Ｅに示す如く、変換ツール２７０が、前記図２Ｄの処理により変換した該当プログラムを実行するステップＳ４１と、図９の帳票（画面）の出力の例のように、ＪＣＬ中の帳票出力を行うＤＤ名（例ではＳＹＳＯＵＴ）にあるＦＣＢパラメタ（例では帳票（書式）定義名がＮ００１）から該当帳票（Ｎ００１）のイメージ情報を図９の（ａ）のように出力エリアへ出力することによって、変換後の帳票（画面）の文字・けい線のイメージ情報を出力エリアへ出力するステップＳ４２と、プログラムが実行終了かどうかを判定し、終了と判定したときに後述のステップＳ４６に移行するステップＳ４３とを実行する。
【００６１】
次いで本帳票（画面）出力処理手順は、ステップＳ４３において実行終了でないと判定したとき、その実行処理が帳票（画面）データの出力処理かどうかの判定を行い、該当の出力処理でないと判定したときにステップＳ４３に戻るステップＳ４４と、該ステップＳ４４において該当の出力処理であると判定したとき、図９の帳票（画面）の出力の例に示す如くプログラム中のＩＮＰＵＴ−ＯＵＴＰＵＴ  ＳＥＣＴＩＯＮにおいて記述されたＤＤ名（例ではＳＹＳＯＵＴ）に該当するファイル定義のレコードをデータとして出力することにより図９の（ｂ）に示す如くデータのみ出力を行うことによって、該当データを出力エリアの該当部分へ出力し、ステップＳ４３に戻るステップＳ４５と、前記ステップＳ４３において実行終了と判定したとき、図９の帳票（画面）の出力の例における（ａ）と（ｂ）を合成することによって、帳票（画面）のイメージ情報と帳票（画面）のデータを一緒にした図９（ｃ）に示す帳票（画像）をポストスクリプトへ変換して出力するステップＳ４６を実行する。
【００６２】
本実施形態による帳票（画面）出力処理手順は、前述の一連の処理によって、ホストシステム上のソフトウェア資産であるプログラムを変更することなく、ＪＣＬおよび帳票（画面）との関連性を保って資産移行してサーバシステム上で動作可能とすることができる。
【００６３】
尚、帳票（画面）を出力した際に出力装置（プリンタ等）のスペック等によって、プログラム実行処理で出力した帳票（画面）において変換前後の文字・けい線の位置が若干相違することがあるため、その際は表６の帳票（画面）変換ルールにおける乗数α、β、γの値を変更して位置調整を行うこととする。具体的には、図２Ｄにおけるステップ３１からステップ３６の処理を繰り返して、図８の帳票（画面）の変換の例における文字・けい線の定義を修正することになる。
【００６４】
［ダウンサイジング検証処理の説明］
次にホストシステムからサーバシステムへのダウンサイジング作業実施後のプログラムの実行および実行後にホストの結果ファイルとサーバで実行した結果ファイルを比較してダウンサイジング作業の妥当性を検証する検証処理を図２Ｆを参照して説明する。
【００６５】
この検証処理は、図２Ｆに示す如く、まずサーバシステム２００上の該当ジョブを起動するステップＳ５１と、当該プログラムの実行を開始するステップＳ５２と、該プロクラム実行による入力ファイルを入力するステップＳ５３と、実行オブジェクトであるプログラム処理を行うステップＳ５４と、該プログラム処理による結果ファイルを出力するステップＳ５５と、当該プログラム実行を終了するステップＳ５６と、サーバシステムの該当プログラムの結果ファイルとホストサーバの該当プログラムの結果ファイルとの比較を開始するステップＳ５７を実行する。
【００６６】
次いで本検証処理は、前記比較ツール２７３が、ホストシステムからコピーした結果ファイル２３０を読み込むステップＳ５８と、サーバシステムで実行した結果ファイル２６０を読み込むステップＳ５９と、これらステップＳ５８及び５９による両ファイル共に読み込み終了か否かを判定し、読み込み終了と判定したときに処理を終了するステップＳ６０と、該ステップＳ６０において両ファイル共に読み込みが終了していないと判定したとき、両ファイルの結果データを１バイト単位に比較して値が一致するかどうかの判定を行い、一致すると判定したときに後述のステップＳ６３に移行するステップＳ６１と、該ステップＳ６１において、一致しないと判定したとき、不一致の結果データ情報を出力するステップＳ６１と、該ステップＳ６３又はステップＳ６０において読み込み終了と判定したとき、ＬＯＧを出力するステップＳ６３を実行する。
【００６７】
前記ステップＳ６１による両ファイルの結果データを１バイト単位に比較して値が一致するかどうかの判定は、図１０の結果データ比較例の（ｂ）「不一致ありの例」に示す如く、「Ｉｎｐｕｔ  Ｆｉｌｅ  １」と「Ｉｎｐｕｔ  Ｆｉｌｅ  ２」を１バイト単位に比較することよって行う。この（ｂ）「不一致ありの例」の例では「Ｉｎｐｕｔ  Ｆｉｌｅ  １」の１０バイト目が１０進数で‘９’（１６進数ではＸ’Ｆ９’）、「Ｉｎｐｕｔ  Ｆｉｌｅ  ２」の１０バイト目が１０進数で‘０’（１６進数ではＸ’Ｆ０’）のため、不一致であることが判定される。尚、図１０（ａ）は、（ａ）は全件一致の例である。
【００６８】
このように本実施形態による検証処理は、によれば、ダウンサイジング実施前のホストシステムの結果ファイルとダウンサイジング実施後のサーバシステムの結果ファイルを容易に比較してダウンサイジング作業の妥当性を検証することができる。
【００６９】
［ユーティリティー処理の説明］
次に本例のダウンサイジング作業において、ホスト上のソフトウェア資産であるＪＣＬを変更することなく移行するために、ＪＣＬから起動するユーティリティーについて図１で述べたようにサーバシステム上にホストシステムと同等機能のユーティリティーを用意して移行する例を示す処理を図５を参照して説明する。
【００７０】
このユーティリティー処理は、ホストシステム１００のプログラムが、元データとなる「Ｆｉｌｅ１」を入力としたプログラムである「ＰＲＯＧＲＡＭ１」が、データである「ＦＩＬＥ３」及びパラメタである「ＰＡＲＡＭＥＴＥＲ」を参照してユーティリティーである「ＳＯＲＴ＆ＭＡＲＧＥ」によりソート及びマージを実行し、この結果データである「ＦＩＬＥ４」をパラメタである「ＰＡＲＡＭＥＴＥＲ」を参照し、印刷ユーティティーである「ＰＲＩＮＴ」によりレポートを印刷する一連の処理を行うものとし、前記「ＰＲＯＧＲＡＭ１」「ＳＯＲＴ＆ＭＥＲＧＥ」「ＰＲＩＮＴ」がＪＣＬにて起動されるジョブとする。
【００７１】
さて、前述のホストシステムのユーティリティーをサーバへ移行する際、従来ではホスト側と同等機能のユーティリティーがサーバ側で用意されていない場合、図５の符号２００ａの「サーバ（ＪＣＬ変更あり」に示す如く、既存プログラムである「ＰＲＯＧＲＡＭ１」に加え、ホスト側のユーティリティー「ＳＯＲＴ＆ＭＥＲＧＥ」と同機能を成す「ＰＲＯＧＲＡＭ２」、「ＰＲＯＧＲＡＭ３」、「ＰＲＯＧＲＡＭ４」を追加すると共に、ホスト側のユーティリティー「ＰＲＩＮＴ」と同機能を成す「ＰＲＯＧＲＡＭ５」を追加することが必要となり、新規にプログラムを４本作成すると共にＪＣＬの変更が発生する。
【００７２】
これに対して本実施形態による処理は、図５の符号２００ｂの「サーバ（ＪＣＬ変更なし」に示す如く、サーバ側で「ＳＯＲＴ＆ＭＥＲＧＥ」及び「ＰＲＩＮＴ」を予め用意しておき、このサーバ側ユーティリティーをプログラム進行に従って実行させることによって、ホスト上のシフトウェア資産であるＪＣＬを変更することなく、新たにプログラムを新規作成することなく既存のプログラムのままで移行することができ、且つ、運用方法の見直しが不要となる。尚、サーバ側で予め用意するユーティリティーは前記の例に限られるものではなく、旧資産のＣＯＢＯＬで使用される汎用的な各種ユーティリティーを全て用意しておくものである。
【００７３】
このように本実施形態によるソフトウェア資源移行システムは、図２Ａ〜図２Ｂを主に参照して説明した如く、ダウンサイジング用コンパイラ２９０が、プログラムの命令文と該命令文に対応する複数ケース毎のランタイム名を格納したランタイムテーブルを有し、制御手段が、ホスト用のプログラムソース内の命令文にランタイムテーブルに格納されたＯＳや入出力に関与する命令文が含まれているか否かを判定する第１工程と、該第１工程においてランタイムテーブルに格納されたＯＳや入出力に関与する命令文が含まれていると判定したとき、ランタイムテーブルの命令文に対応するケースをコンパイラのパラメタとして指定する第２工程と、ホスト用プログラムソースをサーバ用の機械語にコンパイルするとき、ソースコードを読み込んでトークンに分解する第３工程と、該第３工程により分解したトークンの列を基にプログラムの木構文を構築し、該構築したプログラムの木構文からコンパイラがソースコードを処理した結果生成される中間的なコード表現であるオブジェクトコードを生成する第４工程と、該第４工程により生成したオブジェクトコードの命令文にランタイム呼出が必要か否かを前記ランタイムテーブルに該当命令文の処理が格納されているかによって判定する第５工程と、該第５工程によってランタイム呼出が必要と判定したとき、前期命令文のコンパイルにパラメタ指定があるか否かを前記ランタイムテーブルを参照して判定する第６工程と、該第６工程において命令文のコンパイルにパラメタ指定があると判定したとき、前記第１のメモリに格納したランタイムを呼び出すようにオブジェクトコードを生成し、該生成したオブジェクトコードをコンパイルしたサーバ実行オブジェクトに挿入する第７工程を実行する。これにより、サーバシステム用にホストのプログラムソースをコンパイルすることができる。
【００７４】
これを具体的に説明すると本実施形態によるソフトウェア資源移行システムは、ホスト側のプログラムソースをサーバ側のプログラムソースにコンパイラするとき、ダウンサイジング用コンパイラ２９０が、前述した図２ＢのステップＳ１９にて指定したパラメタを読み込み、該パラメタにより指定されるランタイムを用いてコンパイルを実行することによって、例えば、図３を主に参照して説明した如く、パラメタが「ＲＥＡＤ命令のケース１」及び「ＷＲＩＴＥ命令のケース１」のとき、表１のランタイムテーブルの「ＲＵＮＴＩＭＥ４１」及び「ＲＵＮＴＩＭＥ３２」を実行することによって、元のプログラムソースにランタイムをコールする命令を埋め込む様に変換することによって、指示されたコード変換（「シフトＪＩＳ」→「ＥＢＣＤＩＣ」、「ＥＢＣＤＩＣ」→「シフトＪＩＳ」）を行うことができる。このデータ形式の変換は、図４に示した如きホスト側の「ＥＢＣＤＩＣ」をサーバ側の周辺装置に使用される「シフトＪＩＳ」に変換するときも行うことができる。
【００７５】
更に、前記ホストシステムのコンピュータにより特定の機能を実行するユーティリティーソフトウェアを格納する第２のメモリと、該第２のメモリに格納したユーティリティーソフトウェアを起動するプログラムであるＪＣＬを格納するＪＣＬメモリと、サーバシステムのコンピュータにおいて前記ホストシステムのユーティリティーソフトウェアと同機能のユーティリティーソフトウェアを格納する第３のメモリと、前記ホストシステムの第２のメモリに格納したユーティリティーソフトウェアの名称と該名称のユーティリティーソフトウェアと同機能のユーティリティーソフトウェアが前記第３のメモリに格納されているか否かを示す有無情報を格納するユーティリティーテーブルと、ホストシステム用のＪＣＬをサーバ用に変換するための変換ルール情報を格納するＪＣＬ変換ルールメモリと、前記ＪＣＬメモリに格納されたホスト用のＪＣＬを前記変換ルール情報を参照してサーバ用のＪＣＬに変換するＪＣＬ変換ツールとを有し、前記ＪＣＬ変換ツールが、前記ＪＣＬメモリに格納したＪＣＬを読み込み、該読み込んだＪＣＬが起動するユーティリティーソフトウェアが、前記第３のメモリに格納されているか否かを前記ユーティリティーテーブルの有無情報を参照して判定する第８工程と、該第８工程において読み込んだＪＣＬが起動するユーティリティーソフトウェアが第３のメモリに格納されていると判定したとき、前記ＪＣＬ変換ツールにより、ＪＣＬ変換ルールメモリに格納した変換ルール情報に基づいてＪＣＬメモリに格納されたホスト用のＪＣＬを前記変換ルール情報を参照してサーバ用のＪＣＬに変換する第９工程とを実行する。
【００７６】
更に本実施形態によるソフトウェア資源移行システムは、変換ツール２７０が、ホスト側の線横線／縦線の種別を示す「線種（Ｈｏｒｉｚｏｎｔａｌ／Ｖｅｒｔｉｃａｌ）」と、帳票又は画面の左上端を基準として横文字位置（ａ）及び縦文字位置（ｂ）と、線の「長さ」を指定するベクトル形式の帳票情報や画面情報を、表６に示す如く、始点のＸＹ座標及び終点のＸＹ座標に変換することによって、ホスト側におけるベクトル形式の帳票情報や画面情報をサーバ側のプリンタや表示装置用の座標情報に変換する第１０工程を実行することによって、サーバシステム側において帳票印字及び表示を行うことができる。
【００７７】
更に本実施形態によるソフトウェア資源移行システムは、ホストシステム１００が、ホストプログラムソースを機械語のホスト実行プログラムに実行するホストコンパイラ１１０と、データを入力として前記ホストコンパイラを実行した結果であるホスト結果ファイルデータを出力するホストコンピュータ１６０とを有し、サーバシステム２００が、前記データを入力とし、ダウンサイジング用コンパイラ２９０が機械語にコンパイルしたサーバ実行オブジェクトを実行してサーバ結果ファイルデータを出力するサーバコンピュータ２７０と、前記ホスト結果ファイルデータとサーバ結果ファイルデータとを比較する比較ツール２７３とを有し、該比較ツール２７３が、ホスト結果ファイルデータとサーバ結果ファイルデータとを１バイト単位で比較し、不一致の結果ファイルを出力する第１１工程とを実行することによって、ダウンサイジング作業における結果ファイルの検証を行うことができる。
【符号の説明】
【００７８】
１０：外部システム、１１：ホスト系プリンタ、１６：オンライン端末、１７：オープン系プリンタ、１００：ホストシステム、１１０：コンパイラ、１２０：ホスト資産、１２１：プログラムソース、１２２：画面・帳票情報、１４０：ホスト入力ファイル、１５０：ホスト結果ファイル、１６０：ホストコンピュータ、１６１：実行オブジェクト、２００：サーバシステム、２１０：サーバ資産、２１１：プログラムソース、２１２：画面・帳票情報、２１３：ユーティリティー、２２０：ホスト入力ファイル、２３０：ホスト結果ファイル、２５０：サーバ入力ファイル、２６０：ファイルサーバ結果ファイル、２７０：サーバコンピュータ、２７５：変換ツール、２７１：サーバ実行オブジェクト、２７２：変換ツール、２７３：比較ツール、２８１：レポート、２９０：ダウンサイジング用コンパイラ。
【図１】
2010205068.tif 000009
【図２Ａ】
2010205068.tif 000010
【図２Ｂ】
2010205068.tif 000011
【図２Ｃ】
2010205068.tif 000012
【図２Ｄ】
2010205068.tif 000013
【図２Ｅ】
2010205068.tif 000014
【図２Ｆ】
2010205068.tif 000015
【図３】
2010205068.tif 000016
【図４】
2010205068.tif 000017
【図５】
2010205068.tif 000018
【図６】
2010205068.tif 000019
【図７】
2010205068.tif 000020
【図８】
2010205068.tif 000021
【図９】
2010205068.tif 000022
【図１０】
2010205068.tif 000023