This is the second article on Java and application modernization on IBM Z. The first article, Planning for the Future, provided a quick introduction to Java and modernization ideas on the system. This second article discusses eight compelling reasons why Java does and should play a key role in application modernization on the mainframe.
Application modernization can be defined as taking what you have today: applications written in one or more languages exploiting proven middleware and rewriting, updating and improving them to meet the needs of today’s users. IT consumers access applications in new ways including the web, cloud systems and mobile technologies. How does Java help with this?
1. Java integrates well with modern IT architectures and standards
According to Rick Oppedisano
, COBOL applications and databases don't integrate easily with modern IT architecture or business intelligence tools as well as Java and other languages. In addition, "new features and functionality can take up to 10x longer to implement in COBOL than they can in a modern language like Java or C#.” Since Java has strengths over COBOL in this area, it is a good idea to pair it with COBOL for specific kinds of work.
2. Java works well with other languages
Consider a couple of examples that demonstrate how Java works with other enterprise languages.
In a banking example
, the core banking application was written in COBOL but the outer layers, the channels to users and systems was written in Java. The COBOL code remains mainly stable whereas the Java code absorbs most of the changes.
In another example,
the company modernized their assembler language programs by converting them to COBOL for batch applications and Java for real-time use. The uses for Java for any given company depends a lot on from where they are starting in the modernization journey.
3. Java integrates with powerful middleware
Java is very flexible when working with IMS, CICS and Db2 stored procedures.
For IMS, developers can write Java applications to access IMS databases and process IMS transactions by using the drivers and resource adapters of the IMS solutions for Java development.
As a powerful Java hosting environment, CICS provides both an Open Service Gateway Initiative
JVM server as well as embedded IBM WebSphere Liberty
. Using the Java class library for CICS called JCICS, you can access the CICS API directly from Java
. With the JZOS API
, developers use Java to interact with native services like accessing conventional mainframe data sets, submitting jobs, communicating with the system console, and interoperating with COBOL and Assembler transaction data.
For Java, there is also powerful Db2
4. There is also specific support for Java in batch
Authors of an article in IBM developerWorks
discuss using Java in batch on z/OS. They list a number potential uses for Java in z/OS batch jobs including passing data sets created by traditional job steps to Java programs, which convert the data to XML, using Java programs to access APIs such as Simple Object Access Protocol/web services, WebSphere MQ client API, JDBC API and custom TCP/IP socket services.
They also suggest employing long-running started tasks for Java that periodically query a database to find new work to process and migrating systems written in COBOL to Java to reuse Java programming skills and class libraries. The scope of their article includes describing some of the challenges you might encounter when using Java in batch jobstreams and how to seamlessly integrate Java into z/OS JCL.
5. Java fits well with a strategy of smaller application changes
Today’s applications are under more pressure than in the past to change rapidly to meet the needs of businesses. One tactic to handle this is to build systems that are more modular. Modularity is one of the ideas behind organizing applications as microservices versus monoliths as in the past. Doing this with Java makes changes simpler to plan, code, test and deploy. Handling change combined with an increased role of automation in the testing is a natural fit for Java due to its modular nature. Also, Java is software-designed with as few implementation dependencies as possible.
6. Java skills are easier to find than COBOL
There’s a generation of developers that have grown up with Java since its creation in 1991. Java offers companies the opportunity to appeal to younger IT workers. Java skills are more available than COBOL even as there is significant global competition for Java skills (29,000 Java versus 1,300 COBOL jobs on a popular job-finding site).
According to IBM Research
, there are still plenty of COBOL programs being developed with more than 200 billion lines of COBOL code in use and an estimated 2 billion lines being added or changed each year even as many COBOL developers are retiring
7. 31- and 64-bit SDKs
On z, there are 31- and 64-bit SDKs available in a number of supported versions. There’s no charge
for any of the Java Standard Edition Products on z/OS. The most recent SDK is SDK8
, but SDK7 and SDK6 are also supported. The software can be downloaded from the web or ordered from Shopz
in SMP/E format.
What enhancements and improvements can you expect when a new SDK is released? Lets take SDK8 as an example. This SDK delivers a comprehensive Java SDK at the SE 8
level for the IBM z/OS platform. Also included are enhancements to z/OS Java unique security and JZOS functionality, improved performance using the data access accelerator API for processing native data records and types directly from Java code as well as enhanced monitoring and diagnostics. Important to z/OS environments, SDK8 exploits new capabilities available with z/OS V2.1 and V2.2 and z13.
8. Java Developer Kits and Support Tools
The IBM Runtime Technologies organization provides developer kits for creating and testing Java platform standard edition applets and applications on some of IBM's most popular systems including AIX, Linux, z/OS and IBM i. The IBM Development Package for Eclipse contains a ready-to-run Java development environment consisting of the Eclipse integrated development environment and the IBM Java runtime. Downloads are also available for the Windows OS on Intel 32-bit and 64-bit platforms. Development packages are also available for Apache Spark and IBM Bluemix. IBM also provides tooling and documentation
to assist in the understanding, monitoring and problem diagnosis of applications and deployments running IBM runtime environments.
SUBHEAD: Is It Just Java?
Java is important to modernization, but it’s not the only facet of modernization being carried out in IT departments. Application rejuvenation is typically part of the implementation of a digital strategy that embraces the web, mobility and the use of API management software. Java is not the only thread, but it’s certainly one of the most important items strengthening the fabric of modern IT.