Written by Michael Bauer, Zowe CLI Squad Lead, member of the COBOL Programming Course TSC and Senior Product Owner at Broadcom
Did you know that The Open Mainframe Project’s Zowe project provides Software Development Kits (SDKs) for a variety of languages? These Zowe SDKs provide a set of programmatic APIs that you can leverage to rapidly develop applications or scripts that interact with z/OS. In fact, these SDKs are leveraged in other Zowe components including the Zowe Command Line Interface (CLI), Zowe Explorer VS Code Extension, and Zowe Explorer IntelliJ Plug-in.
What languages are supported?
There are Zowe SDKs for Python, Node.js, Kotlin, Java, and Swift. These emerged from community contributions and requests. Additional languages may be supported in the future if the community sees a need for them. The Node SDK is part of Zowe’s Long Term Support Program as a dependency of Zowe CLI and Zowe Explorer for VS Code.
What is the primary use case for the Zowe SDKs?
These SDKs simplify the development involved in programming certain z/OS interactions from an app written in one of the supported languages. They provide a foundation for sending requests to services as well as out-of-the-box functions for interacting with z/OS jobs, data sets, and more. These SDKs can then be combined with other packages available in the language to build significant value quickly. Let’s consider building a Node app for example. You could combine the
zos-jobs-for-zowe-sdk with another npm package providing table functionality to rapidly build a custom UI showing information about important jobs. Or you could leverage the Python SDK and tap into the many data analytics packages available for Python.
Beyond building custom applications, you may want to leverage these SDKs in scripts to help automate some of your more manual z/OS activities. An alternative is to invoke the Zowe Command Line Interface from any scripting language. To build a script with the Zowe CLI, typically a user would run commands interactively to accomplish some use case and then wrap them in a script in their language of choice. However, some will find it easier and more efficient to leverage functions provided by these SDKs directly vs invoking a separate command process. To build a script with a Zowe SDK, you would review the SDK documentation to determine the function required for the use case. Since no separate process needs to be run, the script should also run more quickly. This may be a more natural fit for use with popular open source testing frameworks like Jest and pytest. One advantage of the Zowe CLI is that there are many Zowe Conformant plug-ins available to extend its functionality. However, vendors in the ecosystem could offer SDKs alongside their CLI plug-ins and commercial offerings in the future.
What specific z/OS functions can these SDKs provide?
The functionality available depends on the language in question. Primarily, these SDKs provide functions to interact with z/OS jobs & data sets through z/OSMF REST APIs. The Zowe Node SDK currently includes the following:
– List, submit, and cancel jobs
– Await job status and view job output
– List, create, copy, delete, migrate, recall, upload and download data sets.
– Manage USS files and mount/unmount file systems
– Run ssh commands
– List z/OS logs
– Run TSO commands, start and stop address spaces
– Run Console commands
– Manage z/OSMF workflows
– List z/OSMF published catalog templates, provision a published software service template, list provisioned instances and perform actions against them
– Functionality shared across other SDK packages including authentication and rest client infrastructure
How to get started
General information on getting started with the Node and Python SDK is available on the Zowe Docs site. Links to important articles for each SDK are provided below. We are always looking to expand our user and contributor community. If you have an idea for an enhancement or would like to contribute to the project, please reach out via GitHub (links below) or the #zowe-client-sdk channel on the Open Mainframe Project Slack 😃
- Download: NPM & zowe.org
- Documentation: https://docs.zowe.org/stable/typedoc/index.html
- GitHub: https://github.com/zowe/zowe-cli#zowe-node-client-sdk (Part of Zowe CLI repo)
- Download: PyPI & zowe.org
- Documentation: https://zowe-client-python-sdk.readthedocs.io/en/latest/
- GitHub: https://github.com/zowe/zowe-client-python-sdk
- Download: MavenLibs
- Documentation: https://javadoc.io/doc/org.zowe.client.java.sdk/zowe-client-java-sdk/latest/index.html
- GitHub: https://github.com/zowe/zowe-client-java-sdk
This article was re-run from the Zowe Medium Blog. If you enjoyed this blog, check out more Zowe blogs here. Or, ask a question and join the conversation on the Open Mainframe Project Slack Channel #zowe-client-sdk, #zowe-cli, #zowe-dev, #zowe-user, or #zowe-onboarding. If this is your first time using the Open Mainframe Slack Channel register here.