Software almost always lags behind the hardware it runs on. This week, IBM tuned up its Java virtual machines and software development kits for its System z mainframe line to take advantage of new instructions in the new zEnterprise 196 mainframes.
The zEnterprise 196 mainframes were announced last July and began shipping in September. Boisterous sales of System zEnterprise 196 mainframes after years of declining sales of the older System z10 machines, which were a bit long in the tooth, helped IBM finish 2010 on a very high note and retake the crown as king of server sellers in the fourth quarter. Hewlett-Packard stole that crown last year, and unless IBM's Power Systems sales pick up and mainframe revenues hold up, it seems likely HP will steal it back in the second quarter or maybe the third. We'll see.
The mainframe, unlike the x64 servers that probably run the bulk of Java applications, is designed from the get-go for high I/O bandwidth. Customers pay a lot for a server to get that bandwidth, of course, but in the case of many large financial services, manufacturing, and telecom companies, their core transactional database reside on mainframes and despite the relatively high cost of mainframe iron and z/OS operating systems, they can make a case for running Java on the big iron because of the I/O bandwidth, scalability, reliability, and security of their mainframes.
IBM doesn't say how much of the aggregate MIPS it peddles each quarter as new systems or upgrades to existing ones are driven by Java, but the company, which has an estimated 6,000 to 7,000 unique mainframe customers worldwide, went to the trouble of creating the System z Application Assist Processor (zAAP) specialty engine, which is used to run offloaded Java and XML processing from engines running the flagship z/OS mainframe operating system. So you have to figure that Java was important and customers were complaining about the cost of mainframe hardware for running Java. (IBM doesn't provide pricing on general purpose engines, but the word on the street is that zAAP engines cost about a quarter of the price of engines set up to run z/OS and offer the same performance.) The zAAP specialty engines debuted in September 2004, and can sit side-by-side with engines for running Linux (Integrated Facility for Linux, or IFLs) or to offload DB2 transactions (System z Integrated Information Processor, or zIIPs).
This week, IBM kicked out two new JDKs for mainframes, including 31-bit versions that run in System 370/XA mode as well as a 64-bit version that can run in System z mode. All of the machines that support these two JDKs are actually 64-bit iron, but there are a lot of applications out there in Mainframe Land that are still running in 31-bit mode, and hence the need to have two versions of the JDK. (If it works, mainframe shops leave it alone. In a lot of cases, the guy or gal who wrote a CICS application is retired or dead.)
In IBM parlance, the new JDKs are known as the SDK for z/OS Java Technology Edition Version 6 Release 0 Modification 1. In its announcement letter, IBM says that it has completely re-engineered the JVM at the heart of the SDK while still keeping compliant with the Java SDK 6 compatibility test. The mainframe JVM includes security functions for Java applications that are unique to the mainframe platform. This includes support for AES secure keys in the hardware cryptographic co-processors and a streamlined process for debugging when using these co-processors. The updated JDKs also have been tweaked to take advantage of a bunch of new instructions in the z11 processors at the heart of the System zEnterprise 196 mainframes, and include updates to a JZOS batch toolkit, which allows Java applications to be submitted in batch mode to the mainframe engines.
The updated 31-bit and 64-bit JDKs run on the new zEnterprise 196 machines as well as the System z10 Enterprise Class (EC) high-end and Business Class (BC) midrange mainframes. These machines are all currently being sold by Big Blue. The JDKs will also run on older System z9 EC and BC mainframes, which are no longer sold by IBM, as well as older z800 and z890 midrange boxes and z900 and z990 high-end machines from the early 2000s. These machines will no doubt be in the field for many years at some companies, but have long since been removed from the IBM catalog. You need to be on z/OS V1.10 or higher to use these JDKs. ®