By Bruce Armstrong – Member Zowe™ Leadership Committee and IBM Z Offering Manager
In A Beginners Guide to Cloud and IBM Z , Bill gives a “shout out” to Zowe™ as an example of openness on z/OS®. Let’s take a deeper dive into Zowe™ and explain its capabilities – especially for z/OS® cloud environments.
First, let’s be clear: Zowe™ is an open source project hosted by The Open Mainframe Project and a key goal is to encourage innovation on z/OS® by anyone – z/OS® customers, software vendors or system integrators. It is an extensible software framework that is primarily targeted for the new generation of z/OS® system programmers, DevOps professionals and developers who, most likely, already have experience with cloud-based development, deployment, operation and administration. However, Zowe™ is not limited to the new generation – anyone could find value in and use Zowe™.
If there are two words to describe Zowe™ it would be “cloud interfaces”. Note that it is not “cloud” for z/OS® – as Bill states, cloud has many dimensions. Specifically, Zowe™ provides a cloud-native experience for users of z/OS® via a choice of three cloud-friendly interfaces (Application Framework, CLI and API Mediation Layer). Let’s review the Zowe™ technology:
This key feature of Zowe™ is a z/OS® native web user interface that includes a set of starter web applications to do simple operations like browsing job listings or editing data sets and files. With the Zowe™ web server installed and running, you can just point any popular browser to z/OS®-based URL, log in with the same userid and password as if you were using TSO and become productive right away. (No client code needed to be installed.) The web browser user interface provides a cloud interface (i.e., web browser) to z/OS® just like you would expect to see on any other cloud environment.
However, the Zowe™ web user interface is not yet a full replacement of the decades of function provided by ISPF. The Zowe™ web user interface is the beginning of reimagining the interactive way to work with z/OS®. To bridge the prior decades of green-screen 3270 applications, the Zowe™ web user interface includes 3270 emulation to allow continued use of applications as the web user interface evolves.
One benefit of the web user interface is it is not necessary to “learn the mainframe” to create useful applications. For example, if you want to create an application that lists datasets, you won’t have to learn the platform specific operations to be done. If you understand REST APIs and how to write web applications you can build applications for z/OS®. As of this writing, not all the web REST APIs are registered in the API Mediation Layer (described below) but they will provide a high-level abstraction for z/OS® operations through these REST APIs for anyone to use.
Most importantly, the Zowe™ web user interface is designed to be the web application integration framework for the future. Zowe™ supports iFrame, React and Angular web applications to coexist and – in many usage scenarios – allows launching from one application to another to break down the functional silos of past generations of z/OS® tools. Since Zowe™ is an open source project and part of the Linux Foundation, any vendor or customer can create web apps using the desktop – just as someone would add an application to a cloud environment.
Secondly, Zowe™ provides a Command Line Interface (CLI) for developers, DevOps staff and system programmers who prefer to use a command line – again z/OS® appears like any other cloud environment. In a typical cloud environment, a user might open up a text-based, command line window and use commands to work with local files and REST APIs. The CLI is different than the web user interface mentioned previously – the Zowe™ CLI can access z/OS® from a desktop, laptop or other cloud environment – anywhere where a node.js application can run. This localization and personalization of the CLI has some advantages as we will describe in a minute.
The CLI interacts remotely with z/OS® REST APIs for issuing commands, accessing data sets, etc. and the result is roughly the same as the web user interface – except the format is a command line rather than web browser. The CLI also uses z/OS® access security and is extensible. Already there are plug ins for CICS, IMS, DB2, FTP, SSH with more to come. Using the CLI allows easy integration with other local tools and can be driven by any scripting language. This blend of z/OS® interactions and leveraging local tooling is a powerful combination. In all cases the z/OS® interactions and integrations are controlled by common security authentication.
Scripting of the CLI allows you to build powerful automation scripts with z/OS® and in combination with other platforms, whether they be distributed systems or hybrid cloud. Do you need to edit a file, submit it, check the output, and conditionally take an action? Maybe conduct this on a timed basis? If so, scripting with the CLI is for you – just as if you were doing the same operations in a cloud environment.
Finally, cloud environments use REST APIs and they are the core of their programming model – it is the same with Zowe™ running on z/OS®. Zowe™ provides REST APIs and leverages REST APIs provided by the z/OS® operating system (i.e., z/OS® Management Facility) and by other products and subsystems on z/OS®. Zowe™ provides a consolidation point for REST APIs running on z/OS® and some fundamental REST API management capabilities (referred to as the API Mediation Layer).
Three important capabilities in the API Mediation Layer are API discovery, access security and load balancing of API requests on z/OS®. These capabilities make z/OS® cloud-like in its operation.
Security & access control are integral to z/OS® environments. Zowe™ can control who has access to which APIs by leveraging the common security management packages on z/OS®. Security remains an area of continued investment in the Zowe™ open source community.
One of the strengths of z/OS® is the ability to balance workloads to make use of the many hundreds of processors that can be in use on an IBM Z system. This means that API services may move to execute on the optimal processing environment of choice. The Zowe™ API Catalog allows API services to register and notify of their existence and location in the environment making it easy to find the service via a lookup in the Zowe™ API Catalog.
So, there you have it: a whirlwind tour of Zowe™ and how it relates to cloud on z/OS®. Pictorially Zowe would slightly modify Bill’s original cloud diagram to show where the interfaces are logically located. Zowe™ provides key capability for exposing services for applications (SaaS), and the CLI and Web UI provide capabilities that contribute to an open z/OS® for use as a cloud platform.
In conclusion, the Zowe™ open source project is pioneering new interfaces for z/OS®. These interfaces can be used by a variety of z/OS® staff ranging for cloud architects, DevOps designers and implementors, system programmers, operations personnel and software developers. The project is seeking additional community members to help design, develop, test, and document Zowe. Come join the project and help Zowe meets your needs. More information on Zowe™ can be found at: https://Zowe.org/home/
Zowe™, the Zowe™ logo and the Open Mainframe Project are trademarks of The Linux Foundation. Linux is a registered trademark of Linus Torvalds.