<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Regu's mind trail</title>
	<atom:link href="http://regumindtrail.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://regumindtrail.wordpress.com</link>
	<description>A convenient place for me to capture my thoughts and experiences on technology</description>
	<lastBuildDate>Sat, 15 Jun 2013 10:22:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='regumindtrail.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Regu's mind trail</title>
		<link>http://regumindtrail.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://regumindtrail.wordpress.com/osd.xml" title="Regu&#039;s mind trail" />
	<atom:link rel='hub' href='http://regumindtrail.wordpress.com/?pushpress=hub'/>
		<item>
		<title>2012 in review</title>
		<link>http://regumindtrail.wordpress.com/2012/12/31/2012-in-review/</link>
		<comments>http://regumindtrail.wordpress.com/2012/12/31/2012-in-review/#comments</comments>
		<pubDate>Mon, 31 Dec 2012 04:43:04 +0000</pubDate>
		<dc:creator>regumindtrail</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://regumindtrail.wordpress.com/?p=65</guid>
		<description><![CDATA[The WordPress.com stats helper monkeys prepared a 2012 annual report for this blog. Here&#8217;s an excerpt: 600 people reached the top of Mt. Everest in 2012. This blog got about 5,300 views in 2012. If every person who reached the top of Mt. Everest viewed this blog, it would have taken 9 years to get [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=regumindtrail.wordpress.com&#038;blog=732345&#038;post=65&#038;subd=regumindtrail&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The WordPress.com stats helper monkeys prepared a 2012 annual report for this blog.</p>
<p><a href="http://regumindtrail.wordpress.com/2012/annual-report/"><img alt="" src="http://www.wordpress.com/wp-content/mu-plugins/annual-reports/img/2012-emailteaser.png" width="100%" /></a></p>
<p>Here&#8217;s an excerpt:</p>
<blockquote><p>600 people reached the top of Mt. Everest in 2012. This blog got about <strong>5,300</strong> views in 2012. If every person who reached the top of Mt. Everest viewed this blog, it would have taken 9 years to get that many views.</p></blockquote>
<p><a href="http://regumindtrail.wordpress.com/2012/annual-report/">Click here to see the complete report.</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/regumindtrail.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/regumindtrail.wordpress.com/65/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=regumindtrail.wordpress.com&#038;blog=732345&#038;post=65&#038;subd=regumindtrail&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://regumindtrail.wordpress.com/2012/12/31/2012-in-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/f64d5fd3f87afd85da2c1eada8c7522c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">regumindtrail</media:title>
		</media:content>

		<media:content url="http://www.wordpress.com/wp-content/mu-plugins/annual-reports/img/2012-emailteaser.png" medium="image" />
	</item>
		<item>
		<title>Open Source RabbitMQ connector aka. transport for Mule</title>
		<link>http://regumindtrail.wordpress.com/2012/08/24/open-source-rabbitmq-connector-aka-transport-for-mule/</link>
		<comments>http://regumindtrail.wordpress.com/2012/08/24/open-source-rabbitmq-connector-aka-transport-for-mule/#comments</comments>
		<pubDate>Fri, 24 Aug 2012 07:08:54 +0000</pubDate>
		<dc:creator>regumindtrail</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://regumindtrail.wordpress.com/?p=60</guid>
		<description><![CDATA[Code commits on Trooper (https://github.com/regunathb/Trooper/) have kept me busy the last few weeks. Trooper is an umbrella project for a number of things. Trooper now has a RabbitMQ connector for Mule.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=regumindtrail.wordpress.com&#038;blog=732345&#038;post=60&#038;subd=regumindtrail&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Code commits on Trooper (<a href="https://github.com/regunathb/Trooper/" rel="nofollow">https://github.com/regunathb/Trooper/</a>) have kept me busy the last few weeks. Trooper is an umbrella project for a number of things.</p>
<p>Trooper now has a <a title="RabbitMQ connector for Mule" href="https://github.com/regunathb/Trooper/wiki/RabbitMQ-Mule-Connector">RabbitMQ connector for Mule</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/regumindtrail.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/regumindtrail.wordpress.com/60/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=regumindtrail.wordpress.com&#038;blog=732345&#038;post=60&#038;subd=regumindtrail&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://regumindtrail.wordpress.com/2012/08/24/open-source-rabbitmq-connector-aka-transport-for-mule/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/f64d5fd3f87afd85da2c1eada8c7522c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">regumindtrail</media:title>
		</media:content>
	</item>
		<item>
		<title>Is &#8220;Big Data&#8221; same as &#8220;Big Analytics&#8221;?</title>
		<link>http://regumindtrail.wordpress.com/2012/03/26/is-big-data-same-as-big-analytics/</link>
		<comments>http://regumindtrail.wordpress.com/2012/03/26/is-big-data-same-as-big-analytics/#comments</comments>
		<pubDate>Mon, 26 Mar 2012 12:49:09 +0000</pubDate>
		<dc:creator>regumindtrail</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Industry trends]]></category>

		<guid isPermaLink="false">http://regumindtrail.wordpress.com/?p=57</guid>
		<description><![CDATA[Do a Google on Big Data and you are more likely to find people talking about two things: How Open Source solutions like Hadoop have pioneered this space How some companies have used these solutions to build large scale analytics solutions and business intelligence modules. Read more and one will find mention of Map Reduce [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=regumindtrail.wordpress.com&#038;blog=732345&#038;post=57&#038;subd=regumindtrail&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Do a Google on Big Data and you are more likely to find people talking about two things:</p>
<ul>
<li>How Open Source solutions like Hadoop have pioneered this space</li>
<li>How some companies have used these solutions to build large scale analytics solutions and business intelligence modules.</li>
</ul>
<p>Read more and one will find mention of Map Reduce and how many of the NoSQL data stores support this useful &#8220;Data Locality&#8221; pattern &#8211; taking compute to where the data is.</p>
<p>Hadoop users and the creators themselves acknowledge that the technology is good for &#8220;streaming reads&#8221; and supports high throughput at the cost of latency. This constraint and the fact that Map Reduce tasks are very I/O bound, make it seemingly unsuitable for use cases that involve users waiting for a response such as in OLTP applications.</p>
<p>While all of the above is relevant and mostly true, is it also leading to a certain stereo-typing &#8211; that of equating Big Data to Big Analytics?</p>
<p>It might be useful to describe Big Data first. Gartner categorizes data build up in an enterprise as under : Volume, Variety and Velocity. Rapid growth in any of these categories or combinations thereof, results in Big Data. It might be worthwhile to note here that there is no classification under transaction processing or analytics, thereby implying that Big Data is not just Big Analytics.</p>
<p>Big Data solutions need not be limited to Big Analytics and may extend to low latency data access workloads as well. A few random thoughts on patterns and solutions:</p>
<ul>
<li>Data Sharding &#8211; useful to scale low latency data stores like RDBMS to store Big Data. Sharding may be built into application code, use an intermediary between the application and data store or inherently supported by the data store using auto-sharding of data.</li>
<li>Data Stores by purpose &#8211; Big Data invariably means distribution and may result in data duplication; within a single store or multiple. For e.g. data extracts from a DFS like Hadoop may also be stored in a high-speed NoSQL or sharded RDBMS and accessed via secondary indices. This could lead to scenarios outlined by the CAP theorem (<a href="http://en.wikipedia.org/wiki/CAP_theorem" rel="nofollow">http://en.wikipedia.org/wiki/CAP_theorem</a>).</li>
<li>Data Stores that effectively leverage CPU, RAM and disk space &#8211; Moore&#8217;s Law has been proven right the last few years and data stores like the Google Big Table (or HBase) successfully leverage the trend of abundant commodity compute, memory and storage.</li>
<li>Optimized Compute Patterns &#8211; Efforts like Peregrine(<a href="http://peregrine_mapreduce.bitbucket.org/" rel="nofollow">http://peregrine_mapreduce.bitbucket.org/</a>) that support pipe-lined Map Reduce jobs.</li>
<li>Data aware Grid topologies &#8211; A compute grid where worker participation in a compute task is influenced by data available locally to the worker, usually in-memory. Note that this is different from the data locality pattern implemented in most Map Reduce frameworks.</li>
<li>And more&#8230;..</li>
</ul>
<p>It may suffice to say that Big Analytics has been the most visible and commonly deployed use case on Big Data. New age companies, especially the internet based ones, have been using Big Data technologies to deliver content sharing, email, instant messaging and social platform services in near real time. Enterprises are slowly but surely warming up to this trend.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/regumindtrail.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/regumindtrail.wordpress.com/57/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=regumindtrail.wordpress.com&#038;blog=732345&#038;post=57&#038;subd=regumindtrail&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://regumindtrail.wordpress.com/2012/03/26/is-big-data-same-as-big-analytics/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/f64d5fd3f87afd85da2c1eada8c7522c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">regumindtrail</media:title>
		</media:content>
	</item>
		<item>
		<title>SOA Governance requires more than a Service Registry</title>
		<link>http://regumindtrail.wordpress.com/2010/06/17/soa-governance-requires-more-than-a-service-registry/</link>
		<comments>http://regumindtrail.wordpress.com/2010/06/17/soa-governance-requires-more-than-a-service-registry/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 10:46:35 +0000</pubDate>
		<dc:creator>regumindtrail</dc:creator>
				<category><![CDATA[SOA]]></category>

		<guid isPermaLink="false">http://regumindtrail.wordpress.com/?p=53</guid>
		<description><![CDATA[The big software vendors use the term &#8211; Service Registry synonymously with SOA Governance. In the process they inadvertently confuse a reader into thinking that setting up a Service Registry can ensure SOA Governance. I wrote an article on this subject that got published here : http://www.cioupdate.com/insights/article.php/3886106/SOA-Governance-Requires-More-than-a-Service-Registry.htm<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=regumindtrail.wordpress.com&#038;blog=732345&#038;post=53&#038;subd=regumindtrail&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The big software vendors use the term &#8211; Service Registry synonymously with SOA Governance. In the process they inadvertently confuse a reader into thinking that setting up a Service Registry can ensure SOA Governance. I wrote an article on this subject that got published here : <a href="http://www.cioupdate.com/insights/article.php/3886106/SOA-Governance-Requires-More-than-a-Service-Registry.htm">http://www.cioupdate.com/insights/article.php/3886106/SOA-Governance-Requires-More-than-a-Service-Registry.htm</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/regumindtrail.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/regumindtrail.wordpress.com/53/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=regumindtrail.wordpress.com&#038;blog=732345&#038;post=53&#038;subd=regumindtrail&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://regumindtrail.wordpress.com/2010/06/17/soa-governance-requires-more-than-a-service-registry/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/f64d5fd3f87afd85da2c1eada8c7522c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">regumindtrail</media:title>
		</media:content>
	</item>
		<item>
		<title>CIOUpdate article on SOA and Cloud</title>
		<link>http://regumindtrail.wordpress.com/2010/03/23/cioupdate-article-on-soa-and-cloud/</link>
		<comments>http://regumindtrail.wordpress.com/2010/03/23/cioupdate-article-on-soa-and-cloud/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 13:07:16 +0000</pubDate>
		<dc:creator>regumindtrail</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://regumindtrail.wordpress.com/?p=48</guid>
		<description><![CDATA[I wrote this article for CIOUpdate.com (http://www.cioupdate.com) a while back on SOA and its relation to the Cloud. The article tries to introduce the two concepts and compares them using different view perspectives. You can find the original article here : http://www.cioupdate.com/reports/article.php/3853076/How-SOA-and-the-Cloud-Relate.htm<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=regumindtrail.wordpress.com&#038;blog=732345&#038;post=48&#038;subd=regumindtrail&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I wrote this article for CIOUpdate.com (<a href="http://www.cioupdate.com" rel="nofollow">http://www.cioupdate.com</a>) a while back on SOA and its relation to the Cloud. The article tries to introduce the two concepts and compares them using different view perspectives.</p>
<p>You can find the original article here : <a href="http://www.cioupdate.com/reports/article.php/3853076/How-SOA-and-the-Cloud-Relate.htm">http://www.cioupdate.com/reports/article.php/3853076/How-SOA-and-the-Cloud-Relate.htm</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/regumindtrail.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/regumindtrail.wordpress.com/48/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=regumindtrail.wordpress.com&#038;blog=732345&#038;post=48&#038;subd=regumindtrail&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://regumindtrail.wordpress.com/2010/03/23/cioupdate-article-on-soa-and-cloud/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/f64d5fd3f87afd85da2c1eada8c7522c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">regumindtrail</media:title>
		</media:content>
	</item>
		<item>
		<title>Add a B2B Gateway to your services</title>
		<link>http://regumindtrail.wordpress.com/2009/03/04/add-a-b2b-gateway-to-your-services/</link>
		<comments>http://regumindtrail.wordpress.com/2009/03/04/add-a-b2b-gateway-to-your-services/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 09:36:15 +0000</pubDate>
		<dc:creator>regumindtrail</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[B2B Gateway]]></category>
		<category><![CDATA[Web services]]></category>

		<guid isPermaLink="false">http://regumindtrail.wordpress.com/?p=40</guid>
		<description><![CDATA[Mention SOA or Services and most of your audience would immediately relate it to web-services &#8211; yes, the often un-intented misuse of XML over Http that gives the technology and anything related to it a bad name in the world of high-performance J2EE applications. Two of the biggest culprits in loss of Performance are I/O [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=regumindtrail.wordpress.com&#038;blog=732345&#038;post=40&#038;subd=regumindtrail&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Mention SOA or Services and most of your audience would immediately relate it to web-services &#8211; yes, the often un-intented misuse of XML over Http that gives the technology and anything related to it a bad name in the world of high-performance J2EE applications.</p>
<p>Two of the biggest culprits in loss of Performance are I/O and Transformation overheads. Web services has both these drawbacks &#8211; increased data transfer i.e higher I/O associated with markup overhead of well-formed XML and the CPU utilization overhead when converting XML to Java and back aka. Marshalling.</p>
<p>Web-services and its implementation of XML over Http is good when it is genuinely needed. For e.g. exposing services for consumption with partner organizations where consuming technologies are not known or for integration between disparate systems.  However often this need for integration unfortunately leads people to stereotype services as web-services in a SOA. </p>
<p>The question then is : can we reap the benefits of SOA and not suffer the drawbacks of the overheads inherent in web-services? I believe, we can.</p>
<p>Quite a while back, I read this excellent IBM Redbook : <a href="http://www.redbooks.ibm.com/abstracts/sg246346.html">Implementing SOA using ESB</a> where the author recommends deploying a B2B Gateway external to the ESB. I must admit it didnot make much sense to me then. I have come to appreciate it much better these days. A B2B Gateway enables consumption of services by &#8220;third-party&#8221; . This &#8220;third-party&#8221; may be a client from a different technology platform or from an altogether different organization.</p>
<p>A separate B2B gateway introduces the possibility of:</p>
<ul>
<li>Making the web-service channel independent of the service implementation and therefore a matter of choice to use (and therefore suffer) the XML over Http interface</li>
<li>Introducing the much required security standards(and implementations) for securing services and data managed by the services</li>
<li>Using third party implementations that specialize in implementing WS-* policies</li>
<li>Using hardware to augment the processing capability provided by software frameworks &#8211; e.g. XML appliances</li>
</ul>
<p>The SOA runtime therefore must enable services to be written independently of XML and the WS-* specifications/constraints.  The Web-service interface  is then an optional channel , via a B2B Gateway, to invoke the services. </p>
<p>We, at <a href="http://www.mindtree.com">MindTree</a>, have taken this design further in our implementation of Momentum &#8211; an SOA based delivery Platform. Interfaces like JMS and web-services are optional channels provided by the Framework to invoke any deployed service. A schematic that explains this approach is shown below:</p>
<p> </p>
<p style="text-align:center;"><img class="aligncenter" src="http://regumindtrail.files.wordpress.com/2009/03/soa-req-flow.jpg?w=431&#038;h=421" alt="Request flow to a Service from different channels" width="431" height="421" /></p>
<p style="text-align:left;">The web-service interface is therefore an optional means to invoke your service when you separate the service container and the ESB(optional) from the B2B Gateway and deploy the latter as a separate infrastructure.  You can then benefit from the good of web-services without compromising on your service&#8217;s QoS.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/regumindtrail.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/regumindtrail.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=regumindtrail.wordpress.com&#038;blog=732345&#038;post=40&#038;subd=regumindtrail&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://regumindtrail.wordpress.com/2009/03/04/add-a-b2b-gateway-to-your-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/f64d5fd3f87afd85da2c1eada8c7522c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">regumindtrail</media:title>
		</media:content>

		<media:content url="http://regumindtrail.files.wordpress.com/2009/03/soa-req-flow.jpg" medium="image">
			<media:title type="html">Request flow to a Service from different channels</media:title>
		</media:content>
	</item>
		<item>
		<title>Leveraging stateful and stateless frameworks</title>
		<link>http://regumindtrail.wordpress.com/2008/09/16/leveraging-stateful-and-stateless-frameworks/</link>
		<comments>http://regumindtrail.wordpress.com/2008/09/16/leveraging-stateful-and-stateless-frameworks/#comments</comments>
		<pubDate>Tue, 16 Sep 2008 09:13:50 +0000</pubDate>
		<dc:creator>regumindtrail</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://regumindtrail.wordpress.com/?p=37</guid>
		<description><![CDATA[I would not be exaggerating if I said its a war out there between the supporters of stateful and stateless frameworks and solutions in Java. Add to this melee the number of frameworks that are built on either of these two premise. An application developer is therefore spoilt for choices and often confused. The easiest [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=regumindtrail.wordpress.com&#038;blog=732345&#038;post=37&#038;subd=regumindtrail&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I would not be exaggerating if I said its a war out there between the supporters of stateful and stateless frameworks and solutions in Java. Add to this melee the number of frameworks that are built on either of these two premise. An application developer is therefore spoilt for choices and often confused. The easiest way out is to align with one of the camps and trust their solutions.  </p>
<p>Proponents of the various frameworks vouch for their solutions &#8211; a natural thing, but unfortunately it is biased due to their own business interests. I&#8217;ll take two solutions for illustration purposes &#8211; Spring and JBoss Seam. I am a big fan of Spring and am interested enough to dabble in Seam. FYI, one of my projects uses Seam extensively and I personally have designed complex systems on the JBoss platform in the past. So, there is no bias there. I&#8217;ll use an example to illustrate the comment on bias - I find the Spring Acegi framework to be a great solution for application security. I suspect the people behind Seam might think likewise but will never integrate the two. I read something about they having evaluated Acegi and decided to write their own. JBoss Seam security looks good but one is forced to write stuff for say RDBMS or LDAP based authentication while it is readily available in Spring Acegi. Other useful features are Transaction(compensation based) support for LDAP operations and the Spring AOP implementation. </p>
<p>I do believe the need for evolution. Hibernate came along and changed the way we wrote JDBC access. But, I would hate to see somebody rubbish stuff that others have done before. For e.g. I dont subscribe to Gavin King&#8217;s (creator of Hibernate and Seam) thought that applications are by default stateful. Maintaining state comes with a price &#8211; we have all not forgotten the problems we had with earlier versions of Stateful EJBs, Entity beans and Http session replication. I dont think Seam has cracked this entirely yet despite claims that the JBoss clustering on JGroups does fine grained replication of changes. My team members complain of huge files on the JBoss server environment that is presumably used to passivate state. I would not convince myself to write all my applications as stateful ones even if the associated framework claims greater productivity (this is debatable and the answers are unique to situations).</p>
<p>The best solution for an application developer like me would be to use the best of both worlds. There definitely is a case for using both Spring and Seam in your application stack. Lets look at an architectural paradigm that has generated lot of interest these days &#8211; SOA. Web services over Http and JMS are common technologies used to implement services in a SOA. Both these technologies advocate a request-response model and are mostly stateless. Spring and its integration with a framework like Mule make a compelling choice to implement the services layer. However you need more than just services to build an end application &#8211; you need a presentation layer, a mechanism to maintain conversational state (between user and application) and ability to perform data access where the nature of the use case does not require you to write it as a service. Enter Seam and other productivity enhancing web frameworks like Grails. Presentation frameworks and component libraries (Facelets, JSF component libraries, jQuery) e.t.c integrate nicely and is rarely an issue. </p>
<p>Such an approach allows one to leverage the scalability benefits of stateless frameworks (for the services layer) and the productivity benefits of the stateful frameworks. A combined reference architecture that demonstrates building stateful applications on a stateless service layer in the true spirit of SOA is useful. The MindTree Momentum platform achieve this &#8211; leverage the best of open source stateful and stateless frameworks.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/regumindtrail.wordpress.com/37/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/regumindtrail.wordpress.com/37/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/regumindtrail.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/regumindtrail.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=regumindtrail.wordpress.com&#038;blog=732345&#038;post=37&#038;subd=regumindtrail&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://regumindtrail.wordpress.com/2008/09/16/leveraging-stateful-and-stateless-frameworks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/f64d5fd3f87afd85da2c1eada8c7522c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">regumindtrail</media:title>
		</media:content>
	</item>
		<item>
		<title>MCA or SCEA</title>
		<link>http://regumindtrail.wordpress.com/2008/09/09/mca-or-scea/</link>
		<comments>http://regumindtrail.wordpress.com/2008/09/09/mca-or-scea/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 10:33:25 +0000</pubDate>
		<dc:creator>regumindtrail</dc:creator>
				<category><![CDATA[Architecture]]></category>

		<guid isPermaLink="false">http://regumindtrail.wordpress.com/?p=34</guid>
		<description><![CDATA[Let me set one thing straight &#8211; I have never been a big fan of certifications. It stems from ones on programming languages that require you to remember stuff that is easily found in the API docs. And, of course the aversion to written examinations that all of us with Indian schooling know so well [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=regumindtrail.wordpress.com&#038;blog=732345&#038;post=34&#038;subd=regumindtrail&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Let me set one thing straight &#8211; I have never been a big fan of certifications. It stems from ones on programming languages that require you to remember stuff that is easily found in the API docs. And, of course the aversion to written examinations that all of us with Indian schooling know so well of and consequently loathe <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I have therefore never taken up any professional certifications.</p>
<p>So, it was with some misgiving that I responded to a colleague&#8217;s query if I would like to take up the Microsoft Certified Architect evaluation. Having used Java predominantly the last few years, my first and obvious question was &#8211; how is the MCA relevant to a Java person? I listened a bit to the process and decided to give it a try for two reasons:</p>
<ul>
<li>The evaluation process was around a solution that one has architected i.e. it was case study based</li>
<li>My colleague&#8217;s persuasion that it was a worthwhile experience</li>
</ul>
<div>I&#8217;ll leave the process of evaluation out and just say this much that I created a few documents on competency, case study and a presentation that was to be presented to the board. The initial screening round was telephonic and was done by an existing MCA.</div>
<div>The review board was a 4 member team that I had to meet face to face and &#8220;defend the case study&#8221; as the process put it. I was truly impressed by the end of it all &#8211; not because I got the certification but because of the manner in which it was conducted. The review by the board was the highlight of the process and I mentioned thus when asked about the motivation for taking this up.</div>
<div>A few impressive things about the process :</div>
<div>
<ul>
<li>Emphasis on one&#8217;s own experience in architecting a solution and almost neglible theritical knowledge. One can in no way prepare for this evaluation overnight.</li>
<li>Thorough professionalism of the people involved. You work and interface with existing MCAs throughout the process. I interacted with a total of 7. This is significant if you consider that there are a little over 100 MCAs worldwide. Thats the amount of focus and attention every candidate receives.</li>
<li>Clear sepraration of roles being certified &#8211; Solution architect &amp; Infrastructure architect. There is Enterprise Architect as well. I applied for Solution architect.</li>
<li>The feedback one receives at the end of the certification. This feedback is very personalized. For e.g. specific books that one is advised to read based on the board review.</li>
<li>The collective experience of the architects on the board. It is OK to admit you dont know answers to questions(you will during the review <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) that come at you in quick succession. I learnt it is difficult to match the collective knowledge of all those gentlemen on the board. I am guessing the average age of a MCA on the board should be well over 40 &#8211; seasoned architects surely!</li>
<li>Inclusion into the fraternity of MCAs. This is a small group of like minded people. I was invited to be a panelist speaker at the &#8220;Microsoft Architecture Days&#8221; session in Bangalore. I was allowed to talk about Java when discussing the topic &#8220;Software + Services&#8221;!  This might be unheard of before.</li>
<li>Lastly the nicely mounted  certificate signed by Bill Gates <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<div>Where does the &#8220;Sun Certified Enterprise Architect&#8221; stand in comparision? Again, I was unaware of its existence until recently when I saw it on a candidate&#8217;s resume. I was impressed by the name and the source and therefore did some googling on what it took to become a SCEA. This was before I spoke to the candidate who was a SCEA. I was disappointed by what I heard and what I read about the certification:</div>
<div>
<ul>
<li>Firstly, the evaluation process tests one&#8217;s skills at application design and at best solution architecture. I feel it is a complete misnomer to have &#8220;enterprise architect&#8221; in its name. </li>
<li>The process is mostly offline. I wonder how &#8220;cheating&#8221; is prevented i.e. one person defines the solution on behalf of another.</li>
<li>Competencies essential to an architect such as communication, leadership, process, e.t.c are not evaluated here at all. </li>
<li>All the benefits or highlights I experienced in the MCA are missing here. </li>
</ul>
<div>It would really do good to make the SCEA more interactive, personal, effective and valued especially since it comes from such a credible source as Sun Microsystems. Until then I would continue to vouch for the MCA programme &#8211; true value from Microsoft.</div>
</div>
</div>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/regumindtrail.wordpress.com/34/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/regumindtrail.wordpress.com/34/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/regumindtrail.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/regumindtrail.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=regumindtrail.wordpress.com&#038;blog=732345&#038;post=34&#038;subd=regumindtrail&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://regumindtrail.wordpress.com/2008/09/09/mca-or-scea/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/f64d5fd3f87afd85da2c1eada8c7522c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">regumindtrail</media:title>
		</media:content>
	</item>
		<item>
		<title>Accessing an OSGi service from a non-OSGi client</title>
		<link>http://regumindtrail.wordpress.com/2008/06/10/acessing-osgi-service-from-non-osgi-client/</link>
		<comments>http://regumindtrail.wordpress.com/2008/06/10/acessing-osgi-service-from-non-osgi-client/#comments</comments>
		<pubDate>Tue, 10 Jun 2008 13:03:57 +0000</pubDate>
		<dc:creator>regumindtrail</dc:creator>
				<category><![CDATA[Industry trends]]></category>

		<guid isPermaLink="false">http://regumindtrail.wordpress.com/?p=30</guid>
		<description><![CDATA[I warmed up to the idea of OSGi after reading an introduction like : &#8220;Use OSGi to service enable your JVM&#8221;. For background, we at MindTree have created a SOA based J2EE delivery platform built on open source technologies &#8211; primarily Spring. In this framework, we expose POJOs as services using Spring remoting and access [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=regumindtrail.wordpress.com&#038;blog=732345&#038;post=30&#038;subd=regumindtrail&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I warmed up to the idea of OSGi after reading an introduction like : &#8220;Use OSGi to service enable your JVM&#8221;. For background, we at MindTree have created a SOA based J2EE delivery platform built on open source technologies &#8211; primarily Spring. In this framework, we expose POJOs as services using Spring remoting and access them via the Mule ESB. The idea of being able to expose POJOs as services without having to remote enable them made OSGi an interesting proposition.</p>
<p>I chose Spring Dynamic Modules(Spring DM) for three reasons:</p>
<ul>
<li>I hoped to leverage all of Spring&#8217;s capabilities while writing my service</li>
<li>Ability to manage my service POJOs as Spring beans</li>
<li>Easy migration path for our framework</li>
</ul>
<p>My test was to write a POJO, declare it as a Spring bean and an OSGi service (using Spring DM) and eventually access the service from a standalone application. This completes a typical usage scenario. I used the &#8220;simple-service&#8221; sample code that comes with the Spring DM distribution (version 1.1.0).</p>
<p>I faced issues either because I was not able to find the right documentation or because it was simply not there. I encountered and eventually overcame the following issues:</p>
<ul>
<li>Ability to launch an OSGi container in standalone mode and without the prompts &#8211; most samples on the internet showed me how to bring up Equinox with the &#8220;osgi&gt;&#8221; prompt. This was easily solved though.</li>
<li>Ability to load all the required OSGi bundles *before* I could load my bundle</li>
<li>Look up a published service from the bundle I deployed and invoke it from my standalone code</li>
</ul>
<p>A few lessons learned from this exercise are:</p>
<ul>
<li>OSGi is very strict when it comes to class visibility and loading. Parent class loader delegation does not apply &#8211; something we are very used to in J2SE and J2EE applications</li>
<li>It is easy to share services and packages between bundles. Not all that easy if you want to share between a bundle and a non-OSGi client application. For e.g, you cannot simply type-cast a service you have looked up to an interface that is packaged in the bundle and available on your local classpath.</li>
<li>Boot path delegation (creating fragment bundles i.e extensions to the system bundle) can help address the above need but must be used selectively and carefully in order to preserve the benefits of OSGi.</li>
<li>All bundles are loaded asynchronously. You need to account for this before you look up any service.</li>
</ul>
<p>I have replicated below the manifest contents from my fragment bundle (one that exports the common interfaces &amp; classes) and the service bundle (one that imports the common interfaces and implements the service):</p>
<p>Fragment manifest:</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Manifest-Version: 1.0<br />
Archiver-Version: Plexus Archiver<br />
Created-By: Apache Maven<br />
Built-By: m1000350<br />
Build-Jdk: 1.5.0<br />
Bundle-Version: 1.0<br />
Bundle-SymbolicName: org.springframework.osgi.samples.simpleservice.boot<br />
Bundle-Name: Simple-Service-Sample-boot<br />
Bundle-Vendor: Spring Framework<br />
<strong>Fragment-Host: system.bundle </strong>&lt;&#8212; note this extension<br />
<strong>Export-Package: org.springframework.osgi.samples.simpleservice </strong>&lt;&#8212; note this export<br />
Bundle-ManifestVersion: 2</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>The manifest for my service bundle looks like:</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Manifest-Version: 1.0<br />
Archiver-Version: Plexus Archiver<br />
Created-By: Apache Maven<br />
Built-By: m1000350<br />
Build-Jdk: 1.5.0<br />
Bundle-Version: 1.0<br />
<strong>Spring-Context: *;create-asynchronously=false </strong>&lt;&#8212; Spring DM integration<br />
Bundle-SymbolicName: org.springframework.osgi.samples.simpleservice<br />
Bundle-Name: Simple-Service-Sample<br />
Bundle-Vendor: Spring Framework<br />
Bundle-ManifestVersion: 2<br />
<strong>Import-Package: org.springframework.osgi.samples.simpleservice</strong> &lt;&#8212; note this import</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>I have attached the code for my sample application. Unfortunately, the complete Spring DM integration (the use of OsgiBundleXmlApplicationContext) does not work and I have posted a question on the Spring support forum :<a href="http://forum.springframework.org/showthread.php?t=55420&amp;goto=newpost">Spring DM issue.</a></p>
<p>I was however able to invoke the OSGi service from my non-OSGi client.</p>
<p><strong>Disclaimer</strong>: The code is just a sample and is not validated in its approach or manner of using the OSGi platform.</p>
<p><a href="http://regumindtrail.files.wordpress.com/2008/06/osgitest.doc">OSGiTest</a> - Rename to .java and open in your favorite editor</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/regumindtrail.wordpress.com/30/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/regumindtrail.wordpress.com/30/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/regumindtrail.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/regumindtrail.wordpress.com/30/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=regumindtrail.wordpress.com&#038;blog=732345&#038;post=30&#038;subd=regumindtrail&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://regumindtrail.wordpress.com/2008/06/10/acessing-osgi-service-from-non-osgi-client/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/f64d5fd3f87afd85da2c1eada8c7522c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">regumindtrail</media:title>
		</media:content>
	</item>
		<item>
		<title>ESB &#8211; a logical set of capabilities?</title>
		<link>http://regumindtrail.wordpress.com/2008/05/29/esb-a-logical-set-of-capabilities/</link>
		<comments>http://regumindtrail.wordpress.com/2008/05/29/esb-a-logical-set-of-capabilities/#comments</comments>
		<pubDate>Thu, 29 May 2008 11:18:20 +0000</pubDate>
		<dc:creator>regumindtrail</dc:creator>
				<category><![CDATA[Architecture]]></category>

		<guid isPermaLink="false">http://regumindtrail.wordpress.com/?p=28</guid>
		<description><![CDATA[Today it would not raise many eye-brows if I said that an application server need not necessarily be a physical standalone entity or process and can actually be &#8220;assembled&#8221; from a set of available frameworks. Thanks to frameworks like Spring and standards like OSGi (and containers supporting it), this can be realized and not remain [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=regumindtrail.wordpress.com&#038;blog=732345&#038;post=28&#038;subd=regumindtrail&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Today it would not raise many eye-brows if I said that an application server need not necessarily be a physical standalone entity or process and can actually be &#8220;assembled&#8221; from a set of available frameworks. Thanks to frameworks like Spring and standards like OSGi (and containers supporting it), this can be realized and not remain just on paper.</p>
<p>How about an ESB? The picture that most of us have seen (and reproduced in this post : <a href="http://regumindtrail.wordpress.com/2007/09/14/myth-of-the-esb/">Myth of the ESB</a> ) appear to imply this big central infrastructure that acts as a conduit for all integration and message based interactions within an enterprise.</p>
<p>How easy or difficult is it to realize such a deployment in an organization? I have worked on SOA for a few years and more recently on deploying ESB as an infrastructure component in a SOA. Not once in these cases have we done such a deployment. Why? The answer is simple &#8211; most organizations take an incremental approach to SOA adoption and not all existing applications are amenable for migrating their business logic as services and thereafter accessed via an ESB.</p>
<p>Does this mean an ESB is only a promise? No, if you care to see it a little differently. I&#8217;ll go back to my earlier example of an application server. In the world of light-weight containers, components and dynamically loaded modules, the application server can be seen as a set of capabilities realized through an integrated set of components,frameworks,libraries and a runtime. The advantage here is that one can use as much of the application server as is needed.</p>
<p>If I were to apply the same analogy to an ESB, the first question that comes to my mind is &#8211; what are the capabilities of an ESB (or) what can an ESB provide to an application? IBM puts it nicely (and using a nice term) by defining a &#8220;<strong>Capability Model</strong>&#8221; in their Redbook on &#8220;Implementing an SOA using an ESB&#8221;. This capability model, for me, also serves as a good yard stick to measure an ESB offering &#8211; sort of a self compliance check.</p>
<p>A gist of the capability model is listed below:</p>
<ul>
<li>Communication : Routing, Addressing, Response / request, Publish / subscribe, Sync/Async e.t.c</li>
<li>Service Interaction: Service interface definition(WSDL), Substitution of service<br />
implementation, Service directory and discovery</li>
<li>Integration : Database, Legacy and application adapters, Service mapping, Protocol transformation</li>
<li>Quality of Service : Transactions, assured delivery</li>
<li>Security : Authentication, Authorization, Security standards</li>
<li>Service Level : Performance, Throughput, Availability</li>
<li>Message Processing : Content-based logic, Message and data<br />
transformations, Validation</li>
<li>Management and Autonomic : Administration capability, Logging, Metering, Monitoring</li>
<li>Modeling : Object modeling, Common business object models</li>
<li>Infrastructure Intelligence : Business rules, Policy driven behavior</li>
</ul>
<p>Now thats a huge list of capabilities and you may not need all of them &#8211; again like in an application server, you may not need JNDI, JTA, JMS and an EJB container all at once. However you can integrate these capabilities when needed.  Can you do the same for an ESB? Yes, you can. Its a different post altogether how one can do that. One might ask this question : but why take the trouble?</p>
<p>The answers come from the cost of deployment, the set of features truly available in the fancy ESBs and the flexibility of actually using an ESB&#8217;s features but within your own runtime process. There are quite a few light-weight ESBs that help you do this. If you carefully look at the features in these ESBs, you&#8217;ll notice that they fall short of the Capability Model in more ways than one. This is true for the commercial ESBs as well. The lack of standards adds to the disconnect. In the meanwhile, considering an ESB as a logical set of capabilities and using it that way puts many things into perspective &#8211; including the value of an ESB in a SOA.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/regumindtrail.wordpress.com/28/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/regumindtrail.wordpress.com/28/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/regumindtrail.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/regumindtrail.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=regumindtrail.wordpress.com&#038;blog=732345&#038;post=28&#038;subd=regumindtrail&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://regumindtrail.wordpress.com/2008/05/29/esb-a-logical-set-of-capabilities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/f64d5fd3f87afd85da2c1eada8c7522c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">regumindtrail</media:title>
		</media:content>
	</item>
	</channel>
</rss>
