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