Oct 16, 2009

Mainframe SOA - Part 1

What is Mainframe SOA? For the purposes of this article, I'm referring to exposing web services from COBOL applications in a mainframe environment. (The specific mainframe environment I'll discuss in this article is CICS.)

Today there's a variety of tools and native functions that allow expose of CICS transactions or COBOL subroutines (or full applications) as Web Services from the mainframe. In brief, here's what these tools and functions come to solve:

- Formerly COBOL did not handle XML natively.
- While CICS began to expose web server type functionality some years ago, it did not have any way to link a web request to a COBOL routine.

About 3 years ago both of these problems were solved natively, in somewhat of a limited fashion:

- Enterprise COBOL integrated XML processing functions into the base language capabilities. However, COBOL is still limited to creating internal data structures using the standard COBOL data blocks. This means it's poor at handling variable length data elements, optional data elements, and much data structure depth.

- CICS added a pretty straightforward easy way to expose a web service and have it activate a COBOL subroutine on entry (as well as processing the SOAP header). However, IBM reports that under load this CICS facility may perform poorly or require excessive CICS environment resources. (I've never had a chance to see actual results under stress testing.)

To be continued in Part 2, Third Party Tools Covering These Gaps.