W3C home > Mailing lists > Public > www-ws-desc@w3.org > June 2002

Re: Rationale to close the operation overloading issue

From: <Jochen.Ruetschlin@DaimlerChrysler.com>
Date: Fri, 14 Jun 2002 10:59:56 +0200
To: <joyce.yang@oracle.com>
Cc: <www-ws-desc@w3.org>
Message-ID: <0057440018382405000002L452*@MHS>

Again, I dissagree with this (cf. 
http://lists.w3.org/Archives/Public/www-ws-desc/2002May/0204.html). As I see 
it, actually the intention of WSDL is important: (1) Is WSDL for describing 
_existing_ services? (2) Is WSDL for the specification of services ("modelling 
of their interfaces")? (3) Is WSDL for both, description and specification?

My impression so far I got from the charter and the discussion of the usage of 
WSDL (e.g. cf. the usage in a UDDI repository)  is to use it in the sense of 
case 1 --- describing services which are already out there (again: using a Web 
service necessarly does not require an WSDL document). So IMHO for case 1 (and 
with this 3) we are supposed to provide the possibility to describe overloaded 
operations, because a service could be implemented in this way. We should not 
shrink back from an inconvenient implementation, which in my opionion is out of 
the scope of WSDL in the same way as the fact in which PL and how a Web service 
is implemented.

Regarding case 2, overloading operations actually holds the danger, that a 
direct mapping between an operation specified with WSDL and the method 
implementing its functionality is not possible in a straightforward way. But 
this is also true for other modelling/specification techniques --- special 
description features could not mapped directly to the implementation (e.g. 
using some UML features in conjunction with a non-OO PL). Futhermore I think, 
that somebody who is going to implement a Web service and first wants to 
specifiy its interfaces with WSDL, this person already has in mind what 
programming language he will use afterwards for the implementation. Having this 
in mind, he could omit features which the PL does not support. If he is not 
thinking about a certain PL, I assume, that the relevance of the later used PL 
does not play such an important role. And with this a modern one, which allows 
function overloading could be used. Correct me, if me thoughts are wrong.

As stated in 2.1 of our charter (http://www.w3.org/2002/01/ws-desc-charter#prog
) the WSDL framework "is not geared towards any programming language". The 
other way round this could mean, that we should not exclude useful features 
only because some --- let me be more restrective and say: "exotic" in the sense 
of not used in a broad way --- programming languages does not allow function 
overloading.

Just my point of view.

Regards

jr. 

Jochen Rütschlin
DaimlerChrysler · Research and Technology
Data and Process Management (RIC/ED)
P.O. Box 2360 · D-89013 Ulm (Donau) · Germany
Visitor's address: Wilhelm-Runge-Straße 11
Phone:   +49.731.505-2830
Telefax: +49.731.505-4401
Internet E-Mail: jochen.ruetschlin@DaimlerChrysler.com




		
	joyce.yang@oracle.com
	Gesendet von: www-ws-desc-request@w3.org
	13.06.2002 19:29
		 
		 An: www-ws-desc@w3.org
		 Kopie: 
		 Thema: Rationale to close the operation overloading issue


Regards,
Joyce
-------

Starting with a WSDL that allows overloading means that there
will be a mangling problem when mapping to languages that do not allow
overloading.
    Even if one accepts that argument that "modern" languages, and the only
ones that we need to be concerned about, support overloading,  there still
may be a problem. The mapping will only be "natural" if the type systems
between WSDL and the target languages are similar "enough" that the
languages will allow the reuse of a method name for all possible
overloadings in both directions.
    For example let's say that in an overloaded WSDL there is a difference
between unsigned and signed integers, so that i can have 2 foo(), one with
an unsigned integer, the other with a signed integer. What will happen in a
language which doesn't allow a foo(unsigned integer) and foo(integer)?

   Another issue that arises is the efficiency/possibility of doing
dispatch on the server side. If WSDL allows overloading, then the dispatch
mechanism will have to determine which "real" method to call based upon the
actual parameter types in the request. (Dispatch based upon name won't be
good enough.) Resolving the ambiguity may be quite complex and time consuming.

Therefore, for simplicity and loose coupling between the endpoints,
WSDL should not support operation overloading. The operation  names
within a portType should be unique.
Received on Friday, 14 June 2002 05:00:33 GMT

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