Search code examples
soapproxywsdlwebmethods

SOAP Proxy Service - Consumer/provider relationship


webmethods newbie here, so go easy. I have been looking into creating a SOAP proxy service (client to proxy to backend or vica versa). I have managed to do this with the following steps:

  1. create a standalone service that does some transformation based on content and create a WDSL for it
  2. create another package with the provider pointing at the WSDL of the above service (with this step you automatically get a provider flow)
  3. create a consumer that also points to the same WSDL
  4. create a consumer flow and set auto generated input/output and map the service in/out and drop surplus pipeline variables
  5. invoke consumer flow in provider flow then map and drop variables as needed
  6. test this in SOAPUI and get a 200 ok code as well as the desired response.

So far so good, you're with me? Now, i created another package and connect to the same service as the above proxy service connects to, however, this time i didn't create a provider. Just a consumer. It still works. I am confused.

I have tried researching what purpose the provider fulfills in this instance (like i say both provider and consumer are pointing to the same WSDL), but i literally cannot find anything. Why is the provider needed in a 1 way request and response? Would i only need a provider if both the backend and the client want to send requests? Apologies if this is too generic, i can breakdown the steps more if needed and provide screenshots. Like i said above google isn't telling me much on this topic, so i'm hoping you smart people can help me.

Thanks, Apex


Solution

  • Turns out I've done it all wrong and didn't quite understand the concept here.

    Provider is used to expose a webservice and the consumer to invoke a service. In this case both instances returned the same results because the standalone service has already had a WSD created which acts as the provider, thus exposing the service and rendering the newly created provider useless. In otherwords, i did create a proxy service to invoke it's own service.