Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Dojo 20240830 COBOL to Java on Z
Search
YasuIchikawa
August 30, 2024
Technology
0
280
Dojo 20240830 COBOL to Java on Z
2024/8/30
Dojo
COBOLからJavaに変換してみたZ
資料
YasuIchikawa
August 30, 2024
Tweet
Share
More Decks by YasuIchikawa
See All by YasuIchikawa
Dojo 20240430 COBOL on Z
ichikawayasuhisa
0
260
Dojo 20231226 Ansible on IBM Z
ichikawayasuhisa
1
280
Dojo 20230523 .Net on Mainframe
ichikawayasuhisa
0
160
Dojo 20221130 Searching famous Malware
ichikawayasuhisa
0
260
Other Decks in Technology
See All in Technology
初心者に Vue.js を 教えるには
tsukuha
5
390
ガバメントクラウド単独利用方式におけるIaC活用
techniczna
3
260
ABEMA のコンテンツ制作を最適化!生成 AI x クラウド映像編集システム / abema-ai-editor
cyberagentdevelopers
PRO
1
180
Amazon_CloudWatch_ログ異常検出_導入ガイド
tsujiba
4
1.5k
チームを主語にしてみる / Making "Team" the Subject
ar_tama
4
300
プロダクト成長に対応するプラットフォーム戦略:Authleteによる共通認証基盤の移行事例 / Building an authentication platform using Authlete and AWS
kakehashi
1
150
なんで、私がAWS Heroに!? 〜社外の広い世界に一歩踏み出そう〜
minorun365
PRO
6
1.1k
大規模データ基盤チームのオンプレTiDB運用への挑戦 / dpu-tidb
cyberagentdevelopers
PRO
1
110
Gradle: The Build System That Loves To Hate You
aurimas
2
140
Automated Promptingを目指すその前に / Before we can aim for Automated Prompting
rkaga
0
110
Vueで Webコンポーネントを作って Reactで使う / 20241030-cloudsign-vuefes_after_night
bengo4com
4
2.5k
クライアントサイドでよく使われる Debounce処理 をサーバサイドで3回実装した話
yoshiori
1
140
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.1k
A Philosophy of Restraint
colly
203
16k
Building an army of robots
kneath
302
42k
Music & Morning Musume
bryan
46
6.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
How to Ace a Technical Interview
jacobian
275
23k
BBQ
matthewcrist
85
9.3k
The Cult of Friendly URLs
andyhume
78
6k
Agile that works and the tools we love
rasmusluckow
327
21k
Typedesign – Prime Four
hannesfritz
39
2.4k
Code Reviewing Like a Champion
maltzj
519
39k
Rails Girls Zürich Keynote
gr2m
93
13k
Transcript
日本アイ・ビー・エム株式会社 テクノロジー事業本部 カスタマーサクセス カスタマーサクセスマネージャー 市川 泰久 COBOLからJavaに変換してみたZ
免責事項 セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。それらは情報提供の目的のみで提供されており、 いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、またIBM製品やサービスがお客様に適用ある特定の法令に適合することを保証す るものでもありません。本講演資料に含まれている情報については、完全性と正確性を期するよう努めておりますが、「現状のまま」提供され、明示または黙示にかか わらず、商業性、特定の目的への適合性、非侵害性を含め、いかなる保証も伴わないものとします。本講演資料またはその他の資料の使用によって、あるいはその他の 関連によって、いかなる損害が生じた場合も、IBMは責任を負わないものとします。 本講演資料で言及されるIBM製品、プログラム、またはサービスは、IBMがビジネ スを行っているすべての国・地域でご提供可能なわけではありません。本講演資料で言及される将来の展望(製品リリース日付や製品機能を含む)は、市場機会または その他の要因に基づいてIBM独自の決定権をもっていつでも変更できるものとし、将来の製品または機能が使用可能になること、もしくは特定の結果を確約することを 意図するものではありません。本講演資料は、言及される
IBM製品またはサービスに適用ある契約条件を変更するものでも、追加の表明または保証を意図するものでも ありません。 本講演資料に含まれている内容は、参加者の活動によって特定の結果が生じると述べる、または暗示することを意図したものでも、またそのような結果を生むものでも ありません。 ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラミングの量、入出力構成、ストレー ジ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、個々のユーザーがここで述べられているものと同様の 結果を得られると確約するものではありません。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。 IBM、IBM ロゴ、ibm.com、Watsonx Code Assistant for Z、IBM Application Discovery and Delivery Intelligence、IBM z/OSは、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご 覧ください。 Red Hat、Red Hat Enterprise Linux(RHEL) は、Red Hat Inc.または子会社の米国およびその他の国における商標または登録商標です。 Windows、Visual Studioは,米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。 Java およびすべての Java 関連の商標およびロゴは Oracle やその関連会社の米国およびその他の国における商標または登録商標です。 Linux(R)は、米国およびその他の国におけるLinus Torvaldsの登録商標です。 その他記載の会社名、製品名は、それぞれの会社の商標または登録商標です。
写真撮影 動画撮影 資料公開 SNS拡散 ◯ ◯ ◯ ◯ セッション受講における注意事項 セッション中に迷惑行為が発覚した場合は、強制退出、セッション中止などの措置を講じます
氏名:市川泰久 会社:日本アイ・ビー・エム 所属組織:カスタマーサクセス 経歴:IT業界26年(主にサポート) 役割:カスタマーサクセスマネージャー 自己紹介
目的 • watsonx Code Assistant for Zの解説とデモ ゴール • watsonx
Code Assistant for Zを理解する • 必要な情報がどこで得られるかがわかる このセッションについて
IBM® watsonx Code Assistant for Zは、メインフレーム・アプリケーションのモダナ イゼーションを、従来の製品よりも低コスト、低リスクで加速できるように構築された、 生成AIを活用した製品です。 watsonx Code
Assistant for Zは、 (1) アプリケーションの検出と分析(理解) (2) コードの説明 (3) 最適化 (4) 自動でのコード・リファクタリング (5) COBOLからJavaへの変換 (6) テストの自動生成(検証) など、エンドツーエンドのアプリケーション開発者向けのライフサイクルを提供します。 開発者は、アプリケーションの中から選択した要素を自動的にリファクタリングして COBOLでモダナイズを継続したり、高度にチューニングされた先進の大規模言語モデ ルを使用した生成AIを活用して、コードをJavaに選択的に変換したりできます。 1. 概要
ADDI (IBM Application Discovery and Delivery Intelligence)により、 メインフレーム・アプリケーションの理解を深め、その相互関係や依存関係を 視覚化します。コードの説明に生成AIを活用して、COBOLアプリケーション のドキュメントの自動作成や、新しいプログラマーの加入を支援します。
(1) アプリケーションの検出と分析(理解)
watsonx Code Assistant for Zのコード説明機能を使用すると、開発者やシ ステム プログラマーはボタンをクリックするだけで AI が生成した説明を取 得できます。
(2) コードの説明 コードのビジネス目的の要約: RAEXPORT プログラムは、顧客データを DB2 データベースの CUSTOMER テーブルに 挿入するために使用されます。プログラムは COBOL アプリケーションから入力を受け 取り、SQL ステートメントを使用してデータベースに挿入します。 入力レコードと出力レコード: プログラムへの入力は、名、姓、生年月日、家名、家番号、郵便番号、携帯電話、自宅 の電話、電子メール アドレスなどの顧客データを含む COBOL アプリケーションです。 出力は、顧客データを CUSTOMER テーブルに挿入する SQL ステートメントです。 コード ロジックのフリーテキスト要約: プログラムは、WS-ABSTIME、WS-TIME、WS-DATE などの作業用ストレージ変数を 初期化することから開始します。次に、顧客データをデータベースに挿入するための SQL ステートメントを設定します。LGAC-NCS 変数が ON に設定されている場合、プ ログラムは CUSTOMERNUMBER フィールドを主キーとして使用してデータを挿入しま す。 LGAC-NCS 変数が OFF に設定されている場合、プログラムは DEFAULT キーワー ドを使用してデータを挿入し、一意の顧客番号を生成します。 SQL ステートメントが実行された後、プログラムは SQLCODE をチェックして、挿入が 成功したかどうかを判断します。成功しなかった場合、プログラムは CICS LINK コマン ドを使用して LGSTSQ プログラムにエラー メッセージを書き込みます。次に、プログ ラムは COMMAREA の長さをチェックして、追加のエラー情報があるかどうかを判断し ます。エラー情報がある場合、プログラムは CICS LINK コマンドを使用して LGSTSQ プログラムにエラー情報を書き込みます。 最後に、プログラムは顧客番号を COBOL アプリケーションに返して終了します。
Z Code Optimization Adviceは、IBM z/OS で最高のパフォーマンスを得る ために COBOL プログラムを最適化するための詳細なガイダンスを提供す るツールです。
(3) 最適化 ・VS Code から COBOL 6 アプリケーションと プログラムをプロファイルおよび分析 ・VS Code の直感的でインタラクティブなレ ポート インターフェースで分析結果を表示 ・パフォーマンスへの影響度に応じて優先順位 をつけてパフォーマンスの非効率性を特定 ・カスタマイズされた推奨事項でパフォーマン スの非効率性を修正 ・ソースコードリンクを使用して非効率的な コード行に直接移動 ・アプリケーションとプログラムのランタイム およびコンパイラオプションを表示
アプリケーションを個別のビジネス・サービスに自動的にリファクタリン グして、機能拡張と保守性を高めるために必要なプログラムやデータを検 出し、COBOLをJavaに変換するための準備を整えます。 (4) 自動でのコード・リファクタリング
生成AIを活用して、COBOLからJavaへの高品質な変換を加速し、必要な時 間を数カ月から数分に短縮します (5) COBOLからJavaへの変換
Javaの新しいコードを効率的かつ迅速にテストして、COBOLのコードと意 味的に同等であることを確認し、品質を向上させ、リスクを低減します。 (6)テストの自動生成(検証)
2. アーキテクチャ
Demo (1)理解 (2)コードの説明 (3)最適化 (4)リファクタリング (5)変換 (6)テストの自動生成(検証)
(1)アプリケーションの検出と分析(理解) ADDI (IBM Application Discovery and Delivery Intelligence)に IDz (IBM
Developer for z/OS)から接続し、 COBOLファイルなどに関するグラフやレポートを確認して、 既存コードの様子を理解する。 IBM Application Discovery and Delivery Intelligence (ADDI) Demo https://mediacenter.ibm.com/media/IBM+Application+Discovery+and+De livery+Intelligence+%28ADDI%29+Demo/1_nxr31lnd
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
(2)コードの説明 WCA4Z (watsonx Code Assistant for Z)サービスに VSCode (Visual Studio
Code)から接続し、 コードの説明を表示して理解のスピードを上げる。 IBM watsonx Code Assistant for Z: Code Explanation Demo https://mediacenter.ibm.com/media/IBM+watsonx+Code+Assistant+for+ ZA+Code+Explanation+Demo/1_jy3sx5q7
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
(3)コード最適化 Z環境にVSCode (Visual Studio Code)から接続し、 コードのパフォーマンス効率を上げる。 IBM watsonx Code Assistant
for Z: Code Optimization https://mediacenter.ibm.com/media/IBM+watsonx+Code+Assistant+for+ ZA+Refactoring+Demo/1_h1f8kqem
None
None
None
None
None
None
None
None
None
None
None
None
(4)リファクタリング RA (refactoring Assistant)サービスに VSCode (Visual Studio Code)から接続し、 コードの一部を抜き出す作業の効率を上げる。 IBM
watsonx Code Assistant for Z: Refactoring Demo https://mediacenter.ibm.com/media/IBM+watsonx+Code+Assistant+for+ ZA+Code+Optimization/1_300xqk50
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
(5)変換 WCA4Z (watsonx Code Assistant for Z)サービスに VSCode (Visual Studio
Code)から接続し、 COBOLをJavaに変換する。 IBM watsonx Code Assistant for Z: Code Transformation https://mediacenter.ibm.com/media/IBM+watsonx+Code+Assistant+for+ ZA+Code+Transformation/1_2w24mmu1
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
←COBOL Java変換後→
(6)テストの自動生成(検証) z/OS環境に VSCode (Visual Studio Code)から接続し、 COBOLとJavaの単体テスト結果を比較して、 生成されたJavaコードに問題のないことを確認する。 IBM watsonx
Code Assistant for Z: Validation Demo https://mediacenter.ibm.com/media/IBM+watsonx+Code+Assistant+for+ ZA+Validation+Demo/1_abampkp9
None
None
None
None
None
None
None
None
None
None
3. ライセンス watsonx Code Assistant for Zのコストは、使用されるコンポーネントによって異 なります。 License guide
for IBM watsonx Code Assistant for Z https://www.ibm.com/docs/ja/watsonx/watsonx-code-assistant- 4z/2.x?topic=welcome-license-guide-watsonx-code-assistant-z コンポーネント メトリック 理解、最適化、 リファクタリング、検証 許可されたユーザーと仮想サーバー コード変換: SaaS トークン、認証ユーザー、 DB2 on Cloud Paygo: インスタンス時間 コード変換:オンプレミス インストールおよびリソースユニット 説明 トークンと認証済みユーザー
4. リンク集 ホームページ https://www.ibm.com/jp-ja/products/watsonx-code-assistant-z IBM Documentation https://www.ibm.com/docs/ja/watsonx/watsonx-code-assistant-4z/2.x ニュースリリース https://jp.newsroom.ibm.com/2023-08-23-IBM-Unveils-watsonx-Generative- AI-Capabilities-to-Accelerate-Mainframe-Application-Modernization
IBM Z Japanコミュニティ https://community.ibm.com/community/user/ibmz-and- linuxone/groups/public?CommunityKey=90109de1-fe63-40e9-b4dd- 6d05d62c35f2
None