このアーキテクチャでは、Raincode の IMSql を使用して、.NET および SQL Server 上の IMS Database Manager (IMS DB) および IMS Transaction Manager (IMS TM) システムを、仮想マシンを使用するという最も簡単な方法でリホストする方法を示します。 レガシ アプリケーションを再コンパイルして .NET をターゲットにし、メインフレーム上の IMS と対話するのと同じ方法で IMSql と対話できます。 IMSql は、ビジネス ロジックを完全に保持しながら、メインフレーム アプリケーションを Azure ネイティブのアーキテクチャに移行します。
アーキテクチャ
IBM z/OS アーキテクチャ (移行前)
このアーキテクチャの Visio ファイルをダウンロードします。
データフロー
A. ユーザーは、TN3270 や HTTPS などのプロトコルを使用して、TCP/IP を介して接続します。
B. メインフレームへの入力では、標準のメインフレーム通信プロトコルが使用されます。
C. アプリケーションがデータを受け取ります。 これらのアプリケーションは、バッチまたはオンライン システムのいずれかです。
D. COBOL、PL/I、アセンブラー、またはその他の互換性のある言語が、有効な環境で実行されます。
E. データベース システム (一般的に階層型/ネットワーク システムおよびリレーショナル システム) でデータが格納されます。
F. プログラムの実行、I/O 操作、エラー検出、環境内の保護といった一般的なサービスによってサポートが提供されます。
G. ミドルウェアとユーティリティによって、環境内のテープ ストレージ、キュー、出力、Web サービスなどのサービスが管理されます。
H. オペレーティング システムがパーティションで実行されます。
I. パーティションは、個別のワークロードを実行し、環境内で作業の種類を分離します。
Azure アーキテクチャ (移行後)
このアーキテクチャの Visio ファイルをダウンロードします。
データフロー
- IBM 3270 ターミナル エミュレーターは、IMSql ターミナル サーバーを介して変更せずに Azure にデプロイされた IMS TM アプリケーションに接続します。
- JCL で記述されたバッチ プロセスは、Raincode JCL インタープリターを実行する一時的な Azure コンテナー インスタンスを介して変更されずに実行されます。 コンパイル済みレガシ プログラムは、標準 IMS API を使用して IMS DB にアクセスします。 Raincode JCL では、そのカタログを任意のファイルベースのストレージに保管できます。
- IMS データの読み取り/書き込み SQL Server ビューを使用すると、最新のアプリケーションやビジネス インテリジェンス (Power BI など) が IMS アプリケーションと直接通信でき、データ構造や文字エンコードなどのメインフレーム要素が抽象化されます。
- Raincode Console には、IMSql 用の Web ベースの管理環境が用意されています。
- SQL Server Service Broker は、IMSql コンポーネントの通信バックボーンです。
コンポーネント
- Microsoft Azure Virtual Network は、Azure 内のプライベート ネットワークの基本的な構成要素です。 Virtual Network を使用すると、Virtual Machines (VM) などの多くの種類の Azure リソースが、相互に、またインターネットやオンプレミスのネットワークとセキュリティを強化しながら通信できます。 仮想ネットワークは、自社のデータセンターで運用する従来のネットワークに似ていますが、スケール、可用性、分離などの Azure インフラストラクチャの利点の多くが提供されます。
- Azure Virtual Machine Scale Sets では、アプリケーションの管理を簡素化し、可用性を向上させる、自動化された負荷分散 VM スケーリングが提供されます。
- Azure SQL サービス ポートフォリオの一部である Azure SQL Managed Instance は、安全性が高くかつ常に最新のクラウド内マネージド SQL インスタンスです。
代替
SQL Managed Instance の代わりに、Azure 仮想マシンで SQL Server を使用できます。 高可用性、さまざまな Azure サービスとのシームレスな統合、基になるセキュリティ パッチとメンテナンスの管理などの利点があるため、このアーキテクチャでは SQL Managed Instance をお勧めします。
Virtual Machine Scale Sets の代わりに、Azure 単一 VM アーキテクチャを使用できます。 負荷とパフォーマンスの需要が一定であり、スケーリングの必要がないワークロードには、単一の VM を使用することをお勧めします。 このアーキテクチャでは、Virtual Machine Scale Sets を使用して一般的な IMS ワークロードを処理します。
シナリオの詳細
このアーキテクチャでは、重要な IMS の機能を備えるメインフレーム ワークロードを Azure にシームレスにリホストする方法について説明します。 既存のアプリケーションを移動または変更する必要はありません。 このアーキテクチャでは、IMSql と Azure SQL が使用されます。
- Raincode コンパイラでは、.NET 用に 100% のスレッド セーフのマネージド コードが生成されます。 .NET アセンブリは動的に読み込まれ、IMSql 処理サーバーによって呼び出されます。
- IMSql は本質的に非変換です。 ソース (COBOL、PL/I) をそのまま保持します。 IMS 固有の CBLTDLI および PLITDLI 呼び出しおよび EXEC DLI ステートメントは変更されません。 この機能により、結果として得られるシステムの最適な保守容易性が保証されます。 これは IMS DB データに拡張されます。データは、変更、クレンジング、正規化なしで、そのまま一括でインポートされます。
- IMSql では、堅牢で汎用性が高く、スケーラブルな SQL Server をデータベース、トランザクション プロセッサ、実行プラットフォームとして使用します。
- IMSql は次の 3 つのモードで動作します。
- オンライン
- Batch
- 読み込みとアンロード (データ移行の場合、またはシーケンシャル ファイルを生成または使用する JCL の場合)
- メインフレームでは、データベース記述 (DBD) とプログラム仕様ブロック (PSB) がコンパイルされ、データベースとプログラムの説明が作成されます。 同様に、IMSql では、DBD と PSB は XML 表現にコンパイルされます。 この表現により、IMS 対応プログラムは、それらに関連するデータベース セグメントを判別できます。 また、データベース スキーマやストアド プロシージャなど、IMSql のさまざまなサーバー側成果物の生成も促進されます。
考えられるユース ケース
- インフラストラクチャを最新化し、IMS (より一般的にはメインフレーム) 関連の高いコスト、制限、柔軟性不足を排除する。
- クラウドネイティブ ソリューションを実装し、DevOps 戦略をサポートすることで、技術的負債を削減する。
- 完全な再開発という副作用を伴うことなく、IMS のワークロードをクラウドに移行する。
- その他のオンプレミス アプリケーションとの継続性を維持しながら、ビジネスクリティカルな IMS アプリケーションを移行する。
考慮事項
これらの考慮事項は、Azure Well-Architected Framework の柱を実装します。これは、ワークロードの品質を向上させるために使用できる一連の基本原則です。 詳細については、「Microsoft Azure Well-Architected Framework」を参照してください。
[信頼性]
信頼性により、顧客に確約したことをアプリケーションで確実に満たせるようにします。 詳細については、「信頼性
- この OLTP アーキテクチャを複数のリージョンに展開して、geo レプリケーション データ レイヤーを組み込むことができます。
- Azure データベース サービスではゾーン冗長がサポートされているため、障害の発生中や、メンテナンス アクティビティを有効にするために、セカンダリ ノードにフェールオーバーすることができます。
セキュリティ
セキュリティは、重要なデータやシステムの意図的な攻撃や悪用に対する保証を提供します。 詳細については、「セキュリティ
このソリューションでは、Azure ネットワーク セキュリティ グループを使用して、Azure リソース間のトラフィックが管理されます。 詳細については、「ネットワーク セキュリティ グループ」を参照してください。
Azure データベース サービスで使用できるセキュリティ オプションは次のとおりです。
- 保存データの暗号化
- 動的データ マスク
- Always Encrypted データ
高度にセキュリティで保護された SQL ソリューションの設計に関する一般的なガイダンスについては、「Azure のセキュリティのレコメンデーション」を参照してください。
コストの最適化
コストの最適化は、不要な費用を削減し、運用効率を向上させる方法を検討することです。 詳細については、「コストの最適化
- Azure では、Windows VM で実行することによってコストが最適化されます。 使用していないときには VM をオフにできるほか、既知の使用パターンに合わせてスケジュールを記述できます。 Azure では、リソースの種類の適切な数を特定し、時間の経過に伴う支出を分析し、超過出費のないようビジネス ニーズに合わせてスケーリングして、不要なコストを抑えることができます。
- SQL Managed Instance では、使用量とビジネス上の重要度に基づいてコストを最適化するために、General Purpose や Business Critical などのさまざまな価格レベルが提供されます。
- Azure の予約とコンピューティング用の Azure 節約プランを 1 年または 3 年契約で使用して、従量課金制の料金を大幅に削減します。
このソリューションの実装コストを見積もるには、Azure 料金計算ツールを使用します。
共同作成者
この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。
プリンシパル作成者:
- Bhaskar Bandam | シニア プログラム マネージャー
その他の共同作成者:
- Mick Alberts | テクニカル ライター
パブリックでない LinkedIn プロファイルを表示するには、LinkedIn にサインインします。
次のステップ
詳細については、legacy2azure@microsoft.com にお問い合わせください。
関連リソース
コンパニオン アーキテクチャを参照してください。
その他の関連リソース: