<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: WOA/Client makes my head explode.</title>
	<atom:link href="http://www.xlml.com/aehso/2006/08/09/woaclient-makes-my-head-explode/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.xlml.com/aehso/2006/08/09/woaclient-makes-my-head-explode/</link>
	<description>John O'Shea's musings, observations and opinions on anything and everything.</description>
	<pubDate>Sat, 22 Nov 2008 09:36:42 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
		<item>
		<title>By: Aehso&#8217;s Output &#187; ROA is a subset of SOA - but is WOA a superset of ROA?</title>
		<link>http://www.xlml.com/aehso/2006/08/09/woaclient-makes-my-head-explode/#comment-243940</link>
		<dc:creator>Aehso&#8217;s Output &#187; ROA is a subset of SOA - but is WOA a superset of ROA?</dc:creator>
		<pubDate>Mon, 08 Sep 2008 22:27:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.xlml.com/aehso/2006/08/09/woaclient-makes-my-head-explode/#comment-243940</guid>
		<description>[...] previously criticized a post by Dion Hinchliffe&#8217;s on WOA/Client but to be fair to Dion I have to compliment him on his latest post about the SOA world beginning to [...]</description>
		<content:encoded><![CDATA[<p>[...] previously criticized a post by Dion Hinchliffe&#8217;s on WOA/Client but to be fair to Dion I have to compliment him on his latest post about the SOA world beginning to [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aehso</title>
		<link>http://www.xlml.com/aehso/2006/08/09/woaclient-makes-my-head-explode/#comment-4776</link>
		<dc:creator>Aehso</dc:creator>
		<pubDate>Wed, 09 Aug 2006 19:12:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.xlml.com/aehso/2006/08/09/woaclient-makes-my-head-explode/#comment-4776</guid>
		<description>Dion,
  Your reference to Meyers Design by Contract pattern is interesting.  Personally, I think it actually highlights the problem with relying on lists of high level patterns for architects to use when designing enterprise services.   

WOA or SOA, at the end of the day each service must be defined by a machine readable  contract (WSDL PortTypes/REST URLs and XML schema etc) augmented by a set of policies and rules. 

At the moment we are stuck with policies and rules that are encapsulated in service documentation or worse still are assumed to be known because the service interface was based on an 'enterprise pattern' that assumes certain usage.  A problem is that when we want to we are lacking in the facilities we need to Design by Contract consistently when developing distributed services.  WS-Policy, an example of such a mechanism, is not yet fully supported in SOA stacks yet and WOA stacks have no equivalent.  

Placing arbritrary checks on the service interface (as you do in your example clients) is just one small part of verifying a remote service will still be accessible at runtime. It does not deal with the multitude of other changes (security etc) that can occur that are not often encapsulated in the published service interface. Another issue is how often should the interface be checked? In stateless systems (common) the only way to be certain would be to check prior to every invocation but that would cripple the performance of any high volume service.  Correctly, most service clients would not assume it is valid to do this.

So, in short, I still don't see what is different about WOA/Client that distinguishes it in any way from the patterns that most (respectable) SOA systems employ. 

Lastly, I'm afraid I still don't see how MVC fits with any desire to deliver enterprise mashup applications into browsers - perhaps you need to illustrate this more clearly.  The view for mashup applications is still generated by a web server but the content may actually be coming from many services elsewhere (and in fact, may not even be delivered by the view - Sam Ruby touched on this when he noted the absence of any reference to hyperlinks in your article).

John.</description>
		<content:encoded><![CDATA[<p>Dion,<br />
  Your reference to Meyers Design by Contract pattern is interesting.  Personally, I think it actually highlights the problem with relying on lists of high level patterns for architects to use when designing enterprise services.   </p>
<p>WOA or SOA, at the end of the day each service must be defined by a machine readable  contract (WSDL PortTypes/REST URLs and XML schema etc) augmented by a set of policies and rules. </p>
<p>At the moment we are stuck with policies and rules that are encapsulated in service documentation or worse still are assumed to be known because the service interface was based on an &#8216;enterprise pattern&#8217; that assumes certain usage.  A problem is that when we want to we are lacking in the facilities we need to Design by Contract consistently when developing distributed services.  WS-Policy, an example of such a mechanism, is not yet fully supported in SOA stacks yet and WOA stacks have no equivalent.  </p>
<p>Placing arbritrary checks on the service interface (as you do in your example clients) is just one small part of verifying a remote service will still be accessible at runtime. It does not deal with the multitude of other changes (security etc) that can occur that are not often encapsulated in the published service interface. Another issue is how often should the interface be checked? In stateless systems (common) the only way to be certain would be to check prior to every invocation but that would cripple the performance of any high volume service.  Correctly, most service clients would not assume it is valid to do this.</p>
<p>So, in short, I still don&#8217;t see what is different about WOA/Client that distinguishes it in any way from the patterns that most (respectable) SOA systems employ. </p>
<p>Lastly, I&#8217;m afraid I still don&#8217;t see how MVC fits with any desire to deliver enterprise mashup applications into browsers - perhaps you need to illustrate this more clearly.  The view for mashup applications is still generated by a web server but the content may actually be coming from many services elsewhere (and in fact, may not even be delivered by the view - Sam Ruby touched on this when he noted the absence of any reference to hyperlinks in your article).</p>
<p>John.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dion Hinchcliffe</title>
		<link>http://www.xlml.com/aehso/2006/08/09/woaclient-makes-my-head-explode/#comment-4733</link>
		<dc:creator>Dion Hinchcliffe</dc:creator>
		<pubDate>Wed, 09 Aug 2006 12:56:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.xlml.com/aehso/2006/08/09/woaclient-makes-my-head-explode/#comment-4733</guid>
		<description>Hi John,

Thanks for your comments and taking time to read my article.  Specifically, I'd like to address your concerns about the specifics of the patterns.

The 'client' in WOA/Client refers to the specific techniques the client uses to interact with a WOA.  For instance, in my sample code, a link to which is in the article, I provide three clients that actually perform contract checks before using the Web service (ala Bertrand Meyer's Design by Contract, the reason for WSDL in the first place).  In the industry, Web service contract checks are typically done at design-time, and we're finding out this is entirely unacceptable for creating a resilient SOA/WOA out on the Web.  This is an example of how existing SOA techniques, designed more for the controlled environment of the enterprise, are entirely inadequate to the Web.

In any case, each of the other patterns has a matching force in the real-world that traditional SOA is not addressing, such as how to maintain relational and hierarchical data integrity in a browser,which isn't designed to enforce such things.  This is how we're seeing MVC data management model work that keeps data in its native presentation but provides the client with a clean interface to multiple "mashed-up" data sources.

And above all, WOA/Clients must be simple to create and maintain.  This is a lot to document since there needs to be simple examples of each pattern and so I hope you'll bear with me as we explicate each one.

Finally, I stand by the statement that this is not only the the best way currently to think about and implement reliable and high-integrity SOA/WOA clients in heterogenous environments, but that it's the shortest path to achieving it as well.  With a little more work, I hope you agree too.

Best Regards,

Dion Hinchcliffe</description>
		<content:encoded><![CDATA[<p>Hi John,</p>
<p>Thanks for your comments and taking time to read my article.  Specifically, I&#8217;d like to address your concerns about the specifics of the patterns.</p>
<p>The &#8216;client&#8217; in WOA/Client refers to the specific techniques the client uses to interact with a WOA.  For instance, in my sample code, a link to which is in the article, I provide three clients that actually perform contract checks before using the Web service (ala Bertrand Meyer&#8217;s Design by Contract, the reason for WSDL in the first place).  In the industry, Web service contract checks are typically done at design-time, and we&#8217;re finding out this is entirely unacceptable for creating a resilient SOA/WOA out on the Web.  This is an example of how existing SOA techniques, designed more for the controlled environment of the enterprise, are entirely inadequate to the Web.</p>
<p>In any case, each of the other patterns has a matching force in the real-world that traditional SOA is not addressing, such as how to maintain relational and hierarchical data integrity in a browser,which isn&#8217;t designed to enforce such things.  This is how we&#8217;re seeing MVC data management model work that keeps data in its native presentation but provides the client with a clean interface to multiple &#8220;mashed-up&#8221; data sources.</p>
<p>And above all, WOA/Clients must be simple to create and maintain.  This is a lot to document since there needs to be simple examples of each pattern and so I hope you&#8217;ll bear with me as we explicate each one.</p>
<p>Finally, I stand by the statement that this is not only the the best way currently to think about and implement reliable and high-integrity SOA/WOA clients in heterogenous environments, but that it&#8217;s the shortest path to achieving it as well.  With a little more work, I hope you agree too.</p>
<p>Best Regards,</p>
<p>Dion Hinchcliffe</p>
]]></content:encoded>
	</item>
</channel>
</rss>
