Unlocking Progress Webservices: 2

May 16, 2018 By: Jitender Dhingra

In my previous blog I shared some of the challenges I faced while integrating the Progress application with other 3rd party applications through web services.

Extending that further, in this blog, I am going to discuss another integration issue we faced and its respective solution.

The requirement was to determine the tax amount on an order. We were facing the following problems:

Security protocol upgrades – (TLS1.0 to TLS1.1/TLS1.2) – While integration between two systems, security protocols should be the same on both sides.

During the integration process, we got a notification from the tax software API vendor that they are upgrading their security protocol to TLS1.2 from TLS1.0 in the next 3 months. The Progress version we were using does not support TLS1.1/TLS1.2. Obviously, it is not possible to upgrade the Progress version in a short period. We had a big problem staring at us.

We tried various solutions and finally, the following solutions were most effective:

Connect via JBOSS

To overcome this problem, we decided to remove the direct connection between Progress and Tax application. Instead, we developed an intermediate layer in JBOSS that supports TLS1.0, TLS1.1 and TLS1.2 security protocols. So now Progress first connect to JBOSS and then JBOSS connects to third-party tax webservice and gives results back to JBOSS which in turn gives the result back to Progress.

JBOSS Connection Diagram

Every solution has its pros and cons. We found the following advantages with this solution:

  • Cost – By implementing the above architecture we saved the cost of upgrading the Progress version.
  • Zero changes on the Progress side – With little more smartness, we even ensured that no change is required on the Progress side in order to implement the new architecture. Let’s see how.
    In the intermediate layer, we defined the same endpoint name as we have in third-party web service. This way no change was required on the Progress side except the URL. Since URL was softly parameterized so effectively there were zero changes at the code level.

About the Author

Jitender Dhingra