<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Arnon Rotem-Gal-Oz's Cirrus Minor</title>
    <link>http://www.rgoarchitects.com/nblog/</link>
    <description>"Making IT work" - Musings of a Holistict Architect</description>
    <language>en-us</language>
    <copyright>Arnon Rotem-Gal-Oz</copyright>
    <lastBuildDate>Thu, 11 Mar 2010 21:28:49 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>Arnon@RgoArchitects.com</managingEditor>
    <webMaster>Arnon@RgoArchitects.com</webMaster>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/CirrusMinor" /><feedburner:info uri="cirrusminor" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
      <trackback:ping>http://www.rgoarchitects.com/nblog/Trackback.aspx?guid=46a85b0f-7b45-4ffd-bed3-ef9aa86207c4</trackback:ping>
      <pingback:server>http://www.rgoarchitects.com/nblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.rgoarchitects.com/nblog/PermaLink,guid,46a85b0f-7b45-4ffd-bed3-ef9aa86207c4.aspx</pingback:target>
      <dc:creator>Arnon Rotem-Gal-Oz</dc:creator>
      <wfw:comment>http://www.rgoarchitects.com/nblog/CommentView,guid,46a85b0f-7b45-4ffd-bed3-ef9aa86207c4.aspx</wfw:comment>
      <wfw:commentRss>http://www.rgoarchitects.com/nblog/SyndicationService.asmx/GetEntryCommentsRss?guid=46a85b0f-7b45-4ffd-bed3-ef9aa86207c4</wfw:commentRss>
      <slash:comments>1</slash:comments>
      
      <title>Evolving Architectures &amp;ndash; Part II but Design is emergent</title>
      <guid isPermaLink="false">http://www.rgoarchitects.com/nblog/PermaLink,guid,46a85b0f-7b45-4ffd-bed3-ef9aa86207c4.aspx</guid>
      <link>http://feedproxy.google.com/~r/CirrusMinor/~3/-aqY4HA219Y/EvolvingArchitecturesNdashPartIIButDesignIsEmergent.aspx</link>
      <pubDate>Thu, 11 Mar 2010 21:28:49 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
This is part II of a series on agile architecture. You can read part I here.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
In the previous installment I provided a definition for software architecture and&#xD;
raised the apparent friction between the up front design implied by software architecture&#xD;
and the YAGNI approach and deferred requirements prompted by agile development in &#xD;
the large. This installment take a look at an additional angle of the problem which&#xD;
is the difference between design and architecture (while architecture is a type of&#xD;
design I cam calling design the code or close abstractions of it   that&#xD;
don’t yet fall under “architecture” as defined in the previous post). The difference&#xD;
between the two, as the title suggests, is that while design can be emergent, Architecture,&#xD;
unfortunately needs to evolve.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Unless you’ve been living under a rock, you’ve probably already know about Test Driven&#xD;
Development (TDD) or its cousin BDD. If you’ve actually used TDD, you’ve probably&#xD;
noticed the impact it has on the actual code. Writing code only to cater for defined&#xD;
tests coupled with refactoring that keeps the design tight we get to a result that,&#xD;
more often than not, simpler than going through the more traditional design first&#xD;
(you can take a look at Uncle Bob Bowling Kata for a simple, albeit synthetic , sample)&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
In fact, a more accurate expansion of the TDD acronym is Test Driven Design. Yes the&#xD;
tests are there to make sure the code adheres to the specified requirements. However,&#xD;
the iterative process (test,code &amp;amp; esp. refactor) makes the design emerge . The&#xD;
emergent design effect, works very well with the goals and tenets of Agile and Lean&#xD;
methodologies as it helps eliminate wasteful future-proofing  code that we don’t&#xD;
need; eliminate waste of extra component (due to pre-design) etc. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
This sounds great, so it is very tempting to take that  to the architecture level,&#xD;
after all Architecture is a type of design, wouldn’t it be efficient to do TDA (Test&#xD;
Driven Architecture) as well. I think that in theory it might be possible. However&#xD;
as the old adage goes “Theory and practice are the same – at least in theory”. So&#xD;
in practice, the problem is that architecture is global and have solution-wide consequences.&#xD;
Time and size (of work) constraints make us want to set the playfield for the solution&#xD;
as soon as possible. Architecture decisions are hard to postpone on the one hand and&#xD;
have extensive influence on the other. E.g. a buy vs. build decision; 3-tier vs. SOA;&#xD;
RDBMS vs a NoSQL solution etc. if we try to have the architecture grew the way “regular”&#xD;
design can the ripple effects will be devastating to the development process.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
What we have to do instead is evolve the architecture. Start with something that is&#xD;
in the ball park and then when we know more about the problem make changes, evolve&#xD;
the architecture over time. This is beneficial since requirements also tend to change&#xD;
over time so if we find a way to evolve the architecture we can deal with that as&#xD;
well.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
In the next part I’ll try to give a couple of examples on how this can actually be&#xD;
done i.e. how you can evolve an architecture &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
*A better name is Test Driven Design but that’s not how it stated, as far as I know&#xD;
anyway&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://www.rgoarchitects.com/nblog/aggbug.ashx?id=46a85b0f-7b45-4ffd-bed3-ef9aa86207c4"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=-aqY4HA219Y:DQgnm5JWHQY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=-aqY4HA219Y:DQgnm5JWHQY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=-aqY4HA219Y:DQgnm5JWHQY:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=-aqY4HA219Y:DQgnm5JWHQY:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=-aqY4HA219Y:DQgnm5JWHQY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=-aqY4HA219Y:DQgnm5JWHQY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=-aqY4HA219Y:DQgnm5JWHQY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=-aqY4HA219Y:DQgnm5JWHQY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=-aqY4HA219Y:DQgnm5JWHQY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=-aqY4HA219Y:DQgnm5JWHQY:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CirrusMinor/~4/-aqY4HA219Y" height="1" width="1"/&gt;</description>
      <comments>http://www.rgoarchitects.com/nblog/CommentView,guid,46a85b0f-7b45-4ffd-bed3-ef9aa86207c4.aspx</comments>
      <category>Software Architecture</category>
      <category>TDD</category>
    <feedburner:origLink>http://www.rgoarchitects.com/nblog/2010/03/11/EvolvingArchitecturesNdashPartIIButDesignIsEmergent.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.rgoarchitects.com/nblog/Trackback.aspx?guid=f25e7201-e534-40c3-87b2-9595d2b3dc60</trackback:ping>
      <pingback:server>http://www.rgoarchitects.com/nblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.rgoarchitects.com/nblog/PermaLink,guid,f25e7201-e534-40c3-87b2-9595d2b3dc60.aspx</pingback:target>
      <dc:creator>Arnon Rotem-Gal-Oz</dc:creator>
      <wfw:comment>http://www.rgoarchitects.com/nblog/CommentView,guid,f25e7201-e534-40c3-87b2-9595d2b3dc60.aspx</wfw:comment>
      <wfw:commentRss>http://www.rgoarchitects.com/nblog/SyndicationService.asmx/GetEntryCommentsRss?guid=f25e7201-e534-40c3-87b2-9595d2b3dc60</wfw:commentRss>
      
      <title>xsights is hiring</title>
      <guid isPermaLink="false">http://www.rgoarchitects.com/nblog/PermaLink,guid,f25e7201-e534-40c3-87b2-9595d2b3dc60.aspx</guid>
      <link>http://feedproxy.google.com/~r/CirrusMinor/~3/50HBgpBveYs/xsightsIsHiring.aspx</link>
      <pubDate>Thu, 14 Jan 2010 05:13:25 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;meta charset="utf-8" id="webkit-interchange-charset"&gt;&lt;/meta&gt;&#xD;
        &lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Times; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;&#xD;
          &lt;span class="Apple-style-span" style="color: rgb(68, 68, 68); font-family: sans-serif; font-size: 12px; text-align: left;"&gt;&#xD;
            &lt;div id="8236568565490827240_inlined" class="inlinedHolder" _controllerid="rot44" style="background-color: rgb(255, 255, 255);"&gt;&#xD;
              &lt;div id="mainArea"&gt;&#xD;
                &lt;div id="8236568565490827240_entryHolder" class="entryHolder" style="padding: 17px; overflow: hidden;"&gt;&#xD;
                  &lt;table id="8236568565490827240_main" class="u100Entry selectedEntry" data-selectentryid="8236568565490827240" style="border-width: 0px; margin: 0px; padding-top: 0px; width: 640px;" border="0" cellpadding="0" cellspacing="0"&gt;&#xD;
                    &lt;tbody&gt;&#xD;
                      &lt;tr&gt;&#xD;
                        &lt;td&gt;&#xD;
                          &lt;div class="entryBody" id="8236568565490827240_entryBody" cdf_m_top="1" style="color: rgb(68, 68, 68); font-size: 14px; line-height: 1.4; margin-top: 20px; position: relative;"&gt;&#xD;
                            &lt;div class="content" id="8236568565490827240_entryContent" cdf_container="3" style="color: rgb(68, 68, 68); font-size: 14px; line-height: 1.4; margin-top: 0px; margin-bottom: 0px;"&gt;&#xD;
                              &lt;p&gt;&#xD;
I am happy to say that we (&lt;a href="http://www.xsights.com"&gt;xsights&lt;/a&gt;) are looking&#xD;
to add a few more developers to our team. If you are interested ping me or send your&#xD;
CV to&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;strong&gt;jobs at&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;span title="tag" class="microformat taggedMicroformat" data-mf-text="xsights" data-mf-type="tag" style="border-style: solid solid dotted; border-color: rgb(255, 255, 255) rgb(255, 255, 255) rgb(207, 207, 207); border-width: 1px; cursor: pointer; padding-top: 2px; padding-right: 17px; background-image: url(http://s3.feedly.com/production/2.x.178/images/mf-explore.png); background-color: rgb(255, 255, 255); background-position: 100% 50%;"&gt;xsights&lt;/span&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;dot&#xD;
com.&lt;/strong&gt;&lt;/p&gt;&#xD;
                              &lt;p&gt;&#xD;
                                &lt;strong&gt;Please note that all the openings are  in Israel (in the Natanya vicinity)&lt;br&gt;&lt;/strong&gt;&#xD;
                              &lt;/p&gt;&#xD;
                              &lt;h3 style="margin: 0px; font-size: 16px; font-weight: bold; line-height: 1.4; text-transform: capitalize; padding-left: 0px; color: rgb(51, 51, 51);"&gt;Server&#xD;
Side Developer&#xD;
&lt;/h3&gt;&#xD;
                              &lt;h5 style="font-size: 15px; line-height: 1.4; margin-top: 0px; margin-bottom: 0px;"&gt;Position&#xD;
Description and Responsibilities:&#xD;
&lt;/h5&gt;&#xD;
                              &lt;p&gt;&#xD;
We are looking for a motivated developer, a team player, who can improve and add features&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br&gt;&#xD;
to our product, focusing on a distributed environment with technology challenges.&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br&gt;&#xD;
Improve performance of existing components by clustering, messaging, caching etc.&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br&gt;&#xD;
Integrate with external services.&#xD;
&lt;/p&gt;&#xD;
                              &lt;h5 style="font-size: 15px; line-height: 1.4; margin-top: 0px; margin-bottom: 0px;"&gt;Requirements:&#xD;
&lt;/h5&gt;&#xD;
                              &lt;ul&gt;&#xD;
                                &lt;li&gt;&#xD;
At least 2 years experience in C#/Scala, understanding OOP principles - must&lt;/li&gt;&#xD;
                                &lt;li&gt;&#xD;
Experience in concurrent programming - must&lt;/li&gt;&#xD;
                                &lt;li&gt;&#xD;
Experience with communication protocols (TCP, UDP, WCF) - an advantage&lt;/li&gt;&#xD;
                                &lt;li&gt;&#xD;
Experience in Unit Testing - an advantage&lt;/li&gt;&#xD;
                                &lt;li&gt;&#xD;
Knowledge in Distributed Services and Technologies, such as Hadoop, ActiveMQ - an&#xD;
advantage&lt;/li&gt;&#xD;
                              &lt;/ul&gt;&#xD;
                              &lt;h3 style="margin: 0px; font-size: 16px; font-weight: bold; line-height: 1.4; text-transform: capitalize; padding-left: 0px; color: rgb(51, 51, 51);"&gt;Web&#xD;
Developer&#xD;
&lt;/h3&gt;&#xD;
                              &lt;h5 style="font-size: 15px; line-height: 1.4; margin-top: 0px; margin-bottom: 0px;"&gt;Position&#xD;
Description:&#xD;
&lt;/h5&gt;&#xD;
                              &lt;p&gt;&#xD;
We are looking for a motivated web developer for our distributed system, to improve&#xD;
and add new features to the inner admin site and to the company’s public beta site.&#xD;
&lt;/p&gt;&#xD;
                              &lt;h5 style="font-size: 15px; line-height: 1.4; margin-top: 0px; margin-bottom: 0px;"&gt;Responsibilities:&#xD;
&lt;/h5&gt;&#xD;
                              &lt;p&gt;&#xD;
Web site development and deployment Server side programming in a distributed, challenging&#xD;
environment, in C#/Python/Ruby&#xD;
&lt;/p&gt;&#xD;
                              &lt;h5 style="font-size: 15px; line-height: 1.4; margin-top: 0px; margin-bottom: 0px;"&gt;Requirements:&#xD;
&lt;/h5&gt;&#xD;
                              &lt;p&gt;&#xD;
At least 1 year experience in C#/Python/Ruby - a must&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br&gt;&#xD;
At least 2 years in web development with full understanding of development and deployment&#xD;
process:&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br&gt;&lt;strong&gt;Client Side&lt;/strong&gt;: HTML, CSS, JS, upload using a Flash Uploader (such as&#xD;
SWFUpload), Ajax, jQuery.&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br&gt;&lt;strong&gt;Server Side:&lt;/strong&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;IIS&#xD;
and ASP.Net or other web server and technology Django/Rails/ASP.Net MVC - a big advantage&#xD;
FTP deployment - an advantage DNS settings - an advantage.&#xD;
&lt;/p&gt;&#xD;
                              &lt;h3 style="margin: 0px; font-size: 16px; font-weight: bold; line-height: 1.4; text-transform: capitalize; padding-left: 0px; color: rgb(51, 51, 51);"&gt;Junior&#xD;
Developer&#xD;
&lt;/h3&gt;&#xD;
                              &lt;h5 style="font-size: 15px; line-height: 1.4; margin-top: 0px; margin-bottom: 0px;"&gt;Position&#xD;
Description:&#xD;
&lt;/h5&gt;&#xD;
                              &lt;p&gt;&#xD;
We are looking for a motivated developer, a team player, who can program tools and&#xD;
tests in C#/Python, for acceptance/system tests of our distributed system. A creative&#xD;
and responsible person, with broad thinking.&#xD;
&lt;/p&gt;&#xD;
                              &lt;h5 style="font-size: 15px; line-height: 1.4; margin-top: 0px; margin-bottom: 0px;"&gt;Responsibilities:&#xD;
&lt;/h5&gt;&#xD;
                              &lt;p&gt;&#xD;
Create an automated testing environment&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br&gt;&#xD;
Find and pinpoint problems&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br&gt;&#xD;
Code solutions&#xD;
&lt;/p&gt;&#xD;
                              &lt;h5 style="font-size: 15px; line-height: 1.4; margin-top: 0px; margin-bottom: 0px;"&gt;Requirements:&#xD;
&lt;/h5&gt;&#xD;
                              &lt;p&gt;&#xD;
Experience in C#/Python - must&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br&gt;&#xD;
Experience with HTTP protocol - must&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br&gt;&#xD;
Experience in monitoring tools (WireShark, Fiddler) - an advantage&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br&gt;&#xD;
Experience in Unit Testing - an advantage&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br&gt;&#xD;
Knowledge in Distributed Services and Technologies, such as Hadoop, ActiveMQ - an&#xD;
advantage&#xD;
&lt;/p&gt;&#xD;
                            &lt;/div&gt;&#xD;
                          &lt;/div&gt;&#xD;
                        &lt;/td&gt;&#xD;
                      &lt;/tr&gt;&#xD;
                    &lt;/tbody&gt;&#xD;
                  &lt;/table&gt;&#xD;
                  &lt;div id="8236568565490827240_wallHolder" _controllerid="rot45"&gt;&#xD;
                    &lt;div id="8236568565490827240_liveHolder" class="commentsHolder" style="color: rgb(68, 68, 68); font-size: 13px; line-height: 17px; margin-top: 17px;"&gt;&#xD;
                    &lt;/div&gt;&#xD;
                    &lt;div id="8236568565490827240_friendfeedOverheardHolder" class="commentsHolder" style="color: rgb(68, 68, 68); font-size: 13px; line-height: 17px; margin-top: 17px;"&gt;&#xD;
                    &lt;/div&gt;&#xD;
                    &lt;div id="8236568565490827240_diggHolder" class="commentsHolder" style="color: rgb(68, 68, 68); font-size: 13px; line-height: 17px; margin-top: 17px;"&gt;&#xD;
                    &lt;/div&gt;&#xD;
                  &lt;/div&gt;&#xD;
                &lt;/div&gt;&#xD;
              &lt;/div&gt;&#xD;
            &lt;/div&gt;&#xD;
          &lt;/span&gt;&#xD;
        &lt;/span&gt;&#xD;
        &lt;br class="Apple-interchange-newline"&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://www.rgoarchitects.com/nblog/aggbug.ashx?id=f25e7201-e534-40c3-87b2-9595d2b3dc60"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=50HBgpBveYs:dATc1hSuSHo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=50HBgpBveYs:dATc1hSuSHo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=50HBgpBveYs:dATc1hSuSHo:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=50HBgpBveYs:dATc1hSuSHo:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=50HBgpBveYs:dATc1hSuSHo:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=50HBgpBveYs:dATc1hSuSHo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=50HBgpBveYs:dATc1hSuSHo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=50HBgpBveYs:dATc1hSuSHo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=50HBgpBveYs:dATc1hSuSHo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=50HBgpBveYs:dATc1hSuSHo:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CirrusMinor/~4/50HBgpBveYs" height="1" width="1"/&gt;</description>
      <comments>http://www.rgoarchitects.com/nblog/CommentView,guid,f25e7201-e534-40c3-87b2-9595d2b3dc60.aspx</comments>
      <category>xsights</category>
    <feedburner:origLink>http://www.rgoarchitects.com/nblog/2010/01/14/xsightsIsHiring.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.rgoarchitects.com/nblog/Trackback.aspx?guid=af2473cf-4418-4f5c-aff1-1178727dd1ba</trackback:ping>
      <pingback:server>http://www.rgoarchitects.com/nblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.rgoarchitects.com/nblog/PermaLink,guid,af2473cf-4418-4f5c-aff1-1178727dd1ba.aspx</pingback:target>
      <dc:creator>Arnon Rotem-Gal-Oz</dc:creator>
      <wfw:comment>http://www.rgoarchitects.com/nblog/CommentView,guid,af2473cf-4418-4f5c-aff1-1178727dd1ba.aspx</wfw:comment>
      <wfw:commentRss>http://www.rgoarchitects.com/nblog/SyndicationService.asmx/GetEntryCommentsRss?guid=af2473cf-4418-4f5c-aff1-1178727dd1ba</wfw:commentRss>
      
      <title>Evolving  Architectures &amp;ndash; Part I What&amp;rsquo;s Software Architecture</title>
      <guid isPermaLink="false">http://www.rgoarchitects.com/nblog/PermaLink,guid,af2473cf-4418-4f5c-aff1-1178727dd1ba.aspx</guid>
      <link>http://feedproxy.google.com/~r/CirrusMinor/~3/0VWE7ZKvSSU/EvolvingArchitecturesNdashPartIWhatrsquosSoftwareArchitecture.aspx</link>
      <pubDate>Wed, 13 Jan 2010 23:11:10 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
I’m writing a short series of posts for MS Israel MCS blog (in Hebrew) and I’d thought&#xD;
I’d translate them to English, as it seems to me they are interesting enough.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
In this series I am going to talk about Evolutionary Architecture or , some of the&#xD;
aspect of dealing with software architecture in agile projects. The topic is interesting&#xD;
since architecture and agile seems to have some conflicting forces at work to better&#xD;
understand that let’s start by defining software architecture&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
There are many definitions for software architecture, with the simplest one (attributed,&#xD;
I think, to Kent Beck) that software architecture is what software architects does.&#xD;
Leaving the fact that (unfortunately) sometimes software architects are very far from&#xD;
building software architectures, the definition doesn’t tell us much. There are &lt;a href="http://www.ddj.com/blog/architectblog/archives/2006/04/why_is_everybod.html?cid=GS_blog_arnon"&gt;many&#xD;
definitions around&lt;/a&gt; some are good and some are bad. My current definition is&#xD;
&lt;/p&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;p&gt;&#xD;
“Software architecture is the collection of decisions affecting the system’s quality&#xD;
attributes; which have global effects and are hardest to change. Software architecture&#xD;
provides the frame within which the design (code) is built.” &#xD;
&lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;p&gt;&#xD;
Let’s review the components of this definition&#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
“affecting the system’s quality attributes” – I’ve written a lot about quality attributes&#xD;
in the past. In a nut shell, quality attributes (often going by the name “non-functional&#xD;
reqs.”) includes aspects of the system like scalability, security, availability etc.&#xD;
Architectural decisions have a direct effect on the system’s ability to meet these&#xD;
types of goal; &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
“Global effects” – Design decisions effect the module or the class where they happen.&#xD;
Decisions with macro effect (e.g. choosing a technology, scaling approach) can completely&#xD;
alter a solution&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
“Hardest to change” – The most interesting part of the definition, at least in regard&#xD;
to evolutionary architecture.The definition mentions that the code is built within&#xD;
the frame and rules set by the architectural decisions. Change in these decisions&#xD;
can have significant consequences. As a (over simplified) example - You can’t take&#xD;
a standalone system developed in Access and move it to a service oriented, Hadoop&#xD;
based solution with out major changes in the code, data flows and what not.&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
The definition of Software Architecture above, seems to prescribe that for best results&#xD;
we need to do a lot of up front design to get the architecture right. If that’s true&#xD;
than we have a severe mismatch with agile and/or lean where handling requirement and&#xD;
design up-front is a big no-no (YAGNI- you ain’t gonna need it, comes to mind) – Is&#xD;
there any way to make them work together. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I think yes, and as you’ve probably guessed, the answer is evolving the architecture&#xD;
over time. While this may sound simple it isn’t – I’ll try to give a few strategies&#xD;
to make that work later in the series. Before that, the next part, we’ll examine why&#xD;
design can be emergent which architectures need to evolve&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://www.rgoarchitects.com/nblog/aggbug.ashx?id=af2473cf-4418-4f5c-aff1-1178727dd1ba"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=0VWE7ZKvSSU:WIMqIk_xH1M:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=0VWE7ZKvSSU:WIMqIk_xH1M:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=0VWE7ZKvSSU:WIMqIk_xH1M:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=0VWE7ZKvSSU:WIMqIk_xH1M:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=0VWE7ZKvSSU:WIMqIk_xH1M:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=0VWE7ZKvSSU:WIMqIk_xH1M:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=0VWE7ZKvSSU:WIMqIk_xH1M:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=0VWE7ZKvSSU:WIMqIk_xH1M:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=0VWE7ZKvSSU:WIMqIk_xH1M:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=0VWE7ZKvSSU:WIMqIk_xH1M:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CirrusMinor/~4/0VWE7ZKvSSU" height="1" width="1"/&gt;</description>
      <comments>http://www.rgoarchitects.com/nblog/CommentView,guid,af2473cf-4418-4f5c-aff1-1178727dd1ba.aspx</comments>
      <category>Agile</category>
      <category>Software Architecture</category>
    <feedburner:origLink>http://www.rgoarchitects.com/nblog/2010/01/13/EvolvingArchitecturesNdashPartIWhatrsquosSoftwareArchitecture.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.rgoarchitects.com/nblog/Trackback.aspx?guid=736deb95-f489-46d5-a119-72ee9441d46a</trackback:ping>
      <pingback:server>http://www.rgoarchitects.com/nblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.rgoarchitects.com/nblog/PermaLink,guid,736deb95-f489-46d5-a119-72ee9441d46a.aspx</pingback:target>
      <dc:creator>Arnon Rotem-Gal-Oz</dc:creator>
      <wfw:comment>http://www.rgoarchitects.com/nblog/CommentView,guid,736deb95-f489-46d5-a119-72ee9441d46a.aspx</wfw:comment>
      <wfw:commentRss>http://www.rgoarchitects.com/nblog/SyndicationService.asmx/GetEntryCommentsRss?guid=736deb95-f489-46d5-a119-72ee9441d46a</wfw:commentRss>
      
      <title>Keep the BIT &amp;ndash; check system liveliness</title>
      <guid isPermaLink="false">http://www.rgoarchitects.com/nblog/PermaLink,guid,736deb95-f489-46d5-a119-72ee9441d46a.aspx</guid>
      <link>http://feedproxy.google.com/~r/CirrusMinor/~3/WL7UUzyooEc/KeepTheBITNdashCheckSystemLiveliness.aspx</link>
      <pubDate>Mon, 21 Dec 2009 15:59:06 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Moving to architectures like SOA that increase the number of overall “moving parts”&#xD;
or components in the system means that reliability is going down. It is simple math&#xD;
really – if you have 10 components each with a 0.99 reliability then the total reliability&#xD;
is 0.99^10 or 0.904 and that’s before we take into account messages traveling over&#xD;
the wire and the network’s reliability (&lt;a href="http://blogs.sun.com/jag/resource/Fallacies.html"&gt;or&#xD;
lack thereof&lt;/a&gt;). What this does is leave us trying to build reliable systems from&#xD;
(a growing) bunch of unreliable components. I know, I know, there’s nothing new here.&#xD;
We’ve been using techniques like redundancy, statelessness etc. to help mitigate this&#xD;
since the beginning of times. With these techniques we decrease the “Mean Time Between&#xD;
Failure” (MTBF) but increase  the “Mean Time Between Critical Failure” (MTBCF)&#xD;
or the system’s overall MTBF. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Another aspect of reliability (and reliability calculations) is MTTR or “Mean Time&#xD;
To Repair” which in software mainly has to do with how much time does it take before&#xD;
we know something is wrong. The usual approach to that is monitoring which I’ve written&#xD;
about in the past (e.g. &lt;a href="http://www.rgoarchitects.com/nblog/2009/04/30/SOAPatternsNdashBlogjectingWatchdog.aspx"&gt;the&#xD;
blogjecting watchdog pattern&lt;/a&gt;). In this post I want to expand a little on another&#xD;
approach , which while not common in IT systems, can be useful at times.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Enter the BIT – which is short of “Built In Tests”. BIT is a technique I picked up&#xD;
when I worked on multi-disciplinary systems that also included embedded systems. Each&#xD;
and everyone of the embedded systems we developed (or integrated into the solution)&#xD;
supported BIT . Actually they usually supported several types of BIT at least PBIT,&#xD;
CBIT and IBIT&#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
PBIT – Power-On Built In Test – usually a short test the system runs to make sure&#xD;
all of its components are ready to go. You actually saw this one a lot of times since&#xD;
this is what motherboards do as you turn them on (all the blips and lights etc.) &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
CBIT – Continuous Built In Test – Make sure the system is functioning, even when it&#xD;
isn’t really busy so we’ll know about problems before we actually try to use the system &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
IBIT – Initiated Built In Test – provides a way to find out exactly what’s wrong when&#xD;
one of the other test types failed &#xD;
&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
BIT is very understandable for embedded systems, after all these are closed boxes&#xD;
with limited access to their innards and inner workings. but isn’t that also true&#xD;
for SOAs? After all we are building a bunch of blackboxes that interact to provide&#xD;
some business benefit, how can we be sure that everything is working fine esp. when&#xD;
we don’t control fully control some of the parts?&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
As mentioned above, a system, especially a distributed one, is built from relatively&#xD;
unreliable components. A continuous test helps us make sure things are working as&#xD;
expected. What we are doing is taking some of the code we wrote to run integration&#xD;
and acceptance tests (which runs a scenario end-to-end) deploy it as a service into&#xD;
the system which we call “liveliness check” and have it run periodically. Every time&#xD;
the liveliness  runs it sends a notification (twitter message) so we know the&#xD;
test itself works. If it fails it sends more notifications (twitter, Email, SMS etc.)&#xD;
to an administrator.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
This liveliness or CBIT serves as an early warning system. Since the end result is&#xD;
known in advance we can have a pretty good idea if something went wrong. E.g. we know&#xD;
how much time it should take for a test Id, we know what the result of that image&#xD;
is etc. The fact that it works even when the system is in low utilization means we&#xD;
can find out about problems and deal with them before they happen to end-users. That’s&#xD;
a big plus for us. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The advantage over regular monitoring solutions (this is not an either/or – monitoring&#xD;
is also needed) is that you know the specific business scenarios are properly working,&#xD;
which is a higher confidence that things are ok from knowing a specific server or&#xD;
service is running.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
On the flip side, or the downside of adding a periodic liveliness is adding complexity&#xD;
into the system. In our case, we have to add a process to clean the traffic data added&#xD;
by the test messages. Also, while we try to make the system behave as usual as much&#xD;
as possible,  certain parts of the system will have to know about the test messages&#xD;
and handle them differently. Again, in our case the reporting has to know to disregard&#xD;
test messages and not count them. This is even more problematic in other types of&#xD;
systems, for instance if you simulate an order, you don’t want the purchase order&#xD;
to actually go out to a supplier. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
To sum this up, adding a liveliness check as part of the system to create a continuous&#xD;
built-in-test can increase your confidence that things are working as they should.&#xD;
It can also help you identify problems earlier. Like everything in life, it doesn’t&#xD;
come without tradeoffs and you should weight your benefits vs. costs before utilizing&#xD;
it in your systems. &#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://www.rgoarchitects.com/nblog/aggbug.ashx?id=736deb95-f489-46d5-a119-72ee9441d46a"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=WL7UUzyooEc:cfYMjdMTnXs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=WL7UUzyooEc:cfYMjdMTnXs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=WL7UUzyooEc:cfYMjdMTnXs:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=WL7UUzyooEc:cfYMjdMTnXs:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=WL7UUzyooEc:cfYMjdMTnXs:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=WL7UUzyooEc:cfYMjdMTnXs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=WL7UUzyooEc:cfYMjdMTnXs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=WL7UUzyooEc:cfYMjdMTnXs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=WL7UUzyooEc:cfYMjdMTnXs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=WL7UUzyooEc:cfYMjdMTnXs:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CirrusMinor/~4/WL7UUzyooEc" height="1" width="1"/&gt;</description>
      <comments>http://www.rgoarchitects.com/nblog/CommentView,guid,736deb95-f489-46d5-a119-72ee9441d46a.aspx</comments>
      <category>SOA</category>
      <category>SOA Patterns</category>
      <category>Software Architecture</category>
    <feedburner:origLink>http://www.rgoarchitects.com/nblog/2009/12/21/KeepTheBITNdashCheckSystemLiveliness.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.rgoarchitects.com/nblog/Trackback.aspx?guid=dda8ff79-2fa6-4ee8-a456-e39e9f6e1aeb</trackback:ping>
      <pingback:server>http://www.rgoarchitects.com/nblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.rgoarchitects.com/nblog/PermaLink,guid,dda8ff79-2fa6-4ee8-a456-e39e9f6e1aeb.aspx</pingback:target>
      <dc:creator>Arnon Rotem-Gal-Oz</dc:creator>
      <wfw:comment>http://www.rgoarchitects.com/nblog/CommentView,guid,dda8ff79-2fa6-4ee8-a456-e39e9f6e1aeb.aspx</wfw:comment>
      <wfw:commentRss>http://www.rgoarchitects.com/nblog/SyndicationService.asmx/GetEntryCommentsRss?guid=dda8ff79-2fa6-4ee8-a456-e39e9f6e1aeb</wfw:commentRss>
      <title>Google Chrome -The browser is the new Desktop (2)</title>
      <guid isPermaLink="false">http://www.rgoarchitects.com/nblog/PermaLink,guid,dda8ff79-2fa6-4ee8-a456-e39e9f6e1aeb.aspx</guid>
      <link>http://feedproxy.google.com/~r/CirrusMinor/~3/9jZ8elRzcjE/GoogleChromeTheBrowserIsTheNewDesktop2.aspx</link>
      <pubDate>Fri, 20 Nov 2009 20:23:44 GMT</pubDate>
      <description>&lt;p&gt;
You’ve probably read/heard that yesterday Google held a press event on &lt;a href="http://www.downloadsquad.com/2009/11/19/google-chromeos-its-basically-a-modified-browser-that-runs-web/"&gt;making
the ChromeOS the’ve been working on an open source project&lt;/a&gt;. Actually &lt;a href="http://googleblog.blogspot.com/2009/07/introducing-google-chrome-os.html"&gt;they’ve
announced ChromeOS back in July&lt;/a&gt;, but now that the source is available it is making
more waves. This is a very logical move for Google, and even though I think that they
will need to enable some local/offline capabilities before it would be a viable option.
&lt;/p&gt;
&lt;p&gt;
As usual* for Google, they are not the first in this space (If you want to get a webbook
today you can try out &lt;a href="http://litl.com/"&gt;litl&lt;/a&gt;, which looks like a very
nice,&amp;#160; or the &lt;a href="http://www.thinkgos.com/cloud/availability.html"&gt;GOS cloud
on the Gigabyte M912&lt;/a&gt;)&amp;#160; - but Google’s size and position in the market makes
this interesting for everybody.
&lt;/p&gt;
&lt;p&gt;
Anyway, I am almost thinking about a career change to analyst as I’ve been says that’s
what they’ve up to since they released Chrome in Sept. 2008. when I published &lt;a href="http://www.rgoarchitects.com/nblog/2008/09/02/GoogleChromeTheBrowserIsTheNewDesktop.aspx"&gt;Google
Chrome -The browser is the new Desktop&lt;/a&gt;. Here’s an excerpt:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
Now,in my opinion, Google makes a bold move to change the rules and re-define the
playground - if webapss need to run on the desktop, let's make the browser the new
desktop. 
&lt;br /&gt;
What makes me say that? because it is focused on application (see the comics),because
the browser runs each tab in its own process, because it has a process monitor, because
it is a link on the google home page...
&lt;/p&gt;
&lt;p&gt;
From the chrome &amp;quot;OS&amp;quot; point of view we can look at javascript,HTML etc. as
the IL (bytecode in java speak) on which the application run. This makes cross-compilers
like &lt;a href="http://www.rgoarchitects.com/nblog/ct.ashx?id=1fd0de76-e624-4504-b420-d2c45d25ea8d&amp;amp;url=http%3a%2f%2fcode.google.com%2fwebtoolkit%2f"&gt;GWT&lt;/a&gt; and
the &lt;a href="http://www.rgoarchitects.com/nblog/ct.ashx?id=1fd0de76-e624-4504-b420-d2c45d25ea8d&amp;amp;url=http%3a%2f%2flivelabs.com%2fvolta%2fdocs%2frecipes-ux%2f"&gt;good
side of MS Volta&lt;/a&gt; (vs. &lt;a href="http://www.rgoarchitects.com/nblog/ct.ashx?id=1fd0de76-e624-4504-b420-d2c45d25ea8d&amp;amp;url=http%3a%2f%2fwww.rgoarchitects.com%2fnblog%2f2007%2f12%2f06%2fMicrosoftVoltaOhMyOhMy.aspx"&gt;the
bad side&lt;/a&gt;) the next abstraction layer. I expect these will be more significant
in the future
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
On the same note, it is probably good time to provide a link to a presentation on
the future of PCs I’ve created in 2007, which highlights some of the trends that are
more apparent today in moving to the cloud
&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;
* the most obvious example is of course search (altavista, hotbot etc. have all been
there before..), a more recent example is the free GPS turn-by-turn where &lt;a href="http://www.waze.com"&gt;Waze&lt;/a&gt; (an
Israeli company by they way) is already there but &lt;a href="http://abovethecrowd.com/2009/10/29/google-redefines-disruption-the-&amp;ldquo;less-than-free&amp;rdquo;-business-model/"&gt;Google’s
announcement is considered disruptive&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.rgoarchitects.com/nblog/aggbug.ashx?id=dda8ff79-2fa6-4ee8-a456-e39e9f6e1aeb" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=9jZ8elRzcjE:n8uTKEtdO-M:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=9jZ8elRzcjE:n8uTKEtdO-M:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=9jZ8elRzcjE:n8uTKEtdO-M:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=9jZ8elRzcjE:n8uTKEtdO-M:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=9jZ8elRzcjE:n8uTKEtdO-M:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=9jZ8elRzcjE:n8uTKEtdO-M:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=9jZ8elRzcjE:n8uTKEtdO-M:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=9jZ8elRzcjE:n8uTKEtdO-M:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=9jZ8elRzcjE:n8uTKEtdO-M:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=9jZ8elRzcjE:n8uTKEtdO-M:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CirrusMinor/~4/9jZ8elRzcjE" height="1" width="1"/&gt;</description>
      <comments>http://www.rgoarchitects.com/nblog/CommentView,guid,dda8ff79-2fa6-4ee8-a456-e39e9f6e1aeb.aspx</comments>
      <category>Cloud Computing</category>
      <category>General</category>
      <category>Trends</category>
    <feedburner:origLink>http://www.rgoarchitects.com/nblog/2009/11/20/GoogleChromeTheBrowserIsTheNewDesktop2.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.rgoarchitects.com/nblog/Trackback.aspx?guid=52df8fea-f0b2-4b41-82b9-f2f1bfd70278</trackback:ping>
      <pingback:server>http://www.rgoarchitects.com/nblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.rgoarchitects.com/nblog/PermaLink,guid,52df8fea-f0b2-4b41-82b9-f2f1bfd70278.aspx</pingback:target>
      <dc:creator>Arnon Rotem-Gal-Oz</dc:creator>
      <wfw:comment>http://www.rgoarchitects.com/nblog/CommentView,guid,52df8fea-f0b2-4b41-82b9-f2f1bfd70278.aspx</wfw:comment>
      <wfw:commentRss>http://www.rgoarchitects.com/nblog/SyndicationService.asmx/GetEntryCommentsRss?guid=52df8fea-f0b2-4b41-82b9-f2f1bfd70278</wfw:commentRss>
      <slash:comments>2</slash:comments>
      
      <title>More on WCF oddities</title>
      <guid isPermaLink="false">http://www.rgoarchitects.com/nblog/PermaLink,guid,52df8fea-f0b2-4b41-82b9-f2f1bfd70278.aspx</guid>
      <link>http://feedproxy.google.com/~r/CirrusMinor/~3/xcRW5HlgUHY/MoreOnWCFOddities.aspx</link>
      <pubDate>Sun, 15 Nov 2009 12:07:43 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.iserviceoriented.com/blog/"&gt;Jesse Ezell&lt;/a&gt;  left the following&#xD;
comment on my previous WCF rant (&lt;a href="http://www.rgoarchitects.com/nblog/2009/10/30/WindowsTrickortreatFoundation.aspx"&gt;Windows&#xD;
Trick-or-treat Foundation&lt;/a&gt;)&#xD;
&lt;/p&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;p&gt;&#xD;
You wouldn't expect WCF to take care every TCP/IP registry setting as well would you?&#xD;
At some point, the things WCF exposes have to stop so transport specific settings&#xD;
come into play. What would really suck is if WCF completely abstracted every detail&#xD;
of every transport and came up with new names for things like cookies and specific&#xD;
http request and response headers in the name of creating a "unified" experience&#xD;
across every transport. &#xD;
&lt;br&gt;&#xD;
The point of WCF is to give you a unified communication API. You don't have to change&#xD;
your code to switch from HTTP, to MSMQ, to TCP, etc. However, the point of WCF is&#xD;
not to hide all the specifics of each transport from you. There are a lot of transport&#xD;
specific options in WCF that you won't find in a WSDL file. However... none of these&#xD;
settings actually require you to change any code to take advantage of them. IMO, WCF&#xD;
does a really good job of providing a uniform communication API and limiting transport&#xD;
specific details to configuration settings. Even in this case, you were able to resolve&#xD;
the issue by configuration settings rather than code changes. &#xD;
&lt;br&gt;&#xD;
If you had used http request manually, this is one of very few settings you would&#xD;
actually have control over via configuration. What about other popular competing APIs?&#xD;
Look at something like NServiceBus. NServiceBus has a transport model that abstracts&#xD;
communication to some degree... but what happens when you want to change the format&#xD;
of the messages on the wire? For example, maybe you want to switch from raw XML messages&#xD;
to messages with SOAP envelopes on an endpoint or limit the depth of XML node hierarchies&#xD;
to protect against XML attacks. Maybe you want to switch to a completely new transport&#xD;
that was provided by a vendor that has never seen your product. Maybe you want to&#xD;
add compression, or chunking, or certificate based security. Can you do that all via&#xD;
configuration files without ever touching code in any other .NET API? Maybe this is&#xD;
my own ignorance... but I don't know of any .NET communication API that offers even&#xD;
half of the flexibility of WCF.&#xD;
&lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;p&gt;&#xD;
Well, I would actually expect WCF to do one of two things either provide a complete&#xD;
API of all the communications need (next version of .NET communication , unified communication&#xD;
model and all that..) and retire the other .NET communication libraries or on the&#xD;
other hand provide a thin layer of abstraction that will make it clear you need to&#xD;
move to the specific underlying protocols.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
What we’ve got now is something that isn’t quite there on the first and way away from&#xD;
the second – which means that when you try to do serious stuff with WCF you hit these&#xD;
unexpected (ok now they are) snags where you don’t know where to go – until you realize&#xD;
that this is a specific thing regarding TCP this or HTTP that which is not readily&#xD;
apparent and is not well documented or even worse you need to set it outside of WCF&#xD;
altogether.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
In my experience , you can’t in fact, “just change the binding” and expect everything&#xD;
to work unless you are doing very simple stuff. For instance when  if you move&#xD;
from HTTP binding to TCP you’d find that the channels are suddenly getting closed&#xD;
after periods of inactivity and you need to “keep them alive” or if you move in the&#xD;
other direction from TCP to HTTP you’d find that the size of messages gets larger&#xD;
by an order of magnitude  etc. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Not to mention the  “training wheels” approach to setting defaults (at least&#xD;
some of it is fixed for .NET 4) which I talked about a few times in the past. Also&#xD;
there cryptic error messages that make you scratch your head looking for the configuration&#xD;
item you need to set. for instance if your send a large message (&amp;gt;8K) you won’t&#xD;
see any problem in the sending side but you’d get the following&#xD;
&lt;/p&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;p&gt;&#xD;
“An exception of type 'System.ServiceModel.Dispatcher.NetDispatcherFaultException'&#xD;
occurred in mscorlib.dll but was not handled in user code&#xD;
&lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
Additional information: The formatter threw an exception while trying to deserialize&#xD;
the message: There was an error while trying to deserialize parameter &lt;a href="http://tempuri.org/:ClientPrintResult"&gt;http://tempuri.org/:ClientPrintResult&lt;/a&gt;.&#xD;
The InnerException message was 'There was an error deserializing the object of type&#xD;
System.String. The maximum string content length quota (8192) has been exceeded while&#xD;
reading XML data. This quota may be increased by changing the MaxStringContentLength&#xD;
property on the XmlDictionaryReaderQuotas object used when creating the XML reader.&#xD;
Line 2, position 40523.'.  Please see InnerException for more details.”&#xD;
&lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;p&gt;&#xD;
I am sure all of you immediately understood you need to set  ReaderQuotas, MaximumReceiveMessageSize&#xD;
and MaxBuferSize on the binding e.g.:&#xD;
&lt;/p&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;pre class="code"&gt;&#xD;
            &lt;span style="color: blue"&gt;var &lt;/span&gt;binding = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;WebHttpBinding&lt;/span&gt;()&#xD;
{ ReaderQuotas = { MaxArrayLength = 20 * 8192}, MaxReceivedMessageSize = 20 * 8192,&#xD;
MaxBufferSize = 20 * 8192 };&lt;/pre&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;a href="http://11011.net/software/vspaste"&gt;&#xD;
        &lt;/a&gt;&#xD;
        &lt;p&gt;&#xD;
Don’t get me wrong, WCF isn’t all bad or anything like that but it does get annoying&#xD;
like hell at times.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
As for the reference to other frameworks - I can’t speak for NServiceBus  because&#xD;
I didn’t write it (though I think the answer would be the same) - but if I consider&#xD;
the communication framework I did write for xsights (which builds on WCF by the way)&#xD;
it is not as presumptuous as WCF. It does not pretend to be an all-encompassing communication&#xD;
layer for .NET and  It is build to provide a specific architectural approach&#xD;
– which is why it shouldn’t be judged by the same standards. &#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://www.rgoarchitects.com/nblog/aggbug.ashx?id=52df8fea-f0b2-4b41-82b9-f2f1bfd70278"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=xcRW5HlgUHY:tICDL37UNn8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=xcRW5HlgUHY:tICDL37UNn8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=xcRW5HlgUHY:tICDL37UNn8:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=xcRW5HlgUHY:tICDL37UNn8:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=xcRW5HlgUHY:tICDL37UNn8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=xcRW5HlgUHY:tICDL37UNn8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=xcRW5HlgUHY:tICDL37UNn8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=xcRW5HlgUHY:tICDL37UNn8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=xcRW5HlgUHY:tICDL37UNn8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=xcRW5HlgUHY:tICDL37UNn8:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CirrusMinor/~4/xcRW5HlgUHY" height="1" width="1"/&gt;</description>
      <comments>http://www.rgoarchitects.com/nblog/CommentView,guid,52df8fea-f0b2-4b41-82b9-f2f1bfd70278.aspx</comments>
      <category>.NET</category>
      <category>Software Architecture</category>
      <category>WCF</category>
    <feedburner:origLink>http://www.rgoarchitects.com/nblog/2009/11/15/MoreOnWCFOddities.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.rgoarchitects.com/nblog/Trackback.aspx?guid=13bc1a6f-7421-4be5-9e99-cd47f6e5bf57</trackback:ping>
      <pingback:server>http://www.rgoarchitects.com/nblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.rgoarchitects.com/nblog/PermaLink,guid,13bc1a6f-7421-4be5-9e99-cd47f6e5bf57.aspx</pingback:target>
      <dc:creator>Arnon Rotem-Gal-Oz</dc:creator>
      <wfw:comment>http://www.rgoarchitects.com/nblog/CommentView,guid,13bc1a6f-7421-4be5-9e99-cd47f6e5bf57.aspx</wfw:comment>
      <wfw:commentRss>http://www.rgoarchitects.com/nblog/SyndicationService.asmx/GetEntryCommentsRss?guid=13bc1a6f-7421-4be5-9e99-cd47f6e5bf57</wfw:commentRss>
      
      <title>SOA &amp;ndash; There could be only one&amp;hellip;</title>
      <guid isPermaLink="false">http://www.rgoarchitects.com/nblog/PermaLink,guid,13bc1a6f-7421-4be5-9e99-cd47f6e5bf57.aspx</guid>
      <link>http://feedproxy.google.com/~r/CirrusMinor/~3/QOBRvfysv88/SOANdashThereCouldBeOnlyOnehellip.aspx</link>
      <pubDate>Fri, 13 Nov 2009 17:42:48 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
There’s no Architecture in Business Service Orientation ! There, I’ve said it, there&#xD;
are no two types of SOA.  I am not trying to say that business-level service&#xD;
orientation doesn’t exist or isn’t valuable. However I am trying to say that labeling&#xD;
that SOA harms both Service Orientation at the business level and SOA (a.k.a. “technical&#xD;
SOA”)&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
For the record here are my definitions for both Business Service Orientation and Service&#xD;
Oriented Architecture (SOA)&#xD;
&lt;/p&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;strong&gt;Business Service Orientation&lt;/strong&gt; is an IT  paradigm at the enterprise-level &#xD;
that aims to componentize and partition the business’s software and to get composability&#xD;
and flexibility (and thus achieve better business and IT alignment etc.). Service&#xD;
Orientation can be implemented using various enterprise architecture practices (around&#xD;
governance, portfolio management etc)  as well as various software architectures&#xD;
including (but not limited to )  SOA, EDA, BPM, REST and combinations of them. &#xD;
&lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;strong&gt;Service Oriented Architecture&lt;/strong&gt; as an architectural style for building&#xD;
systems based on interacting coarse grained autonomous components called services.&#xD;
Each service expose processes and behavior through contracts, which are composed of&#xD;
messages at discoverable addresses called endpoints. Services’ behavior is governed&#xD;
by policies which are set externally to the service itself. SOA is derived of four&#xD;
predating architectural styles, namely Client/Server, Layered System, Pipes and Filters&#xD;
and Distributed Agents.&#xD;
&lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/SOATherecouldbeonlyone_14F63/image_2.png"&gt;&#xD;
            &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/SOATherecouldbeonlyone_14F63/image_thumb.png" width="574" height="279"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
To reiterate -  calling Business Service Orientation SOA serves only to muddy&#xD;
the water and make both terms nebulous. If you just have to have a TLA just call them &#xD;
BSO &amp;amp; SOA&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
PS&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I know that in “&lt;a href="http://www.rgoarchitects.com/Files/SOADefined.pdf"&gt;What is&#xD;
SOA anyway&lt;/a&gt;” I also refer to two SOAs. I didn’t have enough confidence to say it&#xD;
bluntly when I wrote that paper, but I did emphasized Service Orientation for BSO&#xD;
and Architecture for SOA. Also regarding a more formal definition of SOA, that shows&#xD;
how it is derived from the four other styles – I started explaining that quite some&#xD;
time ago (&lt;a href="http://www.rgoarchitects.com/nblog/2007/11/24/DefiningSOAPartI.aspx"&gt;Intro&lt;/a&gt;, &lt;a href="http://www.rgoarchitects.com/nblog/2007/12/22/DefiningSOAPartIIClientServer.aspx"&gt;Client-Server&lt;/a&gt;, &lt;a href="http://www.rgoarchitects.com/nblog/2008/01/26/DefiningSOAPartIIILayeredSystem.aspx"&gt;Layered&lt;/a&gt;, &lt;a href="http://www.rgoarchitects.com/nblog/2008/03/22/DefiningSOAPartIVPipesAndFilters.aspx"&gt;Pipes&#xD;
and Filters&lt;/a&gt;) – I still need to explain Distributed Agents and summarize (about&#xD;
time I’ll do that)&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://www.rgoarchitects.com/nblog/aggbug.ashx?id=13bc1a6f-7421-4be5-9e99-cd47f6e5bf57"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=QOBRvfysv88:ahkfD6S0dpY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=QOBRvfysv88:ahkfD6S0dpY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=QOBRvfysv88:ahkfD6S0dpY:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=QOBRvfysv88:ahkfD6S0dpY:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=QOBRvfysv88:ahkfD6S0dpY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=QOBRvfysv88:ahkfD6S0dpY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=QOBRvfysv88:ahkfD6S0dpY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=QOBRvfysv88:ahkfD6S0dpY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=QOBRvfysv88:ahkfD6S0dpY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=QOBRvfysv88:ahkfD6S0dpY:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CirrusMinor/~4/QOBRvfysv88" height="1" width="1"/&gt;</description>
      <comments>http://www.rgoarchitects.com/nblog/CommentView,guid,13bc1a6f-7421-4be5-9e99-cd47f6e5bf57.aspx</comments>
      <category>SOA</category>
      <category>Software Architecture</category>
    <feedburner:origLink>http://www.rgoarchitects.com/nblog/2009/11/13/SOANdashThereCouldBeOnlyOnehellip.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.rgoarchitects.com/nblog/Trackback.aspx?guid=d3bb8d5b-26e2-4cb8-9347-c317c1b492a6</trackback:ping>
      <pingback:server>http://www.rgoarchitects.com/nblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.rgoarchitects.com/nblog/PermaLink,guid,d3bb8d5b-26e2-4cb8-9347-c317c1b492a6.aspx</pingback:target>
      <dc:creator>Arnon Rotem-Gal-Oz</dc:creator>
      <wfw:comment>http://www.rgoarchitects.com/nblog/CommentView,guid,d3bb8d5b-26e2-4cb8-9347-c317c1b492a6.aspx</wfw:comment>
      <wfw:commentRss>http://www.rgoarchitects.com/nblog/SyndicationService.asmx/GetEntryCommentsRss?guid=d3bb8d5b-26e2-4cb8-9347-c317c1b492a6</wfw:commentRss>
      <slash:comments>5</slash:comments>
      
      <title>Windows Trick-or-treat Foundation</title>
      <guid isPermaLink="false">http://www.rgoarchitects.com/nblog/PermaLink,guid,d3bb8d5b-26e2-4cb8-9347-c317c1b492a6.aspx</guid>
      <link>http://feedproxy.google.com/~r/CirrusMinor/~3/zL5L-SXmiMM/WindowsTrickortreatFoundation.aspx</link>
      <pubDate>Fri, 30 Oct 2009 22:58:53 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Yes, this is another WCF rant…&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto;" src="http://xsights-services.com/inbox/136a96ca-bb1d-4608-9edc-b8e94be87622.jpg" width="178" height="135"&gt;&lt;/img&gt;&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
We were getting ready to launch an open-for-all version of our service, we were also&#xD;
adding more cores to the system, to make sure our computation engine will be able&#xD;
to handle higher request loads (We’re basically implementing the &lt;a href="http://www.rgoarchitects.com/Files/SOAPatterns/GridableService.pdf"&gt;Gridable&#xD;
Service pattern&lt;/a&gt; -  if it is interesting, I can expand on that in another&#xD;
post). We tried a few load tests, which on first look, seemed OK. However we then&#xD;
noticed that we get WCF timeouts on some of the calls.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
WCF timeouts!? what gives? we already took care of all the &lt;a href="http://www.rgoarchitects.com/nblog/2008/06/15/RantWCFDefaultsLimitConcurrencyscalability.aspx"&gt;annoying&#xD;
throttling defaults&lt;/a&gt;. After busting my head (and Google) for a few hours, I found&#xD;
that apparently, when using http bindings in WCF you only get 2 outgoing channels&#xD;
for each server (IP) you are connecting to. yep WCF thinks your services are novice&#xD;
users using a  browser. So if you have a service that tries to access a remote&#xD;
server with more than two requests simultaneously (say, under load…) you may find,&#xD;
like us, that you’d get occasional timeouts.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Yes, there’s also a solution, which also took time to find – it is called &lt;a href="http://msdn.microsoft.com/en-us/library/fb6y0fyc.aspx"&gt;ConnectionManagment&lt;/a&gt; element&#xD;
in the network configuration (I am yet to find a programmable way to do this). So&#xD;
now the services app.config (see below) sets the value to 16 instead of 2 and everything&#xD;
is well again, at least until the next default hits us..&#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="code"&gt;&#xD;
          &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&#xD;
          &lt;span style="color: rgb(163, 21, 21);"&gt;system.net&lt;/span&gt;&#xD;
          &lt;span style="color: blue;"&gt;&amp;gt;&#xD;
&amp;lt;&lt;/span&gt;&#xD;
          &lt;span style="color: rgb(163, 21, 21);"&gt;connectionManagement&lt;/span&gt;&#xD;
          &lt;span style="color: blue;"&gt;&amp;gt;&#xD;
&amp;lt;&lt;/span&gt;&#xD;
          &lt;span style="color: rgb(163, 21, 21);"&gt;add &lt;/span&gt;&#xD;
          &lt;span style="color: red;"&gt;address &lt;/span&gt;&#xD;
          &lt;span style="color: blue;"&gt;= &lt;/span&gt;"&lt;span style="color: blue;"&gt;*&lt;/span&gt;" &lt;span style="color: red;"&gt;maxconnection &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;"&lt;span style="color: blue;"&gt;16&lt;/span&gt;" &lt;span style="color: blue;"&gt;/&amp;gt;&#xD;
&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;connectionManagement&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&#xD;
&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;system.net&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&#xD;
        &lt;a href="http://11011.net/software/vspaste"&gt;&#xD;
        &lt;/a&gt;&#xD;
        &lt;p&gt;&#xD;
 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
From trying to work with WCF in the last few years, it seems its abstractions are&#xD;
very leaky.They are almost leaky  to the point  of rendering it useless&#xD;
as a “unified” framework. So, in the spirit of the times, and as the title suggest&#xD;
– maybe they should just rename WCF to Windows Trick-or-treat Foundation – Alas, we&#xD;
are getting more and more of the “trick’ part rather that the “treat”, but at least&#xD;
the acronym fits well. &#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://www.rgoarchitects.com/nblog/aggbug.ashx?id=d3bb8d5b-26e2-4cb8-9347-c317c1b492a6"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=zL5L-SXmiMM:8tQhJ1l0cf8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=zL5L-SXmiMM:8tQhJ1l0cf8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=zL5L-SXmiMM:8tQhJ1l0cf8:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=zL5L-SXmiMM:8tQhJ1l0cf8:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=zL5L-SXmiMM:8tQhJ1l0cf8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=zL5L-SXmiMM:8tQhJ1l0cf8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=zL5L-SXmiMM:8tQhJ1l0cf8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=zL5L-SXmiMM:8tQhJ1l0cf8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=zL5L-SXmiMM:8tQhJ1l0cf8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=zL5L-SXmiMM:8tQhJ1l0cf8:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CirrusMinor/~4/zL5L-SXmiMM" height="1" width="1"/&gt;</description>
      <comments>http://www.rgoarchitects.com/nblog/CommentView,guid,d3bb8d5b-26e2-4cb8-9347-c317c1b492a6.aspx</comments>
      <category>.NET</category>
      <category>SOA Patterns</category>
      <category>WCF</category>
    <feedburner:origLink>http://www.rgoarchitects.com/nblog/2009/10/30/WindowsTrickortreatFoundation.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.rgoarchitects.com/nblog/Trackback.aspx?guid=d905d021-8e0b-4a28-a9fc-bfd01686c4fc</trackback:ping>
      <pingback:server>http://www.rgoarchitects.com/nblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.rgoarchitects.com/nblog/PermaLink,guid,d905d021-8e0b-4a28-a9fc-bfd01686c4fc.aspx</pingback:target>
      <dc:creator>Arnon Rotem-Gal-Oz</dc:creator>
      <wfw:comment>http://www.rgoarchitects.com/nblog/CommentView,guid,d905d021-8e0b-4a28-a9fc-bfd01686c4fc.aspx</wfw:comment>
      <wfw:commentRss>http://www.rgoarchitects.com/nblog/SyndicationService.asmx/GetEntryCommentsRss?guid=d905d021-8e0b-4a28-a9fc-bfd01686c4fc</wfw:commentRss>
      
      <title>Offtopic: xsights &amp;ndash; now open for all</title>
      <guid isPermaLink="false">http://www.rgoarchitects.com/nblog/PermaLink,guid,d905d021-8e0b-4a28-a9fc-bfd01686c4fc.aspx</guid>
      <link>http://feedproxy.google.com/~r/CirrusMinor/~3/Y2EK2rB-TSE/OfftopicXsightsNdashNowOpenForAll.aspx</link>
      <pubDate>Tue, 20 Oct 2009 22:08:17 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
When we added our iPhone application &lt;a href="http://appsto.re/xsightslight"&gt;xsights-light&lt;/a&gt; to&#xD;
the appstore about a month ago we intended it as a demo application we can use to&#xD;
showcase potential clients what we can do (with the aim of providing a white-label&#xD;
service). We activated a few images (3 on the site and a few others) and forgot about&#xD;
it. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
We were very surprised to find out that even though we didn’t publicized it anywhere&#xD;
or anything like that, hundreds of people found it interesting, downloaded the app&#xD;
and tried it on just about anything. Here are just a few examples:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_2.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_thumb.png" width="118" height="98"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
          &lt;a href="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_4.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_thumb_1.png" width="118" height="98"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
          &lt;a href="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_6.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_thumb_2.png" width="118" height="98"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
          &lt;a href="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_8.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_thumb_3.png" width="119" height="98"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
          &lt;a href="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_10.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_thumb_4.png" width="118" height="98"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
          &lt;a href="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_12.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_thumb_5.png" width="119" height="98"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
          &lt;a href="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_14.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_thumb_6.png" width="98" height="98"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
          &lt;a href="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_16.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_thumb_7.png" width="129" height="98"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
          &lt;a href="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_18.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_thumb_8.png" width="129" height="98"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
          &lt;a href="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_22.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_thumb_10.png" width="98" height="98"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
          &lt;a href="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_24.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_thumb_11.png" width="119" height="98"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
          &lt;a href="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_26.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_thumb_12.png" width="118" height="98"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
          &lt;a href="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_28.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_thumb_13.png" width="98" height="98"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
          &lt;a href="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_30.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_thumb_14.png" width="118" height="98"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
          &lt;a href="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_32.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_thumb_15.png" width="119" height="98"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
          &lt;a href="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_34.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.rgoarchitects.com/nblog/content/binary/WindowsLiveWriter/xsightsnowopenforall_11E42/image_thumb_16.png" width="119" height="98"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
As I mentioned above, we only had a few images activated, so naturally, people weren’t&#xD;
very happy and we got some “rave” reviews like “would be nice if it worked as advertized”,&#xD;
“only identifies 3 images” and  others that used less refined language :)&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Anyway, we’re listening – and we decided to make xsights-light a little more useful.&#xD;
For one we are adding content, we started with &lt;a href="http://xsights-services.com/Movies.aspx"&gt;movie&#xD;
posters of movies playing in the US&lt;/a&gt; and we intend to add more in the future. What’s&#xD;
more interesting, is that we’re opening up the platform for general use i.e. you can&#xD;
upload (almost) any image you like (such as the images above), add a URL and activate&#xD;
anything you like be that a Pepsi can, an wedding invitation or whatnot (if you’d&#xD;
take a look at &lt;a href="http://www.twitter.com/xsightspulse"&gt;@xsightspulse on twitter&lt;/a&gt;,&#xD;
you can see what others are activating)&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Apparently, we’re not the only ones who think this is interesting, as we also got&#xD;
a nice mention on Tech-Crunch. We agreed to let Tech-Crunch readers be the first users&#xD;
of our service so &lt;a href="http://www.techcrunch.com/2009/10/20/xsights-use-your-cellphone-to-turn-static-items-into-interactive-experiences/"&gt;head&#xD;
over to the article for an invite&lt;/a&gt;, we hope to open it for general use in a week&#xD;
or so.&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://www.rgoarchitects.com/nblog/aggbug.ashx?id=d905d021-8e0b-4a28-a9fc-bfd01686c4fc"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=Y2EK2rB-TSE:ZYBXrevf8VA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=Y2EK2rB-TSE:ZYBXrevf8VA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=Y2EK2rB-TSE:ZYBXrevf8VA:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=Y2EK2rB-TSE:ZYBXrevf8VA:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=Y2EK2rB-TSE:ZYBXrevf8VA:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=Y2EK2rB-TSE:ZYBXrevf8VA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=Y2EK2rB-TSE:ZYBXrevf8VA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=Y2EK2rB-TSE:ZYBXrevf8VA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=Y2EK2rB-TSE:ZYBXrevf8VA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=Y2EK2rB-TSE:ZYBXrevf8VA:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CirrusMinor/~4/Y2EK2rB-TSE" height="1" width="1"/&gt;</description>
      <comments>http://www.rgoarchitects.com/nblog/CommentView,guid,d905d021-8e0b-4a28-a9fc-bfd01686c4fc.aspx</comments>
      <category>xsights</category>
    <feedburner:origLink>http://www.rgoarchitects.com/nblog/2009/10/20/OfftopicXsightsNdashNowOpenForAll.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.rgoarchitects.com/nblog/Trackback.aspx?guid=65066750-373b-4fe5-afd0-574e246caac4</trackback:ping>
      <pingback:server>http://www.rgoarchitects.com/nblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.rgoarchitects.com/nblog/PermaLink,guid,65066750-373b-4fe5-afd0-574e246caac4.aspx</pingback:target>
      <dc:creator>Arnon Rotem-Gal-Oz</dc:creator>
      <wfw:comment>http://www.rgoarchitects.com/nblog/CommentView,guid,65066750-373b-4fe5-afd0-574e246caac4.aspx</wfw:comment>
      <wfw:commentRss>http://www.rgoarchitects.com/nblog/SyndicationService.asmx/GetEntryCommentsRss?guid=65066750-373b-4fe5-afd0-574e246caac4</wfw:commentRss>
      
      <title>SOA Patterns presentation on E-VAN (recording)</title>
      <guid isPermaLink="false">http://www.rgoarchitects.com/nblog/PermaLink,guid,65066750-373b-4fe5-afd0-574e246caac4.aspx</guid>
      <link>http://feedproxy.google.com/~r/CirrusMinor/~3/4-e07nKGfCE/SOAPatternsPresentationOnEVANRecording.aspx</link>
      <pubDate>Tue, 06 Oct 2009 21:57:06 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Yesterday I gave a &lt;a href="http://www.vimeo.com/6931926"&gt;talk on SOA pattern on the&#xD;
European Virtual Alt.Net user group&lt;/a&gt;. You can find the recording of that talk &lt;a href="http://www.vimeo.com/6931926"&gt;here&lt;/a&gt; as&#xD;
well as download &lt;a href="http://www.rgoarchitects.com/Files/SoaPatterns2.pdf"&gt;a pdf&#xD;
of the slides&lt;/a&gt;.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Before I’ll talk a little about the substance I want to say a few words about office-live&#xD;
meeting (the platform used for the presentation). To sum this in one word the experience&#xD;
was horrid. It took me more than 35 minutes just to upload my presentation. Then I&#xD;
had to switch to windows XP (VM in parallels) to speak since it has problem with Windows&#xD;
7 (low sound volume). However, the worst thing is that throughout the presentation&#xD;
I constantly lost control of the slides progress (i.e. couldn’t move the slides forward),&#xD;
which was very distracting.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Anyway, if ignoring all that, I think overall the presentation is still beneficial&#xD;
and  addresses a  few interesting issues that are challenging like flexibility,&#xD;
reporting and management of SOA. If I am to sum the presentation I’d say that &#xD;
when you build a system on SOA you get a system built of (relatively) a lot of components&#xD;
of questionable reliability. You can reap a lot of benefits in the flexibility department,&#xD;
but you have to address several challenges in the performance, availability, management&#xD;
(etc.) departments. Additionally you  need to look at the overall solution from&#xD;
an holistic viewpoint since different parts of the solution can push in different&#xD;
direction or  only cover part of the picture. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Lastly thanks to &lt;a href="http://elegantcode.com/author/jryswyck/"&gt;Jan&lt;/a&gt; and &lt;a href="http://colinjack.blogspot.com/"&gt;Colin&lt;/a&gt; for&#xD;
organizing the event and for all the attendees for giving me an hour and half of their&#xD;
time &#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://www.rgoarchitects.com/nblog/aggbug.ashx?id=65066750-373b-4fe5-afd0-574e246caac4"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=4-e07nKGfCE:_1T89_jqW-c:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=4-e07nKGfCE:_1T89_jqW-c:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=4-e07nKGfCE:_1T89_jqW-c:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=4-e07nKGfCE:_1T89_jqW-c:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=4-e07nKGfCE:_1T89_jqW-c:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=4-e07nKGfCE:_1T89_jqW-c:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=4-e07nKGfCE:_1T89_jqW-c:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=4-e07nKGfCE:_1T89_jqW-c:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?i=4-e07nKGfCE:_1T89_jqW-c:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CirrusMinor?a=4-e07nKGfCE:_1T89_jqW-c:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CirrusMinor?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CirrusMinor/~4/4-e07nKGfCE" height="1" width="1"/&gt;</description>
      <comments>http://www.rgoarchitects.com/nblog/CommentView,guid,65066750-373b-4fe5-afd0-574e246caac4.aspx</comments>
      <category>.NET</category>
      <category>SOA</category>
      <category>SOA Patterns</category>
      <category>Software Architecture</category>
    <feedburner:origLink>http://www.rgoarchitects.com/nblog/2009/10/06/SOAPatternsPresentationOnEVANRecording.aspx</feedburner:origLink></item>
  </channel>
</rss>
