メニューボタン
IBMiコラム2021.01.27

IBM i のウンチクを語ろう
~ その55:静かにしぶとく進化を続けるACS

安井 賢克 著

皆さん、こんにちは。最初は特に注目していなかったけれども、IBM i のバージョンやTR (テクノロジー・リフレッシュ、同一バージョンにおける機能強化でWindows 10のアップデートに相当)レベルが更新される都度、頻繁に強化が繰り返されている機能・製品があります。ACS、すなわちIBM i AccessのJava版はそのような製品の一つです。2012年だったと思いますが、初登場の頃に製品担当として行きがかり上試してはみたものの、IBM i Access for Windows (以下Windows版)が主力だった時期に、何でわざわざ機能も不十分だしパフォーマンスも良いとは言えない製品を登場させたのか、一体誰が使うのだろう、というのが最初の印象でした。IBMはそれでも地道に年に何度かの機能強化を繰り返し、とうとうWindows版を置き換えるところまで製品を進化させたのはご存知のとおりです。しばらくの間は注目されなかったために、ACSはつい2~3年前に登場したばかりの製品、という印象をお持ちの方も多いかもしれませんが。

進化の痕跡はドキュメントに残されており、英文ではありますがどなたでも参照する事ができます。以下にあるIBMサイトからACSのzipファイルをダウンロードし解凍すると、「Documentation」フォルダーが生成されます。エクスプローラでファイルを名前順に並べると、一番下の見落としがちなところにテキスト形式の「readmespacs.txt」がありますので開いてみてください。例えば2020年12月に登場したバージョン1.1.8.6だと、以下のような表記が最初に目に入ります。

IBMダウンロードサイト
https://www-01.ibm.com/marketing/iwm/platform/mrs/assets?source=swg-ia

「readmespacs.txt」の冒頭部分

IBM i Access Client Solutions
5733-XJ1 Cumulative Service Pack Level
-------------
LCD8-2010-26
-------------
(c) Copyright IBM Corporation 2020. All rights reserved.

着目したいのはサービスパック・レベルと呼ばれる「LCD8-2010-26」の末尾の26です。ACSバージョン1.1.8.6は初版から数えて第26版目にあたることを意味します。そもそも初版登場は9年近く前ですので、平均すると年に3回程度の機能強化やコードの修正を繰り返していたことになります。2020年を例にとると、4月のバージョン1.1.8.4、8月の1.1.8.5と12月の1.1.8.6、の計3回です。

3

このしぶとさは、IBMがこの製品を戦略的なものと位置付けていたことから来るものなのでしょう。長期的視野に立って主要機能の一つとして捉え、市場に広く受け入れてもらうために、安定性と機能性を充実させようという明確な意図があったということです。最初は実験的に登場させてみて、市場の反応を見極めながら製品の方向性を固めていったのかもしれません。いずれにせよ、ほとんどの方はWindows版から移行されてきた、もしくは未だの方はこれから移行しようとされているところだと思いますが(Windows版はWindows10をサポートしませんので、移行は是非お早目に)、ACSはMacやLinuxもサポートしている事はご存知のとおりです。IBMが9年も前に今日の市場におけるMacの隆盛を想定していたとは考えられませんが、少なくとも個別にMac版やLinux版を維持してゆくよりは、単一のプログラムで同時に複数のクライアントをサポートできる方が有利である事は間違いありません。

さて、ここで一転して少々視野を拡げてみたいと思います。IBM i における戦略的機能強化項目は何でしょうか。例えばIBM発信の2020年10月6日付けIBM i 7.4 TR3の発表レターを見ると、「strategic」(戦略的な)という単語が3回登場します。うち1回はアプリケーション開発ツールのRDi (Rational Developer for i)、残り2回はIBM i Services (IBM i サービス)の説明部分で用いられています。それによるとIBM i サービスとは、SQL文を通じてIBM i のオブジェクトやシステム情報などにアクセスするための「戦略的手段」(the strategic method)であり、その中でも特に「SYSTEM_STATUS_INFO」は、WRKSYSSTSコマンドの「戦略的代替手段」(The strategic alternative)であるとされています。私がアクセスできるIBM i バージョン7.3のシステムで実際に試してみると、返されてくる情報項目の数は、WRKSYSSTSコマンドの15に対して、IBM i サービス(SELECT * FROM QSYS2.SYSTEM_STATUS_INFO)では33と倍以上ありました。戦略的というのは言葉だけではないようです。

この「戦略的手段」は、登場当初はSQLサービスと呼ばれていたので、SQL文を管理する手段の一つだろうといった程度の印象しか持っておりませんでした。その後IBM i サービスと名称が変更されたわけですが、OSがプログラマやオペレータ向けに機能を提供(サービス)するのはあたり前なので、どのような意義があるのか見当もつきませんでした。コマンドに代えてSQL文が利用できるという点を考慮すると、「SQL文によるIBM i サービス」のように、「SQL」という言葉を残しておいてくれた方がわかり易かったかもしれません。対話形式で使いたいケースも多いでしょうから、5250エミュレータを利用するのであればRUNSQLコマンドの入力が前提になりますが、ACSにおいて提供されるGUI環境を利用する事もできます。ACSを起動すると最初に表示されるパネル(ACS GUI)の中にある、「SQLスクリプトの実行」メニューがそれです。

メニュー

ACSはもはや単なる5250エミュレータの枠には収まらない製品であることはご存知のとおりですが、上記の「IBM i (SQL)サービス」や「SQLスクリプトの実行」はどのように扱われているのでしょうか。再び「readmespacs.txt」における、過去の機能強化の記録を眺めてみましょう。体裁があまり整えられていない英語テキストファイルなので読み辛い点もあろうかと思いますが、ACSバージョン毎にセクションが区切られ、機能強化項目が箇条書きされています。これによると、「Run SQL Scripts」(SQLスクリプトの実行)が初めてACSでサポートされるようになったのは2015年12月の第11版(バージョン番号無し)、さらにその上でSQLサービスないしIBM i サービスが利用可能になったのは2017年3月の第16版にあたるバージョン1.1.7.0、となっています。以降バージョンアップを重ねる都度、機能強化が繰り返されています。

IBM i のコマンド・セットを完全に代替するところまでには至っていないという事から、IBM i サービスは発展途上にあると言えますが、どのような点が優れているのか、いくつか思い付く点を述べてみたいと思います。まず明らかなのは、SQL文をベースとしているので汎用性が高く、スキル保有者数はIBM i コマンドのそれに比べて圧倒的に多いことです。特にJavaやPythonなどといったオープンな言語で記述されたプログラムから、SQLによって直接IBM i にアクセスして必要な情報を取得できる、といった汎用性もあります。またACSの「SQLスクリプトの実行」を利用すれば、GUI環境、入力アシスト機能、サンプルの活用、といった使い勝手の良さや柔軟性も享受できます。この点はエミュレータ前提のRUNSQLよりも優れています。

IBM i サービスで何ができるのか、各機能とSQL文サンプルの全体像は、IBM製品のオンライン・マニュアルであるKnowledge Centerに掲載されています。IBM i バージョンやTRレベル毎の違いを知るための、IBM Supportページを参照するところから始めるよう推奨する海外のブログもありますが、英語が前提になるので日本ではお勧めし辛いところがあります。サービスの一覧を参照できる特別なサービス(SERVICES_INFOテーブル)を利用し、Knowledge Centerと突き合わせるところからスタートするのが良いのではないかと思います。

スタート

簡単に手順を記しておきましょう。ACS GUIにおいて「SQLスクリプトの実行」を選択し、表示されるパネル内で「SELECT * FROM QSYS2.SERVICES_INFO」(SERVICES_INFOサービスによって取得した全ての情報を出力)と入力すると結果一覧が表示されます。環境にもよると思いますが私がアクセスしたシステムだと、例えば先頭行に「SERVICE_CATEGORY」(サービス・カテゴリ)コラムに「PTF」、「SERVICE_NAME」(サービス名)に「PTF_INFO」と出ます。そこでKnowledge Center内「IBM i サービス」 > 「PTFサービス」 > 「PTF_INFOビュー」を参照すると、このサービスの詳細情報と共にSQL文のサンプルを得ます。ついでながらエミュレータのSTRSQL内で上記SQL文を入力してみてください。ACSの方が圧倒的に見易いという意見に同意いただけるのではないかと思います。

サンプルはACSの中にも含まれています。「SQLスクリプトの実行」パネルから、「編集(E)」 >「例」 > 「例から挿入... ctrl + I」 > プルダウンメニューの「IBM i Services」を選択すると、多数のSQLプログラムが見つかります。適宜カスタマイズできますし、中には手を入れなければならないものも含まれますが、これらを活かして色々と試してみるのも面白いのではないでしょうか。

ではまた

あわせて読みたい記事

サイト内全文検索

著者プロフィール

パワーシステム・エバンジェリスト

安井 賢克
やすい まさかつ

2017 年 11 月付けで、日本アイ・ビー・エム株式会社パワーシステム製品企画より、ベル・データ株式会社東日本サービス統括部に転籍。日本アイ・ビー・エム在籍時はエバンジェリストとして、IBM i とパワーシステムの優位性をお客様やビジネス・パートナー様に訴求する活動を行うと共に、大学非常勤講師や社会人大学院客員教授として、IT とビジネスの関わり合いを論じる講座を担当しました。ベル・データ移籍後は、エバンジェリストとしての活動を継続しながら、同社のビジネス力強化にも取り組んでいます。

PAGE TOP