<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>soabloke &#187; services</title>
	<atom:link href="http://www.soabloke.com/category/services/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.soabloke.com</link>
	<description>pushing soa up the slope (with a pointy stick)</description>
	<lastBuildDate>Tue, 03 Aug 2010 22:51:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Service Providers and One-Way MEPs</title>
		<link>http://www.soabloke.com/2010/05/07/service-providers-and-one-way-meps/</link>
		<comments>http://www.soabloke.com/2010/05/07/service-providers-and-one-way-meps/#comments</comments>
		<pubDate>Fri, 07 May 2010 07:40:27 +0000</pubDate>
		<dc:creator>Saul Caganoff</dc:creator>
				<category><![CDATA[web-services]]></category>
		<category><![CDATA[consumer]]></category>
		<category><![CDATA[jms]]></category>
		<category><![CDATA[mep]]></category>
		<category><![CDATA[messaging]]></category>
		<category><![CDATA[organization]]></category>
		<category><![CDATA[provider]]></category>
		<category><![CDATA[soa]]></category>

		<guid isPermaLink="false">http://www.soabloke.com/?p=259</guid>
		<description><![CDATA[Service oriented architecture centres heavily on the concepts of service providers and consumers. It’s easy with request/reply web services to fall into the lazy habit of thinking of the provider as being the “server” side of the request/reply interaction. The consumer requests information from the provider, which the provider – naturally – provides! But this [...]


Related posts:<ol><li><a href='http://www.soabloke.com/2008/03/26/why-service-consumers-and-service-providers-should-never-directly-communicate/' rel='bookmark' title='Permanent Link: Why Service Consumers and Service Providers should never directly communicate'>Why Service Consumers and Service Providers should never directly communicate</a></li>
<li><a href='http://www.soabloke.com/2008/05/15/waiting-for-the-great-leap-forward/' rel='bookmark' title='Permanent Link: Waiting for the great leap forward'>Waiting for the great leap forward</a></li>
<li><a href='http://www.soabloke.com/2008/11/11/talk-to-the-hand/' rel='bookmark' title='Permanent Link: Talk to the Hand'>Talk to the Hand</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Service oriented architecture centres heavily on the concepts of service providers and consumers. It’s easy with request/reply web services to fall into the lazy habit of thinking of the provider as being the “server” side of the request/reply interaction. The consumer requests information from the provider, which the provider – naturally – provides! But this is wrong.</p>
<p>What happens in an N-tier architecture where there may be many “servers” in the stack? What happens with JMS-based services using a one-way message exchange pattern (MEP)? If one application is using SOAP/JMS to send a message to another application, which is the consumer and which is the provider?</p>
<p>On the face of it, you might say the “sender” is the “provider” and the “receiver” is the “consumer”, but that ignores the fact that there are two types of one-way MEP – “one-way out” and “one-way in.” (Actually there are many types of MEP and they differ slightly depending on the version of WSDL you use, see the <a href="http://www.w3.org/TR/2007/REC-wsdl20-adjuncts-20070626/#patterns" target="_blank">WSDL standard</a> for more confusing details).</p>
<p>We really need to look beyond the technology to find the answer and the <a href="http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/" target="_blank">Web Services Glossary</a> gives a clue. It splits the model into an “agent” (software or process) that operates on behalf of an “entity” (person or organization). Specifically a <a href="http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/#provideragent" target="_blank">Provider Agent</a> and a <a href="http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/#requesteragent" target="_blank">Requester Agent</a> operate on behalf of a <a href="http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/#providerentity" target="_blank">Provider Entity</a> and a <a href="http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/#requesterentity" target="_blank">Requestor Entity</a> respectively.</p>
<p>So the “provider” of a Web service is basically the person or organization responsible for that service. It is the person or organization that you contact to get permission to use the service, or obtain the WSDL, or give your credit card details for charging.</p>
<p>An example will help to clarify the relationship between provider and consumer in one-way MEPs. Suppose a service provides alert notifications. Multiple consumers subscribe to this service to receive alerts on subjects that are important to them. At the messaging level, the provider puts a message onto a JMS Topic and multiple consumers receive the message. This is a “one-way out” MEP.</p>
<p>Another service might be a central audit service where multiple agents send messages via a JMS Queue representing steps in a distributed process. This is commonly used for “track and trace” in distributed workflows. In this case, the message senders are not responsible for the audit system, they are “users” or “consumers” of the service. This is a “one-way in” MEP.</p>
<p>In summary, service providers and consumers can be confusing in an N-tier architecture or with one-way MEPs. The fundamental consideration is more “business” than “technical”. Who is the organization or person responsible for the service? Then the way consumers interact with them determines the MEP that is being used.</p>


<p>Related posts:<ol><li><a href='http://www.soabloke.com/2008/03/26/why-service-consumers-and-service-providers-should-never-directly-communicate/' rel='bookmark' title='Permanent Link: Why Service Consumers and Service Providers should never directly communicate'>Why Service Consumers and Service Providers should never directly communicate</a></li>
<li><a href='http://www.soabloke.com/2008/05/15/waiting-for-the-great-leap-forward/' rel='bookmark' title='Permanent Link: Waiting for the great leap forward'>Waiting for the great leap forward</a></li>
<li><a href='http://www.soabloke.com/2008/11/11/talk-to-the-hand/' rel='bookmark' title='Permanent Link: Talk to the Hand'>Talk to the Hand</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.soabloke.com/2010/05/07/service-providers-and-one-way-meps/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Power of Later</title>
		<link>http://www.soabloke.com/2009/05/05/the-power-of-later/</link>
		<comments>http://www.soabloke.com/2009/05/05/the-power-of-later/#comments</comments>
		<pubDate>Tue, 05 May 2009 12:52:01 +0000</pubDate>
		<dc:creator>Saul Caganoff</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[bpm]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[mom]]></category>
		<category><![CDATA[rpc]]></category>
		<category><![CDATA[scalability]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[sla]]></category>
		<category><![CDATA[soa]]></category>
		<category><![CDATA[timeout]]></category>

		<guid isPermaLink="false">http://www.soabloke.com/2009/05/05/the-power-of-later/</guid>
		<description><![CDATA[Steve Vinoski nominates RPC as an historically bad idea, yet the synchronous request reply message pattern is undeniably the most common pattern out there in our client-server world. Steve puts this down to &#8220;convenience&#8221; but I actually think it goes deeper than that. Because RPC is actually not convenient &#8211; it causes an awful lot [...]


Related posts:<ol><li><a href='http://www.soabloke.com/2009/04/28/ian-robinson-on-coupling/' rel='bookmark' title='Permanent Link: Ian Robinson on Coupling'>Ian Robinson on Coupling</a></li>
<li><a href='http://www.soabloke.com/2010/08/04/beautiful-data-polling/' rel='bookmark' title='Permanent Link: Beautiful Data Polling'>Beautiful Data Polling</a></li>
<li><a href='http://www.soabloke.com/2008/01/31/the-benfits-of-an-esb/' rel='bookmark' title='Permanent Link: The benefits of an ESB'>The benefits of an ESB</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://steve.vinoski.net/blog/" title="Steve Vinoski Blog" target="_blank">Steve Vinoski</a> nominates RPC as <a href="http://qconlondon.com/london-2009/presentation/RPC+and+its+Offspring%3A+Convenient%2C+Yet+Fundamentally+Flawed" title="QCon Histroically Bad Ideas" target="_blank">an historically bad idea</a>, yet the synchronous request reply message pattern is undeniably the most common pattern out there in our client-server world. Steve puts this down to &#8220;convenience&#8221; but I actually think it goes deeper than that. Because RPC is actually not convenient &#8211; it causes an awful lot of problems.</p>
<p>In addition to the usual problems cited by Steve, RPC makes heavy demands on scalability. Consider the SLA requirements for an RPC service provider. An RPC request must respond in a reasonable time interval &#8211; typically a few tens of seconds at most. But what happens when the service is under heavy load? What strategies can we use to ensure a reasonable level of service availability?</p>
<ol>
<li>Keep adding capacity to the service so as to maintain the required responsiveness&#8230;damn the torpedoes and the budget!</li>
<li>The client times-out, leaving the request in an indeterminate state. In the worst case, the service may continue working only to return to find the client has given up. Under continued assault, the availability of both the client and the server continues to degrade.</li>
<li>The service stops accepting requests beyond a given threshold. Clients which have submitted a request are responded to within the SLA. Later clients are out of luck until the traffic drops back to manageable levels. They will need to resubmit later (if it is still relevant).</li>
<li>The client submits the request to a proxy (<a href="http://www.soabloke.com/2008/09/20/the-architectural-role-of-messaging/" title="The Architectural Role of Messaging" target="_blank">such as a message queue</a>) and then carries on with other work. The service responds when it can and hopefully the response is still relevant at that point.</li>
</ol>
<p>Out of all these coping strategies, it seems that Option 2 is the most common, even when in many cases one of the other strategies is more efficient or cost-effective. Option 1 might be the preferred option given unlimited funds (and ignoring the fact it is often technically infeasible). In the real world Option 2 more often becomes the default.</p>
<p>The best choice depends on what the service consumer represents and what is the cost of any of the side-effects when the service fails to meet its SLA.</p>
<p>When the client is a human &#8211; say ordering something at our web site:</p>
<ul>
<li>Option 2 means that we get a pissed off user. That may represent a high, medium or low <a href="http://www.soabloke.com/2008/01/13/cost-vs-benefit-occams-razor-for-the-enterprise-architect/" title="Cost vs Benefit" target="_blank">cost to the organization</a> depending on the value of that user. In addition there is the cost of indeterminate requests. What if a request was executed after the client timed-out? There may be a cost of cleaning up or reversing those requests.</li>
<li>Option 3 means that we also get a pissed off user &#8211; with the associated costs. We may lose a lot of potential customers who visit us during the &#8220;outage&#8221;. On the positive side, we minimise the risk/cost of indeterminate outcomes.</li>
<li>Option 4 is often acceptable to users &#8211; they know we have received their request and are happy to wait for a notification in the future. But there are some situations where immediate gratification is paramount.</li>
</ul>
<p>On the other hand, if the client is a system participating in a long-running BPM flow, then we have a different cost/benefit equation.</p>
<ul>
<li>For Option 2, we don&#8217;t have a &#8220;pissed off&#8221; user. But the transaction times out into an &#8220;error bucket&#8221; and is left in an indeterminate state. We must spend time and effort (usually costly human effort) to determine where that request got to and remediate that particular process. This can be very costly.</li>
<li>Option 3  once again has no user impact, and we minimise the risk of indeterminate requests. But what happens to the halted processes? Either they error out and must be restarted &#8211; which is expensive. Alternatively they must be queued up in some way &#8211; in which case Option 3 becomes equivalent to Option 4.</li>
<li>In the BPM scenario, option 4 represents the smoothest path. Requests are queued up and acted upon when the service can get to it. All we need is patience and the process will eventually complete without the need for unusual process rollbacks or error handling. If the queue is persistent then we can even handle a complete outage and restoration of the service.</li>
</ul>
<p>So if I am a service designer planning to handle service capacity constraints, for human clients I would probably choose (in order) Option 3, 4 and<a href="http://www.soabloke.com/2008/01/13/cost-vs-benefit-occams-razor-for-the-enterprise-architect/" title="Cost vs Benefit" target="_blank"> consider the costs</a> of option 2. For BPM processes where clients are &#8220;machines&#8221; then I would prefer Option 4 every time. Why make work for myself handling timeouts?</p>
<p>One problem I see so often is that solution designers go for Option 2 by default &#8211; the worst of all the options available to them.</p>


<p>Related posts:<ol><li><a href='http://www.soabloke.com/2009/04/28/ian-robinson-on-coupling/' rel='bookmark' title='Permanent Link: Ian Robinson on Coupling'>Ian Robinson on Coupling</a></li>
<li><a href='http://www.soabloke.com/2010/08/04/beautiful-data-polling/' rel='bookmark' title='Permanent Link: Beautiful Data Polling'>Beautiful Data Polling</a></li>
<li><a href='http://www.soabloke.com/2008/01/31/the-benfits-of-an-esb/' rel='bookmark' title='Permanent Link: The benefits of an ESB'>The benefits of an ESB</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.soabloke.com/2009/05/05/the-power-of-later/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Standalone Web Services and the Decline of the Browser</title>
		<link>http://www.soabloke.com/2009/04/15/standalone-web-services-and-the-decline-of-the-browser/</link>
		<comments>http://www.soabloke.com/2009/04/15/standalone-web-services-and-the-decline-of-the-browser/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 11:16:50 +0000</pubDate>
		<dc:creator>Saul Caganoff</dc:creator>
				<category><![CDATA[services]]></category>
		<category><![CDATA[web services soa rest twitter stackoverflow widgets bro]]></category>

		<guid isPermaLink="false">http://www.soabloke.com/2009/04/15/standalone-web-services-and-the-decline-of-the-browser/</guid>
		<description><![CDATA[Back around 1997 I speculated to a colleague that the general purpose web browser would disappear in 10 years. My rationale was that the user experience of HTML and the web at the time was so limited that users would be enticed by installable widgets that combined the advantages of the desktop for rich interactivity [...]


Related posts:<ol><li><a href='http://www.soabloke.com/2008/04/23/pragmatic-web-services/' rel='bookmark' title='Permanent Link: Pragmatic Web Services'>Pragmatic Web Services</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Back around 1997 I speculated to a colleague that the general purpose web browser would disappear in 10 years. My rationale was that the user experience of HTML and the web at the time was so limited that users would be enticed by installable widgets that combined the advantages of the desktop for rich interactivity plus an HTTP &#8220;back end&#8221; for access to web-based services.</p>
<p>Skip ahead 12 years and obviously my prediction hasn&#8217;t come true &#8211; quite. The main reason is that Rich Internet Applications (RIAs) have been achieved inside the browser using technologies like Flash and AJAX and the challenges of installation and maintenance have held back widespread adoption of desktop widgets.</p>
<p>However there is one other reason why widgets have not taken off and it has nothing to do with the widget. It all has to do with the hitherto tight coupling between the server and the client in web-based &#8220;services&#8221;. All web applications to-date have had the back-end services and the front-end &#8220;browser experience&#8221; developed and marketed by the one company as a complete unit.</p>
<p>Until recently there were no standalone web services. Very few, if any public web services have been designed with multiple different and independent front-ends in mind. Where they have emerged, they tended to be &#8220;hacks&#8221; created by individuals who came up with creative ways to re-purpose back-end services. Perhaps the pioneer was the use of <a href="http://richard.jones.name/google-hacks/gmail-filesystem/gmail-filesystem.html" title="Gmail File System" target="_blank">Gmail as a file system</a>.</p>
<p>I think this situation is about to change dramatically, driven by a number of factors:</p>
<ol>
<li>New platforms such as iPhone and Android make web-based widgets more compelling compared with the generic browser on those platforms.</li>
<li>There are now well-established standards for web services in platform neutral formats (I&#8217;m thinking JSON and XML)</li>
<li>Cloud computing further reduces the entry cost for service providers.</li>
</ol>
<p>The main element that remains is for the business models to emerge around pure service delivery. Twitter is the most visible example that a company can provide web-based services as its primary mission and leave the development of user interfaces to others. <a href="http://readwritetalk.com/2007/09/05/biz-stone-co-founder-twitter/" title="Interview with Twitter co-Founder Biz Stone" target="_blank">Biz Stone of Twitter</a> states that:</p>
<blockquote><p>&#8220;The API has been arguably the most important, or maybe even inarguably, the most important thing we’ve done with Twitter. It has allowed us, first of all, to keep the service very simple and create a simple API so that developers can build on top of our infrastructure and come up with ideas that are way better than our ideas&#8230;&#8221;</p></blockquote>
<p>Biz then goes on to describe how the API is central to their business model plans.</p>
<p>Another good example of standalone web services is how OpenID provides authentication services which are completely independent of the consuming business/application. Sites like <a href="http://www.stackoverflow.com" title="Stack Overflow" target="_blank">StackOverflow</a> can then outsource the boring authentication bits of their site and concentrate on more important content.</p>
<p>This is where the service-oriented architecture of the web really becomes interesting&#8230;a loosely coupled ecosystem of service consumers and providers providing the real architecture for serendipity.</p>
<p><strong>Update 04/05/09: </strong>I recently found an interesting slide presentation on this topic entitled &#8220;<a href="http://www.slideshare.net/hdoll/the-rise-of-the-widgets" title="The Rise of the Widgets" target="_blank">The Rise of the Widgets</a>&#8221; &#8211; well worth a look.</p>


<p>Related posts:<ol><li><a href='http://www.soabloke.com/2008/04/23/pragmatic-web-services/' rel='bookmark' title='Permanent Link: Pragmatic Web Services'>Pragmatic Web Services</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.soabloke.com/2009/04/15/standalone-web-services-and-the-decline-of-the-browser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gartner&#8217;s Top 10 Strategic Technologies for 2009</title>
		<link>http://www.soabloke.com/2008/10/25/gartners-top-10-strategic-technologies-for-2009/</link>
		<comments>http://www.soabloke.com/2008/10/25/gartners-top-10-strategic-technologies-for-2009/#comments</comments>
		<pubDate>Sat, 25 Oct 2008 11:00:38 +0000</pubDate>
		<dc:creator>Saul Caganoff</dc:creator>
				<category><![CDATA[cep]]></category>
		<category><![CDATA[woa]]></category>
		<category><![CDATA[business-intelligence]]></category>
		<category><![CDATA[cio]]></category>
		<category><![CDATA[gartner]]></category>
		<category><![CDATA[soa]]></category>
		<category><![CDATA[strategy]]></category>

		<guid isPermaLink="false">http://www.soabloke.com/2008/10/25/gartners-top-10-strategic-technologies-for-2009/</guid>
		<description><![CDATA[Gartner has nominated their top 10 strategic technologies for 2009. In priority order they are: 1. Virtualization 2. Business Intelligence 3. Cloud Computing 4. Green IT 5. Unified Communications 6. Social Software and Social Networking 7. Web Oriented Architecture 8. Enterprise Mashups 9. Specialized Systems 10. Servers – Beyond Blades My primary interests in SOA [...]


Related posts:<ol><li><a href='http://www.soabloke.com/2008/11/06/gartner-2008-soa-user-survey/' rel='bookmark' title='Permanent Link: Gartner 2008 SOA User Survey'>Gartner 2008 SOA User Survey</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Gartner has nominated their <a href="http://blogs.gartner.com/david_cearley/2008/10/14/gartner%e2%80%99s-top-10-strategic-technologies-for-2009/" title="Top 10 Strategic Technologies" target="_blank">top 10 strategic technologies</a> for 2009. In priority order they are:</p>
<p><span style="font-size: small; font-family: Times New Roman">1. Virtualization<br />
2. Business Intelligence<br />
3. Cloud Computing<br />
4. Green IT<br />
5. Unified Communications<br />
6. Social Software and Social Networking<br />
7. Web Oriented Architecture<br />
8. Enterprise Mashups<br />
9. Specialized Systems<br />
10. Servers – Beyond Blades </span></p>
<p>My primary interests in SOA and CEP are represented in items 7 and 2 respectively (with some applicability to 8).</p>
<blockquote><p><span style="font-size: small"><span style="font-family: Times New Roman"><strong>Business Intelligence. </strong>Business Intelligence (BI), the top technology priority in Gartner’s 2008 CIO survey, can have a direct positive impact on a company’s business performance, dramatically improving its ability to accomplish its mission by making smarter decisions at every level of the business from corporate strategy to operational processes. BI is particularly strategic because it is directed toward business managers and knowledge workers who make up the pool of thinkers and decision makers that are tasked with running, growing and transforming the business. <em>Tools that let these users make faster, better and more-informed decisions are particularly valuable in a difficult business environment </em></span></span></p></blockquote>
<p><em>(emphasis added).  </em>Complex Event Processing is a key enabling technology for real-time business intelligence. The ability to abstract &#8220;rules&#8221; out of data using analytics and then have those rules executed in real-time to match against &#8220;events&#8221; running around your enterprise bus is what will make BI achieve the needs of business to make informed decisions &#8220;faster&#8221;. Traditional BI where you feed data into a mammoth DWH and then analyse the results at some point later suffer from high latencies and reduced information currency. CEP can reduce these latencies from weeks or months down to seconds.</p>
<blockquote><p><span style="font-size: small"><span style="font-family: Times New Roman"><strong>Web-Oriented Architectures.</strong> The Internet is arguably the best example of an agile, interoperable and scalable service-oriented environment in existence. This level of flexibility is achieved because of key design principles inherent in the Internet/Web approach, as well as the emergence of Web-centric technologies and standards that promote these principles. The use of Web-centric models to build global-class solutions cannot address the full breadth of enterprise computing needs. However, Gartner expects that continued evolution of the Web-centric approach will enable its use in an ever-broadening set of enterprise solutions during the next five years.</span></span></p></blockquote>
<p>Recognition that SOA is more than just &#8220;Web Services&#8221;and that <a href="http://www.soabloke.com/2008/05/01/web20-informing-soa/#footnote" title="Web2.0 Informing SOA" target="_blank">at least one other architectural paradigm</a> is available to SOA implementers.</p>
<p>Interesting that BPM has dropped from the list after featuring in the previous two years. And SOA itself has not been mentioned since <a href="http://searchcio.techtarget.com/news/article/0,289142,sid182_gci1137889,00.html#" title="Top strategic technologies for 2006" target="_blank">the list for 2006</a>. It looks like SOA has become more business as usual &#8211; part of the IT &#8220;furniture&#8221; &#8211; as <a href="http://www.soabloke.com/2007/10/19/remembrance-of-things-past/" title="Remembrance Of Things Past" target="_blank">I predicted</a> some time ago.</p>


<p>Related posts:<ol><li><a href='http://www.soabloke.com/2008/11/06/gartner-2008-soa-user-survey/' rel='bookmark' title='Permanent Link: Gartner 2008 SOA User Survey'>Gartner 2008 SOA User Survey</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.soabloke.com/2008/10/25/gartners-top-10-strategic-technologies-for-2009/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Push versus Pull</title>
		<link>http://www.soabloke.com/2008/08/19/push-versus-pull/</link>
		<comments>http://www.soabloke.com/2008/08/19/push-versus-pull/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 05:10:20 +0000</pubDate>
		<dc:creator>Saul Caganoff</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[flikr]]></category>
		<category><![CDATA[friendfeed]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[mom]]></category>
		<category><![CDATA[oscon]]></category>
		<category><![CDATA[push]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[xmpp]]></category>

		<guid isPermaLink="false">http://www.soabloke.com/2008/08/19/push-versus-pull/</guid>
		<description><![CDATA[From OSCON via O&#8217;Reilly Radar here&#8217;s a good case study of an architectural decision driven by the system requirements rather than the usual religious considerations that pollute the bloggosphere. FriendFeed needed update info from Flikr but a REST-based &#8220;pull&#8221; approach is highly inefficient in this case. Instead the solution architects opted for a &#8220;push&#8221; approach [...]


Related posts:<ol><li><a href='http://www.soabloke.com/2009/04/28/ian-robinson-on-coupling/' rel='bookmark' title='Permanent Link: Ian Robinson on Coupling'>Ian Robinson on Coupling</a></li>
<li><a href='http://www.soabloke.com/2010/08/04/beautiful-data-polling/' rel='bookmark' title='Permanent Link: Beautiful Data Polling'>Beautiful Data Polling</a></li>
<li><a href='http://www.soabloke.com/2008/03/28/ws-vs-rest-ack/' rel='bookmark' title='Permanent Link: WS-* vs REST (ack)'>WS-* vs REST (ack)</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>From <a href="http://radar.oreilly.com/2008/07/oscon-day-1-beyond-rest-buildi.html" title="OSCON 2008" target="_blank">OSCON via O&#8217;Reilly Radar</a> here&#8217;s a good case study of an architectural decision driven by the system requirements rather than the usual religious considerations that pollute the bloggosphere.</p>
<p>FriendFeed needed update info from Flikr but a REST-based &#8220;pull&#8221; approach is highly inefficient in this case. Instead the <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4359" title="Solution Architects" target="_blank">solution architects</a> opted for a &#8220;push&#8221; approach using xmpp as the message transport. This is a really <a href="http://www.slideshare.net/rabble/beyond-rest-building-data-services-with-xmpp-pubsub" title="Slideshow" target="_blank">good presentation</a> because it goes into the architectural choices and implications of &#8220;push&#8221; versus &#8220;pull&#8221;.</p>
<p>I characterize this as &#8220;pull vs push&#8221;  rather than &#8220;REST vs xmpp&#8221; (or &#8220;REST vs *&#8221; or &#8220;why REST is crap&#8221;) because fundamentally it comes down to the best choice of how to synchronize changes between systems. You make this choice based on the usage characteristics of the different systems, the likely traffic volumes this will result in and the consequential resource impacts. Having made the choice between push or pull you then choose the appropriate message transport.</p>
<p>The web doesn&#8217;t do a lot of &#8220;push&#8221; and consequently there is not a lot of discussion about push and REST. <a href="http://www.25hoursaday.com/weblog/2008/07/27/WhenRESTDoesntScaleXMPPToTheRescue.aspx" title="Dare Obasanjo" target="_blank">Dare Obasanjo</a> characterises it nicely:</p>
<blockquote><p>Polling is a good idea for RSS/Atom for a few reasons</p>
<ul>
<li>there are a thousands to hundreds of thousands clients that might be interested in a resource so the server keeping track of subscriptions is prohibitively expensive</li>
<li>a lot of these end points aren&#8217;t persistently connected (i.e. your desktop RSS reader isn&#8217;t always running)</li>
<li>RSS/Atom publishing is as simple as plopping a file in the right directory and letting IIS or Apache work its magic</li>
</ul>
<p>The situation between FriendFeed and Flickr is almost the exact opposite. Instead of thousands of clients interested in document, we have one subscriber interested in thousands of documents. Both end points are always on or are at least expected to be. The cost of developing a publish-subscribe model is one that both sides can afford.</p></blockquote>
<p>Inside the firewall, the situation is often more akin to that between FriendFeed and Flikr. This is why messaging is more common inside the firewall than outside &#8211; not because of any universal superiority between REST versus messaging, but because the system requirements are different and often favour a push approach rather than pull.</p>
<p>While your over at Dare&#8217;s excellent Blog, be sure to also check out his discussion of<a href="http://www.25hoursaday.com/weblog/2008/05/26/SomeThoughtsOnSingleInstanceStorageAndTwitter.aspx" title="Single Instance Storage and Twitter" target="_blank"> push versus pull</a> in the context of scaling Twitter and MS Exchange.  These are important considerations for designers of federated systems such as federated databases or federated messaging systems. The example of FriendFeed to Flikr could be considered as the first incremental step toward a federation.</p>


<p>Related posts:<ol><li><a href='http://www.soabloke.com/2009/04/28/ian-robinson-on-coupling/' rel='bookmark' title='Permanent Link: Ian Robinson on Coupling'>Ian Robinson on Coupling</a></li>
<li><a href='http://www.soabloke.com/2010/08/04/beautiful-data-polling/' rel='bookmark' title='Permanent Link: Beautiful Data Polling'>Beautiful Data Polling</a></li>
<li><a href='http://www.soabloke.com/2008/03/28/ws-vs-rest-ack/' rel='bookmark' title='Permanent Link: WS-* vs REST (ack)'>WS-* vs REST (ack)</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.soabloke.com/2008/08/19/push-versus-pull/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Waiting for the great leap forward</title>
		<link>http://www.soabloke.com/2008/05/15/waiting-for-the-great-leap-forward/</link>
		<comments>http://www.soabloke.com/2008/05/15/waiting-for-the-great-leap-forward/#comments</comments>
		<pubDate>Thu, 15 May 2008 09:20:11 +0000</pubDate>
		<dc:creator>Saul Caganoff</dc:creator>
				<category><![CDATA[web-services]]></category>
		<category><![CDATA[interoperability]]></category>
		<category><![CDATA[jms]]></category>
		<category><![CDATA[mom]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[w3c]]></category>
		<category><![CDATA[ws-*]]></category>

		<guid isPermaLink="false">http://www.soabloke.com/2008/05/15/waiting-for-the-great-leap-forward/</guid>
		<description><![CDATA[The long-awaited standardization of a SOAP binding to JMS has taken a step foward with the establishment of a W3C working group. This will address a major hole on the SOAP standard for large organizations that rely on message-oriented transports between heterogeneous platforms.


Related posts:<ol><li><a href='http://www.soabloke.com/2008/04/23/pragmatic-web-services/' rel='bookmark' title='Permanent Link: Pragmatic Web Services'>Pragmatic Web Services</a></li>
<li><a href='http://www.soabloke.com/2010/05/07/service-providers-and-one-way-meps/' rel='bookmark' title='Permanent Link: Service Providers and One-Way MEPs'>Service Providers and One-Way MEPs</a></li>
<li><a href='http://www.soabloke.com/2008/10/20/using-events-to-add-real-time-intelligence/' rel='bookmark' title='Permanent Link: Using Events to Add Real-time Intelligence'>Using Events to Add Real-time Intelligence</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>One of the original and fundamental tenets of the SOAP standard was that the SOAP message is independent of the underlying transport. Ostensibly you could use SOAP over HTTP, JMS, email, FTP etc. but the reality is that a standard binding has only ever existed for SOAP over HTTP. To paraphrase Henry Ford &#8211; &#8220;you can have any SOAP transport you like, as long as its HTTP&#8221;.</p>
<p>While HTTP is undoubtedly a good choice for SOAP &#8211; given its ubiquity &#8211; there is at least one other transport which demands attention. This is the JMS transport which is widely used inside the firewall of many organizations. Of all the companies that I work with, their SOA infrastructure heavily relies on JMS transports inside the firewall, with HTTP transports outside the firewall or to selected service end-points such as web pages. Of course my experience has significant selection effects, but nevertheless JMS is an important transport in many SOAs. Testament to this is that every major web-services product vendor (save Microsoft) supports SOAP over JMS (and even Microsoft now has <a href="http://code.msdn.microsoft.com/msmqpluswcf" title="SOA'izing MSMQ with WCF" target="_blank">SOAP over MSMQ</a> as an important part of WCF).</p>
<p>The fly in the ointment is that there has never been a standardized binding for SOAP over JMS and as a result there is little interoperability between SOAP/JMS solutions provided by different platform vendors. If you happen to have any combination of different web-service platforms in your organization, then they cannot easily communicate with each other using SOAP over JMS without <a href="http://soa.sys-con.com/read/523481.htm" title="SOAP over JMS Interoperability" target="_blank">performing some unnatural acts</a>.</p>
<p>Some of issues that need to be considered with a SOAP binding to JMS are:</p>
<ul>
<li>How do you represent the message content &#8211; text or binary? Most vendors have chosen a text message representation, but that has problems with multi-byte encodings, so other vendors have gone with a byte message representation.</li>
<li>What headers do you define and what should their names be? How do you use the standard JMS headers? different vendors have different naming conventions and semantics.</li>
<li>In the WSDL description, how do you represent the connection details to the JMS provider?</li>
<li>How do your service endpoints manage the different message exchange patterns that are available with message-oriented transports?</li>
</ul>
<p>Each of the vendors went their own way on many of these issues and as far as interoperability was concerned they basically ceded the field to HTTP. They made life difficult for large organizations with heterogeneous platforms and in my opinion didn&#8217;t do themselves any favours on the way. (Actually SOAP-encoding interoperability was so broken for a while that noone noticed the JMS issues&#8230;so maybe it wasn&#8217;t so bad).</p>
<p>Subsequently it was great to see some of the vendors get together a couple of years ago to agree on a standard SOAP binding for JMS that addresses most of the important considerations. The result was a <a href="http://www.w3.org/Submission/SOAPJMS/" title="SOAPJMS Member Submission" target="_blank">Member Submission</a> to W3C in September last year. My understanding is that this submission was previously circulated through most of the vendor community so hopefully it has general agreement on the technical details.</p>
<p>This has now taken its first steps to standardization with the initiation of a <a href="http://www.w3.org/2002/ws/soapjms/" title="SOAP-JMS Binding Working Group" target="_blank">SOAP-JMS Binding Working Group</a> who aim to publish a recommendation by April next year. Hopefully vendor support of the binding will be hot on its trail.</p>
<p>Note that the standard binding won&#8217;t address the fact that different JMS implementations do not interoperate. For example, a TIBCO JMS client will not be able to talk to a Websphere JMS provider because JMS is an API standard, not a wire-protocol standard. What the SOAP/JMS binding standard <em>does</em> mean is that once you have settled on a standard JMS provider for your services, you could define your service description in standard WSDL and your service provider (say Websphere or TIBCO or WSO2) and your service consumer (say TIBCO or WebLogic or Axis) would be able to communicate directly using SOAP over JMS &#8220;out of the box&#8221;.</p>
<p>Its been eight years (almost to the day) since SOAP 1.1 came out with the HTTP binding. Wouldn&#8217;t it be great if a standard JMS binding could be achieved within the decade! It&#8217;s been a very long wait. The JMS binding should have happened a lot sooner and I can&#8217;t say the &#8220;wait has been worth it&#8221; but it does fill an important hole in the Web-Services standards.</p>
<p>So what do we do in the meantime? You can eschew JMS altogether and stick with HTTP, but that requires another lot of hard work. You can stick with one and only one service platform, but that is difficult in large heterogeneous organizations &#8211; which is where SOA is supposed to provide maximum benefit. Or you can continue to do what many SOA implementers have done and deal with SOAP directly at the JMS layer &#8211; effectively using SOAP as plain-old-XML over JMS. I wrote <a href="http://www.soabloke.com/2008/04/23/pragmatic-web-services/" title="Pragmatic Web Services" target="_blank">more about this approach</a> recently.</p>
<p>Another thing you can do in the meantime is ask your vendor when will they support the new SOAP/JMS binding?</p>


<p>Related posts:<ol><li><a href='http://www.soabloke.com/2008/04/23/pragmatic-web-services/' rel='bookmark' title='Permanent Link: Pragmatic Web Services'>Pragmatic Web Services</a></li>
<li><a href='http://www.soabloke.com/2010/05/07/service-providers-and-one-way-meps/' rel='bookmark' title='Permanent Link: Service Providers and One-Way MEPs'>Service Providers and One-Way MEPs</a></li>
<li><a href='http://www.soabloke.com/2008/10/20/using-events-to-add-real-time-intelligence/' rel='bookmark' title='Permanent Link: Using Events to Add Real-time Intelligence'>Using Events to Add Real-time Intelligence</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.soabloke.com/2008/05/15/waiting-for-the-great-leap-forward/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pragmatic Web Services</title>
		<link>http://www.soabloke.com/2008/04/23/pragmatic-web-services/</link>
		<comments>http://www.soabloke.com/2008/04/23/pragmatic-web-services/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 01:12:47 +0000</pubDate>
		<dc:creator>Saul Caganoff</dc:creator>
				<category><![CDATA[services]]></category>
		<category><![CDATA[soa]]></category>
		<category><![CDATA[jms]]></category>
		<category><![CDATA[mest]]></category>
		<category><![CDATA[mom]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[ws-*]]></category>

		<guid isPermaLink="false">http://www.soabloke.com/2008/04/23/pragmatic-web-services/</guid>
		<description><![CDATA[The use of web services standards such as SOAP over message-oriented transports has a more natural evolution than the RPC approach encountered by most developers. This is similar to the "MEST" approach identified by other practitioners. Recognizing that fallacy of transport independence can lead to a more robust service architecture.  


Related posts:<ol><li><a href='http://www.soabloke.com/2008/05/15/waiting-for-the-great-leap-forward/' rel='bookmark' title='Permanent Link: Waiting for the great leap forward'>Waiting for the great leap forward</a></li>
<li><a href='http://www.soabloke.com/2009/04/15/standalone-web-services-and-the-decline-of-the-browser/' rel='bookmark' title='Permanent Link: Standalone Web Services and the Decline of the Browser'>Standalone Web Services and the Decline of the Browser</a></li>
<li><a href='http://www.soabloke.com/2008/01/31/the-benfits-of-an-esb/' rel='bookmark' title='Permanent Link: The benefits of an ESB'>The benefits of an ESB</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p> In a recent <a href="http://www.thoughtworks.com/what-we-say/podcasts.html" title="ThoughtWorks Podcasts" target="_blank">ThoughtWorks podcast</a>, <a href="http://jim.webber.name/" title="Jim Webber" target="_blank">Jim Webber</a> introduced himself as a &#8220;MESTian&#8221;. This was a new term for me, so I had to investigate. <a href="http://del.icio.us/saulc/mest">MEST</a> is a message-centric approach to SOA which resonates strongly with my own views on how services ought to be implemented. The MEST approach is a pragmatic approach to SOA to which I think/hope Web Services are evolving naturally. Therefore I agree with <a href="http://searchsoa.techtarget.com/news/article/0,289142,sid26_gci1271547,00.html" title="Does SOA need MEST on top of REST?" target="_blank">Neil Ward-Dutton</a> that we don&#8217;t really need to coin a new term (MEST). This is really just Web Services <em>&#8220;done properly&#8221;</em>.</p>
<p>My views on this are a product of my past experience with <a href="http://looselycoupled.com/glossary/MOM" title="Message-Oriented Middleware" target="_blank">MOM</a>-based distributed computing. My earlier <a href="http://www.soabloke.com/2008/01/21/what-is-an-esb-and-why-do-i-need-one/" title="What is an ESB and Why Do I Need One?" target="_blank">description of an ESB</a> is based on a MOM approach and probably differs from the common perception of a &#8220;black box&#8221; ESB. The MEST approach would be very natural to people with an MQ, Rendezvous or JMS background&#8230;which is probably the minority of current SOA practitioners.</p>
<p>About 10 years ago, MOM messages were exchanged between systems using proprietary message representations such as COBOL Copybook or AE-Message formats. Enterprise concerns such as scalability, reliability and fault-tolerance were dealt with using techniques at the messaging level. MOM quality-of-service dealt with guaranteed message delivery and message ordering (in normal cases). Where possible, message endpoints were implemented in a stateless manner to allow for easy failover and load-balancing. This general approach is still valid today&#8230;only the message representation has changed.</p>
<p>When XML became more mature and accepted, MOM messages started to be implemented with XML payloads. Even after SOAP became a standard, my experience is that it wasn&#8217;t rapidly adopted by the MOM community. Proprietary XML message schemas ruled for a couple of years and SOAP had its initial application in RPC over HTTP implementations. But the great thing about SOAP is that it is a nice generic message envelope that is acceptable by everyone.  Put your meta-data into the SOAP header and the payload into the SOAP body. If you didn&#8217;t have it, you would have to invent it &#8211; and many did. Hence, as a pragmatic approach SOAP was adopted as a generalized envelope over &#8211; now &#8211; JMS. Add the correct JMS headers and you have <a href="http://www.soaprpc.com/faq.html#q9">SOAP Document Literal Encoding</a> over JMS. Additional standards like WS-Addressing, WS-Security are additional sets of meta-data in the SOAP header with meaning to the endpoints and intermediaries in the message journey. WSDL is simply a way of representing the contract between message producer and consumer. I think this is a relatively natural progression from proprietary MOM to more open mechanisms for message exchange which are compliant with the core Web Services standards.</p>
<p>Contrast this with the original RPC approach to Web Services. <a href="http://www.soaprpc.com/faq.html#q9">SOAP RPC Encoding</a> was the original standard, buried within code generation tools which attempted to hide complexity from the developer. Unfortunately this resulted in Web Services which lacked interoperability and created tight couplings between provider and consumer. Moreover, the attempt to shield developers from the distributed nature of their services and the underlying transports &#8211; all very necessary concerns &#8211; led to huge problems with meeting the enterprise requirements for services. This is the experience of most Web Services developers and it is no wonder that Web Services have such a bad reputation. Subsequently, Web Services &#8211; SOAP in particular &#8211; has moved to more inter-operable approaches through WS-I. But a lot of damage has been done, and the continued tendency to ignore the distributed nature of Web Services continues to cause problems in terms of unrealistic expectations.</p>
<p>So I like the MEST approach and find that it resonates well with the &#8220;pragmatic&#8221; approach to Web Services via the adoption of SOAP and other WS-* standards by the MOM community. I can summarize this &#8220;pragmatic&#8221; approach as:</p>
<ul>
<li>Transport Independence is a myth. Use the transports for their strengths &#8211; JMS for reliability and HTTP for ubiquity.</li>
<li>Understand the distributed nature of Web Services and use the long history of best practices from distributed computing and Message Oriented Middleware (MOM).</li>
<li>Understand the standards and how they fit together. <em>Most importantly, <it>know where the holes are</it>.</em></li>
<li>Use the standards where they make sense. Augment them with your own enterprise standards and best practices where necessary.</li>
</ul>
<p>The result will be better confidence and ownership of your SOA infrastructure. <em><it>You</it></em> will rule the standards and your tool vendors rather than the other way around. As an added bonus, you get asynchronous services as a natural part of your SOA &#8211; an area where the WS-* standards struggle right now.</p>


<p>Related posts:<ol><li><a href='http://www.soabloke.com/2008/05/15/waiting-for-the-great-leap-forward/' rel='bookmark' title='Permanent Link: Waiting for the great leap forward'>Waiting for the great leap forward</a></li>
<li><a href='http://www.soabloke.com/2009/04/15/standalone-web-services-and-the-decline-of-the-browser/' rel='bookmark' title='Permanent Link: Standalone Web Services and the Decline of the Browser'>Standalone Web Services and the Decline of the Browser</a></li>
<li><a href='http://www.soabloke.com/2008/01/31/the-benfits-of-an-esb/' rel='bookmark' title='Permanent Link: The benefits of an ESB'>The benefits of an ESB</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.soabloke.com/2008/04/23/pragmatic-web-services/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WS-* vs REST (ack)</title>
		<link>http://www.soabloke.com/2008/03/28/ws-vs-rest-ack/</link>
		<comments>http://www.soabloke.com/2008/03/28/ws-vs-rest-ack/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 06:51:02 +0000</pubDate>
		<dc:creator>Saul Caganoff</dc:creator>
				<category><![CDATA[rest]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[ws-*]]></category>

		<guid isPermaLink="false">http://www.soabloke.com/2008/03/28/ws-vs-rest-ack/</guid>
		<description><![CDATA[There&#8217;s a lot of interesting bloodletting debate going on about the different technical approaches to services development &#8211; RESTful versus ws-* (ws-splat). The great thing about this debate is that it helps expose fundamental requirements, preconceptions and trade-offs. I&#8217;m currently on the sidelines&#8230;my own position is that while acknowledging that ws-* is overly complex and [...]


Related posts:<ol><li><a href='http://www.soabloke.com/2008/05/17/web-oriented-soa/' rel='bookmark' title='Permanent Link: Web-Oriented SOA'>Web-Oriented SOA</a></li>
<li><a href='http://www.soabloke.com/2008/05/15/waiting-for-the-great-leap-forward/' rel='bookmark' title='Permanent Link: Waiting for the great leap forward'>Waiting for the great leap forward</a></li>
<li><a href='http://www.soabloke.com/2008/01/17/soa-executive-insight-report/' rel='bookmark' title='Permanent Link: SOA Executive Insight Report'>SOA Executive Insight Report</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a lot of interesting <strike>bloodletting</strike> debate going on about the different technical approaches to services development &#8211; RESTful versus ws-* (ws-splat).  The great thing about this debate is that it helps expose fundamental requirements, preconceptions and trade-offs.</p>
<p>I&#8217;m currently on the sidelines&#8230;my own position is that while acknowledging that ws-* is overly complex and has led us down a lot of blind alleys in the standardization <strike>wars</strike> process, the fundamental aspects are useful and productive if used properly. REST approaches are conceptually elegant and simple in their use of and adherence to the &#8220;resource oriented&#8221; view of the world-wide-web, but I haven&#8217;t used them &#8220;in anger&#8221; yet and need to reserve judgement.</p>
<p>There is currently a very interesting discussion on the <a href="http://www.theserverside.com/news/thread.tss?thread_id=48534" title="Looking for a few good WSDLs" target="_blank">value of WSDL</a> happening at TSS. One of the best <a href="http://www.theserverside.com/news/thread.tss?thread_id=48534#248060" title="no WSDL at all..." target="_blank">contributions</a> to the discussion from William Childers says:</p>
<blockquote><p>WSDL is supposed to give us away of tying together the service, its address, its operations, the required message formats and the supported delivery channels. That’s very useful and is something that can be processed and used at either design time or run-time (e.g. WSIF).</p>
<p>If WSDL (and Schema) did not exist we’d have to invent them. You can argue about how good they are as solutions (not so great) but I don’t see how you can argue that solutions aren’t needed which I believe is one of Joseph O’s points.</p></blockquote>
<p>On the other side&#8230;Stefan Tilkov at InfoQ gives a good <a href="http://www.infoq.com/articles/tilkov-rest-doubts" title="Addressing doubts about REST" target="_blank">defence of REST against the doubters</a>.</p>
<p>Well reasoned discussion about these approaches will help to clarify each and also help to educate the wider user community. Currently the REST approach certainly dominates public web services (such as Google, Amazon, Facebook etc) and that ws-* dominates enterprise web services.  I feel there is significant common ground between the two and we will see a middle way that bridges some of the differences and leads to both better ws-* implementations and better REST implementations.</p>


<p>Related posts:<ol><li><a href='http://www.soabloke.com/2008/05/17/web-oriented-soa/' rel='bookmark' title='Permanent Link: Web-Oriented SOA'>Web-Oriented SOA</a></li>
<li><a href='http://www.soabloke.com/2008/05/15/waiting-for-the-great-leap-forward/' rel='bookmark' title='Permanent Link: Waiting for the great leap forward'>Waiting for the great leap forward</a></li>
<li><a href='http://www.soabloke.com/2008/01/17/soa-executive-insight-report/' rel='bookmark' title='Permanent Link: SOA Executive Insight Report'>SOA Executive Insight Report</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.soabloke.com/2008/03/28/ws-vs-rest-ack/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
