<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/atom10full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" 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>2008-11-21T05:23:34Z</updated>
	<generator uri="http://wordpress.org/" version="2.3.2">WordPress</generator>

	<link rel="alternate" type="text/html" href="http://www.soabloke.com" />
	<id>http://www.soabloke.com/feed/atom/</id>
	

			<link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-nd/3.0/" /><logo>http://creativecommons.org/images/public/somerights20.gif</logo><link rel="self" href="http://feeds.feedburner.com/soabloke" type="application/atom+xml" /><entry>
		<author>
			<name>Saul Caganoff</name>
						<uri>http://www.soabloke.com/saulc/</uri>
					</author>
		<title type="html"><![CDATA[Progressive Data Constraints]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/soabloke/~3/460383819/" />
		<id>http://www.soabloke.com/2008/11/21/progressive-data-constraints/</id>
		<updated>2008-11-21T05:23:34Z</updated>
		<published>2008-11-21T05:17:03Z</published>
		<category scheme="http://www.soabloke.com" term="bpm" /><category scheme="http://www.soabloke.com" term="cad" /><category scheme="http://www.soabloke.com" term="data" /><category scheme="http://www.soabloke.com" term="distributed" /><category scheme="http://www.soabloke.com" term="rules" /><category scheme="http://www.soabloke.com" term="transactions" />		<summary type="html"><![CDATA[As a follow up to my last post, Richard Veryard described the concept of Post Before Processing whereby rules are applied once you have safely captured the initial information. This is a good way of managing unstructured or semi- structured data and it reminded me of other cases where data is progressively constrained and or [...]


Related posts:<ol><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/2008/11/21/progressive-data-constraints/">&lt;p&gt;As a follow up to &lt;a href="http://www.soabloke.com/2008/11/11/talk-to-the-hand/" title="Talk to the Hand" target="_blank"&gt;my last post&lt;/a&gt;, Richard Veryard described the concept of &lt;a href="http://rvsoapbox.blogspot.com/2008/11/post-before-processing.html" target="_blank" title="Post Before Processing"&gt;Post Before Processing&lt;/a&gt; whereby rules are applied once you have safely captured the initial information. This is a good way of managing unstructured or semi- structured data and it reminded me of other cases where data is progressively constrained and or enriched during processing.&lt;/p&gt;
&lt;p&gt;Content management systems use this technique at the unstructured end of the spectrum where source and draft content is pulled into the system from the &amp;#8220;jungle&amp;#8221;  and then progressively edited, enriched, reviewed &lt;em&gt;etc&lt;/em&gt; until the content is published. Programmers will be familiar with this in the way that source code is progressively authored, compiled, unit tested and integrated via source code control (plus a bunch of QA rules and processes).&lt;/p&gt;
&lt;p&gt;Many computer-aided design applications also provide this ability to impose different rules through the lifecycle of a process. Many years ago I worked on a CAD application for &lt;a href="http://www.spatialinfo.com/products.htm" title="SpatialInfo" target="_blank"&gt;outside plant management&lt;/a&gt; for Telcos which had a very interesting and powerful long transaction facility. Normal mode representing the current state of the network enforced an array of data integrity and  business rules - such as what cables could be connected to each other and via what type of openable joints &lt;em&gt;etc&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;In the design mode, different rules are in place so that model items can be edited and temporarily placed into invalid states. This is necessary because of the connected nature of the model (a Telco network) and the fact that the design environment reflects the future state of the network which may not correctly &amp;#8220;interface&amp;#8221; to the current network state. The general mode of operation was multiple design projects created by different network designers who managed the planning and evolution of the network from it&amp;#8217;s current state to some future state. And multiple future states could potentially exist within the system at any point in time. Design projects follow a lifecycle from draft through proposed and into &amp;#8220;as built&amp;#8221;. This progression is accompanied by various rules governing data visibility, completeness and consistency.&lt;/p&gt;
&lt;p&gt;This is a useful model of how to manage data which may be complex, distributed or collaboratively obtained and managed. Effectively building a process around a long transaction which manages transition of data between states of completion or consistency.&lt;/p&gt;
&lt;p&gt;Master Data Management is another topical example of this type of pattern. In this scenario data is distributed across systems or organizations. Local changes trigger processes which manage the dissemination of changes to bring the various parts of the data into consistency. During this process different business rules may be applied to manage the data in transition.&lt;/p&gt;
&lt;p&gt;I think these concepts can be more generally applicable to SOA design-time governance. For example in the collaborative design of enterprise schemas or services contracts.&lt;/p&gt;
&lt;div&gt;&lt;a href="http://www.addthis.com/bookmark.php" onclick="window.open('http://www.addthis.com/bookmark.php?pub=&amp;amp;url=http%3A%2F%2Fwww.soabloke.com%2F2008%2F11%2F21%2Fprogressive-data-constraints%2F&amp;amp;title=Progressive+Data+Constraints', 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no'); return false;" title="Bookmark using any bookmark manager!" target="_blank"&gt;&lt;img src="http://s3.addthis.com/button1-bm.gif" width="125" height="16" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Related posts:&lt;ol&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/~f/soabloke?a=FBy7N"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=FBy7N" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=IwG5N"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=IwG5N" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=d46En"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=d46En" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=kNlCn"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=kNlCn" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/soabloke/~4/460383819" height="1" width="1"/&gt;</content>
	<feedburner:origLink>http://www.soabloke.com/2008/11/21/progressive-data-constraints/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Saul Caganoff</name>
						<uri>http://www.soabloke.com/saulc/</uri>
					</author>
		<title type="html"><![CDATA[Talk to the Hand]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/soabloke/~3/448878453/" />
		<id>http://www.soabloke.com/2008/11/11/talk-to-the-hand/</id>
		<updated>2008-11-10T22:15:23Z</updated>
		<published>2008-11-10T22:15:23Z</published>
		<category scheme="http://www.soabloke.com" term="bpm" /><category scheme="http://www.soabloke.com" term="error-handling" /><category scheme="http://www.soabloke.com" term="rules" />		<summary type="html"><![CDATA[A common issue  with any kind of BPM implementation or distributed application is the problem of what to do with errors. The most important thing is to direct errors to the correct system or person. &#8220;Correct&#8221; meaning a system that can actually do something about the error.
Take our internal timesheet application as an example. I&#8217;m [...]


Related posts:<ol><li><a href='http://www.soabloke.com/2008/11/21/progressive-data-constraints/' rel='bookmark' title='Permanent Link: Progressive Data Constraints'>Progressive Data Constraints</a></li><li><a href='http://www.soabloke.com/2008/01/13/cost-vs-benefit-occams-razor-for-the-enterprise-architect/' rel='bookmark' title='Permanent Link: Cost vs Benefit - Occam&#8217;s Razor for the Enterprise Architect'>Cost vs Benefit - Occam&#8217;s Razor for the Enterprise Architect</a></li></ol>]]></summary>
		<content type="html" xml:base="http://www.soabloke.com/2008/11/11/talk-to-the-hand/">&lt;p&gt;A common issue  with any kind of BPM implementation or distributed application is the problem of what to do with errors. The most important thing is to direct errors to the correct system or person. &amp;#8220;Correct&amp;#8221; meaning a system that can actually do something about the error.&lt;/p&gt;
&lt;p&gt;Take our internal timesheet application as an example. I&amp;#8217;m sure your system is similar, where an administrator sets up a project along with various business rules such as who can enter time against a project, or what is the valid date range for the project. When I enter my time records, I invariably run afoul of one of these rules - who could have guessed the project would run late?&lt;/p&gt;
&lt;p&gt;The problem arises when I get a (usually very obscure) error message about one of these constraints. I can&amp;#8217;t actually do anything about incorrect dates or ad hoc resource assignments because I don&amp;#8217;t own the project.  So it&amp;#8217;s no good erroring out to &lt;em&gt;me&lt;/em&gt;, the user. The really brain-dead thing is that I have to discard the timesheet entries, send an email to the project owner (whoever that may be) and enter the data later&amp;#8230;if at all. It certainly doesn&amp;#8217;t help collect accurate and timely information.&lt;/p&gt;
&lt;p&gt;A better approach would be to accept the entered data and refer the errors to the project owner who is in a position to do something about it. This person can review the errors and correct the project rules accordingly. Alternatively they can reject the entry because I may have actually broken some valid rules.&lt;/p&gt;
&lt;p&gt;This process flow is much more user friendly and streamlined. It requires a couple of important facilities:&lt;/p&gt;
&lt;p&gt;You need to suspend business rules for part of the process. My timesheet entries initially break the business rules but we don&amp;#8217;t know if that is because I have err&amp;#8217;d or because the rules/reference data are in error. We need to accept the entries in an invalid state until the right authority can decide. This represents an example where data validity rules are not absolute, but depend on the process.&lt;/p&gt;
&lt;p&gt;Secondly you need an error service&amp;#8230;a facility whereby errors when detected can be routed to the appropriate person or system for resolution.&lt;/p&gt;
&lt;p&gt;Our timesheet system is based on the old database paradigm - a monolithic data-centric application with only one place for rules to be applied.  The &amp;#8220;workflow-based&amp;#8221; solution I describe is slightly more complicated than the monolithic application but the payoff in terms of a better user experience leads to more accurate and timely records. And if your a services organization with thousands of billable timesheet records each day, then you know what takes priority.&lt;/p&gt;
&lt;div&gt;&lt;a href="http://www.addthis.com/bookmark.php" onclick="window.open('http://www.addthis.com/bookmark.php?pub=&amp;amp;url=http%3A%2F%2Fwww.soabloke.com%2F2008%2F11%2F11%2Ftalk-to-the-hand%2F&amp;amp;title=Talk+to+the+Hand', 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no'); return false;" title="Bookmark using any bookmark manager!" target="_blank"&gt;&lt;img src="http://s3.addthis.com/button1-bm.gif" width="125" height="16" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://www.soabloke.com/2008/11/21/progressive-data-constraints/' rel='bookmark' title='Permanent Link: Progressive Data Constraints'&gt;Progressive Data Constraints&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.soabloke.com/2008/01/13/cost-vs-benefit-occams-razor-for-the-enterprise-architect/' rel='bookmark' title='Permanent Link: Cost vs Benefit - Occam&amp;#8217;s Razor for the Enterprise Architect'&gt;Cost vs Benefit - Occam&amp;#8217;s Razor for the Enterprise Architect&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/soabloke?a=JLCkN"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=JLCkN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=pFLPN"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=pFLPN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=mDltn"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=mDltn" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=PZfDn"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=PZfDn" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/soabloke/~4/448878453" height="1" width="1"/&gt;</content>
	<feedburner:origLink>http://www.soabloke.com/2008/11/11/talk-to-the-hand/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Saul Caganoff</name>
						<uri>http://www.soabloke.com/saulc/</uri>
					</author>
		<title type="html"><![CDATA[Gartner 2008 SOA User Survey]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/soabloke/~3/443753268/" />
		<id>http://www.soabloke.com/2008/11/06/gartner-2008-soa-user-survey/</id>
		<updated>2008-11-05T23:13:38Z</updated>
		<published>2008-11-05T23:13:38Z</published>
		<category scheme="http://www.soabloke.com" term="soa" /><category scheme="http://www.soabloke.com" term=".net" /><category scheme="http://www.soabloke.com" term="eda" /><category scheme="http://www.soabloke.com" term="gartner" /><category scheme="http://www.soabloke.com" term="java" /><category scheme="http://www.soabloke.com" term="woa" />		<summary type="html"><![CDATA[ The Gartner 2008 SOA User Survey is a good read with some surprising insights into SOA adoption.
One interesting development is that the rate of SOA adoption has slowed in 2008. About half of respondents last year who were planning SOA adoption, now have no plans for SOA adoption. The two main reasons for not [...]


Related posts:<ol><li><a href='http://www.soabloke.com/2008/02/04/the-state-of-soa-adoption/' rel='bookmark' title='Permanent Link: The State of SOA Adoption'>The State of SOA Adoption</a></li></ol>]]></summary>
		<content type="html" xml:base="http://www.soabloke.com/2008/11/06/gartner-2008-soa-user-survey/">&lt;p&gt; The &lt;a href="http://www.gartner.com/DisplayDocument?ref=g_search&amp;amp;id=765720&amp;amp;subref=simplesearch" title="Gartner 2008 SOA User Survey" target="_blank"&gt;Gartner 2008 SOA User Survey&lt;/a&gt; is a good read with some surprising insights into SOA adoption.&lt;/p&gt;
&lt;p&gt;One interesting development is that the rate of SOA adoption has slowed in 2008. About half of respondents last year who were planning SOA adoption, now have no plans for SOA adoption. The two main reasons for not pursuing SOA are a lack of SOA expertise, and the perceived lack of a business case. These reasons may be correlated in the sense that lack of SOA expertise makes it difficult to build an SOA business case. But the fundamental conclusion is that SOA doesn&amp;#8217;t make sense for everybody.&lt;/p&gt;
&lt;p&gt;SOA Adoption shows considerable geographic disparity. Europe has almost universal adoption (70% currently using), followed by North America (55% currently using) then Asia (25% currently using). The majority of organizations in Asia have no plans to adopt SOA. The report doesn&amp;#8217;t really analyse why Asia has such low SOA adoption. My guess would be a combination of factors including lack of SOA expertise in the region, the characteristics of Asian companies being late technology adopters and the preponderance of manufacturing in the region which the survey shows has overall low SOA adoption compared with other sectors.&lt;/p&gt;
&lt;p&gt;Organisation size correlates strongly with SOA adoption and the range of SOA deployment. There is a sweet spot for mid-size companies with current SOA adoption high in companies with employees between 1000 and 10,000. Large companies obviously struggle with the governance processes required to adopt SOA enterprise wide.&lt;/p&gt;
&lt;p&gt;A big surprise for me was the correlation between SOA adoption and primary development language. Forty percent of current SOA adopters use Microsoft .NET. There is also a clear trend over the last 3 years away from Java toward Microsoft .NET and &amp;#8220;other&amp;#8221; languages such as dynamic languages. Correlation doesn&amp;#8217;t mean causality so there is a lot of wiggle room in how you interpret this but clearly there is a move away from Java for SOA development. Harkening back to the COM/CORBA wars of the 90&amp;#8217;s one of the key factors was that the Microsoft development environment made COM so easy to develop versus the complexities and diversities of CORBA that eventually COM came to dominate the component world. Is history repeating itself?&lt;/p&gt;
&lt;p&gt;Web Services are the dominant SOA model, but a significant minority uses POX and REST approaches. About one third of existing SOA adopters already use or are planning to adopt EDA. The report also claims significant plans for WOA adoption, but I&amp;#8217;m not convinced by the data. An eyeball comparison between Figure 14 (current WOA adoption) and Figure 15 (planned WOA adoption) doesn&amp;#8217;t show a great deal of difference to me, except for Figure 15 looking a little more &amp;#8220;peaky&amp;#8221; around the 50% mark. So WOA adoption will increase, but I&amp;#8217;m not convinced the data shows this is &amp;#8220;dramatic&amp;#8221; as stated in the key findings of the report.&lt;/p&gt;
&lt;div&gt;&lt;a href="http://www.addthis.com/bookmark.php" onclick="window.open('http://www.addthis.com/bookmark.php?pub=&amp;amp;url=http%3A%2F%2Fwww.soabloke.com%2F2008%2F11%2F06%2Fgartner-2008-soa-user-survey%2F&amp;amp;title=Gartner+2008+SOA+User+Survey', 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no'); return false;" title="Bookmark using any bookmark manager!" target="_blank"&gt;&lt;img src="http://s3.addthis.com/button1-bm.gif" width="125" height="16" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://www.soabloke.com/2008/02/04/the-state-of-soa-adoption/' rel='bookmark' title='Permanent Link: The State of SOA Adoption'&gt;The State of SOA Adoption&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/soabloke?a=FO8DN"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=FO8DN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=wolEN"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=wolEN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=0u06n"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=0u06n" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=gHj0n"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=gHj0n" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/soabloke/~4/443753268" height="1" width="1"/&gt;</content>
	<feedburner:origLink>http://www.soabloke.com/2008/11/06/gartner-2008-soa-user-survey/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Saul Caganoff</name>
						<uri>http://www.soabloke.com/saulc/</uri>
					</author>
		<title type="html"><![CDATA[Gartner&#8217;s Top 10 Strategic Technologies for 2009]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/soabloke/~3/431620258/" />
		<id>http://www.soabloke.com/2008/10/25/gartners-top-10-strategic-technologies-for-2009/</id>
		<updated>2008-10-25T11:56:30Z</updated>
		<published>2008-10-25T11:00:38Z</published>
		<category scheme="http://www.soabloke.com" term="cep" /><category scheme="http://www.soabloke.com" term="woa" /><category scheme="http://www.soabloke.com" term="business-intelligence" /><category scheme="http://www.soabloke.com" term="cio" /><category scheme="http://www.soabloke.com" term="gartner" /><category scheme="http://www.soabloke.com" term="soa" /><category scheme="http://www.soabloke.com" term="strategy" />		<summary type="html"><![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 and CEP are represented in items 7 and 2 respectively [...]


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>]]></summary>
		<content type="html" xml:base="http://www.soabloke.com/2008/10/25/gartners-top-10-strategic-technologies-for-2009/">&lt;p&gt;Gartner has nominated their &lt;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"&gt;top 10 strategic technologies&lt;/a&gt; for 2009. In priority order they are:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small; font-family: Times New Roman"&gt;1. Virtualization&lt;br /&gt;
2. Business Intelligence&lt;br /&gt;
3. Cloud Computing&lt;br /&gt;
4. Green IT&lt;br /&gt;
5. Unified Communications&lt;br /&gt;
6. Social Software and Social Networking&lt;br /&gt;
7. Web Oriented Architecture&lt;br /&gt;
8. Enterprise Mashups&lt;br /&gt;
9. Specialized Systems&lt;br /&gt;
10. Servers – Beyond Blades &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;My primary interests in SOA and CEP are represented in items 7 and 2 respectively (with some applicability to 8).&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: Times New Roman"&gt;&lt;strong&gt;Business Intelligence. &lt;/strong&gt;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. &lt;em&gt;Tools that let these users make faster, better and more-informed decisions are particularly valuable in a difficult business environment &lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;(emphasis added).  &lt;/em&gt;Complex Event Processing is a key enabling technology for real-time business intelligence. The ability to abstract &amp;#8220;rules&amp;#8221; out of data using analytics and then have those rules executed in real-time to match against &amp;#8220;events&amp;#8221; running around your enterprise bus is what will make BI achieve the needs of business to make informed decisions &amp;#8220;faster&amp;#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.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: Times New Roman"&gt;&lt;strong&gt;Web-Oriented Architectures.&lt;/strong&gt; 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.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Recognition that SOA is more than just &amp;#8220;Web Services&amp;#8221;and that &lt;a href="http://www.soabloke.com/2008/05/01/web20-informing-soa/#footnote" title="Web2.0 Informing SOA" target="_blank"&gt;at least one other architectural paradigm&lt;/a&gt; is available to SOA implementers.&lt;/p&gt;
&lt;p&gt;Interesting that BPM has dropped from the list after featuring in the previous two years. And SOA itself has not been mentioned since &lt;a href="http://searchcio.techtarget.com/news/article/0,289142,sid182_gci1137889,00.html#" title="Top strategic technologies for 2006" target="_blank"&gt;the list for 2006&lt;/a&gt;. It looks like SOA has become more business as usual - part of the IT &amp;#8220;furniture&amp;#8221; - as &lt;a href="http://www.soabloke.com/2007/10/19/remembrance-of-things-past/" title="Remembrance Of Things Past" target="_blank"&gt;I predicted&lt;/a&gt; some time ago.&lt;/p&gt;
&lt;div&gt;&lt;a href="http://www.addthis.com/bookmark.php" onclick="window.open('http://www.addthis.com/bookmark.php?pub=&amp;amp;url=http%3A%2F%2Fwww.soabloke.com%2F2008%2F10%2F25%2Fgartners-top-10-strategic-technologies-for-2009%2F&amp;amp;title=Gartner%26%238217%3Bs+Top+10+Strategic+Technologies+for+2009', 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no'); return false;" title="Bookmark using any bookmark manager!" target="_blank"&gt;&lt;img src="http://s3.addthis.com/button1-bm.gif" width="125" height="16" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://www.soabloke.com/2008/11/06/gartner-2008-soa-user-survey/' rel='bookmark' title='Permanent Link: Gartner 2008 SOA User Survey'&gt;Gartner 2008 SOA User Survey&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/soabloke?a=nP3sM"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=nP3sM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=K276M"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=K276M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=lyA5m"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=lyA5m" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=SLyLm"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=SLyLm" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/soabloke/~4/431620258" height="1" width="1"/&gt;</content>
	<feedburner:origLink>http://www.soabloke.com/2008/10/25/gartners-top-10-strategic-technologies-for-2009/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Saul Caganoff</name>
						<uri>http://www.soabloke.com/saulc/</uri>
					</author>
		<title type="html"><![CDATA[Using Events to Add Real-time Intelligence]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/soabloke/~3/425963868/" />
		<id>http://www.soabloke.com/2008/10/20/using-events-to-add-real-time-intelligence/</id>
		<updated>2008-10-20T02:07:10Z</updated>
		<published>2008-10-20T02:07:10Z</published>
		<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="tibco" /><category scheme="http://www.soabloke.com" term="webinar" />		<summary type="html"><![CDATA[I will be manning the booth tomorrow afternoon at the TIBCO SOA Online Summit. The topic of discussion is Events and Realtime Business Intelligence which is an active part of my portfolio these days. Two of the guys from my blogroll will be presenting - James Taylor from Smart (Enough) Systems and Paul Vincent from [...]


No related posts.]]></summary>
		<content type="html" xml:base="http://www.soabloke.com/2008/10/20/using-events-to-add-real-time-intelligence/">&lt;p&gt;I will be manning the booth tomorrow afternoon at the &lt;a href="http://presentations.inxpo.com/Shows/TIBCO/10-08/Website/index.html" title="TIBCO SOA Online Summit" target="_blank"&gt;TIBCO SOA Online Summit&lt;/a&gt;. The topic of discussion is Events and Realtime Business Intelligence which is an active part of my portfolio these days. Two of the guys from my blogroll will be presenting - &lt;a href="http://smartenoughsystems.com/wp/" title="James Tayloer Blog" target="_blank"&gt;James Taylor&lt;/a&gt; from Smart (Enough) Systems and &lt;a href="http://tibcoblogs.com/cep/" title="TIBCO CEP Blog" target="_blank"&gt;Paul Vincent&lt;/a&gt; from TIBCO. Please come along and say &amp;#8220;hi&amp;#8221;.&lt;/p&gt;
&lt;div&gt;&lt;a href="http://www.addthis.com/bookmark.php" onclick="window.open('http://www.addthis.com/bookmark.php?pub=&amp;amp;url=http%3A%2F%2Fwww.soabloke.com%2F2008%2F10%2F20%2Fusing-events-to-add-real-time-intelligence%2F&amp;amp;title=Using+Events+to+Add+Real-time+Intelligence', 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no'); return false;" title="Bookmark using any bookmark manager!" target="_blank"&gt;&lt;img src="http://s3.addthis.com/button1-bm.gif" width="125" height="16" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;No related posts.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/soabloke?a=3YrnM"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=3YrnM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=7DwmM"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=7DwmM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=2RhXm"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=2RhXm" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=5I5hm"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=5I5hm" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/soabloke/~4/425963868" height="1" width="1"/&gt;</content>
	<feedburner:origLink>http://www.soabloke.com/2008/10/20/using-events-to-add-real-time-intelligence/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Saul Caganoff</name>
						<uri>http://www.soabloke.com/saulc/</uri>
					</author>
		<title type="html"><![CDATA[Climate Change Update]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/soabloke/~3/401892291/" />
		<id>http://www.soabloke.com/2008/09/25/climate-change-update/</id>
		<updated>2008-09-24T15:30:14Z</updated>
		<published>2008-09-24T15:30:14Z</published>
		<category scheme="http://www.soabloke.com" term="podcasts" /><category scheme="http://www.soabloke.com" term="big ideas" /><category scheme="http://www.soabloke.com" term="climate" /><category scheme="http://www.soabloke.com" term="podcast" /><category scheme="http://www.soabloke.com" term="science" />		<summary type="html"><![CDATA[The ABC &#8220;Big Ideas&#8221; series has a great talk from Tim Flannery on the current status of climate change thinking and science:
The response to climate change has focused largely on what we can do to reduce the production of emissions. But leading environmentalist Dr Tim Flannery reminds us that we should not lose sight of [...]


Related posts:<ol><li><a href='http://www.soabloke.com/2007/10/24/design-for-change/' rel='bookmark' title='Permanent Link: Design for Change'>Design for Change</a></li></ol>]]></summary>
		<content type="html" xml:base="http://www.soabloke.com/2008/09/25/climate-change-update/">&lt;p&gt;The ABC &amp;#8220;Big Ideas&amp;#8221; series has a &lt;a target="_blank" href="http://www.abc.net.au/rn/bigideas/stories/2008/2348030.htm"&gt;great talk from Tim Flannery &lt;/a&gt;on the current status of climate change thinking and science:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;The response to climate change has focused largely on what we can do to reduce the production of emissions. But leading environmentalist Dr Tim Flannery reminds us that we should not lose sight of the tree fix. Farms and forests could become &amp;#8216;enormous engines of planetary cleansing&amp;#8217;. Join us for an update on the science of climate change and some solutions based on the force of nature.  &lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;There is a sobering assessment of the challenge facing us in terms of reducing carbon pollution, but Dr Flannery demonstrates true leadership with some positive and pragmatic suggestions.&lt;/p&gt;
&lt;div&gt;&lt;a href="http://www.addthis.com/bookmark.php" onclick="window.open('http://www.addthis.com/bookmark.php?pub=&amp;amp;url=http%3A%2F%2Fwww.soabloke.com%2F2008%2F09%2F25%2Fclimate-change-update%2F&amp;amp;title=Climate+Change+Update', 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no'); return false;" title="Bookmark using any bookmark manager!" target="_blank"&gt;&lt;img src="http://s3.addthis.com/button1-bm.gif" width="125" height="16" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://www.soabloke.com/2007/10/24/design-for-change/' rel='bookmark' title='Permanent Link: Design for Change'&gt;Design for Change&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/soabloke?a=HEsLL"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=HEsLL" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=XqPyL"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=XqPyL" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=05Rkl"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=05Rkl" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=kFvnl"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=kFvnl" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/soabloke/~4/401892291" height="1" width="1"/&gt;</content>
	<feedburner:origLink>http://www.soabloke.com/2008/09/25/climate-change-update/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Saul Caganoff</name>
						<uri>http://www.soabloke.com/saulc/</uri>
					</author>
		<title type="html"><![CDATA[The Architectural Role of Messaging]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/soabloke/~3/398069688/" />
		<id>http://www.soabloke.com/2008/09/20/the-architectural-role-of-messaging/</id>
		<updated>2008-09-20T12:13:46Z</updated>
		<published>2008-09-20T12:13:46Z</published>
		<category scheme="http://www.soabloke.com" term="distributed-computing" /><category scheme="http://www.soabloke.com" term="architecture" /><category scheme="http://www.soabloke.com" term="coupling" /><category scheme="http://www.soabloke.com" term="expansion joint" /><category scheme="http://www.soabloke.com" term="isolation" /><category scheme="http://www.soabloke.com" term="jms" /><category scheme="http://www.soabloke.com" term="mom" />		<summary type="html"><![CDATA[JMS has brought messaging more into the mainstream which is a good thing. But just like any new technology there is the danger that the first implementations will reflect older paradigms. I remember when I made the move from FORTRAN to C, for a while I wrote a lot of FORTRAN programs in the C [...]


Related posts:<ol><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><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>]]></summary>
		<content type="html" xml:base="http://www.soabloke.com/2008/09/20/the-architectural-role-of-messaging/">&lt;p&gt;JMS has brought messaging more into the mainstream which is a good thing. But just like any new technology there is the danger that the first implementations will reflect older paradigms. I remember when I made the move from FORTRAN to C, for a while I wrote a lot of FORTRAN programs in the C language syntax until I got more familiar with C features and idioms. The same goes for my more recent ventures into Ruby with many years of Java thinking under my belt.&lt;/p&gt;
&lt;p&gt;Coming back to JMS, I find when I review distributed applications that have been designed by people with a strong client-server or web background I see a lot of rpc message semantics. While rpc (or synchronous request/reply) has it&amp;#8217;s place, this is not always the best approach. A common mistake is to regard messaging as simply a way to get messages from point A to point B&amp;#8230;treating JMS as a simple transport such as a TCP socket or HTTP.&lt;/p&gt;
&lt;p&gt;Messaging originated as the concept of a distributed queue. Most programmers are familiar with queues from GUI frameworks where communications between widgets are mediated via an event queue. The event queue supports a number of functions such as decoupling widgets from each other&amp;#8230;allowing each widget to do what it needs to in it&amp;#8217;s own time, and supporting event driven interactions between widgets. The event queue along with multi threading is key to giving user interfaces the responsiveness and robustness that you expect. In this way queueing provides more than just a communications mechanism but is key to the architecture of a GUI framework.&lt;/p&gt;
&lt;p&gt;The same is true of distributed messaging systems. In their original conception distributed queues do more than just provide a way for data to pass from one system to another, they provide an important element of isolation.&lt;/p&gt;
&lt;p&gt;A fundamental difficulty in building distributed systems is that the different components have different performance characteristics. In addition the uptime of your total system is the product of the uptime of individual components. To ensure maximum uptime you want your components to be independent of each other and, in the event of failure you want to be able to restart from where you left off. This is where message queues work really well. Component A puts a message onto a queue and doesn&amp;#8217;t  care if or when component B takes that message off the queue. This is known as the &lt;em&gt;fire and forget&lt;/em&gt; message pattern and it provides the best isolation between your system components.&lt;/p&gt;
&lt;p&gt;If instead we make Component A wait for an acknowledgment from Component B before it proceeds then we are building a tight coupling into the system. Any performance difficulties or failure experienced by Component B could spread back to Component A and thence to other components up the chain.&lt;/p&gt;
&lt;p&gt;So the role of messaging in distributed systems goes beyond just getting a message from point A to point B. It also acts as a kind of &lt;em&gt;expansion joint&lt;/em&gt; for your system allowing individual components to vary in their performance characteristics - or even fail totally for short periods - without breaking adjacent components.&lt;/p&gt;
&lt;p&gt;Without these messaging &lt;em&gt;expansion joints&lt;/em&gt;, your system is tightly coupled and prone to system wide failure originating from a single component. Messaging - using the &lt;em&gt;fire and forget&lt;/em&gt; pattern - allows these issues to be locally absorbed and managed within normal system operations.&lt;/p&gt;
&lt;div&gt;&lt;a href="http://www.addthis.com/bookmark.php" onclick="window.open('http://www.addthis.com/bookmark.php?pub=&amp;amp;url=http%3A%2F%2Fwww.soabloke.com%2F2008%2F09%2F20%2Fthe-architectural-role-of-messaging%2F&amp;amp;title=The+Architectural+Role+of+Messaging', 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no'); return false;" title="Bookmark using any bookmark manager!" target="_blank"&gt;&lt;img src="http://s3.addthis.com/button1-bm.gif" width="125" height="16" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Related posts:&lt;ol&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;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;/ol&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/soabloke?a=7VtjL"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=7VtjL" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=jEnsL"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=jEnsL" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=Xb1xl"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=Xb1xl" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=vLCml"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=vLCml" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/soabloke/~4/398069688" height="1" width="1"/&gt;</content>
	<feedburner:origLink>http://www.soabloke.com/2008/09/20/the-architectural-role-of-messaging/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Saul Caganoff</name>
						<uri>http://www.soabloke.com/saulc/</uri>
					</author>
		<title type="html"><![CDATA[Push versus Pull]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/soabloke/~3/368732973/" />
		<id>http://www.soabloke.com/2008/08/19/push-versus-pull/</id>
		<updated>2008-08-19T05:10:20Z</updated>
		<published>2008-08-19T05:10:20Z</published>
		<category scheme="http://www.soabloke.com" term="architecture" /><category scheme="http://www.soabloke.com" term="rest" /><category scheme="http://www.soabloke.com" term="flikr" /><category scheme="http://www.soabloke.com" term="friendfeed" /><category scheme="http://www.soabloke.com" term="http" /><category scheme="http://www.soabloke.com" term="mom" /><category scheme="http://www.soabloke.com" term="oscon" /><category scheme="http://www.soabloke.com" term="push" /><category scheme="http://www.soabloke.com" term="rss" /><category scheme="http://www.soabloke.com" term="web" /><category scheme="http://www.soabloke.com" term="xmpp" />		<summary type="html"><![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 using [...]


Related posts:<ol><li><a href='http://www.soabloke.com/2008/09/20/the-architectural-role-of-messaging/' rel='bookmark' title='Permanent Link: The Architectural Role of Messaging'>The Architectural Role of Messaging</a></li></ol>]]></summary>
		<content type="html" xml:base="http://www.soabloke.com/2008/08/19/push-versus-pull/">&lt;p&gt;From &lt;a href="http://radar.oreilly.com/2008/07/oscon-day-1-beyond-rest-buildi.html" title="OSCON 2008" target="_blank"&gt;OSCON via O&amp;#8217;Reilly Radar&lt;/a&gt; here&amp;#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.&lt;/p&gt;
&lt;p&gt;FriendFeed needed update info from Flikr but a REST-based &amp;#8220;pull&amp;#8221; approach is highly inefficient in this case. Instead the &lt;a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4359" title="Solution Architects" target="_blank"&gt;solution architects&lt;/a&gt; opted for a &amp;#8220;push&amp;#8221; approach using xmpp as the message transport. This is a really &lt;a href="http://www.slideshare.net/rabble/beyond-rest-building-data-services-with-xmpp-pubsub" title="Slideshow" target="_blank"&gt;good presentation&lt;/a&gt; because it goes into the architectural choices and implications of &amp;#8220;push&amp;#8221; versus &amp;#8220;pull&amp;#8221;.&lt;/p&gt;
&lt;p&gt;I characterize this as &amp;#8220;pull vs push&amp;#8221;  rather than &amp;#8220;REST vs xmpp&amp;#8221; (or &amp;#8220;REST vs *&amp;#8221; or &amp;#8220;why REST is crap&amp;#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.&lt;/p&gt;
&lt;p&gt;The web doesn&amp;#8217;t do a lot of &amp;#8220;push&amp;#8221; and consequently there is not a lot of discussion about push and REST. &lt;a href="http://www.25hoursaday.com/weblog/2008/07/27/WhenRESTDoesntScaleXMPPToTheRescue.aspx" title="Dare Obasanjo" target="_blank"&gt;Dare Obasanjo&lt;/a&gt; characterises it nicely:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Polling is a good idea for RSS/Atom for a few reasons&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;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&lt;/li&gt;
&lt;li&gt;a lot of these end points aren&amp;#8217;t persistently connected (i.e. your desktop RSS reader isn&amp;#8217;t always running)&lt;/li&gt;
&lt;li&gt;RSS/Atom publishing is as simple as plopping a file in the right directory and letting IIS or Apache work its magic&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;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.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;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 - 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.&lt;/p&gt;
&lt;p&gt;While your over at Dare&amp;#8217;s excellent Blog, be sure to also check out his discussion of&lt;a href="http://www.25hoursaday.com/weblog/2008/05/26/SomeThoughtsOnSingleInstanceStorageAndTwitter.aspx" title="Single Instance Storage and Twitter" target="_blank"&gt; push versus pull&lt;/a&gt; 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.&lt;/p&gt;
&lt;div&gt;&lt;a href="http://www.addthis.com/bookmark.php" onclick="window.open('http://www.addthis.com/bookmark.php?pub=&amp;amp;url=http%3A%2F%2Fwww.soabloke.com%2F2008%2F08%2F19%2Fpush-versus-pull%2F&amp;amp;title=Push+versus+Pull', 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no'); return false;" title="Bookmark using any bookmark manager!" target="_blank"&gt;&lt;img src="http://s3.addthis.com/button1-bm.gif" width="125" height="16" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://www.soabloke.com/2008/09/20/the-architectural-role-of-messaging/' rel='bookmark' title='Permanent Link: The Architectural Role of Messaging'&gt;The Architectural Role of Messaging&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/soabloke?a=lLWh4K"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=lLWh4K" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=TQVdGK"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=TQVdGK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=AoZ34k"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=AoZ34k" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=lfucbk"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=lfucbk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/soabloke/~4/368732973" height="1" width="1"/&gt;</content>
	<feedburner:origLink>http://www.soabloke.com/2008/08/19/push-versus-pull/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Steve Nunez</name>
					</author>
		<title type="html"><![CDATA[ILOG Drinks the Microsoft Kool-Aid]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/soabloke/~3/361631026/" />
		<id>http://www.soabloke.com/2008/08/11/ilog-drinks-the-microsoft-kool-aid/</id>
		<updated>2008-08-11T05:23:26Z</updated>
		<published>2008-08-11T04:59:42Z</published>
		<category scheme="http://www.soabloke.com" term="business rules" /><category scheme="http://www.soabloke.com" term="BRMS" /><category scheme="http://www.soabloke.com" term="Drools" /><category scheme="http://www.soabloke.com" term="ILOG" />		<summary type="html"><![CDATA[ In addition to having an affinity for IBM, ILOG has jumped in bed with Microsoft with ILOG Rules for .NET.
I am not easily impressed, however I must say that this product earns a lot of points in my book. It took several weeks of in depth research for this article, but I came away with a very positive impression of the [...]


No related posts.]]></summary>
		<content type="html" xml:base="http://www.soabloke.com/2008/08/11/ilog-drinks-the-microsoft-kool-aid/">&lt;p&gt; In addition to having an affinity for IBM, &lt;a href="http://www.ilog.com/"&gt;ILOG&lt;/a&gt; has jumped in bed with Microsoft with &lt;a href="http://www.ilog.com/products/rulesnet/"&gt;ILOG Rules for .NET&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I am not easily impressed, however I must say that this product earns a lot of points in my book. It took several weeks of in depth research for this article, but I came away with a very positive impression of the product and the .NET platform in general. If &lt;a href="http://msdn.microsoft.com/en-us/library/bb310550.aspx"&gt;Microsoft&amp;#8217;s WCF performance figures&lt;/a&gt; are to be believed, anyone building enterprise applications on .NET  need look no further. They even &lt;a href="http://blogs.technet.com/mscom/archive/2007/09/07/the-tasty-morsels-found-in-dogfood-mscom-ops-top-10-changes-in-iis7-0.aspx"&gt;eat their own dogfood&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The copy editor (a new one) had a heavy hand with this one, but the message is still clear. You can &lt;a href="http://www.infoworld.com/article/08/07/31/31TC-ilog-for-net_1.html"&gt;read the review&lt;/a&gt; of ILOG Rules for .NET and it&amp;#8217;s applicability to the enterprise over at &lt;a href="http://www.infoworld.com/"&gt;InfoWorld&lt;/a&gt; magazine.&lt;/p&gt;
&lt;p&gt;It is certainly &amp;#8216;interesting times&amp;#8217; in the BRMS space. With the union of JRules &amp;amp; Filenet through the IBM acquisition, one wonders if this shotgun marriage isn&amp;#8217;t the final step on the BRMS/BPM/SOA consolidation. &lt;a href="http://www.fairisaac.com/"&gt;FairIsaac&lt;/a&gt; seems to be on the ropes, with little choice but to accept an acquisition. That leave only a handful of commercial vendors. Perhaps we&amp;#8217;ll see the rise of open source BRMSs? I&amp;#8217;ve already seen more uses of &lt;a href="http://www.jboss.org/drools/"&gt;JBoss Rules&lt;/a&gt; (Drools) in the field this year that I&amp;#8217;ve seen in the past three, and it&amp;#8217;s improving by leaps &amp;amp; bounds with each release.&lt;/p&gt;
&lt;p&gt;Interesting times indeed.&lt;/p&gt;
&lt;div&gt;&lt;a href="http://www.addthis.com/bookmark.php" onclick="window.open('http://www.addthis.com/bookmark.php?pub=&amp;amp;url=http%3A%2F%2Fwww.soabloke.com%2F2008%2F08%2F11%2Filog-drinks-the-microsoft-kool-aid%2F&amp;amp;title=ILOG+Drinks+the+Microsoft+Kool-Aid', 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no'); return false;" title="Bookmark using any bookmark manager!" target="_blank"&gt;&lt;img src="http://s3.addthis.com/button1-bm.gif" width="125" height="16" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;No related posts.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/soabloke?a=78FjIK"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=78FjIK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=nCqhvK"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=nCqhvK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=S0diQk"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=S0diQk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=JTfDdk"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=JTfDdk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/soabloke/~4/361631026" height="1" width="1"/&gt;</content>
	<feedburner:origLink>http://www.soabloke.com/2008/08/11/ilog-drinks-the-microsoft-kool-aid/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Saul Caganoff</name>
						<uri>http://www.soabloke.com/saulc/</uri>
					</author>
		<title type="html"><![CDATA[Hand me that ESB to your left&#8230;.]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/soabloke/~3/360965255/" />
		<id>http://www.soabloke.com/2008/08/10/hand-me-that-esb-to-your-left/</id>
		<updated>2008-08-10T09:29:42Z</updated>
		<published>2008-08-10T09:29:42Z</published>
		<category scheme="http://www.soabloke.com" term="esb" /><category scheme="http://www.soabloke.com" term="bus" /><category scheme="http://www.soabloke.com" term="gartner" /><category scheme="http://www.soabloke.com" term="integration" /><category scheme="http://www.soabloke.com" term="soa" /><category scheme="http://www.soabloke.com" term="sonic" />		<summary type="html"><![CDATA[In 2002 Sonic Software invented the term ESB to differentiate their middleware from everyone else&#8217;s middleware. This is an old marketing tactic when you can&#8217;t differentiate your product from the others - just invent a new category. To lend credence, you need the collusion of an analyst and Gartner was there to knock this marketechture [...]


Related posts:<ol><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><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>]]></summary>
		<content type="html" xml:base="http://www.soabloke.com/2008/08/10/hand-me-that-esb-to-your-left/">&lt;p&gt;In 2002 Sonic Software &lt;a href="http://www.businessreviewonline.com/blog/archives/2005/08/esb_inventor_ri.html" target="_blank"&gt;invented the term ESB&lt;/a&gt; to differentiate their middleware from everyone else&amp;#8217;s middleware. This is an old marketing tactic when you can&amp;#8217;t differentiate your product from the others - just invent a new category. To lend credence, you need the collusion of an analyst and &lt;a href="http://searchsoa.techtarget.com/news/article/0,289142,sid26_gci1026008,00.html" target="_blank"&gt;Gartner was there&lt;/a&gt; to knock this marketechture into the hype-stratosphere. We can also thank Sonic for the crap notion that an &amp;#8220;&lt;a href="http://www.information-age.com/articles/293056/the-role-of-the-esb.thtml" target="_blank"&gt;ESB is a prebuilt SOA&lt;/a&gt;&amp;#8220;.&lt;/p&gt;
&lt;p&gt;ESBs have been back in the news again with the &lt;a href="http://blogs.zdnet.com/service-oriented/?p=1149" target="_blank"&gt;usual attendant vitriol&lt;/a&gt; and this has revived the perpetual question - &amp;#8220;&lt;a href="http://www.soabloke.com/2008/01/21/what-is-an-esb-and-why-do-i-need-one/" target="_blank"&gt;what is an ESB and why do I need one&lt;/a&gt;&amp;#8220;?&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve seen ESBs referred to in two rather broad contexts. The first context refers to a distributed infrastructure that allows your Service Providers and Service Consumers to find each other and work together in a scalable and loosely coupled manner. This is often referred to as the &amp;#8220;ESB as design pattern&amp;#8221; and I think it is what many people would like ESB to mean. This &amp;#8220;Service Bus&amp;#8221; is effectively an extension of the &amp;#8220;Message Bus&amp;#8221; concept and is what I had in mind when I &lt;a href="http://www.soabloke.com/2008/01/21/what-is-an-esb-and-why-do-i-need-one/" target="_blank"&gt;wrote about this subject&lt;/a&gt; a while ago.&lt;/p&gt;
&lt;p&gt;The second context is ESB as a tool or a &amp;#8220;thing you buy from a vendor&amp;#8221; and this seems to be the terminology that calls forth all manner of vituperations. In this context ESB is secret marketing code for what used to be called &amp;#8220;integration middleware.&amp;#8221; This is also the thing that Jim Webber calls the &amp;#8220;&lt;a href="http://www.slideshare.net/deimos/jim-webber-martin-fowler-does-my-bus-look-big-in-this/" target="_blank"&gt;Erroneous Spaghetti Box&lt;/a&gt;.&amp;#8221;&lt;/p&gt;
&lt;p&gt;In this context, the eternal ESB question becomes - &amp;#8220;in an SOA world, do I really need integration middleware?&amp;#8221; I really think you can make more sense of the ESB debate by recasting into this terminology. The SOA pragmatists (including myself) see that there is a role for &amp;#8220;integration middleware&amp;#8221; as tools within your SOA infrastructure.&lt;/p&gt;
&lt;p&gt;Eric Roch thinks of an ESB as a &amp;#8220;&lt;a href="http://it.toolbox.com/blogs/the-soa-blog/how-to-use-esbs-for-soa-26280" target="_blank"&gt;productivity tool for integration&lt;/a&gt;&amp;#8221; and points out that The legacy integration problem hasn&amp;#8217;t gone away yet.&lt;/p&gt;
&lt;p&gt;ZapThink say that &lt;a href="http://zapthink.com/report.html?id=ZAPFLASH-2008530" target="_blank"&gt;an ESB could play the role of a Service Intermediary&lt;/a&gt; where transformations and content-based routing are essential requirements.&lt;/p&gt;
&lt;p&gt;Todd Biske characterises &lt;a href="http://www.biske.com/blog/?p=218" target="_blank"&gt;five different types of ESB product&lt;/a&gt; each supporting different functions such as legacy integration, orchestration, mediation and transport, SOAP wrapping and gateways. The key insight here is how the label &amp;#8220;ESB&amp;#8221; has come to be applied to so many disparate products. &amp;#8220;ESB&amp;#8221; has come to mean everything and nothing and should be banished from our vocabulary.&lt;/p&gt;
&lt;p&gt;So I agree with the pragmatists - design your SOA infrastructure to support your business requirements. Consider the so-called ESB products as tools and if you need mediation, or orchestration or transformation or integration to legacy systems then consider using the scads of tools - both proprietary and opensource - out there that support this stuff. And whatever you do, don&amp;#8217;t try to author XSLT using Notepad.&lt;/p&gt;
&lt;div&gt;&lt;a href="http://www.addthis.com/bookmark.php" onclick="window.open('http://www.addthis.com/bookmark.php?pub=&amp;amp;url=http%3A%2F%2Fwww.soabloke.com%2F2008%2F08%2F10%2Fhand-me-that-esb-to-your-left%2F&amp;amp;title=Hand+me+that+ESB+to+your+left%26%238230%3B.', 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no'); return false;" title="Bookmark using any bookmark manager!" target="_blank"&gt;&lt;img src="http://s3.addthis.com/button1-bm.gif" width="125" height="16" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Related posts:&lt;ol&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;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;/ol&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/soabloke?a=eae9BK"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=eae9BK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=YsUGDK"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=YsUGDK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=Yp5Wmk"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=Yp5Wmk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/soabloke?a=dUYp1k"&gt;&lt;img src="http://feeds.feedburner.com/~f/soabloke?i=dUYp1k" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/soabloke/~4/360965255" height="1" width="1"/&gt;</content>
	<feedburner:origLink>http://www.soabloke.com/2008/08/10/hand-me-that-esb-to-your-left/</feedburner:origLink></entry>
	</feed>
