To many, z/OS is a legacy operating system where ‘old school’ technologies like CICS, COBOL and batch reign. Java, not so much.
But tools and platforms usually found on Linux and Windows servers are now, not only present on z/OS, but mainstream. An example of this is IBMs Websphere Application Server (WAS).
First launched as a Java servlet engine in 1998, WAS became a full J2EE environment in version 4.0, released in 2001. Version 4.0 marked another milestone: the first release of WAS for z/OS (WASz).
Websphere Application Server on z/OS
WASz provides the same features as WAS on other platforms. In addition, fast connectors to traditional address spaces including batch jobs, CICS and IMS allow WASz applications to use and work with legacy resources and data. Java classes to access z/OS datasets and other resources are also available, and Java programmers using classes like JDBC and JMS to access Db2 and IBM MQ respectively will feel right at home.
In 2001, WASz was the full profile, or Classic WAS. It consisted of a “control region” address space as the boss, and multiple “servant region” address spaces each with a JVM to host applications. It could be a little difficult to install and get going, and took a while to boot up as it loaded all features every time. Seen as a big consumer of CPU and storage, it wasn’t everyone’s favourite.
Websphere Liberty is a lightweight WAS profile introduced in 2012, and has become the star on z/OS. Although supporting the full Java EE 7 and 8, WAS Liberty does not provide all WASz features. For example, it does not include a Java Runtime Environment (you need Java JRE or SDK), and only has a subset of WAS Web applications, OSGi applications and Enterprise Java Beans (EJB) programming models.
Liberty is designed to be installed and operational faster. On z/OS, it runs a single server, merging the functions of the control region and one servant region (only one JVM). Liberty starts faster than the full WASz profile, and allows administrators to choose the WASz features to load. If you don’t need the WAS javaMail feature, you don’t need to load it.
Perhaps the best advantage of Liberty is that it can be packaged with other products. A Liberty application can be packaged with a self-contained, pre-configured Liberty server instance that is ready to go.
In the past, the performance and resource consumption of WAS (both Classic and Liberty profiles) has been an issue for z/OS sites interested in WAS. IBM have been introducing benefits and features to address this. These include:
- New hardware instructions
- Better Java garbage collection
- Automated JVM features to improve JVM startup and performance
- Better compression features
An IBM performance test showed that the z15 mainframe with Java 8 SR6 performed 15% better than the older z14 and Java 8 SR5. Java and WAS users today regularly upgrade hardware and software to obtain the best performance.
Both WASz Classic and Liberty profiles are still available on z/OS, and there are sites that still need the full functionality of WASz Classic. However, WAS Liberty has become the WAS of choice. In fact, many products include Liberty to provide web services and browser-based consoles. Few z/OS systems will be without it.
Who Uses WASz?
In a survey in 2020 by Arcati, around 30% of respondents said that they were using WASz for web applications: almost one third of all mainframe users. But these respondents don’t include ‘accidental’ users of WAS.
z/OS Management Facility is a web-based z/OS administration tool provided free with z/OS. With every new version of z/OS, more administration tasks must be performed using z/OSMF. z/OSMF needs WAS Liberty. And it’s not the only product that does. Some other examples include:
- IBM z/OS Connect EE
- IBM Developer for System z (IDz)
- IBM Z Common Data Provider (CDPz)
- IBM MQ web console
- CICS
The last entry may surprise you: CICS. WAS Liberty can be installed within a CICS region, allowing CICS programs to be written in Java, and benefit from WAS features. These programs can use the JCICS classes to access CICS resources and perform EXEC CICS commands.
The fact is that WAS Liberty has become such an essential part of so many products, it is now included with the z/OS base product. Called IBM z/OS Liberty Embedded, it has been included with the base z/OS from z/OS 2.3 in 2017.
z/OS Liberty Embedded is designed to be used by IBM products. These products no longer need to include Liberty in their installation packages. However, if developing your own WASz applications, the ‘not free’ WASz Liberty product still needs to be purchased from IBM. If the term ‘purchase’ doesn’t work for you, there is evidence that the open-source Open Liberty profile can run on z/OS.
Not the Only Java Option
WASz is not the only option for hosting Java applications in z/OS. Apache Tomcat runs fine on z/OS: Dovetailed Technologies provide a Tomcat distribution ready to install on z/OS. There are some z/OS products that rely on (and include) an Apache Tomcat instance to provide a web interface, including CA Common Services, Rocket C/Prof, IBM DFSMSrmm, and ZOWE.
WASz and Tomcat aren’t needed to run Java on z/OS. All that is required is the Java SDK that can be downloaded for free. IBM also offer the free JZOS toolkit to run Java programs from batch. CICS, IMS and Db2 Stored Procedures can all run Java code: CICS providing additional features for web services.
Java on z/OS also allows Java products written for other platforms to be used on z/OS. For example, Apache ActiveMQ and node.JS.
Conclusion
z/OS is no longer that traditional operating systems that quietly runs COBOL code. Today, Java has become an essential component: from providing the same features as traditional programs, to web services with WASz, and more. Anyone working with z/OS can no longer ignore the Java world.
Orignally published on Planet Mainframe.