IBM’s Information Management System (IMS) has been an important part of the computing environment for more than 40 years, yet it’s still able to make use of the latest computing ideas and technology. The first “IMS READY” message appeared on an IBM 2740 terminal on Aug. 14, 1968, and the first mission of the IMS system was to inventory a massive Bill of Materials for the Saturn V rocket and Apollo space vehicle.
Today, IMS is more closely associated with financial institutions; they use it to access and process massive amounts of data quickly. Almost 90 percent of Fortune 1000 companies currently use IMS, and more than $3 trillion of transactions go through it daily.
But while processing huge numbers of transactions and quickly accessing data is good, it still leaves IMS as an island of technology inside an IBM mainframe environment. What people need in these days of hybrid mainframes and mixed platform data centers is some way to make the IMS data and transactions available to everyone, everywhere. The first destination might be other islands of mainframe technology, such as DB2, CICS and WebSphere MQ, and then users working on a laptop, tablet, or smartphone.
IMS for Everyone
It might be helpful to have IMS data easily available in a mash-up, a new application combining data from different sources. We need to be able to share with Oracle and SAP and similar systems. We will also want data available on Windows platforms—perhaps turning up in an Excel spreadsheet, but more likely talking with SharePoint. We may even want our IMS system to provide cloud computing facilities for some users. We need IMS to be as up-to-date and youthful as any other software out there!
The database part of IMS is often referred to as IMS DB; the transaction manager part is IMS TM.
IMS TM can use DB2 as its database instead of IMS DB, so in one sense, the IMS island can already talk to the DB2 island. However, the reality for many users is that they have data in DB2 and in IMS DB, and they want to be able to share this data.
Why would sites want to share their IMS data with DB2? There are several site-specific answers. Many sites need to provide users a way to interrogate their data outside the IMS environment. Reporting programs can change frequently as the business needs different information on which to make decisions; using DB2 as a source can provide greater flexibility. Some sites may want to incorporate the data in a Business Intelligence (BI) system or use it in their data warehousing application. For some sites, moving IMS data to DB2 provides a way of allowing vital, existing IMS transactions to continue to work while letting that data coexist elsewhere for use in newer applications.
Meeting the Challenges
Anyone who has tried the seemingly simple process of moving IMS data to DB2 knows that several challenges must be overcome. There can be issues with keys, data field challenges, redefined segments and fields, repeating groups, and non-keyed segments. In terms of data fields, you must consider invalid data, dates, text or comment fields, and binary or special fields. Within those, there can be complications with invalid data, non-numeric data in numeric fields, binary zeros in packed fields (or any field), or invalid data in character fields. Dates must be decoded or validated if the target column is DATE or TIMESTAMP. Many dates were complicated by the work carried ahead of Y2K, so finding someone with knowledge of that can be useful.
If a site has both IMS and CICS, there may be a time when a user needs to make a decision using information from transactions running on both systems. The obvious solution is to run two separate transactions on the two different systems, then separately combine the results to get the desired information. But this is where things become complicated because business logic and business units of work don’t easily map to the way the transactions were written. What’s needed is some way to seamlessly combine transactions running in the separate subsystems and make them appear to the user as a single, cohesive system.
A Single, Cohesive System
There are ways to achieve this, and by stepping down this road, sites are expanding what they can do with their transactions and how users can gain controlled access to the information they need. Web services, a method of communication between two devices over the Internet, facilitate this.
According to the Wordwide Web Consortium (W3C), a Web service is a software system designed to support interoperable machine-to-machine interaction over a network. To make this work, you need some lingua franca that all Web services can use. Web Services Description Language (WSDL) performs this job. The interaction with the Web service uses Simple Object Access Protocol (SOAP) messages. There are two classes of Web services: Representational State Transfer (REST)-compliant Web services using stateless operations and arbitrary Web services.