<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Kopretinka: Comments on On WSDL Operations Again</title>
  <link rel="alternate" type="text/html" href="http://www.jacek.cz/blog/archives/2004/09/on_wsdl_operations_again/" />
  <link rel="self" type="application/atom+xml" href="http://www.jacek.cz/blog/archives/000038-comments.xml" />
  <id>http://www.jacek.cz/blog/comments.xml</id>
  <updated>2004-09-06T02:00:25Z</updated>
  <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.31</generator>
 
<entry>
  <title>Comment by Jim Webber</title>
  <link rel="alternate" type="text/html" href="http://www.jacek.cz/blog/archives/2004/09/on_wsdl_operations_again/#comment-70" />
  <id>http://www.jacek.cz/blog/archives/2004/09/on_wsdl_operations_again/#comment-70</id>
  
  <published>2004-09-04T09:16:18Z</published>
  <updated>2004-09-04T09:16:18Z</updated>
  
  <content type="html"><![CDATA[<p>Hey Jacek,<br />
The problem here is that your messages are super-weak. If you had messages like "DifferenceMessage" or "TotalMessage" which are more descriptive, this doesn't happen.<br />
So: if you treat WSDL like a traditional IDL it will break as you point out. If you use it right, it enables loose-coupling.<br />
Jim</p>]]></content>
  <author>
      <name>Jim Webber</name>
      <uri>http://jim.webber.name</uri>
  </author>
</entry>
<entry>
  <title>Comment by Jacek</title>
  <link rel="alternate" type="text/html" href="http://www.jacek.cz/blog/archives/2004/09/on_wsdl_operations_again/#comment-71" />
  <id>http://www.jacek.cz/blog/archives/2004/09/on_wsdl_operations_again/#comment-71</id>
  
  <published>2004-09-04T21:25:51Z</published>
  <updated>2004-09-04T21:25:51Z</updated>
  
  <content type="html"><![CDATA[<p>Ah-ha! Putting the operation name in the message, right? 8-)</p>

<p>My point is, there should be synergy between WSDL operations and pieces of functionality of the service. I consider this good modeling practice that should be encouraged by WSDL. </p>

<p>The client then wants to initiate a given piece of functionality, so if two operations are to share the same message format, there must be some distinguisher in the data (our outside the data) that says which of the two operations will be executed. This distinguisher should be described in WSDL as well. On simple types this would mean the two message formats differing by one element having one of two disjunct restrictions of the simple type. On complex types it would be more complex. Alternately, some other distinguisher could be used outside the data, like the infamous SOAP Action. In any case, WSDL should tell the client which it is, so that the client can make sure it initiates the expected piece of functionality.</p>]]></content>
  <author>
      <name>Jacek</name>
      
  </author>
</entry>
<entry>
  <title>Comment by Jim Webber</title>
  <link rel="alternate" type="text/html" href="http://www.jacek.cz/blog/archives/2004/09/on_wsdl_operations_again/#comment-72" />
  <id>http://www.jacek.cz/blog/archives/2004/09/on_wsdl_operations_again/#comment-72</id>
  
  <published>2004-09-06T02:00:25Z</published>
  <updated>2004-09-06T02:00:25Z</updated>
  
  <content type="html"><![CDATA[<p>Hey Jacek,<br />
Not putting the operation name in the messge explicity - just making the messages descriptive, which is what a description (as opposed to prescription) language should support.<br />
You know I don't agree that WSDL operations are anything but virtual - all they do is collectively define message exchanges that a service supports. To my mind this is perfect synergy between contract and service implementation - you give me an X, and I might give you a Y or a Z in return depending on your X.<br />
If you make your messages ambgiuous then you have probably got your design wrong, and then you need to fall back on stuff like soap action or other explicit dispatch hackery.<br />
Jim</p>]]></content>
  <author>
      <name>Jim Webber</name>
      <uri>http://jim.webber.name</uri>
  </author>
</entry>

</feed> 