Search code examples
restsoapwebspherespring-restwas

How to transform a WAS Soap Service to Modern Rest Service


There is a big and old WebSphere service in my hand. This service basically working for most of the account operations like open,close,update etc. We use the Spring - Core project on the IBM WebSphere servers and as you know this is kind a little old. One of our goals is to transfer this architecture to REST Services. But I am confused, how should I start the road, all your recommendations would appreciated.

By the way, for me the main problem is WAS Service unfortunately it is not build on the local like Spring REST service, we can not debug on local. So we develop and transfer to UAT environment and test it. It is not a good practice because sometimes this causes huge costs.

You can see below this is the folder structure of service;

enter image description here

And in the web layer there is some WSDL per enviroment and binding stuff to server. I can not completely figure out how they are working, you can see this also below,

enter image description here

I know all of information given to you may not enough but at least you one of us show me the path , how to convert this Soap service to modern REST Spring Boot service,

Kind Regards,


Solution

  • You should first start with analyzing whether it is really needed. WebServices are still pretty wide and robust standard, so unless you observe some critical issues with it dont change it.

    Second, you have to check what WS features are currently used in your implementation, as some like message signing and encryption are quite hard to implement in REST.

    Finally, if you still decide to change the architecture, I would use "strangler" approach, so slowly replace services one by one, as you will have to change both ends (client and server parts in your app), and you may have many apps/modules who act as clients to your services. You could even first create parallel REST endpoint, so you can fix also client by client and not all at the same time.