<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4188530704585089318</id><updated>2012-02-27T20:34:16.150-08:00</updated><title type='text'>Srinath's Blog :My views of the World</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default?start-index=101&amp;max-results=100'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>137</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-8522022585615875930</id><published>2012-01-31T08:34:00.000-08:00</published><updated>2012-01-31T08:42:23.411-08:00</updated><title type='text'>Matching upward of 50k events per second close to real time?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;We have a usecase on a R&amp;amp;D project to match a user defined query against an event stream that has about 50k transactions/second&amp;nbsp;event rate. The usecase will use the results to make real time marketing&amp;nbsp;recommendations.&amp;nbsp;Following is a summary of the usecase.&lt;br /&gt;&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;System gets about 50k messages/sec generated from transaction servers.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Each message contains name value properties&lt;/li&gt;&lt;li&gt;Goal is to run user defined long running temporal queries on that data. For example, if a user has sent more than 100 SMS messages in the last month, give him a promotion. Marketing&amp;nbsp;specialists&amp;nbsp;provide those queries through a UI Wizard that deploys the query in to the system. (Queries are limited, they basically match properties or perform&amp;nbsp;aggregations&amp;nbsp;over a given time window)&lt;/li&gt;&lt;li&gt;Goal is to match queries against events and respond with promotions within 5s of&amp;nbsp;receiving&amp;nbsp;the last event that completes the&amp;nbsp;condition.&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;There are many ways we can try to answer the problem.&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;SQL -&amp;nbsp;traditional&amp;nbsp;answer is dump the data in to a RDBMS and&amp;nbsp;periodically&amp;nbsp;query (say every 3sec) the database and send&amp;nbsp;promotions&amp;nbsp;for all the matches. However, it is likely that the database could not keep up either writing that much of data or&amp;nbsp;querying&amp;nbsp;them.&amp;nbsp;&lt;/li&gt;&lt;li&gt;CEP - Complex Event Processing is the ideal answer for the problem. They could handle events on this scale and support user defined queries. However, current CEP engines does not support persistance, and if the server fails while running a query with 1 month window, there is no way to recover the state.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Hadoop - Query is a easy one for Hadoop, but it works on batch processing mode and likely to take more than 5s.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Stream processing - Stream processing could scale to this usecase, but handling of temporal queries is unclear.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Cassandra - idea of building&amp;nbsp;indexes&amp;nbsp;while writing data to&amp;nbsp;Cassandra&amp;nbsp;might work. The we can&amp;nbsp;periodically&amp;nbsp;query and send promotions for matching users. However, cassandra is bad on incrementing a value due to its idempotent nature, and that will be a problem with the parallel writes.&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;Following is the answer we are thinking about. It uses a combination of&amp;nbsp;Cassandra + Zookeeper + Caching.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-dlfkKhIw_0M/TygTjh6aCQI/AAAAAAAABf4/5gK82qr1axY/s1600/realtime-events.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="384" src="http://3.bp.blogspot.com/-dlfkKhIw_0M/TygTjh6aCQI/AAAAAAAABf4/5gK82qr1axY/s640/realtime-events.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;First, users define queries they need to monitor. Those queries are either simple conditions (which is easy to implement) or&amp;nbsp;aggregations&amp;nbsp;done over a period of time. The the Query complier generates a Matcher to detect the query condition and deploys the code in processing servers.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Each processing sever processes incoming events using matcher and updates in&amp;nbsp;memory&amp;nbsp;cache about detected conditions (e.g. count of&amp;nbsp;aggregation&amp;nbsp;values). There is a thread that&amp;nbsp;periodically locks the cassandra and update the values stored in cassandra to also include the new values. Processing servers will use Zookeeper to take a lock before updating cassandra.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There is also a thread that&amp;nbsp;periodically (once a day)&amp;nbsp;runs and update the counts maintained by cassandra to reflect the time windows by removing the &amp;nbsp;elapsed&amp;nbsp;day's count from cassandra count.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Finally, a promotion server&amp;nbsp;periodically&amp;nbsp;search indexes and send promotions for matching users.&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-8522022585615875930?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/8522022585615875930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=8522022585615875930' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8522022585615875930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8522022585615875930'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2012/01/matching-upward-of-50k-events-per.html' title='Matching upward of 50k events per second close to real time?'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-dlfkKhIw_0M/TygTjh6aCQI/AAAAAAAABf4/5gK82qr1axY/s72-c/realtime-events.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-83495582532338648</id><published>2012-01-22T18:10:00.000-08:00</published><updated>2012-01-22T18:10:24.778-08:00</updated><title type='text'>Steve Jobs's Biography</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I finished reading the Steve Jobs's biography, and following are some of the impressions.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;&lt;b&gt;He is an *^%^&amp;amp;@^&amp;amp;! : &lt;/b&gt;IMO Author does a nice job of presenting SJ's life without much sugar coating. His was a complex life and sometimes he has been&amp;nbsp;unbelievably&amp;nbsp;mean and irrational. For example, after he was being a millioner there was a time his&amp;nbsp;daughter&amp;nbsp;and her mother lived on welfare. Another was that at early time a company he worked for gave him a contract to do a&amp;nbsp;circuit&amp;nbsp;board design. It carries a bonus for each item saved less than 60 parts. He did it with Steve Wozniak and shared the main fee, but never mention the bonus to Steve. There are enough examples in the book on his&amp;nbsp;manipulations of people. Book gave impressions thing got better with time, but not conclusively.&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;b&gt;I am impressed by the SJ's ability to build amazing products without understanding the inner working or technology&lt;/b&gt;. May be his lack of technical&amp;nbsp;knowledge enables him to look at problems differently.&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;b&gt;He builds great product using&amp;nbsp;instincts&amp;nbsp;that &lt;/b&gt;&lt;i&gt;&lt;b&gt;"something is not quote right"&lt;/b&gt;.&amp;nbsp;&lt;/i&gt;&amp;nbsp;Basically he often says this is wrong (in&amp;nbsp;colorful&amp;nbsp;language of course), but did not really knew to say how to fix it. However, in his case doing that was enough to build great products. My takeaway is that when we work with great teams, we should point out problems and demand better even when we do not exactly know how to fix it.&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Focus on few items:&lt;/b&gt; SJ strongly&amp;nbsp;believed&amp;nbsp;that his company should work on few things, but do them better by focusing and&amp;nbsp;repeatedly&amp;nbsp;evaluating&amp;nbsp;and changing. He was always ready to go back and redo stuff, and as per the book, he has done that at least once with each of his major&amp;nbsp;successes.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Willingness to go back and redo stuff: As described in #4, his principle was focus on few and redo it until you get it right.&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Reality&amp;nbsp;distortion&amp;nbsp;fields:&lt;/b&gt; Book (term has been used before) uses SJ's ability to convince both himself and people around him that what&amp;nbsp;seemingly&amp;nbsp;impossible is possible. It has it's good and bad sides, where when goal is really possible, people end up doing it vs. when goal is impossible, people end up with failures. Regardless, to me this shows power of charisma.&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-83495582532338648?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/83495582532338648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=83495582532338648' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/83495582532338648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/83495582532338648'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2012/01/steve-jobss-biography.html' title='Steve Jobs&apos;s Biography'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-2993030552451022458</id><published>2012-01-15T19:30:00.000-08:00</published><updated>2012-01-15T19:30:02.950-08:00</updated><title type='text'>Distributed Communication: Causes and effects</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;This is an effort to look at drivers for some of the key&amp;nbsp;distributed&amp;nbsp;communication technologies. I created this for one of my classes.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-c7Xg-ZqmjQw/TxOZE-8ZR0I/AAAAAAAABfk/VvnyQOmYq8I/s1600/DistributedCommnications.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="600" src="http://1.bp.blogspot.com/-c7Xg-ZqmjQw/TxOZE-8ZR0I/AAAAAAAABfk/VvnyQOmYq8I/s640/DistributedCommnications.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-2993030552451022458?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/2993030552451022458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=2993030552451022458' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2993030552451022458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2993030552451022458'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2012/01/distributed-communication-causes-and.html' title='Distributed Communication: Causes and effects'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-c7Xg-ZqmjQw/TxOZE-8ZR0I/AAAAAAAABfk/VvnyQOmYq8I/s72-c/DistributedCommnications.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-5322568058430495929</id><published>2011-12-09T06:52:00.001-08:00</published><updated>2011-12-14T02:25:07.213-08:00</updated><title type='text'>Siddhi: A Second Look at Complex Event Processing Implementations</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Following slide deck presents &lt;a href="http://sourceforge.net/projects/siddhi/"&gt;Siddhi&lt;/a&gt;, a University of Moaratuwa final year project I worked with Suho, Isuru, Subash, and Kasun last year. Siddhi is a Complex Event Processing Implementation that incorporates most of the state of the art advances. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.slideshare.net/hemapani/siddhi-a-second-look-at-complex-event-processing-implementations" target="_blank" title="Siddhi: A Second Look at Complex Event Processing Implementations"&gt;Siddhi: A Second Look at Complex Event Processing Implementations&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;div id="__ss_10476024" style="width: 425px;"&gt;&lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10476024" width="425"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;We presented the Siddhi paper titled &lt;a href="http://people.apache.org/~hemapani/research/papers/siddi-gce2011.pdf"&gt;Siddhi: A Second Look at Complex Event Processing Architectures&lt;/a&gt;&lt;i&gt;, in Gateway Computing Environments Workshop (GCE), Seattle, 2011 (Co-located with Super Computing 2011). Above slides provide an outline of our work. &lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;Following three graph's shows some of the key results of the Paper. Other CEP engine is Esper, which is a well-known opensource CEP engine. In the given scenarios we did from about 0.3 times to 10 times better. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Query 1: Filter (select symbol, price from StockTick(price&amp;gt;6))&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-x4ojPnqucos/TuIi3RH1l0I/AAAAAAAABes/Jr1WO4Pxg4I/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img border="0" height="183" src="http://3.bp.blogspot.com/-x4ojPnqucos/TuIi3RH1l0I/AAAAAAAABes/Jr1WO4Pxg4I/s400/1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Query2: Window (select irstream symbol, price, avg(price) from StockTick(symbol=’IBM’).win:time(.005))&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-U4rsMLe0-H8/TuIiuxHIyAI/AAAAAAAABek/r9LzvBQFy5Y/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img border="0" height="187" src="http://2.bp.blogspot.com/-U4rsMLe0-H8/TuIiuxHIyAI/AAAAAAAABek/r9LzvBQFy5Y/s400/2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Query3: Followed by pattern (select f.symbol, p.accountNumber, f.accountNumber from pattern [every f=FraudWarningEvent2 -&amp;gt;&amp;nbsp;p=PINChangeEvent2(accountNumber= f.accountNumber)])&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-uFR9Vk1NBKQ/TuIis4cIaJI/AAAAAAAABec/iP9z-SLtF6Q/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="183" src="http://2.bp.blogspot.com/-uFR9Vk1NBKQ/TuIis4cIaJI/AAAAAAAABec/iP9z-SLtF6Q/s400/3.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Siddhi is currently being used by&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://ceng.usc.edu/~simmhan/pubs/simmhan-usctr2011-smartgridinformatics.pdf"&gt;Los Angeles Smart Grid Demonstration Project&lt;/a&gt;&lt;/li&gt;&lt;li&gt;It forecasts electricity demand, respond to peak load events, and improves sustainable use of energy by consumers.&lt;/li&gt;&lt;li&gt;Open MRS NCD module – idea is to detect and notify patient when certain conditions have occurredhttps://wiki.openmrs.org/display/docs/Notifiable+Condition+Detector+%28NCD%29+Module&lt;/li&gt;&lt;/ul&gt;Also likely that future WSO2 Complex Event Processing Server would also use Siddhi, yes that is if it can continue to do better.&amp;nbsp;Siddhi code can be found from http://siddhi.sourceforge.net/, and If you are interested to help, please join us at architecture@wso2.org for discussions.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-5322568058430495929?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/5322568058430495929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=5322568058430495929' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5322568058430495929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5322568058430495929'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/12/siddhi-second-look-at-complex-event.html' title='Siddhi: A Second Look at Complex Event Processing Implementations'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-x4ojPnqucos/TuIi3RH1l0I/AAAAAAAABes/Jr1WO4Pxg4I/s72-c/1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-2710337045021471949</id><published>2011-12-09T02:44:00.001-08:00</published><updated>2011-12-09T06:29:45.099-08:00</updated><title type='text'>CSE 2011 Keynote: Distributed Systems: What?  Why? And bit of How?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Last week I did the keynote for the Annual research conference of Computer Science and Engineering Department, University of Moratuwa, and following are the slides I used. I had to talked about distributed systems in 30 minutes, and it was a interesting challenge. I will write down some of the things I talked about soon, specially the timeline for some of the distributed systems technologies.&lt;br /&gt;&lt;br /&gt;&lt;div id="__ss_10518554" style="width: 425px;"&gt;&lt;object height="355" id="__sse10518554" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=distributedsystems-111208110102-phpapp01&amp;stripped_title=distributed-systems-what-why-and-bit-of-how&amp;userName=hemapani" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;param name="wmode" value="transparent"/&gt;&lt;embed name="__sse10518554" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=distributedsystems-111208110102-phpapp01&amp;stripped_title=distributed-systems-what-why-and-bit-of-how&amp;userName=hemapani" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/hemapani"&gt;Srinath Perera&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-2710337045021471949?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/2710337045021471949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=2710337045021471949' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2710337045021471949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2710337045021471949'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/12/cse-2011-keynote-distributed-systems.html' title='CSE 2011 Keynote: Distributed Systems: What?  Why? And bit of How?'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-2015504931200241150</id><published>2011-11-08T02:00:00.000-08:00</published><updated>2011-11-08T02:00:53.138-08:00</updated><title type='text'>WSO2 Con 2011: Data Panel</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Following is the recording of the data panel, and you can find the openning I did from&amp;nbsp;&lt;a href="http://srinathsview.blogspot.com/2011/09/data-data-everywhere-and-challenges.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/Q98ru1L4hBk" width="420"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-2015504931200241150?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/2015504931200241150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=2015504931200241150' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2015504931200241150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2015504931200241150'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/11/wso2-con-2011-data-panel.html' title='WSO2 Con 2011: Data Panel'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/Q98ru1L4hBk/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-190008408672136248</id><published>2011-10-31T23:03:00.000-07:00</published><updated>2011-11-01T18:58:58.188-07:00</updated><title type='text'>Shelan's talk at Telecom 2011</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/AKqs8_zRqZ4" width="560"&gt;&lt;/iframe&gt;&lt;br /&gt;Shelan's talk at Telecom 2011&amp;nbsp;(&lt;a href="http://world2011.itu.int/"&gt;http://world201&lt;wbr&gt;&lt;/wbr&gt;1.itu.int&lt;/a&gt;) participating as a young innovator. The conference was held in Vianna. His proposal is a&amp;nbsp;medical&amp;nbsp;report management framework based on &lt;a href="http://mahasen.org/"&gt;Mahasen project&lt;/a&gt;, a final year project at University of Moaratuwa to build a scalable storage framework building on to of P2P technologies.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-190008408672136248?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/190008408672136248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=190008408672136248' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/190008408672136248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/190008408672136248'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/10/shelans-talk-at-telecom-2011.html' title='Shelan&apos;s talk at Telecom 2011'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/AKqs8_zRqZ4/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-3730128520116526870</id><published>2011-10-29T19:29:00.000-07:00</published><updated>2011-11-08T16:35:10.989-08:00</updated><title type='text'>List of Known Scalable Architecture Templates</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;For most Architects, "Scale" is the most illusive aspect of software architectures. Not surprisingly, it is also one of the most sort-out goals of todays software design. However, computer scientists do not yet know of a single architecture that can scale for all scenarios. Instead, we design scalable architectures case by case, composing known scalable patterns together and trusting our instincts. Simply put, building a scalable system has become more an art than a science. &lt;br /&gt;&lt;br /&gt;We learn art by learning masterpieces, and scale should not be different! In this post I am listing several architectures that are known to be scalable. Often, architects can use those known scalable architectures as patterns to build new scalable architectures. &lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;LB (Load Balancers) + Shared nothing Units&lt;/b&gt; - This model includes a set of units that does not share anything with each other fronted with a load balancer that routes incoming messages to a unit based on some criteria (round-robin, based on load etc.).  A unit can be a single node or a cluster of tightly coupled nodes. As the Load balancer, users can use DNS round robin, hardware load balancers, or software load balancers. It is also possible to build a hierarchy of load balancers that includes combination of above load balancers. The article, &lt;a href="http://db.cs.berkeley.edu/papers/hpts85-nothing.pdf"&gt;"The Case for Shared Nothing Architecture"&lt;/a&gt; by Michael Stonebraker, discusses these architectures&lt;/li&gt;&lt;li&gt;&lt;b&gt;LB + Stateless Nodes + Scalable Storage&lt;/b&gt; - Classical &lt;a href="http://en.wikipedia.org/wiki/Multitier_architecture"&gt;Three tire Web architectures&lt;/a&gt; follows this model. This model includes several stateless nodes talking to a scalable storage, and a load balancer distributes load among the nodes. In this model, the storage is the limiting factor, but with NoSQL storages, it is possible to build very scalable systems using this model.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Peer to Peer Architectures (Distributed Hash Table (DHT) and Content Addressable Networks (CAN))&lt;/b&gt; - This model provides several classical scalable algorithm, which almost all aspects about the algorithm scaling up logarithmically. Example systems are Chord, Pastry (FreePastry), and CAN. Also several of the NoSQL systems like Cassandra is based on P2P architectures. The article &lt;a href="http://www.cs.berkeley.edu/~istoica/papers/2003/cacm03.pdf"&gt;"Looking up data in P2P systems"&lt;/a&gt; discuss these models in detail.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Distributed Queues&lt;/b&gt; – This model is based on a Queue implementation (FIFO delivery) implemented as a network service. This model has found wide adoption through JMS queues. Often this is used as task queues, and scalable versions of task queues scale out by keeping a hierarchy of queues where lower levels sends jobs to upper levels when they cannot handle the load.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Publish/Subscribe Paradigm&lt;/b&gt; - implemented using network publish subscribe brokers that route messages to each other. The classical paper &lt;a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.10.1076&amp;amp;rep=rep1&amp;amp;type=pdf"&gt;"The many faces of publish/subscribe"&lt;/a&gt; describes this model in detail and among examples of this model are &lt;a href="http://www.naradabrokering.org/"&gt;NaradaBroker&lt;/a&gt; and &lt;a href="http://dl.acm.org/citation.cfm?id=1615220"&gt;EventJava&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Gossip and Nature-inspired Architectures&lt;/b&gt; - This model follows the idea of gossip in normal life, and the idea is that each node randomly pick and exchange information with follow nodes. Just like in real life, Gossip&amp;nbsp;algorithms&amp;nbsp;spread the information&amp;nbsp;surprisingly&amp;nbsp;fast. Another aspect of this are Biology inspired algorithms. Natural world has remarkable algorithm for coordination and scale. For example, Ants, Folks, Bees etc., are capable of coordinating in scalable manner with minimal communication. These algorithms borrow ideas from such occurrences. The paper &lt;a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.75.2916&amp;amp;rep=rep1&amp;amp;type=pdf"&gt;"From epidemics to distributed computing"&lt;/a&gt; discusses the models.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Map Reduce/ Data flows&lt;/b&gt; - First introduced by Google, MapReduce provides a scalable pattern to describe and&amp;nbsp;execute&amp;nbsp;Jobs. Although simple, it is the primary pattern in use for OLAP use cases. Data flows are a more advanced approach to express executions, and  projects like Dryad and Pig provide scalable frameworks to execute data flows. The paper, &amp;nbsp;&lt;a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.120.7010&amp;amp;rep=rep1&amp;amp;type=pdf"&gt;"MapReduce: Simplified data processing on large clusters"&lt;/a&gt; &amp;nbsp;provides a detailed discussion of the topic. Apache Hadoop is an implementation of this model.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Tree of responsibility&lt;/b&gt; - This model breaks the problem recursively and assign to a tree, each parent node delegating work to children nodes. This model is scalable and used within several scalable architectures.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Stream processing&lt;/b&gt;   - This model is used to process data streams, data that is keep coming. This type of processing is supported through a network for processing nodes. (e.g. Aurora, Twitter Strom, Apache S4)&lt;/li&gt;&lt;li&gt;&lt;b&gt;Scalable Storages&lt;/b&gt; – ranges from Databases, NoSQL storages, Service Registries, to File systems. Following &lt;a href="http://www.infoq.com/articles/perera-data-storage-haystack"&gt;article&lt;/a&gt; discusses their scalability aspects.&lt;/li&gt;&lt;/ol&gt;Having said that there are only 3 way to scale: that is distribution, caching, and asynchronous processing. Each of the above architectures uses combinations of those in their implementation. On the other hand, the scalability killer, apart from bad coding, is global coordination. Simply put, any kind of global coordination will limit the scalability of your system. Each of aforementioned architectures has managed to achieve local coordination instead of global coordination. &lt;br /&gt;&lt;br /&gt;However, combining them to create a scalable architecture is not at all trivial undertaking. Unless you are trying to discover new scalable pattern, often it is a good idea to solve problems by adopting known scalable solutions than coming up with new architecture using first principals.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-3730128520116526870?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/3730128520116526870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=3730128520116526870' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/3730128520116526870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/3730128520116526870'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/10/list-of-known-scalable-architecture.html' title='List of Known Scalable Architecture Templates'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-104893217856217627</id><published>2011-10-26T20:14:00.000-07:00</published><updated>2011-10-29T18:46:34.007-07:00</updated><title type='text'>InfoQ Article: Finding the Right Data Solution for Your Application in the Data Storage Haystack</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The article &lt;i&gt;"&lt;a href="http://www.infoq.com/articles/perera-data-storage-haystack"&gt;Finding the Right Data Solution for Your Application in the Data Storage Haystack&lt;/a&gt;" &lt;/i&gt;just went live on InfoQ and you can also find the slide deck of the NoSQL Now talk in &lt;a href="http://srinathsview.blogspot.com/2011/08/following-are-slides-for-my-nowsql-now.html"&gt;this&amp;nbsp;earlier&amp;nbsp;post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I firmly&amp;nbsp;believe&amp;nbsp;that the reason scale and some of other problems are too hard&amp;nbsp;because&amp;nbsp;we are too lazy to consider specific cases and analysis them in detail. Instead we are trying to find general answers that works everywhere. For an example, I can not find a taxonomy of Computer Science usecase/domins anywhere (will write about this in a later post).&lt;br /&gt;&lt;br /&gt;Following article takes four parameters about an application/usecas, then take some 40+ cases that arises from different combination of those parameters and make concrete recommendations for each case from the storage solutions  Haystack (e.g. Local memory, Relational, Files, Distributed Cache, Column Family Storage, Document Storage, Name value pairs, Graph DBs, Service Registries, Queue, and Tuple Space etc.).&lt;br /&gt;&lt;br /&gt;It is intended as a guide to choose the right storage (SQL or NoSQL) solution for a given usecase. &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;Four parameters are&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&amp;nbsp;Types of data stored (structured, unstructured, semi-structured)&lt;/li&gt;&lt;li&gt;Scalability requirements (small 1-4, &amp;nbsp;medium 10s, and very large 100s)&lt;/li&gt;&lt;li&gt;Nature of data retrieval (i.e. Types of Queries: key lookup, WHERE, JOIN, Offline)&lt;/li&gt;&lt;li&gt;Consistency requirements (ACID, single atomic Operation, loose consistency)&lt;/li&gt;&lt;/ul&gt;I do not consider the second part is done in any way. I am sure there is lot to argue and analyze there, and please let me know if you have any&amp;nbsp;thoughts&amp;nbsp;on this.&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-104893217856217627?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/104893217856217627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=104893217856217627' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/104893217856217627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/104893217856217627'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/10/infoq-article-finding-right-data.html' title='InfoQ Article: Finding the Right Data Solution for Your Application in the Data Storage Haystack'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-6334885917787921433</id><published>2011-10-25T08:44:00.000-07:00</published><updated>2011-10-25T08:44:12.104-07:00</updated><title type='text'>Video: Multi-tenancy: Winning formula for a PaaS</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Video for my talk on Multi-tenancy at WSO2Con 2011. You can find the slides in &lt;a href="http://srinathsview.blogspot.com/2011/09/multi-tenancy-winning-formula-for-paas.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/BpZKEb9aKd0" width="420"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-6334885917787921433?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/6334885917787921433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=6334885917787921433' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6334885917787921433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6334885917787921433'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/10/video-multi-tenancy-winning-formula-for.html' title='Video: Multi-tenancy: Winning formula for a PaaS'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/BpZKEb9aKd0/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-2890135310473062558</id><published>2011-10-18T07:18:00.000-07:00</published><updated>2011-10-18T07:22:31.518-07:00</updated><title type='text'>Beautiful Colombo</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="display: block; margin-bottom: 4px; margin-left: 0px; margin-right: 0px; margin-top: 12px;"&gt;Great slide deck on Colombo! there is a saying that the frog lives in the pond never knows the&amp;nbsp;fragrance&amp;nbsp;of lotus while the bee from the forest comes to&amp;nbsp;savor&amp;nbsp;it ;)&lt;/span&gt;&lt;span style="display: block; margin-bottom: 4px; margin-left: 0px; margin-right: 0px; margin-top: 12px;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/9746509" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-2890135310473062558?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/2890135310473062558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=2890135310473062558' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2890135310473062558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2890135310473062558'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/10/beautiful-colombo.html' title='Beautiful Colombo'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-8047422436984440347</id><published>2011-10-14T20:52:00.000-07:00</published><updated>2011-10-14T20:57:02.810-07:00</updated><title type='text'>Why We need Multi-tenancy?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;div class="p1"&gt;&lt;/div&gt;&lt;div class="p1"&gt;This is an expert from my paper, &amp;nbsp;&lt;a href="http://people.apache.org/~hemapani/research/papers/ode-multi-tenancy.pdf"&gt;"A Multi-tenant Architecture for Business Process Execution"&lt;/a&gt;&amp;nbsp;that was presented at &amp;nbsp;9th International Conference on Web Services (ICWS), 2011 with some changes to give context.&amp;nbsp;&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;This is related to &lt;a href="http://sumedha.blogspot.com/2011/10/battle-multi-tenancy-vs-single-tenancy.html?utm_source=twitterfeed&amp;amp;utm_medium=twitter"&gt;Sumedha's blog&lt;/a&gt; and &lt;a href="http://www.silicon.com/technology/software/2011/10/06/oracles-public-cloud-unveiled-39748052/?s_cid=115"&gt;Larry&amp;nbsp;Elision's&amp;nbsp;comment&lt;/a&gt;&amp;nbsp;on Multi-tenancy (MT). Also similar ideas were presented in my talk at WSO2 Con &lt;a href="http://www.slideshare.net/hemapani/multitenancy-winning-formula-for-a-paas"&gt;Multi-tenancy: Winning formula for a PaaS&lt;/a&gt;.&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;b&gt;What is Multi-tenancy?&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;The idea is that the same server instance can support multiple tenants. In other words, it gives the illusion to each user that he has his own server/App while actually, the server is shared among many. MT enables hosting organizations to mix and match heavily used and lightly used tenants together, thus enabling them to run the overall infrastructure with much less resources.&amp;nbsp;&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;It is best compared to an apartment complex, where the owner of each apartment (tenant) thinks it is his own home, while the apartment complex shares resources like real state, plumbing, ventilation, security etc. Idea is to provide isolation while achieving maximum sharing.&amp;nbsp;&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;b&gt;Why Multi-tenancy?&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;1. Each VM runs its own OS etc., while with MT, the sharing happens at much higher level than VMs, thus enabling better resource sharing.&amp;nbsp;&lt;/div&gt;&lt;div class="p1"&gt;2. Supporting Pay as you go within a Cloud platform.&amp;nbsp;&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;Let me explain this in bit more detail. Cloud platforms, SaaS, PaaS have “pay-as-you-go” model as a key assumption. That is users can ask for resources and use them only when he needs them and should be able to release resources when he does not. If this assumption holds, applications while not being used should cost the user almost nothing. Therefore, to support pay-as-you-go model, the both SaaS or PaaS middleware should be able to support applications owned by many users (we will call them tenants) within the same server while allocating resources on demand.&amp;nbsp;&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;It is possible to do this through IaaS where one can run a VM per each user. However, often many of the applications and users are not active (in use). For example, if a hosting provider has 10,000 tenants and if only few hundred are in use at a given time, then running a VM for each is a waste. Since booting up a VM often takes time and does not complete fast enough to serve the first request, keeping VMs in disk and booting VMs on demand is often not practical.&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;With MT, the cloud provider can handle this by allocating tenants to servers based on the projected load (e.g. cloud provider can give different classes of QOS). He should place many rarely used tenants in the same server using MT, thus reducing the cost.&amp;nbsp;&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;However, there may be other way to implement pay-as-you-go, and I would love to hear about them.&amp;nbsp;&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;On final note, implementing MT is not easy by any means, and it take some thinking and hard work. Main challenges are data isolation, execution isolation, and performance isolation. I will talk about them more in a later blog. Mean while, following papers talks about how WSO2 implemented some of them.&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;div class="p1"&gt;&lt;/div&gt;&lt;ol style="background-color: white; font-family: arial, sans-serif; font-size: 16px; text-align: -webkit-auto;"&gt;&lt;li style="margin-left: 15px;"&gt;A. Azeez and S. Perera et al.,&amp;nbsp;&lt;a href="http://people.apache.org/~hemapani/research/papers/stratos.pdf" style="color: #0000cc;" target="_blank"&gt;WSO2 Stratos: An Industrial Stack to Support Cloud Computing&lt;/a&gt;, IT: Methods and Applications of Informatics and Information Technology Journal, the special Issue on Cloud Computing, 2011.&lt;/li&gt;&lt;li style="margin-left: 15px;"&gt;Milinda Pathirage, Srinath Perera, Sanjiva Weerawarana, Indika Kumara,&amp;nbsp;&lt;a href="http://people.apache.org/~hemapani/research/papers/ode-multi-tenancy.pdf" style="color: #0000cc;" target="_blank"&gt;A Multi-tenant Architecture for Business Process Execution&lt;/a&gt;, 9th International Conference on Web Services (ICWS), 2011&amp;nbsp;&lt;/li&gt;&lt;li style="margin-left: 15px;"&gt;&lt;a href="http://draft.blogger.com/blogger.g?blogID=4188530704585089318" style="color: #0000cc;"&gt;Paul Fremantle, Srinath Perera, Afkham Azeez, Sameera Jayasoma, Sumedha Rubasinghe, Ruwan Linton, Sanjiva Weerawarana, and Samisa Abeysinghe.&amp;nbsp;&lt;/a&gt;&lt;a href="http://people.apache.org/~hemapani/research/papers/carbon.pdf" style="color: #0000cc;" target="_blank"&gt;Carbon: towards a server building framework for SOA platform.&lt;/a&gt;&amp;nbsp;In Proceedings of the 5th International Workshop on Middleware for Service Oriented Computing (MW4SOC '10). ACM, New York, NY, USA, 7-12. DOI=10.1145/1890912.1890914&amp;nbsp;&lt;a href="http://doi.acm.org/10.1145/1890912.1890914" style="color: #0000cc;" target="_blank"&gt;http://doi.acm.org/10.1145/&lt;wbr&gt;&lt;/wbr&gt;1890912.1890914&lt;/a&gt;, 2010&lt;/li&gt;&lt;li style="margin-left: 15px;"&gt;Afkham Azeez, Srinath Perera, Dimuthu Gamage, Ruwan Linton, Prabath Siriwardana, Dimuthu Leelaratne, Sanjiva Weerawarana, Paul Fremantle,&amp;nbsp;&lt;a href="http://people.apache.org/~hemapani/research/papers/multitenancy.pdf" style="color: #0000cc;" target="_blank"&gt;Multi-Tenant SOA Middleware for Cloud Computing&lt;/a&gt;&amp;nbsp;3rd International Conference on Cloud Computing, Florida, 2010&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-8047422436984440347?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/8047422436984440347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=8047422436984440347' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8047422436984440347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8047422436984440347'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/10/why-we-need-multi-tenancy.html' title='Why We need Multi-tenancy?'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-6318680492172404363</id><published>2011-10-10T09:05:00.000-07:00</published><updated>2011-10-10T09:05:06.057-07:00</updated><title type='text'>ICWS Paper: A Multi-tenant Architecture for Business Process Execution</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Following are the slides for the paper "&lt;a href="http://people.apache.org/~hemapani/research/papers/ode-multi-tenancy.pdf"&gt;A Multi-tenant Architecture for Business Process Executions&lt;/a&gt;" that I presented at ICWS 2011 last July. The paper discusses in detail our work on extending multi-tenancy support to&amp;nbsp;Business&amp;nbsp;processes, and the discussed technology is now in used within WSO2&amp;nbsp;Business&amp;nbsp;Process Server and WSO2 Stratos. &lt;br /&gt;&lt;div id="__ss_9624425" style="width: 425px;"&gt;&lt;br /&gt;&lt;object height="355" id="__sse9624425" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=bps-mt-111010000656-phpapp01&amp;stripped_title=bps-mt&amp;userName=hemapani" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse9624425" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=bps-mt-111010000656-phpapp01&amp;stripped_title=bps-mt&amp;userName=hemapani" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: 16px;"&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;Milinda Pathirage, Srinath Perera, Sanjiva Weerawarana, Indika Kumara,&amp;nbsp;&lt;/span&gt;&lt;a href="http://people.apache.org/~hemapani/research/papers/ode-multi-tenancy.pdf" style="font-family: arial; font-size: 16px; text-align: -webkit-auto;"&gt;A Multi-tenant Architecture for Business Process Execution&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: 16px; text-align: -webkit-auto;"&gt;, 9th International Conference on Web Services (ICWS), 2011&lt;/span&gt;&lt;div&gt;&lt;div style="text-align: -webkit-auto;"&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: -webkit-auto;"&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;Abstract:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: -webkit-auto;"&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: -webkit-auto;"&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;div&gt;Cloud computing, as a concept, promises cost&amp;nbsp;savings to end-users by letting them outsource their non-critical&amp;nbsp;business functions to a third party in pay-as-you-go style.&lt;/div&gt;&lt;div&gt;However, to enable economic pay-as-you-go services, we need&amp;nbsp;Cloud middleware that maximizes sharing and support near&amp;nbsp;zero costs for unused applications. Multi-tenancy, which let&amp;nbsp;multiple tenants (user) to share a single application instance&amp;nbsp;securely, is a key enabler for building such a middleware. On&amp;nbsp;the other hand, Business processes capture Business logic of&amp;nbsp;organizations in an abstract and reusable manner, and hence&amp;nbsp;play a key role in most organizations. This paper presents&amp;nbsp;the design and architecture of a Multi-tenant Workflow engine&amp;nbsp;while discussing in detail potential use cases of such architecture.&lt;/div&gt;&lt;div&gt;Primary contributions of this paper are motivating&amp;nbsp;workflow multi-tenancy, and the design and implementation of&amp;nbsp;multi-tenant workflow engine that enables multiple tenants to&amp;nbsp;run their workflows securely within the same workflow engine&amp;nbsp;instance without modifications to the workflows.&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-6318680492172404363?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/6318680492172404363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=6318680492172404363' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6318680492172404363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6318680492172404363'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/10/icws-paper-multi-tenant-architecture.html' title='ICWS Paper: A Multi-tenant Architecture for Business Process Execution'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-5857818515210314009</id><published>2011-09-22T09:39:00.000-07:00</published><updated>2011-09-22T09:39:32.794-07:00</updated><title type='text'>Writing Your First Thrift Service</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Thrift provides a Binary RPC protocol for supporting service invocations, and it provides toolkits to generate thrift binding for several languages, including Java, C, C++ etc. Then just like with Web Services, the thrift service invocations will agree on the wire and enable multiple programming&amp;nbsp;language&amp;nbsp;implementations to talk to each other.&lt;br /&gt;&lt;br /&gt;If you&amp;nbsp;remember&amp;nbsp; CORBA, it was the same thing. Well except for the fact that it was nightmare to write a service using CORBA tools.&lt;br /&gt;&lt;br /&gt;Well why am I&amp;nbsp;interested&amp;nbsp;with Thrift? Well simple&amp;nbsp;answer&amp;nbsp;is it is fast, and has lot of traction.&lt;br /&gt;&lt;br /&gt;Luckily writing a thrift service is pretty easy. Following is how I did it.&lt;br /&gt;&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;Download and build thrift from&amp;nbsp;&lt;a href="http://thrift.apache.org/"&gt;thrift.apache.org&lt;/a&gt;. Look at README for&amp;nbsp;instructions. However, I had to disable Erlang binding while running ./configure (&lt;span class="Apple-style-span" style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: x-small; line-height: 16px;"&gt;&amp;nbsp;--&lt;em style="color: black; font-style: normal; font-weight: bold;"&gt;without-erlang&lt;/em&gt;&lt;/span&gt;).&amp;nbsp;&lt;/li&gt;&lt;li&gt;Then first step is to write the thrift IDL. Mine did looked like following.&amp;nbsp;&lt;a href="http://wiki.apache.org/thrift/Tutorial"&gt;http://wiki.apache.org/thrift/Tutorial&lt;/a&gt; is the best source to learn how to write a Thrift IDL. &lt;br /&gt;&lt;pre&gt;namespace java Test&lt;br /&gt;struct Tuple {&lt;br /&gt;  1: list&lt;string&gt; tuples,&lt;br /&gt;}&lt;br /&gt;service Bissa {&lt;br /&gt;void put(1:Tuple tuple),&lt;br /&gt;list&lt;tuple&gt; read(1:string pattern),&lt;br /&gt;list&lt;tuple&gt; take(1:string pattern)&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/tuple&gt;&lt;/tuple&gt;&lt;/string&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;The I ran thrift to generate code. Command looked like&amp;nbsp;&lt;span class="Apple-style-span" style="background-color: #f6f6f6; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13px;"&gt;&lt;i&gt;thrift --gen java bissa.thrift.&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Above created a service class and types define in the IDL. Then I wrote a server that uses the generated code and it looked like following. Sample class can be found from&amp;nbsp;http://svn.apache.org/viewvc/thrift/trunk/tutorial/java. &lt;pre&gt;//This is a class that implement Bissa.Iface interface (class generated by thrift to represent the service. )&lt;br /&gt;BissaThriftServer handler = new BissaThriftServer(bissa);&lt;br /&gt;&lt;br /&gt;//then we initialize a processor passing that handler (implementation)&lt;br /&gt;Bissa.Processor&lt;bissathriftserver&gt; processor = new Bissa.Processor&lt;bissathriftserver&gt;(handler);&lt;br /&gt;TServerTransport serverTransport = new TServerSocket(thriftPort);&lt;br /&gt;// Use this for a multithreaded server&lt;br /&gt;TServer server = new TThreadPoolServer(new TThreadPoolServer.Args(serverTransport).processor(processor));&lt;br /&gt;System.out.println("Starting the simple server... on port "+ thriftPort);&lt;br /&gt;server.serve();&lt;br /&gt;&lt;br /&gt;&lt;/bissathriftserver&gt;&lt;/bissathriftserver&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Client looked like following.&amp;nbsp;&lt;pre&gt; TTransport transport;&lt;br /&gt;transport = new TSocket("localhost", 9092);&lt;br /&gt;transport.open();&lt;br /&gt;TProtocol protocol = new TBinaryProtocol(transport);&lt;br /&gt;&lt;br /&gt;//following is generated code&lt;br /&gt;Bissa.Client client = new Bissa.Client(protocol);&lt;br /&gt;//now u have a stub, use it&lt;br /&gt;client.put(BissaThriftServer.createTuple("A", "B"));&lt;br /&gt;client.close()&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;You might also find &lt;a href="http://fundoonick.blogspot.com/2010/06/sample-thrift-program-for-server-in.html"&gt;this blog&lt;/a&gt; useful.&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-5857818515210314009?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/5857818515210314009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=5857818515210314009' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5857818515210314009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5857818515210314009'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/09/writing-your-first-thrift-service.html' title='Writing Your First Thrift Service'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-5297747442120261767</id><published>2011-09-17T23:19:00.000-07:00</published><updated>2011-09-17T23:19:46.771-07:00</updated><title type='text'>Data, Data Everywhere and Challenges</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I had the pleasure and privilege of moderating the Data Panel at &lt;a href="http://wso2.com/events/wso2con-2011-colombo/"&gt;WSO2 Conference 2011&lt;/a&gt; that composed of the distinguished panel &lt;a href="http://www.linkedin.com/in/sumedharubasinghe"&gt;Sumedha Rubasinghe&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/C._Mohan"&gt;C. Mohan&lt;/a&gt;, and &lt;a href="http://www.linkedin.com/in/ghohpe"&gt;Gregor Hohpe&lt;/a&gt;. Obviously, I did my homework for the panel and gave some thoughts on what to say. I felt at the end that I should write down the opening I did. So, here we go.&lt;br /&gt;&lt;br /&gt;Let me start with a quote from Tim Barnes Lee, the founder of the Internet. He said, "Data is a precious thing because they last longer than systems". For example, if you take systems like Google or Yahoo, you will many who argue that the data those companies have collected over their operation are indeed the most important assert they have. Those data give them power to either optimize what they do or to go on new directions.&lt;br /&gt;&lt;br /&gt;If you look around, you will see there is so much data being available. Let me try to touch on few types of data. &lt;br /&gt;&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;Sensors – Human activities (e.g. near field communication), RFID, Nature (Weather), Surveillance, Traffic, Intelligence etc.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Activities in World Wide Web&lt;/li&gt;&lt;li&gt;POS and transaction logs&amp;nbsp;&lt;/li&gt;&lt;li&gt;Social networks&lt;/li&gt;&lt;li&gt;Data collected by governments, NGOs etc.&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;The paper,&amp;nbsp;Miller, H.J., &lt;a href="http://www.fednewyork.org/research/conference/2009/jrs/Miller.pdf"&gt;The Data Avalanche is here, Shouldn't we be digging?&lt;/a&gt; Journal of Regional Science, 2010, is a nice discussion on the subject.&lt;br /&gt;&lt;br /&gt;Data do come in many shapes and forms. Some of them are moving data—or data steams--while others are in rest; some are public, some are tightly controlled; some are small, and some are large etc.&lt;br /&gt;&lt;br /&gt;Thinks about a day in your life, and you will realize how much data are around you, that you know that is available; but very hard to accessed or processed. For example, do you know the distribution of your spending? Why it is so hard to find the best deal to by a used car? Why cannot I find the best route to drive now? the list goes on and on..&lt;br /&gt;&lt;br /&gt;It is said that we are drowning in an ocean of data, and making sense of that data is considered to be the challenge for our time. To think about it, Google have made a fortune by solving a seemingly simple problem: the content-based search. There are so many companies that either provide data (e.g. Maps, best deals) or provide add on services on top of the data (e.g. analytics, targeted advertising etc.). &lt;br /&gt;&lt;br /&gt;As I mentioned earlier, we have two types of data. First, moving data are data streams, and users want to process them near real time to either adopt themselves (e.g. monitoring the stock market) or to control the outcome (e.g. Battle field observations or logistic management). The Second is data in the rest. We want to store them, search then, and then process them. This processing is for either to detect some patterns &amp;nbsp;(fraud detection, anti-money laundering, surveillance) or to make predications (e.g. predict the cost of a project, predict natural disasters).&lt;br /&gt;&lt;br /&gt;So broadly we have two main challenges.&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;How to store and query data in a scalable manner?&amp;nbsp;&lt;/li&gt;&lt;li&gt;How to make sense of data (how to run the transformations data-&amp;gt;information-&amp;gt;knowledge -&amp;gt;insight)&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;And there are many other challenges, and following are some of them.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Representations&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;Supporting semantics. This includes extracting semantics from data (e.g. using heuristics based AI systems or through statistical methods) and supporting efficient semantics based queries. &amp;nbsp;&lt;/li&gt;&lt;li&gt;Supporting multiple representations of the same data. Does converting on demand is the right way to go or should we standardize? Does standardization is practical?&amp;nbsp;&lt;/li&gt;&lt;li&gt;Master data management – Making sure all copies of data are updated, and any related data is identified, referenced and updated together.&lt;/li&gt;&lt;/ol&gt;&lt;b&gt;&lt;u&gt;Security&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;Data ownership, delegation, and permissions.&lt;/li&gt;&lt;li&gt;Privacy concerns: unintended use of data and ability to correlation too much information.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Exposing private data in a controlled manner.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Making data accessible to all intended parties, from anywhere, anytime, from any device, through any format (subjected to permissions).&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;b&gt;&lt;u&gt;Analytics&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;Making close to real-time decisions with large-scale data (e.g. targeted advertising). Or in other words how to make analytical jobs faster.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Distributed frameworks and languages to process large data processing tasks. Is Map-Reduce good enough? What about other parallel problems?&amp;nbsp;&lt;/li&gt;&lt;li&gt;Ability to measure the confidence associated with results generated from a given set of data.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Taking decisions in the face of missing data (e.g. lost events etc.). Regardless of the design, some of the data will be lost while monitoring the system. Then decisions models have to still work, and be able to ignore or interpolate missing data.&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;I am not trying to explain the solutions here, but hopefully I will write future posts talking about state of art about some of the challenges.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-5297747442120261767?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/5297747442120261767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=5297747442120261767' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5297747442120261767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5297747442120261767'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/09/data-data-everywhere-and-challenges.html' title='Data, Data Everywhere and Challenges'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-7393911546633213802</id><published>2011-09-13T04:12:00.000-07:00</published><updated>2011-09-13T04:13:03.404-07:00</updated><title type='text'>Multi-tenancy: Winning formula for a PaaS</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Following is the&amp;nbsp;slide deck&amp;nbsp;I presented &amp;nbsp;at WSO2 Conference today. It provides a detailed discussion on what is Multi-tenancy, why it is needed and details about potential implementations.&lt;br /&gt;&lt;div id="__ss_9238920" style="width: 425px;"&gt;&lt;strong style="display: block; margin: 12px 0 4px;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;object height="355" id="__sse9238920" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=multi-tenancy-110913060721-phpapp02&amp;stripped_title=multitenancy-winning-formula-for-a-paas&amp;userName=hemapani" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse9238920" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=multi-tenancy-110913060721-phpapp02&amp;stripped_title=multitenancy-winning-formula-for-a-paas&amp;userName=hemapani" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/hemapani"&gt;Srinath Perera&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-7393911546633213802?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/7393911546633213802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=7393911546633213802' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/7393911546633213802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/7393911546633213802'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/09/multi-tenancy-winning-formula-for-paas.html' title='Multi-tenancy: Winning formula for a PaaS'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-7740119991544017083</id><published>2011-08-24T14:30:00.000-07:00</published><updated>2011-08-24T14:48:37.635-07:00</updated><title type='text'>NoSQL Now Talk:Finding the Right Data Solution for Your Application in the Data Storage Haystack</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Following are the slides for my &lt;a href="http://nosql2011.wilshireconferences.com/sessionPop.cfm?confid=64&amp;amp;proposalid=4024"&gt;NoSQL Now&lt;/a&gt; talk. Talk walk through different NoSQL choices and make concreate recommendations on which one to should be used when. End of the day, it provides tables that give you the choices directly.&amp;nbsp;You can find the abstract from &lt;a href="http://nosql2011.wilshireconferences.com/sessionPop.cfm?confid=64&amp;amp;proposalid=4024"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div id="__ss_8995723" style="width: 425px;"&gt;&lt;object height="355" id="__sse8995723" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=datahaystack-110824142949-phpapp01&amp;stripped_title=finding-the-right-data-solution-for-your-application-in-the-data-storage-haystack&amp;userName=hemapani" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse8995723" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=datahaystack-110824142949-phpapp01&amp;stripped_title=finding-the-right-data-solution-for-your-application-in-the-data-storage-haystack&amp;userName=hemapani" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;Following table depicts the key idea of the talk. The table provide data store&amp;nbsp;recommendations for given usecase (application) based on three properties. This only covers&amp;nbsp;structured&amp;nbsp;data, and slides have tables for&amp;nbsp;unstructured&amp;nbsp;and semi-structured&amp;nbsp;data.&amp;nbsp;&amp;nbsp;Thee properties are&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;type of Search needed by the application(Different Columns, colored Blue)&lt;/li&gt;&lt;li&gt;amount of Scale needed by the application (colored green)&lt;/li&gt;&lt;li&gt;amount of&amp;nbsp;consistency&amp;nbsp;required by the application (colored brown)&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;Here we are presenting 3D data using a 2D table.&amp;nbsp;Repeated&amp;nbsp;columns under each type of scale column sets takes care of that.&amp;nbsp;For example, "DB" in the forth row forth column says "if you need where clause like search, with small scale and transactions, use a DB". Other cells use the same idea.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;The notation I use is&amp;nbsp;KV: Key-Value Systems, CF: Column Families, Doc: document based Systems. Questions marks in the table means, it might work, but you should verify.&amp;nbsp;The table only put the&amp;nbsp;recommendations&amp;nbsp;and does not exactly say how I come up with the&amp;nbsp;recommendations.&amp;nbsp;More details are in the slides, and I will get out a writeup soon. Some of the key ideas are&lt;br /&gt;&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;Transactions and Joins does not scale great&lt;/li&gt;&lt;li&gt;KV scale most, then CF and Doc models, then DB. So if KV is good enough, go for that.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Offline case have time to do MapReduce and walk through the data.&amp;nbsp;&lt;/li&gt;&lt;li&gt;If you need transactions or Joins with scale, you have to try&amp;nbsp;partitioned&amp;nbsp;DBs. But you have to try and see, and it might not work either. If it does not, you are out of luck.&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table border="1" cellpadding="0" cellspacing="0" style="text-align: center;"&gt;&lt;colgroup&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col span="8"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr height="54"&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="text-align: center;"&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;Small (1-3 nodes)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="text-align: center;"&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;Scalable (10 nodes)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="text-align: center;"&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;Highly Scalable (1000s nodes)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="95"&gt;&lt;td style="text-align: center;"&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #783f04;"&gt;Loose&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #783f04;"&gt;Consistency&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #783f04;"&gt;Operation Consistency&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #783f04;"&gt;ACID&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #783f04;"&gt;Transactions&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #783f04;"&gt;Loose&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #783f04;"&gt;Consistency&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #783f04;"&gt;Operation Consistency&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #783f04;"&gt;ACID&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #783f04;"&gt;Transactions&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #783f04;"&gt;Loose&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #783f04;"&gt;Consistency&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #783f04;"&gt;Operation Consistency&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #783f04;"&gt;ACID&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #783f04;"&gt;Transactions&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="70"&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;Primary Key&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;DB/  KV/ CF&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;DB/  KV/ CF&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;DB&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;KV/CF&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;KV/CF&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;DB?&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;KV/CF&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;KV/CF&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;&lt;div&gt;No&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="70"&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;Where&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;DB/&amp;nbsp; CF/Doc&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;DB/&amp;nbsp; CF/Doc&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;DB&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;CF/Doc(?)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;CF/Doc  (?)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;DB?&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;CF/Doc&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;CF/Doc&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;No&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="54"&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;JOIN&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;DB&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;DB&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;DB&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;??&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;??&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;??&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;No&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;No&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;No&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="54"&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;Offline&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;DB/CF/Doc&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;DB/CF/Doc&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;DB/CF/Doc&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;CF/Doc&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;CF/Doc&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;No&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;CF/Doc&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;CF/Doc&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;No&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-7740119991544017083?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/7740119991544017083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=7740119991544017083' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/7740119991544017083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/7740119991544017083'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/08/following-are-slides-for-my-nowsql-now.html' title='NoSQL Now Talk:Finding the Right Data Solution for Your Application in the Data Storage Haystack'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-3466181746610763225</id><published>2011-08-24T10:37:00.000-07:00</published><updated>2011-08-24T10:37:08.735-07:00</updated><title type='text'>Survey of System Management Frameworks</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;Following is couple of tables I took out of&amp;nbsp;Survey I did on system management frameworks. A detailed writeup of this&amp;nbsp;survey is in &lt;a href="http://proquest.umi.com/pqdweb?did=1798481701&amp;amp;sid=1&amp;amp;Fmt=2&amp;amp;cl%20ientId=12010&amp;amp;RQT=309&amp;amp;VName=PQD"&gt;my thesis&lt;/a&gt; under related works. I want to write up a&amp;nbsp;survey&amp;nbsp;paper on this, but have not got to that yet.&lt;br /&gt;&lt;br /&gt;Lets start with brief outline on rational for the choice of matrices to compare different implementations. System management frameworks monitor a system, take decisions on how to fix things, and execute those decisions. They often consist of three parts: Sensors, a brain that make decisions, and set of actuators to execute decisions. From 10,000-foot view, most architectures follow this model, but differ on how they collect data, make decisions, and execute them. First table compares them on this aspect.&lt;br /&gt;&lt;br /&gt;System management frameworks themselves have to scale and provide High availability. To do those, they have to be composed of multiple servers (managers). Taking decisions with multiple managers (coordination) is one of the key challenges in system management framework design. The second table compares and contrast different coordination models using different architectural styles.&lt;br /&gt;&lt;br /&gt;The 3rd table discusses decision models—in other words, implementation of the brain. More details can find from&amp;nbsp;http://people.apache.org/~hemapani/research/system-management-survey.html.&lt;/div&gt;&lt;h1&gt;&lt;a href="" name="design"&gt;Systems based on Functionality/Design&lt;/a&gt;&lt;/h1&gt;&lt;table border="1" rules="all"&gt; &lt;tbody&gt;&lt;tr&gt;  &lt;td valign="top" width="20%"&gt;&lt;/td&gt;  &lt;td valign="top" width="80%"&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td valign="top" width="20%"&gt;Sensors-&amp;gt;Brain-&amp;gt; (Actuators)?&lt;/td&gt;  &lt;td valign="top" width="80%"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#InfoSpect"&gt;InfoSpect&lt;/a&gt;(Prolog),&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#WRMFDS"&gt;WRMFDS&lt;/a&gt; (AI), &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.htmlRule-basedDignosis"&gt;Rule-basedDignosis (Hierachy)&lt;/a&gt; (Monitoring &amp;amp; Dignosis)&lt;br /&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#RefArchiSystemMng"&gt;Ref Archi&lt;/a&gt;, &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Autopilot"&gt;Autopilot&lt;/a&gt;,  &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Policy2Actions"&gt;Policy2Actions&lt;/a&gt; (Centralized)&lt;br /&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#JADE"&gt;JADE&lt;/a&gt;, &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#jini-fed"&gt;JINI-Fed&lt;/a&gt;, &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#ReactiveSys"&gt;ReactiveSys&lt;/a&gt;,  (Managers)&lt;br /&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Tivoli"&gt;Tivoli&lt;/a&gt; (Managers + Manual  Coordinator)  &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td valign="top" width="20%"&gt;Sensors-&amp;gt;Gauges-&amp;gt;Brain-&amp;gt; (Actuators)?&lt;/td&gt;  &lt;td valign="top" width="80%"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#ParadynMRNet"&gt;Paradyn MRNet&lt;/a&gt; (Monitoring Only)&lt;br /&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Rainbow"&gt;Rainbow&lt;/a&gt; (Archi Model*), &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#ACME-CMU"&gt;ACME-CMU&lt;/a&gt;,   &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#CoordOfSysMngServices"&gt;CoordOfSysMngServices&lt;/a&gt;,  &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Code"&gt;Code&lt;/a&gt;&lt;br /&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#InfraMonMangGrid"&gt;InfraMonMangGrid&lt;/a&gt;(Centralized)&lt;br /&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#eXtreme"&gt;eXtreme(KX)&lt;/a&gt;,&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Galaxy"&gt;Galaxy&lt;/a&gt;* (Managers)&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td valign="top" width="20%"&gt;Sensors-&amp;gt;DataModel-&amp;gt;Brain-&amp;gt;Actuators&lt;/td&gt;  &lt;td valign="top" width="80%"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#DealingWithScale"&gt;DealingWithScale&lt;/a&gt;(CIM), &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Marvel"&gt;Marvel&lt;/a&gt;( Centralized)&lt;br /&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#ScalableManagement"&gt;Scalable Management&lt;/a&gt; (PLDB/Managers), &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.htmlNester"&gt;Nester&lt;/a&gt; (Distributed directory service), &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#SelfOrgSWArchi"&gt;SelfOrgSWArchi&lt;/a&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td valign="top" width="20%"&gt;Sensors-&amp;gt;ECA-&amp;gt;Actuators&lt;/td&gt;  &lt;td valign="top" width="80%"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#DREAM"&gt;DREAM&lt;/a&gt;, &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#SmartSub"&gt;SmartSub&lt;/a&gt;, &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#IrisLog"&gt;IrisLog&lt;/a&gt;,   &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#HiFi"&gt;HiFi&lt;/a&gt;, &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Sophia"&gt;Sophia&lt;/a&gt; (Prolog) - (Managers)  &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td valign="top" width="20%"&gt;Management Hierarchy&lt;/td&gt;  &lt;td valign="top" width="80%"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#NaradaBrokerMng"&gt;NaradaBrokerMng&lt;/a&gt;, &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#WildCat"&gt;WildCat&lt;/a&gt;, &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#BISE"&gt;BISE&lt;/a&gt;,&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#ReflexEngine"&gt;ReflexEngine&lt;/a&gt;  &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td valign="top" width="20%"&gt;Queries on demand&lt;/td&gt;  &lt;td valign="top" width="80%"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#ACME"&gt;ACME&lt;/a&gt; , &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#DecNM"&gt;Decentralizing Network Management&lt;/a&gt;,   &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Mng4P2P"&gt;Mng4P2P&lt;/a&gt; (Managers)&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td valign="top" width="20%"&gt;Workflow systems/ Resource management &lt;/td&gt;  &lt;td valign="top" width="80%"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Unity"&gt;Unity&lt;/a&gt;, &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#RecipeBased"&gt;RecipeBased&lt;/a&gt; (Centralized),&lt;br /&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#SelfMngWFEngine"&gt;SelfMngWFEngine&lt;/a&gt;, &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Automate&amp;amp;Accord"&gt;Automate Accord&lt;/a&gt;,   &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#ScWAreaRM"&gt;ScWAreaRM&lt;/a&gt;, &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#P2PDesktopGrid"&gt;P2PDesktopGrid&lt;/a&gt; (Distributed)  &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td valign="top" width="20%"&gt;Fault tolerant systems &lt;/td&gt;  &lt;td valign="top" width="80%"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#WSRF-Container"&gt;WSRF-Container&lt;/a&gt;, &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#GEMS"&gt;GEMS&lt;/a&gt; (Distributed)  &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td valign="top" width="20%"&gt;Decentralized&lt;/td&gt;  &lt;td valign="top" width="80%"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Dmona"&gt;DMonA&lt;/a&gt;,&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Guerrilla"&gt;Guerrilla&lt;/a&gt;, &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#K-components"&gt;K-Componets&lt;/a&gt;  &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td valign="top" width="20%"&gt;Deployment frameworks&lt;/td&gt;  &lt;td valign="top" width="80%"&gt;&lt;a href="" name="SmartFrog"&gt;&lt;/a&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#SmartFrog"&gt;SmartFrog&lt;/a&gt; , &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Plush"&gt;Plush&lt;/a&gt;, &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#CoordApat"&gt;CoordApat&lt;/a&gt;  &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td valign="top" width="20%"&gt;Monitoring&lt;/td&gt;  &lt;td valign="top" width="80%"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Inca"&gt;Inca&lt;/a&gt; (Centralized), &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#PIPER"&gt;PIPER&lt;/a&gt; (multicast over DHT),   &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#MDS"&gt;MDS&lt;/a&gt; (LDAP, Events), &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#NWS"&gt;NWS&lt;/a&gt;(LDAP), &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#scalableInfoMng"&gt;Scalable Info management&lt;/a&gt;,   &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Astorable"&gt;Astorable&lt;/a&gt; (Gossip), &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#MonAcc"&gt;Monitoring  with accuracy&lt;/a&gt;, &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.htmlRGMA"&gt;&lt;/a&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#RGMA"&gt;RGMA&lt;/a&gt; (DB like access) &lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h1&gt;&lt;a href="" name="communication"&gt;Systems based on Coordination and Communication model&lt;/a&gt;&lt;/h1&gt;&lt;table border="1" rules="all"&gt; &lt;tbody&gt;&lt;tr&gt;  &lt;td width="118"&gt;&lt;/td&gt;  &lt;td width="118"&gt;&lt;b&gt;Monitoring Only&lt;/b&gt;&lt;/td&gt;  &lt;td width="118"&gt;&lt;b&gt;One Manager  without coordination &lt;/b&gt;&lt;/td&gt;  &lt;td width="118"&gt;&lt;b&gt;One Manager  with coordination &lt;/b&gt;&lt;/td&gt;  &lt;td width="118"&gt;&lt;b&gt;Managers  without coordination &lt;/b&gt;&lt;/td&gt;  &lt;td width="118"&gt;&lt;b&gt;Managers with  coordination &lt;/b&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td width="118"&gt;Pull / events &lt;/td&gt;  &lt;td width="118"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#InfoSpect"&gt;InfoSpect&lt;/a&gt;&lt;br /&gt;  &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Sophia"&gt;Sophia&lt;/a&gt;&lt;br /&gt; &lt;/td&gt;  &lt;td width="118"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Rainbow"&gt;Rainbow&lt;/a&gt;,  &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Unity"&gt;Unity&lt;/a&gt;,  &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#RefArchiSystemMng"&gt;Ref Archi&lt;/a&gt;,  &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Autopilot"&gt;Autopilot&lt;/a&gt;,   &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#InfraMonMangGrid"&gt;InfraMonMangGrid&lt;/a&gt;  &lt;/td&gt;  &lt;td width="118"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#CoordOfSysMngServices"&gt;CoordOfSysMngServices&lt;/a&gt;&lt;/td&gt;  &lt;td width="118"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#JADE"&gt;JADE&lt;/a&gt;  &lt;/td&gt;  &lt;td width="118"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Dmona"&gt;DMonA&lt;/a&gt;, &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Tivoli"&gt;Tivoli&lt;/a&gt; (Manual)&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td width="118"&gt;Pub/Sub hierarchy&lt;/td&gt;  &lt;td width="118"&gt;&lt;/td&gt;  &lt;td width="118"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#DealingWithScale"&gt;DealingWithScale&lt;/a&gt;, &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#ACME-CMU"&gt;ACME-CMU&lt;/a&gt;  &lt;/td&gt;  &lt;td width="118"&gt;&lt;/td&gt;  &lt;td width="118"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#ScalableManagement"&gt;Scalable Management&lt;/a&gt;,  &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#DREAM"&gt;DREAM&lt;/a&gt;,  &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#SmartSub"&gt;SmartSub&lt;/a&gt;  &lt;/td&gt;  &lt;td width="118"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#NaradaBrokerMng"&gt;NaradaBrokerMng&lt;/a&gt;,  &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td width="118"&gt;P2P&lt;/td&gt;  &lt;td width="118"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#PIPER"&gt;PIPER&lt;/a&gt;,  &lt;/td&gt;  &lt;td width="118"&gt;&lt;/td&gt;  &lt;td width="118"&gt;&lt;/td&gt;  &lt;td width="118"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Automate&amp;amp;Accord"&gt;Automate  Accord&lt;/a&gt;,  &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Mng4P2P"&gt;Mng4P2P&lt;/a&gt;,  &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#WSRF-Container"&gt;WSRF-Container&lt;/a&gt;,  &lt;/td&gt;  &lt;td width="118"&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td width="118"&gt;Hierarchy&lt;/td&gt;  &lt;td width="118"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Gangila"&gt;Gangila&lt;/a&gt;,  &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#MDS"&gt;Globus MDS&lt;/a&gt;,  &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#ParadynMRNet"&gt;Paradyn  MRNet&lt;/a&gt;,  &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#WRMFDS"&gt;WRMFDS&lt;/a&gt;  &lt;/td&gt;  &lt;td width="118"&gt;&lt;/td&gt;  &lt;td width="118"&gt;&lt;/td&gt;  &lt;td width="118"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#IrisLog"&gt;IrisLog&lt;/a&gt;,  &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#HiFi"&gt;HiFi&lt;/a&gt;,  &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#jini-fed"&gt;JINI-Fed&lt;/a&gt;,  &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#eXtreme"&gt;eXtreme(KX)&lt;/a&gt;,  &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#ScWAreaRM"&gt;ScWAreaRM&lt;/a&gt;  &lt;/td&gt;  &lt;td width="118"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#WildCat"&gt;WildCat&lt;/a&gt;  &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td width="118"&gt;Gossip&lt;/td&gt;  &lt;td width="118"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Astorable"&gt;Astorable&lt;/a&gt;,  &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#GEMS"&gt;GEMS&lt;/a&gt;  &lt;/td&gt;  &lt;td width="118"&gt;&lt;/td&gt;  &lt;td width="118"&gt;&lt;/td&gt;  &lt;td width="118"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Galaxy"&gt;Galaxy&lt;/a&gt;  &lt;/td&gt;  &lt;td width="118"&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td width="118"&gt;Spanning Tree (Network/P2P)&lt;/td&gt;  &lt;td width="118"&gt;&lt;/td&gt;  &lt;td width="118"&gt;&lt;/td&gt;  &lt;td width="118"&gt;&lt;/td&gt;  &lt;td width="118"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#scalableInfoMng"&gt;Scalable Info management&lt;/a&gt;,  &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#ACME"&gt;ACME&lt;/a&gt;    &lt;/td&gt;  &lt;td width="118"&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td width="118"&gt;Group Communication&lt;/td&gt;  &lt;td width="118"&gt;&lt;/td&gt;  &lt;td width="118"&gt;&lt;/td&gt;  &lt;td width="118"&gt;&lt;/td&gt;  &lt;td width="118"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#ReactiveSys"&gt;ReactiveSys&lt;/a&gt;,  &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Galaxy"&gt;Galaxy&lt;/a&gt;  &lt;/td&gt;  &lt;td width="118"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#SelfOrgSWArchi"&gt;SelfOrgSWArchi&lt;/a&gt;  &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td width="118"&gt;Distributed Queue&lt;/td&gt;  &lt;td width="118"&gt;&lt;/td&gt;  &lt;td width="118"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#SelfMngWFEngine"&gt;SelfMngWFEngine&lt;/a&gt;  &lt;/td&gt;  &lt;td width="118"&gt;&lt;/td&gt;  &lt;td width="118"&gt;&lt;/td&gt;  &lt;td width="118"&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h1&gt;&lt;a href="" name="decision"&gt;Decision Models in management Systems&lt;/a&gt;&lt;/h1&gt;&lt;table border="1" rules="all"&gt; &lt;tbody&gt;&lt;tr&gt;  &lt;td width="168"&gt;&lt;/td&gt;  &lt;td width="115"&gt;&lt;b&gt;Rules&lt;/b&gt;&lt;/td&gt;  &lt;td width="91"&gt;&lt;b&gt;Conflict resolution&lt;/b&gt;&lt;/td&gt;  &lt;td width="86"&gt;&lt;b&gt;Verifier&lt;/b&gt;&lt;/td&gt;  &lt;td width="84"&gt;&lt;b&gt;Batch Mode used?&lt;/b&gt;&lt;/td&gt;  &lt;td width="76"&gt;&lt;b&gt;Meta-model used?&lt;/b&gt;&lt;/td&gt;  &lt;td width="83"&gt;&lt;b&gt;Planning&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td width="168"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#DIOS"&gt;DIOS++&lt;/a&gt;&lt;/td&gt;  &lt;td width="115"&gt;If/then&lt;/td&gt;  &lt;td width="91"&gt;yes, use priority&lt;/td&gt;  &lt;td width="86"&gt;No&lt;/td&gt;  &lt;td width="84"&gt;results of rules applied in next iteration&lt;/td&gt;  &lt;td width="76"&gt;Yes&lt;/td&gt;  &lt;td width="83"&gt;No&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td width="168"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Rainbow"&gt;Rainbow&lt;/a&gt;  &lt;/td&gt;  &lt;td width="115"&gt;If/then&lt;/td&gt;  &lt;td width="91"&gt;&lt;/td&gt;  &lt;td width="86"&gt;No&lt;/td&gt;  &lt;td width="84"&gt;&lt;/td&gt;  &lt;td width="76"&gt;Yes&lt;/td&gt;  &lt;td width="83"&gt;No&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td width="168"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#InfoSpect"&gt;InfoSpect&lt;/a&gt;  &lt;/td&gt;  &lt;td width="115"&gt;Prolog Like&lt;/td&gt;  &lt;td width="91"&gt;Only Monitoring&lt;/td&gt;  &lt;td width="86"&gt;No&lt;/td&gt;  &lt;td width="84"&gt;No&lt;/td&gt;  &lt;td width="76"&gt;Yes&lt;/td&gt;  &lt;td width="83"&gt;No&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td width="168"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Marvel"&gt;Marvel(1995)&lt;/a&gt;  &lt;/td&gt;  &lt;td width="115"&gt;PreCnd-&amp;gt;action-&amp;gt;PostCond&lt;/td&gt;  &lt;td width="91"&gt;&lt;/td&gt;  &lt;td width="86"&gt;Yes&lt;/td&gt;  &lt;td width="84"&gt;No&lt;/td&gt;  &lt;td width="76"&gt;Yes&lt;/td&gt;  &lt;td width="83"&gt;No&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td width="168"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#CoordOfSysMngServices"&gt;CoordOfSysMngServices&lt;/a&gt;  &lt;/td&gt;  &lt;td width="115"&gt;&lt;/td&gt;  &lt;td width="91"&gt;Yes (Detect -&amp;gt;Human Help)&lt;/td&gt;  &lt;td width="86"&gt;Yes&lt;/td&gt;  &lt;td width="84"&gt;Yes&lt;/td&gt;  &lt;td width="76"&gt;No&lt;/td&gt;  &lt;td width="83"&gt;Yes&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td width="168"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Sophia"&gt;Sophia&lt;/a&gt;  &lt;/td&gt;  &lt;td width="115"&gt;Prolog like&lt;/td&gt;  &lt;td width="91"&gt;&lt;/td&gt;  &lt;td width="86"&gt;No&lt;/td&gt;  &lt;td width="84"&gt;No&lt;/td&gt;  &lt;td width="76"&gt;&lt;/td&gt;  &lt;td width="83"&gt;No&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td width="168"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#RecipeBased"&gt;RecipeBased&lt;/a&gt;  &lt;/td&gt;  &lt;td width="115"&gt;Java Code&lt;/td&gt;  &lt;td width="91"&gt;Yes&lt;/td&gt;  &lt;td width="86"&gt;&lt;/td&gt;  &lt;td width="84"&gt;No&lt;/td&gt;  &lt;td width="76"&gt;No&lt;/td&gt;  &lt;td width="83"&gt;No&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td width="168"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#HiFi"&gt;HiFi&lt;/a&gt;,   &lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#DREAM"&gt;DREAM&lt;/a&gt;  &lt;/td&gt;  &lt;td width="115"&gt;pub/sub Filter-&amp;gt;action&lt;/td&gt;  &lt;td width="91"&gt;No&lt;/td&gt;  &lt;td width="86"&gt;No&lt;/td&gt;  &lt;td width="84"&gt;No&lt;/td&gt;  &lt;td width="76"&gt;No&lt;/td&gt;  &lt;td width="83"&gt;No&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td width="168"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#IrisLog"&gt;IrisLog&lt;/a&gt;  &lt;/td&gt;  &lt;td width="115"&gt;DB triggers&lt;/td&gt;  &lt;td width="91"&gt;No&lt;/td&gt;  &lt;td width="86"&gt;No&lt;/td&gt;  &lt;td width="84"&gt;No&lt;/td&gt;  &lt;td width="76"&gt;No&lt;/td&gt;  &lt;td width="83"&gt;No&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td width="168"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#ACME"&gt;ACME&lt;/a&gt;  &lt;/td&gt;  &lt;td width="115"&gt;(timer/sensor/completion)&lt;br /&gt;  conditions-&amp;gt;action&lt;/td&gt;  &lt;td width="91"&gt;No&lt;/td&gt;  &lt;td width="86"&gt;No&lt;/td&gt;  &lt;td width="84"&gt;possible with timer conditions&lt;/td&gt;  &lt;td width="76"&gt;Yes&lt;/td&gt;  &lt;td width="83"&gt;No&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td width="168"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#ReactiveSys"&gt;ReactiveSys (1993)&lt;/a&gt;  &lt;/td&gt;  &lt;td width="115"&gt;if/then&lt;/td&gt;  &lt;td width="91"&gt;No&lt;/td&gt;  &lt;td width="86"&gt;No&lt;/td&gt;  &lt;td width="84"&gt;No&lt;/td&gt;  &lt;td width="76"&gt;Yes&lt;/td&gt;  &lt;td width="83"&gt;No&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td width="168"&gt;&lt;a href="http://people.apache.org/~hemapani/research/system-management-survey.html#Policy2Actions"&gt;Policy2Actions (2007)&lt;/a&gt;  &lt;/td&gt;  &lt;td width="115"&gt;Policy- name, conditions (name of method to run +  parameters), actions, target component &lt;/td&gt;  &lt;td width="91"&gt;Yes, based on runtime state + history&lt;/td&gt;  &lt;td width="86"&gt;There are tests associated with each actions that decide  should action need to run&lt;/td&gt;  &lt;td width="84"&gt;-&lt;/td&gt;  &lt;td width="76"&gt;No&lt;/td&gt;  &lt;td width="83"&gt;Yes&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-3466181746610763225?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/3466181746610763225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=3466181746610763225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/3466181746610763225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/3466181746610763225'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/08/survey-of-system-management-frameworks.html' title='Survey of System Management Frameworks'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-5669287283586231572</id><published>2011-08-19T05:58:00.000-07:00</published><updated>2011-09-23T07:46:10.174-07:00</updated><title type='text'>WSO2 Stratos in contrast to Other Java PaaS Offerings</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;In the article "&lt;a href="http://www.ibm.com/developerworks/java/library/j-paasshootout/"&gt;Java PaaS shootout&lt;/a&gt;" Michael J. Yuan provides a pretty nice comparison of Google AppEngine, Amazon Elastic Beanstalk, and CloudBees RUN@Cloud. Following table provides a summary of that while adding WSO2 Stratos to the&amp;nbsp;comparison.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;table align="center" border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-yfti-tbllook: 1184;"&gt; &lt;tbody&gt;&lt;tr&gt;  &lt;td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.1pt;" valign="top" width="77"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.2pt;" valign="top" width="77"&gt;&lt;div class="MsoNormal"&gt;App Engine&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.55pt;" valign="top" width="71"&gt;&lt;div class="MsoNormal"&gt;Amazon beanstalk&lt;/div&gt;&lt;/td&gt;&lt;td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.6pt;" valign="top" width="78"&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;CloudBee's Run@Cloud&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 68.55pt;" valign="top" width="69"&gt;&lt;div class="MsoNormal"&gt;WSO2 Stratos&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.1pt;" valign="top" width="77"&gt;&lt;div class="MsoNormal"&gt;What is it?&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.2pt;" valign="top" width="77"&gt;&lt;div class="MsoNormal"&gt;Users can upload servlets. AppEngine hosts them and manage them.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.55pt;" valign="top" width="71"&gt;&lt;div class="MsoNormal"&gt;Managed Tomcat &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Expensive&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.6pt;" valign="top" width="78"&gt;&lt;div class="MsoNormal"&gt;Tomcat, load balancer. Integrated with SVN. Can change  source code and update all deployment aspects.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 68.55pt;" valign="top" width="69"&gt;&lt;div class="MsoNormal"&gt;SOA platform as a service. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Fully multi-tenant. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.1pt;" valign="top" width="77"&gt;&lt;div class="MsoNormal"&gt;Java support&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.2pt;" valign="top" width="77"&gt;&lt;div class="MsoNormal"&gt;Yes, does not support some I/O and network operations&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.55pt;" valign="top" width="71"&gt;&lt;div class="MsoNormal"&gt;Full java&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.6pt;" valign="top" width="78"&gt;Full Java  &lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 68.55pt;" valign="top" width="69"&gt;&lt;div class="MsoNormal"&gt;Yes, but File access is limited&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.1pt;" valign="top" width="77"&gt;&lt;div class="MsoNormal"&gt;Outbound connections&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.2pt;" valign="top" width="77"&gt;&lt;div class="MsoNormal"&gt;Time out in 10 seconds&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.55pt;" valign="top" width="71"&gt;&lt;div class="MsoNormal"&gt;OK&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.6pt;" valign="top" width="78"&gt;&lt;div class="MsoNormal"&gt;OK&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 68.55pt;" valign="top" width="69"&gt;&lt;div class="MsoNormal"&gt;OK&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.1pt;" valign="top" width="77"&gt;&lt;div class="MsoNormal"&gt;Support for standard java Libs&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.2pt;" valign="top" width="77"&gt;&lt;div class="MsoNormal"&gt;Have problems when they use unsupported APIs&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.55pt;" valign="top" width="71"&gt;&lt;div class="MsoNormal"&gt;Yes &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.6pt;" valign="top" width="78"&gt;&lt;div class="MsoNormal"&gt;Yes &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 68.55pt;" valign="top" width="69"&gt;&lt;div class="MsoNormal"&gt;Yes (java security manager limits file accesses)&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.1pt;" valign="top" width="77"&gt;&lt;div class="MsoNormal"&gt;Performance and scalability&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.2pt;" valign="top" width="77"&gt;&lt;div class="MsoNormal"&gt;Auto scale, High scalability, but have bit high latency. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Swapping the app out might slow down first request&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.55pt;" valign="top" width="71"&gt;&lt;div class="MsoNormal"&gt;Auto scale by creating EC2 instances&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.6pt;" valign="top" width="78"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;Can swap unused  processes out of JVM. Can load balance multiple tomcats in the same EC2  instance&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 68.55pt;" valign="top" width="69"&gt;&lt;div class="MsoNormal"&gt;Can lazy load services and other artifacts.&lt;br /&gt;Auto scale (up down) by monitoring the load and creating  new nodes. LB route the requests. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.1pt;" valign="top" width="77"&gt;&lt;div class="MsoNormal"&gt;Storage&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.2pt;" valign="top" width="77"&gt;&lt;div class="MsoNormal"&gt;Support Big Table and Hosted MySQL.&amp;nbsp;&lt;/div&gt;&lt;div class="MsoNormal"&gt;However, search support in BigTable case is limited.&amp;nbsp;&lt;/div&gt;&lt;div class="MsoNormal"&gt;e.g. &amp;nbsp;Each query  can only have 100 results. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.55pt;" valign="top" width="71"&gt;&lt;div class="MsoNormal"&gt;Support RDS (relational) , SimpleDB (NoSQL) or can run with your  own DB&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.6pt;" valign="top" width="78"&gt;&lt;div class="MsoNormal"&gt;Has managed MySQL databases and provide a console to  manage them&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 68.55pt;" valign="top" width="69"&gt;&lt;div class="MsoNormal"&gt;Support Cassandra as a Service, managed MySQL, and HDFS.&amp;nbsp;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Cassandra and HDFS  support native multi-tenancy &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.1pt;" valign="top" width="77"&gt;&lt;div class="MsoNormal"&gt;Import/ export data&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.2pt;" valign="top" width="77"&gt;&lt;div class="MsoNormal"&gt;No (hard due to 30 sec limit)&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.55pt;" valign="top" width="71"&gt;&lt;div class="MsoNormal"&gt;Can write code to automate&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.6pt;" valign="top" width="78"&gt;&lt;div class="MsoNormal"&gt;Can write code to automate&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 68.55pt;" valign="top" width="69"&gt;&lt;div class="MsoNormal"&gt;Can write code to automate&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.1pt;" valign="top" width="77"&gt;&lt;div class="MsoNormal"&gt;Integration with others&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.2pt;" valign="top" width="77"&gt;&lt;div class="MsoNormal"&gt;Integrate well with other Google services&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.55pt;" valign="top" width="71"&gt;&lt;div class="MsoNormal"&gt;SQS, SES (email service), payment APIs&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.6pt;" valign="top" width="78"&gt;&lt;div class="MsoNormal"&gt;S3, SQS, SES etc. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 68.55pt;" valign="top" width="69"&gt;&lt;div class="MsoNormal"&gt;With Google auth model and other WSO2 services. Also S3, SQS, SES etc.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.1pt;" valign="top" width="77"&gt;&lt;div class="MsoNormal"&gt;Session handling&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.2pt;" valign="top" width="77"&gt;&lt;div class="MsoNormal"&gt;Store sessions to storage and handles them seamlessly&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.55pt;" valign="top" width="71"&gt;&lt;div class="MsoNormal"&gt;Only sticky sessions&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.6pt;" valign="top" width="78"&gt;&lt;div class="MsoNormal"&gt;Transparent session management&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 68.55pt;" valign="top" width="69"&gt;&lt;div class="MsoNormal"&gt;Only sticky sessions&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.1pt;" valign="top" width="77"&gt;&lt;div class="MsoNormal"&gt;Multi-tenancy &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.2pt;" valign="top" width="77"&gt;&lt;div class="MsoNormal"&gt;Yes &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.55pt;" valign="top" width="71"&gt;&lt;div class="MsoNormal"&gt;No&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.6pt;" valign="top" width="78"&gt;&lt;div class="MsoNormal"&gt;No&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 68.55pt;" valign="top" width="69"&gt;&lt;div class="MsoNormal"&gt;Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Also let me listout couple of key&amp;nbsp;differentiators&amp;nbsp;of WSO2 Stratos.&lt;br /&gt;&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;All these offerings support Web App Hosting as a Service. WSO2 Stratos supports that, but provides much more. In addition to Web App Hosting, it supports hosting Axis2 based services, Mediation, and Workflow hosting as a Service. It is real SOA&amp;nbsp;platform&amp;nbsp;as a Service, the only one to does that.&amp;nbsp;&lt;/li&gt;&lt;li&gt;It let you move your Axis2 based Web Services (.aar files) and workflows to the Cloud (to WSO2 Statos Live) without any change to them. If you have some Axis2 based services, chances are that you can upload them to WSO2 Stratos and it will just work.&amp;nbsp;&lt;/li&gt;&lt;li&gt;WSO2 Stratos provides real multi-tenancy support. That is different tenants will think that he has his own server, while actually all are served from one Java Server. In other words, Isolation is done at Java level, not at Virtualization level. That means it can provide greater sharing and provide "Pay as you go" and "Pay for what you use" better than VM based model. Only AppEngine does that out of other three PaaS offering. More details are in following papers.&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;A. Azeez, S. Perera, D. Gamage et al. (2010) &lt;a href="http://people.apache.org/~hemapani/research/papers/multitenancy-icws-2010.pdf"&gt;Multi-tenant SOA Middleware for Cloud Computing&lt;/a&gt;, 458–465. In 2010 IEEE 3rd International Conference on Cloud Computing.&lt;/li&gt;&lt;li&gt;A. Azeez and S. Perera et al., WSO2 Stratos: An Industrial Stack to Support Cloud Computing, IT: Methods and Applications of Informatics and Information Technology Journal, the special Issue on Cloud Computing, 2011.&lt;/li&gt;&lt;li&gt;Milinda Pathirage, Srinath Perera, Sanjiva Weerawarana, Indika Kumara, A Multi-tenant Architecture for Business Process Execution, 9th International Conference on Web Services (ICWS), 2011&lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-5669287283586231572?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/5669287283586231572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=5669287283586231572' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5669287283586231572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5669287283586231572'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/08/wso2-stratos-in-contrast-to-other-java.html' title='WSO2 Stratos in contrast to Other Java PaaS Offerings'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-8525316290114151175</id><published>2011-08-19T02:29:00.000-07:00</published><updated>2011-08-19T02:57:12.805-07:00</updated><title type='text'>What can you do with WSO2 Platform?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-YZ-g2RZTShY/Tk4iI4G7OmI/AAAAAAAABdg/VNGxv9Pl1_o/s1600/UsingWSO2Platform.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="417" src="http://2.bp.blogspot.com/-YZ-g2RZTShY/Tk4iI4G7OmI/AAAAAAAABdg/VNGxv9Pl1_o/s640/UsingWSO2Platform.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;We have explained WSO2 platform in many ways. Here I amtrying to take a more scenario driven approach.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2&gt;1. Implementing Business Logic&lt;/h2&gt;&lt;span class="Apple-style-span" style="font-size: small; font-weight: normal;"&gt;If you are looking to build a SOA based architecture, firststep is to implement your business logic as a set of services.&amp;nbsp; Users can use WSO2 Application Server (AS) todo this, and AS enables users to implement a business logic using any of thefollowing methods.&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;/div&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;Using Java Code (WSO2 AS, any Axis2 .aar fileworks)&lt;/li&gt;&lt;li&gt;&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&lt;/span&gt;Exposing data in a data source (e.g. RelationalDatabase, CSV file etc., see WSO2 Data services Server)&lt;/li&gt;&lt;li&gt;&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&lt;/span&gt;Using Business Rules (Supports Drools, see WSO2BRS)&lt;/li&gt;&lt;li&gt;&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Using a script language (e.g. Javascript,Phython, see WSO2 AS)&lt;/li&gt;&lt;/ol&gt;&lt;div class="MsoNormal"&gt;Once the service is created, users can secure them usingHTTPs or WS-Security. Furthermore, he can enable most of the WS-* support alsousing WSO2 Application Server.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2&gt;2. Mediating Messages&lt;/h2&gt;&lt;div class="MsoNormal"&gt;Often SOA deployment has third party services, legacyapplications and other types of frication that force the architecture to mediatemessages that flow between services. &amp;nbsp;&amp;nbsp;Userscan use WSO2 Enterprise Service Bus (ESB) to do this. Mediation can be ofseveral forms. (* there are others, and following are only some of them.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;Message transformations&lt;/li&gt;&lt;li&gt;Message editing&lt;/li&gt;&lt;li&gt;&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&lt;/span&gt;Message filtering&lt;/li&gt;&lt;li&gt;&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&lt;/span&gt;Route (e.g. load balancing, Pub/Sub)&lt;/li&gt;&lt;li&gt;&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&lt;/span&gt;Support Enterprise Integration Patterns (EIP)&lt;/li&gt;&lt;/ol&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo3; text-indent: -18.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo3; text-indent: -18.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo3; text-indent: -18.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="mso-list: l1 level1 lfo3; text-indent: -18.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;h2&gt;3. Creating the User Interface Layer&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;&lt;div class="MsoNormal"&gt;Often these services have user facing components. WSO2platform provides two choices to do this. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo4; text-indent: -18.0pt;"&gt;&lt;/div&gt;&lt;ol style="text-align: left;"&gt;&lt;/ol&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&amp;nbsp;Java Web Applications (.war file) in WSO2 AS&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp;Google Gadget support in WSO2 Gadget Server&lt;/li&gt;&lt;/ol&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo4; text-indent: -18.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;h2&gt;4. Composing Services&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;&lt;div class="MsoNormal"&gt;If the target application is complicated, specially whenservice execution flows are dynamic and themselves contains business logic,users may opt to compose those services to create business processes. WSO2platform provides three choices for doing this.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;/div&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;Create the process as a BPEL document, deploy, and run the business process using WSO2 Business Process Server&lt;/li&gt;&lt;li&gt;Create the process as a mediation sequence using WSO2 ESB&lt;/li&gt;&lt;li&gt;Create the process using java scripts with WSO2 Mashup Server&lt;/li&gt;&lt;/ol&gt;&lt;h2&gt;5. Scaling&lt;/h2&gt;If some of the services receive higher loads that exceedsingle node capacity, users would want to scale the system by clustering thosebottleneck service. Exact details are usecase specific, but WSO2 platformsupport clustering through Axis2 clustering &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;b&gt;Cross Cutting Concerns&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;In addition, WSO2 platform supports two cross cuttingaspects: namely governance and business actively monitoring.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;1. Govern SOA&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;If a SOA deployment has many services and they goes through frequent business logic and configurations&amp;nbsp;changes, ad-hoc management of the deployment could be very complex. WSO2 Governance registry let users store all service WSDL in a single repository and manage their configurations and lifecycles from a single point.&amp;nbsp;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;2. Monitoring the Business&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Most businesses needs a detailed close to real time view of their activities. WSO2 Business Activity Monitoring (BAM) let users define trace points in activities (service executions). At the runtime, BAM &amp;nbsp;and monitors data collected at those trace points, and present them to end users through Gadgets that aggregate and visualize them.&lt;/div&gt;&lt;ol&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-8525316290114151175?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/8525316290114151175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=8525316290114151175' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8525316290114151175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8525316290114151175'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/08/what-can-you-do-with-wso2-platform.html' title='What can you do with WSO2 Platform?'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-YZ-g2RZTShY/Tk4iI4G7OmI/AAAAAAAABdg/VNGxv9Pl1_o/s72-c/UsingWSO2Platform.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-1355576062900257203</id><published>2011-08-17T19:19:00.000-07:00</published><updated>2011-08-17T19:19:56.186-07:00</updated><title type='text'>WSO2 Conference 2011</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-l_FfbeAcrvM/Tkx2Dqg7MUI/AAAAAAAABdc/EvlGYz2jbUo/s1600/Partners-aflyer.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-l_FfbeAcrvM/Tkx2Dqg7MUI/AAAAAAAABdc/EvlGYz2jbUo/s640/Partners-aflyer.png" width="100%" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-1355576062900257203?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/1355576062900257203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=1355576062900257203' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/1355576062900257203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/1355576062900257203'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/08/wso2-conference-2011.html' title='WSO2 Conference 2011'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-l_FfbeAcrvM/Tkx2Dqg7MUI/AAAAAAAABdc/EvlGYz2jbUo/s72-c/Partners-aflyer.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-1001847238900158786</id><published>2011-08-16T23:19:00.000-07:00</published><updated>2011-08-19T02:45:54.549-07:00</updated><title type='text'>Useful data sets</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;If you are doing a performance test, it always a good thing to do that using a real dataset. Following are several useful datasets.&lt;br /&gt;&lt;br /&gt;Often you can find data in the CSV format, and then parsing and using it is pretty easy.&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;DLPB catalog - http://kdl.cs.umass.edu/data/dblp/dblp-info.html - this is data about publications. About 900MB raw size.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Google&amp;nbsp;Fusion&amp;nbsp;tables,&amp;nbsp;http://www.google.com/fusiontables/Home&lt;br /&gt;&amp;nbsp;- this has several useful datasets as CSV.&lt;/li&gt;&lt;li&gt;Federal reserve economic data - http://research.stlouisfed.org/fred2/ &amp;nbsp;&lt;/li&gt;&lt;li&gt;Amazon public datasets -&amp;nbsp;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, sans-serif; font-size: x-small; line-height: 15px;"&gt;aws.&lt;b&gt;amazon&lt;/b&gt;.com/&lt;b&gt;publicdatasets&lt;/b&gt;/&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;There are lot more. Following are some of them. If anyone knows list giving a sizes of datasets and nature of datasets, please let me know.&amp;nbsp;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;http://dvn.iq.harvard.edu/dvn/dv/cid&lt;/li&gt;&lt;li&gt;http://www.thejanuarist.com/9-fascinating-datasets-available-online-for-free/&lt;/li&gt;&lt;li&gt;http://bios.dfg.ca.gov/dataset_index.asp&lt;/li&gt;&lt;li&gt;http://www.uic.edu/orgs/rin/dataset.html&lt;/li&gt;&lt;li&gt;http://www.nas.nasa.gov/Resources/datasets.html&lt;/li&gt;&lt;li&gt;http://www.datawrangling.com/some-datasets-available-on-the-web&lt;/li&gt;&lt;li&gt;http://news.ycombinator.com/item?id=2165497&lt;/li&gt;&lt;li&gt;https://bitly.com/bundles/hmason/1&lt;/li&gt;&lt;li&gt;http://www.gutenberg.org/wiki/Gutenberg:Feeds&lt;/li&gt;&lt;li&gt;http://www.quora.com/Data/Where-can-I-get-large-datasets-open-to-the-public&lt;/li&gt;&lt;li&gt;http://getthedata.org/&lt;/li&gt;&lt;li&gt;http://news.ycombinator.com/item?id=2165497&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-1001847238900158786?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/1001847238900158786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=1001847238900158786' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/1001847238900158786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/1001847238900158786'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/08/useful-data-sets.html' title='Useful data sets'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-8130799691006157211</id><published>2011-08-08T19:30:00.000-07:00</published><updated>2011-08-08T19:31:11.710-07:00</updated><title type='text'>Offset Property in any WSO2 Server</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;If you want to run multiple WSO2 Servers (any type .. e.g. ESB, AS, GReg etc.), you can easily switch the ports using the Ports/offset property in the&amp;nbsp;repository/conf/carbon.xml. When a WSO2 server starts, it listens on several ports. Offset moves all ports by the given value, and very handy tool when you play with things.&lt;br /&gt;&lt;br /&gt;Yes does not make a huge difference on a production deployment, but a remove a major pain factor if you are playing with stuff.&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-8130799691006157211?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/8130799691006157211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=8130799691006157211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8130799691006157211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8130799691006157211'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/08/offset-property-in-any-wso2-server.html' title='Offset Property in any WSO2 Server'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-6494450411973588077</id><published>2011-08-08T18:59:00.000-07:00</published><updated>2011-08-08T19:01:21.327-07:00</updated><title type='text'>IESL Talk Series: Apache System Projects in the Real World</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div id="__ss_8804646" style="width: 425px;"&gt;&lt;strong style="display: block; margin: 12px 0 4px;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;I did a public talk on "Apache System Projects in the Real World" at the IESL talk series organized by&amp;nbsp;IT &amp;amp;amp; Communications Sectional Committee,&amp;nbsp;The Institution of Engineers, Sri Lanka (IESL). Following are the slides.&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;&lt;span style="display: block; margin-bottom: 4px; margin-left: 0px; margin-right: 0px; margin-top: 12px;"&gt;This is a updated version of my&amp;nbsp;earlier&amp;nbsp;talk at Apache Con Roadshow 2009. The talk discussed opensource, apache, and LEAD project.&amp;nbsp;&lt;/span&gt;&lt;span style="display: block; margin-bottom: 4px; margin-left: 0px; margin-right: 0px; margin-top: 12px;"&gt;&lt;span class="Apple-style-span"&gt;LEAD project (http://portal.leadproject.org/) is a heavy user of Apache Projects like Axis2, ODE etc., and it has pushed those to the limit and made contributions back. Also at the end, the LEAD project itself was donated to Apache as "Apache Airvata&lt;/span&gt;&lt;span class="Apple-style-span"&gt;" (http://incubator.apache.org/airavata/). &amp;nbsp;Therefore,&amp;nbsp;&lt;/span&gt;I&amp;nbsp;believe&amp;nbsp; LEAD project is indeed an great example of Apache Web Services in the real world.&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;object height="355" id="__sse8804646" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=apachesoarealworld2-110808203406-phpapp02&amp;stripped_title=iesl-talk-series-apache-system-projects-in-the-real-world&amp;userName=hemapani" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse8804646" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=apachesoarealworld2-110808203406-phpapp02&amp;stripped_title=iesl-talk-series-apache-system-projects-in-the-real-world&amp;userName=hemapani" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/hemapani"&gt;Srinath Perera&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-6494450411973588077?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/6494450411973588077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=6494450411973588077' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6494450411973588077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6494450411973588077'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/08/iesl-talk-series-apache-system-projects.html' title='IESL Talk Series: Apache System Projects in the Real World'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-1729958406526818986</id><published>2011-08-02T18:37:00.000-07:00</published><updated>2011-08-02T18:37:07.673-07:00</updated><title type='text'>WSO2 ESB at EBay</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Information Week tells the &lt;a href="http://www.informationweek.com/news/infrastructure/traffic_management/231002969"&gt;story&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-1729958406526818986?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/1729958406526818986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=1729958406526818986' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/1729958406526818986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/1729958406526818986'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/08/wso2-esb-at-ebay.html' title='WSO2 ESB at EBay'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-2378941269051906765</id><published>2011-07-27T01:50:00.000-07:00</published><updated>2011-07-27T01:51:14.913-07:00</updated><title type='text'>Talk at NoSQLNow: Finding the Right Data Solution for your Application in the Data Storage Haystack</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://nosql2011.wilshireconferences.com/uploads/ConfSiteAssets/64/image/EventButton_Speaking.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://nosql2011.wilshireconferences.com/uploads/ConfSiteAssets/64/image/EventButton_Speaking.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Details at&amp;nbsp;&lt;a href="http://nosql2011.wilshireconferences.com/sessionPop.cfm?confid=64&amp;amp;proposalid=4024"&gt;http://nosql2011.wilshireconferences.com/sessionPop.cfm?confid=64&amp;amp;proposalid=4024 &lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-2378941269051906765?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/2378941269051906765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=2378941269051906765' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2378941269051906765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2378941269051906765'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/07/talk-at-nosqlnow-finding-right-data.html' title='Talk at NoSQLNow: Finding the Right Data Solution for your Application in the Data Storage Haystack'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-5016822465155357070</id><published>2011-07-26T20:44:00.000-07:00</published><updated>2011-07-26T20:44:47.293-07:00</updated><title type='text'>Introduction to Apache Cassandra and support within WSO2 Platform</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div id="__ss_8698454" style="width: 425px;"&gt;&lt;span style="display: block; margin: 12px 0 4px;"&gt;I did the following presentation at the WSO2 Data workshop last week at San Jose. Slides discuss integration with WSO2 Platform and Apache Cassandra. However, I think, it is more useful as an introduction to Cassandra.&amp;nbsp;&lt;/span&gt;&lt;span style="display: block; margin: 12px 0 4px;"&gt;Here I am trying to discusses their column based model and explain how different it is from Columns in the Relational model. We (WSO2) have been working on integrating Cassandra with our platform. What we mean by integrating is that&amp;nbsp;&lt;/span&gt;&lt;span style="display: block; margin: 12px 0 4px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;We make WSO2 security model with Cassandra. Or simply put, anyone can login to Cassandra using username and password issued by WSO2 Identity Server (IS) and access Cassandra resources (key spaces, column families etc.) according to the permissions defined in WSO2 IS).&amp;nbsp;&lt;/li&gt;&lt;li&gt;We support Multi-tenancy. &amp;nbsp;That is anyone can come to &lt;a href="http://stratoslive.wso2.com/"&gt;WSO2 Stratos&lt;/a&gt; and have their own Cassandra server and use that. You can say we offer Cassandra as a service.&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;span style="display: block; margin: 12px 0 4px;"&gt;You can find the&amp;nbsp;presentation&amp;nbsp;from&amp;nbsp;&lt;a href="http://www.slideshare.net/hemapani/introduction-to-apache-cassandra-and-support-within-wso2-platform" target="_blank" title="Introduction to Apache Cassandra and support within WSO2 Platform"&gt;Introduction to Apache Cassandra and support within WSO2 Platform&lt;/a&gt;.&amp;nbsp;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/8698454" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/hemapani" target="_blank"&gt;Srinath Perera&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-5016822465155357070?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/5016822465155357070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=5016822465155357070' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5016822465155357070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5016822465155357070'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/07/introduction-to-apache-cassandra-and.html' title='Introduction to Apache Cassandra and support within WSO2 Platform'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-6289566532043852102</id><published>2011-07-25T03:47:00.000-07:00</published><updated>2011-07-25T03:54:59.682-07:00</updated><title type='text'>A Multi-tenant Architecture for Business Process Executions at ICWS 2011</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Following is the slides for the presentation&amp;nbsp;&lt;strong style="display: inline !important; margin-bottom: 4px; margin-left: 0px; margin-right: 0px; margin-top: 12px;"&gt;&lt;a href="http://www.slideshare.net/hemapani/a-multitenant-architecture-for-business-process-executions" target="_blank" title="A Multi-tenant Architecture for Business Process Executions"&gt;A Multi-tenant Architecture for Business Process Executions&lt;/a&gt;, &lt;/strong&gt;&lt;span style="display: inline !important; margin-bottom: 4px; margin-left: 0px; margin-right: 0px; margin-top: 12px;"&gt;which I did at ICWS (International Conference of Web Services) 2011. In this work, we have extended Apache ODE project to&amp;nbsp;&lt;/span&gt;to support Multi-tenancy.&lt;br /&gt;&lt;span style="display: inline !important; margin-bottom: 4px; margin-left: 0px; margin-right: 0px; margin-top: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div id="__ss_8548036" style="width: 425px;"&gt;&lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/8548036" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;br /&gt;&lt;div&gt;Multi-tenancy enables a single server to support multiple tenants (users or organizations ) while providing the illusion that each tenant has its own server. It is one of the enabling technology for the Cloud, and Multi-tenancy&amp;nbsp;based Cloud&amp;nbsp;platforms&amp;nbsp;can provides much higher resource&amp;nbsp;utilization&amp;nbsp;compared to virtualization based Cloud platforms.&lt;br /&gt;&lt;br /&gt;This is the third paper on Multi-tenancy&amp;nbsp;work we have been doing for more than 2 years. Details about other two can be found in &lt;a href="http://people.apache.org/~hemapani/research/publication.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This work is&amp;nbsp;available&amp;nbsp;with WSO2 BPS, and also it is one of the key enabling technology for WSO2 Stratos Platform as a Service offering.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-6289566532043852102?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/6289566532043852102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=6289566532043852102' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6289566532043852102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6289566532043852102'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/07/multi-tenant-architecture-for-business.html' title='A Multi-tenant Architecture for Business Process Executions at ICWS 2011'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-4369628274830921390</id><published>2011-07-14T11:35:00.000-07:00</published><updated>2011-07-14T11:35:57.788-07:00</updated><title type='text'>Cassandra: Surprises you Might Get</title><content type='html'>Now do not get me wrong, Cassandra is a great tool, and we use it. Following are few things that you might assume to be the case and only figure out later after you have been using it for some time. So spelling them out in case it is useful for someone else as well.&amp;nbsp;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;No transactions, no JOINs. Hope there is no surprise here. If it does, go and read bit about NoSQL before touching Cassandra.&amp;nbsp;&lt;/li&gt;&lt;li&gt;No foreign keys and keys are immutable. (well no JOINs, and use surrogate keys if you need to change keys). You can change the keys, but any reference will not change, and there are no&amp;nbsp;foreign&amp;nbsp;key based integrity checks etc.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Keys has to be unique (use composite keys to work around this one).&amp;nbsp;&lt;/li&gt;&lt;li&gt;Super Columns and order preserving partitioner are discouraged. - Developers repeats that life will be much easier without them.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Searching is complicated -&amp;nbsp;No Search coming from the core. Either you have to use secondary indexes or create indexes yourself.&amp;nbsp;Secondary&amp;nbsp;indexes are layered on top, and not part of the main architecture. Also, they do not do range search or pattern search, which mean they good enough for extract string&amp;nbsp;retrievals. So they are not good enough for &amp;lt;, &amp;gt;, &amp;lt;=, &amp;gt;= etc. (only =) and SQL LIKE searches. &amp;nbsp; &amp;nbsp;When secondary indexes does not work for what you need, you have to learn and build your indexes using sort orders and slices.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Sort orders are complicated -&amp;nbsp;Column are always sorted by name, but row order depends on the partitioner. If you use sort orders to build your indexes, you have to worry about this.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Failed Operations may &amp;nbsp;leave changes -&amp;nbsp;If operation is successful, all is well. However,&amp;nbsp;if it failed, actually changes may have been applied. But operations are idempotent, so you can retry until successful.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Batch operations are not atomic, but you can retry until successful (as operations are idempotent).&amp;nbsp;&lt;/li&gt;&lt;li&gt;If a node fails, Cassandra does not figure it out and and do a self haling. Assuming you have replica, things will continue to work. But the whole system recovers only when a manual recovery operation is done.&amp;nbsp;&lt;/li&gt;&lt;li&gt;It remember deletes -&amp;nbsp;When we delete a data item, a node may be down at the time and may come back after the delete is done. To avoid this, Cassandra mark them as deleted (Tombstones) but does not delete this until configurable timeout or a repair. Space is actually freed up only then.&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-4369628274830921390?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/4369628274830921390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=4369628274830921390' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/4369628274830921390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/4369628274830921390'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/07/cassandra-surprises-you-might-get.html' title='Cassandra: Surprises you Might Get'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-6988885426698314892</id><published>2011-07-14T07:54:00.000-07:00</published><updated>2011-07-14T07:54:55.201-07:00</updated><title type='text'>Data in the Cloud: Scaling with Big Data, NoSQL in your PaaS</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://b.content.wso2.com/wp-content/themes/wso2ng-v3/images/workshop-data-cloud-p.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="66" src="http://b.content.wso2.com/wp-content/themes/wso2ng-v3/images/workshop-data-cloud-p.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I am doing the workshop "Data in the Cloud: Scaling with Big Data, NoSQL in your PaaS" with Sanjiva at Palo Alto next Tuesday. Would like to come? More details can be found from &lt;a href="http://wso2.com/events/workshops/2011-july-usa-data-in-the-cloud-workshop/?comdcbdate=290611"&gt;here&lt;/a&gt;.&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-6988885426698314892?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/6988885426698314892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=6988885426698314892' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6988885426698314892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6988885426698314892'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/07/data-in-cloud-scaling-with-big-data.html' title='Data in the Cloud: Scaling with Big Data, NoSQL in your PaaS'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-6796098903487676481</id><published>2011-07-13T15:47:00.000-07:00</published><updated>2011-07-13T15:48:33.741-07:00</updated><title type='text'>Netflix architecture talk at  CasandraSF 2011</title><content type='html'>The talk is done by Adrian cockcroft.&lt;br /&gt;&lt;br /&gt;Netflix has about&amp;nbsp;23 million subscribers and gets about 20B requests per month.&amp;nbsp;Runs almost&amp;nbsp;completely&amp;nbsp; in the cloud. Following are some reasons for using the Cloud.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Frictionless deployment &amp;nbsp;- do not need to order and wait. Remove many types of waits.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Better&amp;nbsp;business&amp;nbsp;agility - that is can run the whole architecture for new zone within few hours. So they can act very fast.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Cannot build data center fast enough to cater for the demand - data center takes at least 9 months to build.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Support for &amp;nbsp;Zones, scale on demand, global deployment&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;They keep&amp;nbsp;movies&amp;nbsp;separate, and distribute them through a CDN. Keep most of dynamic (transaction) data in&amp;nbsp;Cassandra. Do not use EBS, but they back up data in Cassandra nodes&amp;nbsp;periodically. Take&amp;nbsp;independent&amp;nbsp;backups at each Cassandra node, with loose&amp;nbsp;synchronization. If there is any&amp;nbsp;inconsistencies across different node backups, Cassandra repairs it at start up. They also&amp;nbsp;&amp;nbsp;incrementally backup data to S3&amp;nbsp;to avoid losing data between backups. (presumably through callbacks that are called when SSTables in Cassandra are updated.)&lt;br /&gt;&lt;br /&gt;They can point their system to a S3 bucket and bootup the system, and initializer will load and&amp;nbsp;initialize&amp;nbsp;the system using the data in that S3 bucket. They&amp;nbsp;use Chaos monkey testing. In other words, a process goes and randomly kills nodes, but the system recovers. They do this often to make sure that recovery does work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-6796098903487676481?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/6796098903487676481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=6796098903487676481' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6796098903487676481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6796098903487676481'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/07/netflix-architecture-talk-at-casandrasf.html' title='Netflix architecture talk at  CasandraSF 2011'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-7561903429670265629</id><published>2011-06-26T20:03:00.000-07:00</published><updated>2011-06-26T20:03:54.923-07:00</updated><title type='text'>Open Library</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;http://openlibrary.org/ provides a great collection of EBooks whose copyrights has passed. Much bigger than Gutenberg&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-7561903429670265629?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/7561903429670265629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=7561903429670265629' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/7561903429670265629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/7561903429670265629'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/06/open-library.html' title='Open Library'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-8886591426534458120</id><published>2011-06-12T17:37:00.000-07:00</published><updated>2011-06-12T17:48:50.134-07:00</updated><title type='text'>Scaling up your Publish/Subscribe Message Broker through a Loadbalancer</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;link href="file://localhost/Users/srinath/Library/Caches/TemporaryItems/msoclip/0/clip_filelist.xml" rel="File-List"&gt;&lt;/link&gt;&lt;link href="file://localhost/Users/srinath/Library/Caches/TemporaryItems/msoclip/0/clip_editdata.mso" rel="Edit-Time-Data"&gt;&lt;/link&gt;&lt;!--[if !mso]&gt;&lt;style&gt;v\:* {behavior:url(#default#VML);}o\:* {behavior:url(#default#VML);}w\:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}&lt;/style&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;o:DocumentProperties&gt;  &lt;o:Revision&gt;0&lt;/o:Revision&gt;  &lt;o:TotalTime&gt;0&lt;/o:TotalTime&gt;  &lt;o:Pages&gt;1&lt;/o:Pages&gt;  &lt;o:Words&gt;395&lt;/o:Words&gt;  &lt;o:Characters&gt;2253&lt;/o:Characters&gt;  &lt;o:Company&gt;WSO2&lt;/o:Company&gt;  &lt;o:Lines&gt;18&lt;/o:Lines&gt;  &lt;o:Paragraphs&gt;5&lt;/o:Paragraphs&gt;  &lt;o:CharactersWithSpaces&gt;2643&lt;/o:CharactersWithSpaces&gt;  &lt;o:Version&gt;14.0&lt;/o:Version&gt; &lt;/o:DocumentProperties&gt; &lt;o:OfficeDocumentSettings&gt;  &lt;o:AllowPNG/&gt; &lt;/o:OfficeDocumentSettings&gt;&lt;/xml&gt;&lt;![endif]--&gt;&lt;link href="file://localhost/Users/srinath/Library/Caches/TemporaryItems/msoclip/0/clip_themedata.xml" rel="themeData"&gt;&lt;/link&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w:WordDocument&gt;  &lt;w:View&gt;Normal&lt;/w:View&gt;  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;  &lt;w:TrackMoves&gt;false&lt;/w:TrackMoves&gt;  &lt;w:TrackFormatting/&gt;  &lt;w:PunctuationKerning/&gt;  &lt;w:ValidateAgainstSchemas/&gt;  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;  &lt;w:DoNotPromoteQF/&gt;  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;  &lt;w:LidThemeAsian&gt;JA&lt;/w:LidThemeAsian&gt;  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;  &lt;w:Compatibility&gt;   &lt;w:BreakWrappedTables/&gt;   &lt;w:SnapToGridInCell/&gt;   &lt;w:WrapTextWithPunct/&gt;   &lt;w:UseAsianBreakRules/&gt;   &lt;w:DontGrowAutofit/&gt;   &lt;w:SplitPgBreakAndParaMark/&gt;   &lt;w:EnableOpenTypeKerning/&gt;   &lt;w:DontFlipMirrorIndents/&gt;   &lt;w:OverrideTableStyleHps/&gt;   &lt;w:UseFELayout/&gt;  &lt;/w:Compatibility&gt;  &lt;m:mathPr&gt;   &lt;m:mathFont m:val="Cambria Math"/&gt;   &lt;m:brkBin m:val="before"/&gt;   &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;   &lt;m:smallFrac m:val="off"/&gt;   &lt;m:dispDef/&gt;   &lt;m:lMargin m:val="0"/&gt;   &lt;m:rMargin m:val="0"/&gt;   &lt;m:defJc m:val="centerGroup"/&gt;   &lt;m:wrapIndent m:val="1440"/&gt;   &lt;m:intLim m:val="subSup"/&gt;   &lt;m:naryLim m:val="undOvr"/&gt;  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"  DefSemiHidden="true" DefQFormat="false" DefPriority="99"  LatentStyleCount="276"&gt;  &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;  &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;  &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;  &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;  &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;  &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;  &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"   UnhideWhenUsed="false" Name="Table Grid"/&gt;  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;  &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;  &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;  &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;  &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;  &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;  &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;  &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt; &lt;/w:LatentStyles&gt;&lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt;&lt;!-- /* Font Definitions */@font-face	{font-family:Arial;	panose-1:2 11 6 4 2 2 2 2 2 4;	mso-font-charset:0;	mso-generic-font-family:auto;	mso-font-pitch:variable;	mso-font-signature:3 0 0 0 1 0;}@font-face	{font-family:Times;	panose-1:2 0 5 0 0 0 0 0 0 0;	mso-font-charset:0;	mso-generic-font-family:auto;	mso-font-pitch:variable;	mso-font-signature:3 0 0 0 1 0;}@font-face	{font-family:"ＭＳ 明朝";	panose-1:0 0 0 0 0 0 0 0 0 0;	mso-font-charset:128;	mso-generic-font-family:roman;	mso-font-format:other;	mso-font-pitch:fixed;	mso-font-signature:1 134676480 16 0 131072 0;}@font-face	{font-family:"ＭＳ ゴシック";	panose-1:0 0 0 0 0 0 0 0 0 0;	mso-font-charset:128;	mso-generic-font-family:modern;	mso-font-format:other;	mso-font-pitch:fixed;	mso-font-signature:1 134676480 16 0 131072 0;}@font-face	{font-family:"ＭＳ ゴシック";	panose-1:0 0 0 0 0 0 0 0 0 0;	mso-font-charset:128;	mso-generic-font-family:modern;	mso-font-format:other;	mso-font-pitch:fixed;	mso-font-signature:1 134676480 16 0 131072 0;}@font-face	{font-family:Calibri;	panose-1:2 15 5 2 2 2 4 3 2 4;	mso-font-charset:0;	mso-generic-font-family:auto;	mso-font-pitch:variable;	mso-font-signature:3 0 0 0 1 0;}@font-face	{font-family:Cambria;	panose-1:2 4 5 3 5 4 6 3 2 4;	mso-font-charset:0;	mso-generic-font-family:auto;	mso-font-pitch:variable;	mso-font-signature:3 0 0 0 1 0;} /* Style Definitions */p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-parent:"";	margin:0cm;	margin-bottom:.0001pt;	mso-pagination:widow-orphan;	font-size:12.0pt;	font-family:Cambria;	mso-ascii-font-family:Cambria;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:"ＭＳ 明朝";	mso-fareast-theme-font:minor-fareast;	mso-hansi-font-family:Cambria;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:"Times New Roman";	mso-bidi-theme-font:minor-bidi;}h2	{mso-style-priority:9;	mso-style-qformat:yes;	mso-style-link:"Heading 2 Char";	mso-style-next:Normal;	margin-top:10.0pt;	margin-right:0cm;	margin-bottom:0cm;	margin-left:0cm;	margin-bottom:.0001pt;	mso-pagination:widow-orphan lines-together;	page-break-after:avoid;	mso-outline-level:2;	font-size:13.0pt;	font-family:Calibri;	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:major-latin;	mso-fareast-font-family:"ＭＳ ゴシック";	mso-fareast-theme-font:major-fareast;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:major-latin;	mso-bidi-font-family:"Times New Roman";	mso-bidi-theme-font:major-bidi;	color:#4F81BD;	mso-themecolor:accent1;}a:link, span.MsoHyperlink	{mso-style-priority:99;	color:blue;	mso-themecolor:hyperlink;	text-decoration:underline;	text-underline:single;}a:visited, span.MsoHyperlinkFollowed	{mso-style-noshow:yes;	mso-style-priority:99;	color:purple;	mso-themecolor:followedhyperlink;	text-decoration:underline;	text-underline:single;}span.Heading2Char	{mso-style-name:"Heading 2 Char";	mso-style-priority:9;	mso-style-unhide:no;	mso-style-locked:yes;	mso-style-link:"Heading 2";	mso-ansi-font-size:13.0pt;	mso-bidi-font-size:13.0pt;	font-family:Calibri;	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:major-latin;	mso-fareast-font-family:"ＭＳ ゴシック";	mso-fareast-theme-font:major-fareast;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:major-latin;	mso-bidi-font-family:"Times New Roman";	mso-bidi-theme-font:major-bidi;	color:#4F81BD;	mso-themecolor:accent1;	font-weight:bold;}.MsoChpDefault	{mso-style-type:export-only;	mso-default-props:yes;	font-family:Cambria;	mso-ascii-font-family:Cambria;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:"ＭＳ 明朝";	mso-fareast-theme-font:minor-fareast;	mso-hansi-font-family:Cambria;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:"Times New Roman";	mso-bidi-theme-font:minor-bidi;}@page WordSection1	{size:595.0pt 842.0pt;	margin:72.0pt 90.0pt 72.0pt 90.0pt;	mso-header-margin:35.4pt;	mso-footer-margin:35.4pt;	mso-paper-source:0;}div.WordSection1	{page:WordSection1;}--&gt;&lt;/style&gt;&lt;!--[if gte mso 10]&gt;&lt;style&gt; /* Style Definitions */table.MsoNormalTable	{mso-style-name:"Table Normal";	mso-tstyle-rowband-size:0;	mso-tstyle-colband-size:0;	mso-style-noshow:yes;	mso-style-priority:99;	mso-style-parent:"";	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;	mso-para-margin:0cm;	mso-para-margin-bottom:.0001pt;	mso-pagination:widow-orphan;	font-size:12.0pt;	font-family:Cambria;	mso-ascii-font-family:Cambria;	mso-ascii-theme-font:minor-latin;	mso-hansi-font-family:Cambria;	mso-hansi-theme-font:minor-latin;}&lt;/style&gt;&lt;![endif]--&gt;&lt;!--StartFragment--&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Publish/Subscribe message brokers enable publishers andsubscribers to communicate with each other in a loosely coupled manner. Pub/Subbrokers have found wide adoption through Java Messaging Service (JMS), andlater through WS-Eventing and WS-Notification specifications. Read the paper "&lt;a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.85.535"&gt;Many faces of publish/subscribe&lt;/a&gt;" if you are new to the topic. &amp;nbsp;It is a great introduction.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;A trivial deployment would involve a standalone server.However, such a server would be a single point of failure and have limitedscalability. One solution to all these problems is a distributed brokerhierarchy, like Narada Broker (&lt;span style="color: #0e774a; font-family: Arial; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;www.&lt;b&gt;naradabroker&lt;/b&gt;ing.org&lt;/span&gt;)or Wihidum (&lt;a href="http://code.google.com/p/wihidum/"&gt;http://code.google.com/p/wihidum/&lt;/a&gt;). Distributed brokers, however, are more or less a research topic yet. It isstill possible to achieve the same (almost the same) using a cluster frontedwith an intelligent load balancer. I am trying to explain few such deploymentarchitectures in this post. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;h2&gt;Fault tolerant deployment and handling large number of events&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;&lt;div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-H7g9VwuJfMQ/TfVcpzxgG7I/AAAAAAAABcA/fhhDUDKWfqo/s1600/FT-deployment.png" imageanchor="1" style="color: blue; margin-left: auto; margin-right: auto; text-decoration: underline;"&gt;&lt;img border="0" height="238" src="http://2.bp.blogspot.com/-H7g9VwuJfMQ/TfVcpzxgG7I/AAAAAAAABcA/fhhDUDKWfqo/s320/FT-deployment.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 1: Make each node have all subscriptions and partition event handling across nodes&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;The Job of a publish/subscribe broker is to receive eventsand deliver them to consumers who have expressed interest on the event througha subscription. In the above setup, load balancer sends subscription messagesto all brokers, and sends event publications to a one broker. Since allsubscriptions are sent to all nodes, each node knows about all subscriptions. The node that receives the subscriptioncan deliver the message to the subscribers. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;It is worth noting that if reliability is needed, the brokerhas to write the message to the persistent storage before acknowledging thesender when it receives a publication message.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;Therefore, load balancer has to do a blocking call to the broker. Also,note that since subscription messages are less frequent than publicationmessages, broadcast incurs much smaller overhead. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2&gt;Handling Large number of subscriptions &lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-PxZ6BYJLOOw/TfVctRJM3SI/AAAAAAAABcE/sX3_WVSTcl4/s1600/subs-depoyment.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="232" src="http://3.bp.blogspot.com/-PxZ6BYJLOOw/TfVctRJM3SI/AAAAAAAABcE/sX3_WVSTcl4/s320/subs-depoyment.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 2:&amp;nbsp;Partition&amp;nbsp;Subscriptions across the Nodes&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="MsoNormal"&gt;Sometime there are many subscriptions with moderate numberof messages, and in such cases, one node might not be capable of handling allthe subscriptions. Figure 2 presents a deployment for such cases. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Here the load balancer will send subscription messages specificnode, but will send publication messages to all nodes. Effectively,subscriptions are partitioned across the nodes, and events are sent to allnodes. Each node deliver events to subscribers assigned to that node. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;However, it is worth noting this works for pub/sub case, butnot for distributed queues (e.g. JMS queue) case. In that case, consumersconnect to the broker and retrieve events in contrast to pub/sub model, andwhen a consumer connection to any node, the cluster has to make sure that nodehas upto-date information. &lt;span style="font-family: Times; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;If there is any downside on this&amp;nbsp;approach, that is it need a intelligent application level load balancer. For most workloads this should be OK. For example, WSO2 ESB can&amp;nbsp;achieve&amp;nbsp;2500/TPS on 2-core basic machine, and 10,000+ on a high end machine, which should be&amp;nbsp;sufficient&amp;nbsp;for most usecases.&amp;nbsp;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;!--EndFragment--&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-8886591426534458120?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/8886591426534458120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=8886591426534458120' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8886591426534458120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8886591426534458120'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/06/scaling-up-your-publishsubscribe.html' title='Scaling up your Publish/Subscribe Message Broker through a Loadbalancer'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-H7g9VwuJfMQ/TfVcpzxgG7I/AAAAAAAABcA/fhhDUDKWfqo/s72-c/FT-deployment.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-7149933201696478960</id><published>2011-05-24T19:45:00.000-07:00</published><updated>2011-05-24T19:45:22.648-07:00</updated><title type='text'>Developing Distributed Web Applications, Where does REST fit in?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I did the following talk on INET conference (&lt;span class="Apple-style-span" style="color: #0b1c8d; font-family: Helvetica; font-size: 12px;"&gt;http://www.isoc.lk/inet_colombo/&lt;/span&gt;) yesterday. I was trying to bring out the difference between ROA and SOA. &amp;nbsp;You can get slides from&amp;nbsp;&lt;strong style="display: inline !important; margin-bottom: 4px; margin-left: 0px; margin-right: 0px; margin-top: 12px;"&gt;&lt;a href="http://www.slideshare.net/hemapani/developing-distributed-web-applications-where-does-rest-fit-in-8083222" title="Developing Distributed Web Applications, Where does REST fit in?"&gt;Developing Distributed Web Applications, Where does REST fit in?&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div id="__ss_8083222" style="width: 425px;"&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/8083222" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/hemapani"&gt;Srinath Perera&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-7149933201696478960?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/7149933201696478960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=7149933201696478960' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/7149933201696478960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/7149933201696478960'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/05/developing-distributed-web-applications.html' title='Developing Distributed Web Applications, Where does REST fit in?'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-5577004735883837736</id><published>2011-04-03T19:59:00.000-07:00</published><updated>2011-04-03T19:59:09.638-07:00</updated><title type='text'>Getting Started with MPI with your laptop</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Yes, to do something serious with MPI you need a cluster. But to try it out, you can do that in your laptop. Main setup should only take 10-15 minutes. Following is how to do it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;1. Download open MPI, http://www.open-mpi.org/software/ompi/v1.4/&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;2. Build by issuing ./configure and make&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;3. Write the mpi program and compile it with mpic++ -o hello hello.c &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;4. Run it with mpirun -np 10 hello. Here "hello" is the program and "-np" is the number of processes. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Note that to run N process program, you can run it in a single CPU. MPI will just run N OS processes.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Well learning MPI might take some thinking. &lt;a href="http://www-users.cs.umn.edu/~karypis/parbook/Lectures/GK-CS5451/Chapter%206%20-%20Programming%20Using%20the%20Message%20Passing%20Interface.pdf"&gt;This&lt;/a&gt;&amp;nbsp;and &lt;a href="http://cac.engin.umich.edu/started/training/pdfs/mpi.pdf"&gt;this&lt;/a&gt;&amp;nbsp;might help. One thing to remember is that MPI model is bit different. If process 0 is broadcasting and all other processes are receiving the message, every process call MPI_Broadcast and call behave different on the root than in other processes. Good luck.&amp;nbsp;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-5577004735883837736?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/5577004735883837736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=5577004735883837736' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5577004735883837736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5577004735883837736'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/04/getting-started-with-mpi-with-your.html' title='Getting Started with MPI with your laptop'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-8676914730860203143</id><published>2011-01-23T08:12:00.000-08:00</published><updated>2011-01-23T08:16:26.077-08:00</updated><title type='text'>NoSQL and Search</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;One&amp;nbsp;notable&amp;nbsp;change that comes with most NoSQL solutions is lack of ad-hoc search support. For example, with&amp;nbsp;Cassandra, you have to either store the data considering the queries you want to be doing (that is store based on your Application ) or do Map-Reduce.&lt;br /&gt;&lt;br /&gt;For most End user Apps, this is acceptable, and often Apps (at least the simple ones) do few queries, and often users can consider those and store data accordingly in the the storage. However, the same is not true for middleware frameworks like&amp;nbsp;Registries&amp;nbsp;which do not know what users going to store and what&amp;nbsp;they&amp;nbsp;will search for.&lt;br /&gt;&lt;br /&gt;There are few possible solutions. Note that most NoSQL databases partition the data across several nodes, and the&amp;nbsp;challenge&amp;nbsp;is doing ad-hoc queries across the nodes.&lt;br /&gt;&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;Map Reduce - which is the common solution&amp;nbsp;advocated, but typically results take some time to be calculated. This is great for batch processing and data warehouse type applications.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Scatter Gather - idea is to send request to all nodes and collect the data. MangoDB uses this and they claim most queries can be answered by only talking to one node. Downside is that it is expensive when it has to talk to all the nodes.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Word Indexing &amp;nbsp;(e.g. Lucene) - For document like usecases this is ideal. However, this lack the context of data within the document (can only look for document or record that has given words). So this is not ideal for key value pairs and column family like DB&lt;/li&gt;&lt;li&gt;Binary Trees - idea is to build binary three for each property (field or Column) stored in the storage, and this is how most Relational databases are implemented. This support not only support exactly matching searches but also supports ranges based searches as well. Overhead of doing this is not very clear yet.&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;As you would see&amp;nbsp;neither&amp;nbsp;is perfect (may be except for the last).&amp;nbsp;Above were few&amp;nbsp;thoughts&amp;nbsp;on the subject, and in my opinion, this is a problem NoSQL databases have to solve.&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-8676914730860203143?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/8676914730860203143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=8676914730860203143' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8676914730860203143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8676914730860203143'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/01/nosql-and-search.html' title='NoSQL and Search'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-2028438466249975916</id><published>2011-01-17T17:29:00.000-08:00</published><updated>2011-01-17T17:29:22.181-08:00</updated><title type='text'>Cloud Computing: An Introduction</title><content type='html'>&lt;div id="__ss_6601756" style="width: 425px;"&gt;&lt;strong style="display: block; margin: 12px 0 4px;"&gt;&lt;br /&gt;&lt;/strong&gt;&lt;object height="355" id="__sse6601756" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=cloud-110117104816-phpapp02&amp;stripped_title=cloud-computing-an-introduction-6601756&amp;userName=hemapani" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse6601756" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=cloud-110117104816-phpapp02&amp;stripped_title=cloud-computing-an-introduction-6601756&amp;userName=hemapani" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/hemapani"&gt;Srinath Perera&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;I did this public talk at FITIS tech eve (Federation of the Information Technology Industry in Sri Lanka). It is a high level overview of the cloud, designed to answer questions like What? Why? When? You can download slides from&amp;nbsp;&lt;strong style="display: inline !important; margin-bottom: 4px; margin-left: 0px; margin-right: 0px; margin-top: 12px;"&gt;&lt;a href="http://www.slideshare.net/hemapani/cloud-computing-an-introduction-6601756" title="Cloud Computing: An Introduction"&gt;Cloud Computing: An Introduction&lt;/a&gt;.&amp;nbsp;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-2028438466249975916?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/2028438466249975916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=2028438466249975916' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2028438466249975916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2028438466249975916'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/01/cloud-computing-introduction.html' title='Cloud Computing: An Introduction'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-2352545325789600948</id><published>2011-01-03T00:59:00.000-08:00</published><updated>2011-01-03T00:59:57.292-08:00</updated><title type='text'>Congratulations Dr. Jaliya Ekanayake!</title><content type='html'>http://sanjiva.weerawarana.org/2011/01/congratulations-dr-jaliya-ekanayake.html :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-2352545325789600948?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://sanjiva.weerawarana.org/2011/01/congratulations-dr-jaliya-ekanayake.html' title='Congratulations Dr. Jaliya Ekanayake!'/><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/2352545325789600948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=2352545325789600948' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2352545325789600948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2352545325789600948'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2011/01/congratulations-dr-jaliya-ekanayake.html' title='Congratulations Dr. Jaliya Ekanayake!'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-5116343876228124690</id><published>2010-12-29T19:26:00.000-08:00</published><updated>2010-12-29T19:26:05.146-08:00</updated><title type='text'>Carbon: Towards a Server Building Framework for SOA Platform</title><content type='html'>Following is the slides I presented at the 5th International Workshop on Middleware for Service Oriented Computing (co-located with Middleware 2010, India). The paper can be found in &lt;a href="http://portal.acm.org/citation.cfm?id=1890914"&gt;http://portal.acm.org/citation.cfm?id=1890914&lt;/a&gt; and &lt;a href="http://people.apache.org/~hemapani/research/papers/carbon.pdf"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The paper presents Carbon, the underline platform for all WSO2 products. Based on OSGI, Carbon provides a server building framework for SOA with a kernel, which handles most of the details regarding building SOA servers. The paper discusses the design decisions, potential impact, and its relationship to state of art in the&amp;nbsp;Component&amp;nbsp;Based Software&amp;nbsp;Engineering.&lt;br /&gt;&lt;br /&gt;&lt;div id="__ss_5992473" style="width: 425px;"&gt;&lt;strong style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/hemapani/carbon-towards-a-server-building-framework-for-soa-platform" title="Carbon: Towards a Server Building Framework for SOA Platform"&gt;Carbon: Towards a Server Building Framework for SOA Platform&lt;/a&gt;&lt;/strong&gt;&lt;object height="355" id="__sse5992473" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=carbon-101201044709-phpapp02&amp;stripped_title=carbon-towards-a-server-building-framework-for-soa-platform&amp;userName=hemapani" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse5992473" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=carbon-101201044709-phpapp02&amp;stripped_title=carbon-towards-a-server-building-framework-for-soa-platform&amp;userName=hemapani" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/hemapani"&gt;Srinath Perera&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-5116343876228124690?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/5116343876228124690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=5116343876228124690' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5116343876228124690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5116343876228124690'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/12/carbon-towards-server-building.html' title='Carbon: Towards a Server Building Framework for SOA Platform'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-4493273490836955586</id><published>2010-12-29T19:14:00.000-08:00</published><updated>2010-12-29T19:16:24.934-08:00</updated><title type='text'>BISSA: Empowering Web gadget Communication with Tuple Spaces</title><content type='html'>Following is a talk I did at the 8th International Workshop on Middleware for Grids, Clouds and e-Science (co located with Super Computing 2010 at New Orleans). The research paper with the same title can be found at&amp;nbsp;&lt;a href="http://portal.acm.org/citation.cfm?id=1890809"&gt;http://portal.acm.org/citation.cfm?id=1890809&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The paper presents Biassa, a scalable tuple space implementation on top of a Distributed Hash Table, and its application as an inter gadget communication medium. This is the outcome of a University of Moratuwa final year project done by Pradeep Fernando, Charith Wickramarachchi, Dulanjanie Sumanasena, and Udayanga Wickramasinghe and supervised&lt;span class="Apple-style-span" style="color: #333333; font-family: Verdana, Arial, sans-serif; font-size: 13px; line-height: 16px;"&gt;&amp;nbsp;by&amp;nbsp;&lt;/span&gt;&lt;a href="http://sanjiva.weerawarana.org/"&gt;Dr. Sanjiva Weerawarana&lt;/a&gt;&amp;nbsp;&amp;nbsp;and myself. I am elated that MRT final year projects can go this far!&lt;br /&gt;&lt;br /&gt;&lt;div id="__ss_5776851" style="width: 425px;"&gt;&lt;strong style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/hemapani/bissa-empowering-web-gadget-communication-with-tuple-spaces" title="BISSA: Empowering Web gadget Communication with Tuple Spaces"&gt;BISSA: Empowering Web gadget Communication with Tuple Spaces&lt;/a&gt;&lt;/strong&gt;&lt;object height="355" id="__sse5776851" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=bissa-101114114533-phpapp01&amp;stripped_title=bissa-empowering-web-gadget-communication-with-tuple-spaces&amp;userName=hemapani" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse5776851" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=bissa-101114114533-phpapp01&amp;stripped_title=bissa-empowering-web-gadget-communication-with-tuple-spaces&amp;userName=hemapani" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/hemapani"&gt;Srinath Perera&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-4493273490836955586?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/4493273490836955586/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=4493273490836955586' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/4493273490836955586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/4493273490836955586'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/12/bissa-empowering-web-gadget.html' title='BISSA: Empowering Web gadget Communication with Tuple Spaces'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-8316194926920166450</id><published>2010-12-29T18:58:00.000-08:00</published><updated>2010-12-29T18:59:04.829-08:00</updated><title type='text'>An Scaling pattern: Life beyond Distributed Transactions: an Apostate’s Opinion</title><content type='html'>The paper “&lt;a href="http://nosqlsummer.org/paper/life-beyond-distributed-transactions"&gt;Life beyond Distributed Transactions: an Apostate’s Opinion&lt;/a&gt;” provides an inserting a scaling pattern to cope without transactions for very large scale.&lt;br /&gt;&lt;br /&gt;The idea can be described using three things: entities, activities, and using workflows instead of transactions.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;entity is a single collection of data that lives within a single scope of serializability (e.g. cluster). Each entity has a unique key, and transactions cannot expand multiple entities.&lt;/li&gt;&lt;li&gt;Activity is a relationship between two entities (holds all state about such a relationship).&lt;/li&gt;&lt;li&gt;Finally, the key idea is that entities cope by not doing transactions with each other, but handling the uncertainty rise out of lack of transactions through a workflow.&amp;nbsp;&lt;/li&gt;&lt;li&gt;The author makes an interesting observation that normal world does not have transactions, but cope with uncertainties through time limits, compensations, cancellations etc., or in other words cope through a workflow. So he argues that activities should be carried out with tentative message, confirmation or cancellation model.&lt;/li&gt;&lt;/ul&gt;So does that scale? Yes, handling stabilizability within one entity is very much possible, and rest is data partition, which is well understood. Only key decider is that can we model&amp;nbsp;uncertainties&amp;nbsp;that arise from lack of transactions through workflows. My gut feeling is most of the time we can, but there certainly are exceptions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-8316194926920166450?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/8316194926920166450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=8316194926920166450' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8316194926920166450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8316194926920166450'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/12/scaling-pattern-life-beyond-distributed.html' title='An Scaling pattern: Life beyond Distributed Transactions: an Apostate’s Opinion'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-799176178032971487</id><published>2010-11-16T14:00:00.000-08:00</published><updated>2010-11-16T14:00:55.200-08:00</updated><title type='text'>SC keynote: How to Create New Growth Businesses in a Risk-Minimizing Environment</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial, Tahoma, Verdana; font-size: 16px;"&gt;Clayton M. Christensen (author of&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 13px;"&gt;The Innovator's Dilemma&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Tahoma, Verdana; font-size: 16px;"&gt;) t&lt;/span&gt;alked about&amp;nbsp;descriptive&amp;nbsp;technology. This is new product which simplify and&amp;nbsp;drastically&amp;nbsp;change the user&amp;nbsp;experience&amp;nbsp;which go on to kill big&amp;nbsp;players.&lt;br /&gt;&lt;br /&gt;Discussed DEC as a example, how Apple PC, and then PC killed all mainframe players. Stressed that &amp;nbsp;at start PC looked like a joke, none of the users&amp;nbsp;thought&amp;nbsp;that PC is useful. So listening to users did &amp;nbsp;not helped the&amp;nbsp;companies&amp;nbsp;at all. Manager did all the right things (from&amp;nbsp;business&amp;nbsp;school point of view), but did not worked. Other examples, Steel (integrated plants-&amp;gt; Mini plants),&amp;nbsp;Vacuum&amp;nbsp;Tubes-&amp;gt;transistors&lt;br /&gt;&lt;br /&gt;Point is listening to your customers does not going to help you.&amp;nbsp;Because&amp;nbsp;they do not understand the process they are following and nor they understand how to improve it. Instead try to understand what he is actually trying to do and improve it. Argued that understanding should be done based in&amp;nbsp;function, emotions, and social aspects of the product.&lt;br /&gt;&lt;br /&gt;Also stressed that going for only things that let you maximize profit and outsourcing can let other players enter the market and topple you (big&amp;nbsp;player&amp;nbsp;eventually). It is more or less local vs. global (short term vs. long term) optimization&amp;nbsp;argument. Gave dell and&amp;nbsp;Azure&amp;nbsp;as an example.&lt;br /&gt;&lt;br /&gt;Apparently&amp;nbsp;IBM is one of the companies that has been able to make through from main frame era to PC era and beyond. Argued &amp;nbsp;that they did so by shutting down&amp;nbsp;business&amp;nbsp;units and letting new&amp;nbsp;business&amp;nbsp;units to take over so that in overall the company can survive.&lt;br /&gt;&lt;br /&gt;Final note, on a&amp;nbsp;survey, 93% of&amp;nbsp;entrepreneur&amp;nbsp;succeeded&amp;nbsp;on a different idea than that what they started, which suggests&amp;nbsp;success&amp;nbsp;depends on ability to understand and reposition themselves.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-799176178032971487?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/799176178032971487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=799176178032971487' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/799176178032971487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/799176178032971487'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/11/sc-keynote-how-to-create-new-growth.html' title='SC keynote: How to Create New Growth Businesses in a Risk-Minimizing Environment'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-9223161989796208966</id><published>2010-10-29T08:47:00.000-07:00</published><updated>2010-10-29T08:50:07.998-07:00</updated><title type='text'>Computational Thinking</title><content type='html'>Interesting&amp;nbsp;post&amp;nbsp;&lt;a href="http://googleresearch.blogspot.com/2010/10/exploring-computational-thinking.html"&gt;Exploring Computational Thinking&lt;/a&gt;&amp;nbsp;on the subject.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-9223161989796208966?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/9223161989796208966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=9223161989796208966' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/9223161989796208966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/9223161989796208966'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/10/computational-thinking.html' title='Computational Thinking'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-2371412218561571150</id><published>2010-10-07T18:10:00.000-07:00</published><updated>2010-10-07T18:11:32.840-07:00</updated><title type='text'>You Can't Sacrifice Partition Tolerance?</title><content type='html'>There is a very nice post on&amp;nbsp;&lt;a href="http://codahale.com/you-cant-sacrifice-partition-tolerance/"&gt;http://codahale.com/you-cant-sacrifice-partition-tolerance/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;One complications to that argument is replication implemented with group&amp;nbsp;communication, which is a reasonable approximation to a system with both availability and consistency. (Just thinking aloud, as these stuff needs lots of thinking to be sure). Now what happen in group communication is that if a node fails, it creates a new group excluding failed node, and although the system operation has to wait till new group is defined (rather repair the&amp;nbsp;existing&amp;nbsp;node ), after the repair, things will work fine given that you have enough replicas left. So does group communication contradict or works around above assertion?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-2371412218561571150?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/2371412218561571150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=2371412218561571150' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2371412218561571150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2371412218561571150'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/10/you-cant-sacrifice-partition-tolerance.html' title='You Can&apos;t Sacrifice Partition Tolerance?'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-294845882373748747</id><published>2010-10-06T21:24:00.000-07:00</published><updated>2010-10-06T21:24:23.799-07:00</updated><title type='text'>NBQSA 2010 - Overall Gold award goes to WSO2 ESB</title><content type='html'>Copied from Ruwan's Blog, &lt;a href="http://blog.ruwan.org/2010/10/nbqsa-2010-overall-gold-award-goes-to.html"&gt;NBQSA 2010 - Overall Gold award goes to WSO2 ESB&lt;/a&gt;: "&lt;div&gt;&lt;br /&gt;&lt;div style="text-align:left"&gt;&lt;a href="http://www.nbqsasrilanka.org/"&gt;NBQSA&lt;/a&gt; (National Best Quality Software Award) is an annual award ceremony held in Sri Lanka to evaluate and award the Software developedin the country. This is hosted by &lt;a href="http://www.bcssrilanka.org/"&gt;BCSSL&lt;/a&gt; (British Computer Society - Sri Lanka)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;WSO2 marketing team decided to submit 3 of our products to this award evaluation, it was just few days we had to prepare for this presentation. I initially objected to submitting &lt;a href="http://wso2.com/products/enterprise-service-bus/"&gt;WSO2 ESB&lt;/a&gt; (the product that I am responsible of in WSO2) for this so quickly, as my intention was to win the first price if we are to submit. Kushlani from our marketing team together with Asanka has been driving this and motivated us a lot to submit for this.&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Well, we spent few hours and &lt;a href="http://miyuru-daminda.blogspot.com/"&gt;Miyuru&lt;/a&gt;, &lt;a href="http://kasunpanorama.blogspot.com/"&gt;Kasun&lt;/a&gt; and few others get together with me and prepared a plan to execute with a presentation script and demonstration. Miyuru did the first round&lt;/div&gt;&lt;img style="float:left;margin:0 10px 10px 0;width:240px;height:320px" src="http://4.bp.blogspot.com/_vAusPeLIHn8/TKioMmUnZGI/AAAAAAAAAIg/eOWMTvyEMSI/s320/IMG_0005.jpg" border="0" alt="" /&gt;&lt;div&gt;presentation and we got through to the second round easily. &lt;a href="http://techfeast-hiranya.blogspot.com/"&gt;Hiranya&lt;/a&gt; took it over and we delivered the second presentation, to which we got a very good response from the judges.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then, we were waiting to see the results and we had to app&lt;/div&gt;&lt;div&gt;arently wait till, day before yesterday (1st of October 2010) for that.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;From WSo2 8 of us got invited and we all went on time with a lot of enthusiasm as all 3 of our products were on the wining cycle. The award ceremony got started and the first&lt;/div&gt;to get an award from the 3 products was the &lt;a href="http://wso2.com/products/gadget-server/"&gt;WSO2 Gadget Server&lt;/a&gt; which got the Silver award under the RnD software category.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then I was so waiting till the Infrastructure and Tools category to be awarded since both the WSO2 Data Services and WSO2 ESB was on that category.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img style="float:right;margin:0 0 10px 10px;width:240px;height:320px" src="http://1.bp.blogspot.com/_vAusPeLIHn8/TKio-EdOaJI/AAAAAAAAAIo/0HQCZyQkNmY/s320/IMG_0006.jpg" border="0" alt="" /&gt;They had only 2 awards on that category and one Bronze and a Gold. When it is announced that &lt;a href="http://wso2.com/products/data-services-server"&gt;WSO2 DS&lt;/a&gt; as the bronze award I knew that ESB is getting the Gold award. I was not that excited, to be frank, I sort of knew that we are going to get it on our category :-) I was expecting the overall gold award. ;-)&lt;div&gt;&lt;div&gt;&lt;div style="text-align:center"&gt;&lt;div style="text-align:left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Then they came to announcing the final overall awards, before which they have given out some special awards, but ESB was no where on those special awards. I was waitin&lt;/div&gt;g and waiting and waiting... so does all of us from WSO2.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Finally they have announced the Bronze and Silver awards and those are the folks who won some special awards and I was 90% sure about my expectation now. And they finally announced WSo2 ESB as the Overall Gold winner at NBQSA 2010. I was so excited to accept the best award on that ceremony as the product manager of WSO2 ESB. I got down from the stage holding the most valuable award of the nite as the most proud man on that nite, though I must say that this price is for the whole WSO2 team including the past members of our team.&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img style="display:block;margin:0px auto 10px;text-align:center;width:320px;height:240px" src="http://4.bp.blogspot.com/_vAusPeLIHn8/TKiqx5UiAYI/AAAAAAAAAIw/l1RVA_JGU1s/s320/IMG_8828.JPG" border="0" alt="" /&gt;&lt;img style="display:block;margin:0px auto 10px;text-align:center;width:320px;height:240px" src="http://2.bp.blogspot.com/_vAusPeLIHn8/TKirNKQT4uI/AAAAAAAAAI4/FqC995PfqbI/s320/IMG_8840.JPG" border="0" alt="" /&gt;&lt;div style="text-align:center"&gt;All of us who participated for the event from Left, &lt;a href="http://samisa-abeysinghe.blogspot.com/"&gt;Samisa&lt;/a&gt;, &lt;a href="http://blog.asanka.org/"&gt;Asanka&lt;/a&gt;, Kushlani, &lt;a href="http://miyuru-daminda.blogspot.com/"&gt;Miyuru&lt;/a&gt; (holding the Gadget Server silver award), Me (holding the overall gold for ESB), &lt;a href="http://techfeast-hiranya.blogspot.com/"&gt;Hiranya&lt;/a&gt; (holding the ESB Gold award on Infrastructure and Tools category), &lt;a href="http://sumedha.blogspot.com/"&gt;Sumedha&lt;/a&gt; (holding Data Service Server bronze award) and &lt;a href="http://blog.afkham.org/"&gt;Azeez&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align:left"&gt;Now we are about to head towards &lt;a href="http://www.apicta2010.com/"&gt;APICTA&lt;/a&gt; in next week at Malaysia, Kuala Lumpur. Will update on that as well. :-)&lt;/div&gt;&lt;div style="text-align:left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/8574861907355706533-988378630604820412?l=blog.ruwan.org" alt="" /&gt;&lt;/div&gt;"&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-294845882373748747?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.ruwan.org/2010/10/nbqsa-2010-overall-gold-award-goes-to.html' title='NBQSA 2010 - Overall Gold award goes to WSO2 ESB'/><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/294845882373748747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=294845882373748747' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/294845882373748747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/294845882373748747'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/10/nbqsa-2010-overall-gold-award-goes-to.html' title='NBQSA 2010 - Overall Gold award goes to WSO2 ESB'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_vAusPeLIHn8/TKioMmUnZGI/AAAAAAAAAIg/eOWMTvyEMSI/s72-c/IMG_0005.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-8592019789920561370</id><published>2010-09-20T00:45:00.000-07:00</published><updated>2010-09-20T00:45:55.795-07:00</updated><title type='text'>Doing Enterprise Business with Processes &amp; Rules</title><content type='html'>Following is the slides for my WSO2Con talk. &lt;br /&gt;&lt;br /&gt;&lt;div id="__ss_5237960" style="width: 425px;"&gt;&lt;strong style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/hemapani/rules-andporcessesinenterprise-5237960" title="Doing Enterprise Business with Processes &amp;amp; Rules"&gt;Doing Enterprise Business with Processes &amp;amp; Rules&lt;/a&gt;&lt;/strong&gt;&lt;object height="355" id="__sse5237960" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=rulesandporcessesinenterprise-100920023649-phpapp01&amp;stripped_title=rules-andporcessesinenterprise-5237960&amp;userName=hemapani" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse5237960" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=rulesandporcessesinenterprise-100920023649-phpapp01&amp;stripped_title=rules-andporcessesinenterprise-5237960&amp;userName=hemapani" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/hemapani"&gt;Srinath Perera&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-8592019789920561370?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/8592019789920561370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=8592019789920561370' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8592019789920561370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8592019789920561370'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/09/doing-enterprise-business-with.html' title='Doing Enterprise Business with Processes &amp; Rules'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-3047374595574790758</id><published>2010-09-18T18:39:00.000-07:00</published><updated>2010-09-18T18:56:13.160-07:00</updated><title type='text'>Zero Copy pass through in WSO2 ESB</title><content type='html'>There have been some confusion on &lt;a href="http://wso2.org/library/articles/binary-relay-efficient-way-pass-both-xml-non-xml-content-through-apache-synapse"&gt;Zero Copy pass through&lt;/a&gt; scenario (we call that Binary Relay) implementation at WSO2 ESB. Let me try to clarify that. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://wso2.org/files/relay_0.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="125" src="http://wso2.org/files/relay_0.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;To implement&amp;nbsp;Binary Relay, we use Axis2 architecture. Axis2 works only with SOAPEnvelope as the input to its pipeline, &amp;nbsp;but users can add Formatters&amp;nbsp;and builders against different content types. Job of a Builder is to build a SOAP envelope from anything (e.g. HTTP SOAP Message, from fast XML, from Jason message etc.) and pass it in to Axis2 pipeline, and job of a Formatter is to take a envelope and write it out in any expected form (write it as a text message, to fast XML, to Jason message etc).&lt;br /&gt;&lt;br /&gt;To implement Binary Relay, &amp;nbsp;we wrote a builder, that takes the input stream and and hides it inside a fake SOAP message without reading it, and wrote a formatter that takes the input stream and writes it directly to a output stream. (of course, we take a small buffer and use that to move data between two streams).&lt;br /&gt;&lt;br /&gt;Now if you want to understand how it works, best way is to look at &lt;a href="https://svn.wso2.org/repos/wso2/trunk/carbon/components/message-relay/org.wso2.carbon.relay/src/main/java/org/wso2/carbon/relay/"&gt;the code&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;When you look at the code, it is important to note following. Pass through works only if no one access the content of the message. However, there are many cases where user wants to cache (e.g.&amp;nbsp;logging or any other intermediate use), and we detect that and handles it. If you look at&amp;nbsp;&lt;a href="https://svn.wso2.org/repos/wso2/trunk/carbon/components/message-relay/org.wso2.carbon.relay/src/main/java/org/wso2/carbon/relay/BinaryRelayBuilder.java"&gt;BinaryRelayBuilder.java&lt;/a&gt;, you will see that we create a DataHandler, hides the input stream inside the DataHandler, and passes it in. To understand how we stream the data, you should look &lt;a href="https://svn.wso2.org/repos/wso2/trunk/carbon/components/message-relay/org.wso2.carbon.relay/src/main/java/org/wso2/carbon/relay/StreamingOnRequestDataSource.java"&gt;StreamingOnRequestDataSource.java&lt;/a&gt;. There, if that is the last use, we just take the input stream and stream it.&lt;br /&gt;&lt;br /&gt;If you just look at &lt;a href="https://svn.wso2.org/repos/wso2/trunk/carbon/components/message-relay/org.wso2.carbon.relay/src/main/java/org/wso2/carbon/relay/BinaryRelayBuilder.java"&gt;BinaryRelayBuilder.java&lt;/a&gt;, readAllFromInputSteam(..) method can be misleading, and the real code that does the streaming is at &lt;a href="https://svn.wso2.org/repos/wso2/trunk/carbon/components/message-relay/org.wso2.carbon.relay/src/main/java/org/wso2/carbon/relay/StreamingOnRequestDataSource.java"&gt;StreamingOnRequestDataSource.java&lt;/a&gt;. We do cache. But that is ONLY IF something tried &amp;nbsp;to access the SOAP body, and if&amp;nbsp;nothing reads the SOAP body, it is zero copy, as we pass over the input stream as it is&amp;nbsp;to next code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-3047374595574790758?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/3047374595574790758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=3047374595574790758' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/3047374595574790758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/3047374595574790758'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/09/zero-copy-pass-through-in-wso2-esb.html' title='Zero Copy pass through in WSO2 ESB'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-3311058351146525293</id><published>2010-09-12T23:41:00.000-07:00</published><updated>2010-09-12T23:44:14.707-07:00</updated><title type='text'>WSO2 Con Tomorrow</title><content type='html'>First &lt;a href="http://wso2.com/events/wso2con-2010-colombo/"&gt;WSO2 Con&lt;/a&gt; will be starting&amp;nbsp;tomorrow, and to make things better, this is also our 5th year&amp;nbsp;celebration. Refer to &lt;a href="http://sanjiva.weerawarana.org/2010/09/celebrating-5-years-of-wso2.html"&gt;Sanjiva's blog&lt;/a&gt; to find out more about the topic. There is lot to say, but I am going to put that off for later. Let me just say that in my opinion, what we have done so far is nothing compared to the potential of next five years to come.&lt;br /&gt;&lt;br /&gt;I will be doing a session on &lt;a href="http://draft.blogger.com/post-create.g?blogID=4188530704585089318#"&gt;Doing Enterprise Business with Processes and Rules&lt;/a&gt;, and the abstract of the talk is given below.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Business logic describes how a business functions and how it would react to the different conditions arise within the organizations and market. They are typically carefully developed and refined, and often holds the competitive advantage of an organization. Ability to keep track and change the business logic in response to changing conditions is an invaluable assert to any agile organizations. In this talk, Srinath Perera presents Business Processes and Business Rules, which are two alternative approaches to represent and manage business logic instead of embedding them within programming logic and discuss when each of these three modes should be used within the enterprise.&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-3311058351146525293?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/3311058351146525293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=3311058351146525293' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/3311058351146525293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/3311058351146525293'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/09/wso2-con-tomorrow.html' title='WSO2 Con Tomorrow'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-3717115386365531173</id><published>2010-07-23T21:01:00.000-07:00</published><updated>2010-07-23T21:02:50.264-07:00</updated><title type='text'>Multi-Tenant SOA Middleware for Cloud Computing</title><content type='html'>Following are the slides for my talk on WSO2 carbon multi-tenancy architecture at Cloud 2010, two weeks back. The paper describes the&amp;nbsp;&lt;a href="http://wso2.com/cloud/stratos/"&gt;WSO2 Statos&lt;/a&gt;&amp;nbsp;multi-tenancy&amp;nbsp;Architecture&amp;nbsp;.&lt;br /&gt;&lt;br /&gt;&lt;strong style="display: inline !important; margin-bottom: 4px; margin-left: 0px; margin-right: 0px; margin-top: 12px;"&gt;&lt;a href="http://www.slideshare.net/hemapani/carbon-multitenenacy-4751542" title="Multi-Tenant SOA Middleware for Cloud Computing"&gt;Multi-Tenant SOA Middleware for Cloud Computing&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div id="__ss_4751542" style="width: 425px;"&gt;&lt;object height="355" id="__sse4751542" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=carbon-multi-tenenacy-100714045831-phpapp02&amp;stripped_title=carbon-multitenenacy-4751542" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse4751542" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=carbon-multi-tenenacy-100714045831-phpapp02&amp;stripped_title=carbon-multitenenacy-4751542" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;br /&gt;The full paper can be found&amp;nbsp;&lt;a href="http://people.apache.org/~hemapani/research/papers/multitenancy-icws-2010.pdf"&gt;here&lt;/a&gt;. The citation of the paper is given below.&lt;br /&gt;&lt;i&gt;Afkham Azeez, Srinath Perera, Dimuthu Gamage, Ruwan Linton, &amp;nbsp;Prabath Siriwardana, Dimuthu Leelaratne, Sanjiva Weerawarana, Paul Fremantle, "Multi-Tenant SOA Middleware for Cloud Computing" 3rd International Conference on Cloud Computing, Florida, 2010.&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: 24px; font-weight: bold;"&gt;Abstract&lt;/span&gt;&lt;br /&gt;Enterprise IT infrastructure incurs many costs ranging from hardware costs and software &amp;nbsp;licenses/maintenance costs to the costs of monitoring, managing, and maintaining IT infrastructure. The recent advent of cloud computing offers some tangible prospects of reducing&amp;nbsp;some of those costs; however, abstractions provided by cloud computing are often inadequate to provide major cost savings across the IT infrastructure life-cycle.  Multi-tenancy, which allows a single application to emulate multiple application instances, has been proposed as a solution to this problem. By sharing one application across many tenants, multi-tenancy attempts to replace many small application instances with one or few large instances thus bringing&amp;nbsp;down the overall cost of IT infrastructure. In this paper, we present an architecture for achieving multi-tenancy at the SOA level, which enables users to run their services and other SOA artifacts in a multi-tenant SOA framework as well as provides an environment to build&amp;nbsp;multi-tenant applications. We discuss architecture, design decisions, and problems encountered, together with potential solutions when applicable. Primary contributions of this paper are motivating multitenancy, and the design and implementation of a multitenant SOA platform which allows users to run their current applications in a multi-tenant environment with minimal or no modifications.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-3717115386365531173?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/3717115386365531173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=3717115386365531173' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/3717115386365531173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/3717115386365531173'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/07/multi-tenant-soa-middleware-for-cloud.html' title='Multi-Tenant SOA Middleware for Cloud Computing'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-8317829767373808553</id><published>2010-07-13T03:40:00.000-07:00</published><updated>2010-07-13T04:15:49.494-07:00</updated><title type='text'>Towards Improved Data Dissemination of Publish-Subscribe Systems</title><content type='html'>Last week I presented the paper &lt;a href="http://people.apache.org/~hemapani/research/papers/broker-icws-2010.pdf"&gt; Towards Improved Data Dissemination of Publish-Subscribe Systems&lt;/a&gt;  at ICWS 2010. It is based on work  done with Rmaith and Dinesh on improving WS-Messenger from Indiana as a part of Open Grid Computing Environment Project.&lt;br /&gt;&lt;br /&gt;Abstract: with the proliferation of internet technologies, publish/subscribe systems have gained wide usage as a middleware. However for this model, catering large number of publishers and subscribers while retaining acceptable performance is still a challenge. Therefore, this paper presents two parallelization strategies to improve message delivery of such systems. Furthermore, we discuss other techniques which can be adopted to increase the performance of the middleware. Finally, we conclude with an empirical study, which establishes the comparative merit of those two parallelization strategies in contrast to serial implementations.&lt;br /&gt;&lt;br /&gt;Mainly it discusses how to implement parallel message delivery in a Pub/Sub broker while keeping the partial order of events. Slides are given below.&lt;br /&gt;&lt;br /&gt;&lt;object id="__sse4743861" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=broker2-100713053847-phpapp02&amp;amp;stripped_title=towards-improved-data-dissemination-of-publishsubscribe-systems"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed name="__sse4743861" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=broker2-100713053847-phpapp02&amp;amp;stripped_title=towards-improved-data-dissemination-of-publishsubscribe-systems" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="padding:5px 0 12px"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/hemapani"&gt;Srinath Perera&lt;/a&gt;.&lt;/div&gt;&lt;script src="http://b.scorecardresearch.com/beacon.js?c1=7&amp;amp;c2=7400849&amp;amp;c3=1&amp;amp;c4=&amp;amp;c5=&amp;amp;c6="&gt;&lt;/script&gt;&lt;script src="http://b.scorecardresearch.com/beacon.js?c1=7&amp;amp;c2=7400849&amp;amp;c3=1&amp;amp;c4=&amp;amp;c5=&amp;amp;c6="&gt;&lt;/script&gt;&lt;script src="http://b.scorecardresearch.com/beacon.js?c1=7&amp;amp;c2=7400849&amp;amp;c3=1&amp;amp;c4=&amp;amp;c5=&amp;amp;c6="&gt;&lt;/script&gt;&lt;script src="http://b.scorecardresearch.com/beacon.js?c1=7&amp;amp;c2=7400849&amp;amp;c3=1&amp;amp;c4=&amp;amp;c5=&amp;amp;c6="&gt;&lt;/script&gt;&lt;script src="http://b.scorecardresearch.com/beacon.js?c1=7&amp;amp;c2=7400849&amp;amp;c3=1&amp;amp;c4=&amp;amp;c5=&amp;amp;c6="&gt;&lt;/script&gt;&lt;script src="http://b.scorecardresearch.com/beacon.js?c1=7&amp;amp;c2=7400849&amp;amp;c3=1&amp;amp;c4=&amp;amp;c5=&amp;amp;c6="&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-8317829767373808553?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/8317829767373808553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=8317829767373808553' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8317829767373808553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8317829767373808553'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/07/towards-improved-data-dissemination-of.html' title='Towards Improved Data Dissemination of Publish-Subscribe Systems'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-8065468696378799652</id><published>2010-06-09T08:19:00.000-07:00</published><updated>2010-06-09T08:38:18.434-07:00</updated><title type='text'>Amazon and 11 nines</title><content type='html'>Amazon has &lt;a href="http://www.allthingsdistributed.com/2010/05/amazon_s3_reduced_redundancy_storage.html"&gt;claimed 11 nines on &lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;Availability&lt;/span&gt; &lt;/a&gt;. It is very very hard feast to accomplish, and if they have done it (I would love to know how they decided on that number), that is a ground breaking achievement. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To see why, lets see what it means. Availability is measured as MTTR (Mean time to Recovery)/ MTTF (Mean time to Failure) as a percentage. In other words, it is time to recover after a failure, divided by mean time for such a failure happen. Reliability is measured in terms of number of nines in availability. So Amazon S3 will be fail for a second only for every 10^9 seconds, or 10^9/(360*24*60*60) = 32 years!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;On their seminal paper "High Availability Computer Systems", Jim Gary and Daniel Siewiorek defined availability classes, as follows&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;unmanaged  90.% - 50,000 mins/year downtime&lt;/div&gt;&lt;div&gt;&lt;div&gt;managed 99.% - 5,000 mins/year downtime&lt;/div&gt;&lt;div&gt;well-managed 99.9% - 500 mins/year downtime &lt;/div&gt;&lt;div&gt;fault-tolerant 99.99% - 50 mins/year downtime&lt;/div&gt;&lt;div&gt;high-availability  99.999% - 5 mins/year downtime&lt;/div&gt;&lt;div&gt;very-high-availability 99.9999% - .5 mins/year downtime&lt;/div&gt;&lt;div&gt;ultra-availability 99.99999% - .05 mins/year downtime&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As you will notice even they defined only  7 nines. So we do not have a name to call what Amazon has claimed. &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial, sans-serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-8065468696378799652?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/8065468696378799652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=8065468696378799652' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8065468696378799652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8065468696378799652'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/06/amazon-and-11-nines.html' title='Amazon and 11 nines'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-8594821811065851110</id><published>2010-06-05T07:14:00.001-07:00</published><updated>2010-06-05T07:14:53.840-07:00</updated><title type='text'>Squirrel near our backdoor</title><content type='html'>&lt;a href="http://www.flickr.com/photos/hemapani/4671264665/" title="photo sharing"&gt;&lt;img src="http://farm2.static.flickr.com/1284/4671264665_c69ecd6e0e_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;&lt;a href="http://www.flickr.com/photos/hemapani/4671264665/"&gt;Squirrel near our backdoor&lt;/a&gt; &lt;br /&gt;Originally uploaded by &lt;a href="http://www.flickr.com/people/hemapani/"&gt;Srinath Perera&lt;/a&gt;&lt;/span&gt;&lt;br clear="all" /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-8594821811065851110?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/8594821811065851110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=8594821811065851110' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8594821811065851110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8594821811065851110'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/06/squirrel-near-our-backdoor.html' title='Squirrel near our backdoor'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm2.static.flickr.com/1284/4671264665_c69ecd6e0e_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-4552919287279256197</id><published>2010-06-01T21:12:00.000-07:00</published><updated>2010-06-01T21:12:22.134-07:00</updated><title type='text'>WSO2 Stratos Services Released</title><content type='html'>&lt;div&gt;WSO2 Stratos, which offers WSO2 SOA platform as a service, is now live, up and running. Stratos opens up a new deployment choice for our servers, by enabling them have their servers as a Service. For example, if a user need a Governance Registry, he had to either run it real hardware, run it through a Virtual Machine, or run  it through Cloud. Now, there is a forth option: that is get it as a service through WSO2 Stratos. Of course there is much more to Stratos, see &lt;a href="http://wso2.com/cloud/stratos/"&gt;http://wso2.com/cloud/stratos/&lt;/a&gt; and &lt;a href="http://samisa-abeysinghe.blogspot.com/2010/06/six-weeks-and-12-people-magic.html"&gt;The Six Weeks and 12 People Magic&lt;/a&gt; for some more details. &lt;/div&gt;&lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You can find it from &lt;a href="https://cloud.wso2.com/"&gt;https://cloud.wso2.com/&lt;/a&gt;., and you can try it for free. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-4552919287279256197?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://samisa-abeysinghe.blogspot.com/2010/06/six-weeks-and-12-people-magic.html' title='WSO2 Stratos Services Released'/><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/4552919287279256197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=4552919287279256197' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/4552919287279256197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/4552919287279256197'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/06/wso2-stratos-services-released.html' title='WSO2 Stratos Services Released'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-5550427421675990064</id><published>2010-05-29T02:38:00.000-07:00</published><updated>2010-05-29T03:03:02.937-07:00</updated><title type='text'>E-Science: What and Why?</title><content type='html'>&lt;p style="margin-bottom: 0in"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p align="JUSTIFY" style="font-style: normal; font-weight: normal"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Georgia, serif;"&gt;&lt;span style="font-size:100%;"&gt;E-Science facilitates scientific research by applications of Computer Science. Although it has  roots in High Performance Computing and Super Computing, which focus on number crunching,  it has evolved to a general role in last few years. Since last few years, E-Science has appeared in the spotlight and has attracted significant amount of funds and able to attract researchers likes of Jim Gray.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="JUSTIFY" style="margin-bottom: 0in; font-style: normal; font-weight: normal; widows: 2; orphans: 2"&gt; &lt;span style="color:#000000;"&gt;&lt;span style="font-family:Georgia, serif;"&gt;&lt;span style="font-size:100%;"&gt;Years ago the role of computing in Research was number crunching and help scientists to keep track of their data. However, now computing has become an indistinguishable part of scientific research, and almost all research disciplines have major dependencies on Computer Science. Let us briefly look at some of those areas and reasons why computers play such an integral role in sciences.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="JUSTIFY" style="margin-bottom: 0in; font-style: normal; font-weight: normal; widows: 2; orphans: 2"&gt; &lt;span style="color:#000000;"&gt;&lt;span style="font-family:Georgia, serif;"&gt;&lt;span style="font-size:100%;"&gt;Science said to be stand on two pillars: empirical methods and analytical methods. In the first, scientists uses data collected over sufficient period of time to find new trends and patterns of the nature. In the second, based on formal models of world and current knowledge, they try to derive new results through formal logic. More often than not, these two methods have been used in tandem, one helping the other. However, with the advent of computers, a third pillar--computations-- has arrived. Since many results derived from empirical and analytical results do not have closed from answers, scientists often solve such problems through simulations. For example, PDEs (partial Deferential Equations), which often resulting from many real life calculations, often do not have a closed from answers. Therefore, they had to be solved through numerical analysis. For example, the state of art weather models predict weather by simulating a model rather than solving them. There are such examples in all filed of engineering and physical sciences. This aspect covers most hpc use cases of E-Science. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p align="JUSTIFY" style="margin-bottom: 0in; font-style: normal; font-weight: normal; widows: 2; orphans: 2"&gt; &lt;span style="color:#000000;"&gt;&lt;span style="font-family:Georgia, serif;"&gt;&lt;span style="font-size:100%;"&gt;On the other hand, most of scientific calculations are easily beyond single computers. For an example, high resolution weather predations can easily use 1000 CPUs, and space telescopes can easily generate tera bytes of data in relatively short time. Handling such problems require multiple computers and distributed system knowledge. Also, building efficient solutions and exploiting the parallel nature need high performance computing (HPC) and Parallel computing.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="JUSTIFY" style="margin-bottom: 0in; font-style: normal; font-weight: normal; widows: 2; orphans: 2"&gt; &lt;span style="color:#000000;"&gt;&lt;span style="font-family:Georgia, serif;"&gt;&lt;span style="font-size:100%;"&gt;Furthermore, the reliance of computer science has forced scientists and graduate students from Sciences to learn computer science. Although some of those scientists have made significant contributions to computer science, often that is road block for many scientists to adopt IT in the fullest extent in their research. Consequently, making computing transparent, or in other words, building tools that allow scientists to perform sciences with minimal Computer knowledge, is another interesting challenge being tackled by e-science.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="JUSTIFY" style="margin-bottom: 0in; font-style: normal; font-weight: normal; widows: 2; orphans: 2"&gt; &lt;span style="color:#000000;"&gt;&lt;span style="font-family:Georgia, serif;"&gt;&lt;span style="font-size:100%;"&gt;Moreover, efficient scientific research requires a high level of communications and collaboration among scientists. Although IT plays a significant role in that arena even now, there is a greater potential role which it can play. For example, IT has greatly simplified dissemination of scientific research, and has significantly reduce the time and effort required to conduct a literature survey. However, we still lack infrastructure to collaborate in ongoing basis, which allow scientists to collaboratively perform large experiments. More an more grand challenges require collaboration across multiple disciplines, and that increases the importance of such collaborations and consequently the importance of tools to enable such collaborations.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="JUSTIFY" style="margin-bottom: 0in; font-style: normal; font-weight: normal; widows: 2; orphans: 2"&gt; &lt;span style="color:#000000;"&gt;&lt;span style="font-family:Georgia, serif;"&gt;&lt;span style="font-size:100%;"&gt;Finally, given the reduced cost of sensors and ubiquity of information technology, there are vast amount of data available to a researcher from the natural world. However, one of the challenges of our time is to learn how to make sense of that data, which is more or less the goal of science itself. In the world we live in, it is much easier to obtain data, but it is much harder to make sense of that data. Therefore, computer science can play a major role in enabling and streamlining the process of getting from data to knowledge, which include collecting raw data, generating meta data, archiving, searching, visualizing, generate information by processing, deriving knowledge from information, and preserving data for the future.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="JUSTIFY" style="margin-bottom: 0in; font-style: normal; font-weight: normal; widows: 2; orphans: 2"&gt; &lt;span style="color:#000000;"&gt;&lt;span style="font-family:Georgia, serif;"&gt;&lt;span style="font-size:100%;"&gt;Current E-science includes traditional computational topics like Building Super computing, High Performance computing, Parallel programming, multi core and GPU programming, as well as more general topics like data intensive computing, processing systems like workflow systems, and large scale data storage systems. In general, E-Science tries to facilitate scientific discovery through applications of computer science, and it tries to do that in transparent manner as possible hiding details about CS as much as possible from the end users.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="JUSTIFY" style="margin-bottom: 0in; font-style: normal; font-weight: normal; widows: 2; orphans: 2"&gt; &lt;span style="color:#000000;"&gt;&lt;span style="font-family:Georgia, serif;"&gt;&lt;span style="font-size:100%;"&gt;Given the significant interested by system researchers to in E-Science, it is interesting to inquire the reasons. The answer is two fold. On one hand, the amount funding available to pure computer science has greatly reduced, while the funding allocated for national wide cyberinfrastructures has greatly increased. On the other hand, E-Science brings in to focus very large scales, in terms of both computations and data. The resulting problems are challenging even to computer scientists, and the tools and systems we have are often inadequate handle such problems. Therefore, E-Science has continue to push boundaries of computer science.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="JUSTIFY" style="margin-bottom: 0in; font-style: normal; font-weight: normal; widows: 2; orphans: 2"&gt; &lt;span style="color:#000000;"&gt;&lt;span style="font-family:Georgia, serif;"&gt;&lt;span style="font-size:100%;"&gt;There are multiple E-Science initiates both at U.S., as well as UK and Europe, each receiving millions of dollars and attracting top scientists. Furthermore, Microsoft research has made significant investments and have a major presence in E-Science. Furthermore, IEEE E-Science Conference will be holding its 6&lt;sup&gt;th&lt;/sup&gt; annual conference this year. Among some of the venues are Annual IEEE E-Science Conference, Annual Super Computing Conference, Annual Teragrid conference, and Annual Microsoft E-Science workshop.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="JUSTIFY" style="margin-bottom: 0in; font-style: normal; font-weight: normal; widows: 2; orphans: 2"&gt; &lt;span style="color:#000000;"&gt;&lt;span style="font-family:Georgia, serif;"&gt;&lt;span style="font-size:100%;"&gt;To summarize, computing has the potential to facilitate conduct of scientific research enabling humans to take giant leaps, and the E-Science is a filed of study whose goal is to make that a reality. It has attracted scientists from both sciences and computer science, has receives millions of dollars in funding, and currently running many multi-disciplinary research projects to build next generation research infrastructure. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p align="JUSTIFY"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-5550427421675990064?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/5550427421675990064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=5550427421675990064' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5550427421675990064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5550427421675990064'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/05/e-science-what-and-why.html' title='E-Science: What and Why?'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-1443758941870003882</id><published>2010-05-28T19:14:00.000-07:00</published><updated>2010-05-28T19:39:51.336-07:00</updated><title type='text'>Paul on getting maximum out of Cloud:Cloud Native</title><content type='html'>&lt;div&gt;Paul has written &lt;a href="http://pzf.fremantle.org/2010/05/cloud-native.html"&gt;a nice blog&lt;/a&gt; on cloud nativity. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Well what is it? When a new technology come around, you can use it, but it is possible that you are only using it to handle your old usecase. Often, new technologies comes with new strengths and powerful features. To get best out of it, you should be using all its strengths, not just implementing your old scenario. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lets try to be concrete. With cloud, you can move your apps to the cloud, and you might get some benefits through economic's of scale as your computing provider might be able to give you computing power cheaper than you running your servers. But still there may be lot of other potential benefits of the cloud you are not getting, like elasticity etc. It is like, if I buy a iPhone and only use it to make calls, even though it is cools and it covers my old usecase---making calls---I am getting only 10% of what iPhone can give me.  So in the same way, if you are going to use the cloud, you have to look beyond your current usecase and be aware of wonderful new scenarios cloud can enable. On the flip side, if you go around telling "I brought a iPhone, but call quality is the same", obviously you are off the mark by a lot. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;On his blog Paul is trying to define some of features required by middleware if it is to exact the best out of cloud on your behalf.  They are &lt;i&gt;Distributed &lt;/i&gt;/&lt;i&gt; dynamically wired, &lt;/i&gt;&lt;i&gt;Elastic, &lt;/i&gt;&lt;i&gt;Multi-tenant, &lt;/i&gt;&lt;i&gt;Self-service, &lt;/i&gt;&lt;i&gt;Granularly metered and billed, and &lt;/i&gt;&lt;i&gt;Incrementally deployed and tested.  Refer to Paul's blog for more details. &lt;/i&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-1443758941870003882?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/1443758941870003882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=1443758941870003882' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/1443758941870003882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/1443758941870003882'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/05/paul-on-getting-maximum-out-of.html' title='Paul on getting maximum out of Cloud:Cloud Native'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-2125638067009653697</id><published>2010-05-28T07:04:00.001-07:00</published><updated>2010-05-28T07:14:04.509-07:00</updated><title type='text'>Shulter fro Rain</title><content type='html'>&lt;a href="http://www.flickr.com/photos/hemapani/4647039573/" title="photo sharing"&gt;&lt;img src="http://farm5.static.flickr.com/4049/4647039573_0db39ba25e_m.jpg" alt="" style="border: 2px solid rgb(0, 0, 0);" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="margin-top: 0px;font-size:0.9em;" &gt;&lt;a href="http://www.flickr.com/photos/hemapani/4647039573/"&gt;Shulter&lt;/a&gt;&lt;br /&gt;Originally uploaded by &lt;a href="http://www.flickr.com/people/hemapani/"&gt;Srinath Perera&lt;/a&gt;&lt;/span&gt; &lt;p&gt;This couple waits till they get dry. There are about 10 of these guys live very close proximity to our house. They almost come in to the house, specially just after rain.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-2125638067009653697?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/2125638067009653697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=2125638067009653697' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2125638067009653697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2125638067009653697'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/05/shulter-fro-rain.html' title='Shulter fro Rain'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4049/4647039573_0db39ba25e_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-5079024339416634390</id><published>2010-05-28T06:18:00.001-07:00</published><updated>2010-05-28T06:18:41.578-07:00</updated><title type='text'>Beauty of Nature</title><content type='html'>&lt;a href="http://www.flickr.com/photos/hemapani/4647566088/" title="photo sharing"&gt;&lt;img src="http://farm5.static.flickr.com/4049/4647566088_60d69d442b_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;&lt;a href="http://www.flickr.com/photos/hemapani/4647566088/"&gt;Beautiful Nature &lt;/a&gt; &lt;br /&gt;Originally uploaded by &lt;a href="http://www.flickr.com/people/hemapani/"&gt;Srinath Perera&lt;/a&gt;&lt;/span&gt;&lt;br clear="all" /&gt;&lt;p&gt;It is amazing how beautiful the world around us.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-5079024339416634390?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/5079024339416634390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=5079024339416634390' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5079024339416634390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5079024339416634390'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/05/beauty-of-nature.html' title='Beauty of Nature'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4049/4647566088_60d69d442b_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-6009723771586513204</id><published>2010-05-26T21:20:00.000-07:00</published><updated>2010-05-26T21:28:16.482-07:00</updated><title type='text'>Fixing Vista endless reboot</title><content type='html'>Recently my Vista OS got in to a endless reboot, most probably because it was restarted while installing a live update. When that happens, nothing works, including safe mode. Also figured out that if you have a Linux partition, Vista installations fail with a blue screen. &lt;br /&gt;&lt;br /&gt;So rule number 1, Make sure you stop installing live updates automatically. &lt;br /&gt;&lt;br /&gt;Above problem can be fixed by deleting the pending.xml file---which lists TODO when a machine bootup, which is at C:\Windows\winsxs\pending.xml.  Simply boot with Ubuntu live CD and delete it. &lt;a href="http://www.windowsreference.com/windows-vista/error-80073712-with-windows-updates-in-windows-vista/"&gt;This&lt;/a&gt; and &lt;a href="http://forums.techguy.org/windows-vista/792916-help-removing-pending-xml-files.html"&gt;this&lt;/a&gt; give more details.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-6009723771586513204?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/6009723771586513204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=6009723771586513204' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6009723771586513204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6009723771586513204'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/05/fixing-vista-endless-reboot.html' title='Fixing Vista endless reboot'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-5026062118689703151</id><published>2010-05-12T09:16:00.000-07:00</published><updated>2010-05-12T09:20:37.507-07:00</updated><title type='text'>Webinar: Making the hybrid cloud a reality</title><content type='html'>I am doing a Webinar on "Webinar: Making the hybrid cloud a reality" at 12th 10AM PST (in an hour or so) and 13th 9AM GMT. Check &lt;a href="http://wso2.org/library/webinars/2010/05/Making-the-hybrid-cloud-a-reality%20"&gt;here&lt;/a&gt; for more details. &lt;br /&gt;&lt;br /&gt;An outline is given below. &lt;br /&gt;&lt;br /&gt;The hybrid cloud option leverages the security of a private cloud solution and the elasticity/scalability of a public cloud. Architects designing hybrid cloud solutions need to reconcile between these competing goals. With WSO2’s Cloud Services Gateway organizations can now effectively mediate between their public and private clouds without compromising existing network firewall infrastructures.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-5026062118689703151?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/5026062118689703151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=5026062118689703151' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5026062118689703151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5026062118689703151'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/05/webinar-making-hybrid-cloud-reality.html' title='Webinar: Making the hybrid cloud a reality'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-1607036919369409419</id><published>2010-05-08T08:31:00.000-07:00</published><updated>2010-05-08T08:33:32.247-07:00</updated><title type='text'>SOAP is 10 years</title><content type='html'>Bit too late to blog, but Dr. Sanjiva has written a very nice &lt;a href="http://sanjiva.weerawarana.org/2010/04/10-years-of-soap.html"&gt;blog&lt;/a&gt; on the topic. A must read.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-1607036919369409419?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/1607036919369409419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=1607036919369409419' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/1607036919369409419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/1607036919369409419'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/05/soap-is-10-years.html' title='SOAP is 10 years'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-6183103430965328255</id><published>2010-03-26T22:11:00.000-07:00</published><updated>2010-03-26T22:15:53.755-07:00</updated><title type='text'>On Research and Writing Research Papers</title><content type='html'>Did a talk "On Research and Writing Research Papers" for the final year batch of Computer Science &amp; Engineering department of the University of Moratuwa. Slides are below. &lt;br /&gt;&lt;br /&gt;&lt;div style="width:425px" id="__ss_3564779"&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/hemapani/on-research-and-writing-research-papers" title="On Research and Writing Research Papers"&gt;On Research and Writing Research Papers&lt;/a&gt;&lt;/strong&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=onwritingandresearch-100326122215-phpapp02&amp;amp;stripped_title=on-research-and-writing-research-papers"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=onwritingandresearch-100326122215-phpapp02&amp;amp;stripped_title=on-research-and-writing-research-papers" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="padding:5px 0 12px"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/hemapani"&gt;Srinath Perera&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Abstract&lt;/span&gt;&lt;br /&gt;A firm grasp of scientific method and ability to write clearly and convincingly is a great assert to any professional in sciences. Conducting research and publishing peer reviewed papers train professionals in both  scientific method and writing. Moreover, having research papers in your resume is considered a huge plus in both industry and academia. However, conducting research and getting them published requires professionals to approach the problem and present their solutions form a unique angle. The talk will address research in general and writing research papers. Specifically, the talk will cover peer review process, what is a contribution?, and basic composition of a research paper, describing potential pitfalls.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-6183103430965328255?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/6183103430965328255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=6183103430965328255' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6183103430965328255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6183103430965328255'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/03/on-research-and-writing-research-papers.html' title='On Research and Writing Research Papers'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-4907575608674633465</id><published>2010-02-25T18:26:00.000-08:00</published><updated>2010-02-25T18:26:02.147-08:00</updated><title type='text'>ESP vs CEP</title><content type='html'>From Kau's Blog: &lt;a href="http://blog.kaushalye.org/2010/02/esp-vs-cep.html"&gt;ESP vs CEP&lt;/a&gt;: "A nice an introductory level preso that explains ESP and CEP with examples. Usually these terms are used wrongfully. &lt;a href="http://www.slideshare.net/TimBassCEP/mythbusters-event-stream-processing-v-complex-event-processing-presentation" title="Mythbusters: Event Stream Processing v. Complex Event Processing" style="font: normal normal normal 14px/normal Helvetica, Arial, sans-serif; display: inline !important; margin-top: 12px; margin-right: 0px; margin-bottom: 3px; margin-left: 0px; text-decoration: underline; "&gt;Mythbusters: Event Stream Processing v. Complex Event Processing&lt;/a&gt;&lt;div style="width:425px;text-align:left"&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-4907575608674633465?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.kaushalye.org/2010/02/esp-vs-cep.html' title='ESP vs CEP'/><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/4907575608674633465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=4907575608674633465' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/4907575608674633465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/4907575608674633465'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/02/esp-vs-cep.html' title='ESP vs CEP'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-6321367322593318888</id><published>2010-01-23T00:20:00.000-08:00</published><updated>2010-02-24T01:10:12.181-08:00</updated><title type='text'>"Why I Write"  by George Orwell</title><content type='html'>In this famous essay, &lt;a href="http://www.netcharles.com/orwell/essays/whyiwrite.htm"&gt;"Why I Write&lt;/a&gt;", George Orwell discusses reasons why people write, and I found the article rather interesting. He said that "All writers are vain, selfish, and lazy, and at the very bottom of their motives there lies a mystery", which is a phrase that is often quoted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-6321367322593318888?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/6321367322593318888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=6321367322593318888' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6321367322593318888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6321367322593318888'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/01/why-i-write-by-george-orwell.html' title='&quot;Why I Write&quot;  by George Orwell'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-6105817185676932370</id><published>2010-01-08T22:54:00.000-08:00</published><updated>2010-01-08T22:59:20.897-08:00</updated><title type='text'>Icons for your Architecture Diagrams</title><content type='html'>If you have been wondering about where to find Icons for your Architecture Diagrams/ Presentations, here are few options.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Try Open &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Clipart&lt;/span&gt;, but get 0.18 (new version, categories are not good and very hard to find something)&lt;/li&gt;&lt;li&gt;If you are in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Ubuntu&lt;/span&gt;, try /&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;usr&lt;/span&gt;/share/icons/gnome/scalable, there is lot of .&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;svg&lt;/span&gt; files there&lt;/li&gt;&lt;li&gt;Look for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;wikipedia&lt;/span&gt; entry, images in there are reusable (same for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;wikimedia&lt;/span&gt;) &lt;/li&gt;&lt;li&gt;Google with create commons settings&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-6105817185676932370?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/6105817185676932370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=6105817185676932370' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6105817185676932370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6105817185676932370'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/01/icons-for-your-architecture-diagrams.html' title='Icons for your Architecture Diagrams'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-6239224002689819216</id><published>2010-01-03T19:07:00.000-08:00</published><updated>2010-01-03T19:08:41.265-08:00</updated><title type='text'>Fourth Paradigm, an E-Sceince book by MSR</title><content type='html'>Microsoft Research has published this book "Fourth Paradigm", which describes how to handle very large data sets. If you are interested in E-Science use cases, this seems very good reading. It is partly based on Jim Gary's last work. The book is free and can be downloaded from &lt;a href="http://research.microsoft.com/en-us/collaboration/fourthparadigm/4th_paradigm_book_complete_lr.pdf"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-6239224002689819216?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/6239224002689819216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=6239224002689819216' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6239224002689819216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6239224002689819216'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2010/01/fourth-paradigm-e-sceince-book-by-msr.html' title='Fourth Paradigm, an E-Sceince book by MSR'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-2709991708222428142</id><published>2009-12-28T03:17:00.000-08:00</published><updated>2009-12-28T03:27:15.599-08:00</updated><title type='text'>Beautiful Sri Lanka</title><content type='html'>Couple of shots I was able to get on the way.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/hemapani/4221284965/" title="Parrots, often find as couples by Srinath Perera, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4061/4221284965_e8710f248b.jpg" width="500" height="334" alt="Parrots, often find as couples" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Parrots &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/hemapani/4222046522/" title="Kingfisher by Srinath Perera, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2522/4222046522_b7c7930e3f.jpg" width="332" height="500" alt="Kingfisher" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Kingfisher &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/hemapani/4221284613/" title="Peacock by Srinath Perera, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4055/4221284613_cd6fceec93.jpg" width="333" height="500" alt="Peacock" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Peacock, hope I will find one in its dance, one day.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/hemapani/4222064782/" title="Ruwanwali Saya by Srinath Perera, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2768/4222064782_34bec9e440.jpg" width="281" height="500" alt="Ruwanwali Saya" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ruwanwali Saya&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-2709991708222428142?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/2709991708222428142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=2709991708222428142' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2709991708222428142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2709991708222428142'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/12/beautiful-sri-lanka.html' title='Beautiful Sri Lanka'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4061/4221284965_e8710f248b_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-5046181461887381304</id><published>2009-12-27T22:58:00.000-08:00</published><updated>2009-12-28T03:23:06.888-08:00</updated><title type='text'>@ Jaffna</title><content type='html'>We were @ Jaffna last weekend, following are few shots. If you are planning to go a) it takes about 14-16hours drive b) it is good if you have a SUV/Pickup as some parts of the road is not in that good condition (around Vavuniya). c) You have to leave Elephant pass by 5pm on your way back. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/hemapani/4221619670/" title="Jaffna by Srinath Perera, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4012/4221619670_0ea8eec3ee.jpg" width="500" height="375" alt="Jaffna" /&gt;&lt;/a&gt;&lt;br /&gt;Nallur Kovil&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/hemapani/4221618334/" title="Wating on A9 by Srinath Perera, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2638/4221618334_4a7b5acac0.jpg" width="500" height="333" alt="Wating on A9" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Waiting on A9 for Clearance &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/hemapani/4220855253/" title="A9 Road by Srinath Perera, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4018/4220855253_b3e26ec251.jpg" width="500" height="334" alt="A9 Road" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A9, almost at the end of road. Not many roads in SL run for 300+kms (it is 200kmX400km almost). &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/hemapani/4220852811/" title="Elephant Pass by Srinath Perera, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2556/4220852811_ffb58d6c9d.jpg" width="500" height="375" alt="Elepahnt Pass" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Elephant Pass&lt;br&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/hemapani/4220851943/" title="Jaffna by Srinath Perera, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4028/4220851943_28f1bbf464.jpg" width="500" height="375" alt="Jaffna" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Tal Trees, Signature of Jaffna&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/hemapani/4220850647/" title="Iranamadu Tank by Srinath Perera, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2556/4220850647_33f0c45d95.jpg" width="500" height="375" alt="Iranamadu Tank" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Iranamadu Tank&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-5046181461887381304?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/5046181461887381304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=5046181461887381304' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5046181461887381304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5046181461887381304'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/12/jaffna.html' title='@ Jaffna'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4012/4221619670_0ea8eec3ee_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-8813611037100668465</id><published>2009-12-21T18:31:00.000-08:00</published><updated>2009-12-21T18:32:41.477-08:00</updated><title type='text'>Nice Sequence Diagram Tool</title><content type='html'>Found http://www.websequencediagrams.com/ very natural to use, handy tool when you want to describe a scenario.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-8813611037100668465?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/8813611037100668465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=8813611037100668465' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8813611037100668465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8813611037100668465'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/12/nice-sequence-diagram-tool.html' title='Nice Sequence Diagram Tool'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-5741983705821220502</id><published>2009-12-15T23:18:00.000-08:00</published><updated>2009-12-15T23:25:57.699-08:00</updated><title type='text'>Binary-Relay: An Efficient way to pass both XML and non-XML content through Apache Synapse</title><content type='html'>Finally got the article done on Binary Relay, which enables &lt;a href="http://synapse.apache.org/"&gt;Apache Synapse&lt;/a&gt;/&lt;a href="http://wso2.org/projects/esb/java"&gt;WSO2 ESB&lt;/a&gt; to pass through non-xml data (and xml data if they need to) at the byte level--a very useful tool when using Synapse/WSO2 ESB as a load balancer. It can be enabled by adding a message formatter and a builder to Axis2 via axis2.xml. Read &lt;a href="http://wso2.org/library/articles/binary-relay-efficient-way-pass-both-xml-non-xml-content-through-apache-synapse"&gt;the article&lt;/a&gt; for more details.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-5741983705821220502?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/5741983705821220502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=5741983705821220502' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5741983705821220502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5741983705821220502'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/12/binary-relay-efficient-way-to-pass-both.html' title='Binary-Relay: An Efficient way to pass both XML and non-XML content through Apache Synapse'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-2620900068865143355</id><published>2009-12-12T21:27:00.000-08:00</published><updated>2009-12-12T22:48:15.355-08:00</updated><title type='text'>A new Book on Geronimo</title><content type='html'>A new book on Geronimo, &lt;a href="http://www.packtpub.com/apache-geronimo-2-2-quick-reference?utm_source=srinathsview.blogspot.com&amp;utm_medium=link&amp;utm_content=blog&amp;utm_campaign=mdb_001818"&gt;Apache Geronimo 2.1: Quick Reference&lt;/a&gt;, has came out, and I received a complementary copy. More details soon. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IxM-ahUCpWQ/SyR7zTpOW5I/AAAAAAAABTM/ScPqy9mjahk/s1600-h/GERONIMO.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 259px; height: 320px;" src="http://2.bp.blogspot.com/_IxM-ahUCpWQ/SyR7zTpOW5I/AAAAAAAABTM/ScPqy9mjahk/s320/GERONIMO.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5414588773382904722" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-2620900068865143355?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/2620900068865143355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=2620900068865143355' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2620900068865143355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2620900068865143355'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/12/new-book-of-geronimo.html' title='A new Book on Geronimo'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_IxM-ahUCpWQ/SyR7zTpOW5I/AAAAAAAABTM/ScPqy9mjahk/s72-c/GERONIMO.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-5772245636479573845</id><published>2009-12-10T18:42:00.000-08:00</published><updated>2009-12-10T18:44:59.732-08:00</updated><title type='text'>LSF DCache wins an award at e-Swabhimani</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.sundaytimes.lk/091122/images/dcache_team.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 183px;" src="http://www.sundaytimes.lk/091122/images/dcache_team.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;More details in &lt;a href="http://www.sundaytimes.lk/091122/Education/13.html"&gt;Sunday times article&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-5772245636479573845?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/5772245636479573845/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=5772245636479573845' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5772245636479573845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5772245636479573845'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/12/lsf-dcache-wins-award-at-e-swabhimani.html' title='LSF DCache wins an award at e-Swabhimani'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-8533162269341283350</id><published>2009-12-04T22:05:00.000-08:00</published><updated>2009-12-04T22:13:37.026-08:00</updated><title type='text'>Prof. Elinor Ostrom : Indiana University's 8th Nobel Laureate</title><content type='html'>&lt;a href="http://newsinfo.iu.edu/pub/libs/images/usr/8197.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://newsinfo.iu.edu/pub/libs/images/usr/8197.jpg" border="0" alt="Elinor Ostrom" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Elinor Ostrom, the Arthur F. Bentley professor of political science and professor of public and environmental affairs at Indiana University has bagged the 8th Nobel prize for IU (For Economics). More details can be found in  &lt;a href="http://newsinfo.iu.edu/news/page/normal/12735.html"&gt;http://newsinfo.iu.edu/news/page/normal/12735.html&lt;/a&gt;. Congratulations!!.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-8533162269341283350?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/8533162269341283350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=8533162269341283350' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8533162269341283350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8533162269341283350'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/12/prof-elinor-ostrom-indiana-universitys.html' title='Prof. Elinor Ostrom : Indiana University&apos;s 8th Nobel Laureate'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-7057245914063702822</id><published>2009-12-04T07:41:00.000-08:00</published><updated>2009-12-04T07:43:39.306-08:00</updated><title type='text'>Apache Web Services in the Real World, an E-Science Perspective</title><content type='html'>Today I did a presentation at ApacheCon Asia, road show, and slides are given below. &lt;br /&gt;&lt;br /&gt;&lt;div style="width:425px;text-align:left" id="__ss_2649825"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/hemapani/apache-web-services-in-the-real-world-an-escience-perspective" title="Apache Web Services in the Real World, an E-Science Perspective"&gt;Apache Web Services in the Real World, an E-Science Perspective&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=apache-escience-091204093902-phpapp01&amp;stripped_title=apache-web-services-in-the-real-world-an-escience-perspective" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=apache-escience-091204093902-phpapp01&amp;stripped_title=apache-web-services-in-the-real-world-an-escience-perspective" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;documents&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/hemapani"&gt;Srinath Perera&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-7057245914063702822?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/7057245914063702822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=7057245914063702822' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/7057245914063702822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/7057245914063702822'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/12/apache-web-services-in-real-world-e.html' title='Apache Web Services in the Real World, an E-Science Perspective'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-8121972780431753624</id><published>2009-12-03T03:58:00.000-08:00</published><updated>2009-12-03T03:59:10.297-08:00</updated><title type='text'>Apache Asia 2009, Road Show</title><content type='html'>&lt;a href="http://apacheasia09.foss.lk"&gt;&lt;img src="http://apacheasia09.foss.lk/img/apacheasia09_banner.jpg" alt="apacheasia2009 3rd and 4th December @ HNB Towers" title="apacheasia2009 3rd and 4th December @ HNB Towers" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-8121972780431753624?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/8121972780431753624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=8121972780431753624' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8121972780431753624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8121972780431753624'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/12/apache-asia-2009-road-show.html' title='Apache Asia 2009, Road Show'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-5675826123508345657</id><published>2009-11-27T10:41:00.000-08:00</published><updated>2009-11-27T16:50:51.846-08:00</updated><title type='text'>Scalability, Consistency, Correctness, and Availability, Choose any Three</title><content type='html'>Above four properties are tightly locked with each other giving rise to interesting tradeoffs, and given a system, you may chose any 3, but achieving all four at once seems almost impossible. &lt;br /&gt;&lt;br /&gt;Having said that, Correctness---fact that a system behaves according to its specification---is a property any system have to have, and systems that do have only other three are not very interesting. But it is worth noting that consistency and correctness are two different things, and an inconsistent system may be correct, given that its specification does not make any claims on consistency. &lt;br /&gt;&lt;br /&gt;Tradeoff between scalability and consistency is well discussed under the topic of loose consistency. Amazon CTO, Werner Vogels has shed much light on the topic, and he argued that to create scalable systems, we have to let go of strong consistency guarantees like ACID (transactions).   His post &lt;a href="&lt;br /&gt;http://www.allthingsdistributed.com/2008/12/eventually_consistent.html"&gt;Eventually Consistent, revisted&lt;/a&gt; discusses this topic in detail. Those systems are Scalable, Correct, and Available, but only have loose consistency. Amazon's Dynomo is an example of such a system.&lt;br /&gt;&lt;br /&gt;We can build Correct, Consistent, and Available systems using group communication, but those systems do not scale. Typically, the limit is considered to be 8-10 nodes in a group in group communication. &lt;br /&gt;&lt;br /&gt;Finally, we can build a Scalable, Consistent, and Correct system by stopping all new requests whenever a change happen in a node untilthat change is disseminated in to all other nodes in the distributed system---even if there are thousands of nodes. Unfortunately, if updates are frequent, the system will reject messages most of the time, hence has poor availability.&lt;br /&gt;&lt;br /&gt;Incorrect systems are bad, but neither of last three are bad by itself, and each of those are useful on some usecases. Hence they are useful tools in architect's tool box.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-5675826123508345657?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/5675826123508345657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=5675826123508345657' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5675826123508345657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5675826123508345657'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/11/scalability-consistency-correctness-and.html' title='Scalability, Consistency, Correctness, and Availability, Choose any Three'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-319939592075869914</id><published>2009-11-27T10:06:00.000-08:00</published><updated>2009-11-27T10:09:21.039-08:00</updated><title type='text'>My Shutterbug @ Kandy</title><content type='html'>Following are couple of shots, which came out good---at least IMHO.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/hemapani/4121893541/" title="View from Lankathilaka Temple 2 by Srinath Perera, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2722/4121893541_344a543729.jpg" width="281" height="500" alt="View from Lankathilaka Temple 2" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/hemapani/4121893497/" title="Nelum (Lotus) by Srinath Perera, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2485/4121893497_e5ec4dfca8.jpg" width="500" height="281" alt="Nelum (Lotus)" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-319939592075869914?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/319939592075869914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=319939592075869914' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/319939592075869914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/319939592075869914'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/11/my-shutterbug-kandy.html' title='My Shutterbug @ Kandy'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2722/4121893541_344a543729_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-1060603025624604276</id><published>2009-11-27T09:54:00.000-08:00</published><updated>2009-11-27T10:04:01.166-08:00</updated><title type='text'>Fisherman Wharf Sea Lions</title><content type='html'>A major attraction in San Fransisco is Fisherman Wharf, specially Piper 39 and its Sea lions. Following are few shots of those noisy and smelly, but cute and lovable animals.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/hemapani/4122645248/" title="Sea Lions at Fisherman Warf, SF by Srinath Perera, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2582/4122645248_d85ed7a8e4.jpg" width="500" height="375" alt="Sea Lions at Fisherman Warf, SF" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/hemapani/4122645242/" title="Sea Lions at Fisherman Warf, SF by Srinath Perera, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2505/4122645242_0dc5b9dc46.jpg" width="500" height="375" alt="Sea Lions at Fisherman Warf, SF" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Actually, an interesting point is that those guys were never placed there by humans, rather one day, they decided to invade boat decks in Piper 39, and stayed there ever since (See http://www.cbsnews.com/stories/2009/11/24/eveningnews/main5764873.shtml). Crowd loved them, and soon they were a major attraction, which allows those snaky invaders to stay there unmolested&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-1060603025624604276?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/1060603025624604276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=1060603025624604276' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/1060603025624604276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/1060603025624604276'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/11/major-attraction-in-san-fransisco-is.html' title='Fisherman Wharf Sea Lions'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2582/4122645248_d85ed7a8e4_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-2639114125240413240</id><published>2009-11-24T20:47:00.000-08:00</published><updated>2009-11-24T20:49:20.036-08:00</updated><title type='text'>Prof. Geoffrey Fox named among "People to Watch" in HPCwire</title><content type='html'>IU digital scientist and professor Geoffrey Fox named among "People to Watch", see &lt;a href="http://newsinfo.iu.edu/news/page/normal/12608.html"&gt;IU news article&lt;/a&gt; for details.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-2639114125240413240?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/2639114125240413240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=2639114125240413240' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2639114125240413240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2639114125240413240'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/11/prof-geoffrey-fox-named-among-people-to.html' title='Prof. Geoffrey Fox named among &quot;People to Watch&quot; in HPCwire'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-1374483900225327895</id><published>2009-10-09T16:29:00.000-07:00</published><updated>2009-10-09T16:44:32.047-07:00</updated><title type='text'>Configuring Https in Axis2</title><content type='html'>If a client is connecting a https server, he has to trust the certificate of the server, and the developer has to provide the trusted certificates to the client. http://ws.apache.org/axis2/1_5/http-transport.html is the closest reference I found, which basically says look at httpclient configurations, and also thread http://www.opensubscriber.com/message/axis-dev@ws.apache.org/8077606.html discusses how to do this.&lt;br /&gt;&lt;br /&gt;Basically Axis2 depends on commons http client security and it uses JSSE security. So setting following properties will do. However, httpclient also provides more deeper control.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;System.setProperty("javax.net.ssl.trustStore",&lt;br /&gt;     "/data/playground/ebay-sept30/wso2esb-2.1.0/resources/security/client-truststore.jks");&lt;br /&gt;System.setProperty("javax.net.ssl.trustStorePassword","wso2carbon");&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-1374483900225327895?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/1374483900225327895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=1374483900225327895' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/1374483900225327895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/1374483900225327895'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/10/configuring-https-in-axis2.html' title='Configuring Https in Axis2'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-2221811500572042958</id><published>2009-09-21T00:51:00.000-07:00</published><updated>2009-09-21T00:53:13.692-07:00</updated><title type='text'>The 4 R's of Graduate School</title><content type='html'>&lt;a href="http://www.cs.cmu.edu/%7Emblum/research/pdf/grad.html"&gt;The 4 R's of Graduate School&lt;/a&gt; is a very nice reading.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-2221811500572042958?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/2221811500572042958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=2221811500572042958' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2221811500572042958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2221811500572042958'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/09/4-rs-of-graduate-school.html' title='The 4 R&apos;s of Graduate School'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-9220268774855881682</id><published>2009-09-16T21:22:00.000-07:00</published><updated>2009-09-16T21:27:38.827-07:00</updated><title type='text'>Simplify data extraction using Linux text utilities</title><content type='html'>&lt;a href="http://www.ibm.com/developerworks/linux/library/l-textutils.html"&gt;Simplify data extraction using Linux text utilities&lt;/a&gt; is a very nice article that teach how to do text magic with the Unix shell, and these commands become handy with pipe (|) operator.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-9220268774855881682?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/9220268774855881682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=9220268774855881682' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/9220268774855881682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/9220268774855881682'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/09/simplify-data-extraction-using-linux.html' title='Simplify data extraction using Linux text utilities'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-6075100406407833047</id><published>2009-09-01T09:02:00.000-07:00</published><updated>2009-09-01T09:03:22.312-07:00</updated><title type='text'>Interview with Sir Tony Hoare</title><content type='html'>&lt;a href="http://www.simple-talk.com/opinion/geek-of-the-week/sir-tony-hoare-geek-of-the-week/"&gt;http://www.simple-talk.com/opinion/geek-of-the-week/sir-tony-hoare-geek-of-the-week/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-6075100406407833047?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/6075100406407833047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=6075100406407833047' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6075100406407833047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6075100406407833047'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/09/interview-with-sir-tony-hoare.html' title='Interview with Sir Tony Hoare'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-2187504506335814600</id><published>2009-08-09T08:21:00.000-07:00</published><updated>2009-08-09T08:54:41.971-07:00</updated><title type='text'>An Video on HCI/ User Experience @ Google</title><content type='html'>An Video on HCI/ User Experience @ Google &lt;a href="http://video.google.com/videoplay?docid=-6459171443654125383&amp;amp;q=Google+engedu"&gt;The Science and Art of User Experience&lt;/a&gt;&lt;a href="http://video.google.com/videoplay?docid=-6459171443654125383&amp;amp;q=Google+engedu"&gt;&lt;br /&gt;at Google&lt;/a&gt;". If you have noticed that I am thinking lot about user experience, the reason is that I am beginning  to believe both in academia or or industry, impact on the end user is central to both understanding a problem and designing solutions.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#888888;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-2187504506335814600?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/2187504506335814600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=2187504506335814600' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2187504506335814600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2187504506335814600'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/08/video-on-hci-user-experience-google.html' title='An Video on HCI/ User Experience @ Google'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-7980048828928213328</id><published>2009-08-03T09:28:00.000-07:00</published><updated>2009-08-03T09:31:21.347-07:00</updated><title type='text'>Editing Fstab</title><content type='html'>If you have forget--like me--how to edit the fstab to mount windows partitions by default, &lt;a href="http://psychocats.net/ubuntu/mountlinux"&gt;http://psychocats.net/ubuntu/mountlinux&lt;/a&gt; describes how to do it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-7980048828928213328?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/7980048828928213328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=7980048828928213328' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/7980048828928213328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/7980048828928213328'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/08/editing-fstab.html' title='Editing Fstab'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-5289206155406338434</id><published>2009-08-02T18:27:00.000-07:00</published><updated>2009-08-02T18:56:53.665-07:00</updated><title type='text'>ICWS Talk 2: Application of Management Frameworks to Manage Workflow-Based Systems: A Case Study on a Large Scale E-science Project</title><content type='html'>This is the second talk, and it discusses integration of Hasthi with LEAD Project, a Large Scale E-Science cyber-infrastructure. &lt;br /&gt;&lt;br /&gt;Citation: Srinath Perera, Suresh Marru, Thilina Gunarathne, Dennis Gannon, Beth Plale, "&lt;a href="http://people.apache.org/~hemapani/research/papers/hasthi-lead-icws2009.pdf"&gt;Application of Management Frameworks to Manage Workflow-Based Systems: A Case Study on a Large Scale E-science Project&lt;/a&gt;," icws, pp.519-526, 2009 IEEE International Conference on Web Services, 2009&lt;br /&gt;&lt;br /&gt;DOI: &lt;a href="http://doi.ieeecomputersociety.org/10.1109/ICWS.2009.52"&gt;http://doi.ieeecomputersociety.org/10.1109/ICWS.2009.52&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Abstract: Management architectures are well discussed in the literature, but their application in real life settings has not been as well covered. Automatic management of a system involves many more complexities than closing the control-loop by reacting to sensor data and executing corrective actions. In this paper, we discuss those complexities and propose solutions to those problems on top of Hasthi management framework, where Hasthi is a robust, scalable, and distributed management framework that enables users to manage a system by enforcing management logic authored by users themselves. Furthermore, we present in detail a real life case study, which uses Hasthi to manage a large, SOA based, E-Science Cyberinfrastructure.&lt;br /&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;Slides:&lt;br /&gt;&lt;div style="width:425px;text-align:left" id="__ss_1801999"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/hemapani/hasthi-lead-integration-a-case-study-on-system-management" title="Hasthi Lead Integration: A Case Study on System Management"&gt;Hasthi Lead Integration: A Case Study on System Management&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=hasthilead-090802202308-phpapp01&amp;stripped_title=hasthi-lead-integration-a-case-study-on-system-management" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=hasthilead-090802202308-phpapp01&amp;stripped_title=hasthi-lead-integration-a-case-study-on-system-management" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/hemapani"&gt;Srinath Perera&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-5289206155406338434?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/5289206155406338434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=5289206155406338434' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5289206155406338434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5289206155406338434'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/08/icws-talk-application-of-management.html' title='ICWS Talk 2: Application of Management Frameworks to Manage Workflow-Based Systems: A Case Study on a Large Scale E-science Project'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-2695099252274291973</id><published>2009-08-02T07:01:00.000-07:00</published><updated>2009-08-02T18:56:22.704-07:00</updated><title type='text'>ICWS Talk 1: Enforcing User-defined Management Logic in Large Scale Systems</title><content type='html'>Early July I presented two papers at ICWS, here is the first one. This is the base of my thesis. &lt;br /&gt;&lt;br /&gt;Citation: Srinath Perera, Dennis Gannon, "&lt;a href="http://people.apache.org/~hemapani/research/papers/hasthi-shws2009.pdf"&gt;Enforcing User-Defined Management Logic in Large Scale Systems&lt;/a&gt;," services, pp.243-250, 2009 Congress on Services - I, 2009&lt;br /&gt;&lt;br /&gt;DOI: &lt;a href="http://doi.ieeecomputersociety.org/10.1109/ICWS.2009.52"&gt;http://doi.ieeecomputersociety.org/10.1109/ICWS.2009.52&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Abstract: The ubiquity of information technology, technological advances, and utility computing trends have motivated largescale systems, but managing and sustaining these systems is far from trivial. Automatic or semi-automatic monitoring and control are a potential solution to this problem. However, since management scenarios differ from system to system, a generic management framework that can manage a wide variety of systems should support user-defined management logic. This paper proposes a novel architecture that can manage large-scale systems according to user specified management logic that depends on both global and local assertions of the managed system. Furthermore, the paper demonstrates that despite having a global view of the managed system, a management framework can scale to manage most real world usecases.&lt;br /&gt;&lt;br /&gt;Slides: &lt;br /&gt;&lt;br /&gt;&lt;div style="width:425px;text-align:left" id="__ss_1801988"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/hemapani/hasthi-talk-at-icws-2009" title="Hasthi talk at ICWS 2009"&gt;Hasthi talk at ICWS 2009&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=hasthiicws-2009-090802201807-phpapp01&amp;stripped_title=hasthi-talk-at-icws-2009" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=hasthiicws-2009-090802201807-phpapp01&amp;stripped_title=hasthi-talk-at-icws-2009" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/hemapani"&gt;Srinath Perera&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-2695099252274291973?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/2695099252274291973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=2695099252274291973' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2695099252274291973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2695099252274291973'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/08/icws-talk-enforcing-user-defined.html' title='ICWS Talk 1: Enforcing User-defined Management Logic in Large Scale Systems'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-7220925937973816054</id><published>2009-08-02T05:49:00.000-07:00</published><updated>2009-08-02T18:51:46.427-07:00</updated><title type='text'>Dissertation: Enforcing User-Defined Management Logic in Large Scale Systems</title><content type='html'>As I promised before, following is the information related to my Dissertation and Defence (At Indiana University).&lt;br /&gt;&lt;br /&gt;Title: Enforcing User-Defined Management Logic in Large Scale Systems&lt;br /&gt;Year: 2009&lt;br /&gt;Primary Advisor: Prof. Dennis B. Gannon&lt;br /&gt;Thesis Committee: Prof. Dennis B. Gannon (Chair), Prof. Geoffrey C. Fox, ,  Prof. Beth A. Plale,  Prof. David B. Leake,  Dr. Sanjiva Weerawarana&lt;br /&gt;&lt;br /&gt;Thesis can be found through ProQuest &lt;a href="http://proquest.umi.com/pqdweb?did=1798481701&amp;sid=1&amp;Fmt=2&amp;clientId=12010&amp;RQT=309&amp;VName=PQD"&gt;here&lt;/a&gt; (I paid and enabled open access, and therefore, you do not need an account to download it). Also there are two papers.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Srinath Perera, Dennis Gannon, "&lt;a href="http://people.apache.org/%7Ehemapani/research/papers/hasthi-shws2009.pdf"&gt;Enforcing User-Defined Management Logic in Large Scale Systems&lt;/a&gt;," services, pp.243-250, 2009 Congress on Services - I, 2009&lt;/li&gt;&lt;li&gt;Srinath Perera, Suresh Marru, Thilina Gunarathne, Dennis Gannon, Beth Plale, "&lt;a href="http://people.apache.org/%7Ehemapani/research/papers/hasthi-lead-icws2009.pdf"&gt;Application of Management Frameworks to Manage Workflow-Based Systems: A Case Study on a Large Scale E-science Project&lt;/a&gt;," icws, pp.519-526, 2009 IEEE International Conference on Web Services, 2009&lt;/li&gt;&lt;/ol&gt;Slides used for the presentation can be found below.&lt;br /&gt;&lt;br /&gt;&lt;div style="width:425px;text-align:left" id="__ss_1801018"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/hemapani/dissertation-defence-enforcing-userdefined-management-logic-in-large-scale-systems" title="Dissertation Defence: Enforcing User-Defined Management Logic in Large Scale Systems"&gt;Dissertation Defence: Enforcing User-Defined Management Logic in Large Scale Systems&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=defense-090802123857-phpapp01&amp;rel=0&amp;stripped_title=dissertation-defence-enforcing-userdefined-management-logic-in-large-scale-systems" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=defense-090802123857-phpapp01&amp;rel=0&amp;stripped_title=dissertation-defence-enforcing-userdefined-management-logic-in-large-scale-systems" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/hemapani"&gt;Srinath Perera&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Abstract:&lt;br /&gt;Due to advances in distributed systems, social motivations, and economic motivations, scales of systems are on the rise. In large-scale systems, changes--caused by failures, maintenance, and additions--are a norm rather than an exception, and therefore, manually keeping these systems running is difficult, if not impossible. System management, which monitors and controls systems, is a prominent solution to this problem.&lt;br /&gt;However, management usecases differ from system to system, yet developing a specific management framework for each system defeats the purpose of building system management frameworks in the first place. Management frameworks that enforce management logic authored by users provide a solution for this problem. These frameworks enable users to change framework's decision logic to cater for user's specific requirements, and after deployed, they monitor and control target systems in accordance to the user-defined management logic. If these logic assert only a single component of the system, we call them local logic, and if these logic assert multiple components in the system, we call them global logic. The global logic depend on a global view about a system, which is non-trivial to support in large-scale systems. However, they enable users to reason about the target system explicitly and, therefore, provide a natural way to express management usecases.&lt;br /&gt;This dissertation presents a new, dynamic, and robust management architecture that manages large-scale systems by enforcing user-defined management logic that depend on a global view of the managed system. Using empirical analysis, we have shown that it scales to manage 100,000 resources, which demonstrates that the architecture can manage most practical systems. This is a testament that despite its dependency on a global view of the managed system, a system management framework can manage systems in accordance to user-defined management logic and can still scale to manage most real world systems. Furthermore, we have demonstrated that the architecture is robust in the face of failures and stable with respect to different operational conditions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-7220925937973816054?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/7220925937973816054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=7220925937973816054' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/7220925937973816054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/7220925937973816054'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/08/dissertation-enforcing-user-defined.html' title='Dissertation: Enforcing User-Defined Management Logic in Large Scale Systems'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-6875363479277714233</id><published>2009-07-27T20:21:00.000-07:00</published><updated>2009-07-27T20:30:06.642-07:00</updated><title type='text'>Keynote at CSE Conference</title><content type='html'>I did a keynote at the CSE conference last Friday. It was a high level talk trying to discuss possibilities (from a Sri Lankan context) in economic hard times. Slides are attached.&lt;br /&gt;&lt;br /&gt;&lt;div style="width: 425px; text-align: left;" id="__ss_1768004"&gt;&lt;a style="margin: 12px 0pt 3px; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; display: block; text-decoration: underline;" href="http://www.slideshare.net/hemapani/cse-conference-keynote" title="CSE Conference Keynote"&gt;CSE Conference Keynote&lt;/a&gt;&lt;object style="margin: 0px;" height="355" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=keynote-090725092812-phpapp02&amp;amp;rel=0&amp;amp;stripped_title=cse-conference-keynote"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=keynote-090725092812-phpapp02&amp;amp;rel=0&amp;amp;stripped_title=cse-conference-keynote" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;View more &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/hemapani"&gt;Srinath Perera&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-6875363479277714233?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/6875363479277714233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=6875363479277714233' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6875363479277714233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6875363479277714233'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/07/keynote-at-cse-conference.html' title='Keynote at CSE Conference'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-1732079310030932723</id><published>2009-07-20T19:13:00.000-07:00</published><updated>2009-07-20T19:20:54.718-07:00</updated><title type='text'>Computing Research that Changed the World</title><content type='html'>&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/fzTIGZjoXfI&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/fzTIGZjoXfI&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;The video and a &lt;a href="http://www.nytimes.com/2009/03/08/business/08count.html?_r=1"&gt;List of life Changers&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-1732079310030932723?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/1732079310030932723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=1732079310030932723' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/1732079310030932723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/1732079310030932723'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/07/computing-research-that-changed-world.html' title='Computing Research that Changed the World'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-1517816137826860917</id><published>2009-07-20T19:02:00.000-07:00</published><updated>2009-07-24T03:45:08.107-07:00</updated><title type='text'>WSO2 Enterprise Service Bus (ESB) 2.1.0 Released!</title><content type='html'>Details in W&lt;a href="http://www.theserverside.com/news/thread.tss?thread_id=55246"&gt;SO2 Enterprise Service Bus (ESB) 2.1.0 Released!&lt;/a&gt; and &lt;a href="http://bit.ly/28dcu9"&gt;Paul Fremantle talking about WSO2 ESB 2.1&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-1517816137826860917?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/1517816137826860917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=1517816137826860917' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/1517816137826860917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/1517816137826860917'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/07/so2-enterprise-service-bus-esb-210.html' title='WSO2 Enterprise Service Bus (ESB) 2.1.0 Released!'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-7476918128399692678</id><published>2009-06-28T19:12:00.000-07:00</published><updated>2009-06-28T19:20:00.593-07:00</updated><title type='text'>Optimizing MPIs for multi-cores : Thoughts by Eran</title><content type='html'>Nice blogs by Eran, &lt;a href="http://blog.chinthaka.org/2009/06/optimizing-mpis-for-multi-cores.html"&gt;Optimizing &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;MPIs&lt;/span&gt; for multi-cores : Thoughts&lt;/a&gt;, and also this presentation &lt;a href="http://www.infoq.com/presentations/joe-armstrong-erlang-qcon08"&gt;&lt;span style="font-size:100%;"&gt;Functions + Messages + Concurrency = &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Erlang&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; by &lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;a href="http://www.infoq.com/author/Joe-Armstrong" class="editorlink"&gt;Joe Armstrong&lt;/a&gt;&lt;/strong&gt; is pretty good if you need to understand some dynamics of multi-cores and concurrency. In my opinion, Some of his points are open to argument, yet he present a different perspective, obviously  helped by his experience with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Erlang&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-7476918128399692678?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/7476918128399692678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=7476918128399692678' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/7476918128399692678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/7476918128399692678'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/06/optimizing-mpis-for-multi-cores.html' title='Optimizing MPIs for multi-cores : Thoughts by Eran'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-1522893070160803214</id><published>2009-06-26T09:32:00.000-07:00</published><updated>2009-06-26T09:40:51.690-07:00</updated><title type='text'>Overhead of Servers on VM's</title><content type='html'>I was doing a performance tests, and initially trying to run them on virtualized hardware. We ran them first on EC2, then on a Xen based virtualized layer, and finally on real hardware. We observed that the virtualized version is much slower (15 TPS on virtualized vs. 290 TPS on real hardware, almost as 20 times slower!!). Still not sure wheather this applies to servers in general or is this a special case.  However, if this is a general result, for servers (which usually has high IO/ CPU overhead) virtualization is really looking bad.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-1522893070160803214?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/1522893070160803214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=1522893070160803214' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/1522893070160803214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/1522893070160803214'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/06/overhead-of-servers-on-vms.html' title='Overhead of Servers on VM&apos;s'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-8788865002111990855</id><published>2009-06-20T19:01:00.000-07:00</published><updated>2009-06-20T23:52:27.900-07:00</updated><title type='text'>Role of Trust: about "Sri Lanka cricket: an example of what we can do together"</title><content type='html'>I saw this post by Dr. Sanjiva,     &lt;script type="text/javascript"&gt; function g_f_changeUrlForLog(oLink, query, siteid, itemid, userid, valuea) {  //var url = '/track?a=' + valuea + '&amp;q=' + encodeURIComponent(query) + '&amp;site=' + siteid + '&amp;item=' + itemid + '&amp;user=' + userid + '&amp;u=' + encodeURIComponent('http://www.ask.com/web?q=' + encodeURIComponent(query)) + '&amp;l=dir&amp;o=100106&amp;gc=1';  var url = '/track?a=' + valuea + '&amp;q=' + encodeURIComponent(query) + '&amp;site=' + siteid + '&amp;item=' + itemid + '&amp;user=' + userid + '&amp;u=' + ('http://www.ask.com/web?q=' + encodeURIComponent(query)) + '&amp;l=dir&amp;o=100106&amp;gc=1';  oLink.href = url; }&lt;/script&gt;&lt;a name="article-13848422-124" id="article-13848422-124"&gt;&lt;/a&gt;&lt;a class="bl_itemtitle" title="Site: Sanjiva Weerawarana's Blog" href="http://sanjiva.weerawarana.org/2009/06/sri-lanka-cricket-example-of-what-we.html" target="_blank"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Sri&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Lanka&lt;/span&gt; cricket: an example of what we can do together&lt;/a&gt;, and I can not agree more. To add my two cents, in my opinion, a part of the problem is that we---&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Sri&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Lankans&lt;/span&gt;---have lost faith on each other. This faith, the belief that others would not exploit although one has lower his own guard is a great thing, and it always &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;yield&lt;/span&gt;s a team, which is greater than a sum of it's parts.&lt;br /&gt;One of the example of this trust the history can offer is &lt;a href="http://en.wikipedia.org/wiki/Phalanx_formation"&gt;Phalanx formation&lt;/a&gt; practised by Greeks (and later by Swiss) to great &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;effect&lt;/span&gt;. One of the key features of the formation is that each man is protected not by his own &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;shield&lt;/span&gt;, but by the one hold by the guys in the right, which gave each guy maximum freedom on the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;battlefield&lt;/span&gt;. Then, each man has literally placed his life in the hand of the guy to his right, and trust him to carry out the job. Result was a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;formidable&lt;/span&gt; formation---for instance, &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;Aleksandr&lt;/span&gt; the Great used this to its full effect---which was &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;legendry&lt;/span&gt; until after decades later &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;Roman's&lt;/span&gt; out &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_12"&gt;maneuver&lt;/span&gt; them in &lt;a href="http://en.wikipedia.org/wiki/Battle_of_Magnesia" title="Battle of Magnesia"&gt;Battle of Magnesia&lt;/a&gt; through the flank (topic of &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_13"&gt;interest&lt;/span&gt;, but not &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_14"&gt;relevant&lt;/span&gt; to our discussion).&lt;br /&gt;However, it is so easy to preach, and very hard to carry it out, &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_15"&gt;because&lt;/span&gt; the trust is mutual. In game theory, &lt;a href="http://en.wikipedia.org/wiki/Prisoner%27s_dilemma"&gt;Prisoner's dilemma&lt;/a&gt; shows how hard (&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_16"&gt;probabilistically&lt;/span&gt;) for two &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;untrusting&lt;/span&gt; guys to trust each other. For example, with the traffic in the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_18"&gt;Kandy&lt;/span&gt; road, it takes close to 2 hours to drive from Flower road to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;Gampaha&lt;/span&gt;---28km---which says we drive about 14km/hour.  I am sure if we all can drive with order, we can get to the destination much faster---I mean how can you drive slower than 15km/h? However, none of us (including me who soon learnt the hard way that no &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_20"&gt;quarter&lt;/span&gt; is given there) trust others to not to exploit it if we drive nicely.&lt;br /&gt;So my concluding remark is that trust is such a great thing. Each of us by ourselves can only do so much, and it takes teams to make difference. The trust---or should I say faith, which assures each guy to play his own role, is the key in a great team. But, trust is mutual where it is so hard to keep and easy to break. Every time someone exploit someone else, he contributes to this &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_21"&gt;inertia&lt;/span&gt; of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;untrust&lt;/span&gt; by making victim's heart bit more &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;untrustful&lt;/span&gt;, and the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_24"&gt;society&lt;/span&gt; (or the team) as a whole takes a step back. You do it over a long time, we get where we are.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-8788865002111990855?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/8788865002111990855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=8788865002111990855' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8788865002111990855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/8788865002111990855'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/06/sri-lanka-cricket-example-of-what-we.html' title='Role of Trust: about &quot;Sri Lanka cricket: an example of what we can do together&quot;'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-3179016219282756426</id><published>2009-06-18T00:55:00.000-07:00</published><updated>2009-06-18T00:57:58.468-07:00</updated><title type='text'>Time Zone conversion using date command</title><content type='html'>Just found out that we can convert between time zones using the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;Linux&lt;/span&gt; date command.&lt;br /&gt;&lt;br /&gt;e.g. date -d '16:00 EST' will convert from EST to current time zone.&lt;br /&gt;&lt;br /&gt;Wondering how many more things are hidden inside &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;Linux&lt;/span&gt;!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-3179016219282756426?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/3179016219282756426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=3179016219282756426' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/3179016219282756426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/3179016219282756426'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/06/time-zone-conversion-using-date-command.html' title='Time Zone conversion using date command'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-5224396862229078901</id><published>2009-06-17T09:40:00.001-07:00</published><updated>2009-06-17T09:40:16.084-07:00</updated><title type='text'>Drools and CEP</title><content type='html'>&lt;a href="http://www.infoq.com/news/2009/06/drools-5.0-release"&gt;Drools 5.0 now supports CEP and workflows&lt;/a&gt;. I did not get to checkout the workflow support yet, but CEP using rules is a topic I have been involved while at the extreme Lab @ IU. Although it is not apparent, CEP network (different compositions of event streams) and the Rete algorithm, which is the underline algorithm for Drools, both share much in the sense that both construct a tree to represent queries and match events by propagating them through the tree. We worked on creating a layer on top of Drools to handle CEP, but by supporting events from Drools deep down, Drools have enabled concurrent processing, whereas the layer we build on top of Drools have to be synchronized because Drools is not thread safe. It is going to be a versatile tool to build new applications/ usecases.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-5224396862229078901?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/5224396862229078901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=5224396862229078901' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5224396862229078901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/5224396862229078901'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/06/drools-and-cep.html' title='Drools and CEP'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-6490517238865295892</id><published>2009-06-09T10:09:00.000-07:00</published><updated>2009-06-09T10:13:51.134-07:00</updated><title type='text'>Sri Lanka, a Brids eye View</title><content type='html'>This is the clip Sri Lankan Arilines runs few minutes before touching down on SL, no need to say that I am so happy to see it. Thanks for Kaushalya for pointing it out. &lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Zme6w_Fv10c&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Zme6w_Fv10c&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-6490517238865295892?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/6490517238865295892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=6490517238865295892' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6490517238865295892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/6490517238865295892'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/06/sri-lanka-brids-eye-view.html' title='Sri Lanka, a Brids eye View'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-7355483335825911951</id><published>2009-06-06T23:01:00.000-07:00</published><updated>2009-06-06T23:06:30.824-07:00</updated><title type='text'>FreeMind Resize Problems</title><content type='html'>If you try to install Freemind using the most simplest way in Ubuntu 9.04 (Unzip, set java home, do a chmod 755 freemind.sh), it runs in to a problem in resizing the window. It can be fixed by setting the enviorment property export AWT_TOOLKIT=MToolkit, and more details can be found in &lt;a href="http://freemind.sourceforge.net/wiki/index.php/FreeMind_on_Linux"&gt;Freemind Linux Page&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-7355483335825911951?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/7355483335825911951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=7355483335825911951' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/7355483335825911951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/7355483335825911951'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/06/freemind-resize-problems.html' title='FreeMind Resize Problems'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-7139696207107974413</id><published>2009-05-24T17:59:00.000-07:00</published><updated>2009-05-24T18:06:02.960-07:00</updated><title type='text'>How Big is the Enterpise</title><content type='html'>&lt;a href="http://www.datacenterknowledge.com/archives/2009/05/14/whos-got-the-most-web-servers/"&gt;Who Has the Most Web Servers?&lt;/a&gt; provides some speculations on the number of web servers some well known companies do have. Does companies who out-compute indeed out compete? Fact that most companies does not release the number of  servers seems to suggest most of them believe that way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-7139696207107974413?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/7139696207107974413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=7139696207107974413' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/7139696207107974413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/7139696207107974413'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/05/how-big-is-enterpise.html' title='How Big is the Enterpise'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-7588041884358828880</id><published>2009-05-24T17:48:00.000-07:00</published><updated>2009-05-24T17:52:17.287-07:00</updated><title type='text'>Data over Fedex is real</title><content type='html'>According to &lt;a href="http://www.allthingsdistributed.com/2009/05/amazon_import_export.html"&gt;this Werner Vogels's Post&lt;/a&gt;, now Amazon lets you ship (literally via Fedex) your datasets to Amazon and have it uploaded to S3. Also the post points to few papers/ talks about data intensive computing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-7588041884358828880?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/7588041884358828880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=7588041884358828880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/7588041884358828880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/7588041884358828880'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/05/data-over-fedex-is-real.html' title='Data over Fedex is real'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188530704585089318.post-2819150209464761391</id><published>2009-05-19T17:46:00.000-07:00</published><updated>2009-05-19T23:34:12.592-07:00</updated><title type='text'>Hope for a New Age</title><content type='html'>Finally, the day---which most of us feared that would never arrive---has come to pass. Sri Lankan armed forces have finally brought whole Sri Lanka under one flag, a feat that took us three decades. Let us bow our heads in salutation to each member of the armed forces and to their families, whose sacrifices that made this victory possible. I hope in 10 years from now, all of us will remember their sacrifices,  and when we look back at that time, we will see that we made good use of this opportunity so that we could face them without shame.&lt;br /&gt;&lt;br /&gt;After years, I felt that on this occasion Sri Lankans have united under same idea and hope we can figure out a way to make use of this opportunity, may be the best we have had after 1815. We must remember nobody will solve our problems for us. Not UN, not the west! Otherwise, why after all those years, we have never heard of a 3rd world nation that stood up with help of their aid and direction and become a developed nation? Why we only hear exploitations and Wars created by others? No! We are alone on this fight, nor will others fight it for us, nor can others understand the situation enough to fight it for us. It is up to us to figure out a way, and stand on our feet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4188530704585089318-2819150209464761391?l=srinathsview.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinathsview.blogspot.com/feeds/2819150209464761391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4188530704585089318&amp;postID=2819150209464761391' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2819150209464761391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188530704585089318/posts/default/2819150209464761391'/><link rel='alternate' type='text/html' href='http://srinathsview.blogspot.com/2009/05/hope-for-new-age.html' title='Hope for a New Age'/><author><name>Srinath Perera</name><uri>https://profiles.google.com/114273272414305726598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Vpve-X0f9TA/AAAAAAAAAAI/AAAAAAAABdM/DY_WYXbDsqg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
