Chathura has written some load-balancing code for Synapse, but it
seems like the current model for endpoints needs a little refactoring
to sit well with it.

Currently an endpoint is "just" one endpoint. In the config language
(http://ws.apache.org/synapse/Synapse_Configuration_Language.html) it
says you can have several endpoints in a <send>..</send> but we've
never implemented that.

If we did it that way, then you couldn't use the load-balancing with a
proxy without defining a sequence, because the proxy just takes a
single endpoint reference.

So it seems it makes more sense to have the <endpoint> tag refer to a
"logical" endpoint. A logical endpoint could be defined in lots of
ways. For example, it could actually be a load-balancing group, or a
failover pair.

So here is a potential syntax:

<endpoint  name="string">
   (
   <address uri="http://"; [format="soap|soap11|soap12|pox"]>
       <enableRM policy=" "/>?
       <enableSec [policy="key"]/>?
       <enableAddressing/>?
       .. extensibility ..
   </address> |

   <wsdl [uri="http://..";] [service="qname"] [port/endpoint="qname"]>
       <wsdl:definition>...</wsdl:definition>?
       <wsdl20:description>...</wsdl20:description>?
       <enableRM policy=" "/>?
       <enableSec [policy="key"]/>?
       <enableAddressing/>?
       .. extensibility ..
   </wsdl> |

   <loadbalance policy="round-robin">
       <endpoint ../>+
   </loadbalance> |

   <failover policy="exponential-retry">
       <endpoint ../>+
   </failover> |

   .. extensibility .. )
</endpoint>

So in this model, we can define an endpoint as either an address, or
using a WSDL, or as a load-balance group, or failover group. There
could be other types (maybe using MEX?).

Chathura has some cool implementation thoughts to go with this, which
I hope he will send  as well (hint, hint).

Paul

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

http://bloglines.com/blog/paulfremantle
[EMAIL PROTECTED]

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

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to