- From: Martin Gudgin <mgudgin@microsoft.com>
- Date: Fri, 21 Feb 2003 09:55:10 -0800
- To: "FABLET Youenn" <youenn.fablet@crf.canon.fr>
- Cc: <www-ws-desc@w3.org>, "Jeffrey Schlimmer" <jeffsch@windows.microsoft.com>, "Amelia A. Lewis" <alewis@tibco.com>
- Message-ID: <92456F6B84D1324C943905BEEAE0278E02D30D12@RED-MSG-10.redmond.corp.microsoft.com>
-----Original Message-----
From: FABLET Youenn [mailto:youenn.fablet@crf.canon.fr]
Sent: 21 February 2003 16:54
To: Martin Gudgin
Cc: www-ws-desc@w3.org; Jeffrey Schlimmer; Amelia A. Lewis
Subject: Re: MEP proposal
Martin Gudgin wrote:
-----Original Message-----
From: FABLET Youenn
[mailto:youenn.fablet@crf.canon.fr]
Sent: 21 February 2003 15:52
To: Martin Gudgin
Cc: www-ws-desc@w3.org; Jeffrey Schlimmer;
Amelia A. Lewis
Subject: Re: MEP proposal
This is a good starting point :o)
I would like to have some clarification on the
abstract mep
definition
though.
Here are some questions
First question: was the scottsdale decision a
commitment to
disallow all
more-than-two-nodes meps at the abstract level
or was it a commitment
for this wg to not come up with specifications
of this kind of mep ?
I think it was along the lines of we know 2 role MEPs
make the 80/20
cut, we're not sure about 2+. All the MEPs we did decide
to model were
the former.
Second question: If we disallow
more-than-two-nodes meps at
the abstract
level, do we disallow more-than-two-nodes meps
at the binding
level to
be used ?
I don't understand this question.
I understood with the current defintion of WSDL abstract meps
that we can only describe messages origin or destination in term of in
or out.
If we have a 3 role mep (S, R1 and R2), then we might need to
describe that a message is out+to R1 or is in+from R2.
I may have misunderstood the {direction} property.
[MJG]
I don't think you have misunderstood the {direction} property.
However, as I stated in my previous mail, I think that such an
interaction should be modelled using multiple port types.
First question :
If we disallow all more-than-two-nodes
abstract meps, we should
clearly state this in the mep definition.
I don't think we are disallowing people from defining 2+
role MEPs. Are
you asking for 'number of roles' to be added to the
description of the
MEPs?
In this case, the direction of the message
is sufficient to know
where are going the messages.
OK
Personly I would favor :
- not coming up with more-than-two-nodes
meps specification
- defining a WSDL abstract mep
definition
- like in SOAP, where meps
specifications have
requirements
(a mep needs to have a uri, it needs to follow
the feature spec...)
- defining a WSDL abstract mep
definition that does
not disallow
more-than-two-nodes mep
I can't follow this, sorry. It seems to me that you
contradict yourself.
I was thinking that {direction} could only take the in or out
values.
I was saying that we should allow other values than in and out
but do not need to show meps specification that use other values than in
and out.
[MJG]
I now understand your point. I disagree. I think that in and out
are enough and that any 2+ node interactions should be modelled using
multiple port types.
Second question :
I do not think we should disallow
more-than-two-nodes meps at the
binding level. If someone creates a service with
a
three-nodes SOAP mep,
WSDL should be able to describe this service
(because WSDL should
support the extension mechanisms provided in
SOAP) .
I don't understand where you are going with this.
If we do not disallow more-than-two-nodes meps
at the binding level,
what would be their counter parts at the
abstract layer. Either there
should have a mapping between
more-than-two-nodes implementation meps
and the wsdl abstract meps or we should have a
mulit-abstract
operations
mapped to a single implemented operation...
Let's look at option 1
Let's take the Request-Forward MEP example (i.e.
A sends a request to
service B, service B sends the result of the
request to C).
The request being an in-message and the forward
being an out-message,
its corresponding mep should be MEP2.
I disagree that this is a MEP at all. I think this is
two separate
operations on two separate port types on two separate
services. We need
to be careful here. It is possible, using MEPs to define
everything in
terms of a single operation, essentially elevating
operation to the
level of port type. It is also possible to write complex
software that
consists of a single method called 'DoStuff' that takes
a variety of
arguments and just keeps calling itself. I'm not sure
either is a
sensible design philosophy. I would very much push for
MEPs being
relatively simple and doing more complex stuff at the
port type level (
and yes, I realise that 'simple' is somewhat subjective
).
I agree with you that we should keep the bar to 'simple'.
However the request and forward mep seems 'simple' to me.
This is the type of interaction that a visible intermediary
would do.
[MJG]
I don't understand why intermediaries should be visible to WSDL.
Breaking this kind of operation in two operations seems strange
to me because the link between the two operations is not obvious at all
while using the request and forward mep makes the link clear.
[MJG]
There are a whole load of things in Web Services that you
eventually have to write down in some human readable ( as opposed to
machine readable ) language. To me this doesn't make the 80/20 cut for
the latter.
MEP2 maps also to the SOAP request-response and
SOAP-response meps.
This seems all fine and interesting because the
semantics of the
abstract operation do not change according the
chosen
implementation mep.
Agreed.
However, I am not sure that all cases will be
like this one.
Will there
be cases where the semantics will change
according the chosen
implementation mep ?
I not sure I understand what you mean by semantics here.
I think I misunderstood the in and out direction thing.
As I understood it, the direction property could only take in or
out values and nothing else.
Now, if the direction property can target precisely nodes and
have other values than in and out, the rest of the mail is not
meanigful...
[MJG]
You have not misunderstood. In and out are the only allowable
values.
Let's take MEP3, which is
One-Request/Multiple-Responses.
This mep could
then be mapped to implementation meps like :
- an implementation mep that takes one
request and then sends one
response to several nodes
- an implementation mep that takes one
request and then sends
several responses to a single node (the
requester ?)
At the abstract layer, the operation is defined
exactly the
same in both
examples, but IMHO, these operations have not
the same
semantics.
Again I'm not sure what you mean by semantics. A service
provides a
given port type, with a set of operations that use MEPs.
The service
binds that port type to two different bindings. What's
wrong with that?
Jeff and I have been thinking about a particular example
of this which I
suspect we'll talk about at the FTF.
One op
is a multi-cast kind of request-response. The
other op is a
send-a-request/get-the-response-over-time kind
of operation.
IMHO, this difference of semantics should appear
at the
abstract layer
and not be hidden in the binding.
I'm fairly certain I disagree.
Gudge
Received on Friday, 21 February 2003 12:55:42 UTC