<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en" xml:base="http://www.soabloke.com/wp-atom.php">
	<title type="text">soabloke</title>
	<subtitle type="text">pushing soa up the slope (with a pointy stick)</subtitle>

	<updated>2010-08-03T22:51:51Z</updated>

	<link rel="alternate" type="text/html" href="http://www.soabloke.com" />
	<id>http://www.soabloke.com/feed/atom/</id>
	

	<generator uri="http://wordpress.org/" version="3.0.1">WordPress</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/soabloke" /><feedburner:info uri="soabloke" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>-37.8</geo:lat><geo:long>145.0</geo:long><link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-nd/3.0/" /><logo>http://creativecommons.org/images/public/somerights20.gif</logo><entry>
		<author>
			<name>Saul Caganoff</name>
						<uri>http://www.soabloke.com/saulc/</uri>
					</author>
		<title type="html"><![CDATA[Beautiful Data Polling]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/soabloke/~3/ed_VVhDYBOE/" />
		<id>http://www.soabloke.com/?p=276</id>
		<updated>2010-08-03T22:51:51Z</updated>
		<published>2010-08-03T22:51:51Z</published>
		<category scheme="http://www.soabloke.com" term="architecture" /><category scheme="http://www.soabloke.com" term="asynchronous" /><category scheme="http://www.soabloke.com" term="messaging" /><category scheme="http://www.soabloke.com" term="polling" /><category scheme="http://www.soabloke.com" term="pub/sub" /><category scheme="http://www.soabloke.com" term="push" /><category scheme="http://www.soabloke.com" term="scalability" /><category scheme="http://www.soabloke.com" term="twitter" />		<summary type="html"><![CDATA[An excellent review of Beautiful Data leads to an interesting discussion on Slashdot argues push models versus polling models and the problems with implementing them.


Related posts:<ol><li><a href='http://www.soabloke.com/2008/08/19/push-versus-pull/' rel='bookmark' title='Permanent Link: Push versus Pull'>Push versus Pull</a></li>
<li><a href='http://www.soabloke.com/2009/04/21/56-architecture-case-studies/' rel='bookmark' title='Permanent Link: 56 Architecture Case Studies'>56 Architecture Case Studies</a></li>
<li><a href='http://www.soabloke.com/2010/01/11/the-year-of-living-asynchronously/' rel='bookmark' title='Permanent Link: The Year of Living Asynchronously'>The Year of Living Asynchronously</a></li>
</ol>]]></summary>
		<content type="html" xml:base="http://www.soabloke.com/2010/08/04/beautiful-data-polling/">&lt;p&gt;&lt;a href="http://oreilly.com/" target="_blank"&gt;O&amp;#8217;Reilly&lt;/a&gt; have released a new book in their &amp;#8220;Beautiful&amp;#8230;&amp;#8221; series called &amp;#8220;&lt;a href="http://oreilly.com/catalog/9780596157128" target="_self"&gt;Beautiful Data&lt;/a&gt;.&amp;#8221;  There&amp;#8217;s a very comprehensive review on &lt;a href="http://science.slashdot.org/story/10/08/02/1258208/Beautiful-Data" target="_blank"&gt;Slashdot&lt;/a&gt; which I highly recommend. The description of chapter eight caught my eye:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Chapter Eight is about social data APIs and pushes &lt;a href="http://gnip.com/" target="_blank"&gt;gnip&lt;/a&gt; heavily as the de facto social endpoint aggregator for programmers. The chapter mentions &lt;a href="http://www.webhooks.org/" target="_blank"&gt;WebHooks&lt;/a&gt; as an up and coming HTTP Post event transmission project but doesn&amp;#8217;t offer much more than a wake up call for programmers. The traditional polling has dominated web APIs and has lead to&lt;a href="http://mobile.slashdot.org/story/10/07/07/1836256/Twitter-Throttling-Hits-Third-Party-Apps" target="_blank"&gt; fragile points of failure&lt;/a&gt;. This chapter is a much needed call for sanity in the insane world of HTTP transactional polling. Unfortunately, the community seems to be so in love with the simplicity of polling that they use it for everything, even when a slightly more complicated eventing model would save them a large percentage of transactions.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;The link &amp;#8220;&lt;a href="http://mobile.slashdot.org/story/10/07/07/1836256/Twitter-Throttling-Hits-Third-Party-Apps" target="_blank"&gt;fragile points of failure&lt;/a&gt;&amp;#8221; is worth following as it leads to a robust slashdot discussion on Twitter APIs and polling versus push for the web.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;I think for a long time, the &amp;#8220;web&amp;#8221; as we know it has suffered from the lack of the Event/Listener paradigm. This is a pretty simple design concept that I&amp;#8217;m going to refer to as &lt;a title="wikipedia.org" href="http://en.wikipedia.org/wiki/Observer_pattern"&gt;the Observer&lt;/a&gt; [wikipedia.org]. Let&amp;#8217;s say I want to know what Stephen Hawking is tweeting about and I want to know 24/7. Now if you have to make more than one call, something is wrong. That one call should be a notification to Twitter who I am, where you can contact me and what I want to keep tabs on&amp;#8211;be it a keyword or user. So all I should ever have to do is tell Twitter I want to know everything from Stephen Hawking and everything with #stephenhawking or whatever and from that point on, it will try to submit that message to me via any number of technologies. Simple &lt;a title="wikipedia.org" href="http://en.wikipedia.org/wiki/Publish/subscribe"&gt;pub/sub&lt;/a&gt; [wikipedia.org] message queues could be implemented here to alleviate my need to continually go to Twitter and say: &amp;#8220;Has Stephen Hawking said anything new yet? *millisecond pause* Has Stephen Hawking said anything new yet? *millisecond pause* &amp;#8230;&amp;#8221; ad infinitum.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;And yet&amp;#8230;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;That&amp;#8217;s not easy to do on a large scale. A persistent connection has to be in place between publisher and subscriber. Twitter would have to have a huge number of low-traffic connections open. (Hopefully only one per subscriber, not one per publisher/subscriber combination.) Then, on the server side, they&amp;#8217;d have to have a routing system to track who&amp;#8217;s following what, invert that information, and blast out a message to all followers whenever there was an update. This is all quite feasible, but it&amp;#8217;s quite different from the classic HTTP model.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s been done before, though. Remember &lt;a title="wikipedia.org" href="http://en.wikipedia.org/wiki/Push_technology"&gt;Push technology&lt;/a&gt; [wikipedia.org]? That&amp;#8217;s what this is. PointCast &lt;a title="cnet.com" href="http://news.cnet.com/2100-1023-237059.html"&gt;sent their final news/stock push message&lt;/a&gt; [cnet.com] in February 2000. There&amp;#8217;s more support for &amp;#8220;push&amp;#8221; in HTML5, incidentally.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Ahhh yes, I remember PointCast well. One of the early darlings of the dot-com era. This reply points at some new hope:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;For messaging architectures (like, say, the internet), the pattern is usually described as &amp;#8220;Publish/Subscribe&amp;#8221;. All serious messaging protocols support it (XMPP, AMQP, etc.) and some are dedicated to it (PubSubHubbub). The basic problem with using it the whole way to the client is that many clients are run in environments where it is impractical to run a server which makes recieving inbound connections difficult.&lt;/p&gt;
&lt;p&gt;There are fairly good solutions to that, mostly involving using a proxy for the client somewhere that can run a server which holds messages, and then having the client call the proxy (rather than the message sources) to get all the pending messages together.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://www.soabloke.com/2010/01/11/the-year-of-living-asynchronously/"&gt;Keep watching&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://www.soabloke.com/2008/08/19/push-versus-pull/' rel='bookmark' title='Permanent Link: Push versus Pull'&gt;Push versus Pull&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.soabloke.com/2009/04/21/56-architecture-case-studies/' rel='bookmark' title='Permanent Link: 56 Architecture Case Studies'&gt;56 Architecture Case Studies&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.soabloke.com/2010/01/11/the-year-of-living-asynchronously/' rel='bookmark' title='Permanent Link: The Year of Living Asynchronously'&gt;The Year of Living Asynchronously&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=ed_VVhDYBOE:YrOqqYUSW_c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=ed_VVhDYBOE:YrOqqYUSW_c:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=ed_VVhDYBOE:YrOqqYUSW_c:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?i=ed_VVhDYBOE:YrOqqYUSW_c:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=ed_VVhDYBOE:YrOqqYUSW_c:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?i=ed_VVhDYBOE:YrOqqYUSW_c:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/soabloke/~4/ed_VVhDYBOE" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.soabloke.com/2010/08/04/beautiful-data-polling/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://www.soabloke.com/2010/08/04/beautiful-data-polling/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://www.soabloke.com/2010/08/04/beautiful-data-polling/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Saul Caganoff</name>
						<uri>http://www.soabloke.com/saulc/</uri>
					</author>
		<title type="html"><![CDATA[Short Film Finalist]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/soabloke/~3/VNTPYF_bDFE/" />
		<id>http://www.soabloke.com/?p=268</id>
		<updated>2010-07-12T09:09:26Z</updated>
		<published>2010-05-28T05:45:28Z</published>
		<category scheme="http://www.soabloke.com" term="personal" />		<summary type="html"><![CDATA[My daughter Ruby and her friends are finalists in Shoot It &#8217;10. The short film is called &#8220;The Human Disposition&#8221;. Check it out and please vote! Update: Ruby and Georgina won the &#8220;Peoples Choice&#8221; category! Thanks to everyone who voted. No related posts.


No related posts.]]></summary>
		<content type="html" xml:base="http://www.soabloke.com/2010/05/28/short-film-finalist/">&lt;p&gt;My daughter Ruby and her friends are finalists in &lt;a href="http://youthweek.com/2010/comps/finalists-10/shootit-junior-10" target="_blank"&gt;Shoot It &amp;#8217;10&lt;/a&gt;. The short film is called &amp;#8220;The Human Disposition&amp;#8221;. &lt;a href="http://youthweek.com/2010/comps/finalists-10/shootit-junior-10" target="_blank"&gt;Check it out&lt;/a&gt; and please vote!&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&lt;strong&gt;Update:&lt;/strong&gt; &lt;span style="color: #000000;"&gt;Ruby and Georgina won the &amp;#8220;Peoples Choice&amp;#8221; category! Thanks to everyone who voted.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;


&lt;p&gt;No related posts.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=VNTPYF_bDFE:nFEdr6Odyks:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=VNTPYF_bDFE:nFEdr6Odyks:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=VNTPYF_bDFE:nFEdr6Odyks:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?i=VNTPYF_bDFE:nFEdr6Odyks:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=VNTPYF_bDFE:nFEdr6Odyks:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?i=VNTPYF_bDFE:nFEdr6Odyks:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/soabloke/~4/VNTPYF_bDFE" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.soabloke.com/2010/05/28/short-film-finalist/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.soabloke.com/2010/05/28/short-film-finalist/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.soabloke.com/2010/05/28/short-film-finalist/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Saul Caganoff</name>
						<uri>http://www.soabloke.com/saulc/</uri>
					</author>
		<title type="html"><![CDATA[Privacy, Censorship and the new Oligarchs]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/soabloke/~3/HJuQWLNMD4w/" />
		<id>http://www.soabloke.com/?p=263</id>
		<updated>2010-05-25T10:16:18Z</updated>
		<published>2010-05-25T10:01:31Z</published>
		<category scheme="http://www.soabloke.com" term="www" /><category scheme="http://www.soabloke.com" term="anarchy" /><category scheme="http://www.soabloke.com" term="apple" /><category scheme="http://www.soabloke.com" term="censorship" /><category scheme="http://www.soabloke.com" term="conroy" /><category scheme="http://www.soabloke.com" term="facebook" /><category scheme="http://www.soabloke.com" term="filter" /><category scheme="http://www.soabloke.com" term="google" /><category scheme="http://www.soabloke.com" term="internet" /><category scheme="http://www.soabloke.com" term="oligarch" /><category scheme="http://www.soabloke.com" term="privacy" /><category scheme="http://www.soabloke.com" term="web" />		<summary type="html"><![CDATA[I&#8217;m crotchety enough to have used the world wide web in the early nineties and before that, Usenet in the eighties. Back then the internet was a wild west where anarchy was viewed as a benefit. Openness and &#8220;freedom&#8221; &#8211; however you defined it &#8211; was ruthlessly defended, often to lunatic proportions. Back then the [...]


No related posts.]]></summary>
		<content type="html" xml:base="http://www.soabloke.com/2010/05/25/privacy-censorship-and-the-new-oligarchs/">&lt;p&gt;I&amp;#8217;m crotchety enough to have used the world wide web in the early nineties and before that, Usenet in the eighties. Back then the internet was a wild west where anarchy was viewed as a benefit. Openness and &amp;#8220;freedom&amp;#8221; &amp;#8211; however you defined it &amp;#8211; was ruthlessly defended, often to lunatic proportions. Back then the press blamed everything bad on the internet and privacy was a big issue. We seem to have come a long way from that world, but still the press blames everything bad on the internet and privacy is still a big issue.&lt;/p&gt;
&lt;p&gt;Even bigger in the last few weeks with the furore over &lt;a href="http://www.abc.net.au/news/stories/2010/05/25/2908208.htm" target="_blank"&gt;Facebook&amp;#8217;s antics&lt;/a&gt; and Google&amp;#8217;s &lt;a href="http://www.abc.net.au/news/stories/2010/05/13/2898947.htm" target="_blank"&gt;drive-by privacy violations&lt;/a&gt;. A couple of good commentaries on this have been the Background Briefing report on the &amp;#8220;&lt;a href="http://www.abc.net.au/rn/backgroundbriefing/stories/2010/2896235.htm" target="_blank"&gt;Privacy Paradox&lt;/a&gt;&amp;#8221; and Nicolas Carr&amp;#8217;s observations on &lt;a href="http://www.roughtype.com/archives/2010/05/facebooks_ident.php" target="_blank"&gt;Facebook&amp;#8217;s identity lock-in&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It is not surprising that the anarchy of the early web led to the building of “walled gardens” as a form of protection (this was AOL’s first web business model). It’s perhaps also not surprising that some of those walled gardens have become fortresses where the new Oligarchs exploit their netizens as “bonded labour”. Meet the new Oligarchs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Steve Jobs rules fortress AppStore. He is chief censor and code reviewer and wants to protect our iP* user experience. All for our own good.&lt;/li&gt;
&lt;li&gt;Sergei and Larry rule fortress Google. They have the largest correlation engine on the planet. They “[W]on’t be Evil” but we must trust that they know where lies the boundary. Google only wants to improve our search experience. All for our own good.&lt;/li&gt;
&lt;li&gt;Mark Zuckerberg rules fortress Facebook. He generally only opens his mouth to change feet, but lately says he wants to unburden us of all this privacy nonsense. Privacy is just so 20th century. All for our own good.&lt;/li&gt;
&lt;li&gt;Stephen Conroy wants to rule &lt;a href="http://www.smh.com.au/opinion/society-and-culture/if-australia-censors-the-web-what-will-the-others-do-20100511-uu5w.html" target="_blank"&gt;fortress Australia&lt;/a&gt;. Protecting us all from internet nasties by throwing a big censorship net around the country – just like &lt;a href="http://en.wikipedia.org/wiki/Internet_censorship_in_the_People's_Republic_of_China" target="_blank"&gt;China&lt;/a&gt; and &lt;a href="http://www.reuters.com/article/idUSTRE64I29P20100519" target="_blank"&gt;Pakistan&lt;/a&gt;. All for our own good.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The problem with these new Oligarchs is that they purport to have our best interests at heart, but there is no openness or recourse, no rationale as to how they will separate our interests from their own. Google is too protective of their information assets and conveniently forgets to tell us about much of what they gather. Facebook views our private data too much as their own property to be onsold to others without our knowledge. AppStore acceptance or rejection appears arbitrary and fickle. As for the Net Filter, &lt;a href="http://news.smh.com.au/breaking-news-technology/australia-minister-attacks-creepy-google-in-web-row-20100525-waby.html" target="_blank"&gt;Conroy claims&lt;/a&gt; that a democratically elected government is more trustworthy than Facebook &amp;amp; Google &amp;#8211; but there is nothing so undemocratic as a secret blacklist.&lt;/p&gt;
&lt;p&gt;The new Oligarchs have built their fortresses on the architecture of the internet. Capitalising on &lt;a href="http://en.wikipedia.org/wiki/Metcalfe's_law" target="_blank"&gt;Metcalfe’s law&lt;/a&gt; to build unbelievably valuable networks. But Metcalfe’s law also applies to our personal information. The value of any one piece of data about us is proportional to the square of all the other pieces of information they can correlate it with.&lt;/p&gt;
&lt;p&gt;Is it all bad? Not really, the lesson of the web is that networks can provide powerful advantages. The Google search engine is testament to the power of massive collaborative filtering. Social networks such as Facebook have opened up wonderful social landscapes. The iP* AppStore has revolutionised the way we go mobile. To some extent this is also what was bought-into when we smothered all internet business models that involved payment. Web users want everything free but data centres, unlike clouds, don’t build themselves. The only currency we have allowed on the Web is that which can be obtained covertly. The real danger arises when power becomes so concentrated and subject to the whims of a few individuals. This is the lesson in the architecture of the underlying packet-switched internet.&lt;/p&gt;
&lt;p&gt;From the old anarchic internet to the new oligarchic internet &amp;#8211; everything and nothing has changed. Perhaps we should feel a lot less safe now when such people have our own interests so much at heart.&lt;/p&gt;


&lt;p&gt;No related posts.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=HJuQWLNMD4w:ijClIjXcRv0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=HJuQWLNMD4w:ijClIjXcRv0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=HJuQWLNMD4w:ijClIjXcRv0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?i=HJuQWLNMD4w:ijClIjXcRv0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=HJuQWLNMD4w:ijClIjXcRv0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?i=HJuQWLNMD4w:ijClIjXcRv0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/soabloke/~4/HJuQWLNMD4w" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.soabloke.com/2010/05/25/privacy-censorship-and-the-new-oligarchs/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://www.soabloke.com/2010/05/25/privacy-censorship-and-the-new-oligarchs/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://www.soabloke.com/2010/05/25/privacy-censorship-and-the-new-oligarchs/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Saul Caganoff</name>
						<uri>http://www.soabloke.com/saulc/</uri>
					</author>
		<title type="html"><![CDATA[Service Providers and One-Way MEPs]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/soabloke/~3/ObGtxJoKG6E/" />
		<id>http://www.soabloke.com/?p=259</id>
		<updated>2010-05-07T07:47:33Z</updated>
		<published>2010-05-07T07:40:27Z</published>
		<category scheme="http://www.soabloke.com" term="web-services" /><category scheme="http://www.soabloke.com" term="consumer" /><category scheme="http://www.soabloke.com" term="jms" /><category scheme="http://www.soabloke.com" term="mep" /><category scheme="http://www.soabloke.com" term="messaging" /><category scheme="http://www.soabloke.com" term="organization" /><category scheme="http://www.soabloke.com" term="provider" /><category scheme="http://www.soabloke.com" term="soa" />		<summary type="html"><![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>]]></summary>
		<content type="html" xml:base="http://www.soabloke.com/2010/05/07/service-providers-and-one-way-meps/">&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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?&lt;/p&gt;
&lt;p&gt;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 &lt;a href="http://www.w3.org/TR/2007/REC-wsdl20-adjuncts-20070626/#patterns" target="_blank"&gt;WSDL standard&lt;/a&gt; for more confusing details).&lt;/p&gt;
&lt;p&gt;We really need to look beyond the technology to find the answer and the &lt;a href="http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/" target="_blank"&gt;Web Services Glossary&lt;/a&gt; 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 &lt;a href="http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/#provideragent" target="_blank"&gt;Provider Agent&lt;/a&gt; and a &lt;a href="http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/#requesteragent" target="_blank"&gt;Requester Agent&lt;/a&gt; operate on behalf of a &lt;a href="http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/#providerentity" target="_blank"&gt;Provider Entity&lt;/a&gt; and a &lt;a href="http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/#requesterentity" target="_blank"&gt;Requestor Entity&lt;/a&gt; respectively.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;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'&gt;Why Service Consumers and Service Providers should never directly communicate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;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'&gt;Waiting for the great leap forward&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.soabloke.com/2008/11/11/talk-to-the-hand/' rel='bookmark' title='Permanent Link: Talk to the Hand'&gt;Talk to the Hand&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=ObGtxJoKG6E:R5VqkX0gky0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=ObGtxJoKG6E:R5VqkX0gky0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=ObGtxJoKG6E:R5VqkX0gky0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?i=ObGtxJoKG6E:R5VqkX0gky0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=ObGtxJoKG6E:R5VqkX0gky0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?i=ObGtxJoKG6E:R5VqkX0gky0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/soabloke/~4/ObGtxJoKG6E" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.soabloke.com/2010/05/07/service-providers-and-one-way-meps/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://www.soabloke.com/2010/05/07/service-providers-and-one-way-meps/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://www.soabloke.com/2010/05/07/service-providers-and-one-way-meps/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Saul Caganoff</name>
						<uri>http://www.soabloke.com/saulc/</uri>
					</author>
		<title type="html"><![CDATA[A Crap Customer Experience]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/soabloke/~3/yXILAJ8ytrc/" />
		<id>http://www.soabloke.com/?p=253</id>
		<updated>2010-05-04T07:45:35Z</updated>
		<published>2010-05-03T22:10:32Z</published>
		<category scheme="http://www.soabloke.com" term="integration" /><category scheme="http://www.soabloke.com" term="fail" /><category scheme="http://www.soabloke.com" term="self-service" />		<summary type="html"><![CDATA[Customer self service is usually just secret code for pushing cost and effort onto the customer, but sometimes it can be &#8220;win-win&#8221; where the provider saves money and the customer avoids dealing with the dreaded call centre. But I recently had an experience where poor integration leads to a &#8220;lose-lose&#8221; situation. Qantas airways offers codeshare [...]


No related posts.]]></summary>
		<content type="html" xml:base="http://www.soabloke.com/2010/05/04/a-crap-customer-experience/">&lt;p&gt;Customer self service is usually just secret code for pushing cost and effort onto the customer, but sometimes it can be &amp;#8220;win-win&amp;#8221; where the provider saves money and the customer avoids dealing with the dreaded call centre. But I recently had an experience where poor integration leads to a &amp;#8220;lose-lose&amp;#8221; situation.&lt;/p&gt;
&lt;p&gt;Qantas airways offers codeshare flights with its budget subsidiary Jetstar. The booking is with Qantas, the flight number is a Qantas flight number, but the plane is operated by Jetstar.  Sometimes these can&amp;#8217;t be avoided and I recently had to take this option.&lt;/p&gt;
&lt;p&gt;Overall I like online web check-in. It seems to save me time and gives some autonomy over seat selection. When I try this with my codeshare flight, I naturally go to the Qantas website to check-in. The &amp;#8220;manage my booking&amp;#8221; page offers me the usual facilities, except the &amp;#8220;check-in now&amp;#8221; button is very hard to find. There is no indication that I&amp;#8217;m in the wrong place, perhaps I&amp;#8217;m just not looking hard enough, or I&amp;#8217;m just dumb.&lt;/p&gt;
&lt;p&gt;A call to the Qantas helpdesk confirmed that indeed I need to check-in on the Jetstar website. Thanks for telling me. But &amp;#8211; get this &amp;#8211; I have to use a special booking reference number that the operator gives me over the phone. The reference number supplied on my Qantas ticket won&amp;#8217;t work.&lt;/p&gt;
&lt;p&gt;Ok, so over to the Jetstar website and nothing works! I can&amp;#8217;t even get in, but apart from blinking at me when I hit &amp;#8220;enter&amp;#8221; there is no indication of the problem. I call the Jetstar helpdesk (yes, I&amp;#8217;m stubborn) and am told to enter my surname in uppercase. Apparently when Qantas makes the Jetstar booking my surname is entered in uppercase and the surname field is case sensitive (why?).&lt;/p&gt;
&lt;p&gt;The integration fiasco is now clearer. It seems that when I make a Qantas booking on a codeshare flight, Qantas makes a &amp;#8220;proxy&amp;#8221; booking in their system and a real booking in the Jetstar system. But all the details given to me refer to the fake booking, not to the real booking. I&amp;#8217;m not even aware there are two bookings until I persist with online check-in (which most wouldn&amp;#8217;t).&lt;/p&gt;
&lt;p&gt;When faced with an integration problem most people take one of two approaches: either make the user experience seamless or allow the stitches to show, but give users the tools to navigate the business process. Qantas/Jetstar just ignores the whole problem and leaves its customers dangling. The result is wasted time and frustration for anyone wanting to check-in early, plus additional cost to Qantas/Jetstar in helpdesk calls.&lt;/p&gt;
&lt;p&gt;The solution to this is mind-bogglingly trivial. The &amp;#8220;manage my booking&amp;#8221; web page could offer me the usual &amp;#8220;check-in now&amp;#8221; button hyperlinked to the Jetstar site and containing the Jetstar booking reference as a parameter. Hell, they could even uppercase my surname on the way!&lt;/p&gt;


&lt;p&gt;No related posts.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=yXILAJ8ytrc:ceZAyJtiBvE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=yXILAJ8ytrc:ceZAyJtiBvE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=yXILAJ8ytrc:ceZAyJtiBvE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?i=yXILAJ8ytrc:ceZAyJtiBvE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=yXILAJ8ytrc:ceZAyJtiBvE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?i=yXILAJ8ytrc:ceZAyJtiBvE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/soabloke/~4/yXILAJ8ytrc" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.soabloke.com/2010/05/04/a-crap-customer-experience/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://www.soabloke.com/2010/05/04/a-crap-customer-experience/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://www.soabloke.com/2010/05/04/a-crap-customer-experience/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Saul Caganoff</name>
						<uri>http://www.soabloke.com/saulc/</uri>
					</author>
		<title type="html"><![CDATA[Top Down Procurement]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/soabloke/~3/lYRpHN4Iy68/" />
		<id>http://www.soabloke.com/?p=241</id>
		<updated>2010-04-20T09:57:10Z</updated>
		<published>2010-04-20T09:57:10Z</published>
		<category scheme="http://www.soabloke.com" term="it-management" /><category scheme="http://www.soabloke.com" term="applications" /><category scheme="http://www.soabloke.com" term="architecture" /><category scheme="http://www.soabloke.com" term="bpm" /><category scheme="http://www.soabloke.com" term="management" /><category scheme="http://www.soabloke.com" term="services" />		<summary type="html"><![CDATA[Application procurement is usually done "bottom up" - resulting in a poor fit to requirements. "Top down" is a better idea in the long-term, but does have its risks.


Related posts:<ol><li><a href='http://www.soabloke.com/2008/03/12/leverage-and-vantage/' rel='bookmark' title='Permanent Link: Leverage and Vantage'>Leverage and Vantage</a></li>
</ol>]]></summary>
		<content type="html" xml:base="http://www.soabloke.com/2010/04/20/top-down-procurement/">&lt;p&gt;Imagine you have a unique business offering that needs IT delivery and support. There are two approaches you can take to do this:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bottom Up:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Determine your business requirements.&lt;/li&gt;
&lt;li&gt;Choose an application which you think best fits those requirements.&lt;/li&gt;
&lt;li&gt;Spend a lot of money customizing the application to better fit your requirements and integrating it to other systems.&lt;/li&gt;
&lt;li&gt;Deploy the application.&lt;/li&gt;
&lt;li&gt;Hope you support the business adequately within time and budget.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Top Down:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Map out the business processes to support your offering.&lt;/li&gt;
&lt;li&gt;Determine the services required to support the business processes.&lt;/li&gt;
&lt;li&gt;For services that already exist &amp;#8211; do nothing.&lt;/li&gt;
&lt;li&gt;For new services &amp;#8211; build or buy applications to support those services.&lt;/li&gt;
&lt;li&gt;Implement the processes.&lt;/li&gt;
&lt;li&gt;Hope&amp;#8230;.(ditto).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Often &amp;#8220;bottom up&amp;#8221; is the default approach, even though &amp;#8220;top down&amp;#8221; can be more cost-effective and provide a closer fit to your business requirements. However &amp;#8220;top down&amp;#8221; comes with some risk, because most off-the-shelf applications are built to support &amp;#8220;bottom up&amp;#8221; acquisition. You might end up having to do integration anyway.&lt;/p&gt;
&lt;p&gt;As the world moves toward service portfolio management rather than application portfolio management, vendors move towards offering services rather than applications and the &amp;#8220;top down&amp;#8221; approach will become more widespread and more viable. That will be a good thing, I think.&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://www.soabloke.com/2008/03/12/leverage-and-vantage/' rel='bookmark' title='Permanent Link: Leverage and Vantage'&gt;Leverage and Vantage&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=lYRpHN4Iy68:zSbCQB3_rq4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=lYRpHN4Iy68:zSbCQB3_rq4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=lYRpHN4Iy68:zSbCQB3_rq4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?i=lYRpHN4Iy68:zSbCQB3_rq4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=lYRpHN4Iy68:zSbCQB3_rq4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?i=lYRpHN4Iy68:zSbCQB3_rq4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/soabloke/~4/lYRpHN4Iy68" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.soabloke.com/2010/04/20/top-down-procurement/#comments" thr:count="2" />
		<link rel="replies" type="application/atom+xml" href="http://www.soabloke.com/2010/04/20/top-down-procurement/feed/atom/" thr:count="2" />
		<thr:total>2</thr:total>
	<feedburner:origLink>http://www.soabloke.com/2010/04/20/top-down-procurement/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Saul Caganoff</name>
						<uri>http://www.soabloke.com/saulc/</uri>
					</author>
		<title type="html"><![CDATA[An Hypothesis]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/soabloke/~3/sNtg-Vv-PBM/" />
		<id>http://www.soabloke.com/?p=233</id>
		<updated>2010-02-16T07:27:35Z</updated>
		<published>2010-02-16T07:26:19Z</published>
		<category scheme="http://www.soabloke.com" term="architecture" /><category scheme="http://www.soabloke.com" term="enterprise-architecture" /><category scheme="http://www.soabloke.com" term="standards" />		<summary type="html"><![CDATA[Can Enterprise Architecture deliver better productivity and success?


Related posts:<ol><li><a href='http://www.soabloke.com/2009/01/12/11-dont-raise-the-drawbridge/' rel='bookmark' title='Permanent Link: 11. Don&#8217;t Raise the Drawbridge'>11. Don&#8217;t Raise the Drawbridge</a></li>
<li><a href='http://www.soabloke.com/2009/06/16/the-value-of-enterprise-architecture/' rel='bookmark' title='Permanent Link: The Value of Enterprise Architecture'>The Value of Enterprise Architecture</a></li>
</ol>]]></summary>
		<content type="html" xml:base="http://www.soabloke.com/2010/02/16/an-hypothesis/">&lt;p&gt;Enterprise IT is badly broken in most of it&amp;#8217;s current incarnations. This is due to a wide range of influences &amp;#8211; organizational, political and technical. I think there are ways to increase productivity and reduce cost and risk by changing enterprise IT practices towards:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;A collaborative business and IT culture that owns and manages risk rather than just outsource and lose control.&lt;/li&gt;
&lt;li&gt;An Enterprise IT strategy and Architecture that provides &amp;#8220;cohesion&amp;#8221; so that smaller, agile projects can deliver strategic value.&lt;/li&gt;
&lt;li&gt;Using (and developing in-house) development frameworks that enhance productivity by:
&lt;ul&gt;
&lt;li&gt;encouraging in-house standards and best practices,&lt;/li&gt;
&lt;li&gt;operating at a high level of abstraction &amp;#8211; business processes, services, events, rules&lt;/li&gt;
&lt;li&gt;foster developer skills beyond &amp;#8220;commodity&amp;#8221; levels.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://www.soabloke.com/2009/01/12/11-dont-raise-the-drawbridge/' rel='bookmark' title='Permanent Link: 11. Don&amp;#8217;t Raise the Drawbridge'&gt;11. Don&amp;#8217;t Raise the Drawbridge&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.soabloke.com/2009/06/16/the-value-of-enterprise-architecture/' rel='bookmark' title='Permanent Link: The Value of Enterprise Architecture'&gt;The Value of Enterprise Architecture&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=sNtg-Vv-PBM:rPW6YtVRTig:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=sNtg-Vv-PBM:rPW6YtVRTig:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=sNtg-Vv-PBM:rPW6YtVRTig:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?i=sNtg-Vv-PBM:rPW6YtVRTig:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=sNtg-Vv-PBM:rPW6YtVRTig:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?i=sNtg-Vv-PBM:rPW6YtVRTig:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/soabloke/~4/sNtg-Vv-PBM" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.soabloke.com/2010/02/16/an-hypothesis/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.soabloke.com/2010/02/16/an-hypothesis/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.soabloke.com/2010/02/16/an-hypothesis/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Saul Caganoff</name>
						<uri>http://www.soabloke.com/saulc/</uri>
					</author>
		<title type="html"><![CDATA[The Year of Living Asynchronously]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/soabloke/~3/Q4tc_cV0vJI/" />
		<id>http://www.soabloke.com/?p=222</id>
		<updated>2010-01-11T12:22:27Z</updated>
		<published>2010-01-10T20:51:55Z</published>
		<category scheme="http://www.soabloke.com" term="architecture" /><category scheme="http://www.soabloke.com" term="asynchronous" /><category scheme="http://www.soabloke.com" term="cep" /><category scheme="http://www.soabloke.com" term="eda" /><category scheme="http://www.soabloke.com" term="events" /><category scheme="http://www.soabloke.com" term="loose-coupling" /><category scheme="http://www.soabloke.com" term="messaging" /><category scheme="http://www.soabloke.com" term="xmpp" />		<summary type="html"><![CDATA[Asynchronicity is busting out all over the web, and 2010 will be the year of "events". Synchronous SOA services can limit scalability. Move to more asynchronous service patterns to benefit your solutions.


Related posts:<ol><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>
<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/2008/01/21/what-is-an-esb-and-why-do-i-need-one/' rel='bookmark' title='Permanent Link: What is an ESB and why do I need one?'>What is an ESB and why do I need one?</a></li>
</ol>]]></summary>
		<content type="html" xml:base="http://www.soabloke.com/2010/01/11/the-year-of-living-asynchronously/">&lt;p&gt;Happy New Year! Asynchronicity is busting out all over the web and my prediction is that 2010 will be the year of &amp;#8220;events&amp;#8221;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Of course &lt;a title="Twitter" href="http://twitter.com" target="_blank"&gt;Twitter &lt;/a&gt;has brought The concept of publish/subscribe messaging to the masses and we enjoyed their journey of discovery to the &lt;a title="Scaling Twitter" href="http://highscalability.com/scaling-twitter-making-twitter-10000-percent-faster" target="_blank"&gt;heights of scalability&lt;/a&gt; in 2009.&lt;/li&gt;
&lt;li&gt;&lt;a title="XMPP" href="http://xmpp.org/" target="_blank"&gt;XMPP&lt;/a&gt; has been embraced by the real-time web crowd, most publicly in &lt;a title="Google Wave" href="http://wave.google.com" target="_blank"&gt;Google Wave&lt;/a&gt; but also in other &lt;a href="http://www.olympum.com/future/will-xmpp-be-the-messaging-middleware-for-the-rest-web/" target="_blank"&gt;&amp;#8220;back-web&amp;#8221; contexts&lt;/a&gt; such as &lt;a title="Gnip - relaunching in February 2010" href="http://www.gnip.com/" target="_blank"&gt;Gnip&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a title="Web Sockets in Google Chrome" href="http://blog.chromium.org/2009/12/web-sockets-now-available-in-google.html" target="_blank"&gt;Web sockets&lt;/a&gt; is an experimental feature of HTML 5 which enables push messages directly to web pages.&lt;/li&gt;
&lt;li&gt;New frameworks for event-driven programming are emerging such as &lt;a title="Ruby EventMachine" href="http://rubyeventmachine.com/" target="_blank"&gt;EventMachine&lt;/a&gt;, &lt;a title="Twisted" href="http://twistedmatrix.com/" target="_blank"&gt;Twisted&lt;/a&gt;, &lt;a title="Node.js" href="http://nodejs.org/" target="_blank"&gt;Node.js&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;In 2009 every major software vendor had a CEP product.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the meantime, SOA has become so damn synchronous. But it doesn&amp;#8217;t have to be!&lt;/p&gt;
&lt;p&gt;One of the fundamental tennets of SOA is that reducing coupling between systems makes them more scalable, reliable and agile (easier to change). SOA goes a long way to reducing coupling by providing a contract-based, platform independent mechanism for service providers and consumers to cooperate. However I still think we can improve on current SOA practices in further reducing coupling.&lt;/p&gt;
&lt;p&gt;Coupling still intrudes into many aspects of how SOA is practiced today:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HTTP transports tie us to a regimen of &lt;a title="The Power of Later" href="http://www.soabloke.com/2009/05/05/the-power-of-later/" target="_blank"&gt;synchronous request-reply with timeouts&lt;/a&gt; which creates tight couplings between provider and consumer. Even though one-way MEPs were an original feature of SOAP, &lt;a title="SOAP/JMS Binding" href="http://www.w3.org/TR/2009/CR-soapjms-20090604/" target="_blank"&gt;message-oriented transports&lt;/a&gt; remain the forgotten orphan of web-services standards.&lt;/li&gt;
&lt;li&gt;Many SOA services are conceived, implemented and maintained as point-to-point entities&amp;#8230;providers and consumers forced into lock-step due to inadequate versioning and lifecycle management.&lt;/li&gt;
&lt;li&gt;Process orchestration layers often form a bridge between service providers and consumers, which on the face of it provides some level of indirection. But in many cases orchestration provides limited value and may actually serve to increase the overall system coupling.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In many cases we can achieve the benefits of service orientation to much greater effect by exercising a little scepticism toward some of these &lt;a title="Shibboleth" href="http://en.wikipedia.org/wiki/Shibboleth" target="_blank"&gt;shibboleths&lt;/a&gt; of the web services world and embracing a more asynchronous, event-oriented way of building processes. So this year, embrace your asynchronous side and do something to reduce your system coupling: build some pub/sub services, learn about &lt;a title="Complex Events" href="http://complexevents.com/" target="_blank"&gt;Event Processing&lt;/a&gt; or &lt;a title="Event Driven Architecture" href="http://en.wikipedia.org/wiki/Event-driven_architecture" target="_blank"&gt;Event-Driven Architecture&lt;/a&gt;, try one of the technologies I pointed to above.&lt;/p&gt;
&lt;p&gt;Just as developers should embrace multiple languages to broaden their skills, so should architects embrace and be fluent in multiple &lt;a title="Characterising Architectural Styles" href="http://www.soabloke.com/2009/10/26/characterising-architectural-styles-ii-state/" target="_blank"&gt; architectural styles&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://www.soabloke.com/2008/01/31/the-benfits-of-an-esb/' rel='bookmark' title='Permanent Link: The benefits of an ESB'&gt;The benefits of an ESB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.soabloke.com/2009/04/28/ian-robinson-on-coupling/' rel='bookmark' title='Permanent Link: Ian Robinson on Coupling'&gt;Ian Robinson on Coupling&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.soabloke.com/2008/01/21/what-is-an-esb-and-why-do-i-need-one/' rel='bookmark' title='Permanent Link: What is an ESB and why do I need one?'&gt;What is an ESB and why do I need one?&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=Q4tc_cV0vJI:Ifk-rKaAHJ0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=Q4tc_cV0vJI:Ifk-rKaAHJ0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=Q4tc_cV0vJI:Ifk-rKaAHJ0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?i=Q4tc_cV0vJI:Ifk-rKaAHJ0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=Q4tc_cV0vJI:Ifk-rKaAHJ0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?i=Q4tc_cV0vJI:Ifk-rKaAHJ0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/soabloke/~4/Q4tc_cV0vJI" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.soabloke.com/2010/01/11/the-year-of-living-asynchronously/#comments" thr:count="2" />
		<link rel="replies" type="application/atom+xml" href="http://www.soabloke.com/2010/01/11/the-year-of-living-asynchronously/feed/atom/" thr:count="2" />
		<thr:total>2</thr:total>
	<feedburner:origLink>http://www.soabloke.com/2010/01/11/the-year-of-living-asynchronously/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Saul Caganoff</name>
						<uri>http://www.soabloke.com/saulc/</uri>
					</author>
		<title type="html"><![CDATA[Reductio ad Lucidus]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/soabloke/~3/ke_ZBtd_K4Y/" />
		<id>http://www.soabloke.com/?p=215</id>
		<updated>2009-11-11T00:51:15Z</updated>
		<published>2009-11-11T00:51:15Z</published>
		<category scheme="http://www.soabloke.com" term="architecture" /><category scheme="http://www.soabloke.com" term="cep" /><category scheme="http://www.soabloke.com" term="eai" /><category scheme="http://www.soabloke.com" term="eda" /><category scheme="http://www.soabloke.com" term="patterns" /><category scheme="http://www.soabloke.com" term="soa" />		<summary type="html"><![CDATA[In a recent comment on my Architectural Characteristics posts, Andy astutely observes that I may be &#8220;shoe-horning&#8221;. By this I assume he means that I&#8217;m taking a large and rather lumpy concept and trying to squeeze it into a smaller and more uniformly shaped container while risking some distortion in the process. I&#8217;ll admit that [...]


Related posts:<ol><li><a href='http://www.soabloke.com/2009/10/26/characterising-architectural-styles-ii-state/' rel='bookmark' title='Permanent Link: Characterising Architectural Styles II &#8211; State'>Characterising Architectural Styles II &#8211; State</a></li>
<li><a href='http://www.soabloke.com/2010/01/11/the-year-of-living-asynchronously/' rel='bookmark' title='Permanent Link: The Year of Living Asynchronously'>The Year of Living Asynchronously</a></li>
</ol>]]></summary>
		<content type="html" xml:base="http://www.soabloke.com/2009/11/11/reductio-ad-lucidus/">&lt;p&gt;In a recent comment on my &lt;a title="Characterising Architectural Styles" href="http://www.soabloke.com/?s=Characterising+Architectural+Styles" target="_blank"&gt;Architectural Characteristics posts&lt;/a&gt;, Andy &lt;a title="Andy's Comment" href="http://www.soabloke.com/2009/10/26/characterising-architectural-styles-ii-state/#comment-625" target="_blank"&gt;astutely observes&lt;/a&gt; that I may be &amp;#8220;shoe-horning&amp;#8221;. By this I assume he means that I&amp;#8217;m taking a large and rather lumpy concept and trying to squeeze it into a smaller and more uniformly shaped container while risking some distortion in the process. I&amp;#8217;ll admit that in this respect I&amp;#8217;m probably guilty as charged.&lt;/p&gt;
&lt;p&gt;But I should clarify my purpose in doing this. I&amp;#8217;m trying to cut back the various architectural styles under consideration to a simpler form where the essential characteristics can be discerned without confusion from some other non-essential characteristics. So rather than shoehorning, I&amp;#8217;m trying to setup a strawman model which can be used as a starting point for discussion. Or maybe like a physicist I&amp;#8217;m trying to model a very complex phenomenon using linear approximations which explain the broad outlines of the phenomenon at the risk of falling short on some of the details.&lt;/p&gt;
&lt;p&gt;To extend this latter metaphor, I don&amp;#8217;t think it is too much of a stretch to say that the architectural styles I&amp;#8217;m considering could be likened to &amp;#8220;fundamental&amp;#8221; architectural styles and that real-world architectures could be viewed as &amp;#8220;superpositions&amp;#8221; of those fundamental architectures.&lt;/p&gt;
&lt;p&gt;If we consider the simplified forms of EAI and SOA that I describe, each style falls short of representing a real world architecture, but the upside is that the EAI and SOA styles as I describe them are distinct and easily differentiated. So we have a model which provides a way of distinguishing between different styles (via the characteristics I&amp;#8217;ve discussed) but falls short of exactly matching a &amp;#8220;real-world&amp;#8221; architecure.&lt;/p&gt;
&lt;p&gt;If we look at any real-world architecture in recent years, I think we can see a superposition of EAI and SOA concepts. This probably reflects an evolutionary path between the two styles. EAI as practiced in the early noughties had already developed the idea of a normalised data model and technology independent interfaces. These were not standardized, but some of the characteristics of SOA were apparent in what was then called EAI.&lt;/p&gt;
&lt;p&gt;Similarly, EAI was not always about data integration. There was (and is) a distinction between data integration and process integration. EAI techniques could be used to orchestrate processes across multiple systems. This is even closer to the concept of SOA which has at its core the notion of an independent process layer seperate from the service layer.&lt;/p&gt;
&lt;p&gt;Even if we don&amp;#8217;t superpose EAI and SOA into one solution, there are still legitimate ways in which EAI, SOA and EDA coexist within any particular architecture. We can easily imagine a solution in which a business process is orchestrated via SOA services, reference data is synchronised using EAI and overall process state is monitored using EDA techniques such as Event Processing.&lt;/p&gt;
&lt;p&gt;So real-world solution architectures exhibit some overlap between the different architectural styles &amp;#8211; EAI, SOA and EDA. Some of this is due to evolutionary legacies, or due to plain-old confusion between the different styles (e.g. JABOWS as really being EAI). Some of it is also due to legitimate mixing of different styles for different aspects of a solution.&lt;/p&gt;
&lt;p&gt;I think that real-world architectures can benefit from seperating out the &amp;#8220;essence&amp;#8221; of each architectural style and being explicit about how those styles are being applied. Reducing architectural styles to simplified forms clarifies the stucture of a real-world architecture. Not very different from Design Patterns, really.&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://www.soabloke.com/2009/10/26/characterising-architectural-styles-ii-state/' rel='bookmark' title='Permanent Link: Characterising Architectural Styles II &amp;#8211; State'&gt;Characterising Architectural Styles II &amp;#8211; State&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.soabloke.com/2010/01/11/the-year-of-living-asynchronously/' rel='bookmark' title='Permanent Link: The Year of Living Asynchronously'&gt;The Year of Living Asynchronously&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=ke_ZBtd_K4Y:AptSBe0026Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=ke_ZBtd_K4Y:AptSBe0026Q:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=ke_ZBtd_K4Y:AptSBe0026Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?i=ke_ZBtd_K4Y:AptSBe0026Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=ke_ZBtd_K4Y:AptSBe0026Q:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?i=ke_ZBtd_K4Y:AptSBe0026Q:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/soabloke/~4/ke_ZBtd_K4Y" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.soabloke.com/2009/11/11/reductio-ad-lucidus/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.soabloke.com/2009/11/11/reductio-ad-lucidus/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.soabloke.com/2009/11/11/reductio-ad-lucidus/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Saul Caganoff</name>
						<uri>http://www.soabloke.com/saulc/</uri>
					</author>
		<title type="html"><![CDATA[The SOA Manifesto]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/soabloke/~3/ogLjh4lOkPA/" />
		<id>http://www.soabloke.com/?p=210</id>
		<updated>2009-10-26T22:20:16Z</updated>
		<published>2009-10-26T22:20:16Z</published>
		<category scheme="http://www.soabloke.com" term="soa" /><category scheme="http://www.soabloke.com" term="manifesto" />		<summary type="html"><![CDATA[Taking a leaf from the Agile playbook, a group of SOA thought leaders has put together the SOA Manifesto, a succinct list of SOA principles and preferences to guide Service Oriented Architecture. Great work! (I could comment further, but it speaks for itself). Go visit and find out. No related posts.


No related posts.]]></summary>
		<content type="html" xml:base="http://www.soabloke.com/2009/10/27/the-soa-manifesto/">&lt;p&gt;Taking a leaf from the &lt;a title="Agile Manifesto" href="http://agilemanifesto.org/" target="_blank"&gt;Agile playbook&lt;/a&gt;, a group of SOA thought leaders has put together the &lt;a title="SOA Manifesto" href="http://www.soa-manifesto.org/" target="_blank"&gt;SOA Manifesto&lt;/a&gt;, a succinct list of SOA principles and preferences to guide Service Oriented Architecture. Great work!&lt;/p&gt;
&lt;p style="text-align: center;"&gt;(I could comment further, but it speaks for itself).&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;strong&gt;&lt;a title="SOA Manifesto" href="http://www.soa-manifesto.org/" target="_blank"&gt;Go visit and find out.&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;No related posts.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=ogLjh4lOkPA:wVzzyZNaaZc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=ogLjh4lOkPA:wVzzyZNaaZc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=ogLjh4lOkPA:wVzzyZNaaZc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?i=ogLjh4lOkPA:wVzzyZNaaZc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/soabloke?a=ogLjh4lOkPA:wVzzyZNaaZc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/soabloke?i=ogLjh4lOkPA:wVzzyZNaaZc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/soabloke/~4/ogLjh4lOkPA" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.soabloke.com/2009/10/27/the-soa-manifesto/#comments" thr:count="2" />
		<link rel="replies" type="application/atom+xml" href="http://www.soabloke.com/2009/10/27/the-soa-manifesto/feed/atom/" thr:count="2" />
		<thr:total>2</thr:total>
	<feedburner:origLink>http://www.soabloke.com/2009/10/27/the-soa-manifesto/</feedburner:origLink></entry>
	</feed>
