Giving more flexibility to z/OS operations
We all know that mainframes run continuously and that it’s really rare when they need to be stopped and re-started. In contrast, it’s quite common for personal computers to be booted or re-booted (re-started) and it’s rather rare for them not to be stopped and re-started at least once a day.
Well, what would you think about a z/OS® system that you could IPL (initial program load; equivalent to booting) at any time? And what about having z/OS running on your laptop?
The IBM Rational Developer for System z Unit Test feature (hereafter referred to as Unit Test) creates a System z environment on a desktop machine, enabling you to execute typical z/OS middleware for development and testing. The Unit Test feature is based on the IBM System z Personal Development Tool (zPDT) and runs on a Linux® system based on an Intel® or Intel-compatible (x86) personal computer (PC) processor. It provides a System z environment on a PC capable of running current System z operating systems, including virtualization of selected System z I/O devices and control units. It is intended as a development, demonstration, and learning platform -- it is not designed as a production system.
Common obstacles to mainframe development
Some mainframe developers find themselves at a disadvantage when developing mainframe applications because they might not have the same flexibility that is typical of developing in a distributed environment. Developing for a mainframe often means:
- Constant connection to the mainframe is required.
- Development shares the machine with production and therefore has a lower priority.
- Creating cross-platform components is difficult.
- ISPF green screen user interface is unfamiliar or unappealing to new hires.
- MIPS usage for development versus production usage.
The objective, then, is to address these issues and give to mainframe developers the same agile capabilities that are available in the PC environment.
What is Rational Developer for System z Unit Test?
IBM Rational Developer for System z Unit Test provides a small-scale, personal test environment for developers that can run IBM z/OS and IBM z/OS middleware on a PC, essentially eliminating the cost differentials between distributed and existing mainframe development environments.
Running a personal System z development environment on a PC enables a more portable, flexible, and lower-cost environment for individual developers, expanding on what IBM Rational Developer for System z offered in past releases with the IBM WebSphere® Application Server unit test environment, IBM CICS® TX Series, and IBM DB2®.
The new Unit Test feature comes packaged with a pre-configured set of IBM software entitled for development usage specifically in that environment, including:
- IBM z/OS, including sub-features
- IBM WebSphere Application Server for z/OS
- CICS Transaction Server
- IBM DB2 for z/OS
- IBM WebSphere MQ for z/OS
- IBM Java™ SDK for z/OS
- Enterprise COBOL
- Enterprise PL/I
- XL C++
- IBM Debug Tool, and more.
(See the product information for current levels of the software included.)
You can have more than one developer connected to a Unit Test server where your code is running; the number of users you can connect depends on the capacity of your server. (For example, tests conducted developing COBOL/CICS applications with a Lenovo ThinkPad model W500 with 8GB handled three concurrent developers connected with acceptable response time.)
Figure 1 shows the Unit Test feature architecture.
Figure 1. Using Rational Developer for System z Unit Test architecture
The Unit Test feature has many benefits, not the least of which is the fact that you are using a less expensive machine (like a laptop) to develop mainframe applications. Other important benefits include the ability to:
- Eliminate the cost differentials between distributed and existing mainframe-based development environments.
- Free up mainframe development MIPS for production capacity.
- Develop and test System z applications anywhere, anytime.
- Rapidly prototype new applications.
- Open up mainframe development to a broader population of developers and testers.
- Leverage a more modern and agile team workbench and accelerate delivery of new workloads that span multiple platforms.
- Integrate easily with other Rational and IBM tools for additional productivity and MIPS savings.
- Eliminate costly delays by reducing dependencies on operations staff.
For example, with the Unit Test feature, developers can have easier access to modern versions of IBM middleware in the unit test environment without having to wait for mainframe system upgrades. They can also explore new CICS or IMS features, investigate new architectural models, and perform the first series of tests -- as well as regression testing -- without worrying about changes from other developers causing unexpected errors. The Unit Test feature enables developers to build and test System z applications anywhere and anytime, without impacting production operations.
Using the Unit Test feature
You need a desktop or laptop machine that can run Linux, and have the Unit Test feature software installed in the Linux system. The supported Linux distributions are Red Hat RHEL or openSUSE (64-bit only); zPDT checks for Red Hat or openSUSE indicators and will not install with other Linux distributions.
You also need a USB hardware key, shown in Figure 2, to validate your Unit Test license.
Figure 2. Unit Test feature hardware key
The installation process must follow this sequence:
- Install and customize Linux.
- Install the zPDT software.
- Activate the Rational Developer for System z Unit Test USB hardware key.
- Configure the z/OS installed software and required components.
Described here is an example that uses Rational Developer for System z and Rational Developer for System z Unit Test feature. In this scenario, the database is already created on the Unit Test server, as are the CICS resources required for the application to run. The steps below reflect the sequence of tasks involved along with some representative screen captures. These steps also show the tasks required to start the Unit Test feature, although this would already be up in a typical work session.
In this example, Rational Developer for System z Unit Test V7.6 (RDz UT in Figure 3) is installed on a Lenovo ThinkPad W500 with 8GB. The developer is using another ThinkPad with Rational Developer for System z V7.6 client (RDz in the figure). We also added a real mainframe (optional) that is located in Texas. The developer is working remotely. Figure 3 shows the architecture of this scenario. (In this figure, RSE refers to Remote System Explorer and is one of the components that must be installed in z/OS when using Rational Developer for System z.)
Figure 3. Scenario using Rational Developer for System z and Unit Test feature
The Unit Test USB key must be installed (Figure 1) before initiating the boot. The process of booting Linux is the same as any operating system boot. You type an authorized ID and password and the system opens a terminal where the Linux commands can be entered. In this example, the boot took about three minutes.
When Linux is up, type a command to start zPDT and the z/OS system. The messages displayed on the Linux terminal are shown in Figure 4. Usually the Linux command to start and stop the zPDT are:
- To start:
In this example, the file aprof1 is a configuration map for the zPDT. It defines the memory that you give to z/OS as well the devices that will be virtualized by z/OS, such as the DASDs.
- Later, when you want to stop zPDT and shutdown Linux you will
enter the stop command:
This command instantly ends System z operation. No warning is sent to the System z operating system. You should always stop the System z operating system normally before issuing awsstop.
Figure 4. Starting zPDT on a Linux terminal
- To start:
IPL z/OS under Linux.
The z/OS IPL will initiate the z/OS console and load the z/OS system. It’s up to the installation to initialize the products that you need for development. In this example, the IPL loads z/OS and automatically starts JES, CICS, VTAM, RSE, and more. When the IPL is complete, testing can begin.
In this example, the complete IPL and load of CICS and other software took about 4 minutes. (This step is something that only needs to be done when a new z/OS IPL is required. I have configured my laptop in a manner such that I can close the laptop and the system continues to be up and running.)
Figure 5 shows the z/OS console when the system is up and ready. When system is up, you won’t need to touch the server laptop anymore. In this example, the TCP/IP address of the Unit Test server is 192.168.1.111.
Figure 5. z/OS console when system is completely ready
Connect to Unit Test feature and the z/OS mainframe.
This is a client operation. The client laptop is connected to the mainframe in Texas (this is optional), and also to the Unit Test feature at address 192.168.1.111. Figure 6 shows both connections active and the datasets listed under each z/OS connection.
Figure 6. Rational Developer for System z connected to mainframe and zPDT
Copy code from mainframe to Unit Test.
In this step, the developer has a remote project defined and starts working with the code to be modified. Figure 7 shows a drag and drop operation where the developer copies the COBOL program BK92S1 to the Unit Test feature for the changes. After this transfer, the developer can disconnect from the Texas mainframe.
Figure 7. Copy COBOL program from mainframe to zPDT
Edit and modify the COBOL code.
The activities here are the traditional Rational Developer for System z activities. You can make changes using the editor, eliminate syntax checking, compile, deploy to Unit Test, and so on. (CICS Explorer can be used to help the CICS deployment.) Figure 8 shows the editor in action. The code being edited is on the Unit Test feature.
Figure 8. Edit program from zPDT
Using z/OS Debug running on Unit Test.
The developer debugs the code using the z/OS Debug tool that is part of the Unit Test feature. Figure 9 shows z/OS Debug in action on the Unit Test feature when the CICS transaction is being debugged.
Figure 9. z/OS debugging a COBOL/CICS program running in the zPDT
Move the code back to the mainframe.
When satisfied with the debug results, the developer can move the COBOL code back to a mainframe PDS for integrated testing and the move to production. Connect back to the z/OS mainframe and either copy/paste the code to the mainframe, or check it in to your library manager using Rational Developer for System z. Figure 10 shows the copy/paste of the modified code to the mainframe.
Figure 10. Move the code back to the mainframe
Top FAQs about the Unit Test feature
- What is the smallest PC I can use?
There is no single answer. You should have at least 3 GB memory and 80-100 GB disk space. You need a CD/DVD drive and a USB port for the USB key. You need a 64-bit PC and 64-bit Linux. More memory is better. More disk space might be needed if you create many "local" 3390 volumes. A dual-core (or multi-core machine) is strongly recommended.
- What is the maximum number of developers a Rational Developer for System z Unit Test server can support?
This can vary depending on the underlying hardware and workload being tested. A typical desktop or laptops can usually support 3-5 users. Low-end server class machines can support 15-30 users. As of this writing, IBM has not provided a detailed analysis of Rational Developer for System z Unit Test server sizing.
- How can I get test data for use in Rational Developer for System z Unit Test?
You can use existing tools like IDCAMS, DB2 utilities, and so on, to extract test data and then download it to the Unit Test machine. Rational Developer for System z Unit Test provides a volume duplication utility that can download an entire 3390 data volume as needed into the Unit Test environment.
- Can I run other levels or back levels of the middleware provided by IBM?
Technically yes, but this is not supported by IBM. This is being investigated to determine whether this capability could be provided in the future.
- Can I run vendor software?
Yes, if the vendor license permits it. You must work with your software vendor to determine licensing considerations.
- Does using Rational Developer for System z Unit Test require z/OS system programming skills?
z/OS does require system programming skills to set up the development and testing environments. However, you can usually set up one box and then transfer the configurations easily to another box.
- What about security?
RACF® is installed, but with minimal configuration. The sample configuration guide has suggestions for basic security. Security is a site choice.
If you are concerned about CPU usage on z/OS and you need agile methodologies applied to your mainframe development, the Rational Developer for System z Unit Test solution might be just what you are looking for. This first version of the product does not include utilities to help you move data and code around the mainframe and the Unit Test environment. User requirements are currently being gathered so that enhanced utilities can be provided in future versions.
- IBM System zPersonal Development Tool (PDF 1.54 MB)
- IBM Rational Developer for System z Unit Test documentation
- IBM Rational Developer for System z Unit Test product information
- IBM developerWorks WebSphere