次の方法で共有


Raincode IMSql を使用して Azure で IMS DC と IMS DB を再ホストする

Azure Virtual Machine Scale Sets
Azure Logic Apps
Azure SQL Managed Instance
Azure Virtual Network
Azure ExpressRoute

このアーキテクチャでは、Raincode の IMSql を使用して、情報管理システム (IMS) メインフレーム アプリケーション ワークロードを Azure に実装する方法について説明します。 IMS データベース (DB) アプリケーションをクラウドネイティブ・ソリューションに移行するのは、リレーショナル DB アプリケーションを移行するよりも複雑です。 この記事では、重要な IMS 機能を持つメインフレーム IMS ワークロードを Azure にシームレスに再ホストする方法について説明します。 既存のアプリケーションを移動または変更する必要はありません。

IMS DB/DC ワークロード・アーキテクチャー (マイグレーション前)

マイグレーション前の IMS DB/DC ワークロード・アーキテクチャーを示す図。

データフロー

次のデータフローは、前の図に対応しています。

  1. ユーザーは、TN3270 や HTTPS などの標準メインフレーム プロトコルを使用して、伝送制御プロトコルまたはインターネット プロトコル経由でメインフレームに接続します。
  2. トランザクション・マネージャーは、ユーザーと対話し、アプリケーションを呼び出してユーザーの要求を満たします。
  3. アプリケーション層のフロントエンドでは、ユーザーはIMS画面またはWebページと対話します。
  4. アプリケーション・コードは、IMS DB (階層型) バックエンド・データ・レイヤーのストレージ機能を使用します。
  5. すべてのオフライン ビッグ データ操作は、バッチ ジョブを介して実行されます。
  6. トランザクション処理に加えて、他のサービスでは、認証、セキュリティ、管理、監視、およびレポート作成が提供されます。 これらのサービスは、システム内の他のすべてのサービスと対話します。

Azure の IMSql アーキテクチャ

Azure の IMSql アーキテクチャを示す図。

このアーキテクチャの Visio ファイルをダウンロードします。

ワークフロー

次のワークフローは、上記のダイアグラムに対応しています。

  1. IMSql ターミナル・サーバー

    従来、オンプレミスのユーザーは、IBMの社内端末または端末エミュレーションソフトウェアを介してメインフレームのz/OSインターフェースにアクセスしていました。 地理的に分散したネットワークを持ち、数千人のユーザーがいるアプリケーションは、任意の形式の端末を介してメインフレームに接続できます。 IMS Data Communications (DC) アプリケーションを分散クラウドベースのシステムに再ホストする場合は、アプリケーションとリソースを一元的にホストし、それらをリモート クライアント デバイスに公開する必要があります。 IMSql ターミナル サーバーを使用して、Azure でアプリケーションとリソースをホストおよび発行できます。

  2. SQL Server サービス ブローカー

    メインフレームでは、IMS DC は、制御領域でメッセージを送信および処理することにより、ユーザー端末とアプリケーション・プログラムとの間の通信層を調整します。 再ホスト後、SQL Server Service Broker はこの非同期通信層を調整します。 Service Broker は、メッセージ配信フレームワークを介した通信を可能にし、メッセージを個別の処理サーバー、現在のユーザー、およびそれらのトランザクション処理にスケールアウトします。

  3. IMSql 処理サーバ

    処理サーバーは、.NET Framework または .NET Core の IMS プログラムの Raincode 再コンパイルされたコードを実行します。 これには、再コンパイルされたプログラムを正しい機能的等価性で効果的に実行できるようにする基盤となるインフラストラクチャが含まれています。 IMSql 処理サーバーは、Data Language/One (DL/I) 呼び出しの再コンパイル中に作成される動的クエリを生成し、SQL Server でストアド プロシージャを呼び出すことができます。

  4. 階層データ ストアとしての SQL Server

    データは、IMS に階層データとして保管されます。 IMSql は、SQL Server で同じモデルを使用します。 このモデルにより、IMSql はリレーショナル DB の高パフォーマンスを活用し、IMS の階層セグメントを論理的に実装できます。 また、システムはセグメントを使用して独立して拡張できます。 セグメント データは生の EBCDIC 形式で保存されるため、アプリケーション用に変換する必要はありません。 SQL サービスとしてのプラットフォーム (PaaS) を使用することで、IMSql は Azure が提供する基本的な高可用性とディザスター リカバリー機能を利用できます。

  5. DL/I 呼び出し API

    IMSql API は、Common Business-Oriented Language (COBOL) IMS DL/I 呼び出しが同等の SQL クエリに変換されるようにします。 次に、データをフェッチし、予期される形式でアプリケーション・プログラムに戻します。 また、IMSql は、階層 DB のような作成、読み取り、更新、および削除操作を実行するために、テーブル レコード上のプログラムの位置も追跡します。 IMSql は、パフォーマンス負荷の高い DL/I 呼び出しに応答するために、コンパイル中に SQL Server にストアド プロシージャを作成できます。

  6. レインコードJCL

    Raincode ジョブ制御言語 (JCL) は、z/OS JCL と互換性のあるインタープリターです。 Raincode JCL インタープリターは、JCL に組み込まれた複雑なビジネス ロジックから Azure および .NET Core プラットフォームへの移行を可能な限りスムーズにします。 Raincode JCL は、Raincode COBOL、Programming Language One (PL/I)、および ASM370 コンパイラによってコンパイルされたコードを実行するように設計されています。 ほとんどの言語で書かれたステップを簡単に実行できます。 ユーザーが作成したコードを実装することで構成および微調整できるため、バッチ スケジューリングの独自のニーズに合わせて調整できます。

  7. IMSql データ・ビュー

    IMSql は、コピーブックまたはレコード レイアウトに基づいてリレーショナル SQL ビューを定義するため、任意の Azure サービスや新しいアプリケーションからプレーンな SQL ステートメントを使用して IMS セグメントにアクセスできます。 IMSql ビューも書き込み可能であるため、最新のアプリケーションは SQL Server を介して両方の方法で IMS と対話できます。

IMSql によるデータ移行

IMSql によるデータ移行を示す図。

DB オブジェクトの移行

  • 元のIMS DBデータベース記述(DBD)が抽出され、メインフレームから転送されます。 IMSql は、DBD 情報を使用して SQL スクリプトを生成し、Azure SQL でターゲット DB とテーブルを生成します。

  • IMS DBD の各セグメントは、Azure のテーブルとして変換されます。

  • これらのテーブルは、キー・フィールド、検索フィールド、および EBCDIC で表される完全な IMS セグメント・データから構成されます。

  • IMS セグメント・ツリー構造は、Azure SQL 表の主キーと外部キーの関係とともに保持されます。

初期データロード

  • IMS DBからのデータは、メインフレームジョブと、DFSRRC00やDFSURGL0などの一般的なダウンロードユーティリティを介して抽出されます。

  • 抽出したバイナリ ファイルを Azure に転送するには、ファイル転送プロトコル (FTP) やセキュア ファイル転送プロトコル (SFTP) などの Azure Data Factory コネクタと、Unix サブシステム サービスで実行される Java ベースのソリューションを使用します。

  • IMSql には、初期データの読み込みを完了するための組み込みの読み込みユーティリティがあります。 このツールは、SQL Server 一括コピー プログラム (bcp) ユーティリティを使用します。 これにより、bcp が実行され、テーブル間で必要な参照整合性が予期される階層構造と一致することが保証されます。

  • この移行は、IMS DB からの 1 回限りのデータ・ロードに対処します。 共存と関連するデータ同期には対応していません。

移行用のデータフロー

次のデータフローは、前の図に対応しています。

  1. メインフレームの非リレーショナル・データ・ストア (IMS DB) には、DBD と実際のセグメント・データの 2 つのコンポーネントがあります。

  2. IBM ユーティリティーは、IMS DB 情報を抽出してアンロードします。

  3. DBD ファイルと対応するバイナリ・データ・ファイルは別々に生成されます。

  4. データ インジェスト:

    1. Azure Data Factory FTP コネクタは、メインフレームの IMS データセットを Azure データ ストレージにコピーします。
    2. メインフレーム IMS データ ファイルは、SFTP 経由で Azure Blob Storage にコピーされます。
    3. メインフレーム JCL は、メインフレームシステムと SFTP Blob Storage 間でデータを移動するカスタム Java ソリューションを実行するために使用されます。
  5. DBD ファイルを使用して、IMSql は必要な参照整合性を維持しながら、ターゲット DB とテーブルを作成します。

  6. データ オブジェクトが作成されると、IMSql は対応するテーブルに順番にデータを読み込みます。

  7. 移行されたすべての IMS データは、Azure SQL Managed Instance でホストされます。

  8. アプリケーション DB は、IMS オンライン処理およびバッチ処理の処理用のロー・セグメント・データで構成されています。

  9. IMS 読み取りビューと書き込みビューは、コピーブック・レイアウトに基づいて拡張されるセグメント・データから構成されます。

Raincode zBridge を使用した IMS DB データの移行

Raincode zBridge は、IMS/DB セグメントからのデータを含む Azure 上のメインフレームの非リレーショナル データへのアクセスを容易にします。 このデータは、分散アプリケーション、レポート作成、分析の目的で Azure SQL DB で使用できるようになります。

IMS セグメント・データ・ファイルは、一致する COBOL コピーブックまたは PL/I 組み込みを使用して zBridge にインポートされます。 データは、メインフレームの数値型を SQL 型に変換し、必要に応じて文字列を ASCII に変換する SQL 行として表示されます。 zBridge は、複雑なデータ構造もサポートしています。

コンポーネント

このアーキテクチャは、次の Azure クラウド サービスで構成されています。 次のセクションでは、これらのサービスとその役割について説明します。

  • Azure Logic Apps は、強力な統合ソリューションを迅速に構築できるクラウド プラットフォームです。 メインフレームのユーザーは、3270 端末とオンプレミス接続に精通しています。 Logic Apps IBM 3270 コネクタ を使用して、IBM メインフレーム アプリにアクセスし、実行できます。 移行されたシステムでは、パブリック インターネットまたは Azure ExpressRoute 経由で実装されたプライベート接続を介して Azure アプリケーションと対話します。 Microsoft Entra ID は認証を提供します。

  • Azure Virtual Network は、Azure のプライベート ネットワークの基本的な構成要素です。 Virtual Network を使用すると、Azure 仮想マシン (VM) などのさまざまな種類の Azure リソース間、およびインターネットとオンプレミス ネットワークとの、より安全な通信が可能になります。 Virtual Network は、独自のデータセンターで運用する従来のネットワークに似ていますが、スケール、可用性、分離など、Azure インフラストラクチャの利点を提供します。

  • ExpressRoute は、接続プロバイダーが提供するプライベート接続を介して、オンプレミス ネットワークを Microsoft Cloud に拡張します。 ExpressRoute を使用して、Azure や Microsoft 365 などの Microsoft Cloud サービスへの接続を確立できます。

  • Azure Virtual Machine Scale Sets は、アプリケーション管理を簡略化し、可用性を向上させる、自動化された負荷分散された VM スケーリングを提供します。

  • SQL Managed Instance は、Azure SQL サービス ポートフォリオの一部です。 これは、クラウド内の管理された、より安全な up-to日付のSQLインスタンスです。

  • Microsoft Entra ID は、クラウドベースのエンタープライズ ID およびアクセス管理サービスです。 Microsoft Entra のシングル サインオンと多要素認証は、ユーザーがサインインしてリソースにアクセスするのを支援しながら、サイバーセキュリティ攻撃から保護します。

選択肢

  • Azure VM の SQL Server は、SQL Managed Instance の代わりに使用できます。 高可用性、さまざまな Azure サービスとのシームレスな統合、基になるセキュリティ パッチとメンテナンスの管理などの利点があるため、このアーキテクチャでは SQL Managed Instance をお勧めします。

  • Virtual Machine Scale Sets の代わりに、Azure 単一 VM アーキテクチャを使用できます。 負荷とパフォーマンスの要求が一定で、スケーリングの必要がないワークロードには、単一の VM を使用できます。 このアーキテクチャでは、Virtual Machine Scale Sets を使用して一般的な IMS ワークロードを処理します。

シナリオの詳細

メインフレームのオンライントランザクション処理(OLTP)システムは、膨大な数のユーザーの数百万のトランザクションを処理できます。 IBM IMSは、企業がオンライン・トランザクション処理に使用する堅牢なクラシック・メインフレーム・トランザクション・マネージャーです。 これには、IMS DC コンポーネントと基礎となる階層型 DBMS IMS DB コンポーネントの 2 つの主要コンポーネントがあります。

IMSql は、SQL Server に基づく Azure またはオンプレミスの分散実装で IMS ベースのワークロードをホストする方法を提供します。 IMSql は、アプリ、データ、ミドルウェア コンポーネントなど、IMS ワークロードを実行するための包括的なソリューションを提供します。 階層型 (IMS DB) データ構造を SQL Server、Azure Virtual Machines 上の SQL Server、SQL Managed Instance のリレーショナル データ モデルに取り込むことができます。 IMS アプリケーション・プログラムの DL/I 呼び出し用の API が組み込まれており、データ・レイヤーを階層ワークロードを超えて、リレーショナル・データに使用されるクラウドネイティブ・アプリケーションに拡張します。

このソリューションには、次の利点があります。

  • インフラストラクチャをモダナイズし、モノリシックなメインフレームIMSワークロードに関連する高いコスト、制限、剛性を軽減します。

  • クラウドネイティブ ソリューションと DevOps を実装することで、技術的負債を削減します。

  • IMS DBデータは、AIや分析アプリケーションなど、メインフレームを使用しないクラウドベースのアプリケーションに送信されます。

考えられるユース ケース

このソリューションは、次の場合に役立つ場合があります。

  • 銀行、金融、保険、政府、小売業界では、メインフレームIMSを使用しています。 これらの組織の多くは、プライマリ OLTP およびバッチ アプリケーションを IMS DB/DC で実行しています。

  • ミッション・クリティカルなアプリケーションを移行する必要があるIBM zSeriesメインフレームのお客様。 これらのお客様は、他のオンプレミス アプリケーションとの継続性を維持し、完全な再開発の影響を回避したいと考えています。

考慮事項

これらの考慮事項では、Azure Well-Architected Framework の柱を実装します。これは、ワークロードの品質を向上させるために使用できる一連の基本原則です。 詳細については、「 Well-Architected Framework」を参照してください。

信頼性

信頼性は、アプリケーションが顧客に対して行ったコミットメントを確実に満たすことができるのに役立ちます。 詳細については、「信頼性の設計レビュー チェックリスト」を参照してください。

  • この OLTP アーキテクチャを複数のリージョンにデプロイし、geo レプリケーション データ レイヤーを組み込むことができます。

  • Azure DB サービスはゾーン冗長性をサポートしており、停止中やメンテナンス アクティビティを有効にするためにセカンダリ ノードにフェールオーバーできます。

安全

セキュリティは、意図的な攻撃や貴重なデータとシステムの誤用に対する保証を提供します。 詳細については、「セキュリティの設計レビュー チェックリスト」を参照してください。

  • ExpressRoute は、オンプレミスから Azure へのプライベートで効率的な接続を提供します。

  • Microsoft Entra ID を使用して Azure リソースを認証できます。 ロールベースのアクセス制御を使用して、アクセス許可を管理できます。

  • このソリューションでは、Azure ネットワーク セキュリティ グループを使用して、Azure リソース間のトラフィックが管理されます。 詳細については、「ネットワーク セキュリティ グループ」を参照してください。

  • Azure DB サービスでは、次のセキュリティ オプションを使用できます。

    • 保存データの暗号化
    • 動的データのマスキング
    • Always Encrypted データ

安全性の高いデータ ソリューションを設計する方法に関する一般的なガイダンスについては、「 SQL Server データベース エンジンと Azure SQL Database のセキュリティ」を参照してください。

コストの最適化

コストの最適化では、不要な経費を削減し、運用効率を向上させる方法に重点を置いています。 詳細については、「コスト最適化の設計レビュー チェックリスト」を参照してください。

  • Virtual Machine Scale Sets は、需要が少ないときにアプリケーションを実行する不要なハードウェア インスタンスの数を最小限に抑えることで、コストを最適化します。

  • SQL Managed Instance では、使用量とビジネス上の重要度に基づいてコストを最適化するために、General Purpose や Business Critical などのさまざまな価格レベルが提供されます。

  • Azure の予約 と、1 年または 3 年の契約を持つ コンピューティング向けの Azure 節約プラン は、従量課金制の価格と比較して大幅な節約になります。 多くの場合、リザーブドインスタンスサイズの柔軟性を実装することで、コストをさらに削減できます。

  • Azure ハイブリッド特典 は、クラウドでワークロードを実行するコストを大幅に削減するのに役立つライセンス特典です。 これは、オンプレミスのソフトウェア アシュアランス対応の Windows Server および SQL Server ライセンスを Azure で使用できるようにすることで機能します。

このソリューションの実装コストを見積もるには、Azure 料金計算ツールを使用します。 これは、 このソリューションのコンポーネントに基づく妥当なスケールでの見積もりです。

パフォーマンス効率

パフォーマンス効率とは、ユーザーの要求を効率的に満たすためにスケーリングするワークロードの能力を指します。 詳細については、「パフォーマンス効率の設計レビュー チェックリスト」を参照してください。

  • Virtual Machine Scale Sets は、ミッション クリティカルなオンラインおよびバッチ処理のニーズを満たすのに十分な VM が使用可能であることを保証します。

  • Blob Storage は、バックアップ、アーカイブ データ、セカンダリ データ ファイル、およびその他の非構造化デジタル オブジェクトを格納するためのスケーラブルなシステムです。

  • データベース エンジン チューニング アドバイザ は、DB を分析し、クエリのパフォーマンスを最適化するために使用できる推奨事項を作成します。 データベース エンジン チューニング アドバイザを使用すると、インデックス、インデックス付きビュー、またはテーブル パーティションの最適なセットを選択して作成できます。

  • スケーラビリティ は、PaaSの最も重要な特性の1つです。 これにより、必要なときにリソースをサービスに動的に追加できます。 SQL Database を使用すると、DB に割り当てられている CPU パワー、メモリ、入出力スループット、ストレージなどのリソースを簡単に変更できます。 SQL Managed Instance を使用すると、最小限のダウンタイムで DB にリソースを動的に追加できます。

  • In-Memory OLTP は、トランザクション処理、データ インジェスト、データ読み込み、および一時データ シナリオのパフォーマンスを最適化するために、SQL Server と SQL Database で使用できるテクノロジです。

貢献者達

Microsoft では、この記事を保持しています。 次の共同作成者がこの記事を書きました。

主要な著者:

その他の共同作成者:

  • Mick Alberts | テクニカルライター

公開されていない LinkedIn プロフィールを見るには、LinkedIn にサインインしてください。

次のステップ

詳細については、 Azure Data Engineering - Mainframe Modernization にお問い合わせください。

コンパニオン アーキテクチャを参照してください。

その他の関連リソース: