Expose through APIs pattern

Access mainframe applications and data by using standards-based REST APIs with IBM® z/OS® Connect EE. Manage APIs by using industry-standard API management solutions, including solutions by IBM.

Overview

← Back to Application modernization patterns

APIs expose enterprise applications and data that are hosted on all platforms, including ones on IBM Z®, based on the OpenAPI Specification. Many organizations rely on core applications on IBM Z to run their business-as-usual operations. Those applications consist of both online and batch programs that maintain system-of-record (SOR) data. They use business logic to maintain data integrity across business entities and to implement business policies, processes, and rules. Most of those transactional and batch applications were designed decades ago; they evolved over the years and are complex.

To accelerate digital transformation, organizations need to embark on a strategy to modernize core applications and build new ones. Challenges often arise when it comes to updating mainframe-based monolithic applications to support new business initiatives. Risk is involved, and the effort that is required to develop the new functions and test the application is often significant. Alternatively, complete rebuilding also faces multiple challenges, such as high development cost, lack of documentation and understanding of the business logic, exposure risks to business-critical data, and poor performance and availability.

A good starting point for modernization is to leverage core business-critical applications on IBM Z by using APIs that are consumed by new cloud-native application logic, such as mobile or cognitive applications. You need to develop APIs to expose applications on IBM Z. You also need a robust and comprehensive runtime environment for APIs that is scalable, highly available, secure, and that covers all subsystems.

Cloud-native is about using the features of cloud to develop and deploy capabilities to respond to market demands and remain competitive in the new digital environment. Those new applications can use APIs to access core business applications and data that are hosted on IBM Z.

 

Solution and pattern for IBM Z®

IBM Z supports tools for the development of APIs that are based on the OpenAPI Specification from core applications on IBM Z and a robust, comprehensive runtime environment for exposing APIs. The reference architecture for the runtime invocation of APIs is detailed in IBM Z application and data access through APIs. The runtime architecture describes the components that are involved in invoking a mainframe application that is exposed as an API. The development, deployment, and monitoring of APIs is shown on the DevOps tab. Securing business assets includes not only securing data at rest but providing controlled access to assets through governed and managed APIs. The Security tab shows the details of security as it is enforced at run time.

The following diagram shows the components that are involved in invoking a mainframe application that is exposed as an API. In the simplified flow example, a cloud-native application invokes an API that is managed, secured, and exposed by an enterprise API management system that uses an API gateway. The API gateway, upon receiving a request, checks to see whether it is an authorized request. If the request is authorized, the gateway routes the request to a corresponding API that is deployed on z/OS Connect EE that runs on IBM Z. The z/OS Connect EE server transforms a REST/JSON based API request into a payload according to the prespecified copybook format. It also invokes a z/OS application that runs on a subsystem such as CICS®, IMS, or IBM® Db2®. Similarly, the z/OS Connect EE server transforms the response from the application into the results format that the API definition specifies. For more information about this flow, see the reference architecture page.

Advantages

A key business benefit of this pattern is that enterprises don’t need to abandon their decades of investment in core applications on IBM Z. Instead, they can breathe new life into those applications by exposing them as APIs for consumption by new cloud-native applications. The use of cloud-native technologies can enable organizations to build highly scalable applications in today’s modern environment with private, public, and hybrid clouds.

Specifically, the ability to use cloud-native applications with core applications on z/OS can provide these advantages:

  • Enable speed to develop and deploy new capabilities, responding to market demands by using modern development tools and processes

  • Address skills shortages of older technology by using open-standards-based languages

  • Take advantage of security frameworks that are available with modern applications to meet compliance standards

  • Avoid the high risks of completely rebuilding business-critical applications

  • Provide a way to deploy updates without redeploying the entire application

 

Considerations

Consider evolving SOA services. While you develop any new cloud-native functions, the use of APIs to leverage core applications and data is a common choice. It improves productivity and ease-of-use, supports standards-based integration, and provides an opportunity to use the zIIP engine on IBM Z. However, also consider evolving your SOA-based services. To learn more about the benefits and reference architecture, see the Mainframe application access by evolving SOA services to APIs reference architecture. A few key advantages of using APIs over SOA-based services are as follows:

  • Improving productivity and solution agility by simplifying the development and deployment of APIs
  • Eliminating duplicate runtimes for connectivity solutions by transforming all distributed applications to use APIs
  • Reducing integration cost by running implementations that are based on Java®
  • Avoiding existing integration methods, as they incur a long delay to meet marketplace needs

Use IBM Application Discovery and Delivery Intelligence. To discover and understand the code to be exposed as APIs, use this tool to analyze assets on IBM Z. You can understand the impact and interdependencies of extending a core application. For more information, see the Application discovery pattern.

Consider your deployment topology. Use multiple z/OS Connect EE server instances to support the full lifecycle of an API, including development and testing, and a highly available and scalable production runtime environment.

Enable runtime monitoring and management. Consider integrating the monitoring of APIs with the monitoring of the end-to-end solution, spanning the cloud-based application that invokes APIs and the API enabling runtimes and core applications that run on IBM Z.

What's next

Contributors

Asit Dan
z Services API Management, Chief Architect, IBM Master Inventor, IBM Systems IBM