ZOAU(IBM Z Open Automation Utilities)

ZOAU(ZOA Utilities)(*1)は、z/OSの自動操作をサポートするための各種のランタイム(プログラミング・インターフェース)です。PythonやJavaからAPIを呼び出すかあるいはUSSシェルからコマンドとして実行することで、データセットやスプール内SYSOUTにアクセスしたりMVSコマンドを発行したりすることができます。例えば、USSシェルでは他のUnix(Linux)同様にlsコマンドでファイル一覧を表示することができますが、dlsというZOAUコマンドを実行することでMVSデータセット一覧を表示することができるようになります。jlsコマンドはデータセットではなくジョブの一覧リストを表示します。

MVSの時代からz/OSの基本的な使い方として、ISPFとSDSFもしくはJCLと各種ユーティリティーの実行、コンソールからのコマンド入力が行われて来ました。しかしながら、3270エミュレーターの利用やJCLによるプログラムの実行手順は、オープン系システムでコンピューター・システムの使い方を習得したエンジニアにとっては異質な世界で大きなギャップがあります。ZOAUはそのギャップを埋めるべく、3270エミュレーターとJCLに替わってUSSシェル・コマンドによってあるいはPythonやJavaなどのオープン系システムにおいてポピュラーな言語のプログラムからMVSリソースにアクセスするサービスを提供します。
USSからMVSバッチ・ジョブを介してMVSにアクセスする方法もよく知られていますが、バッチ・ジョブは非同期に実行されるため、USS側の後続処理との同期合わせを行う様々な工夫が利用者によってなされました。しかし、同期型のMVSアクセス・サービスであるZOAUを利用すれば、同期合わせの工夫も必要無くより容易にMVSリソース(*2)を直接利用できます。

これまではz/OSシステムに携わるなら、3270エミュレーターによるTSOコマンドやISPFやSDSFの使い方を覚え、JCLの書き方も習ってプログラムをジョブとして実行する手順を理解し、必要に応じてMVSやJES2コマンドを実行するといった基本操作を身に付ける必要がありましたが、もはやコンピューター・エンジニアと言えば圧倒的にオープン系システムのエンジニアを言う今日では、オープン系システムの使い方のままz/OSを使えるように変わってきています。メインフレームといえどもコンピューターはただの道具に過ぎませんから、目的さえ果たせれば利用者にとって使いやすい方法を選択できるようになってきています(*3)。


*1 有償プログラム製品で別途オーダーが必要
*2 例えば、データセットへのアクセスやユーティリティーの実行など
*3 ZOA Utilitiesやwebブラウザーなどからz/OSにアクセスする機能を提供するz/OSMFなどは、従来のMVSプログラムと比べメモリーやCPUなどのハードウェア・リソースを大量に消費するが、今日のハードウェアのプロセッサー能力ではそれらを十分にカバーできるようになった。

ZOAUコマンドでIEBGENERを実行する

USSシェルからZOAUコマンドを使って、MVS側でIEBGENERユーティリティーを実行する例です。

mvscmdがMVS側でプログラムを実行するコマンドです。プログラムからのメッセージは、JCLであれば通常SYSOUTにルーティングしますが、USSシェルであればsshクライアント・ターミナルにルーティングできます。上記の例では、IEBGENERユーティリティーからのメッセージが端末に出力されていることがわかります。

実際に使用する場合は、コマンド単体で使うよりはシェル・スクリプト内に記述することが多いでしょう。バッチ・サブミットと違って同期を合わせる必要が無いため、MVS側リソースをアクセスする非定型処理を自動化するのも容易です。より複雑な処理が必要であれば、PythonやJavaと組み合わせることもできます。

関連サイト

  • IBM Z Open Automation Utilities documentation(https://www.ibm.com/docs/en/zoau)
  • Master the Mainframe – ZOAU Challenges(https://www.youtube.com/watch?v=OsUtHXANvIw)