APIでメインフレームアプリを変革する
APIを使ってメインフレームシステムをモダン化して、統合をもっと良くする方法を学ぼう。
Vini Kanvar, Srikanth Tamilselvam, Keerthi Narayan Raghunath
― 1 分で読む
目次
メインフレームシステムは、銀行、リテール、ヘルスケアといった業界で重要なビジネスアプリケーションを運営するために長年欠かせない存在だった。最近、これらの古いシステムのデータや機能を再利用したりアクセスしたりしやすくするために、アプリケーションプログラミングインターフェース(API)の利用が進んでる。これにより、新しいアプリケーションがメインフレームのリソースの上に構築できるようになる。ただし、古いコードと上手く連携するAPIを作るのは簡単じゃない。この作業は、メインフレームアプリケーションのためのAPIを作る際の課題に取り組むもので、さまざまな用途のためのより良いコミュニケーションを可能にする新しいフレームワークを提案してる。
メインフレームシステムの重要性
メインフレームシステムは、非常に信頼性が高く、効率的で強力なため、多くの企業にとって重要な存在。クラウドコンピューティングや現代のアプリケーションアーキテクチャの台頭に伴い、メインフレームアプリケーションを「APIfy」しようとする傾向が高まってる。調査によれば、多くの金融機関が既存のサービスからより多くの収益を生むためにAPIを利用したいと思っている。
APIficationのメリット
効率の向上:開発者はメインフレームシステムともっと簡単に迅速に作業でき、開発が早く進み、運用コストが下がる。
新しいテクノロジーとの統合:APIを使うことで、メインフレームアプリケーションとクラウドサービスやIoTのような新しいテクノロジーを簡単に接続できる。
アクセス管理の向上:APIを使うことで、メインフレームのデータに誰がアクセスできるかをより良く管理できる。
ビジネスの機敏性:APIを利用することで、企業は変化するビジネスニーズに迅速に応じられ、競争力を維持できる。
これらの利点があっても、APIを作るには専門知識や努力が必要で、企業がクラウドベースのソリューションに移行するのをためらわせることがある。この問題を解決するためには、API作成プロセスを効率化する革新的な方法が必要。
COBOLアプリケーションのAPIfyのステップ
COBOLアプリケーションをAPIに変えるには、いくつかのステップを踏む必要がある:
- どの部分の古いコードをAPIにするかを特定する。
- API使用のために古いコードをリファクタリングする。
- APIの署名を計算する、つまりAPIの入力と出力を決める。
- APIに接続する呼び出しコードが整っていることを確認する。
- 最後に、APIを実際に使用できるように準備する。
どの部分のコードをAPIとして公開するかを特定するのは、変数の名前が不明瞭だったり、複雑なデータ構造や多くのことを同時に処理しているコードがあるため、難しい。
APIを特定する際の課題
不明瞭な名前:古いコードの多くの名前はその目的を明確に伝えないため、APIの特定が難しい。
複雑な構造:メインフレームアプリケーションはしばしば複雑なデータ構造を扱っていて、API開発が面倒になる。
モノリシックなコード:古いコードが多くのタスクを同時に処理するため、API用に特定の機能を絞り込むのが難しい。
直感的でないコードブロック:データがプログラム内をどのように流れるかを特定するのが難しい形で書かれている部分もある。
多様なデータ型:メインフレームアプリケーションにある単一のデータソースが異なる種類の情報を保持していることがあり、APIの特定を複雑にする。
UIの違い:メインフレームの画面とバックエンドの相互作用は現代のWebアプリケーションとは異なり、どのデータをAPIで公開すべきかを特定するのが難しくなる。
APIficationのための新しい手法
これらの課題に対処するために、APIの特定を自動化し、署名を計算し、コードをリファクタリングする新しい手法が導入される。この新しいアプローチは、特定と署名計算のプロセスを効率化するのに役立つ。
自動API特定
この新しい手法は、潜在的なAPIを特定するためのソースのリストを作成することを含む。これには、トランザクション、画面、制御ブロック、ビジネスルールが含まれる。例えば、メインフレームアプリケーション内のさまざまなトランザクションに関連付けられた各制御フローブロックを独立したAPIにすることができる。
API署名の計算
潜在的なAPIが特定されたら、次のステップはその署名を計算すること、つまりリクエストとレスポンスのフィールドを決める。これは、プログラムを実行せずに分析する静的解析技術を使用して行われる。リクエストとレスポンスのフィールドを見つけるために、変数の使い方を確認したり、さまざまなセクションでデータが入出するのを追跡したりする方法がある。
APIの公開と呼び出しコードの作成
APIを公開するために、開発者は古いコードのどの部分がアクセス可能であるべきかを指定し、リクエストとレスポンスのフォーマットを定義する。これらのAPIを呼び出すための呼び出しコードも、新しく作成されたAPIとスムーズにやり取りできるようにリファクタリングする必要がある。既存のツールがこのプロセスを助けることができるが、この手法はさまざまなツールで機能するほど柔軟。
結論と貢献
この記事は、静的解析を通じてAPIを自動的に特定し、それらの署名を取得することでメインフレームアプリケーションのAPIficationを包括的に進めるアプローチを紹介している。実際のアプリケーションを通じてこの方法を示すことで、自動化された手法がAPI作成に必要な時間と労力を大幅に削減することがわかった。これは、プロセスの効率を向上させるだけでなく、メインフレームアプリケーションと現代のプラットフォームとの統合の新しい機会を開くことにもつながる。
ビジネスユースケース
APIficationプロセスはさまざまなビジネスシチュエーションで活用できる:
現代的なユーザーインターフェースの作成:メインフレームアプリケーション内の画面やトランザクションを特定し、APIに変換することで、組織はこれらのバックエンドリソースを利用したユーザーフレンドリーなインターフェースを構築できる。
ビジネス機能の公開:企業は専門家と協力して公開する機能を選択し、それらの機能をAPIとして利用できるように必要なコードを整理する。
モノリシックアプリケーションの変革:大きなモノリシックアプリケーションを管理可能なモジュールに分解し、APIとして公開することで、ビジネスはアーキテクチャの柔軟性とスケーラビリティを向上させることができる。
自動化の必要性
この作業から得られる主なポイントは、APIficationプロセスの自動化の重要性。メインフレームアプリケーションの複雑さや、手動でリクエストやレスポンスを特定する際の intricaciesを考えると、自動化されたアプローチが大きな違いを生む。
専門家への依存度が低下:自動化により、開発者はアプリケーション全体の深い知識を必要とせず、チームのより多くのメンバーが貢献できるようになる。
柔軟なツール利用:自動化は特定のツールに依存しないため、組織は必要に応じて新しいテクノロジーに適応できる自由がある。
改善が簡単:自動化されたプロセスはドキュメント化や分析が容易で、メソッドの継続的な改善が可能となる。
迅速な納期:自動化はAPI作成プロセスを加速し、より早いリリースとプロジェクト管理を実現する。
イノベーションの向上:反復的な作業を担うことで、開発者は新しい機能やアプリケーションの作成に集中できる。
総じて、この記事で探求された方法は、メインフレームアプリケーションのAPIficationに取り組むための構造化された方法を提供する。APIの特定、署名計算、コードリファクタリングの自動化は、運用の効率と信頼性を維持しながらレガシーシステムを近代化しようとする組織にとって、重要な利点をもたらす。
タイトル: Enabling Communication via APIs for Mainframe Applications
概要: For decades, mainframe systems have been vital in enterprise computing, supporting essential applications across industries like banking, retail, and healthcare. To harness these legacy applications and facilitate their reuse, there is increasing interest in using Application Programming Interfaces (APIs) to expose their data and functionalities, enabling the creation of new applications. However, identifying and exposing APIs for various business use cases presents significant challenges, including understanding legacy code, separating dependent components, introducing new artifacts, and making changes without disrupting functionality or compromising key Service Level Agreements (SLAs) like Turnaround Time (TAT). We address these challenges by proposing a novel framework for creating APIs for legacy mainframe applications. Our approach involves identifying APIs by compiling artifacts such as transactions, screens, control flow blocks, inter-microservice calls, business rules, and data accesses. We use static analyses like liveness and reaching definitions to traverse the code and automatically compute API signatures, which include request/response fields. To evaluate our framework, we conducted a qualitative survey with nine mainframe developers, averaging 15 years of experience. This survey helped identify candidate APIs and estimate development time for coding these APIs on a public mainframe application, GENAPP, and two industry mainframe applications. The results showed that our framework effectively identified more candidate APIs and reduced implementation time. The API signature computation is integrated into IBM Watsonx Code Assistant for Z Refactoring Assistant. We verified the correctness of the identified APIs by executing them on an IBM Z mainframe system, demonstrating the practical viability of our approach.
著者: Vini Kanvar, Srikanth Tamilselvam, Keerthi Narayan Raghunath
最終更新: 2024-08-08 00:00:00
言語: English
ソースURL: https://arxiv.org/abs/2408.04230
ソースPDF: https://arxiv.org/pdf/2408.04230
ライセンス: https://creativecommons.org/licenses/by/4.0/
変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。
オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。