Great example. Now assume that Ma & Pa want to advertize a URI for
subscribing to their service _without_ implying the binding that will be
used in the URI. How do they do that? You obviously can't send out any
of the soap:address locations, since they imply a transport. You can't
send the URI of the "ma-pa-market-service" element, since that is for
more than one interface. Seems you would need to send out two URIs --
the one for "ma-pa-market-service" and the one for the
"ma-pa-market-admin" interface. Two URIs are necessary in order to
refer to the most useful concept that is provided by WSDL: a reference
to a service independent of the mechanism used to communicate with it.
Michael
Amy Lewis wrote:
> ...
>
>I don't much like the printer example, so I'll provide another. Suppose
>I want to enable a business to business marketplace for quite small
>businesses--mom and pop shops, in the vernacular. These folks have
>email, but only appear on the web as clients, not as servers. Suppose
>I've got an email binding that supports at least request/response,
>one-way, solicit/response, and notification (to use WSDL 1.1 pattern
>names).
>
><interface name="ma-pa-market-admin">
> <operation name="subscribe" pattern="request-response" />
> <operation name="unsubscribe" pattern="request-response" />
> <operation name="options" pattern="request-response" />
> <operation name="set-signature" pattern="request-response" />
> <operation name="get-information" pattern="request-response" />
> <operation name="submit-offer" pattern="one-way" />
></interface>
>
><interface name="ma-pa-market">
> <operation name="offer" pattern="solicit-response" />
> <operation name="end-offer" pattern="notification" />
></interface>
>
><binding name="ma-pa-market-admin-binding"
>interface="ma-pa-market-admin">
> <defaultBinding extension="soap"><!-- more here --></defaultBinding>
></binding>
>
><binding name="ma-pa-market-admin-web-binding"
>interface="ma-pa-market-admin">
> <defaultBinding extension="soap"><!-- more here --></defaultBinding>
></binding>
>
><binding name="ma-pa-market-binding">
> <defaultBinding extension="soap"><!-- ditto --></defaultBinding>
></binding>
>
><service name="ma-pa-market-service">
> <endPoint name="ma-pa-market-admin-port"
>binding="ma-pa-market-admin-binding">
> <soap:address location="soaperdomo@mail.ma-pa.org" />
> </endPoint>
> <endPoint name="ma-pa-market-admin-web-port"
>binding="ma-pa-market-admin-web-binding">
> <soap:address location="https://www.ma-pa.org/marketplace/admin" />
> </endPoint>
> <endPoint name="ma-pa-market-port" binding="ma-pa-market-binding">
> <soap:address location="marketplace@ma-pa.org" />
> </endPoint>
></service>
>