2022年11月に.NET 7のPower対応が発表され、WindowsアプリケーションとIBM iとの新たな連携に「新次元を拓く」期待が高まっている。特集では、IBM iとWindowsの連携技術の歩みを振り返り、.NET 7の導入、セットアップ、連携方法、利用メリットなどを整理し、今回の発表内容の意義とインパクトを探った。
text=中島 康裕 日本IBM
Part1で、IBM iとWindowsアプリケーションはとても密接な関係にあり、それぞれが持つ強みや特徴を相互に活かす形で連携し続けてきたことがご理解いただけたかと思う。Part2では、Windowsアプリケーションの中でも特に利用者が多い、.NETに焦点を当てていく。
2022年11月8日に.NETの最新バージョンである.NET 7がMicrosoft社より発表され、さらにLinux on Powerへの対応も合わせて発表された。この発表は、IBM iと既存のWindowsアプリケーション(.NETアプリケーション)の連携をさらに強固にできることを意味し、IBM i利用者にとってはシステム基盤最適化のための新たな選択肢が増えたこととなる。なぜそのように考えられるのか、まずは.NET自体について改めて振り返る。
.NETとは
.NETとは、Microsoft社によって開発された“オープンソース”の開発プラットフォームを示す。実際にMicrosoft社のWebページでも同様に記載されている。
この.NETは、C#やF#、Visual Basicといった複数のプログラミング言語をサポートしており、共通言語ランタイム(CLR/Core CLR)の機能を搭載することで、非常に拡張性の高い開発プラットフォームを実現している。またWindows環境はもちろんのこと、macOSやLinuxなどさまざまなオペレーティング・システム(OS)環境に対応しており、クロスプラットフォームで利用可能なアプリケーションを開発できることも.NETが開発者に好まれる理由の1つである。7万名の開発者を対象に2022年に実施されたサーベイの中でも、.NETが最も人気のあるフレームワーク/ライブラリに選ばれている(図表1)。
このような.NETだが、私がこれまでに記載している“.NET”という表現は、“.NET Framework”と同義ではないことに注意が必要である。もちろん.NET Frameworkと.NETは同じ特徴を有する部分もあるが、あくまでも.NET Frameworkは2002年にMicrosoft社によって最初のリリースが発表された、WindowsもしくはWindows Server上で利用可能な最初の.NETである。そのため、.NET Frameworkで開発したアプリケーションはWindows上でしか動作させることができない。また2023年4月現在で.NET Frameworkの最新バージョンは4.8(2019年4月8日リリース)であり、この4.8がメジャー・バージョンとしては最終リリースと発表されている。一方で.NETの場合は年に1度、最新のバージョンがリリースされており、2023年末には.NET8の発表が予定されるなど、継続的なアップデートが行われている(図表2)。
.NET for Linux on Power の発表
2022年11月8日にMicrosoft社によって.NET7のリリースが発表された。この.NET7はLinux on Powerをサポートする最初の.NETのバージョンであり、.NETオープンソース・コミュニティ、Microsoft社、Red Hat社、そしてIBMの4者の協業によって実現した。そして今回の発表により、マイクロサービスのアプリケーション開発において人気トップ5のすべての開発言語(.NET、 Golang、 Python、 Node.js、 Java)がIBM Power上で利用可能となった(図表3)
Linux on Powerに対応した.NET 7には、以下のコンポーネンが含まれている。
・.NET core Runtime VM、JIT(Monoベース)
・ベースクラス・ライブラリ
・SDK(C#、F#、VBコンパイラなど)
・ASP.NET Core
これまでx86環境からLinux on Powerへのアプリケーション移行を検討されたことがある方であれば、既存のx86上で稼働している.NETアプリケーションをそのままIBM Power上で動かせるのかと不安に思われるかもしれないが、一般的なWebアプリケーションで利用するにあたり、必要なコンポーネントは一通り揃っているのでご安心いただきたい。実際にWeb上では、.NETアプリケーションのサンプルコードが数多く存在しているが、それらのコードはx86環境を想定して作成されているが、Linux on Power上でも問題なく稼働した。実際に稼働させた例についてはPart3で詳しくご紹介する。
しかしながら、x86環境で利用可能な.NETアプリケーションのすべてがそのままIBM Power上で稼働できるわけではない。たとえば2023年4月現在において、一部のエッジ用コンポーネント(AndroidやiOS端末用のコンポーネント)については未対応である。しかし、それらのコンポーネントをIBM Power上で稼働させたいニーズは少ないため、大きな問題ではないと考える。
また.NETアプリケーションの開発フェーズで使用されるデバッガについても現状では未対応である。このデバッガの対応については、コミュニティの中でも対応が期待されている部分であり、今後検討が進められる予定である。そのほかにも、各RDBMSへの接続に用いられるネイティブ・ドライバーなどは、一部アーキテクチャ依存の部分があり、提供されていないものがある。しかしそれらについても、ODBCドライバーの対応でRDBMSへの接続を実現できるなど、代替となる実装方法が準備されている(図表4)。
以上のように、リリースされたばかりの.NET 7 for Linux on Power(以下、.NET 7 on Power)ゆえに現状では未対応であり、今後提供されていく機能がいくつか存在する。しかしそれ以上に、IBM iやAIX環境でRDBMSを実装されている方にとっては、IBM Power上で.NETアプリケーションを実装できるメリットのほうが大きいと考えている。詳しいメリットの内容については、Part5で詳しく説明する。
.NET 7 on Powerは、Red Hat社が提供する商用LinuxディストリビューションであるRed Hat Enterprise Linux(以下、RHEL)に同梱されて提供されている。ご存じのとおり、Linuxはオープンソースのオペレーティング・システムであり、CentOSやFedora、Ubuntu、AlmaLinux、Rocky Linuxなどさまざまな種類が存在する。そのようなLinuxに対して、有償のサポートを提供し、本番システムでも安心して利用できる環境・サポート体制を整えているのが商用Linuxディストリビューションである。.NET 7 on Powerのパッケージを提供するRHELは、それらの商用Linuxディストリビューションの中でも高いシェアを誇り、これまでLinuxに馴染みがなく、またサポートなどに不安を抱いている方も安心して利用することができる。
.NET 7 on Powerが提供されるRHELのバージョン
Red Hat Enterprise Linux 8.7
Red Hat Enterprise Linux 9.1
また.NET 7 on Powerの利用については、IBM Power版RHELのサブスクリプションを購入する必要があるが、.NET 7を利用するための追加のオプション費用などは発生しない。そのため、IBM Power版RHELのサブスクリプションを既にお持ちの方は、追加の費用が発生することなく.NET 7 on Powerを利用できるので、ぜひ一度お試しいただきたい。IBM Power 版RHELのサブスクリプションをお持ちでない方は、Red Hat社より60日間の無償評価版が提供されているので、そちらを利用することで.NET 7 on Powerの評価環境を準備可能である。
また.NET 7 on PowerはRHELの標準パッケージとしての提供だけではなく、コンテナイメージとしても提供されている。既存アプリケーションのモダナイゼーション化、マイクロサービス化を検討されている方は、新規の.NET 7実行環境としてコンテナの利用を開始することも可能である。さらに、本稿では詳しく説明しないが、コンテナ環境のクラスタ管理ツールであるRed Hat OpenShift Container Platform(KubernetesをベースにRed Hat社が提供している商用コンテナ管理ソフトウェア)でも.NET 7 on Powerのコンテナイメージが利用可能である。
モダナイゼーションやマイクロサービスと聞くと、システム全体での検討が必要となり、簡単に手を出せる領域ではないと感じる方もいるかと思うが、あまり難しく考えず「簡単に準備可能な.NET実行環境」のような気持ちで最初の一歩を踏み出していただきたい。そのような面でも、.NET 7 on Powerの新たな発表は、現行システムへ最新技術を取り入れる1つのきっかけとなるのではないだろうか。
次章では、本章を読んで.NET 7 on Powerをまず一度試してみたいと感じた方のために、環境セットアップ方法や実際に利用する方法についてご紹介する。
著者
中島 康裕 氏
日本アイ・ビー・エム株式会社
システム事業部
Power Systems テクニカルセールス
Power テクニカル スペシャリスト
2012年日本IBM入社。入社以来、Linux/OSSを中心としたハードウェアのプリセールス・エンジニアとして活動。2021年からはRed Hat OpenShift Container Platform などの製品を用いて、既存システムのモダナイゼーションを目的とした提案に従事。.NET for IBM Powerがリリースされ、セミナーなどで既存システム最適化の観点から当ソリューションを紹介。また自身が実施した技術検証の内容をブログで発信。
特集 .NET 7 IBM i|WindowsとIBM iの新たな連携
part 1 WindowsアプリケーションとIBM iとのミニ連携史
part 2 .NET 7 on Powerの意義・インパクト(今回)
part 3 .NET 7 on Powerの導入~セットアップ
part 4 .NET 7 on PowerとIBM iの連携方法
part 5 .NET 7 on Powerの利用メリット、ユースケース
[i Magazine 2023 Spring(2023年5月)掲載]