W3C home > Mailing lists > Public > xml-dist-app@w3.org > February 2002

RE: Issue with soap-rpc:result

From: Jacek Kopecky <jacek@systinet.com>
Date: Thu, 14 Feb 2002 13:20:03 +0100 (CET)
To: Tim Ewald <tjewald@develop.com>
cc: "'XMLDISTAPP'" <xml-dist-app@w3.org>
Message-ID: <Pine.LNX.4.33.0202132035070.13453-100000@mail.idoox.com>
 Tim,
 of course I'll tell you this is an issue for the WSDL group. 8-)

 No, seriously, I'll try here to explain why I think the SOAP 
part of the issue is solved by the current rules and that the 
WSDL part of the issue can be built on top of this with no 
problem at all. BTW, I'm on the WSDL group, too, and I think I'm 
aware of the issues with IDL languages.

 For remote procedure calls system, the basic notion is a
procedure with parameters. There is no inherent notion of groups
of procedures because procedures can be grouped in various ways
and in multiple levels (even WSDL has services containing M
portTypes containing N operations - procedures).

 In SOAP RPC, the dispatch is two-level right now - on the access
URL of the request and on the RPC element's qualified name. The 
dispatch on the qname can be split to dispatching on the 
namespace and on the local name.

 You want to add an operation ID and an interface ID - terms of
an IDL language. I think they translate to operation's input name
and portType name in WSDL. (Operation's input name as opposed to 
operation name - because operations need not have unique names, 
it's their inputs and outputs that identify the operations. We 
can choose only one because that's sufficient, and in RPC we can 
assume there will be an input, I think.)

 To solve your issue, WSDL can mandate that the soap:body
namespace attribute's value somehow identify the portType. The 
local part can then identify the operation (for overloading, I 
actually suggest that this be the operation's input name, again).

 So SOAP already gives you three levels of dispatch and WSDL can
easily map these levels to its terms like port, portType,
operation. And I think this should be done.

 Do you still think that something need be added to the SOAP RPC 
convention?

                   Jacek Kopecky

                   Senior Architect, Systinet (formerly Idoox)
                   http://www.systinet.com/



On Wed, 13 Feb 2002, Tim Ewald wrote:

 > >  1) that the dispatch is based on the QName of the first 
 > > immediate child of Body, and that its local name is based on the 
 > > procedure's name;
 > 
 > I know you'll tell me this is an issue for the WSDL group, but you have
 > to be careful here. One of the problems with WSDL is that it wants to
 > create the notion of portTypes (interfaces) and operations. Most
 > traditinal RPC and ORPC models support this, and the interface ID and
 > operation ID are send in a request message along with the input
 > parameters. If the SOAP RPC model mandates that dispatching is based on
 > the QName of the first immediate child of the body, what happens if two
 > interfaces have operations of the same name?
 > 
 > ICowboy::Draw
 > IArtist::Draw
 > 
 > Do the two interfaces have to be defined in different namespaces? Is
 > that only necessary when there is a method with the same name?
 > 
 > The problem with delegating this issue to the WSDL working group is that
 > they won't be able to change the SOAP RPC rules. If there is going to be
 > a SOAP RPC model and we want to support the notion of interfaces as
 > collections of operations, this should be addressed at the protocol
 > level and not solely at the description level.
 > 
 > To that end, I'd love to see attributes for annotating a Body with an
 > interface's and operation's QName specifically for dispatching. This
 > could be done in the WSDL working group, but only if the SOAP RPC model
 > doesn't mandate that dispatching be accomplished based solely on the
 > QName of the first child of the body.
 > 
 > Thanks,
 > 
 > Tim-
 > 
 > 
Received on Thursday, 14 February 2002 07:20:06 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:59:06 GMT