View a markdown version of this page

AWS Transform カスタムを使用して Easytrieve を最新の言語に変換する - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Transform カスタムを使用して Easytrieve を最新の言語に変換する

Shubham Roy、Subramanyam Malisetty、Harshitha Shashidhar、Amazon Web Services

概要

このパターンは、 AWS Transform カスタム language-to-language 変換を使用して、メインフレームの Broadcom Easytrieve Report Generator (EZT) ワークロードを迅速かつ低リスクで変換するための規範的なガイダンスを提供します。バッチデータ処理とレポート生成に一般的に使用される、ニッチで独自のメインフレーム EZT ワークロードをモダナイズするという課題に対処します。このパターンは、独自のツールとまれなメインフレームの専門知識に依存するコストが高く、長く、エラーが発生しやすい移行アプローチを、作成したエージェント AI 自動ソリューションに置き換えます AWS Transform。

このパターンは、EZT 変換用のすぐに使用できるカスタム変換定義を提供します。定義は複数の変換入力を使用します。

  •  AWS Transform メインフレームに を使用して抽出された EZT ビジネスルール

  • EZT プログラミングリファレンスドキュメント

  • EZT ソースコード

  • メインフレーム入出力データセット

AWS Transform カスタムは、これらの入力を使用して、Java や Python などの最新のターゲット言語で機能的に同等のアプリケーションを生成します。

変換プロセスでは、インテリジェントなテスト実行、自動デバッグ、反復修正機能を使用して、期待される出力と機能的同等性を検証します。また、継続的な学習をサポートし、カスタム変換定義が連続する変換の精度と一貫性を向上させることができます。このパターンを使用すると、組織は移行の労力とリスクを軽減し、ニッチなメインフレームの技術的負債に対処し、 で EZT ワークロードをモダナイズ AWS して、俊敏性、信頼性、セキュリティ、イノベーションを向上させることができます。

前提条件と制限

前提条件

  • アクティブな AWS アカウント 

  • 入力データと出力データを含むメインフレーム EZT ワークロード 

制限事項

スコープの制限 

  • 言語サポート – この特定の変換パターンでは、 EZT-to-Java 変換のみがサポートされています。 

  • 範囲外 – 他のメインフレームプログラミング言語の変換には、 カスタム で新しい AWS Transform カスタム変換定義が必要です。

プロセスの制限 

  • 検証の依存関係 – ベースライン出力データがないと、変換を検証できません。 

  • 独自のロジック – 高度に固有のカスタム開発ユーティリティでは、AI エージェントによって正しく解釈されるために、追加のユーザードキュメントと参考資料が必要です。

技術的な制限事項 

製品バージョン

  • AWS Transform CLI –  最新バージョン

  • Node.js – バージョン 20 以降

  • Git –  最新バージョン

  • ターゲット環境

    • Java – バージョン 17 以降

    • Spring Boot – リファクタリングされたアプリケーションのプライマリターゲットは バージョン 3.x です

    • Maven – バージョン 3.6 以降

アーキテクチャ

ソーステクノロジースタック

  • オペレーティングシステム – IBM z/OS

  • プログラミング言語 – Easytrieve、ジョブコントロール言語 (JCL)

  • データベース – IBM DB2 for z/OS、仮想ストレージアクセス方法 (VSAM)、メインフレームフラットファイル

ターゲットテクノロジースタック

  • オペレーティングシステム – Amazon Linux

  • コンピューティング – Amazon Elastic Compute Cloud (Amazon EC2)

  • プログラミング言語 – Java

  • Database Amazon Relational Database Service (Amazon RDS)

ターゲットアーキテクチャ

AWS Transform custom を使用して EZT を最新のコードに変換するためのターゲットアーキテクチャ図。

ワークフロー

このソリューションでは、 AWS Transform カスタムlanguage-to-language移行変換パターンを使用して、メインフレーム Easytrieve (EZT) アプリケーションを 4 ステップの自動ワークフローを通じて Java にモダナイズします。

ステップ 1 – Mainframe AWS Transform の にレガシーコード を指定します。

  • コードを分析する

  • 高レベルのビジネスロジックを抽出します

  • 詳細なビジネスロジックを抽出します。

ステップ 2 –  必要な入力を含むフォルダを作成します。

  • メインフレーム AWS Transform に を使用して抽出された EZT ビジネスルール 

  • EZT プログラミングリファレンスドキュメント 

  • EZT ソースコード

  • メインフレーム入出力データセット

ステップ 3 – カスタム変換定義を作成して実行する

  1. AWS Transform CLI を使用して自然言語で変換の目的を記述します。 AWS Transform custom は BRE、ソースコード、および EZT プログラミングガイドを分析し、開発者によるレビューと承認のためのカスタム変換定義を生成します。

  2. 次に、プロジェクトソースコードを使用して AWS Transform CLI を呼び出します。 AWS Transform custom は変換プランを作成し、承認時に EZT を Java に変換し、サポートファイルを生成して、実行可能 JAR を構築し、終了基準を検証します。

  3. 検証エージェントを使用して、メインフレーム出力に対する 機能同等性をテストします。セルフデバッガーエージェントは問題を自動的に修正します。最終的な成果物には、検証済みの Java コードと HTML 検証レポートが含まれます。

自動化とスケール

  • エージェント AI マルチモード実行アーキテクチャ – AWS Transform カスタムは、3 つの実行モード (対話型、インタラクティブ、完全オートメーション) を持つエージェント AI を活用して 、コード分析、リファクタリング、変換計画、テストなどの複雑な変換タスクを自動化します。

  • アダプティブラーニングフィードバックシステム – プラットフォームは、コードサンプル分析、ドキュメント解析、および開発者フィードバックとバージョニングされた変換定義の統合を通じて、継続的な学習メカニズムを実装します。

  • 同時アプリケーション処理アーキテクチャ – このシステムでは、スケーラブルなインフラストラクチャ間で複数のアプリケーション変換オペレーションを同時に分散並列実行できます。

ツール

AWS のサービス  

  • AWS Transform custom は、従来の EZT アプリケーションを最新のプログラミング言語に変換するために使用されるエージェント AI サービスです。 

  • AWS Transform はエージェンティック AI を使用して、.NET、メインフレーム、VMware ワークロードなどのレガシーワークロードのモダナイズを加速します。

  • AWS Transform メインフレームの は、 レガシー EZT アプリケーションを分析して埋め込みビジネスロジックを抽出し、ロジックの概要、頭字語の定義、構造化されたナレッジベースなど、包括的なビジネスルールドキュメントを生成するために使用されます。これらは AWS Transform カスタムの入力データとして機能します。 

  • Amazon Simple Storage Service (Amazon S3) は、あらゆる量のデータを保存、保護、取得できるクラウドベースのオブジェクトストレージサービスです。Amazon S3 は、変換定義、コードリポジトリ、および処理結果を保存するための AWS Transform カスタムのプライマリストレージサービスとして機能します。

  • AWS Identity and Access Management (IAM) は、誰を認証し、誰に使用する権限を付与するかを制御することで、 AWS リソースへのアクセスを安全に管理するのに役立ちます。IAM は、変換オペレーションのアクセス許可とアクセスコントロールを管理する AWS Transform カスタムのセキュリティフレームワークを提供します。

その他のツール

  • AWS Transform CLI は AWS Transform カスタムのコマンドラインインターフェイスであり、開発者は自然言語の会話と自動実行モードを通じてカスタムコード変換を定義、実行、管理できます。 AWS Transform custom は、コードベースのスケーラブルなモダナイゼーションのためのインタラクティブセッション (atx custom def exec) と自律変換の両方をサポートしています。

  • 自動修正アプリケーション中のブランチ保護、変更追跡、ロールバック機能に使用される Git バージョン管理システム。 

  • Java」 はこのパターンで使用されるプログラミング言語ならびに開発環境です。 

コードリポジトリ

このパターンのコードは、GitHub の Easytrieve to Modern Languages Transformation with AWS Transform Custom で入手できます。

ベストプラクティス

  • 標準化されたプロジェクト構造を確立する – 変換前に 4 つのフォルダ構造 (source-code、bre-doc、input-data、output-data) を作成し、完全性を検証し、その内容を文書化します。

  • 検証にベースラインファイルを使用する – 本番稼働用ベースライン入力ファイルを使用し、ベースライン出力とのbyte-by-byte比較を実行し、偏差に対するゼロトレランスを受け入れます。

  • 利用可能なすべてのリファレンスドキュメントを使用する  – 変換の精度を高めるには、ビジネス要件やコーディングチェックリストなど、利用可能なすべてのリファレンスドキュメントを提供します。

  • 品質向上のための入力を提供する  – AWS Transform カスタムは、変換実行から学習を自動的に抽出し (開発者のフィードバック、コードの問題)、ナレッジ項目を作成します。変換が成功するたびに、ナレッジ項目を確認し、将来の実行で使用する項目を承認します。これにより、将来の変換の品質が向上します。

エピック

タスク説明必要なスキル

メインフレーム AWS Transform 用に を設定します。

メインフレームのモダナイゼーションワークフローをサポートするために、環境と必要な AWS Identity and Access Management (IAM) アクセス許可を設定します。詳細については、 AWS ドキュメントの「メインフレームアプリケーションの変換」を参照してください。

アプリ開発者

ビジネスルール抽出 (BRE) ドキュメントを生成します。

ソース EZT または COBOL コードからビジネスロジックを抽出して、機能ドキュメントを生成します。抽出プロセスを開始し、出力を確認する方法については、 AWS Transform ドキュメントの「Extract business logic」を参照してください。

アプリ開発者
タスク説明必要なスキル

AWS Transform カスタム用にインフラストラクチャをプロビジョニングします。

安全な変換環境をホストするために必要な本番環境対応のインフラストラクチャをデプロイします。これには、Easytrieve コードを変換するために必要なツール、IAM アクセス許可、ネットワーク設定で設定されたプライベート Amazon EC2 インスタンスが含まれます。Infrastructure as Code (IaC) を使用して環境をプロビジョニングするには、Easytrieve to Modern Languages Transformation with AWS Transform Custom GitHub リポジトリのデプロイ手順に従ってください。

アプリ開発者、AWS 管理者

変換用の入力マテリアルを準備します。

  1. フォルダ構造を作成するには、次のコマンドを入力します。

    mkdir -p /root/transform-workspace/mainframe-source/{source-code,bre-doc,input-data,output-data}

    これにより、次のフォルダが作成されます。

    • source-code – EZT ソースコードのストレージ

    • bre-doc – 生成された BRE ドキュメントのストレージ

    • input-data – メインフレームバッチ実行の入力データのストレージ (EBCDIC 形式のSequential/Text/DB2 ファイル)

    • output-data –  バッチ実行後のメインフレーム内の出力データのストレージ (EBCDIC 形式のSequential/Text/DB2 ファイル)

  2. Git リポジトリを初期化するには、次のコマンドを入力します。

    cd /root/transform-workspace/mainframe-source/source-code git init git add . git commit -m "Initial commit"
アプリ開発者
タスク説明必要なスキル

変換定義を作成します。

以下の手順に従って、機能検証による EZT から Java への変換のカスタム変換定義を作成します。

  1. このパターンのコードリポジトリに移動し、documentsフォルダの内容をコピー します。これには、transformation_definition.mdsummaries.md、および EZT コーディングガイドを含む document_referencesフォルダを含める必要があります。

  2. CLI AWS Transform でそのコンテンツを任意の場所にアップロードし、次のステップで使用するパスの場所を書き留めます。

  3. atx コマンドを使用して CLI AWS Transform から を呼び出します。

  4. CLI でこのプロンプトを指定する: パス <path to content from step#2> で利用可能な変換定義ファイルを使用してカスタム変換を作成する AWS Transform と、EZT to Java 変換の新しいカスタム変換定義が作成されます。

  5. 変換定義を確認し、必要に応じて変更を加えます。

アプリ開発者

変換定義を発行します。

変換定義を確認して検証したら、自然言語プロンプトを使用してカスタムレジストリに AWS Transform 発行し、Easytrieve-to-Java-Migration などの定義名を指定できます。

アプリ開発者
タスク説明必要なスキル

変換検証の概要を確認します。

カスタム変換を実行する AWS Transform 前に、メインフレームバッチジョブの実行前にキャプチャされた必要なデータファイルがフォルダに含まれていることを確認します input-data 。メインフレームバッチジョブの実行後、output-dataフォルダが結果のファイルをキャプチャしていることを確認します。すべてのファイルは、実行要件に基づいて EBCDIC エンコードを使用してSequential/Text/DB2 形式になります。

  • 入力データをフォルダに配置する input-data/ 

  • ベースライン出力を output-data/ フォルダに配置する

アプリ開発者

カスタム変換ジョブを実行します。

AWS Transform CLI コマンドを実行し、非インタラクティブまたはインタラクティブオプションを選択します。

:# Non-interactive execution (fully autonomous): atx custom def exec \ --transformation-name "Easytrieve-to-Java-Migration" \ --code-repository-path ~/root/transform-workspace/mainframe-source/source-code \ --build-command "mvn clean install" \ --non-interactive \ --trust-all-tools \ # Interactive execution (with human oversight): atx custom def exec \ -n "Easytrieve-to-Java-Migration" \ -p ~/root/transform-workspace/mainframe-source/source-code \ -c "mvn clean install" # Resume interrupted execution: atx -resume # OR atx --conversation-id <conversation-id>

AWS Transform は、変換の実行中にビルド/テストコマンドを使用して を自動的に検証します。

アプリ開発者
タスク説明必要なスキル

変換検証の概要を確認します。

  1. がビルドコマンドとテストコマンドを使用してコードを自動的に検証 AWS Transform するのを待ちます。

  2. 最新のセッションを検索するには、次のコマンドを入力します。

    LATEST_SESSION=$(ls -t ~/.aws/atx/custom/ | head -1
  3. 検証の概要を表示するには、次のコマンドを入力します。

    cat ~/.aws/atx/custom/$LATEST_SESSION/artifacts/validation_summary.md
  4. 全体的なステータスを確認するには、次のコマンドを入力します。

    grep "OVERALL STATUS" ~/.aws/atx/custom/$LATEST_SESSION/artifacts/validation_summary.md
アプリ開発者

検証レポートにアクセスします。

以下のコマンドを入力して、詳細な検証アーティファクトを確認します。

# Full validation report cat ~/.aws/atx/custom/$LATEST_SESSION/artifacts/validation_report.html # Generated code location ls ~/.aws/atx/custom/$LATEST_SESSION/generated/ # Execution logs cat ~/.aws/atx/custom/$LATEST_SESSION/logs/execution.log
アプリ開発者

継続的な学習のためにナレッジ項目を有効にします。

提案されたナレッジ項目を永続的な設定に昇格させることで、将来の変換精度を向上させます。変換後、エージェントは識別されたパターンとマッピングルールをローカルセッションディレクトリに保存します。これらの学習した項目を確認して適用するには、Amazon EC2 インスタンスで次のコマンドを実行します。

# List all knowledge items for a specific transformation definition atx custom def list-ki -n <transformation-name> # Retrieve the details of a specific knowledge item atx custom def get-ki -n <transformation-name> --id <id> # Update the status of a knowledge item (ENABLED or DISABLED) atx custom def update-ki-status -n <transformation-name> --id <id> --status ENABLED # Update the knowledge item configuration to enable auto-approval atx custom def update-ki-config -n <transformation-name> --auto-enabled TRUE
アプリデベロッパー

トラブルシューティング

問題ソリューション

入力パスと出力パスの設定

入力ファイルが読み取られていないか、出力ファイルが正しく書き込まれていません。 

入力ファイルが保存される完全なディレクトリパスを指定し、出力を書き込む場所を明確に指定します。これらのディレクトリに適切なアクセス許可が設定されていることを確認します。 

ベストプラクティスには、相対パスではなく絶対パスを使用してあいまいさを回避し、指定されたすべてのパスが適切な読み取り/書き込みアクセス許可で存在することを確認することが含まれます。 

中断された実行の再開

実行が中断されたか、停止した場所から続行する必要があります

CLI コマンドで会話 ID を指定することで、中断した場所から実行を再開できます。

前回の実行試行のログで会話 ID を見つけます。  

メモリ制約の解決

実行中にメモリ不足エラーが発生します。

現在のインメモリ JVM サイズを共有し、この情報に基づいてメモリ割り当てを増やす AWS Transform ように に依頼できます。この調整は、より大きな処理要件に対応するのに役立ちます。

調整後もメモリ制約が続く場合は、大きなジョブを小さなバッチに分割することを検討してください。 

出力ファイルの不一致に対処する

出力ファイルが期待と一致しず、これ以上の変更ができない AWS Transform ことを示します。

現在の出力が正しくない理由を説明する具体的なフィードバックと技術的な理由を提供します。要件をサポートするために、追加の技術またはビジネスドキュメントを含めます。この詳細なコンテキストは AWS Transform 、コードを修正して適切な出力ファイルを生成するのに役立ちます。 

  • 予想される出力と実際の出力を比較する具体例 

  • 関連するドキュメントまたは標準への参照

  • 不一致によるビジネスへの影響を明確に説明する  

関連リソース

アタッチメント

このドキュメントに関連する追加コンテンツにアクセスするには、次のファイルを解凍してください。「attachment.zip