Unlocking Progress Webservices: 2

Progress Webservices
Jitender Dhingra

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

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

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

Security protocol upgrade – (TLS1.0 to TLS1.1/TLS1.2) – While integration between two systems, security protocols should be 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 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 short period. We had a big problem staring at us.

We tried various solutions and finally 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 which 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 result back to Progress.

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

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

Leave a Reply

Your email address will not be published. Required fields are marked *