COBOL資産をオープン環境へ移行するための方法論

WHITE PAPER
COBOL資産をオープン環境へ
移行するための方法論
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
はじめに
企業情報 システム再構築の必要性が 高まる 中、汎用機・オフコンか ら UNIX・
PC サーバーなどのオープンシステム へのダウンサイジング事例 が増えていま
す。この ホワイトペーパーでは、ダウンサイジングを進めて行く上での留 意
点と現在利用可能な技術について概 観しま す。まず、再構築によって何が 得
られるのか、進 めて行く上での方法論・工 程にはどのようなものがあるのか
を述べ、 次いで、再構築の 第 1 段階 である 既存システムの理解と分析をどの
ように行 うかを 、リエンジニアルングツールの実際例を通して解説します 。
ダウンサイジングを効率的に進めるためには、既存コードをいかに再利用 で
きるかが ポイントとなります。続く 章では、コード再利用に伴う問題点を 分
類・整理 し、そのそれぞれについての解決方法を述べます。最後に 、IBM メ
インフレームか ら UNIX へ基幹業務をダウンサイジングし た生命保険会社の
事例をとりあげ、そこから学ぶべき 事柄を 述べます。
2002 年
1 月 10 日
Ver 1.00
© 2001 Micro Focus International. All rights reserved. その他の商標は、所有各社の登録商標また
は商標です。
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
目次
情報システム 再構築の背 景と方法論
なぜ再構築が必要か
システム再構築の方法論
既存システム の理解と分 析
何を理解・分析するか
ツールの活用事例 - M ICRO FOCUS REVOLVE
既存システム 再利用のポイント
再利用方法の概要
COBOL プログラム移植での問題点
COBOL コンパイラの互換性オプション
ソースコードの自動変換
COBOL 以外 の問題点の対応
環境に依存す る移行上の 問題点
COBOL 以外 の言語
データベースアクセス
バッチジョブ
ダウンサイジング事例
まとめ
MI C R O
FO C U S
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
企業情報 システム再構築の必要性が 高まる 中、汎用機・オフコンから UNIX・
PC サーバーなどのオープンシステムへのダウンサイジング事例が増えてい
ます。こ のホワイトペーパーでは、 ダウンサイジングを進めて行く上での 留
意点と現在利用可能な技術について 概観します。まず、再構築によって何 が
得られるのか、 進めて行く上での方法論・ 工程にはどのようなものがあるの
かを述べ 、次い で、再構築の第 1 段 階である既存システムの理解と 分析を ど
のように 行うかを、リエンジニアルングツールの実際例を通して解説します。
ダウンサイジングを効率的に進めるためには、既存コードをいかに再利用 で
きるかが ポイントとなります。続く 章では、コード再利用に伴う問題点を 分
類・整理 し、そのそれぞれについての解決方法を述べます。最後に 、IBM メ
インフレームか ら UNIX へ基幹業務 をダウンサイジングした生命保険会社 の
事例をとりあげ、そこから学ぶべき 事柄を 述べます。
情報システム 再構築の背景と方法論
本ホワイトペーパーの冒頭に当たっ て、既 存 COBOL 資産 をオープン環境へ
移行することの必要性を概観し、そのための方法論・工程についてハイレベ
ルなポイントを整理します。
なぜ システム再構築が必要 か
ここではなぜ企 業はシステム再構築 を行わなければならないのか、システム
再構築をした結 果えられるメリット は何なのかを概説します。
(1) システムの 保守性を高 める
昨今の社 会・産業構造の急激な変化 に伴い 、ビジネスのやり方を絶え間無 く
変えて行 くことが、企業にとって競 合に勝 ち抜き存続して行くための必須条
件となっています。これに伴い、企業情報 システムも、堅固さを保ちながら
同時に変化にすばやく対応できる柔軟性を求められるようになってきました。
大企業で は、20 年、30 年前に 開発されたシステムが現在も稼動 していること
があり、 このようなシステムは長年 の保守による変更の積み重ねのために 、
きわめて 柔軟性 の低いものになっている場 合があります。企業が多大なコ ス
トを費やして、 抜本的なシステム再構築を 行わなければならないと決断す る
理由の第 一はここにあります。
このような理由 によるシステム再構築では 、ERP の導 入が多く見られます 。
パッケージ導入 によるシステム再構築では 、以下 の点が達成されるのかを 十
分に確認 する必 要があります:
ú
他社との 競合力 を実現 するような特殊性のあるカスタム化ができるのか
ú
一旦カスタム化 して導 入したものを 、導入後に容 易に再カスタム化でき
るのか
3
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
(2) ダウンサイジング によるコスト削 減
システム 再構築 を行う第 2 の理由は コスト 削減です。
汎用機の 開発・ 保守コスト、運用コストが 、努力して削減することが非常 に
難しいのに対し て、オープンシステムの世 界でのハードウェアの価格性能比
の向上スピード はめざましいものがあります。一旦初期コストを費やして オ
ープンシステムへダウンサイジング してしまえば、以 後 10 年の レンジでのコ
スト削減効果はきわめて大きなものになると期待されています。
この場合 の付帯効果として、次のようなことも良く挙げられます:
ú
基幹系と情報系を統合 できる
ú
OA 環境と連携できる
ú
アウトソーシングしている運用をインハウス化できる
このほか 、ターゲット環境としての 汎用機はそのまま存続させるが、システ
ムの開発 ・保守 を PC を使 って効率化して行こうという試みも多 く見られま
す。
Micro Focus COBOL および Micro Focus Revolve は、
Windows 上で稼動し、
IBM メインフレームの COBOL ソースプログラムや JCL などを対象として、
クロス開 発・保 守を可能にするツールとして大きな実績を持っています。 こ
れについては、 後の章でより詳しく 解説します。
(3) 旧環境がサポート されなくなる
汎用機の メーカーが、機種 や OS のバージョン のサポートを停止するのに 伴
って、オープン 環境へ移行するという例も 多くあります。このような消極的
なダウンサイジングの場合は、情報 システムの機能に付加価値を与えること
よりも、 低コストで移行できることのほうが重要になります。
一時期、システムの西暦 2000 年対応 に伴って、ダウンサイジングの計 画を推
進した企 業も多 くありました。これも、このような消極的ダウンサイジング
の一形態 と考えられます。
システム再構築の方法論
システム 再構築 は、基本的には次の ステップで実行されます:
MI C R O
FO C U S
1.
既存システムを 物理レベルから論理 レベルへリバースエンジニアリング
する
2.
論理レベルで再設計す る
3.
新しい論 理レベルを物 理レベルへ再実装す る。
4
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
対象システムが 巨大な場合には、各 ステップにおいて詳細な計画・チェック
ポイント の立案 ・ツールによる自動化が必 要になってきます。
コンサルティングファームが提供しているシステム開発方法論の中には、 再
構築に特 化した 機能をもっているものがあり、システム再構築のための細 分
化された 工程と 、各工程における良 く定義された入出力情報とチェックリス
トを提供 しています。
l
James Martin & Co. 社の TSRM
James Martin & Co.社のシステム 再構築方法論「 TSRM 」は、さまざまなリエ
ンジニアリング技術を適用することによって、メンテナンス・最新技術へ の
移行・既 存システムの置換作業を合理的に 行うための手段を提供することを
目的としています。
具体的に は、情 報システム部門内で のシステム再構築の運営、評価、メトリ
クスのガイドラインを企業の実情に 合わせてカスタム化して提供する形を と
ります。 基本的 な工程は、以下の4 つのステージからなっています:
MI C R O
FO C U S
1.
エンタープライズ再構築計画 - エンタープライズ・レベルでのシステム
再構築計画を立 案する 。
2.
情報資産 の分析/評価 - システム再構築にかかるコスト・時間・ リスク
をつかみ 意思決定するための既存システム 資産の 分析/評価を行う。
3.
ポジショニング - 現行の 機能や アーキテクチャに影 響を与 えずに、既存
システム の品質 を改善 する。
4.
移行のためのモデリング - 現行と目標のアプリケーション をトップダ
ウンとボトムアップの 両アプローチ を使用 して分 析し、目標のビジネ
ス・モデルを作 成する 。
5
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
既存システム の理解と分析
本章では 、システム再構築の第 1 ステップ である、既存システムの 理解・ 分
析の目的 と進め 方を概説します。特 にこのフェーズで活用できるツールに つ
いてやや 詳しく 述べます。
何を 理解・分析す る か
このフェーズで 行われる作業は、具体的に は以下 のことを目的としています:
(1) システム資 産の要約分析
棚卸し分 析、ポートフォリオ分析などとも 呼ばれます。再構築の対 象である
システム 全体の 、規模、複雑度を把 握し、 同時に不要な資産を切り分けてお
くことにより、 再構築プロジェクト 全体の 工数見積もりや要員計画の基礎資
料を得ま す。
また、再構築を 行ったことによる効 果を定量化するためにも、再構築前の シ
ステムの メトリクスを得ておく必要 があります。
具体的に は以下 のようなものを抽出 します :
•
サブシステムへ の分割 、共 通 COPY、サブルーチンの切 り分け
•
ステップ数カウント
•
McClure 法、McCabe 法などによる複雑度メトリクスの計数
•
ファンクションポイント法による計数
(2) データ設計の再文書化
資産の要約分析 は計画フェーズで利 用されるハイレベルな情報を得るための
ものです 。これに対して、実際の作 り変え 作業で必要となる情報は、データ
ベース設 計とビジネスロジックを論 理レベルへ抽象化することです。
VSAM、階層型 DB、関係 DB のそれぞれについて、 DDL(データ定義言語)
のソース から論理構造を抽出する、 リバースエンジニアリングツールが各 種
存在します。
また、特 定のデータベースフィールドの使用箇所をシステム全体から漏れ な
く抽出す るクロス参照機能も、ツールの効 果が発揮されるものです。
(3) ロジックの 再文書化
データ構 造の把 握と並んで必要な解 析は、 ソースコードやジョブ管理言語 か
ら、モジュール・バッチジョブの論理構造 を抽出する作業です。
ここでも 、さまざまなリバースエンジニアリングツールが市場に存在し、 そ
れぞれ特 徴を持 っています。出力できる情 報には以下のようなものがありま
す:
MI C R O
FO C U S
6
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
•
ジョブフロー図
•
プログラムの呼び出し 関係
•
特定サブルーチンのクロス参 照
•
1プログラム内の手続 き関連図
(4) 移行で の問題個所 の抽 出
情報システムへ の付加価値の追加を 主目的 としない、ストレートな ダウンサ
イジング の場合 は、既存システムを 理解することよりも、以下に理解するこ
となくコンバージョンを行うかが重 要になってきます。
このような場合 、ソースプログラム 中で、 移行に伴って修正が必要な個所 の
分布・一 覧を得 ておくことが有益で す。このような個所には例えば、以下 の
ものがあります:
•
移行元環境に特有なミドルウェアの 使用個所
•
アセンブラサブルーチンの呼 び出し 個所
•
特殊なマクロの使用個所
リバースエンジニアリングツールの 提供す るクロス参照機能を使用して、 こ
のような 情報を取得すること ができます。
ツ ー ルの活用事例 - Micro Focus Revolve
前節では 、既存 システムから抽出す る情報で、システム再構築で必要となる
ものを挙 げました。この工程ではツールによる自動化が大きな効果を発揮 し
ます。
ここでは 一例として、Micro Focus Revolve をとりあげ、どのような情 報を自
動生成できるかを解説します。
Revolve は、保守作業を支援す る目的 で開発 されたリエンジニアリングツール
であり、 以下のような作業の流れの 全てに渡って、使いやすく強力な機能 を
提供しています。
Revolve がサポート する環境は IBM メインフレームが中 心で、CICS、IMS の
DB/DC をフルサポートしています。しかし、そ の他の汎用機でも、 COBOL
MI C R O
FO C U S
7
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
言語の方 言はかなりの部分をサポートしており 、JCL も IBM と互換性のある、
富士通・ 日立環境であれば同様に利 用できます。
(1) 棚卸し分析
Revolve は PC にダウンロード したソース を読み 込んで解析し、リポジトリを
構築します。この過程で、自動的 に不足している COPY メンバー を洗い 出し、
プログラム中の 未定義の変数を示し 、プログラムと COPY メンバー のバージ
ョン不整合を指 摘します。
Revolve を使用して ソース資産 の棚卸 しを行う場合、まず、汎用機上にあるソ
ースライブラリ内の全メンバーを PC へダウンロードしておき、 ここから出
発して不要資産 や不足メンバーの調 査を行 うことが推奨されます。例えば 、
一群の JCL だけを指定して、そこから Revolve にリポジトリ構築をさせる
ことによって 、指定 された バッチジョブから 呼び出 されているプログラム、
そのプログラムが使用している COPY メンバー 、サブルーチンなどを自動的
に探索し 、プロジェクトを完成させようとします。自動探索の結果見つから
なかった ソースメンバーは、不足しているファイルとして報告します。
このように、Revolve を使用し て時間 をかけずに正確な資産の棚 卸しを 得るこ
とができます。
(2) 統計情報の 取得
一旦 Revolve のリポジトリを作製すると 、そこから以 下のような統計情報 を
取得することができます。これらは 、移行工数の試算に利用できる指標を 提
供します。
•
行数カウント
COPY 展開前の物理行数と、 COPY 展開後の論理行数の 両方を 一括し
て計算します。
•
McClure 法、McCabe 法などによる複 雑度メトリクスの計 数
ソフトウェア工学によって提 唱されている、各種のメトリクスを自 動
算出します。これによって、 単なる 行数カウントより精 密な 工数試算
が可能になると言われています。
•
ファンクションポイント法による計 数
Revolve は International Function Point Users Group (IFPUG) の 3.4 フ
ァンクション ポイント分析定義に準拠 した方 法で、 リポジトリ中の
COBOL プログラム から、ポイントを計 算します。なお、 IFPUG 自 身
が表明しているように、厳密 にはプログラムのソースプログラムだ け
から得られる情報ではポイントの計 算は不可能ですので 、ここで取 得
される値 は参考値になります 。
MI C R O
FO C U S
8
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
Description
Low Average
High
Total
External Inputs
5
3
1
33
External Outputs
6
2
1
41
External Inquiries
0
0
0
Internal Logical Files
0
5
0
0
35
External Interface Files 4
1
0
27
Total Degree of Influence = 0
Adjustment Factor = 0.65 + (0.01 * 0) = 0.65
Final Function Point Count = 136 * 0.65 = 88.40
Revolve によるファンクションポイント算出例
(3) データ設計のリバース
Revolve には、データ設計 の論理構造を 逆生成して文書化する機能はありま
せんが、 データアクセスに関するクロス参 照を大域的に取得する機能が提 供
されています。
VSAM に関しては、特定のデータファイル を使用しているプログラムとその
行位置を 一覧することができ、移行 に伴う データファイル変更の影響個所 を
把握することができます。同時に JCL を 解析し 、DD 文の定義から物理デ ー
タセット 名に関連付けてクロス参照 を行うため 、COBOL プログラム内 に書か
れた論理 ファイル名だけからは取得 することができないような、大域の解 析
を行うことができます。また、CICS コマンドによる VSAM アクセスもバ ッ
チと同様 にサポートされています。 従って、同一の物理データセットが、 バ
ッチとオンラインとの両方からアクセスされている場合でも、ひとつのク ロ
ス参照でまとめて把握することができます。
VSAM のクロス参照
MI C R O
FO C U S
9
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
また、データファイル毎に、それを 更新す るプログラム個所のみの抽出、 デ
ータファイルの レコードを定義している COPY メンバーの一覧など 、きめ 細
かいオプション設定が用意されています。
Revolve データファイルブラウザのオプション
埋め込み SQL 文によるリレーショナルデータベースアクセスについては、テ
ーブル単 位、カラム単位の大域クロス参照 を取得することができます。
IMS データベースへ のアクセスは、DLI コマンドと CALL “CBLTDLI” の両
方をサポートしており、データベース単位での大域クロス参照を取得できま
す。
IMS データベースの クロス参照
MI C R O
FO C U S
10
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
その他、日立 XDM などの階層型データベースに関しては、Revolve 固有のサ
ポートはありませんが、CALL 文での利用であれば、 サブルーチンのクロス
参照機能 で代替 することもできます 。Revolve のスクリプティング機能 を使用
して、CALL 文のパラメタ を解析して、より高 度なクロス参照を生成するこ
とも可能 です。
(4) ロジックの 最文書化
Revolve の提供する 各種のビューは、ソースコードからモジュールやバッチジ
ョブの論理構造 を逆生成します。以 下に Revolve が生成する文書の 例を示 し
ます:
ジョブフロー図
MI C R O
FO C U S
11
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
モジュール関連図
MI C R O
FO C U S
12
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
既存システム 再利用のポイント
システム 再構築 において、論理レベルの設計変更があまりに多いと、既存 の
ソースコードはまったく再利用できず最初から作り直しとなってしまうこと
があります。しかし、パッケージ導 入などの場合を除き、多くの場合はある
程度の再利用が 可能です。本章 では、ソースコード再利用の問題点を整 理し、
その解決方法について整理します。 移行元環境と移行先環境に関する各論 に
ついては 、引き 続く章で個別に解説 します 。
再利用方法の概要
再利用ベースの ダウンサイジングで は、典型的にはメインフレームで稼動 し
ていた COBOL プログラムをオープン 系 COBOL コンパイラで再コンパイル
することによってオープンシステム 上で稼 動させることになります。しかし、
同じメインフレームどうしの間の移 植であっても、例えば COBOL コンパイ
ラのバージョンを上げるだけでも、 さまざまな互換性問題が発生することが
多いことは良く 知られています。ましてやマシンアーキテクチャもオペレー
ティングシステムも異なる環境への 移植となれば、容易ではないことが予 測
されます。
たしかに 互換性 への過度の期待はするべきではありません。しかし、ロジッ
クを再利用することに割り切って考 えるならば、一からの作り直しに比べ て
大きな工数削減 、品質の安定を獲得できる 場合が多くあります。
COBOL プ ロ グ ラ ム移植で の問題点
この項で は COBOL プログラム の再利用に着目して、問題点を整 理します。
一般に、COBOL プログラムの 移植で 発生す る問題は以下のように分類 されま
す。
(1) シンタクスの相違
コンパイラのサポートする COBOL 構 文の相違により、新 しい環 境ではコン
パイルエラーになって しまうもの。 これをさらに細分すると、以下のような
ものがあります:
MI C R O
FO C U S
•
準拠する COBOL 規格の相違 (ANSI74、ANSI85 など)
•
COBOL の規格で「処理系作成者が定める」としているもの
•
利用者語 が追加 された予約語と衝突する
•
旧環境の COBOL コンパイラの 方言
13
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
•
本来不正 なプログラムだが、旧環境 の COBOL コンパイラ がたまたまエ
ラーとしなかった
(2) セマンティクスの 相違
文法的に 同じプログラムで、コンパイルエラーにもならないが、実行すると
異なる動 作をするもの。大抵は COBOL の規格で「 動作は 規定し ない」とし
ているものであり、以下のようなものがあります:
•
算術式で 桁あふれ条件 が発生し、ON SIZE ERROR 句によるエラー処理
が記述されていないとき
•
ファイル 節のデータ項 目に VALUE が 書かれている
•
数字データ項目 に数字 で無い内容が 含まれているとき
(3) 正しくない プログラムの動作
本来不正 なプログラムだが、旧環境 の COBOL コンパイラ がたまたまエラー
としなかった、 もしくはコンパイル 時にチェックすることが理論的に不可能
なもの。 初期化 されていないデータ を参照する時の動作などがこれにあたり
ます。
COBOL コ ン パ イ ラの互 換 性オプション
これらの 問題点 に対して取りうる対 策は、 以下の二つに大別されます:
•
COBOL コンパイラをカスタム化 して旧環境のコンパイラの 動作に合わ
せる
•
プログラムを書 きかえる (自動変換・手作業)
ここでは、Micro Focus の COBOL 製品を例にとり、 どのようなカスタム化
が可能かをやや 詳細に説明します。
Micro Focus Net Express、Micro Focus Server Express の場合、以 下のようなカ
スタム化 のインタフェースを提供しています。
(1) コンパイル 時の指 令によるカスタム化
200 に及ぶ コンパイル指令がサポート されています。このうち 、移行 に伴う
互換性に 関連す る代表的なものとして、以 下のものがあります。
l
MI C R O
FO C U S
算術式の中間結果評価方式
14
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
COBOL プログラム 中に複合的な算術式を書く と、これを 計算す る方式 によっ
ては、プログラムの実行結果に相違 が出てきます。これは、コンパイラが 演
算の中間結果にどれだけの精度を与 えるかによって生じる相違です。
汎用機で は十進演算など高機能なハードウェア命令がサポートされており 、
COBOL コンパイラ もこれを活用するようなコード生 成を行っています。これ
に対して 、マイクロプロセッサを使 用するオープンシステムでは、十進演算
はほとんどの場 合ソフトウェアによって実 行されます。コンパイラの作成者
は、常にもっとも高速に計算が実行 されることを念頭におきますので、マ シ
ンアーキテクチャが異なれば最適な 実装方式も自ずと異なってきます。
例として、Micro Focus の COBOL コンパイラは デフォルトでは、整数部 19
桁、小数部 19 桁の演 算レジスタを内部的 に使 用しています。これは、メイン
フレーム のコンパイラの処理よりも 高い精 度を保証しま す。
以下のようなプログラムの場合、Micro Focus では結果は 7 になりますが、
メインフレームでは 4 になります。
WORKING-STORAGE
01 ITEM-1
01 ITEM-2
01 ITEM-3
01 ITEM-4
COMPUTE
SECTION.
PIC 9.
PIC 9
VALUE 7.
PIC 9
VALUE 4.
PIC 9
VALUE 4.
ITEM-1 = ITEM-2 / ITEM-3 * ITEM-4.
このように、一 般に は Micro Focus のほうが汎用機より正 しい結 果を返 してい
るのですが、これも非互換です。こ の互換性のために ARITHMETIC(VSC2)
指令がサポートされており、IBM VS COBOL II の中間結果評価方式を シミュ
レートします。
l
廃要素構文のサポート
COBOL 言語の規格 は、ANSI66、ANSI74 、ANSI85 と進化してきており、そ
の間に消 えてしまった構文もいくつかあります。新しい COBOL コンパイラ
はそのような構 文の使用を抑止するためにサポートを取りやめていることが
あります 。Micro Focus でも、このような廃要素構文はデフォルトで許 さない
ようにしています。しかし、OSVS などの指令によって使用可能にすること
も可能で す。以 下のような構文がこれに当 たります。
•
EXAMINE 文
•
EXHIBIT 文
•
ON 文
l
特殊構文のサポート
COBOL 規格とは無関係に 、
汎用機上 で独自 にサポートされてきた構文 があり
ます。Micro Focus では、 IBM メインフレームと の互換性を重視しており 、
OSVS などの指令を 指定することによって 以下のような独自構文 をメインフ
レームと 同様に サポートしています 。
MI C R O
FO C U S
15
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
•
PANVALET の ++INCLUDE 文
•
CA Librarian の +INC 文
•
EJECT、SKIP、TITLE などのリスティング制御 コマンド
•
= TO、> THAN などの比較条件
l
予約語の制御
Micro Focus は常に最新の COBOL 言語機能を取 り込んできており、 以前 の
COBOL コンパイラ がサポートしていなかったような 言語機能をデフォルト
でサポートすることがあります。通 常はこのような場合でも、機能が追加 さ
れているだけなので、互換性上の問 題になることはありません。しかし、
COBOL の予約語が 新たに 追加された場合、既存プログラムがたまたまそれと
同じ名前 のデータ項目名を使用していれば、コンパイルエラーとなってしま
います。
このような問題 を簡単に解決するために、 指定された予約語を予約語扱い と
させないような指令 REMOVE が用 意されています。こ の指令 を使用 すると、
当然その 予約語 を使用する言語機能 は使用 できなくなります。
なお、Micro Focus が最近になって予約語として追加 したものには、以 下のよ
うなものがあります:
ABSTRACT
B-AND
B-EXOR
B-LEFT
B-NOT
B-OR
B-RIGHT
B-XOR
BROWSING
CALLED
CLASS-ID
COERCION
DEFAULT
DEFINITION
END-WAIT
EVENT-POINTER
IDENTIFIED
INHERITS
METHOD
METHOD -ID
MONITOR-POINTER
MUTEX-POINTER
READING
REDEFINITION RESTRICTED
SEMAPHORE-POINTER
SHARING
THREAD-POINTER
THREAD-LOCAL
さらに、 ある予約語を別の予約語に 読み変 えさせることを指令する、
OVERRIDE 指令、MAKESYN 指 令もあります。
l
実行時例外の制御
COBOL プログラム の実行時に論理エラーが発 生したときの動作は、 COBOL
コンパイラの実装方式によって変わってきます。一般には、このようなエ ラ
ー系の動 作にまで互換性を期待するのは間 違っており、エラーはなくすのが
正しい方 法です 。
Micro Focus では、コンパイル指令によって 実行時例外の 動作をある程度制御
することができます。以下のような場合が 対象になります:
•
MI C R O
FO C U S
添え字範囲チェックをする・しない
16
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
•
10 進データ例外時の アベンドする・しない
•
ゼロ除算時のアベンド する・しない
(2) 実行時オプションの指 定によるカスタム化
コンパイル指令 はプログラム単位に 個別に 設定しますが、実行時オプション
は実行時 システム全体のカスタム化 を行います 。Micro Focus では、環境変数
COBSW で設定するオプションと、 コンフィグファイル中にコマンド 形式で
記述する ランタイムチューナーの 2 種類の 設定方法をサポートしています 。
さまざまな指定 が用意されていますが、移 行に伴う互換性に関するものとし
ては、以 下のものがあります:
•
10 進データ例外時の アベンドする・しない
•
ゼロ除算時のアベンド する・しない
•
レコードロック 時のリトライ・エラーリターン
•
ファイルロック 時のリトライ・エラーリターン
•
ISAM ファイルオープン時のキ ー属性チェックをする・しない
•
ファイル 更新の ディスクフラッシュのタイミング
ソースコードの自動変換
コンパイラのカスタム化で対応できないような問題点は、COBOL プログラム
を新環境 に適合 するように書きかえることで対応します。これを自動的に 行
う方法としては 、以下の 2 つの方式 があります。
(1) プリコンパイル方 式
Micro Focus は、統合化プリプロセッサと呼 ばれるインタフェースを提 供して
おり、ユーザやサードベンダーが作成したプリコンパイラを、COBOL コンパ
イラ中に 組み込 むことができます。 このインタフェースを使用すると、プ ロ
グラマは 明示的 にソースのコンバートを行 う必要が無く、COBOL コンパイラ
が自然に 言語拡張されたように見えます。また 、COBOL デバッガで、変換す
る前のソースコードのままでデバッグできるというメリットもあります。
以下のサンプルプログラムは、この機能を利用 して作 成された、日立 COBOL
独自の NC’漢字’ 定数を自動変換するプリコンパイラのソースです。アプリ
ケーションのコンパイル時に、コンパイル指令でこのプリコンパイラを指 定
するだけで、NC’漢字’ 定数を エラー 無くコンパイルすることができるように
なります 。ユーザプログラムのソースコードに対する修正は不要です。こ の
コンパイル指令 をコンパイラのデフォルト指令に設定しておけば、プログラ
マは意識 することなくこの文法を使 用できるようになります。
MI C R O
FO C U S
17
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
select main-file assign to buffer
organization line sequential.
file section.
fd main-file.
01 main-rec.
02 filler pic x(80).
linkage section.
01 mode-flag
pic 9(2)
01 buffer
01 response.
pic x(80).
03 response-status
03 response-code
comp-x.
pic 9(2)
pic 9(4)
comp-x.
comp-x.
03 filler redefines response-code.
05
filler
pic x.
05 resp-main
03 response-code-2
pic 9(2)
comp-x.
pic 9(4)
comp-x.
03 filler redefines response-code-2.
05 filler
05 resp-more
pic x.
pic 9(2)
comp-x.
procedure division using mode-flag, buffer, response.
1. move 0 to response-status
if mode-flag = 0 *> initial calls
open input main-file
else *> mode-flag = 1 *> the following calls
read main-file at end
move spaces to buffer
move 0 to resp-main move 032 to resp-more
close main-file
exit program
end-read
inspect main-rec replacing all " NC'" by "
inspect main-rec replacing all " NC""" by "
N'"
N"""
move main-rec to buffer
end-if.
exit program.
(2) 自動変換方式
ソースコンバータを作成して、事前 に一括して変換をしてしまう方式です 。
SED 、A W K などのテキスト操作用スクリプト言語は、使いこなせばかなりの
レベルの 変換処理を記述することができます。
例として 以下の SED スクリプトは、NC'漢字'、NX'16 進漢字' をそれぞれ N'
漢字'、X'16 進漢字' に置換し、 DISPLAY UPON DISP 文を DISPLAY UPON
CONSOLE に置換し 、CONSOLE IS DISPLAY を CONSOLE IS CRT に置換し
ます。
MI C R O
FO C U S
18
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
s/ NC'/ N'/
s/ NX'/ X'/
/ UPON *DISP/ {
s/ UPON *DISP/&¥^¥^¥^/
s/ DISP¥^¥^¥^/ CONSOLE/
}
/ CONSOLE .* DISP/ {
s/ DISP/ CRT/
}
このようなスクリプトでは処理しきれないような複雑な変換は、変換プログ
ラムを COBOL で記述し て、バッチ処 理で一括変換 します 。
COBOL 言 語 以 外 の 問題点 の対応
ここまでは、COBOL 言語 に焦点 を絞って、プログラムのオープン環境 への移
行について説明 しました。しかし、COBOL 言語以外の部 分で現 れる移 行の問
題点が多 くあります。例えば以下のようなものです:
•
簡易言語
•
データベースアクセス
•
トランザクション処理
•
画面制御
•
ジョブ制 御
これらについては、次章で各論として触れます。
MI C R O
FO C U S
19
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
環境に依存す る移行上の問題点
旧システムを撤 廃し 、新た にオープンシステムへダウンサイジングする場 合、
旧システムで利 用されていたさまざまな言 語、ツール、ユーティリティ、 ミ
ドルウェア、データベースを、新環境でどのように代替するかが、非常に 重
要なポイントとなります。
本章では 、このような COBOL 言語以外の 問題点について、移行元環境と移
行先環境 に関す る各論として個別に 解説します。
COBOL 以 外の言 語
汎用機の 世界で は、COBOL はもっとも普及し たプログラミング言語ですが、
それ以外 の言語 も頻繁に使用されています。ここでは、そのようなものに 対
して提供 されているソリューション についてまとめます。
(1) PL/I
PL/I アプリケーションのダウンサイジングに当たって、オープンシステム上
で稼動す る PL/I コンパイラ製品 も存在しますが、ほとんど使用実績がありま
せん。ダウンサイジングに当たっては、別 の言語に書き換えてしまう事例 が
見受けられます。
PL/I を COBOL に 変換す るツール・サービスを提 供するベンダーもあります。
一例として、株式会社ソフトプレックスで は、メインフレーム上またはオ ー
プンシステムを ターゲットとして、PL/I プログラムを COBOL に変 換する コ
ンバージョンサービスを用意しています。
http://www.softplexinc.com/products.htm
(2) アセンブラ
メインフレーム上の大規模なシステムでは、多くの場合部分的にアセンブラ
が使用されており、ダウンサイジングでの障壁になります。通常、アセンブ
ラが使用 されるのは以下の場合に限 られます:
•
日付計算 など頻 繁に実 行される処理 を高速化するため
このようなケースでは、一 般にそれほど膨大な 量のプログラムが書かれ
てはいません。一旦工数 を費やして、COBOL や C に 書き換えておくこ
とが推奨 されます。
•
ミドルウェアの 機能の 呼び出しや SVC が必 要であるため、特殊な マクロ
を使用するため
このようなケースでは、オープンシステムではサポートされていない 機
能を使用 するためにアセンブラが使われています。従って、いずれにし
ても何らかの代替機能に書き直す必 要があります。
MI C R O
FO C U S
20
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
(3) RPG/400
AS/400 では、 アプリケーションの多くは RPG で記述されています。 オープ
ンシステム上で 動作する RPG 言語はありませんので、何 らかの 言語に 書き換
える必要 があります。
こういったコンバージョンサービス を提供するベンダーもあります。株式会
社アイ・ アンド ・シーでは、独 PKS Software 社の AX/ware の総代理店とし
て、AS/400 からの自 動コンバージョンツール を販売 しています。
http://www.iandc.co.jp/iac_main04.html
(4) Easytrieve, CSP, Mantis などの 4GL
PL/I 変換サービスを 提供している株式会社ソフトプレックスでは、このよう
な 4GL の変換 メニューも 用意しています。
データベースアクセス
通常、ダウンサイジングではデータベースアクセスはオープン系のデータベ
ースに置 き換わります。従って COBOL プログラム からデータベースアクセ
スを行っている 部分は、一般に は書 き換えなければなりません。この項 では、
必要とされる変換作業を分類・整理 します 。
(1) VSAM などの COBOL ファイル
l
COBOL READ/WRITE 文 の場合
通常は、ANSI 標準に準拠する文法で 実現されて いるので 移植上の問題 はあり
ません。 以下の 点に注意する必要があります:
•
古いアクセスメソッド
古いオフコンの直接編成や、IBM の BDAM のような、COBOL 規格範囲外の
アクセスメソッドは、対応する ISAM に書きかえる必 要があります。
•
ファイル 状態コード
I/O 文の実行後に返 される状態 コード で 1 桁目が 9 であるものは、 コンパイ
ラ作成者 がさだめることになっており、相違があります。Micro Focus の場合
は、IBM メインフレームのファイル 状態コードをシミュレート するコンパイ
ル指令が 用意されています。しかし 、状態 コードは通常ログファイルへの 書
き出しなどのためにしか使用されませんので問題はありません。
MI C R O
FO C U S
21
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
l
CICS コマンドなどの場合
VSAM アクセスであっても、オンラインプログラムからの EXEC CICS READ
などの埋 め込み コマンドの場合は、 書き換 えが必要となります。
(2) 階層型データベース
IMS などの階層型データベースで、オープン系のオペレーティングシステム
でも稼動 しているものはありません 。従っ て、単なるプログラムの書き換 え
だけでなく、データベース設計自体の変換 も必要になってきます。
l
データベース設計の移行
階層型データベースの設計をリレーショナルデータベースの設計に設計変更
するには 、論理的には各セグメント (レコード)を1テーブルに単純変換 す
ることで 可能で す。
親子関係 は、リレーショナルデータベースのテーブルに参照キーを付加す る
ことで実 現されます。
このような方式 で、論理的には機能 を実現することはできても、照会のパ タ
ーンによっては性能が出ない場合もあるので、そのような場合だけをチュー
ニングしてやれば良いことが知られています。
MI C R O
FO C U S
22
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
l
CALL インタフェースの場合
IMS の CALL 'CBLTDLI' や、日立 XDM の CALL ‘XDATBAS’ のように、
CALL インタフェースのプログラムの場合は、 変換が 必要な箇所の洗い出 し
も、変換自体も 機械的であり、比較的容易 に変換できます。
このような場合 、あらかじめ移行元 の CALL 文のパラメタ 仕様を明確にして
おき、変換規則を良 く定義 しておくことが重要 です。例として XDM の場合、
移行元で は以下 のような CALL 文でアクセスしています:
CALL 'XDATBAS' USING READM NFPADIA NFPA PAS-KEY.
CALL 'XDATBAS' USING RDNXT NFPADIA NFPA PAF-KEY.
CALL 'XDATBAS' USING READM NFPADIA NFPA PAF-KEY.
CALL 'XDATBAS' USING DEL-M NFPADIA NFPA PAF-KEY.
CALL 'XDATBAS' USING ADD-M NFPADIA NFPA PAF-KEY.
CALL 'XDATBAS' USING WRITM NFPADIA NFPA PAF-KEY.
これらはそれぞれ、READM は SELECT へ、RDNXT は FETCH へ、DEL-M
は DELETE へ、ADD-M は INSERT へ、WRITM は UPDATE に書き換 える必
要があります。 実際に、変換方法をうまく 定義し、この XDATBAS という
サブルーチン自 体を COBOL で 書き直 すことによって、呼び 出し側の COBOL
プログラムを修 正することなしに、XDM から Microsoft SQL Server へ変換し
たユーザ 事例もあります。
l
親言語方式の場合
IMS の EXEC DLI 文のような親言語埋め込 み方式の場合も、CALL イ ンタフ
ェースと 同様に 、系統立てた変換規則を定 めておくことによって、機械的 な
手作業で 変換が 可能です。
l
モジュール言語方式の場合
モジュール言語方式とは、CODASYL で定められた プログラミング方 式で、
照会パターンを プログラムとは別に 定義し て名づけておき、プログラムか ら
はその名 前で照 会を起動する方式のことを言います。ユーザ作成ミドルウェ
アの多くはこの 方式を取っています 。
モジュール言語方式で作成されたプログラムは、プログラムとデータベース
照会の D M L とが独 立に定 義されているため、 周到に 準備しておけば変換は
機械的に 行うことができます。
(3) 関係データベース
ダウンサイジング対象システムが、DB2 などの関係データベースを使 用して
いる場合 、データ設計をそのまま流 用してオープン系の関係データベース に
移行できます。 ただし、流用できるのはテーブルとカラムおよびその参照関
係だけであり、 実装に特有な設定は 使用できません。
MI C R O
FO C U S
23
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
l
埋め込み SQL の 場合
SQL 文を COBOL に埋め込 む方式は、ANSI で規格化 されており、どの 実装も
基本的にその方 式を採用しています 。
しかし、各 データベースがサポートす る SQL 文法には方 言もかなりあり注意
を要します。
l
その他の親言語方式の場合
ADABAS など一部の関係データベースには、モジュール言語方式のプログラ
ミングを 提供しているものもあります。やはり、プログラムとデータベース
照会の D M L とが独 立に定 義されているため、 周到に 準備しておけば変換は
一般に難 しくありません。
(4) データの変 換
ここまでは、アプリケーションプログラムの移 行の問 題を扱ってきましたが、
ダウサイジングにおいては、これまで汎用機上で運用してきたデータ資産 を
オープン 環境の データベースに移行することも重要なタスクです。
汎用機の システムが操作するデータ は、 VSAM や独自のデータベース管理シ
ステムに 保管されています。これを 、オープン環境のデータベースエンジン
へ移行しなければなりません。
Micro Focus Net Express が提供するデータツールは、IBM メインフレーム形式
のデータファイルを Net Express 形式のデータファイルへ変換します。しかし、
これは各種国産汎用機のコード形式 をサポートしていませんので、サードベ
ンダーの ツール が必要になります。 そのようなツールの一例として、富士通
ビー・エ ス・シ ーの F*TRAN+ があります。
F*TRAN+シリーズは、汎用機上 の COBOL データ中の、日付データ や BCD
形式データの変 換、EBCDIC←→JIS8 変換はもちろん、各種漢字コード(拡張
漢字を含 む)の 変換をサポートしています。COBOL のゾーン形 式、パック形
式などの 数値項目の変換も可能です 。
各汎用機 に対応 した拡張漢字テーブルを提 供しており、拡張漢字テーブル は
ユーザが カスタマイズ可能になっています 。
実際のデータ移 行は、次のような手 順で行 われます:
1) 索引ファイル、データベースのダウンロード
汎用機上 のデータ管理ユーテ ィリティを使 用して、索引ファイルや データベ
ースを一旦固定長順編成ファイルへ アンロードします。このときに、順フ ァ
イルのレコードレイアウトを明確にしておきます。これは通常 COBOL の
COPY 登録集などで定義されているものです。その上で、アンロード された
順ファイルをオープンシステムへバイナリファイル転送します。
2) F*TRAN+ によるデータベースへ の変換
各順ファイルは 、個別にオープンシステム上のデータベースのテーブルに 変
換されます。このため、変換後の収納先として事前にデータベース定義を 行
い、必要 なテーブルを切っておきます。
MI C R O
FO C U S
24
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
COBOL レコード定 義:
01
従業員レコード.
05
従業員番号
PIC X(6).
05
従業員名
PIC N(10).
05
生年月日
PIC 9(8).
05
性別
PIC N.
05
住所
PIC N(20).
05
入社年月日
PIC 9(8) USAGE COMP-3.
05
所属部署
PIC X(4).
F*TRAN+による変換指定:
インポートされた Access テーブル:
MI C R O
FO C U S
25
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
画面処理
汎用機上 のプログラムでの画面処理 には以 下のようなものがあります:
•
CICS などのトランザクションシステムが サポートする 画面マップ処理
•
COBOL の SEND/RECEIVE 文による論理端末の 入出力
•
富士通の 表示ファイル に代表される READ/WRITE 文による処理
•
NEC オフコンに代表される SCREEN SECTION 構文
これに対 し、オープンシステムでの COBOL で一般的に使 用される画面処理
は、以下 のようなものです:
•
COBOLコンパイラがサポート する SCREEN SECTION によるキャラクタ
画面処理
•
Micro Focus の Dialog System に代表 される 、COBOL コンパイラに組み
込まれた GUI ビルダー
•
クライアント側 で Visual Basic などを 使用し た 3 層 C/S 形式
•
HTML や ASP による Web 画面
•
トランザクションシステムによる画 面マップ処理
以下、これらを 使用した変換方式の 概要を 説明します。
(1) COBOLの SCREEN SECTION 構 文
汎用機からのダウンサイジングの場 合、業 務の種類によっては、マウスを 使
用する GUI アプリケーションよ り、キー操 作ベースのキャラクタ画面 の方が
歓迎される場合 があります。このような場 合に有効な方式です。
画面レイアウトを COBOL の画面節 で定義 し、手続き部中の
ACCEPT/DISPLAY 文で入出力操作を 行います。
この構文 は、従 来オフコン の COBOL を中心に広く 採用されてきています。
しかし、COBOL 言 語の国際標準 で定義されていないものであるため、細かな
構文の相 違がかなり存在します。Micro Focus では、 X/Open 標準に準 拠した
構文をサポート していますが、一般 にオフコンの SCREEN SECTION からの
移行では 手直し が必要となります。
移行元COBOL がSCREEN SECTION では無 い画面マップ 定義機能を使 用して
いる場合 には、文法の変 換が必 要となります。例として、日立 メインフレー
ムのマップ定義 の場合、以下のように変換 します:
MI C R O
FO C U S
26
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
移行元 画面マップ定義:
CNSFLD POS=(003,015),
VAL=(C,'サ ギヨウ
ビ:['),
ATTR=(GREEN,PRINT)
VARFLD LOGFLD=MPDATE,
CTLFLD=MPDATE,
POS=(003,028),
ATTR=(WHITE,TRANS,PRINT)
相当する SCREEN SECTION 定義:
05 LINE 003 COL 015 VALUE 'サ ギヨウ
05
ビ:['.
PIC X(6) LINE 003 COL 028 USING MPDATEI
UNDERLINE BACKGROUND-COLOR 2.
SCREEN SECTION によって Net Express で作製された Windows 画面の例を以
下に示します。
(2) Dialog System
Micro Focus Net Express は、
専用 の GUI ビルダーである Dialog System を標準
装備しています。VB ライクな画面ペインター と COBOL インタフェースの
自動生成機能を備えており、Windows GUI を簡単に作 製することができます。
Dialog System は、
一 般の GUI ビルダーと異なりイベント駆動型でない COBOL
プログラミングを許容しています。 画面と プログラムのインタフェースは
MI C R O
FO C U S
27
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
CALL 文となるため 、汎用機上のプログラムと 類似し た制御フローで処理 で
きます。
(3) 3 層 C/S 形式
COBOL のロジック をサーバー側で稼動させ、 クライアント側で Visual Basic
などで作 製し た GUI から 呼び出 す形式です。
この形式 への変 換は、移行元の COBOL プログラム に大幅 な改変 が必要にな
ります。
(4) Web 形 態
Web アプリケーションでは、HTML で記述 されたユーザインタフェースによ
ってブラウザか ら入力されたフォームデータが、何等かの方法でサーバー 側
におかれたプログラムに手渡され、 アプリケーションに固有のビジネスロジ
ックによって処 理され、その処理結果が再 び何等かの方法によってブラウザ
に返されます。
これは、 メインフレームのオンラインプログラムが、端末からあがったデ ー
タをホスト側で 処理して再び端末に 返すのに類似しています。オンラインプ
ログラムを COBOL で書くように、Web アプリケーションでも サーバー側の
ビジネスロジックを COBOL プログラムで 書くことができます 。
この形態 については、Micro Focus のホワイトペーパー 「Micro Focus Net
Express による COBOL アプリケーション の Web 化」に詳 しく解 説されていま
す。
(5) CICS
CICS アプリケーションは IBM の TX Series がオープン環境で の利用可能に
なっており、Micro Focus の COBOL を使用 することによって、 ほぼそのまま
ダウンサイジング可能です。
MI C R O
FO C U S
28
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
バッチジョブ
バッチジョブ制 御を記述す る JCL は、オープンシステムで は OS そのものは
サポート していないため、対応する何らかの機 能に変 換する必要がありま す。
UNIX のコマンド言語であるシェルスクリプトでも、JCL の多く の機能 を記述
できます。以下に、IBM 形式の JCL と、それに相当するシェルスクリプトの
例を挙げます:
JCL:
//STEP1 EXEC PGM=BATCH1
//VBTYPEIN DD DSN=PROD.VIDEO.BONDS.MASTER,DISP=SHR
//GAMEMSIO DD DSN=PROD.GAME.MASTER,DISP=OLD
//PLAYMSIO DD DSN=PROD.PLAY.MASTER,DISP=SHR
対応する シェル :
export VBTYPEIN=/usr/data/prod/video/bonds/master.dat
export GAMEMSIO=/usr/data/prod/game/master.dat
export PLAYMSIO=/usr/data/prod/play/master.dat
BATCH1
メインフレームでは、ソートやファイル生 成、コピーなどを行うユーティリ
ティが各種用意 されており、ジョブステップでこのようなユーティリティ が
多用されています。ファイルコピー などは OS コマン ドで置き換え、ソート
は例えば Micro Focus COBOL の Mfsort ユーティリティなどで代替します 。
MI C R O
FO C U S
29
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
ダウンサイジング事例
大手保険業 D 社では メインフレームで 2 年以上かけて開発された約 290 万
ステップの COBOL によるホスト集中型基幹システムを、稼動後 6 年 たって
業務ニーズの変 化と、技術的可能性の高まりを理由に、UNIX 環境の クライ
アント/ サーバー形式でのダウンサイジングを開始しました。開発を外部 の
会社に依 存していた D 社では、ダウンサイジングの開始に当た り次のような
目標を設 定しました。
•
コスト削 減
分散機開発で開発生産性 を向上 させる
•
先端開発技術、 ノウハウの吸収
SIベンダー、関連会社 との共同開発
•
保守開発 、運用 ノウハウの移転
SIベンダー、関連会社 との共同運用
•
安全、確実性の 重視
D 社ではトータルな生産性向上 のため、次のような 手法を 検討し実施 しまし
た。
•
事前に幅 広いフィージビリティ・スタディを実施 、実現可能な生産性向
上策を検 討
•
変換、テスト、 運用支援のためのツールを 自作し 、自動化による工数削
減を図る
•
SI ベンダー、関連会社まかせでなく設計、 開発の早い段階から 参画
既存資産 である バッチ・プログラム については自動変換ツールと手作業に よ
り、主に 以下の 項目の変更を行い、Micro Focus COBOL でコンパイルして実
行モジュールを 生成。
MI C R O
FO C U S
•
DB I/O 処理
•
DB I/O のリターンコード(エラー判 定)
•
帳表出力
•
ABEND サブルーチン
•
半角カナ の定数 (全角文字に)
30
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
既に移行 が完了 したシステムについてはハードウェア、データベースのチ ュ
ーニング 、COBOL からの 最適化されたコード 生成等 の総合的結果として、処
理パフォーマンスの向上が報告されています。又、画面まわりや SQL 文、プ
ログラム を部品化して、作業文書の 整備も 向上させたことにより将来のメ ン
テナンス も容易 にしています。
このプロジェクトでは、環境の載せ 変え自 体が目的であり、業務の仕様変更
はあまり 要求されていませんでした。
実作業に 入るまでの準備、フィージビリティスタディに多くの時間を費や し
ており、 移行作業自体は非常に短期間で実 行しています。この点がもっとも
学ぶべきであると考えられます。
MI C R O
FO C U S
31
COBOL 資 産 の オ ー プ ン 環 境 移 行 の 方 法 論
まとめ
企業情報 システムにおける COBOL へ の過去の投資 を無駄 にすることなく、
新しいプラットフォーム上でのアプリケーションを開発してゆくために、 具
体的な手 法を見てきました。
MI C R O
FO C U S
32
マイクロフォーカス株式会社
Tel:0120-209612
www.microfocus.co.jp