Execute a refactored IBM Mainframe Application on Multiple Clouds with Heirloom®

January 1st, 2021
No alt text provided for this image

Heirloom refactors online & batch mainframe workloads at compiler speed to cloud-native Java applications. During refactoring, it automatically makes those applications agile by exposing the primary business rules as RESTful web services.

No alt text provided for this image

We refactored a sample Mainframe “Account” application, packaged it as a standard Java war file, and deployed it to Alibaba CloudAmazon AWS BeanstalkGoogle App EngineIBM Cloud Foundry, and Microsoft Azure Web App (the links will take you to the application’s landing page). The war file is exactly the same package for all 5 cloud environments, ensuring you can retain the option to deploy to your preferred cloud(s).

When clicking on any of the application links above, bear in mind the initial response time may well be a tad sluggish. This is because:

  1. The applications are running on virtualized micro instances (the smallest possible).

  2. The instance count in each cloud is limited to 1.

  3. The applications are deployed across the globe (various US locations and China).

  4. All applications are accessing the same database (a Google SQL instance hosted on the US West Coast).

  5. The database is also running on the smallest possible instance (it’s also read-only, so any attempts to update the database will result in the application telling you the update failed).

  6. You’re reading this article a month (or so) after the publication date (i.e. some/all of the instances have been temporarily suspended).

No alt text provided for this image

These environments are artificially constrained. With the constraints lifted, every cloud platform used can seamlessly scale on-demand, with instances distributed across multiple geographies and availability zones (for high-availability), along with centralized management & monitoring. If you wanted to be a little more adventurous you could even set up a load-balancer and distribute your end-users across all 5 cloud applications!

Refactoring to industry-standard Java packages means Heirloom applications can immediately exploit the native capabilities of the target cloud platform.

No alt text provided for this image

When you access the application’s landing page, you will see 2 options. The first link is the default UI which emulates the function & behavior of the original 3270 screens. You will be taken to this UI after 10 seconds (if you don’t select the other option).

No alt text provided for this image

The second link is a JavaScript UI (created using the Ext JS framework). This is an example of how to quickly modernize the UI by interfacing directly to the CICS transactions that were automatically exposed as RESTful web services during refactoring. Once you’ve clicked “Load”, you will be presented with a sortable table. Double-clicking on a record will interface to Google Maps to locate the address. This particular UI was built in less than an hour, with no underlying changes necessary to the original application.

Here’s a list of running application URLs:

Amazon AWS Beanstalk, default UI, http://heirloomaccountenv.eba-yvfsrrm4.us-east-1.elasticbeanstalk.com/servlet

Amazon AWS Beanstalk, JavaScript UI, http://heirloomaccountenv.eba-yvfsrrm4.us-east-1.elasticbeanstalk.com/extjs/

No longer running:

Alibaba Cloud, default UI, http://8.210.99.190/servlet

Alibaba Cloud, JavaScript UI, http://8.210.99.190/extjs

Google App Engine, default UI, https://account-292103.appspot.com/servlet

Google App Engine, JavaScript UI, https://account-292103.appspot.com/extjs

IBM Cloud Foundry, default UI, https://account-us-south.mybluemix.net/servlet

IBM Cloud Foundry, JavaScript UI, https://account-us-south.mybluemix.net/extjs

Microsoft Azure Web App, default UI, https://heirloomacct.azurewebsites.net/servlet

Microsoft Azure Web App, JavaScript UI, https://heirloomacct.azurewebsites.net/extjs