Today's exam: what's the difference between continuous testing of distributed apps and enterprise apps? If you're on the distributed side, you typically maintain suites of self-checking unit tests. Successful execution of these test suites gives you confidence in your code as you make fixes and deliver enhancements. If you're on the enterprise side (okay: mainframe), you have to factor in CPU time and try to minimize that. Minimize and continuous, however, are near contradictions. The IBM Rational Development and Test Environment for System z can change that. It provides an emulated z/OS environment on Intel or Intel compatible hardware, making continuous test of enterprise apps easy and affordable.
2. Please note
IBM’s statements regarding its plans, directions, and intent are subject to change
or withdrawal without notice at IBM’s sole discretion.
Information regarding potential future products is intended to outline our general
product direction and it should not be relied on in making a purchasing decision.
The information mentioned regarding potential future products is not a commitment,
promise, or legal obligation to deliver any material, code or functionality.
Information about potential future products may not be incorporated into any
contract. The development, release, and timing of any future features or
functionality described for our products remains at our sole discretion.
Performance is based on measurements and projections using standard IBM
benchmarks in a controlled environment. The actual throughput or performance
that any user will experience will vary depending upon many factors, including
considerations such as the amount of multiprogramming in the user’s job stream,
the I/O configuration, the storage configuration, and the workload processed.
Therefore, no assurance can be given that an individual user will achieve results
similar to those stated here.
1
4. Business constraints with mainframe development
“My development capacity charge-
back is consuming my entire budget. I
can’t spend on tools.”
“We don’t have the capital
budget to obtain more mainframe
test resources for my developers. It’s
easier and cheaper to get a Windows or Unix
box.”
“I can’t even work on Mondays!
Production workload kicks me off.”
“It is difficult for my developers
to learn the mainframe.
Operations controls can prevent
experimentation by developers..”
“I can only test my batch
applications in offline hours.
Online apps consume the 9-5 cycles.”
“Operations tell me it will take
two months to get my test
system allocated.”
“The Mainframe isn’t cool anymore.
It’s faster and cheaper to develop on
a Unix platform.”
“I want to try out creating Event
Processing and ATOM apps, but my
system isn’t scheduled for a CICS
update till 2014.”
3
5. Offload development and testing, increase speed
and quality
Note: This Program is licensed only for development and test of applications that run on IBM z/OS. The Program may not be used to run production workloads of any
kind, nor more robust development workloads including without limitation production module builds, pre-production testing, stress testing, or performance testing.
• Liberate developers to rapidly prototype
new applications
• Develop and test System z applications
anywhere, anytime
• Free up mainframe development MIPS for
production workload
• Eliminate costly delays by reducing
burden on existing IT operations staff
• Exploit the latest middleware, including
CICS, IMS, and WebSphere
Improve development flexibility
New
RDz & ISPF
RDz
Rational Development and Test
Environment for
System z
4
6. Linux
Product Structure
ZPDT (emulator)
z/OS
USB “token”
or server connection
TCP/IP
TCP/IP
Running z/OS within RD&T
Device Map defines zPDT system
DASD volumes are Linux files
TCP/IP can talk to Linux or to the
outside network
USB Token or server supplies
license to run zPDT
Optional connection to Rational
token server (FlexLM)
Dev Map
FlexLM Server
(Rational Tokens)
5
7. Linux
Product Structure
ZPDT (emulator)
z/OS
USB “token”
or server connection
TCP/IP
TCP/IP
RD&T V 9 ships with ADCD
operating system volumes.
z/OS 1.13
Sample configuration for z/OS
Sysplex offering also includes
z/VM 6.2 *
Sample sysplex system
* z/VM licensed for sysplex support only!
Dev Map
FlexLM Server
(Rational Tokens)
6
8. RD&T Device maps – defining devices to z/OS
Linux
Resources
“Devmap” – will map the entities known to Linux, to the devices known to z/OS
z/OS volumes are contained in Linux files
z/OS Communication device is a Linux ethernet card or a logical tunnel device
z/OS printer or card readers can be Linux files
… Other devices are also possible such as SCSI attached tape drives.
File for DASD
NIC
TCP/IP
Ports
TCP/IP
Ports
CPU
core
Memory
File for DASD
Files for misc
I/O devices
z/OS
Devices
3390 Volume
OSA CPU
core
Memory
3390 Volume
3390 Volume
Printer (etc)
System
Console
Locally
Attached
Terminals
Device
map
File for DASD
USB Key
Not seen by z/OS
7
9. IBM zPDT Virtual I/O Architecture
The Big Picture
RD&T
Linux
File
System
awsosa
LAN
awsckd
Device
awsckd
awsckd
awsckd
awsckd
awsckd
awsckd
Device
Device
Device
Device
Device
awsckd
awsckd
Device
Device
Device
awsctc
IBM zPDTawsctc
8
10. • Increased application quality using the included IBM runtimes for testing. Provides a high fidelity
testing environment.
– Functionality and services more accurately reflect the mainframe
– Using actual z/OS middleware means less retesting and rework is required when moving from the unit test environment
to the quality assurance or pre-production environment.
– Developers have an isolated test environment to test application changes that can then be easily merged into the next
level of testing
• Deployment of System z runtime environment on a PC lowers development and unit tests costs and
allows MIPS to be reallocated for production use.
• Executes on an x86 Server
• Utilizing zero development MIPS on the production mainframe for initial application change testing
• Frees up additional capacity for new workload while reducing line of business development costs and chargeback.
• Provides developers in a single or shared user configuration with increased flexibility and control of
the test environment, allowing them to be more productive and improving application delivery times.
– Can be assigned to a single developer in a laptop configuration, or can support small-scale team environments
– Environments can be tailored to a single developer or team's runtime needs without altering mainframe testing
environments.
– Can provide a greater level of control for developers to implement quick environment changes without having to involve
production operations staff.
– Developers can perform their first series of tests and regression testing without worrying about causing unexpected
errors.
Summary - Benefits of RD&T
9
12. Compile
Automated
Unit Test
Install &
Configure
Promote
Results
Run Manual
Tests
Run
Automated
Tests
Current state for Java / .NET developers
Current state for COBOL and PL/I developers*
Compile
Promote
Results
Run Manual
Tests
Promote &
Configure
Hours to days
Weeks to Months
How is Software Tested Today?
*Feedback from mainframe customers
11
13. • TDD is test-first software development (write unit tests before code)
• With TDD developers cycle minute-by-minute between
writing unit tests, writing code, and running unit tests [1]
• Running unit tests implies running everyone’s unit tests
• Tests should be self-checking, automated, and run after each build
• Each function of an application gets its own suite of unit tests
• Add or enhance unit tests whenever committing code
• Key element of TDD: “red, green, refactor”
[1] A Longitudinal Study of the Use of a Test-Driven Development Practice in Industry,
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.104.6319&rep=rep1&type=pdf
What is Test-Driven Development (TDD)?
Red
GreenRefactor
12
14. • xUnit: architecture for unit testing frameworks that are code-driven
• Prescribes testing the fundamental units of software
– examples: functions, methods, classes
• Distinguishes between failures and errors in a unit of software:
• A failure is an anticipated problem:
– example: actual output does not match expected output
• An error is an unexpected, catastrophic problem:
– example: null pointer, protection exception (bad pointer)
• Automation: Code, not people, determines pass, fail, or error
• JUnit is a popular instance of the xUnit architecture for Java
xUnit and Code-driven Unit Testing Frameworks
13
15. Components of the xUnit Architecture
All xUnit frameworks share the following basic
component architecture, with some varied
implementation details.
14
16. • Two barriers to adoption of TDD on System z are MIPs and mobility
• Consider if TDD is adopted for a z/OS application:
• There would be many (10,20,100?) unit tests
• These unit tests would be regularly run as code is written
• Unit tests consume MIPs whether they pass, fail, or error
• Mobility: work from anywhere, with or without connectivity
• RD&T eliminates these barriers by providing:
• A “MIPs-free” development and test environment for System z
• Comprehensive ADCD software suite: CICS, IMS, DB2, WAS, RDz,
Enterprise COBOL and PL/I compilers…and more
• Support for virtualization: run System z in a VMware Linux guest
and connect to it from Windows on the same laptop
Test-Driven Development and System z
15
17. Scenario: Unit Test IMS Transactions hosted on RD&T,
using RAD, RDz, JUnit, and IMS Connect API for Java
Windows 7
VMware Workstation 10
SUSE 12.1
RD&T 9.0
ADCD z/OS 1.13
IMS Connect
IMS V12.1
RDz 9.0.1
RAD and RDz 9.0.1
CICS/IMS Java Data
Binding Wizard
VMware
NAT
TCP/IP
JUnit Tools and Test
Runner
IMS Connect API
for Java
IMS App
Source
192.168.198.100
192.168.198.101
16
18. IMS Connect APIs for Java and C/C++
• IMS Enterprise Suite Connect APIs provide services for Java and
C/C++ client applications that need to access IMS TM
– Eases/Abstracts IMS Connect message protocol
– Helps assemble, send, receive, and inspect IMS messages
– Provides full set of interaction properties
– Supports SSL
17
19. • Install RD&T on a VMware openSUSE 12.1 Linux guest
– VMware Workstation for Windows 10
• Define a VMware virtual NAT network (192.168.198.2-254)
• Configure openSUSE and RD&T to use static IPs on virtual NAT
– Internet access through VMware host (may have dynamic IP)
– Host can connect to Linux or z/OS directly (RDz, FTP, 3270…)
• Customize RD&T to start an IMS DB/DC system:
– Customize IMS for IMS Connect and an IMSplex (monoplex)
– Add PROC and CFG members for IMS Connect
– Customize PROC and CFG members for CSL and SCI (IMSplex)
– Start MPRs with DBLDL=0 (disable program caching)
• Customize RD&T LOADPARM “YC” PROGIM with RDz data sets
Scenario Implementation:
1. Install and Configure RD&T
18
22. • Install RAD 9.0.1 and RDz 9.0.1
– Install on same machine as RD&T VMware image
– Install into same package group for shell sharing
• Install WAS for Developers 8.5.5 (free product)
– For this scenario we only need CICS/IMS Java Data Bindings
– marshall.jar/com.ibm.etools.marshall.*, and j2ee.jar
• Make sure RD&T is started and that you can reach z/OS from Windows
• Start RDz and define a z/OS connection to RD&T using RSE
• Locate the source of the IMS transaction to unit test
– For the demo we will use the IVP application IVTCB
Scenario Implementation:
2. Set up RAD, RDz, and WASCE
21
24. • Create a Java project <bindproj> with WASCE in the classpath
• Use the CICS/IMS Java Data Bindings wizard to generate binding code
into <bindproj> for IVTCB’s input and output messages
• Create a Java project <junitproj> that depends on <bindproj>
• Download IMS Connect API for Java jar and samples.jar
• Add the IMS Connect API jar to the classpath of project <junitproj>
• Create a blank JUnit test case “IVTCBTest001” in <junitproj>
• Using samples.jar/SimplePhonebookSample.java as a reference, fill out
the code for the IVTCB JUnit test case:
– Replace hand-written binding code with J2C bindings in
<bindproj>
– Write tests for each CRUD operation supported by IVTCB
– Verify that the actual vs expected output of each operation
– Open connection in setup() close connection in teardown()
Scenario Implementation:
3. Create a JUnit test case to invoke IVTCB
23
27. • RDz: Rational Developer for System z Library
• http://www-01.ibm.com/support/docview.wss?uid=swg27038517
• RAD: Rational Application Developer for WebSphere Software
• http://www-01.ibm.com/support/docview.wss?rs=2042&uid=swg27012580
• WAS: IBM WebSphere Application Server for Developers
• http://www-03.ibm.com/software/products/en/appserv-wasfordev
• IMS Enterprise Suite Connect APIs for Java and C
• http://www-01.ibm.com/software/data/ims/connect/
• Junit: A programmer-oriented testing framework for Java
• http://junit.org/
• http://www.vogella.com/tutorials/JUnit/article.html
Demo-related Resources on the Web
26
28. • Rational Development and Test Environment for System z Library
• http://www-01.ibm.com/support/docview.wss?uid=swg27038434
• Rational System z Development and Test Hub
• http://ibm.co/rationalsystemzdevtest
• RD&T Support Forum
• http://www.ibm.com/developerworks/forums/forum.jspa?forumID=2283
• RD&T on ibm.com
• http://www-01.ibm.com/software/rational/products/devtest/systemz/
• IBM System z zEnterprise BladeCenter Extension (zBX)
• http://www-03.ibm.com/systems/z/hardware/zenterprise/zbx.html
RD&T Resources on the Web
27
29. Suggested Sessions
Session Title Day Time Room
1610 Automated Unit Testing Framework for z/OS Applications?
Yes, it's real!
Mon 4:15 pm Oceanic 1
2336 Getting to the DevOps promised land with continuous
release and deployment across mainframe environments
Tues 1:45 pm Oceanic 1
1531 Continuous Integration with Rational Development and
Test Environment for System z at Nationwide
Tues 3:00 pm Oceanic 1
1670 Bank of America Integrates SDLC to Provide Cross-
Platform Agile Development
Tues 4:15 pm Oceanic 3
2234 Becoming More Agile on the Mainframe with RD&T:
Fiducia’s way of Implementing CI
Wed 8:00 am Oceanic 3
1937 Speed mainframe application delivery with continuous
testing and test virtualization
Thurs 9:45 am Oceanic 1
28
31. Thank You!
Your Feedback is Important!
Access the Innovate agenda tool to complete your
session surveys from your smartphone, laptop or
conference kiosk.
30
33. • IBM Rational Development and Test Environment for System z Quick Start Guide (GI13-1802-03)
• IBM Rational Development and Test Environment for System z USB Hardware Device Quick Start
Guide (GI11-9147-02)
• Installation: System z Personal Development Tool Redbooks
• Basic instructions for installation/ configuration of Linux, zPDT, and starter z/OS system
• References
• System z Personal Development Tool Volume 1: Introduction and Reference (SG24-7721-05)
• System z Personal Development Tool Volume 2: Installation and Basic Usage (SG24-7722-05)
• System z Personal Development Tool Volume 3: Additional Topics (SG24-7723-05)
• System z Personal Development Tool Volume 4: Coupling and Parallel Sysplex (SG24-7859-02)
• Configuring z/OS with IBM Rational Development and Test Environment for System z - z/OS 1.13
(SC14-7281-04)
• Contains basic instructions and examples for z/OS system customization
• Isolate base configuration files from customized files
• Store user data on a separate disk
• Configure TCP/IP settings
• Configure security for critical system files
• Create user IDs
• Other minor but common changes to z/OS
• System programmer assistance will be required to replicate
specific conventions, security models, subsystems, etc
RD&T Installation and Configuration Documentation
32
34. RD&T is enabled via a USB key
• Key makes Environment operational
USB key is shipped disabled. The high
capacity key activation process is
described on the RD&T Hub
The key is physical media and can be
ordered via PPA
Electronic download available for SW stack
Licensing
User based licensing- each user needs a license:
Authorized User Single Install (perpetual or
fixed term)
Resource Value Unit licensing, where resource =
activated, emulated System z CP (perpetual or
fixed term)
License to
Development workloads only
Specifically non-production in license (i.e., no end
users of the applications allowed)
No guarantee or warrantee to replicate mainframe
function in entirety (see limitations listed earlier)
Development license for S/W stack (z/OS and
middleware) content
No phone or defect support provided with purchase
Defects must be replicated in production system
and fed through production support process
Online support forum available for QA
33
RD&T environment licensing
33