> -----Original Message-----
> From: Bill de h�ra [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, December 19, 2002 12:33 PM
> To: [EMAIL PROTECTED]
> Subject: Re: Design question on using Java classes v/s hashes 
> or arrays
> 
> 
> Garbis, Jason wrote:
> 
> > Your option 1 below, is pretty distasteful, since you're 
> bypassing any typechecking, and (more importantly) excluding 
> important information from the WSDL metadata. That is, a user would 
> have to consult some external metadata to understand what is and 
> isn't valid input. This defeats the purpose of using WSDL.
> 
> I belive a dictionary/data driven approach is a good choice when the 
> interface is unstable or likely to change. Typechecking depends on 
> the nature of the keys used and the argument being passed in.

Yup, the issue is more of a design preference (as well as system requirement) as to 
compile vs. runtime type checking.
A related issue is that "somewhere" we have to define the valid input & output 
structures, as well as the semantics.
I lean towards trying to do this fully within the metadata of the system (e.g. WSDL in 
this case) rather than exernally.

This reminds me of my CORBA days, when I would (half-jokingly) demonstrate "the only 
interface you'll ever need":
        CORBA IDL: Any do-it(in Any);

 
> 
> > Or, could you change the XML type definition for the input 
> message to support optional fields? Then, in the handler that 
> receives this invocation, you'll have to figure out which set 
> of input parameters are actually in the SOAP message, and 
> dispatch it to the appropriate resource (e.g. Java class).
> > (This assumes you even want to write this dispatching code...)
> 
> That would be one approach- it sounds very like a generic method, 
> the most specific version of the.method is selected for the 
> arguments supplied. It's a way to work around the fact that 
> SOAP/WSDL doesn't offer much by the way of polymorphism. It's not 
> btw, a million miles away from using a dictionary. Another option is 
> not to use a custom interface, instead see if the service can be 
> described in terms of HTTP methods, which are stable, polymorphic 
> and highly generic and bind the WSDL to that.
> 
> 
> > This is a real challenge in building tightly-coupled 
> distributed systems with WS 
> 
> It is, but, the point of using WS is to build loosely coupled 
> systems with coarse grained messages. 
I disagree that this is "the point" of WS -- this is one major use case, but people 
are also using WS for fine-grained interfaces (e.g. as the universal Application 
Adapter mechanism).
Granted WS are inefficient and immature, but because it's univerally accepted, this is 
where the momentum is.
(actually, I think that XML is a conspiracy of the hardware manufacturers to boost 
sales -- "hey, let's promote the LEAST efficient data representation possible...")


> Another take is that tightly 
> coupling systems through fine grained method calls is not a good 
> approach for building web distributed systems the problems Rajal is 
> running into simply reflect that it's an antipattern at best.
Not necessarily -- if you're exposing WS to an external client over the Internet, you 
are correct.
If you are using WS internally as a universal connecting technology, fine-grained 
interfaces and tight-coupling is fine. This is using WS to address the same problems 
that CORBA did -- except now there is no imposition of any particular technology other 
than WS. So (e.g.) your VB developers can easily make use of a CORBA server without 
knowing anything about it.

--Jason 


> 
> (As an aside, not using a finegrained approach is no evidence of 
> 'not thinking enough'- far from it)
> 
> Bill de h�ra
> --
> Propylon
> www.propylon.com
> 
> 
> 
> 

Reply via email to