データのモダナイゼーション

既存の COBOL アプリケーションの多くは、フラット ファイル、VSAM、索引ファイル、または順編成ファイルなどの従来の COBOL データ ファイルを使用して、重要なビジネス情報を保存しています。かつては、このタイプのデータ ストレージが十分その役割を果たしていました。しかし、リレーショナル データベース (RDBMS) が導入されると、従来のデータ ストレージを使用する際の短所が明らかになってきました。リレーショナル データベースにデータを保存すると、レポートのカスタマイズや分析結果の取得がはるかに容易になります。通常、RDBMS 内のデータは保守が容易であり、ダウン タイムが短縮されます。さらに、RDBMS またはデータ ストレージを使用することは、スケーラブルなアプリケーション アーキテクチャを構築するための重要なステップです。

注: サポートされているリレーショナル データベースのリストを表示するには、「データベース管理システム (DBMS)」を参照してください。

アプリケーション アーキテクチャにリレーショナル データベースを追加することが望ましいと判断したら、次のステップはディプロイ オプションを検討し、この目標の達成に最も役立つオプションを選択することです。

ディプロイ オプション

Visual COBOL は、リレーショナル データベースを使用できるように COBOL アプリケーションを更新する複数のソリューションを提供します。

埋め込み SQL
COBOL プログラムでは、ファイル入出力動詞を埋め込み SQL (EXEC SQL) に置き換えることができます。Visual COBOL OpenESQL 機能で、この置き換えを実行できます。詳細については、「OpenESQL」を参照してください。

OpenESQL は、COBOL アプリケーション内から RDBMS をサポートする最大限の柔軟性を提供し、広く使用されている機能です。ただし、既存のアプリケーションが現在ファイル ベースである場合、OpenESQL を使用するように一般的な COBOL アプリケーションを更新するには、多大な労力がかかる場合があり、数人年かかる可能性があります。このシナリオでは、Micro Focus は、リレーショナル データベースの利点を短期間で活かすために使用できる代替アプローチを提供します。

Micro Focus Relativity
Relativity 製品は、COBOL データ ファイルへの ODBC インターフェイスを提供します。ファイルは基本的に、ODBC または JDBC を使用する任意のクライアントからアクセスできるデータ ソースになります。このアプローチにより、アプリケーションを変更することなく COBOL データ ファイル内のデータを維持できます。さらに、ODBC インターフェイス経由で COBOL データにアクセスすることで、レポートおよび分析を改善する Microsoft Office やその他のソフトウェア製品などのサードパーティ ツールを利用できます。詳細については、「Micro Focus Relativity Documentation」を参照してください。
Micro Focus データベース ファイル ハンドラー (MFDBFH)
このアプローチを使用すると、アプリケーション コードは変わりません。実行時に、既存のファイル入出力文が変換され、データ ファイルではなく RDBMS との間でデータが自動的に保存および取得されます。

最適なパフォーマンスを実現するために、MFDBH は COBOL レコードをバイナリ BLOB として RDBMS に保存します。レポート作成や分析のニーズに応えるために、オプションでデータベース ビューを作成して BLOB 内のデータを表示できます。

詳細については、「Micro Focus ネイティブ データベース ファイル処理」参照してください。
Micro Focus Database Connectors (DBC)
このアプローチは MFDBFH と類似しており、COBOL プログラムを変更するとこなく、データがデータ ファイルではなく RDBMS との間で自動的に保存および取得されます。DBC が MFDBFH と異なるのは、COBOL フィールドが単一のバイナリ BLOB としてではなく、データベース テーブル内の個々の列に格納されるという点です。

DBC アプローチでは、データをテーブルにマッピングする方法の柔軟性は高まりますが、パフォーマンスの点では最適ではありません。MFDBFH は最適なパフォーマンスを提供します。ただし、これら 2 つのアプローチのパフォーマンスを正確に比較することは、それぞれの COBOL アプリケーションが同じではなく、有用性も異なるため現実的ではありません。

最適なオプションの選択

次に示すのは、COBOL アプリケーションに最適なディプロイ オプションを選択する方法に関するガイダンスです。

データ ファイル
データ ファイルは、アプリケーションがローカルにアクセスする場合、最高のパフォーマンスが得られますが、信頼性およびスケーラビリティがその代償になります。ハードウェア障害によってデータが破損する可能性があり、その場合、データの復旧のために長時間停止することがあります。データをリモートに移動したり、障害を軽減するための措置を講じたりすると、パフォーマンスに影響を与える可能性があります。
埋め込み SQL
許容できる時間およびコストの制約内でアプリケーションを無理なく更新できる場合は、組み込み SQL を選択してください。ファイルから RDBMS に移行すると、データがネットワーク経由でアクセスされるため、アプリケーションのパフォーマンスが低下することを想定してください。
Relativity
主な目的が、サードパーティ アプリケーションで COBOL アプリケーション データに簡単にアクセスすることである場合は、アプリケーションを変更する必要がなく、データが既存のファイル内に残るため、Relativity が適しています。他の理由で実際に RDBMS 内の COBOL データが必要で、ESQL を使用するようにアプリケーションを更新することが難しい場合は、MFDBFH または DBC アプローチの使用を検討してください。
MFDBFH
データをファイルからデータベースに速やかに移行させる必要がある場合、MFDBFH は最高のパフォーマンスを提供します。ただし、このソリューションでは COBOL プログラムの外部でデータを更新できないため、テーブル ビューで COBOL フィールドをマップする方法に関して柔軟性が低下します。これらの問題が重要な場合は、代わりに DBC アプローチの使用を検討してください。
DBC
RDBMS テーブル内で COBOL フィールドを表現する方法をより細かく制御する必要がある場合、または COBOL プログラムの外部でデータを編集する機能が必要な場合、通常、これが最良のオプションです。

パフォーマンスの考慮事項

ファイルから RDBMS にデータを移行する場合、パフォーマンスが最大の懸念事項となることが多いため、この移行でアプリケーションが受ける影響を把握する必要があります。アプリケーションはそれぞれ異なるため、パフォーマンスを正確に比較することは現実的ではありません。ただし、判断する際には、次のガイドラインを使用することをお勧めします。

  • バッチ アプリケーションは従来から入出力の負荷が高いため、RDBMS へのデータの移行はパフォーマンスに大きな影響を与える可能性があります。
  • オンライン アプリケーションは、このタイプの移行でパフォーマンスが低下する可能性がありますが、この低下はごくわずかであるため、多くの場合、エンド ユーザーは気付きません。
  • ユーザー数の増加に応じてスケールアップするアプリケーションの場合、RDBMS のパフォーマンスは通常、ファイル アクセスよりも優れており、ネットワークまたは Fileshare 経由でアクセスするとさらに高速に実行されます。
  • データベース アクセスを最適化するようにコードを変更することで、MFDBFH ベースおよび DBC ベースのアプリケーションのパフォーマンスの問題を軽減できます。

比較:MFDBFH 対 DBC

MFDBFH DBC

サポートされているデータベース

  • PostgreSQL
  • SQL Server (Azure SQL を含む)
  • DB2 LUW
  • Oracle
  • ODBC
  • SQL Server
  • DB2 LUW
  • Oracle
ライセンス モデル コアまたは同時ユーザーのメトリック。開発製品には開発ツールが標準で含まれますが、アプリケーションを実行するには別途ライセンスが必要です。
技術的アプローチ 個別のキー列を持つ BLOB ベースのストレージ。ビューを追加して、フィールドレベルの可視性を提供できます。 個々の列がレコード内のフィールドに対応する、フィールドベースのアプローチ。
パフォーマンス 通常、パフォーマンスの範囲が向上します。 フィールド マッピングの柔軟性が向上します。
編集サポート ビューは読み取り専用です。 フィールドは慎重に編集できます。
クラウド AWS RDS や Azure PostgreSQL などのクラウド サービス プロバイダーのデータベースでテスト済み。 オンプレミスのシナリオに ODBC を使用した汎用データベース アクセスを提供します。
接続を既存の RDBMS 接続と共有可能 XA 接続の場合は「はい」、その他すべての場合は「いいえ」。デフォルトでは、MFDBFH ローカル接続は独自のキャッシュを維持します。ただし Oracle は、オプションで OCI 接続またはセッション プールのいずれかを使用するように構成できます。 すべての接続に対して「いいえ」。
データファイル エディタ のサポート あり (バージョン 8.0 以降) なし
Enterprise Server および PAC によるサポート あり なし
配列、ODO、および動作の再定義 ビューが生成された際にのみ適用されます。ODO はビューではサポートされません。 配列要素ごとに個別の列を作成します。
.NET あり (バージョン 10.0 以降) あり。ただし、ネイティブ コードが組み込まれるため、純粋なマネージ コード ソリューションではありません。