On the 13th of March IBM announced, to surprisingly little fanfare, version 2 of their premiere enterprise transaction processing software, CICS Transaction Server. The first release of which will be generally available on the 30th of March and includes limited EJB 1.1 support. Read the full announcement document here: http://www-4.ibm.com/software/ts/cics/v2/
. CICS has been a flagship IBM software product for over 30 years now and runs primarily on IBM's OS/390 platform (recently rebadged as z/OS).
The most significant new feature in version 2 is support for EJBs, however, reading the announcement in more detail reveals some interesting revelations. Firstly, buried amongst the marketing information, IBM reveals that the EJB container in CICS will not run Entity beans. Now, quite how IBM can pretend to support EJBs without Entity beans in an interesting anomaly. However, the official IBM position appears to be that CICS should only be used for Enterprise Beans in conjunction with WepSphere (also available on 390) and that the typical architecture would be to wrapper existing legacy COBOL programs running under CICS with a Session Bean veneer. Far more worrying is the absence of EJB role based security from the CICS EJB implementation. The announcement letter promises that EJB style security will be available in CICS in the second release of CICS TS version 2, scheduled for beta release in September. Clearly this would be a significant concern for anyone planning to go into production with EJBs in CICS, but IBM themselves recommend that their customers wait for this second release before going to production and treat the initial EJB support in CICS as a technology only release.
IBM's EJB support on 390 has been poor to date, so this announcement is welcome and highlights IBM's continued support of Java in the enterprise. IBM has also announced the availability of WepSphere version 4 on OS/390 with complete EJB 1.1 support (I'm not sure about its level of J2EE compliance) and the 'technology' (read beta) release of WebSphere version 4 on distributed platforms. However, it would appear to be the case that the 390 implementations of EJB support have at least temporarily overtaken WebSphere on distributed in terms of the EJB 1.1 support in a generally available product. Perhaps this marks a changing trend in IBM's market base.
Of course, the biggest question has to be performance. CICS has a reputation for being a highly optimized if completely proprietary transactional environment. After all, they have had 30 years to get it right. That said, the JVM environment that IBM supplied in CICS Transaction Server version 1.3 was incredibly slow. For some reason IBM has taken the requirement for transactional isolation to new extremes and requires that each individual Java based transaction in a CICS system uses its own JVM. Adding the overhead of starting and stopping an entire JVM for each transaction was a major performance problem. In fact, so far as CICS TS 1.3 was concerned JVM support in CICS was little more than a marketing checkpoint.
In CICS TS version 2 IBM have added support for a technology which they are calling the 'persistent reusable JVM'. IBM are keeping very quiet about quite what this technology is, but if its name is anything to go by it could be quite interesting - even if it is only available on s/390. From what I can gather it appears to be a JVM which can be serially reused and reset between JVM invocations thus dramatically reducing the overhead of launching a JVM. If this is the case than I for one am a little surprised that IBM haven't shouted a little more loudly about it as it would appear to have a lot of potential uses elsewhere.
The question that still remains unanswered to my mind however is quite why an enterprise would want to go to the expense of upgrading their CICS systems in order to get this new EJB support. It's not as if there aren't a myriad of other ways to connect to a CICS transaction from a J2EE application, not least of which is using J2EE connectors. Still, this is an interesting announcement, not least because if IBM have put in the investment to add EJB support to CICS it must surely be because some of their major enterprise customers (fortune 500 types) have actually requested it. Anything that promotes J2EE in the enterprise has to get a thumbs up from me.