Clemens Vasters: Enterprise Development & Alien Abductions
Thoughts about Microsoft .NET, Enterprise Services, XML and other dull and boring things.
Updated: 7/30/2002; 8:47:48 AM.

 














Subscribe to "Clemens Vasters: Enterprise Development & Alien Abductions" in Radio UserLand.

Click to see the XML version of this web page.

Click here to send an email to the editor of this weblog.

 
 

Wednesday, July 24, 2002

Sam Ruby assumes that I base my thoughts about XSD/WSDL on any behavior of ASP.NET: "Note that while ASP.NET will fault when messages from unknown namespaces come in, the default and recommended way to configure Axis ignores namespaces. I have no problem with conventions established between consenting adults in the privacy of their own intra-net, but designing a set of public recommendations based on the way one vendor's toolkit happens to enforce SOAP semantics is quite another thing."

In fact, I don't care about default behaviors of any bits out there. What I am saying is a very general statement about contract enforcement and that may or may not map onto some vendor's toolkit. If my opinion on contract enforcement happens to be shared by the ASP.NET team - d'accord. I derive extra recommendations for ASP.NET, because I know that a bunch of people who read my things happen to use ASP.NET and the way how ASP.NET puts programming model first and contract second needs some extra attention.

Update: Hmmm... So, if Axis ignore namespaces, a perfectly correct WSDL would be one where all message types are of type xsd:any. So how about headers?  soap:mustUnderstand="1" enforces namespace recognition, doesn't it? What part of the difference between out-of-band and payload data do I not understand? Is payload sort-of mustUnderstand="0"?


9:00:34 PM      comment []

More finds: I just read Clemens Vasters Staying sane in an XML Web Services World.  While there are some good things in there that I do agree with (like the immutability of XML Schema) I disagree strongly with his philosophical statements on semantics. 

XML has nothing to do with semantics and the semantics could change drastically without any change to the schema. [Windley's Enterprise Computing Weblog]

What I am saying (previous post) is that just that isn't correct looking at the big picture, because in the end, XML is just a tool to negotiate semantically well understood stuff between people at two ends of a long pipe. If one side's understanding of that stuff changes, that fact must be reflected in a Schema change. 


6:48:33 PM      comment []

Some very good discussions going on about my article on Web Services contracts.

Gordon Weakliem says points out by reference that my view on XML Schema being a way to express semantics is wrong. I think it's really a matter of perspective and how you combine the type description capabilities of Schema with the simple quality of XML namespaces to distinguish between "your thing" and "my thing". A description of a "customer" complex type (I stick with this most-abused example for clarity) expressed in XML Schema is context-free and without any associated semantics until I say targetNamespace="urn:schemas-newtelligence-com:banking:collections:client:2002-07-24". With that I am binding what used to be a purely technical description to well known and well defined business semantics and gain the freedom to adjust that distinct understanding of customer to changing business needs. So, at least in my world, XSD does carry semantics. / Gordon also says that my ASP.NET rule #3 seems to encourage DataSets and that's not what I say I say "if you happen to use" and that's more like a "if you didn't really think long enough to use DataSets"

Greg Reinacker discusses Gordon's point and agrees with me on my XSD rules as it seems, but disagrees with what I say about WSDL, namely that I require the WSDL to become a new WSDL (my namespace) whenever its signature changes. The argument is along the lines of updating a C++ or Java class compatibly; you add a vtable entry to the end of the vtable and you are fine. I don't think that analogy works in the Web Services world and I agree with Brad that upwards and downwards compatibility need to be taken into account. With COM, C++ and Java we get away with updating a vtable, because it is extremely rare that new clients talk to old servers. Servers usually get updated first. Nothing breaks the new client software gets phased in eventually. With Web Services, anyone can implement any WSDL (large scale standardization is still something that some people believe is cool and is going to happen, I don't) and hence, you can have any mix of "old" and "new" servers and clients with respect to a WSDL.

Also, with C++ et.al. all contracts are typically proprietary and under "my" control, because they grow out of the programming model; that's even true for IDL based things.  In a XSD and WSDL world, contract sharing is encouraged and the contract is no longer growing out of a programming model, which is just the thing that enables sharing to begin with. If you pick up someone's "standard" WSDL to implement your "standard weather service" and someone else does the same and both of you do technically compatible extensions (extend the vtable), both of you begin to create chaos. Suddenly the same WSDL (same identity) exists in two incompatible variants and they won't stay a lonely couple for long.


6:10:26 PM      comment []


© Copyright 2002 Clemens Vasters.



Click here to visit the Radio UserLand website.

 


Send email to Clemens
July 2002
Sun Mon Tue Wed Thu Fri Sat
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
May   Aug

newtelligence
MSDN Regional Director