The proliferation of web services applications utilizing the Internet in recent years has been staggering, and it’s not by coincidence. REST applications are simple, use the ubiquitous HTTP protocol, and are easy to organize.
The IBM z Systems mainframe has thrived in its role as a transaction workhorse and big data repository, and enhancements to the z/OS web server space through the years have allowed it to be more readily accessible to the outside world. But what about z/OS applications looking to access the outside world as a client in a web interaction? For many execution environments, there is no easy way to perform HTTP REST calls. In addition, JSON parsing on z/OS is another problem, because there is no native JSON services built-in to z/OS.
Starting in z/OS V2.2 and now available in z/OS V2.1 via a couple of service updates, the new z/OS Client Web Enablement Toolkit changes the way of thinking about z/OS applications communicating with another web server. Built into the base of the server, the toolkit provides an easy-to-use, lightweight solution for applications looking to easily participate as a client, in a client/server web application. It provides a built-in:
- z/OS HTTP/HTTPS protocol enabler using interfaces similar in nature to other industry-standard APIs
- z/OS JSON parser to parse JSON text coming from any source and the ability to build new or add to existing JSON text
While almost all environments on z/OS can avail themselves of these new services, traditional z/OS programs running in a native environment (i.e., apart from a z/OS UNIX or JVM environment) stand to benefit the most. Prior to the availability of the toolkit, native z/OS applications had little or no easy options available to them to participate as a web services client.
Now, programs running as a batch job, started procedure, or in almost any address space on a z/OS system have APIs that they can utilize in a similar manner to any standard z/OS APIs provided by the OS. Programs can invoke these APIs in the programming language of their choice. C/C++, COBOL, PL/I, and Assembler languages are fully supported and samples are provided for the first three languages mentioned.
Other blogs posted here will go into more detail about the two parts of the toolkit and how your existing or new z/OS applications can utilize these powerful new APIs with relative ease.
For now, please consult the z/OS V2.2 version of the publication, “Callable Services for High-Level Languages” (SA23-1377-03) and the z/OS V2.1 version of the “Introduction and Release Guide” (GA32-0887-01).
If your z/OS client application lacks REST, the z/OS Client Web Enablement Toolkit may be the perfect remedy.
About the Author:
Steve Warren is a Senior Software Engineer and the overall technical lead for both z/OS BCPii and the z/OS Client Web Enablement Toolkit. He has worked at IBM for 26 years, focusing on z/OS design, development, and FCT in APPC/MVS, System Logger, Websphere, BCPii, and the Toolkit. Steve loves to travel. His travels include visits to multiple locations in the Philippines, Indonesia, Thailand, Brazil, Europe, and 40 out of 50 states in the USA.