Q1
IBM iのソースコードエディターは何を使うのがいいですか。
A1
「02 IBM iの開発環境選択基準」を参照してください。
Q2
IBM iでのSCM(Source Code Management)はどうなっていますか。
A2
Javaなどで広く用いられているSCMツール(従来だとCVS、今だとGitなど)は、5250画面環境ではADTS(Application Development Tools)があり、その中でSEUやPDMが利用できます。PDMは複数ソースをまたいで、ソースコードの検索調査が行える高速なツールです。
しかし、いわゆる変更管理(変更履歴やインシデントとの対応付けなど)の機能は搭載しておらず、サードベンダー製品の購入が必要でした。最近ではRDiと合わせて利用が可能になるELM(IBM Engineering Lifecycle Manage
ment)が使えるようになり、ソース変更履歴の追跡やインシデント情報との関連付け、コードビルド制御などSCMなどで期待されている機能が利用できます。
またIBM iに直接Gitを導入してソースを管理する、またはVisual Studio CodeとIBM iを接続して、Gitでソースを管理していくことも可能です。
Q3
IBM iでのJava開発で使用するToolbox for Javaって何ですか。
A3
IBM iでのJavaによる開発・実行では、Javaそのものに他のプラットフォームとの違いはありません。言語シンタックスなど同じものが利用できますが、IBM iのOSの機能をJavaから参照操作したい場合に必要となるのが、Toolbox for Javaです。システムの状況を参照し、DBへアクセスするためのドライバ(JDBCやRLA)がパッケージ化されており、IBM iでのJava開発ではToolbox for Javaが必須です。
Toolbox for JavaはIBM i OS上のIFSに組み込まれて出荷されるほか、JTOpenというオープンソースとしても広くインターネットで入手可能です。最新の機能などはJTOpenで実装され、製品版のToolbox for Javaに反映されるという流れになっています。
Q4
IBM iのDb2ってどこか特殊なのですか。
A4
IBM iに統合されているDb2 for iは、OSに同梱されていることもあり、世間的なイメージとしてはかなり誤解されている面があります。しかしDb2 for i はIBM Db2ファミリーにラインナップされており、IBM Z版やLUW版(Linux、UNIX、Windowsなど)と並んで提供されるDb2製品の1つです。
そのためSQL命令などの互換性は注意深く保たれており、アプリケーション開発時に、SQLが異なることはほとんどありません。ストレージ管理の容易さ(SLS機能など)により、SQLテーブルスペース管理周りの命令が不要などといった違いはありますが、これは運用面のごく一部であり、かつ運用が容易になるメリットもあって、あまり問題にはなっていません。
しかしSQLの実行面から見ると、Db2製品それぞれで違いが生じます。実行コストをあらかじめ最適化エンジン(オプティマイザー)が計算し、アクセスプランを作成し、実行するコストベースのSQLであることは確かですが、各自のプラットフォームごとの実行特性に合わせた最適化が施されるため、同じSQLを流してもアクセスプランが異なる場合が生じます。
「LUW版でSQLを作成し、IBM iで実行したら、パフォーマンスが違った」という声をよく聞きます。これはある意味当然で、同じDb2ファミリーであっても実行時に必要な考慮点が異なるということです。IBM iは昔から大量データを高速に処理するために索引処理を重要視しており、SQLではインデックスの有無がまず優先的に検討すべき事項となっています。
これに対してWindows環境では、データ量がそれほど多くない場合がよくあります。特に開発現場では少量のテストデータでテストを実施し、インデックスをさほど考慮せずに開発を通過している場合が多々あります。
こうした場合、IBM i環境にこのようなSQLを持ち込むと、不具合が生じるケースが見られます。IBM iはある意味、RDBの基本に忠実に作られているので、適切なインデックスなどを考慮しておけば、それほど難しい問題に遭遇することはありません。
Q5
IBM iに開発コミュニティはありますか。
A5
日本語環境では、草の根的には存在します。海外に目を向けると活発なユーザー活動が展開されており、IBM iの最新機能についても積極的な意見交換がなされています。IBMでもdeveloperWorksサイト上でIBM iコミュニティを設け、積極的に支援しています。英語という壁はありますが、一度覗いてみることをお薦めします。マニアックな記事からIBM iとクラウドの連携など、製品の機能紹介にとどまらない興味深い情報が満載です。
また開発に関連するコミュニティとして、2024年に日本IBMの主催により若手技術者育成コミュニティ「IBM i RiSING」が発足しました。IBM iの次世代エンジニアのための技術力向上と情報交換を目的としたコミュニティで、IBM i基礎の振り返りから、フリーフォームRPG、生成AI、クラウド(Power Virtual Server)、オープンソースソフトウェア(OSS)、IoTなど、IBM iエコシステムでの最新技術トレンドを技術研鑽する機会が提供されています。
IBM i RiSING
https://ibm.biz/IBMiRiSING
Q6
IBM iのRPGやCOBOLでWebサービスやRESTサービスは作れますか。
A6
作れます。OS標準機能で搭載されている統合Webサービス・サーバー(IWS)というアプリケーションサーバーを使います。SQLだけでなく既存プログラム(ILE RPG、ILE COBOL)を活用でき、呼び出しインターフェースをProgram Call Markup Language(PCML)というXML形式で定義することで、既存のシステム資産をRESTサービスなどで利用できます。これらを活用し、クラウドとのデータ連携を実現したシステム構築が進んでいます。
Q7
IBM iではOSSをどのように始めればいいですか。
A7
IBM iでOSSを利用するには、yumを導入する必要があります。また、インターネットに接続されている場合と、そうでない場合の導入方法があります。手軽な導入方法は、ACSを使用してyumを導入する方法です。以下を準備してください。
・IBM iでsshdを起動する
・OpenSSH(5733-SC1:オプション1)が導入されていることを確認する
・ACSを最新にする(V1.1.8以上にする)
ACSからオープン・ソース・パッケージ管理を開き、初回はオープン・ソース・パッケージ管理yumユーティリティをインストールし、OSS環境を作成します。パッケージの導入状況など(インストール済み/使用可能/バージョン)を一覧表示で確認でき、適宜追加インストールが可能です。
Getting started with Open Source Package Management in IBM i ACS
http://www-01.ibm.com/support/docview.wss?uid=nas8N1022619

著者
肥沼沙織氏
日本アイ・ビー・エム株式会社
テクノロジー事業本部
IBM Power テクニカルセールス
[i Magazine 2025 Spring号掲載]