- From: FABLET Youenn <youenn.fablet@crf.canon.fr>
- Date: Tue, 28 Jan 2003 10:34:07 +0100
- To: "Amelia A. Lewis" <alewis@tibco.com>
- CC: www-ws-desc@w3.org
- Message-ID: <3E364E8F.2080503@crf.canon.fr>
Amelia A. Lewis wrote: >The use of the phrase (see subject header) caught my attention over the weekend, and out of idle interest and a desire to stir up the trout pond, I investigated. > >On investigation, it seems to me that the only reason that we need to say that a WSDL instance describes interactions "from the point of view of the service" is because of the <input> and <output> elements. Without this "point of view" context, "input" and "output" are problematic. > >Suppose, instead, that operation looked something like this? > ><operation mep="http://www.w3.org/2003/13/wsa/meps/request-response" > xmlns:rr="http://www.w3.org/2003/13/wsa/meps/request-response"> > <message name="rr:request" direction="toService" [other attrs] /> > <message name="rr:response" direction="fromService" [other attrs] /> > <fault name="rr:xyzzy" direction="fromService" [other attrs] /> ></operation> > If the element <message name="rr:request"> has a "direction" attribute set to "toService", then the elements <message name="rr:response"> and <fault name="rr:xyzzy"> must have a "direction" attribute set to "fromService". Why ? the rr:request going to the service, the service is then the rr:responder node and then reading the rr MEP spec, we know that the rr:responder node will send either a rr:response or a rr:xyzzy fault... Therefore, defining the directionality of one message gives the directionality of all messages (at least for the 7 patterns we envision) => potential redundancy and inconsistency if direction of all messages is made explicit. Personly, I prefer factorizing this information by identifying the node that the service wants to be at the operation level (i.e. have a required node attribute at the operation level and optional directionality attributes at the message level). Some entities might nevertheless be interested in explicit directionality information of messages in WSDL, the use case being firewalls. If the firewall knows the mep, it does not need this info, but what if it does not know the MEP ? IMHO, all that is needed is an xml schema that will add the following constraint (example of the rr mep) : - if the "node" attribute is set to "rr:responder", then : - the <message/> element whose "name" attribute is "rr:request" has a "direction" attribute which is optional and whose fixed value is "input" - the <message/> element whose "name" attribute is "rr:response" has a "direction" attribute which is optional and whose fixed value is "output" - the <message/> element whose "name" attribute is "rr:xyzzy" has a "direction" attribute which is optional and whose fixed value is "output" - if the "node" attribute is set to "rr:requester", then : - the <message/> element whose "name" attribute is "rr:request" has a "direction" attribute which is optional and whose fixed value is "output" - the <message/> element whose "name" attribute is "rr:response" has a "direction" attribute which is optional and whose fixed value is "input" - the <message/> element whose "name" attribute is "rr:xyzzy" has a "direction" attribute which is optional and whose fixed value is "input" This schema could for instance be part of the rr MEP spec. All the firewall needs then is this schema (and the wsdl) to get the direction of each message. This schema allowing the attributes to be optional, the wsdl can contain explicitly or not the direction of messages. This schema would also be useful for wsdl authoring tools to validate/prefill <wsdl:message/> elements (including their directions) for unknown MEPs. >MEPs are already defined in terms of the service (that is, because they use "input" and "output" they are also required to state that the MEP is from the point of view of a > IMHO, SOAP MEPs are NOT defined in terms of the service. For WSDL MEPs definition, we should choose either to follow SOAP's definition or to define them in terms of the service. >service). This linguistic adjustment, using "toService" and "fromService", makes that explicit. An additional benefit of placing direction into an attribute (no matter what the content of the attribute; one could imagine continuing to use the ambiguous "input|output" pair) is that fault directionality can now be described as well. > >This may annoy some folks who like the mirror model, but I submit that there are a fair number of MEPs in which the capabilities of the service and the capabilities of the service partner are clearly distinguished, so that it is not inadmissable to designate them server and client. The requirement that every MEP has a mirror presumes a service-to-service (or peer-to-peer) model, in my opinion, and unnecessarily restricts the universe of services that may be described. > I am not sure to understand... MEPs are supposed to be abstract at the WSDL layer, will there still be any notion of server and client at this level ? From a SOAP perspective, all partners in a MEP are defined as nodes. Does a MEP, in which a service cannot take the identity of a particular node, exist ? >However, please take this as observation, rather than a proposal. Should someone find this interesting enough to make a proposal of it, I'll back it, but I don't feel strongly enough to want to argue about (err, I mean "discuss") it. > >Amy! > >
Received on Tuesday, 28 January 2003 04:34:50 UTC