You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@synapse.apache.org by Lorenzo <ce...@gmail.com> on 2007/03/07 10:08:06 UTC

Classic scenario for Synapse?

Hi,

i'm new to Axis2 and really new to Synapse (discovered just yesterday) i
have this problem:

i have a client and a server that exchange soap messages. 
i have to put one (or more) proxies between those two nodes in a
trasparent way for them. The only thing i can change in the client is
the EPR to the first proxy.

So my proxy should do this:
-receive the message from the client
-do some stuff on the message (record, edit headers, etc..)
-choose the next recipient (depending by message's content) 
-route the message to it

I should also add ws-ReliableMessaging in the whole communication
process, but i think i can do it only in proxy2proxy communication
because my client and server could not support it (it's right?)  


Which is the better way in order to resolve this situation? Does Synapse
fit for this? Can i use Synapse also to edit the message? Is id build on
Axis2 and can i use the Axis2 features?

Thx in advance.



---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-user-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-user-help@ws.apache.org


Re: Classic scenario for Synapse?

Posted by Paul Fremantle <pz...@gmail.com>.
Lorenzo

Yes - that is *exactly* the scenario that Synapse is designed for.

The first question I have is what information are you routing on?

There are two main approaches you can take:

1) source routing. The client decides on the ultimate destination, and
conveys this to the Synapse node. In this case the Synapse node can
act like an HTTP proxy, or as a SOAP intermediary. The final URL is
carried either in the HTTP header (HTTP proxy mode) or in the
WS-Addressing To address [there is a trick to get Axis2 to send the
message to Synapse at the transport level]

2) Synapse-based routing. In this model Synapse looks at the message
and decides where its going. This can be a hard-coded link from the
incoming Synapse endpoint URL to a real URL (virtualization), or it
can be looking into the message (content-based routing).

You can edit headers, log the message and even transform it in
Synapse. We have simple directives to edit the headers, and log. For
more complex transformations you can use XSLT, Java or even
Javascript.

As for ReliableMessaging, you can do this end-to-end, or we can get
Synapse to start the session and then terminate it if your ultimate
endpoints dont support RM. Here are the two options:

1) Client ----RM--->Synapse-----RM---->Synapse-----RM---->Server

In this option we basically ignore the RM at the Synapse level and
just proxy it through.

2) Client----SOAP-no-RM---->Syn-----RM------->Syn-----SOAP-No-RM---->Server

In this case Synapse takes care of the RM for you.

Of course there are other combinations too.

Finally, yes Synapse takes advantage of Axis2 features. It runs on top
of Axis2 and for example to implement RM we drop down into
Axis2/Sandesha2.

Paul

On 3/7/07, Lorenzo <ce...@gmail.com> wrote:
> Hi,
>
> i'm new to Axis2 and really new to Synapse (discovered just yesterday) i
> have this problem:
>
> i have a client and a server that exchange soap messages.
> i have to put one (or more) proxies between those two nodes in a
> trasparent way for them. The only thing i can change in the client is
> the EPR to the first proxy.
>
> So my proxy should do this:
> -receive the message from the client
> -do some stuff on the message (record, edit headers, etc..)
> -choose the next recipient (depending by message's content)
> -route the message to it
>
> I should also add ws-ReliableMessaging in the whole communication
> process, but i think i can do it only in proxy2proxy communication
> because my client and server could not support it (it's right?)
>
>
> Which is the better way in order to resolve this situation? Does Synapse
> fit for this? Can i use Synapse also to edit the message? Is id build on
> Axis2 and can i use the Axis2 features?
>
> Thx in advance.
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: synapse-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: synapse-user-help@ws.apache.org
>
>


-- 
Paul Fremantle
VP/Technology, WSO2 and OASIS WS-RX TC Co-chair

http://bloglines.com/blog/paulfremantle
paul@wso2.com

"Oxygenating the Web Service Platform", www.wso2.com

---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-user-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-user-help@ws.apache.org