Why Z Open Automation Utilities

Background

Job Control Language (JCL) has been used for a long time for performing or automating a set of steps on the z/OS operating system. When it was developed, the punch card was king and when it was transformed to be programmed from a keyboard, 80 character lines or records with the first 72 characters containing code seemed reasonable. Though JCL has evolved with the times, it is inevitably foreign to people familiar with environments such as Linux, UNIX, and Windows.

On z/OS, as an alternative to using JCL in MVS, developers can write scripts to automate tasks in the UNIX System Services (USS) environment. Such scripts are easier to understand and to manage, and many open source tools are also available in UNIX System Services.

However, there is a gap in some cases, and z/OS developers have to fall back to submitting JCL jobs, which requires z/OS specific knowledge. In addition, JCL jobs are asynchronous, which means you must submit them to batch and wait for the result; as a result, they do not fit in well with the rest of the script, which is typically synchronous. For example, if you want to run an MVS command, such as IDCAMS, to work with VSAM data sets, you need to create JCL, submit JCL, poll until the JCL completes, then interpret the results from UNIX System Services.

How can Z Open Automation Utilities help

IBM® Z Open Automation Utilities (ZOA Utilities) fills in the gap by providing the underlying runtime to support executing automation tasks on z/OS via Java, Python, and shell commands. With ZOA Utilities, you can run traditional MVS commands, such as IEBCOPY, IDCAMS, and IKJEFT01, as well as perform a number of data set operations in the scripting language of your choice.

ZOA Utilities is useful for z/OS developers who want to automate tasks that access MVS resources.

Run commands from a UNIX System Services command line

ZOA Utilities is designed as a natural way for programmers familiar with Linux and UNIX to use the UNIX System Services environment directly to access traditional MVS resources such as data sets directly without the need for JCL. The utilities have a name and syntax that is familiar to UNIX developers. For example, you can use the dls command to list data sets, which has a similar syntax and output to the ls command that is available on UNIX and Linux environments.

The ZOA Utilities commands are true UNIX System Services commands and support piping and redirection of stdin, stdout, and stderr. This makes it easy and natural to incorporate the ZOA commands into your shell and bash scripts, with no complex dependencies.

Man pages are provided for the ZOA Utilities commands so that you can learn the details of the commands in the same way that you would as for other Linux or UNIX commands.

Call APIs in Java and Python programs

The idea is extended to the Java and Python programming languages as well. ZOA Utilities provides easy-to-use class libraries for accessing MVS resources such as data sets directly from the language you want, without requiring installation or configuration of other software.

Create your own libraries in other programming languages

You can also create your own libraries in other programming languages, such as Node.js, for MVS operation by using the shared library provided by ZOA Utilities.

Benefits of ZOA Utilities

For more information and examples, see Using commands and APIs provided by ZOA Utilities.