編集

次の方法で共有


Raincode IMSql を使用して Azure 上で IMS DC および IMS DB をリホストする

Azure 仮想マシン スケール セット
Azure Logic Apps
Azure SQL Managed Instance
Azure Virtual Network
Azure ExpressRoute

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

移行前の IMS DB/DC ワークロード アーキテクチャ

移行前の IMS DB/DC ワークロード アーキテクチャを示す図。

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

データフロー

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

Azure での IMSql アーキテクチャ

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

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

ワークフロー

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

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

  2. SQL Server Service Broker

    メインフレームでは、IMS DC により、制御領域でメッセージを送信および処理することによって、ユーザー ターミナルとアプリケーション プログラムの間で通信レイヤーが調整されます。 リホスト後は、SQL Server Service Broker によって、この非同期の通信レイヤーが調整されます。 Service Broker は、そのメッセージ配信フレームワークを通じて通信を支援し、メッセージを個別の処理サーバー、現在のユーザー、それらのトランザクション処理にスケールアウトします。

  3. IMSql Processing Server

    Processing Server では、Raincode で再コンパイルした IMS プログラムのコードを .NET Framework または .NET Core で実行します。 これには、再コンパイルしたプログラムを、同等の機能を保ったまま効率的に実行させるための基礎インフラストラクチャが含まれています。 IMSql Processing Server では、動的クエリを生成して、DL/I 呼び出しの再コンパイル中に作成された SQL ストアド プロシージャを呼び出すことができます。

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

    データは階層型データとして IMS に格納されます。 SQL Server でも IMSql は同じモデルを使用します。 このモデルにより IMSql では、リレーショナル データベースのハイ パフォーマンスを利用して、IMS の階層型セグメントを論理的に実装できます。 セグメントとは別にシステムをスケーリングすることもできます。 セグメント データは生の EBCDIC 形式で格納されるため、アプリケーション用に変換する必要はありません。 SQL PaaS (サービスとしてのプラットフォーム) を使用することにより、IMSql では、Azure から提供される基本的な HA/DR 機能を利用できます。

  5. DL/I 呼び出し API

    IMSql API は、COBOL IMS DL/I 呼び出しが等価の SQL クエリに変換されるようにします。 次に、データを取得し、必要な形式でアプリケーション プログラムに返します。 IMSql では、階層型 DB のように、テーブル レコード上でプログラムの位置を追跡して、作成、読み取り、更新、削除 (CRUD) 操作を実行します。 IMSql では、高いパフォーマンスが要求される DL/I 呼び出しに応答するために、コンパイル中に SQL ストアド プロシージャを作成することができます。

  6. Raincode JCL

    Raincode ジョブ制御言語 (JCL) は、z/OS JCL と互換性のあるインタープリターです。 Raincode JCL インタープリターは、JCL に埋め込まれた複雑なビジネス ロジックを Azure および .NET Core プラットフォームに移行する作業をできる限りスムーズにします。 Raincode JCL は、Raincode COBOL、PL/I、および ASM370 コンパイラによってコンパイルされたコードを実行するように設計されています。 ほぼすべての言語で記述されたステップを簡単に実行できます。 ユーザーが記述したコードを使用して構成および微調整できるため、バッチ スケジュールの独自のニーズに適応させることができます。

  7. IMSql データ ビュー

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

IMSql を介したデータ移行

IMSql を介したデータ移行を示す図。

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

データベース オブジェクトの移行

  • 元の IMS DB データベース記述 (DBD) がメインフレームから抽出および転送されます。 IMSql では、この DBD 情報を使用して、ターゲット データベースとテーブルを Azure SQL で生成するための SQL スクリプトを生成します。
  • IMS DBD の各セグメントが Azure のテーブルとして変換されます。
  • テーブルは、キー フィールド、検索フィールド、EBCDIC で表された完全な IMS セグメント データで構成されます。
  • IMS セグメントのツリー構造は、主キーと外部キーの関係を使用して Azure SQL テーブルに保持されます。

初期データ読み込み

  • メインフレーム ジョブと、DFSRRC00 や DFSURGL0 などの広く利用可能なダウンロード ユーティリティによって、IMS DB からデータが抽出されます。
  • 抽出されたバイナリ ファイルを Azure に転送するには、FTP や SFTP などの Azure Data Factory コネクタと、Unix Subsystem Services (USS) 上で動作する Java ベースのソリューションを使用します。
  • IMSql には、初期データ読み込みを完了するための組み込みの読み込みユーティリティがあります。 このツールでは、SQL Server の一括コピー プログラム (bcp) ユーティリティを使用します。 これにより、bcp 実行と、テーブル間の必要な参照整合性が、期待される階層構造に一致することが保証されます。
  • この移行で扱われるのは IMS DB からの 1 回限りのデータ読み込みであり、共存とそれに関連するデータ同期は扱われません。

移行のためのデータフロー

  1. メインフレームの非リレーショナル データストア (IMS DB) には、DBD と実セグメント データの 2 つのコンポーネントがあります。
  2. IBM のユーティリティによって IMS DB 情報が抽出およびアンロードされます。
  3. DBD ファイルと、対応するバイナリ データ ファイル群は別々に生成されます。
  4. データ インジェスト:
    1. Data Factory FTP コネクタによって、メインフレーム IMS データセットが Azure データ ストレージにコピーされます。
    2. メインフレーム IMS データ ファイルが、SFTP 経由で Azure Blob Storage にコピーされます。
    3. メインフレーム JCL を使用して、メインフレーム システムと SFTP Azure Blob Storage の間でデータを移動するカスタム Java ソリューションが実行されます。
  5. IMSql によって、必要な参照整合性を備えたターゲット DB とテーブルが DBD ファイルを使用して作成されます。
  6. データ オブジェクトが作成されると、IMSql によって、対応するテーブルにデータが順番に読み込まれます。
  7. 移行されたすべての IMS データは Azure SQL Managed Instance でホストされます。
  8. アプリケーション データベースは、IMS オンラインおよびバッチ処理を処理するための生セグメント データで構成されます。
  9. IMS の読み取り/書き込みビューは、コピーブック レイアウトに基づいて拡張されたセグメント データで構成されます。

コンポーネント

  • Azure Logic Apps を使用すると、強力な統合ソリューションをすばやく構築できます。 メインフレーム ユーザーは、3270 ターミナルとオンプレミスの接続に精通しています。 Logic Apps IBM 3270 コネクタを使用して IBM メインフレーム アプリにアクセスし、実行することができます。 移行されたシステムでは、Azure アプリケーションとのやり取りは、パブリック インターネットを介して、または Azure ExpressRoute 経由で実装されたプライベート接続を介して行われます。 Microsoft Entra ID は認証を提供します。
  • Azure Virtual Network は、Azure のプライベート ネットワークの基本的な構成要素です。 Virtual Network を使用すると、Azure Virtual Machines (VM) などの多くの種類の Azure リソースが、相互に、またインターネットやオンプレミスのネットワークと通信でき、すべてのセキュリティが強化されます。 仮想ネットワークは、自社のデータセンターで運用する従来のネットワークに似ていますが、スケール、可用性、分離などの Azure インフラストラクチャの利点の多くをもたらします。
  • Azure ExpressRoute を利用すると、接続プロバイダーが提供するプライベート接続を介して、オンプレミスのネットワークを Microsoft Cloud に拡張できます。 ExpressRoute を使用すると、Azure や Office 365 などの Microsoft Cloud サービスへの接続を確立できます。
  • Azure Virtual Machine Scale Sets では、アプリケーションの管理を簡素化し、可用性を向上させる、自動化された負荷分散 VM スケーリングが提供されます。
  • Azure SQL サービス ポートフォリオの一部である SQL Managed Instance は、安全性が高くかつ常に最新のクラウド内マネージド SQL インスタンスです。
  • Microsoft Entra ID は、クラウドベースのエンタープライズ ID およびアクセス管理サービスです。 Microsoft Entra シングル サインオンと多要素認証は、サイバーセキュリティ攻撃を防ぎながら、ユーザーがサインインしてリソースにアクセスするのに役立ちます。

代替

  • SQL Managed Instance の代わりに、Azure 仮想マシンで SQL Server を使用できます。 高可用性、さまざまな 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 を実装することによって、技術的負債を削減します。
  • AI や分析アプリケーションなど、メインフレーム以外の、またクラウドベースのアプリケーションに IMS DB データを提供します。

考えられるユース ケース

  • メインフレーム IMS を使用している銀行、金融、保険、政府機関、小売の各業界。 これらの組織の多くは、主力の OLTP およびバッチ アプリケーションを IMS DB/DC で実行しています。
  • 他のオンプレミス アプリケーションとの継続性を維持し、完全な再開発の副作用を避けながら、ミッション クリティカルなアプリケーションを移行する必要がある IBM zSeries メインフレームの顧客。

考慮事項

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

[信頼性]

信頼性により、顧客に確約したことをアプリケーションで確実に満たせるようにします。 詳細については、「信頼性設計レビューチェックリスト」を参照してください。

  • この OLTP アーキテクチャを複数のリージョンに展開して、geo レプリケーション データ レイヤーを組み込むことができます。
  • Azure データベース サービスではゾーン冗長がサポートされているため、障害の発生中や、メンテナンス アクティビティを有効にするために、セカンダリ ノードにフェールオーバーすることができます。

セキュリティ

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

  • ExpressRoute には、オンプレミスから Azure へのプライベートで効率的な接続が用意されています。
  • Microsoft Entra ID を使用して Azure リソースを認証できます。 ロールベースのアクセス制御を使用してアクセス許可を管理できます。
  • このソリューションでは、Azure ネットワーク セキュリティ グループを使用して、Azure リソース間のトラフィックが管理されます。 詳細については、「ネットワーク セキュリティ グループ」を参照してください。
  • Azure データベース サービスで使用できるセキュリティ オプションは次のとおりです。
    • 保存データの暗号化
    • 動的データ マスク
    • Always Encrypted データ

高度にセキュリティで保護されたデータ ソリューションの設計に関する一般的なガイダンスについては、「Azure のセキュリティのレコメンデーション」を参照してください。

コストの最適化

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

  • Virtual Machine Scale Sets は、アプリケーションを実行する不要なハードウェア インスタンスの数を低需要時は最小限に抑えることによって、コストを最適化します。
  • SQL Managed Instance では、使用量とビジネス上の重要度に基づいてコストを最適化するために、General Purpose や Business Critical などのさまざまな価格レベルが提供されます。
  • Azure Reservationsコンピューティング用の Azure 節約プランを 1 年または 3 年契約で使用して、従量課金制の料金を大幅に削減します。 多くの場合、予約インスタンス サイズの柔軟性を実装することで、コストをさらに削減できます。
  • Azure ハイブリッド特典は、クラウドでワークロードを実行するコストを大幅に削減できるライセンス特典です。 これは、オンプレミスのソフトウェア アシュアランス対応の Windows Server および SQL Server ライセンスを Azure で使用できるようにすることで機能します。

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

パフォーマンス効率

パフォーマンス効率は、効率的な方法でユーザーの要求に合わせてワークロードをスケーリングする機能です。 詳細については、「パフォーマンス効率設計レビュー チェックリスト」を参照してください。

  • Virtual Machine Scale Sets により、ミッション クリティカルなオンラインおよびバッチ処理のニーズを満たすのに十分な VM が利用可能であることが保証されます。
  • Azure Blob Storage は、バックアップ、アーカイブ データ、セカンダリ データ ファイル、およびその他の非構造化デジタル オブジェクトを格納するためのスケーラブルなシステムです。
  • データベース エンジン チューニング アドバイザーは、データベースを分析し、クエリ パフォーマンスを最適化する手助けをします。 データベース エンジン チューニング アドバイザーを使用して、インデックス、インデックス付きビュー、またはテーブル パーティション分割の最適な組み合わせを選択および作成できます。
  • スケーラビリティは PaaS の最も重要な特性の 1 つです。 これにより、必要に応じてサービスにリソースを動的に追加できます。 Azure SQL データベースを使用すると、データベースに割り当てられたリソース (CPU パワー、メモリ、I/O スループット、ストレージ) を簡単に変更できます。 SQL Managed Instance を使用すると、最小限のダウンタイムでデータベースにリソースを動的に追加できます。
  • インメモリ OLTP は、SQL Server および SQL Database で、トランザクション処理のパフォーマンスの最適化、データ インジェスト、データの読み込み、一時的なデータのシナリオに使用できるテクノロジです。

共同作成者

この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。

プリンシパルの作成者:

その他の共同作成者:

パブリックでない LinkedIn プロファイルを表示するには、LinkedIn にサインインします。

次のステップ

詳細については、Azure Data Engineering - メインフレームの最新化までお問い合わせください。

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

その他の関連リソース: