Co-authors: Allen Chan, Sreehari Sreedharan
Many business-critical applications in enterprises today are traditional applications that have been developed more than a decade ago and therefore weren’t designed for the cloud-native era. When enterprises decide to leverage the benefits of cloud-native, they need to take a thorough decision around traditional applications. These are too critical to be just retired. Rip and replace thousands of lines of proven code and business logic is too costly and inefficient.
Business processes built on IBM Business Automation Workflow (IBM BAW) can be operated in a traditional and a cloud-native environment. However, the advanced capabilities of IBM BAW such as BPEL processes and Mediation Flow Components (MFC) only work in a traditional non-container environment. They enable processes to use sophisticated transactions, advanced integration and connectivity as well as data transformation.
While the traditional runtime environment of IBM BAW is well known for its operational stability and reliability, enterprises start to see advantages from developing applications and operating them in a cloud-native manner. These advantages include a faster time to value because of agile development practices and automations, reduced costs through containerization, and a higher portability provided by platforms such as Red Hat OpenShift acting as a runtime and management layer across hybrid, public and private clouds. Enterprises therefore define application modernization towards cloud-native as a priority.
The challenge in context of IBM BAW advanced capabilities is that approaches for transactions, integration and connectivity fundamentally change in the cloud-native world. We need to re-think, for instance, how to align new principles such as microservices — small stand-alone components using their own databases — with the need to support business transactions while still maintaining data consistency across services.
Over the last year, we have been working with several globally operating IBM customers on how they can modernize their BAW Advanced projects that utilize Mediation Flow Components. We analyzed common challenges to develop and validate approaches for transforming these IBM BAW Advanced capabilities to a cloud-native environment.
In this article we are sharing the results from this work. Our intent is to assist enterprises on their path to modernizing advanced IBM BAW workloads to meet their goals of agility and speed in a cloud-native environment.
The building blocks of a mediation
The advanced capabilities of IBM BAW including mediation flows are developed in IBM Integration Designer. In the following example let’s review the building blocks of a mediation.
When opening the project, we can explore the mediations in the Assembly Diagram.
A mediation intercepts the interaction between a service consumer and a service provider to support loose coupling. In a traditional application, benefits of loosely coupled components included a higher reuse of components, as well as improved extensibility and scalability.
A mediation is exposed through exports which specify the interfaces that are made available to external. These interfaces are defined in a WSDL document.
A mediation invokes a service provider. Service providers are declared in the imports that define the external service to be invoked.
From the project let’s have a closer look at the mediation module called SegmentationServiceMediation. It has a service consumer which is an external client:
- the web service SegmentationService_WS
and a link to a service provider, which is a service outside of the module:
- the EJB SegmentationController_EJB