Hi All

I am just putting my thought … An endpoint is to capture the information
about an external service including its access location, QoS requirements,
etc.  In synapse point of view, we can only identify two types to give
external service information… i.e Address and WSDL.

In Address endpoint, the only way to give the location of the external
service is URI. There are two ways – implicit and explicit.  In the case of
the implicit, we never want to give URI because the endpoint itself knows
how to find it. We used “Default endpoint” to capture this behavior of the
address endpoint. From my point of view, the use of ‘Default’ is wrong
because, there is only two ways to capture external service information
(using either an epr address or WSDL). I believe, as ‘Default’ is the case
where the URI of an address endpoint should be calculated from the implicit
properties, the URI should be optional, and the keyword of address, and WSDL
are the only meaning full domain specific names for indicating that this is
a component that represents a connector to an external service.  This type
of address endpoint can leverage components such as URI rewrite mediator.

In the case of the explicit, we have to specify the URI of the address
endpoint through a configuration. URI can be static and dynamic.  In the
static case, there is no only one way i.e giving the complete URI in the
configuration. However, in the dynamic case, there are a few ways.  To
analyze this, we can divide endpoint URI into two parts – prefix and suffix.
So therefore, available options for a dynamic endpoint URI as follows

Case 1 : prefix - dynamic and suffix  - dynamic

Case 2 : prefix – dynamic and suffix – static

Case 3 : prefix – static and suffix – dynamic  - I believe  the Miyuru’s
suggestion belong to this category

So my suggestion , we should give a compressive way to  specify the URI of
an address endpoint  and I also believe there is no need for a default
endpoint …  so my suggestion to capture all these requirements

<address>

    <uri [ value="" expression="" ]> { case 1  or static URI}

        <prefix [ value="" | expression="" ] />  { case 2 / 3 }

        <suffix [ value="" | expression="" ] /> { case 2  / 3}

    </uri>

</address>

URI is optional - case is the implicit URI of an address endpoint

Either the URI attributes: value or expression or both prefix or suffix
elements should be present.  I do not know whether a schema can be written
for this.

This is just my thought and I am not against anyone suggestions …

Thanks

Indika

Reply via email to