<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Jonathan's Pancheria: Tag SOA</title>
    <link>http://blog.dotbot.net/articles/tag/soa?tag=soa</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>dotcom Thousandaire</description>
    <item>
      <title>The Mainstream realizes SOA is going the way of WS-*</title>
      <description>&lt;p&gt;So I disagree with the way the argument in &lt;a href="http://www.informationweek.com/news/software/soa/showArticle.jhtml?articleID=209904293"&gt;this post&lt;/a&gt; is framed, but I am glad to see the &amp;#8220;mainstream&amp;#8221; tech press realizing there&amp;#8217;s a better way to get to &lt;span class="caps"&gt;SOA&lt;/span&gt;:&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;A growing number of companies are finding that lower-visibility Web-oriented architecture (WOA) developments, spawned through grassroots movements, are a better route to the service-oriented architecture. &lt;span class="caps"&gt;WOA&lt;/span&gt;, like &lt;span class="caps"&gt;SOA&lt;/span&gt;, is an architectural approach to system design, though &lt;span class="caps"&gt;WOA&lt;/span&gt; is resource-oriented rather than service-oriented. What&amp;#8217;s the difference? While the core &lt;span class="caps"&gt;SOA&lt;/span&gt; design unit is a reusable service that fulfills a distinct business function, resource-oriented services are more limited and data-focused.&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&lt;span class="caps"&gt;SOA&lt;/span&gt; and &lt;span class="caps"&gt;WOA&lt;/span&gt; work at different layers of abstraction. &lt;span class="caps"&gt;SOA&lt;/span&gt; is a system-level architectural style that tries to implement new business capabilities so that they can be consumed by many applications. &lt;span class="caps"&gt;WOA&lt;/span&gt; is an interface-level architectural style that focuses on the means by which these service capabilities are exposed to consumers. Governance, quality of service, security, and management are of equal importance, whether the functionality is being delivered via &lt;span class="caps"&gt;SOA&lt;/span&gt; or &lt;span class="caps"&gt;WOA&lt;/span&gt;.&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;I think the delineation between &lt;span class="caps"&gt;SOA&lt;/span&gt; design units as a service fulfilling a distinct business function and &lt;span class="caps"&gt;WOA&lt;/span&gt; as a resource-oriented service being more limited and data-focused is so much dissembling for &lt;span class="caps"&gt;SOA&lt;/span&gt; being an attempt to force a top-down, waterfall-based model on what services you offer in your architecture versus an iterative or even agile strategy of building the individual services and then gluing them together.&lt;/p&gt;


	&lt;p&gt;I think &lt;span class="caps"&gt;SOA&lt;/span&gt; was also overblown in the framework for tying them together, which is the root of this problem, and leads to the conclusion I made up above.  Put a bunch of webservices out there that handle orthogonal responsibilities, make it easy to access them (personally, preferably with easy &lt;span class="caps"&gt;HTTP&lt;/span&gt;/POX or a light &lt;span class="caps"&gt;SOAP&lt;/span&gt; layer), rather than a huge management stack that services have to a priori fit into, with the up-front design and overhead that comes with it.&lt;/p&gt;</description>
      <pubDate>Mon, 11 Aug 2008 19:21:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:0be58bb4-7eda-489b-8b75-6d4ee2ba536f</guid>
      <author>Jonathan Altman</author>
      <link>http://blog.dotbot.net/articles/2008/08/11/the-mainstream-realizes-soa-is-going-the-way-of-ws</link>
      <category>technical</category>
      <category>webservices</category>
      <category>SOAP</category>
      <category>web</category>
      <category>services</category>
      <category>SOA</category>
      <category>POX</category>
      <category>advocacy</category>
    </item>
    <item>
      <title>SOA for managers</title>
      <description>&lt;p&gt;Finally, a &lt;a href="http://schneider.blogspot.com/archives/2006_01_29_schneider_archive.html#113872155419415124"&gt;description of good web service/SOA design&lt;/a&gt; that even &lt;a href="http://dilbert.com/comics/dilbert/the_characters/index.html#boss"&gt;pointy haired bosses&lt;/a&gt; can understand :-)&lt;/p&gt;


	&lt;p&gt;The graphics are designed to make it clear to non-technical users how to go about designing the boundaries of your web services/SOA!&lt;/p&gt;</description>
      <pubDate>Mon, 06 Feb 2006 17:21:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:7bb75459-175d-4760-98c6-199cb8fe7c19</guid>
      <author>Jonathan Altman</author>
      <link>http://blog.dotbot.net/articles/2006/02/06/soa-for-managers</link>
      <category>technical</category>
      <category>SOAP</category>
      <category>web</category>
      <category>services</category>
      <category>SOA</category>
      <category>humor</category>
    </item>
    <item>
      <title>More on toolkits reducing impedance mismatch by working with raw XML</title>
      <description>&lt;p&gt;Earlier, I &lt;a href="http://blog.dotbot.net/articles/2005/11/03/succinct-description-of-what-is-wrong-with-web-services-that-do-hard-rpc"&gt;posted&lt;/a&gt; about how not forcing all access to web services to go through objects that were serialized into and back out of &lt;span class="caps"&gt;XML&lt;/span&gt; but instead were &lt;span class="caps"&gt;XML&lt;/span&gt; documents that were designed to stand on their own made it easier to implement both web services and web services clients.&lt;/p&gt;


	&lt;p&gt;Elliotte Rusty Harold sets out a nice short example of the nature of the problem.  He summarizes the problem nicely &lt;a href="http://cafe.elharo.com/xml/pleasesir/"&gt;in this quote&lt;/a&gt;&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&amp;#8220;don&amp;#8217;t &amp;#8220;help&amp;#8221; users out by changing &lt;span class="caps"&gt;XML&lt;/span&gt; into something else, especially not objects. Don&amp;#8217;t assume you know what they&amp;#8217;re going to want to do with the data. Give them the &lt;span class="caps"&gt;XML&lt;/span&gt; and let them use the classes and objects that fit their needs, not the ones that fit your needs. &lt;span class="caps"&gt;XML&lt;/span&gt; is exchangeable. Objects are not.&amp;#8221;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;Again, for the record: if I work with your web service, you do not know what data, data structures, or code artifacts I will have in place to access your web service.  Please don&amp;#8217;t try to guess by forcing me through your view of how the software artifacts should look.  Let me figure out how to make the raw message, and how to interpret what you send back.  &lt;span class="caps"&gt;SOAP&lt;/span&gt; toolkits that closely map &lt;span class="caps"&gt;XML&lt;/span&gt; to particular language-specific data structure constructs and back make this hard.&lt;/p&gt;</description>
      <pubDate>Fri, 09 Dec 2005 19:47:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:ecacb7db-23a5-4f7c-9f9f-df6a0c70864e</guid>
      <author>Jonathan Altman</author>
      <link>http://blog.dotbot.net/articles/2005/12/09/more-on-toolkits-reducing-impedance-mismatch-by-working-with-raw-xml</link>
      <category>technical</category>
      <category>SOAP</category>
      <category>web</category>
      <category>services</category>
      <category>SOA</category>
      <category>document-passing</category>
      <category>REST</category>
      <category>POX</category>
      <category>advocacy</category>
    </item>
    <item>
      <title>Succinct description of what is wrong with web services that do hard-RPC</title>
      <description>Found &lt;a href="http://www.xmlgrrl.com/blog/archives/2005/11/02/topic-oriented-architecture/"&gt;this quote&lt;/a&gt; today from Eve Maler
	&lt;blockquote&gt;
		&lt;p&gt;The trend in distributed computing is towards service-oriented architectures (SOAs). Early in the life of this buzzword, some people said it should really be called a document-oriented architecture (except for the unpleasant acronym :-) because it’s really all about document-passing  rather than a tightly coupled &lt;span class="caps"&gt;RPC&lt;/span&gt; paradigm, that is, if you want to be successful at reusing the components&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;The quote is part of a longer discussion that is partly tangential, but I have spent the last 4 years dealing with integration of services that are or could be called &amp;#8220;web services&amp;#8221; and they have taken various approaches to how the &lt;span class="caps"&gt;XML&lt;/span&gt; data is moved.  Some have expected that we will use a &lt;span class="caps"&gt;SOAP&lt;/span&gt; toolkit that hides the &lt;span class="caps"&gt;XML&lt;/span&gt; behind objects that get serialized and de-serialized.  Others came out of a more &lt;span class="caps"&gt;EDI&lt;/span&gt;-like world and are more message or data structure passing oriented.&lt;/p&gt;


	&lt;p&gt;The ones that are easier to deal with are the ones that move messages or data structures, not insist that I hide behind the de-serialized objects.  In general the objects end up not serving my purposes well, and require large recompiles and test cycles to deal with.  We end up having impedance mismatch between the software artifacts in the web services we consume, expressed in objects that I must use but which I did not define, and my own software artifacts.  To fix this, I need to either write wedges that sit between the web service I consume and my software artifacts and do the mapping, or I need to build my software artifacts so that they have a &amp;#8220;has-a&amp;#8221; relationship with the web service&amp;#8217;s artifacts.  That just splits the wedge into per-object pieces where each of my objects that &amp;#8220;has-a&amp;#8221; needs to manage its map.  The really intractable problem is when the object mapping that one toolkit makes is incompatible with another&amp;#8217;s.&lt;/p&gt;


	&lt;p&gt;On the other hand, when someone changes an &lt;span class="caps"&gt;XML&lt;/span&gt; document that I can treat as an &lt;span class="caps"&gt;XML&lt;/span&gt; document, I can work in a script-based (not compiled) environment and update the mapping between the document and my software artifact the way I need to, and ship faster.  I have variance between what you are sending me and what I expect, but since my entire system is built solely as a mapper between my artifacts and the web service&amp;#8217;s documents, there is no impedance mismatch, just a version change to my mapper.&lt;/p&gt;


	&lt;p&gt;It&amp;#8217;s faster to update, easier to maintain, and I don&amp;#8217;t have to care about whether your web service&amp;#8217;s underlying object model is any good or not.  I have one system, the mapper between documents and my software artifacts, not 2 systems:  your objects and my wrapping layer to handle the impedance mismatch.  And I cannot end up in situations where my toolkit and yours cannot generate compatible object&lt;-&gt;message bindings.&lt;/p&gt;


	&lt;p&gt;At the end of the day, I think you &lt;strong&gt;have&lt;/strong&gt; to care about what&amp;#8217;s in the angle brackets.  Developers who just want to deal with objects see a false economy: you feel like you are working higher up the protocol stack because you do not observe the wire format&amp;#8212;just your objects.  Eventually, however, you end up working below the wire format because the underlying plumbing of the service you are talking to is exposed in the software artifacts (objects) you end up having to manipulate on your side.  You either have to know details about how the objects on the other side were built, or you have to muck with the document format anyway to map away details from the other side you don&amp;#8217;t care about or cannot handle, but usually both.&lt;/p&gt;</description>
      <pubDate>Thu, 03 Nov 2005 19:08:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:b104c8ce35a5a1851a4bd5544dfdfa86</guid>
      <author>Jonathan Altman</author>
      <link>http://blog.dotbot.net/articles/2005/11/03/succinct-description-of-what-is-wrong-with-web-services-that-do-hard-rpc</link>
      <category>technical</category>
      <category>SOAP</category>
      <category>web</category>
      <category>services</category>
      <category>SOA</category>
      <category>RPC</category>
      <category>binding</category>
      <category>document-passing</category>
      <category>REST</category>
      <category>POX</category>
    </item>
  </channel>
</rss>
