MAINFRAME > Administrator > IMS

Connect IMS Systems of Records to Systems of Engagement With Java EE Connector Architecture


IMS with its well-proven track record of nearly half a century in performance, security and scalability has become a highly valued system of record for many industries. However, systems of records only makes up one part of companies’ enterprise architectures. Due to the rapid changes in the technological landscape, consumers are expecting access to data stored in these systems of records through a variety of different access points such as Web browsers, mobile devices and wearables. These systems of engagement focus on the end client experience. It is critical for forward-looking businesses to tie their systems of records to their systems of engagement.

IMS currently supports many different methods (see Figures 1 and 2) for doing this such as the IBM IMS Mobile Feature Pack for z/OS Connect and the IMS Enterprise Suite SOAP Gateway for access to IMS transactions. For IMS data access, a common solution is to leverage a Java application server. Read the sidebar “IMS Transaction Manager Resource Adapter a Popular Solution” for more.

The Benefits of Running In a Java Application Server

Java application servers allow businesses to separate the data access to their systems of records from the client application. This allows data access details such as IP addresses or database names and structures to be completely hidden from the application developer. IMS Open Database (see Figure 3) which was released with IMS V11 allows users to access their IMS databases through standard protocols such as the JDBC API and the Java EE connector architecture (JCA).

While Java application servers can utilize the JDBC driver directly, there is more value to be had when using the JCA resource adapter. A resource adapter connection would be able to leverage features such as connection pooling and XA and local transaction support. Every connection to IMS will incur some overhead cost in both hardware resources and time to establish the network socket. This cost can be minimized through connection pooling where the database connection will be maintained for future use. XA transaction support (also known as two-phase commit) allows for multiple databases to be updates in the same unit of work. If a service wants to update two IMS databases or an IMS database and another database such as DB2, the two databases would both be updated or no update will be made to either one. To coordinate the commits between the two databases an additional component, the z/OS Resource Recovery Services (RRS) is required.

Choosing the Right IMS JCA Resource Adapter

JCA supports both a JDBC and a Common Client Interface (CCI) programming model. To support the different programming models, IMS ships four different JCA resource adapters. The IMS JDBC driver and JCA resource adapters are available as an installable function in IMS. The function modification identified for IMS Java On Demand features is JMKxx06 where xx is the IMS version number. This will mount a directory into the UNIX System Services environment where the following five files can be obtained:

  • imsudb.jar: Standalone JDBC driver for both Type 2 and Type 4 JDBC access
  • imsudbJLocal.rar: JCA resource adapter for the JDBC programming model with local transaction support
  • imsudbJXA.rar: JCA resource adapter for the JDBC programming model with XA transaction support
  • imsudbLocal.rar: JCA resource adapter for the CCI programming model with local transaction support
  • imsudbXA.rar: JCA resource adapter for the CCI programming model with XA transaction support

The JDBC programming model is recommended over CCI as it provides an easier transition from a standalone Java environment to the Java application server. From a performance perspective, the local transaction model is always preferred unless two-phase commit is required as running through RRS adds additional overhead in order to synchronize between the two databases.

Abstracting Data Access for Better Governance and Security

Once a database connection has been established between a Java application server and an IMS database through one of the JCA resource adapters, the application developer can start using it directly in their application. However, this is only recommended to validate that the connection to the systems of records is working correctly. DBAs can be wary of providing external access to the systems they manage and could want to put a level of control and governance over the queries that get issued. This can easily be managed through a data abstraction layer that will hide the actual query from the application developer (see Figure 4). This allows the DBAs to validate exactly which queries are allowed into the back end systems.

For example, a DBA can restrict the application developers to only being able to issued uncommitted read operations. This will help alleviate lock contentions and allow existing core business services to run at the same operational levels prior to opening up access. Another example is that a DBA can now restrict long running queries such as one that does not have a conditional clause on it which would require a full database scan. This would help avoid additional and unnecessary processing and reduce the operational costs for a business.

There are many different solutions for abstracting the data query from the end user. The most common way is to provide a service layer where the application developers will invoke a service call requesting information which will then run a prebuilt database query. This will also hide database details such as tables and columns and the relationship between tables. This is important when connecting systems of records to systems of engagements because it allows companies to strictly define the relationship between their two systems. Popular solutions used by IMS customers includes implementing their own data access object layer, Hibernate, Apache OpenJPA and IBM InfoSphere Optim pureQuery. These solutions leverage object-relational mapping, to convert the database query into an easily consumable Java object. Other solutions include abstracting the database query through a Web service. IBM DataPower provides the ability to convert IMS SQL queries into SOAP or REST services.

Running on a WebSphere Application Server

There are also many different Java application servers available for use such as Apache Tomcat, IBM WebSphere Application Server and Oracle WebLogic. Because IMS Open Database is built on standard protocols such as JDBC and JCA, it is able to work effortlessly with most application servers on the market. While the IMS JCA resource adapters have been certified and are fully supported by IBM WebSphere Application Server, there are a few IMS customers in production with non-IBM Java application servers. One of the benefits of using IBM WebSphere Application Server is that it can run in both a distributed environment (e.g., Linux, Windows) and on z/OS. When using the IMS JCA resource adapter through a Java application server on z/OS, it is also possible to leverage the JDBC Type 2 connectivity, which will bypass the need to create a TCP/IP socket between the resource adapter and IMS. This allows for much faster service invocation and higher throughput of calls.

IBM recently released the IBM WebSphere Application Server Liberty Profile, which is a lightweight version of IBM WebSphere Application Server. This is ideal for deployment on z/OS as it has smaller footprint and the deployment can be customized to reduce it further. Because it is more lightweight than the traditional application server, there is no Web administration console for installing resource adapters. To set up an IMS JCA resource adapter with IBM WebSphere, the server.xml configuration file will need to be edited to include the information. A sample server.xml is provided in Sample 1.

Enhancing Systems of Engagement With the IMS JCA Resource Adapters

The IMS JCA resource adapters provided by IMS Open Database allows businesses to easily connect their systems of records with their systems of engagement. By using a Java application server such as IBM WebSphere Application Server, businesses can now provide external access to their IMS resources in a safe and secured manner to enhance their customers experience through their Web and mobile access portals.

Richard Tran is an IBM software engineer working as the IMS Open Database team lead. He is involved in integrating IMS with other business solutions such as business analytics and reporting, content discovery and web enablement.



Like what you just read? To receive technical tips and articles directly in your inbox twice per month, sign up for the EXTRA e-newsletter here.


comments powered by Disqus

Advertisement

Advertisement

2019 Solutions Edition

A Comprehensive Online Buyer's Guide to Solutions, Services and Education.

Bringing IMS and SOA Together With IMS Connect

New requirements for IMS Connect functionality could make implementing an SOA environment with IMS easier and more flexible.

Celebrating 40 Successful Years

IMS version 10 supports synchronous and asynchronous callout

IBM Systems Magazine Subscribe Box Read Now Link Subscribe Now Link iPad App Google Play Store
Mainframe News Sign Up Today! Past News Letters