Recently, while working with one of our clients, we wanted a fast way to send update transactions to a CICS mainframe. Our client was a pretty typical financial services company with a lot of complicated business rules implemented in COBOL screens. They wanted a web front-end to their application, but didn’t want to even try to consider re-writing those business rules in a modern language like Java.
The environment already had some good messaging infrastructure, but their CICS COBOL programmers were so back-logged that we couldn’t get any new messages built in time to meet the delivery schedule we wanted.
So we looked around for alternatives. One alternative that came quickly to mind was classic screen scraping. Make no mistake: a lot of really good architects will poo-poo screen scraping (and for good reason). But sometimes you just can’t beat it for getting something done fast.
With a bit of good research, we quickly found some Java components that could be used to interact with CICS screens. It’s helpful that some really good standards have emerged in this space. One such standard is the Open Host Interface Objects (OHIO) standard, which provides a common object-oriented face for mainframe screens. We didn’t find an OHIO implementation that was in our price-point, so we ended up writing our own.
With the OHIO implementation and a generic screen navigation framework, we were able to build a fully-functional web site amazingly quickly.