(Migrated) How to Proxy an Existing SOAP Service?

(This message has been automatically imported from the retired mailing list)

Hi everyone,

I’m new to Zato and I’m going through basic scenarios to proof test it.
I’ve been trying to find a tutorial on how to proxy an existing soap web
service with Zato, but couldn’t find any. Could anyone point me in the
right direction, please?

I’m still confused about the granularity I should register things in the
admin console: is it by operation, by service?

The reason I’m trying this scenario is to create an indirection layer
between the producer and the consumer so that there’s not point to point
connection in a service oriented solution (I know it’s obvious).

The service I’m using is just a free test service:
http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL
Could be any other service.

What I’ve been thinking is that I should:

  • Create an outgoing connection pointing to this existing service
  • Create a service (in Python) that receives requests, forwards them to
    this outgoing connection and back to the consumer.
  • Create a channel to make the service available for consumers

Is it the right idea?

Thanks in advance.

Francisco

Thanks for your reply Dariusz!

I’m actually just experimenting and have been trying to get it working with
this service: http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL
No security, no nothing. Just invoke any method, say GetCityWeatherByZIP,
through my Zato’s endpoint address. I’m really stuck :frowning:

Could you please what to create in more details? Is it a SOAP outgoing
connection? If yes, do I have to register method by method? If not, what
should I use for “Soap Action” since there are 3 in the existing service?
This sort of doubt is getting me stuck.

Thanks again.

Francisco Zanfranceschi

On 18 August 2014 16:38, Dariusz Suchojad dsuch@zato.io wrote:

On 15/08/14 20:49, Francisco Aguiar Zanfranceschi wrote:

The service I’m using is just a free test service:
http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL
Could be any other service.

What I’ve been thinking is that I should:

  • Create an outgoing connection pointing to this existing service
  • Create a service (in Python) that receives requests, forwards them to
    this outgoing connection and back to the consumer.
  • Create a channel to make the service available for consumers

Is it the right idea?

Hi Francisco,

yes, this is the right direction.

How to implement it depends on how many backend services/operations
there will be - will it be in dozens? Hundreds?

How does the security situation look like? Would you like for all the
backend services to have the same security scheme as defined on proxy?

Depending on the answers the actual implementation will probably range
from trivial to easy but could you please first say more about the
environment you’re thinking of?

On 15/08/14 20:49, Francisco Aguiar Zanfranceschi wrote:

The service I’m using is just a free test service:
http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL
Could be any other service.

What I’ve been thinking is that I should:

  • Create an outgoing connection pointing to this existing service
  • Create a service (in Python) that receives requests, forwards them to
    this outgoing connection and back to the consumer.
  • Create a channel to make the service available for consumers

Is it the right idea?

Hi Francisco,

yes, this is the right direction.

How to implement it depends on how many backend services/operations
there will be - will it be in dozens? Hundreds?

How does the security situation look like? Would you like for all the
backend services to have the same security scheme as defined on proxy?

Depending on the answers the actual implementation will probably range
from trivial to easy but could you please first say more about the
environment you’re thinking of?

On 15/08/14 20:49, Francisco Aguiar Zanfranceschi wrote:

The service I’m using is just a free test service:
http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL
Could be any other service.

What I’ve been thinking is that I should:

  • Create an outgoing connection pointing to this existing service
  • Create a service (in Python) that receives requests, forwards them to
    this outgoing connection and back to the consumer.
  • Create a channel to make the service available for consumers

Is it the right idea?

Hi Francisco,

yes, this is the right direction.

How to implement it depends on how many backend services/operations
there will be - will it be in dozens? Hundreds?

How does the security situation look like? Would you like for all the
backend services to have the same security scheme as defined on proxy?

Depending on the answers the actual implementation will probably range
from trivial to easy but could you please first say more about the
environment you’re thinking of?