メニューボタン
IBMi海外記事2022.07.13

IBM Merlinは、IBM i での開発に新たなアプローチをもたらす

Alex Woodie 著

IBMは、IBM i バージョン7.5のリリースの一部として、Merlinと呼ばれる新たなアプリケーション開発フレームワークを発表します。主にRDiの軽量な代替製品として設計され、コンテナ内で実行されるMerlinは、今後、IBMが開発ツールのソーシングおよびディストリビューションをどのように行うかを示す指針となるかもしれません。

Merlinは、IBM i 開発者が新たなILEプログラムをゼロから作成したり、既存プログラムをモダナイズしたりできるようにするために設計された、 IBM の新たなライセンス プログラム製品(LPP)オファリングです。正式名称を「Modernization Engine for Lifecycle Integration(ライフサイクル統合のためのモダナイゼーション エンジン)」というこのソフトウェアは、Red Hat OpenShiftコンテナを介してPowerサーバー上で稼働するようにパッケージ化され、Webブラウザを通じてアクセスされる、IBM、 Red Hat社、および ARCAD Software 社のオープンソースおよびプロプライエタリ ツールの組み合わせをベースとしています。

コアとなるIDEは、Visual Studio Codeがベースになっています(ただし、 Microsoft社製とは別物とIBMは述べています)。IBMは、ARCADの変更管理およびDevOpsの専門技術を活用して、 Git のソース コード管理および Jenkins の継続的インテグレーション/継続的デプロイメント(CI/CD)パイプラインのサポートを組み込みました。また、IBMは、TransformerというARCADのRPG変換ツールも取り入れ、Merlinオファリング向けにConverterへと名称を変更しています。

狙いとしては、顧客が最新のDevOpsパラダイムを使用して次世代アプリケーションを作成できる環境を提供することです。Merlinでは、RPGIIIとRPGIV、COBOL、CL、DDS、およびSQLなど、ILE言語がフルカバーされているため、開発者は、それらの言語での開発作業のような親しみやすさを感じながら、コード管理およびデプロイメントの自動化の促進に取り組むことができます。

Merlinは、SEUおよびPDMの暗黒時代からのステップ アップですが、Rational Developer for i(RDi)のようにリソースを大量消費することはないと、IBMプログラム マネージャーのAlison Butterill氏は述べています。

「RDiは優れたツールです」とButterill氏は『 IT Jungle 』に述べています。「しかし、RDiはEclipseをベースとしており、コンテナ化のスペースには収まりきらない多くのプロプライエタリ コードが含まれています。非常に重いクライアントです。マシン上にある多くのリソースを必要とします。」

Merlinは、コンピューティング リソースを大幅に節約できることは言うまでもなく、アプリケーション開発およびモダナイゼーションに取り組むための、少し異なる方法を提供するとButterill氏は述べます。

「非常に多くのクライアントから求められているのは、ブラウザベースのソリューション、クラウドベースのソリューション、そして単に編集、コンパイル、デバッグといった機能だけでなく、トランスフォーメーションのモダナイゼーションの側面が組み込まれているもの、そして何よりもDevOpsおよびCI/CDです」と彼女は述べています。「RDiを使用してアプリケーションの作成やモダナイズを行うこともできますが、RDiはやはりファット クライアントに依存します。また、RDiには、DevOpsおよびCI/CD機能は組み込みまれていませんし、ARCADから導入しようとしている、変換およびトランスフォーメーション ツールも組み込まれていません。クラウドで稼働したいが、ブラウザベースで軽量であることを求めるクライアントにとっては、Merlinはまさにうってつけのツールなのです。」

Merlinを使用してアプリケーションのモダナイズを行おうとした場合、まずはMerlinを入手しなければ始まりません。Merlinは認定コンテナ アプリケーションであるため、ユーザーは、直接、IBM Certified Containerカタログからダウンロードできます。IBMパスポート・アドバンテージ(PA)から、必要な仮想プロセッサー コア(VPC)ユニットの支払いを終えたら、使用を開始できるようになります。

ユーザーのワークフローは、IBM i サーバーからソース コードを取得することから始まります。ソース コードがMerlin環境に置かれたら、ユーザーは、Merlinのブラウザベースのインターフェースから、コードに対して必要なアップデート作業を行うことができます。アップデート作業が完了したら、ユーザーはコードをIBM i へ戻してオブジェクトをコンパイルおよび実行する、という流れになるとButterill氏は述べています。

現時点ではMerlinにデバッガーはありませんが、Butterill氏によれば、近いうちに状況は変わるということです。これまでにIBMで関わった中で最も速く動いている開発プロジェクトだと彼女は述べています。「私たちは、まずはMerlinを世に出すことに集中してきました」と彼女は述べます。「ただし、次のリリースに向けての考えもいくつかあります。」

Merlinはコンテナで稼働しますが、コンテナベースのアプリケーションの作成には使用されません。この点は、IBMとして強調しておきたい重要な違いです。コンテナを管理するのに使用されるDockerやKubernetesなどのコンテナ テクノロジーは、IBM i 上では稼働しないからです。しかし、実に様々なコンテナ テクノロジーが、Power Linux環境で実際に稼働しています。それゆえに、OpenShiftをMerlinのベースにするという決定に至ったわけです。

IBMがMerlinにコンテナ ベースのデプロイメントを選んだのには、いくつかの理由があったとButterill氏は述べています。「1つには、コンテナによって、いくつかのOpenShift機能を実際に組み込むことが可能になったからです」と彼女は述べます。「しかし、それだけではありません。それは素晴らしいことですが、言わば、副次的なメリットです。」

コンテナがもたらす核心的なメリットは、様々なフレームワークとテクノロジーの組み合わせで構成されるアプリケーションに内在する、複雑さを覆い隠してくれることです(このことは、今日のほとんどの最新アプリケーションに当てはまることでもありますが)。コンテナによって、開発者は、アプリケーションに組み込まれる様々なコンポーネントのすべての標準的なイメージを作成できるようになり、それらのテクノロジーがすべて適正なリリース レベルにあり、確実にすべてが連携して機能することを確認できます。

「コンテナを利用することで、これらの様々なコンポーネントを集めてきて、それらを異なったやり方で組み立てるということも可能です」とButterill氏は述べています。「もちろん、コンテナはブラック ボックスのようなものです。何かを投げ込むと、中で処理が行われ、処理されたものを外から利用します。コンテナのおかけで、私たちが提供したかった多くのこうした機能をカプセル化し、非常に簡素化されたやり方で管理できるようになったのです。」

顧客は、オープンソースのツールを寄せ集めてきて、顧客独自のバージョンのMerlinを作成したり、さらには、それをコンテナとしてバンドルしたりすることも可能です。「私も自分で独自バージョンを作成することができるのですが、」とButterill氏は述べます。「それは大変な作業となるでしょうし、私たちが提供しているすべてのコンポーネントを利用することにも、製品スイートとしての機能をフルに活用することにもならないでしょう。」

Merlinの稼働には、IBM i 7.4または7.5が必要です。

あわせて読みたい記事

PAGE TOP