MENU

Watsonの次のチャレンジは、レガシーコードのモダナイゼーション

 

「Watsonの次のチャレンジは、レガシーコードのモダナイゼーション」と題するインタビュー記事を、IEEEのオンラインメディア「IEEE SPECTRUM」が掲載している。インタビュアーは、欧米では著名ライターのデクスター・ジョンソン氏(Dexter Johnson)。回答するのは、IBMフェローのルチール・プーリ氏(Ruchir Puri)である。プーリ氏は、IBM Watsonチーフ・アーキテクトやIBM Research主任研究員などの肩書ももつ。

プーリ氏は、「レガシーのコードをAIで読み解くのが、どうして難しいのか」という質問に対して、「それはレガシーのルールベースであるシステムが、あまりうまく機能していないからだ」と、次のように答えている。

「たとえば、COBOLのようなルールベースのプログラミング言語がほんとうにうまく機能しているのであれば、全盛期を過ぎてから今までに、もっと他の言語にコンバージョンされてもよかったはずだ。しかし実際はそうはなってこなかった」
「その理由は、プログラミング言語に、人間の言語と同じように、コンテキストがあるからだ。ある行の特定のステートメントは、それ以前の何かの事象に関連しており、そのコンテキストを取り出して翻訳するには、人間の言語を翻訳するのと同じように、多くの時間と労力とリソースが必要になる。そして、プログラムの規模が大きくなるほど、その難しさはいっそう増す。(中略)つまり、ルールベースのシステムの成功を困難にしているのは、プログラム言語におけるコンテキストの存在なのだと考えられる」
「大まかに言って、プログラムの50~60%は機械的に翻訳できる。しかし、残りの部分はマニュアルで翻訳するしかなく、それらは実にやっかいで複雑なルールを含んでいるのだ」

では、レガシーコードを蘇生させ、次へとつなげていくにはどうしたらいいのだろうか。

プーリ氏は、「まさにそこに自然言語処理で培ったAIの出番があり、人間の言語に適用したのと同様に、シーケンス・シーケンスモデルを使ってプログラムの中に存在するコンテキストを取り出すことができる」と述べる。

AIを適用したプログラム分析の検証例として、プーリ氏は次を挙げている。

ある大手自動車メーカーは、古いバージョンのJavaで開発された100万行に及ぶレガシープログラムを、マイクロサービスで構成される新しいシステムへと改築し、真のクラウドネイティブ・アプリケーションを構築したいと考えていた。そして実際に、その会社のスタッフらが1年以上をかけてプログラムの分析を行った。

その100万行に及ぶプログラムを、プーリ氏らが開発したツール(後述)で分析したところ、工期は約1/10の6週間で済み、さらに26個のマイクロサービスのセットが自動的に推奨されたという。

では、プログラムのオペレーションにAIが適用されるようになると、プログラマーの存在はどうなるのだろうか。「プログラマーは不要になるのか」という問いにプーリ氏は、「アルゴリズムの発明など人に負う創造的な仕事は、むしろ増加する」と、次のように語る。

「AIを使うと、コードのレビューやテスト、移行、検索などを人が行う必要性はなくなる。しかし、システム全体のソリューションやアルゴリズム、問題の構造的な解決を考えることは人の仕事になる。AIがアルゴリズムを発明することはない」

 

ルチール・プーリ氏 IBMフェロー、IBM Watsonチーフ・アーキテクト、IBM Research主任研究員

 

レガシーコードのモダナイゼーションを支援する
Accelerator for Application Modernization with AI

 

前述のツールは、IBMが2020年5月5日に発表した「Accelerator for Application Modernization with AI」である。これは、ITオペレーションの効率化を支援する「Watson AIOps」の1つとして発表されたもの。同製品には、レガシーコードの分析機能、コンテナ化やマイクロサービス化のための推奨機能、ガイド付きのフィードバック機能、AI学習などの一連のツールが含まれている。

同日のプーリ氏らのブログでは、次の3つのツールが紹介されている。

 

◎アドバイス機能

・Modernization Workflow Orchestrator (MWO)
アプリケーションの移行およびモダナイゼーションのための最適な変換パスの決定を支援するツール

・Application Containerization Advisor
アプリケーションのコンテナ化のための支援機能

◎ビルド機能

・Candidate Microservices Advisor
レガシーアプリケーションの中でマイクロサービス化すべき部分を推奨する機能

 

レガシーコードは、クラウドネイティブ・アプリケーションから見れば、メインフレームやIBM iだけに限られないが、今問題が顕在している多くはメインフレームやIBM i上のアプリケーションだ。AIの適用によるレガシーコードのモダナイゼーション支援が注目される。

 

◎参考
・IEEE SPECTRUM 「IBM Watson’s Next Challenge: Modernize Legacy Code」
・日本IBMニュースリリース「IBMがCIOを支援する新しいAIを発表」(2020年5月5日)
・プーリ氏らのブログ「Accelerate innovation with AI for app modernization」
・「INSIDE AI」でのプーリ氏の講演(YouTube)

 

[i Magazine・IS magazine]

新着