Picking software really is like choosing the right tool from a toolbox full of options. Many thanks to Frank De Gilio’s blog Ansible, z/OSMF, and ZOWE – Picking the Right Tool for the Job for a great analogy and summary! His description should trigger you to think about several issues. What is your role? What is your skill level? Are you a Do-It-Yourself (DIY) individual, working in a team or an enabler for someone else? Let’s explore Zowe in this article – we won’t make you an expert, but we will “drill” (pun intended!) into some answers to these things to consider.
First, if you are not already familiar with Zowe, it basically uses REST APIs on z/OS and provides a choice of three different styles of user interface to exploit them. Zowe provides some of its own out-of-the-box tools but, at its core, is an “open source integration framework”. It is important to keep in mind that Zowe is only as capable as the REST APIs that it uses. Those REST APIs can be provided by z/OS (z/OSMF), or other IBM products such as – but not limited to - IBM Z NetView®, IBM Z Workload Scheduler, IBM Z System Automation, or IBM Remote System Explorer (RSE). Any other vendor products or even customer-written applications with REST APIs can be used too!
There are three user interfaces, each with different strengths depending on your skills and what you want to accomplish. Zowe provides a Command Line Interface (CLI), primarily for Subject Matter Experts - SMEs. Zowe also provides, a web browser interface, usually intended for administrators or operations staff. The Zowe web browser interface has been called the Zowe Desktop or App(lication) Framework over the years. The App Framework is probably the most accurate name since it is intended to consolidate z/OS web based applications. In addition, Zowe provides an extension to the popular (and free) VS Code for developers or system programmers. Keep in mind, there are no rules on who can use which interface! Operators can use the CLI, system programmers can use browsers. It’s open source – use it as you wish!
Is Zowe the “glue” you need for your enterprise tools and the z/OS ecosystem?
Zowe web user interface – a familiar, extensible “front door” to tools and products.
So how is Zowe glue? Each Zowe user interface provides ways to integrate other z/OS tools and products together – whether they come from the same vendor or different vendors. For example, any product with an existing web browser user interface can be integrated into the Zowe web UI. It can have an icon on the Zowe Desktop. It can be launched from the desktop and there is a way to provide value-added-services such as single sign on (SSO), multifactor authentication (MFA) and launch in context between the web applications. The web apps can use Angular, React or iFrames as the basis for integration. Zowe provides some out-of-the-box applications too. Think of these as a starter set – editor, terminal emulators and viewer to z/OS JES output files (to name a few). Zowe out-of-the-box web apps are for IT staff members familiar with z/OS. The Zowe desktop can be the launching pad for other web based applications for any skill set.
The Zowe CLI is a Swiss army knife of capabilities.
The CLI is probably the best way to get started with Zowe technology. It is client software that runs on a laptop/desktop PC or most anywhere the node.js language can execute. It is simple, versatile, extensible, and powerful, allowing text commands to use the z/OS-based REST APIs. Using the CLI you can manually enter a command or build scripts. The CLI can issue commands to TSO, the z/OS console (if allowed by your security authority), or a large number of product specific commands. (Product specific commands are provided via what are called "plugins". See documentation on plugins here.) The CLI can also download/upload files, or parse job output files. Scripts can perform any number of repetitive tasks ranging from simple or complex automation to z/OS. It is often used for DevOps CI/CD pipelines, but the use cases are only limited by your imagination and willingness to write the script logic. Since the CLI scripts can contain commands across many products’ REST APIs – it provides a type of glue for z/OS based products.
SMEs with Do It Yourself (DIY) skills can use the CLI to build they own productivity tools and share those tools with others who might be less experienced with z/OS. Since you can pick the scripting language of your choice, you can merge z/OS commands with scripting language functions to get the best of both worlds. For example, list a z/OS data set and grep the listing looking for a particular label, then pipe the output to an additional command as a variable. z/OS commands become “blended” with anything possible in the script language you use…just WOW. Cut through complexity with DIY CLI capabilities!
Zowe Explorer leverages VS Code and is a lever too!
The Zowe desktop is the web applications user interface glue. The CLI is scripting glue. What is there to say about the Zowe VS Code extension called the Zowe Explorer? It is also a form of user interface glue but with a slightly different twist. VS Code is a popular multi-language development environment that existed before Zowe. VS Code runs on many platforms, and can be extended via custom written code (that code can be shared with others by being placed in the VS Code Marketplace). Zowe Explorer is one of these custom extensions. Zowe Explorer allows z/OS resources plus tasks to be included in VS Code and leverage all of its capabilities.
Zowe Explorer adds access to z/OS resources to VS Code user interface for files, data sets, and jobs output management and adds actions to those resources via right-mouse-click menus. Additional custom code can, in turn, extend Zowe Explorer functions. For example, the IBM Z Open Editor that provides language syntax checking to the Zowe basic editor. Another example is the Zowe CICS Explorer that adds CICS regions and applications and menu actions to the list of z/OS resources. So think of VS Code is the base, Zowe Explorer extends VS Code – other extensions can add more resources and actions atop Zowe Explorer. Each layer leverages the other to increase the type of z/OS resources and menu operations to be performed.
Zowe API Mediation Layer – Securely Tying REST APIs Together
As stated previously, Zowe is based on REST APIs. While the three user interface technologies can call the various REST APIs directly on z/OS, the API Mediation Layer (API ML) makes access to the REST APIs both easier and more secure. Assuming the z/OS REST APIs are registered to the API ML (easy to do), it provides a consolidated catalog of the REST APIs and a number of management functions. The API ML can track the up/down status of the APIs. It provides some basic testing of the REST APIs by allowing REST commands to be issued and then seeing the results. It can provide both load balancing for performance or high availability if the REST APIs run across a z/OS sysplex. The API ML provides a single point of entry to access the z/OS REST APIs registered in the catalog, as opposed to the various users needing to know the specific TCP/IP address and port numbers for each API. The API ML also provides access control to the REST API and allows various security protocols to be enforced such as x509 certificates and/or participation in multifactor authentication processes. This is the “backend glue” for REST APIs services to be managed in cooperation of the user interfaces of Zowe.
Wrapping up.
Let’s revisit some of the questions we raised at the top of this article regarding Zowe as a tool. Zowe is primarily a framework for IT staff administering and development of z/OS systems. It has many use cases, so it is difficult to say there is one particular member of the IT staff that uses Zowe. Since Zowe is open source, it should be viewed as a general purpose and versatile tool. As an integration framework that can be used by specialized tools and products.
Zowe is not necessarily for a z/OS novice UNLESS someone has previously written a web application or CLI script to enable a novice to perform some task. Zowe is more likely for an IT skilled person but maybe not familiar with traditional z/OS interfaces like ISPF or 3270. Zowe can be used by subject matter experts to build productivity tools (admin, automation, apps, etc.) if they have a desire to do-it-themselves. There is a growing list of vendors using Zowe technology in their products. Zowe’s focus is z/OS. If your company is looking for a way to break down silos between z/OS tools, Zowe might be technology to leverage.
I hope this summary and tool analogy has helped position Zowe in your toolbox. Please check out additional information at zowe.org and the IBM site for IBM Z Distribution for Zowe. For more information on the z/OS Management Facility (z/OSMF) please checkout this blog.
Zowe is owned and managed by the Open Mainframe Project, which is a Linux Foundation project.