Rewrite the Standard.

IBM i 7.5とは?新機能やアップグレード時の注意事項を徹底解説

2023.05.11

IBM i 7.5は2022年5月に発表されたIBM i にとってIBM i 7.4以来3年ぶりのメジャー・リリースとなります。当記事では、IBM i 7.5の新機能、旧リリースからのアップグレード (リリース・アップ) 時の注意点を解説しています。またそれらと共にIBM i 7.5を使用したアプリケーション開発のポイントも併せてご紹介していますので参考にしていただければと思います。

IBM i 7.5の新機能

ビジネス環境は刻々と変化しており、ITに対しても顧客とのより良い接点の探求や業務プロセス変革のためのデジタル化したオペレーション、データからの洞察を通じた新たなビジネス手法、AIの活用に対応する基幹データの準備などが求められています。IBM i 7.5においてもこれらのデマンドに対応して以下のような点について大幅な機能拡張が図られています。

セキュリティ

・OSのセキュリティー・レベルとして、これまでサポートされていた20が廃止され、IBM i 7.5での出荷時の値として40に設定されるようになります。

・新しいパスワード暗号化方式は、パスワード・レベル(QPWDLVL)を4に設定することで、さらに高いセキュリティー・レベルを実現します。

・新しいQSYCHKPR APIを使用することで、ユーザーまたはパスワード管理ツールが、企業で設定されたパスワード・ルールに値が準拠するか事前に判断できます。

・保守ツール CLコマンドが強化されました。SSTユーザー属性「パスワード有効期限間隔」は、Create Service Tools User ID (CRTSSTUSR) コマンドおよびChange Service Tools User ID (CHGSSTUSR) コマンドを使用して設定できるようになりました。多くの他のSSTセキュリティー属性も、Change SST Security Attributes (CHGSSTSECA) コマンドを使用して設定できるようになりました。

・QIBM_QSY_VLD_PASSWRDおよびQIBM_QSY_CHK_PASSWRDの出口点からパスワード終了プログラムを追加または削除できるかどうかを示す新しいSSTセキュリティー属性が追加されました。この属性は、SSTまたはCHGSSTSECAコマンドを使用して設定できます。

・デジタル証明書マネージャー(DCM)には、ユーザーエクスペリエンスを向上させるための複数の強化があり、ベース・セキュリティー・コンポーネントに追加機能を提供します。

圧縮

・選択されたコマンドでZLIBアルゴリズムを使用することで、データの圧縮オプションを追加し、IBM Power10プロセッサー上での実行時の性能を向上させます。

保存復元

・保管コマンドのASYNCBRINGパラメーターの新しいデフォルト設定により、IFSデータの保存の性能が向上します。

・RSTUSRPRF *ALLは、制限状態が不要になりました。

・IFSオブジェクトの復元操作では、復元の完了時にサイズを含むメッセージが出力されるようになりました。これにより、復元完了までの残り時間をより良く推定できるようになりました。

ネットワーキング

・SNMP属性を構成して、一部の環境でSNMPv3のみを許可し、SNMPv3によって返される情報を制限することで、より高いセキュリティー・レベルを提供できます。

・IBM i上でTCP Selective Acknowledgment (SACK)をサポートすることで、ネットワークでパケット・ロスが発生した場合にデータの再送信を効率化します。

・IBM Tivoli Directory Server for iのパスワード・ポリシー機能を拡張して、標準のデフォルト・ルールに加えて高度なパスワード構文チェックのルールを強制できるようになりました。

・IBM i DNSが新しいBINDリリースにアップグレードされました。

・FTPクライアントは、信頼された証明機関によって署名されていないサーバー証明書を受け入れるように構成できます。FTPサーバー・ログオンの出口点を使用して、IPV4アドレスを指定してIPV4パッシブ・データ接続の応答を許可できます。

・SMTPはユーザーが送信されたメールの保持期間を異なる設定にできるようにし、異なる送信元アドレスを設定できるようにし、自動転送メールを許可します。

アプリケーション開発

・IBM i 7.5では、統合WebサービスRest APIエンジンにいくつかの重要な変更が加えられており、パラメーター数が248に増加し、IWSログの機能がAccess Client Solutionsログ機能を含むように更新されました。

・クライアントベースの開発ツールをより良くサポートするために、プログラムおよびサービス・プログラム・オブジェクトの作成および更新コマンドは、イベントファイルでコマンド完了情報を提供できるようになりました。この情報は、コマンド完了ステータスを提供するために照会できます。

・サポートされるCCSIDの範囲が拡張されました。

・CALLおよびCALLPRCコマンドでは、パラメーターとして式を渡し、各パラメーターのタイプと長さを指定できるようになりました。

・このリリースでILE C/C++の組み込み関数にアトミック・メモリー・アクセスの新しい機能が追加されました。複数のスレッドを持つプログラムでは、これらの関数を使用して、1つのスレッドでデータを安全に変更できます。

システム管理

・2桁の年間日付範囲の範囲を変更できるようになりました。QIBM_QBASEYEAR環境変数を使用することで基準年を1940年から1970年にシフトできます。

・IBM i 7.5は、SMT8モードでパーティションごとに最大48個のプロセッサーをサポートし、Power10またはIBM Power9テクノロジーを備えたサーバーでは最大384スレッドをサポートします。

・Service Toolsは、システム上の個々のNVMeデバイスに関する詳細情報を表示できるようになりました。

・Job Schedulerコマンドとディスプレイに新しい強化が追加されました。

・パフォーマンス・ツールには、いくつかのハードウェアおよびソフトウェアの強化が追加されました。

・IBM Navigator for iは、以前のバージョンよりも管理者により多くの情報を提供するための追加のタスクと機能を提供します。

・統合ファイルシステム(IFS)には、IBM i NetServerの新しいセキュリティー・レイヤー、新しい出口点、およびより堅牢なファイル共有オプションを含む、いくつかのハードウェアおよびソフトウェアの強化が追加されました。

・クラスター資源グループ(CRG)のスイッチオーバーを実行する時間が短縮されました。

・システム管理者は、個々のデバイスに関する詳細情報を表示してより良い判断を下すために、Service Toolsを使用できるようになりました。

・ハードウェア管理コンソール(HMC)や他の管理インターフェースで管理されていないサーバーでのコンソール構成とデバッグ・コンソールの問題を設定するには、オペレーター・パネルを使用する必要があります。コンソールサービス機能にアクセスするために必要となるオペレーター・パネル機能の操作数が少なくなりました。

Db2 for i

・HTTPリクエストの追加機能を提供して、Webサービスの公開または消費を行えるようになります。

・データベース・エンジニア(DBE)向けの高度で使いやすいツールを提供します。

・IBM i Servicesは、IBM iオブジェクト、システム情報などへのアクセス方法として、有用なSQLベースの代替手段を提供するために拡張されています。

・SYSTOOLSスキーマの動作例とツールの数を増やしています。

以下3点について詳細を解説します

上記の機能拡張のうち、以下の3点について少し詳細に見ていきたいと思います。

1.セキュリティー・レベルの仕様変更
2.パフォーマンスの強化
3.ハードウェア対応の強化

セキュリティー・レベルの仕様変更

IBM i 7.5ではセキュリティー・レベル20が廃止され、セキュリティー・レベル40で出荷されるようになります。IBM i ではOS環境全体のセキュリティー設定のベースとなるセキュリティー・レベルとして、10から50までの設定が用意されており、それぞれのセキュリティー・レベルは以下の表の通りです。

IBM i OS セキュリティー・レベル表

セキュリティー・レベル表

レベル 概要
10 セキュリティー保護はなく、当レベルは設定不可
20 ユーザーIDとパスワードによる保護のみで、全ユーザーが全オブジェクトにアクセス可能
30 ユーザーIDとパスワードおよび権限による保護
40 レベル30に加え、保全性保護 (非サポートのインターフェースによるシステム・オブジェクト・アクセス制限など)
50 レベル40に加え、より拡張された保全性保護 (システム状態プログラムとユーザー状態プログラム間のメッセージング制限など)

セキュリティー・レベルはシステム値QSECURITYに設定する値となりますが、IBM i 7.5では、既に設定不可となっている10に加え、20も当システム値に設定することができなくなりました。

セキュリティー・レベル20と40の違いとは

上記表に記載の通り、セキュリティー・レベル20では全ユーザーが全オブジェクトへのアクセスができるようになっています。IBM i 7.5出荷時のデフォルト値であるセキュリティー・レベル40を含むセキュリティー・レベル30以上ではシステム内の各オブジェクトへのアクセスについて、ユーザーIDに対して適切な権限設定を行う必要があります。デフォルト値を考えますと、今後IBM i を運用していくにあたりセキュリティー・レベルは40以上であることが望ましいと言えるでしょう。

なお権限設定においては、オブジェクトに対して個別に権限を付与していった場合、その設定数に応じて機密保護データの保管 (SAVSECDTAコマンド) が長時間化することが知られています。そのため、オブジェクトへのアクセス・パターンを整理した上で権限リストを作成、割り当てていくことが推奨されます。なお、多数の権限設定によるSAVSECDTAコマンドの長時間化についての詳細は以下リンク先を参照してください。

詳細リンクはこちら|https://www.ibm.com/support/pages/savsecdta-taking-long-time

パフォーマンスの強化

IBM i 7.5でパフォーマンスの強化として、データ保管に関する機能強化が図られた点について2点ほどご紹介したいと思います。

1点目は新しい圧縮機能のサポートです。オープン系プラットフォームでは馴染みが深いzlibによる圧縮がIBM i でのオブジェクト保管時に利用できるようになりました。開発部門における検証では、既存のHIGHオプション指定よりもZLIBオプション指定によって30%以上小さく圧縮ができるようになっています。圧縮時の実行パフォーマンスは既存のMEDIUMもしくはHIGHオプションと同等程度で、LOWオプションよりも低速の傾向がありました。しかし、Power10マシンではオンチップNest Accelerator (NX) ZLIBを使用できることから常に高速で処理され、最大で4倍の高速処理が実現されます。ZLIBオプションについての詳細は以下リンク先を参照してください。

詳細リンクはこちら|https://www.ibm.com/support/pages/compression-zlib-algorithm-save-commands-and-apis

2点目はIFSへのデータ保管パフォーマンスの向上です。IFSオブジェクトの保管コマンドであるSAVコマンドにはASYNCBRINGパラメーターが以前より用意されています。オブジェクトのメモリーへの取り込み処理を非同期で行うことによって保管時の実行パフォーマンスを向上させるオプションになります。当パラメーターのデフォルト設定が*YESに変更されました。

ハードウェア対応の強化

IBM i 7.5はPower10マシン、Power9マシンで稼働します。Power10マシンのLPARあたり最大48プロセッサーをサポートしており、SMT8モードでは最大384スレッドでの稼働をサポートしています。さらにIBM Expert Labsによるサービスを適用することによりLPARあたり最大240プロセッサー、1920スレッドでの稼働をサポートします。なお、各PowerモデルとIBM i OSリリースのサポート対応状況を以下に示します。Power10マシンではモデルにもよりますが、IBM i 7.3からサポートされております。

IBM i ハードウェア・サポート対応表

プロセッサー モデル IBM i 7.1*1 IBM i 7.2*2 IBM i 7.3*3 IBM i 7.4 IBM i 7.5
Power10 S1012 × × × 〇 TR10 〇 TR4
Power10 S1022s*7 × × 〇 TR13 〇 TR7 〇 TR1
Power10 S1014, S1022s*5, S1022*5, S1024, L1022*3, *5, L1024*3 × × 〇 TR12 〇 TR6
Power10 E1080 × × 〇 TR11 〇 TR5
Power9 S914, S924, S922*4 (Gモデル) *6 〇 RS 720-Q 〇 TR8 〇 TR2
Power9 H922*3, *5, H924*3 (Sモデル) × 〇 RS 720-Q 〇 TR9 〇 TR3
Power9 S924 (11, 22コア) × 〇 TR9 〇 TR6
Power9 E980 *6 〇 TR9 〇 TR5
Power8 S812 × 〇 TR6 〇 TR2 ×
Power8 E870C, E880C 〇 RS 710-S 〇 TR4 ×
Power8 S822 (VIOS経由) 〇 TR11 〇 TR3 ×
Power7Power7+ 710, 720, 730, 740, 750, 760, 770, 780, 795 × ×
Power7Power7+ PS700, PS701, PS702, PS703, PS704, PureFlex p260, p460 × × ×

*1: IBM i 7.1 は、2018 年 4 月 30 日でサポート終了。

*2: IBM i 7.2 は、2021 年 4 月 30 日でサポート終了。(延長保守中)

*3: IBM i 区画に割り当てられるプロセッサーは、25% まで。

*4: プロセッサーが 1 コア以外の場合は VIOS 経由の構成が必要。

*5: VIOS 経由の構成が必要。

*6: S922, E980 VIOS 仮想環境で TR11 をサポート、有償のイネーブルメント機構 (S922 : EB3U, E980 : EB3V) が必要。

*7: 2022年10月11日発表 4コア 2ソケット構成

*8: IBM i 7.3 は、2023 年 9 月 30 日でサポート終了。(延長保守中)


IBM i 7.5への更新時の注意事項

現在運用されているIBM i環境のOSリリースをIBM i 7.5に更新するにあたっては、一般的には以下のような方法が採られます。

1.現行ハードウェア機器上でIBM i 7.5へアップグレード (リリース・アップ) を行う
2.新規ハードウェア機器に新しいIBM i 7.5環境を構築、ユーザー・データ移行を行う

現行ハードウェア機器でのIBM i 7.5の稼働がサポートされており、かつ現行OSリリースがIBM i 7.3以上あれば1の方法でリリース・アップができます。この場合IBM i 7.5へのリリース・アップの前後でセキュリティー・レベルの値は保持されますので、20のままで運用を続けることは可能です。

ただし、セキュリティーの面からはオブジェクト・アクセスに対する権限設定が行えないということで依然として低い状態に留まってしまうという点は留意しておく必要があります。実案件では2のようにハードウェア機器更改のタイミングでOSリリースも更新するケースが多いかと思います。2024年6月時点の最新ハードウェア機器はPower10プロセッサー搭載のIBM Powerとなります。更改先をPower10プロセッサー搭載マシンとした場合、例えば以下のように条件を整理・検討して適切な移行方法を決めていく必要があります。

図1:OSリリース更新方式の検討例

図1で示したアプローチ1ならびに2は現行環境でセキュリティー・レベルが既に30以上に設定されているか、20以下であっても更改先では推奨となる40に上げる場合を指しています。これらでは通常の移行方式、つまり現行環境のフル・バックアップをフル・リストア後、IBM i 7.5へのリリース・アップを行う方式や、Power10マシンにIBM i 7.5のベース部分を導入後、リストアし、ライセンス・プログラムを上書きするといったいわゆるSide by Sideでのデータ移行を行う方式での移行となってきます。

アプローチ2では一連の初期移行を行った後に、セキュリティー・レベルを40に変更した上で、オブジェクト・アクセスに関する適切な権限設定と動作検証を行っていくこととなります。アプローチ3ならびに4は現行環境でセキュリティー・レベルが20であり、かつIBM i 7.5においても20で運用する場合を指しています。IBM i 7.5環境をセキュリティー・レベル20で運用するにはOSリリース・アップを行って、前OSリリースからレベルを保持する必要があります。Power10マシンはIBM i 7.3以降のOSリリースをサポートしていますので、現行OSがIBM i 7.3以降であれば、Power10マシンに現行環境のフル・バックアップをフル・リストア後、IBM i 7.5へリリース・アップすることで対応ができます。この方式がアプローチ3となります。なお、厳密には前述の表の通り、Power10マシンのモデルに応じてサポートされるTR (テクノロジー・リフレッシュ) のレベルも定められておりますのでIBM i 7.3以降でかつTRレベルの前提も満たしておく必要がある点は注意が必要です。S1012に関してはIBM i 7.3自体をサポートしませんので、そちらも注意が必要です。

アプローチ4は現行環境がPower10マシンでサポートされないOSリリースである場合です。この場合はOSベース部分を導入後、リストアし、ライセンス・プログラムを上書きする方法やOS導入ならびに諸設定を個別に変更後、純粋なユーザー・データのみを移行する方法でPower10マシンにIBM i 7.3もしくはIBM i 7.4の環境を構築します。その上でIBM i 7.5へリリース・アップを行うことでセキュリティー・レベル20を保持するといった対応が必要になってきます。

アプローチ3ならびに4はOSリリースとしては2024年6月時点では最新であるIBM i 7.5に更新することができますが、セキュリティーとしては好ましくない状態のままである点は注意してください。これらの方法での更新後は可能な限り早期にセキュリティー・レベルの変更対応を取っていただくことをお勧めいたします。

アップグレード方法

ではここからは、IBM i 7.5に実際にアップグレード (リリース・アップ) する方法について簡単にまとめたいと思います。なお方法は、7.5に限らず基本的にはサポートされているいずれのリリース間でのリリース・アップでも同様の方法となっており、このような部分でも継承性が確保されているのはIBM i ならではと言えるかと思います。IBM i は自動インストールと手動インストールの2つの方法でリリース・アップすることができるようになっています。それぞれの方法の主なステップをまとめたものが以下の図2です。

図2:IBM i OSリリース・アップの主なステップ1

自動インストールと手動インストールを問わず、最初に準備作業を行います。このステップは置き換え対象とするソフトウェアの選択や新規導入するソフトウェアの追加、ソフトウェア使用条件の受諾などを行うステップとなりますが、詳細については以下リンク先をご参照ください。

詳細リンクはこちら|https://www.ibm.com/docs/ja/i/7.5?topic=software-preparing-upgrade-replace-i

次に自動インストールでは準備作業での設定に応じて、ライセンス内部コードからライセンス・プログラムまでを自動で置き換えてくれます。一方、手動インストールではライセンス内部コード、OS、ライセンス・プログラムの各層の置き換えを手動で行うものとなります。

IBM i OSリリース・アップの主なステップ

図3:IBM i OSリリース・アップの主なステップ2

自動インストールを使用したアップグレード方法

自動インストールは準備作業の中であらかじめ選択しておいたライセンス内部コード、IBM i OS、ソフトウェアの置き換えの一連を自動で行う方式となります。準備作業を行った上で、IPLモードを「通常」に変更、IPLソースをDとしてIPLを行うことで実施できます。

使用する導入メディアがイメージ・カタログの場合には、IPLソースは*IMGCLGとなります。なお、実際の置き換え作業でだけではなく、事前準備作業の中でも導入メディアの読み込み作業がありますので、イメージ・カタログにして実施するほうが効率良く、また作業実施時のメディア読み込みエラーも回避できます。その他、詳細については以下リンク先をご参照ください。

詳細リンクはこちら|https://www.ibm.com/docs/ja/i/7.5?topic=software-upgrading-replacing-using-automatic-installation

手動インストールを使用したアップグレード方法

手動インストールは、置き換え作業を順に手動で行っていく方式となります。自動インストールと異なり、各レイヤーの置き換え作業を確認しながら進めていくことができる利点があります。準備作業を行った上で、IPLモードを「手動」に変更、IPLソースをDとしてIPLを行うことで実施できます。自動インストールと同様に、使用する導入メディアがイメージ・カタログの場合には、IPLソースは*IMGCLGとなります。その他、詳細については以下リンク先をご参照ください。

詳細リンクはこちら|https://www.ibm.com/docs/ja/i/7.5?topic=software-upgrading-replacing-using-manual-installation

アップグレードの流れ

アップグレード (リリース・アップ) の流れは大きくは以下のとおりです。まずソフトウェアやハードウェアの要件を確認した上でアップグレード計画を立ててから、アップグレードを実行することになります。

詳細リンクはこちら|https://www.ibm.com/docs/ja/i/7.5?topic=software-fast-path-installation-upgrade-deletion-tasks

1.アップグレード計画を立てる

アップグレード計画を立てる際には、使用しているソフトウェア機能が新しいリリースにおいて使用できるかなどのソフトウェアの要件確認とともに、ハードウェアとして新しいリリースをサポートしているかについても確認する必要があります。また、IBM DocumationのほかにIBM SupportのWebページでもアップグレードに関する情報が各リリースにおいて出されていますので、必ず参照するようにしてください。

詳細リンクはこちら|https://www.ibm.com/support/pages/node/6554580

なお、ソフトウェア機能によってはリリースの置き換えによって動作が変わることもあるため、置き換えによるアプリケーションの動作検証をどのように実施するかも考えておかなければなりません。また、周辺システムとの連携機能や帳票印刷についても問題なく動作するかの検証も大切です。

どの程度検証期間を設けた上でリリース・アップを行うかスケジュールに落とし込んでおく必要があります。IBM i では「プログラム資料説明書」というドキュメントが各リリースで公開されており、前リリースからの変更点などがまとめられています。動作検証項目として何を入れておく必要があるかを把握するためにもプログラム資料説明書は必ず目を通しておく必要があります。

なおプログラム資料説明書は新しいOSリリースが出されたタイミングで日本語版ドキュメントが公開されます。日本語版ドキュメント公開後も、記載内容は定期的に更新されますがドキュメント自体の更新は翻訳元の英語版ドキュメントのみに加えられます。そのため、日本語版のプログラム資料説明書だけではなく、英語版である「Memo to Users」も目を通すようにしてください。

詳細リンクはこちら|https://www.ibm.com/docs/ja/i/7.5?topic=documentation-memo-users

詳細リンクはこちら|https://www.ibm.com/docs/en/i/7.5?topic=documentation-memo-users

2.アップグレードを実行する

計画立案後、検証を経て実際にリリース・アップを行うことになります。リリース・アップの実行方式としては前述の自動インストールと手動インストールの方法がありますので、それぞれ選択した方式で実施してください。

また、インストール実行後に2次言語の導入も行う必要がある場合があります。この場合には、IBM i OSリリース・アップの主なステップにあるようにPTF適用のステップの前にこれらの追加導入を行い、PTF適用を行う流れになってきます。

その後、結果の確認作業として、ライセンス・キーの追加や、INZSYSコマンドの実行状況、活動記録ログの確認などを行って一連の作業が完了となります。実行作業の詳細については「アップグレード方法」で言及している各リンク先を参照してください。

IBM i OSリリース更新時の注意事項

現行IBM i リリースを新しいリリースに更新する方法としては前述の通り、アップグレード (リリース・アップ) に加えてデータ移行による方法があります。ここではデータ移行による更新方法とともに、OSリリース更新時の注意事項として、以下の3つの点をポイントに紹介します。

・データ移行

現行マシンがIBM i 7.5をサポートしておらず、新規マシンで現行OSリリースをサポートしていないようなケースでは、データ移行によるOSリリース更新を行うことになります。データ移行によるOSリリース更新の主なステップは以下の通りです。

基本的には移行元サーバーで移行準備を行った状態でフル・バックアップを取得します。移行先サーバーにはIBM i 7.5 OS基本部分まで導入された状態にフル・バックアップからデータ移行を行い、その後、IBM i 7.5に対応したライセンス・プログラムを上書きする形で導入する流れとなります。OS基本部分は純粋な新規導入となってくるため、システム・オブジェクトに施された各種設定は手動で変更を反映させる必要があるなど当方法ならではの考慮点があります。

データ移行によるOSリリース更新の主なステップ

その他、データ移行の方法ならびに詳細については以下リンク先を参照してください。

詳細リンクはこちら|https://www.ibm.com/docs/ja/i/7.5?topic=software-data-migrations

・アプリケーションの対応

IBM i 7.5では、新機能が追加されるとともに一部の機能が廃止される場合がありますので、OSリリースの更新前にアプリケーションの対応状況を確認する必要があります。

前述の通り、プログラム資料説明書やアップグレードに関する情報がWebで公開されていますので確認の上、アプリケーションの動作に影響がないかの検証、また影響がある場合の対応方法の検討が必要となります。対応が必要となる例としてDb2 for i のSQLはOSリリースを経るごとに予約語が増えたり、SQL標準への準拠項目が追加されたりしています。既存のSQLステートメントで使用している単語で新たに予約語として追加されたものがないかなど確認する必要があります。

・運用体制の整備

IBM i 7.5では、運用に必要なツールや手順が変更される場合がありますので、OSリリースの更新前に運用体制の整備を行う必要があります。例としてWebベースのシステム管理インターフェースであるNavigator for i はUIを含めて大幅な機能拡張が図られており、接続URLも以前のNavigator for i と異なるものに変更となりました。なお、新しいNavigator for i はIBM i 7.5だけでなく、IBM i 7.3以降でPTF適用により利用可能になっています。

図4:新しいNavigator for i

Navigator for i の詳細については以下リンク先を参照してください。

詳細リンクはこちら|https://www.ibm.com/docs/ja/i/7.5?topic=data-navigator-i

詳細リンクはこちら|https://www.ibm.com/support/pages/node/6483299

IBM i 7.5を使用したアプリケーション開発

IBM i にはプログラム資産の継承性という大きな特長があり、以前のOSリリース上で作成したアプリケーション・プログラムをそのまま新しいOSリリースでも使用し続けることができています。IBM i におけるアプリケーション開発においては、継承性だけではなくリリースを経るごとに機能拡張もされています。この章ではIBM i 7.5を使用したアプリケーション開発についてご紹介します。

IBM i 7.5でのアプリケーション開発環境と言語

IBM i 7.5で使用できるプログラム言語としてCL, RPG, COBOL, C/C++が用意されています。RPGはIBM i 独自実装のプログラム言語でReport Program Generator の略称であることからわかるように当初はデータを読み込んでレポート (帳票) を作成するための簡易的な言語として提供が開始されたものになります。

現在は第4世代のRPGが提供されており、ILE (Integrated Language Environment: 統合化言語環境) に対応した言語となっています。そのためILE RPGと呼ばれます。ILEはIBM i で実装されているプログラミング・モデルで、異なる開発言語で作成したプログラム・モジュールを結合させてプログラム・オブジェクトを構成することで、静的呼び出しによる実行パフォーマンス、疎結合による保守容易性の向上などが図られています。先に述べたRPG以外のCL, COBOL, C/C++についてはILE対応された言語が提供されております。各ILEプログラム言語に関する詳細は以下リンク先を参照してください。

詳細リンクはこちら|https://www.ibm.com/docs/ja/i/7.5?topic=programming-ile-languages

これらのILEプログラム言語は主にSoR領域のプログラム開発で用いられていますが、IBM i では他にも主にSoE領域のプログラム開発で用いられることが多いオープンソースのプログラム言語もサポートしています。サポートするオープンソース・プログラム言語の例としては、Java, PHP, Ruby, Python, JavaScriptなどが挙げられます。

プログラム開発環境としては5250画面のADTSの他にも、以前よりRational Developer for i (RDi) と呼ばれるEclipseベースの統合開発環境が提供されています。RDiにはRPGやCOBOLなどILE言語による開発に最適なパースペクティブが用意され、デバッガーなども備えています。Eclipseベースですので、オープンソースのプログラム言語の開発との親和性も高くなっています。RDiの他にもVisual Studio Code (VSCode) を使用したIBM i プログラム開発についても広がりを見せています。

Code for IBM i と呼ばれる拡張機能がされており、ILE言語によるプログラム開発にVSCodeが使用できるようになりました。RDiやVSCodeを開発環境として利用するメリットの1つとしてGitやJenkinsなどのソース/ビルド管理と連携した開発 (いわゆるDevOps) を行えるようになる点があります。またIBMからもIBM i Merlin (IBM i Modernization Engine for Lifecycle Integration) が発表されています。IBM i MerlinはVSCode, Git, Jenkinsをベースとする開発環境とともにCI/CDの実装機能が含まれたIBM i 開発・モダナイゼーション環境となっています。IBM i Merlinについての詳細は以下リンク先を参照してください。

詳細リンクはこちら|https://ibm.github.io/merlin-docs/#

アプリケーション開発のポイントと注意事項

IBM i 7.5で機能強化された点を踏まえたアプリケーション開発を実施する際のポイントとして以下の3点につきまして、簡単にご紹介したいと思います。

・セキュリティーの強化ポイントを考慮する
・パフォーマンスを最適化できないか検討する
・既存開発の場合はAPIの仕様差異を確認する

セキュリティーの強化ポイントを考慮する

IBM i 7.5ではセキュリティーが強化されており、セキュリティー・レベル20が使用できなくなりました。そのため、プログラムならびにデータベース・オブジェクトに対するアクセス権限を適切に付与することをアプリケーションの開発のタイミングで考えておく必要があります。

またその際には各オブジェクトに個別に権限を付与するのではなくグループ・プロファイルや権限リストを使用することを念頭に置き、アクセス・パターンを整理した上での付与となるようにすることが推奨されます。既存のアプリケーションにおいて、各オブジェクトに対してどのような権限が必要になっているかを把握することも大切です。

権限の把握には権限収集機能を利用できますので、ぜひ活用を検討してください。権限収集機能は、ユーザー単位での収集がIBM i 7.3からサポートされており、IBM i 7.4ではユーザー単位でアクセスする特定のオブジェクトに対する権限情報の収集ができるようになっています。IBM i 7.5ではさらに特定のオブジェクトに対する各ユーザーの権限情報を収集することができるようになりました。権限収集機能についての詳細は以下リンク先を参照してください。

詳細リンクはこちら|https://www.ibm.com/docs/ja/i/7.3?topic=reference-authority-collection

詳細リンクはこちら|https://www.ibm.com/docs/ja/i/7.4?topic=reference-authority-collection

詳細リンクはこちら|https://www.ibm.com/docs/ja/i/7.5?topic=reference-authority-collection

パフォーマンスを最適化できないか検討する

システム・パフォーマンスの面でもIBM i 7.5では保管コマンドの圧縮パラメーターにおけるZLIBオプションのサポートなど機能強化が図られています。(なお当機能強化はIBM i 7.4においてもTR7で実装されています。)ZLIBによる圧縮ではオブジェクト・サイズを従来のオプションと比較してより小さくすることができますが、その分プロセッサー処理能力が必要となります。

Power10プロセッサーではオンチップNest Accelerator (NX) ZLIBの利用により処理時間への影響を最小化できますが、それより前のプロセッサーでは相応の処理時間への影響があることを踏まえておく必要があります。アプリケーション開発、特に保管処理を組み込んだ夜間バッチ処理などでぜひ活用いただける機能になりますが、処理時間への影響を検討した上での適用が大切です。

既存開発の場合はAPIの仕様差異を確認する

IBM i ではジョブ現行ユーザーの一時変更などCLコマンドでは実現できなくともシステムAPIを使用することで実現できることがあります。そのような機能の実装のためにシステムAPIを使用しているケースも多くあります。システムAPIはOSリリースを経ても継続的にそのままの実装で利用できるケースがほとんどですが、ものによっては仕様が変わっているものもあります。使用しているシステムAPIについては、仕様が変わっていないか、変わっている場合の対応方法について確認しておくことが必要です。新しいOSリリースにおいて変更が加えられたシステムAPIについてはプログラム資料説明書での確認することが最初になります。

また、以下リンク先のIBM Documentation内にあるAPI finderの「グループによる検索」で「すべての変更API」を選択することで変更が加えられたAPIについて一覧化することができ、確認すべきAPIの絞り込みに利用できます。

詳細リンクはこちら|https://www.ibm.com/docs/ja/i/7.5?topic=interfaces-api-finder

まとめ

IBM i 7.5ではセキュリティーやパフォーマンスの面を含め、様々な機能拡張が図られており、当記事では機能拡張点、アップグレードに関する情報とアプリケーション開発に関する情報をまとめました。IBM i 7.5に直接アップグレードすることがサポートされているOSリリースはIBM i 7.3とIBM i 7.4となります。IBM i 7.3は2023年9月30日をもってサポート終了となっており、すでに延長保守期間にはいっていることから今後IBM i 7.5への移行がますます進んでいくものと考えられます。

IBM i 7.5への移行において考えなければならない最も大きなポイントがセキュリティー・レベル20のサポート終了です。セキュリティー・レベルの変更だけではなく、OSリリースの更新にあたっては様々な方法とともに考慮点・注意事項があります。当記事がIBM i 7.5へのOSリリース更新を検討する際の一助になれば幸いです。