April 5, 2024 | IBM Z

Why Use Java Batch for IBM Z Batch Processing? (Part 1)


Why should anyone bother implementing a Java Batch framework for IBM Z batch processing? Today’s blog is the first of a two-part series that answers that question.  

We provide an overview of what Java Batch processing is and the benefits it provides. In part 2, we’ll examine what you should consider when implementing Java Batch development for IBM Z systems. 

What is Java Batch? 

JSR-352: Batch Applications for the Java Platform is the open-source standard for developing and executing long-running batch applications using the Java platform. It defines a programming model for batch applications, along with a batch runtime for executing jobs.


Java Batch refers to batch applications written to the JSR-352 specification. IBM Z supports and runs batch processes written in the Java programming language, making Java Batch a viable alternative and add-on to traditional Job Control Language-based (JCL) programming and execution. IBM offers basic and enhanced Java Batch capabilities through its WebSphere Liberty application run-time framework. Additionally, there are other Java Batch run-time processing models such as Spring Batch.  


Figure 1 is taken from the JSR-352 documentation. It illustrates the basic Java Batch architecture for job execution. A batch process contains a job consisting of multiple steps. Each step usually contains a single (1) ItemReaderItemProcessor and ItemWriter. Jobs are submitted by a JobOperator, and job information (metadata) is stored in a JobRepository.


Jobs can be associated with multiple job instances that contain different parameters and different job & step executions. This basic framework shows how Java Batch/JSR-352 enables developers to divide complex batch processes into smaller reusable steps, manage dependencies between each job and step, and efficiently schedule job execution within an IBM Z environment. 

Figure 1: Basic Java Batch architecture as defined in the JSR-352 standard

Developer tools for Java Batch 


The JSR-352 standard also introduced the Job Specification Language (JSL), an XML-based language that defines batch jobs and associated artifacts within the batch programming model.  


Plug-ins for Eclipse-based Integrated Development Environments (Eclipse IDEs) are available for working with JSL Java Batch on IBM Z systems. Rather than using a legacy 3270 interface or a green-screen emulator, developers can use their IDE of choice and modern DevOps tools to create, edit, debug, and perform defect detection & elimination for Java Batch processing. Plug-ins and other tools are also available to perform batch Job validation and run-time simulation using scripts or RESTful API calls.  

Benefits of using Java Batch for IBM Z processing 

There are several significant benefits to incorporating Java Batch into your IBM Z batch processing, including: 

  • Batch process modernization 
  • Easing developer workforce transition to next generation developers 
  • Licensing and developer cost savings 


Batch Process Modernization 


Java Batch allows your developers to standardize and use the same tools for IBM Z batch development that they use for enterprise application development, including Integrated Development Environments (IDEs) and Java programming. With Java Batch, your developers will be able to use other modern DevOps tools and programming languages that aren’t available with legacy JCL batch development.  


Easing Developer Workforce Transition to Next Generation Developers 


The last 30 years have seen a mass transition of mainframe workforce skills. Long-term mainframe developers skilled in legacy JCL programming have given way to a new generation of build-and-run personnel. Next-generation developers are trained on non-mainframe operating systems, database management systems, Java, and modern user interfaces. These new developers demand modern technology while mainframe institutional knowledge is eroding.  


IBM Z batch applications can be modernized by incorporating and adopting a Java Batch processing framework as a complement to traditional mainframe batch processing. It also allows organizations to utilize the skills of existing Java developers into batch testing and processing. Java developers are usually more widely available and cost-effective than mainframe programmers, which can help to alleviate workforce transition issues.   


Cost Savings 


Using IBM mainframe specialty zIIPs (IBM z Integrated Information Processors) to run Java Batch applications can result in significant cost savings. Specialty processor workloads running on zIIPs are generally not subject to IBM or independent software vendor (ISV) licensing charges. When migrating legacy JCL batch jobs to Java Batch running on zIIPs, your Java Batch workloads may not be subject to software licensing charges. Which can reduce the overall cost of running batch jobs.  


Four key steps for Java Batch implementation coming in part 2 


Today’s post described how Java Batch works and the benefits you can receive from implementing Java Batch alongside traditional JCL processing. Join us in the coming weeks for part 2 in this series where we’ll discuss the four key steps for evaluating and implementing a Java Batch environment.