<?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:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Clemens Vasters</title>
    <link>http://vasters.com/clemensv/</link>
    <description>Cloud Development and Alien Abductions</description>
    <language>en-us</language>
    <copyright>Clemens Vasters</copyright>
    <lastBuildDate>Wed, 21 Dec 2011 20:45:39 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.7067.0</generator>
    <managingEditor>cvasters@guhhome.com</managingEditor>
    <webMaster>cvasters@guhhome.com</webMaster>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/clemensv" /><feedburner:info uri="clemensv" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>47.67903</geo:lat><geo:long>-122.193409</geo:long><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fclemensv" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fclemensv" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fclemensv" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/clemensv" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fclemensv" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fclemensv" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fclemensv" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2Fclemensv" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2Fclemensv" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2Fclemensv" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Fclemensv" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fclemensv" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fclemensv" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fclemensv" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2Fclemensv" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2Fclemensv" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=e2fc231c-78c6-4161-b126-28c843943ffa</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,e2fc231c-78c6-4161-b126-28c843943ffa.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,e2fc231c-78c6-4161-b126-28c843943ffa.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=e2fc231c-78c6-4161-b126-28c843943ffa</wfw:commentRss>
      <slash:comments>6</slash:comments>
      
      <title>Forget &amp;ldquo;Enterprise-Class Software&amp;rdquo;</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,e2fc231c-78c6-4161-b126-28c843943ffa.aspx</guid>
      <link>http://feedproxy.google.com/~r/clemensv/~3/KP3DXpl1iXQ/Forget+LdquoEnterpriseClass+Softwarerdquo.aspx</link>
      <pubDate>Wed, 21 Dec 2011 20:45:39 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
The term “Enterprise-Class Software” was always a funny one since it’s been used to&#xD;
describe an amorphous class of software that’s somehow “more serious” than any other&#xD;
software – it’s “enterprise class”. But what is “enterprise class” software? What’s&#xD;
the “enterprise” that the term refers to? A 3,000 employee business? Or a 30,000 employee&#xD;
business? Can 3 people in an office do “serious” business that requires “enterprise&#xD;
class” software?&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
In the last few of years, I’ve seen the term slide from being merely amorphous to&#xD;
being outright poisonous and pointless. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
We’re at a point where the private needs of an “enterprise”, and that includes the&#xD;
biggest ones, doesn’t represent much of an interesting frontier for software anymore,&#xD;
at least not from an architectural perspective. The industry has learned and is continuing&#xD;
to expand the knowledge on how to build systems that scale well beyond the need of&#xD;
an individual enterprise. We have learned how to deal with failure in ways that no&#xD;
longer require huge boxes with built-in triple redundancy. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The term “Enterprise Software” is poisonous because it implies a scalability ceiling&#xD;
for a solution serving a few 10,000 people that used to be ambitious, but that’s no&#xD;
longer the case. It’s also no longer the hardest class of software solutions – not&#xD;
at all.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
A simple multi-player game for a mobile device that allows a quarter million or more&#xD;
players in groups of 16 to play against each other is killing the vast majority of&#xD;
“enterprise class” solutions in terms of required sophistication of its messaging&#xD;
infrastructure. It needs to scale to  an audience size that even the largest&#xD;
enterprises in the world won’t get on a system concurrently and that audience is going&#xD;
to be enormously unhappy if the infrastructure is dropping messages or is slow. Just&#xD;
search for “&lt;a href="http://www.bing.com/search?q=MW3+lag"&gt;MW3 lag&lt;/a&gt;” and you’ll&#xD;
find plenty of opinion about latency that’s louder and much more impactful on business&#xD;
than a few hundred employees lamenting about the speed of an internal website, because&#xD;
here you’ve got customers who are individually putting money on the table.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
To suggest that consumer-facing scenarios are not “enterprise class” isn’t just arrogant,&#xD;
it’s also dangerous. Enterprises that don’t embrace mobile devices and start deeply&#xD;
interacting with consumers at “consumer scale” will find themselves in deep trouble.&#xD;
Software infrastructure vendors will find themselves in deep trouble if they still&#xD;
think of “enterprise scale” as a key capability or aspiration because their own customers,&#xD;
enterprises, will have to turn outward and embrace consumer scale or face the consequences.&#xD;
There’s also no reliability monopoly that “enterprise” holds in some way. When a systems&#xD;
needs to perform millions of transactions directly interacting with consumers, there’s&#xD;
no room for sweeping failures under the rug. It is actually easier to handle failures&#xD;
and provide high reliability in a tightly controlled, low-scale system than in a system&#xD;
that is the front-door of a business where each hiccup may personally upset a paying&#xD;
customer. It is also easier to shut down a system over the weekend or over a long&#xD;
holiday break than to keep it running 365/7/24. And it’s also easier to secure an&#xD;
insulated internal system than one that’s exposed to the outside world and where a&#xD;
single breach can tarnish the entire business’s reputation.   &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
“Enterprise software” is something where a single sale can generate a ton of revenue.&#xD;
But “enterprise-class” doesn’t represent anything interesting on the engineering side&#xD;
– except an outdated set of goals and a level of scalability that’s several magnitudes&#xD;
below what’s needed for an environment where more and more consumers have a personal&#xD;
computing device in their pocket and another on the coffee table. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
PS: Put “Web scale” on the same heap of useless terms. You ought to scale to your&#xD;
audience, not the web. &#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=e2fc231c-78c6-4161-b126-28c843943ffa"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/clemensv?a=KP3DXpl1iXQ:hdakAqTHg8U:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/clemensv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/clemensv?a=KP3DXpl1iXQ:hdakAqTHg8U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/clemensv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/clemensv/~4/KP3DXpl1iXQ" height="1" width="1"/&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,e2fc231c-78c6-4161-b126-28c843943ffa.aspx</comments>
    <feedburner:origLink>http://vasters.com/clemensv/2011/12/21/Forget+LdquoEnterpriseClass+Softwarerdquo.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=7bf6ac44-afba-42be-b7ea-3fe298310884</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,7bf6ac44-afba-42be-b7ea-3fe298310884.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,7bf6ac44-afba-42be-b7ea-3fe298310884.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=7bf6ac44-afba-42be-b7ea-3fe298310884</wfw:commentRss>
      
      <title>The Elements of Distributed Architecture</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,7bf6ac44-afba-42be-b7ea-3fe298310884.aspx</guid>
      <link>http://feedproxy.google.com/~r/clemensv/~3/E5FX36-hRV4/The+Elements+Of+Distributed+Architecture.aspx</link>
      <pubDate>Tue, 20 Dec 2011 22:36:22 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
I've long wanted to write an architecture book. The problem with books is that writing&#xD;
them robs you of at least half a year of your life, and that half a year is a&#xD;
very painful one. I've done it. So instead of a book, I talked to the folks at Pluralsight&#xD;
and made an on-demand video course.  &#xD;
&lt;/p&gt;&#xD;
        &lt;blockquote style="MARGIN-RIGHT: 0px" dir="ltr"&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;a href="http://www.pluralsight-training.net/microsoft/Courses/TableOfContents?courseName=eda"&gt;&#xD;
              &lt;em&gt;"The&#xD;
Elements of Distributed Architecture"&lt;/em&gt;&#xD;
            &lt;/a&gt;&#xD;
            &lt;em&gt; is about the foundational&#xD;
elements of distributed architecture and about the ‘physics’ that affect distributed&#xD;
software designs. The goal of this course, which is designed to be independent of&#xD;
specific languages, technologies, and products, is to provide software teams with&#xD;
a shared baseline of concepts and terminologies in the areas of information management,&#xD;
communication, presentation, processing, failure management, security, and safety.&lt;/em&gt;&#xD;
          &lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;p dir="ltr"&gt;&#xD;
I think of this course as a baseline and there's plenty of runway for more&#xD;
in-depth material. If you like this one that will give me motivation to spend more&#xD;
private time (this course is not related to my Microsoft job) to create architectural&#xD;
material.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p dir="ltr"&gt;&#xD;
If you don't have a Pluralsight account, &lt;a href="https://www.pluralsight-training.net/microsoft/Subscribe/Step1?isTrial=True"&gt;you&#xD;
can sign up for the free trial here&lt;/a&gt;&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=7bf6ac44-afba-42be-b7ea-3fe298310884"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/clemensv?a=E5FX36-hRV4:fany9RgyuUQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/clemensv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/clemensv?a=E5FX36-hRV4:fany9RgyuUQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/clemensv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/clemensv/~4/E5FX36-hRV4" height="1" width="1"/&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,7bf6ac44-afba-42be-b7ea-3fe298310884.aspx</comments>
      <category>Architecture</category>
    <feedburner:origLink>http://vasters.com/clemensv/2011/12/20/The+Elements+Of+Distributed+Architecture.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=45ae933a-3c7e-4863-98e9-c017673b3b55</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,45ae933a-3c7e-4863-98e9-c017673b3b55.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,45ae933a-3c7e-4863-98e9-c017673b3b55.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=45ae933a-3c7e-4863-98e9-c017673b3b55</wfw:commentRss>
      
      <title>4 Questions</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,45ae933a-3c7e-4863-98e9-c017673b3b55.aspx</guid>
      <link>http://feedproxy.google.com/~r/clemensv/~3/onMBNcbddh4/4+Questions.aspx</link>
      <pubDate>Thu, 01 Dec 2011 17:38:37 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
I answered 4 questions in Richard Seroter’s series of interviews with folks working&#xD;
on connect systems. See the &lt;a href="http://seroter.wordpress.com/2011/12/01/interview-series-four-questions-with-clemens-vasters/"&gt;Q&amp;amp;A&#xD;
here&lt;/a&gt;.&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=45ae933a-3c7e-4863-98e9-c017673b3b55"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/clemensv?a=onMBNcbddh4:tQHLn12We9E:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/clemensv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/clemensv?a=onMBNcbddh4:tQHLn12We9E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/clemensv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/clemensv/~4/onMBNcbddh4" height="1" width="1"/&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,45ae933a-3c7e-4863-98e9-c017673b3b55.aspx</comments>
      <category>Architecture</category>
      <category>Architecture/SOA</category>
    <feedburner:origLink>http://vasters.com/clemensv/2011/12/01/4+Questions.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=b2e9e279-8ab3-4126-905a-25650c57a468</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,b2e9e279-8ab3-4126-905a-25650c57a468.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,b2e9e279-8ab3-4126-905a-25650c57a468.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=b2e9e279-8ab3-4126-905a-25650c57a468</wfw:commentRss>
      
      <title>Achieving Transactional Behavior with Messaging</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,b2e9e279-8ab3-4126-905a-25650c57a468.aspx</guid>
      <link>http://feedproxy.google.com/~r/clemensv/~3/QMq1ig_GCMg/Achieving+Transactional+Behavior+With+Messaging.aspx</link>
      <pubDate>Thu, 06 Oct 2011 21:10:14 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Elastic and dynamic multitenant cloud environments have characteristics that make&#xD;
traditional failure management mechanisms using coordinated 2-phase transactions a&#xD;
suboptimal choice. The common 2-phase commit protocols depend on a number of parties&#xD;
enlisted into a transaction making hard promises on the expected outcome of their&#xD;
slice a transaction. Those promises are difficult to keep in an environment where&#xD;
systems may go down at any time with their local state vanishing, where not all party&#xD;
trust each other, where significant latency may be involved, and network connectivity&#xD;
cannot be assumed to be reliable. 2-phase-commit is also not a good choice for operations&#xD;
that take significant amounts of time and span a significant amount of resources,&#xD;
because such a coordinated transaction may adversely affect the availability of said&#xD;
resources, especially in cases where the solution is a high-density multitenant solution&#xD;
where virtualized, and conceptually isolated resources are collocated on the same&#xD;
base resources. In such a case, database locks and locks on other resources to satisfy&#xD;
coordinated transaction promises may easily break the isolation model of a multitenant&#xD;
system and have one tenant affect the other.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Therefore, failure management – and this is ultimately what transactions are about&#xD;
– requires a somewhat different approach in cloud environments and other scalable&#xD;
distributed systems with similar characteristics. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
To find a suitable set of alternative approaches, let’s quickly dissect what goes&#xD;
on in a distributed transaction: &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
To start, two or more parties ‘enlist’ into a shared transaction scope performing&#xD;
some coordinated work that’s commonly motivated by a shared notion of a ‘job’ that &#xD;
needs to be executed. The goal of having a shared transaction scope is that the overall&#xD;
system will remain correct and consistent in both the success and the failure cases.&#xD;
Consistency in the success case is trivial. All participating parties could complete&#xD;
their slice of the job that had to be done. Consistency in the failure case is more&#xD;
interesting. If any party fails in doing their part of the job, the system will end&#xD;
up in a state that is not consistent. If you were trying to book a travel package&#xD;
and ticketing with the airline failed, you may end up with a hotel and a car, but&#xD;
no flight. In order to prevent that, a ‘classic’ distributed transaction asks the&#xD;
participants to make promises on the outcome of the transaction as the transaction&#xD;
is going on. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
As all participating parties have tentatively completed but not finalized their work,&#xD;
the distributed transaction goes into a voting phase where every participant is asked&#xD;
whether it could tentatively complete its portion of the job and whether it can furthermore&#xD;
guarantee with a very high degree of certainty that it can finalize the job outcome&#xD;
and make it effective when asked to do so. Imagine a store clerk who puts an item&#xD;
on the counter that you’d like to purchase – you’ll show him your $10 and ask for&#xD;
a promise that he will hand you the item if you give him the money – and vice versa. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Finally, once all parties have made their promises and agreed that the job can be&#xD;
finalized, they are told to do so.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
There are two big interesting things to observe about the 2-phase-commit (2PC) distributed&#xD;
transaction model that I just described: First, It’s incredibly simple from a developer’s&#xD;
perspective because the transaction outcome negotiation is externalized and happens&#xD;
as ‘magic’. Second, it’s not resembling anything that happens in real life and that&#xD;
should be somewhat suspicious. You may have noticed that there was no neutral escrow&#xD;
agent present when you bought the case of beverages at the store for $10 two paragraphs&#xD;
earlier. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The grand canonical example for 2PC transactions is a bank account transfer. You debit&#xD;
one account and credit another. These two operations need to succeed or fail together&#xD;
because otherwise you are either creating or destroying money (which is illegal, by&#xD;
the way). So that’s the example that’s very commonly used to illustrate 2PC transactions.&#xD;
The catch is – that’s not how it really works, at all. Getting money from one bank&#xD;
account to another bank account is a fairly complicated affair that touches a ton&#xD;
of other accounts. More importantly, it’s not a synchronous fail-together/success-together&#xD;
scenario. Instead, principles of accounting apply (surprise!). When a transfer is&#xD;
initiated, let’s say in online banking, the transfer is recorded in form of a message&#xD;
for submission into the accounting system and the debit is recorded in the account&#xD;
as a ‘pending’ transaction that affects the displayed balance. From the user’s perspective,&#xD;
the transaction is ’done’, but factually nothing has happened, yet. Eventually, the&#xD;
accounting system will get the message and start performing the transfer, which often&#xD;
causes a cascade of operations, many of them yielding further messages, including&#xD;
booking into clearing accounts and notifying the other bank of the transfer. The principle&#xD;
here is that all progress is forward. If an operation doesn’t work for some technical&#xD;
reason it can be retried once the technical reason is resolved. If operation fails&#xD;
for a business reason, the operation can be aborted – but not by annihilating previous&#xD;
work, but by doing the inverse of previous work. If an account was credited, that&#xD;
credit is annulled with a debit of the same amount. For some types of failed transactions, &#xD;
the ‘inverse’ operation may not be fully symmetric but may result in extra actions&#xD;
like imposing penalty fees. In fact, in accounting, annihilating any work is illegal&#xD;
– ‘delete’ and ‘update’ are a great way to end up in prison. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
As all the operations occur that eventually lead to the completion or failure of the&#xD;
grand complex operation that is a bank transfer, the one thing we’ll be looking to&#xD;
avoid is to be in any kind of ‘doubt’ of the state of the system. All participants&#xD;
must be able to have a great degree of confidence in their knowledge about the success&#xD;
or failure of their respective action. No shots into the dark. There’s no maybe. Succeed&#xD;
or fail. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
That said, “fail” is a funny thing is distributed systems because it happens quite&#xD;
a bit. In many cases “fail” isn’t something that a bit of patience can’t fix. Which&#xD;
means that teaching the system some patience and tenacity is probably a good idea&#xD;
instead of giving up too easily. So if an operation fails because it runs into a database&#xD;
deadlock or the database is offline or the network is down or the local machine’s&#xD;
network adapter just got electrocuted that’s all not necessarily a reason to fail&#xD;
the operation. That’s a reason to write an alert into a log and call for help for&#xD;
someone to fix the environment condition. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
If we zoom into an ‘operation’ here, we might see a message that we retrieve from&#xD;
some sort of reliable queue or some other kind of message store and subsequently an&#xD;
update of system state based on message. Once the state has been successfully updated,&#xD;
which may mean that we’ve inserted a new database record, we can tell the message&#xD;
system that the message has been processed and that it can be discarded. That’s the&#xD;
happy case. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Let’s say we take the message and as the process wants to walk up the database the&#xD;
power shuts off. Click. Darkness. Not a problem. Assuming the messaging system supports&#xD;
a ‘peek/lock’ model that allows the process to first take the message and only remove&#xD;
it from the queue once processing has been completed, the message will reappear on&#xD;
the queue after the lock has expired and the operation can be retried, possibly on&#xD;
a different node. That model holds true for all failures of the operation through&#xD;
to and in the database. If the operation fails due to some transient condition (including&#xD;
the network card smoking out, see above), the message is either explicitly abandoned&#xD;
by the process or returns into the queue by ways of a lock timeout.  If the operation&#xD;
fails because something is really logically wrong, like trying to ship a product out&#xD;
of the inventory that’s factually out of stock, we’ll have to take some forward action&#xD;
to deal with that. We’ll get to that in a bit. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Assuming the operation succeeded, the next tricky waypoint is failure after success,&#xD;
meaning that the database operation succeeded, but the message subsequently can’t&#xD;
be flagged as completed and thus can’t be removed from the queue. That situation would&#xD;
potentially lead to another delivery of the message even though the job has already&#xD;
been completed and therefore would cause the job to be executed again – which is only&#xD;
a problem if the system isn’t expecting that, or, in fancier terms, if it’s not ‘idempotent’.&#xD;
If the job is updating a record to absolute values and the particular process/module/procedure&#xD;
is the only avenue to perform that update (meaning there are no competing writers&#xD;
elsewhere), doing that update again and again and again is just fine. That’s natural&#xD;
idempotency. If the job is inserting a record, the job should contain enough information,&#xD;
such as a causality or case or logical transaction identifier that allows the process&#xD;
to figure out whether the desired record has already been inserted and if that’s the&#xD;
case it should do nothing, consider its own action a duplicate and just act as if&#xD;
it succeeded. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Checkpoint: With what I said in the last two paragraphs, you can establish pretty&#xD;
good confidence about failure or success of individual operations that are driven&#xD;
by messages. You fail and retry, you fail and take forward action, or you succeed&#xD;
and take steps to avoid retrying even if the system presents the same job again. There’s&#xD;
very little room for doubt. So that’s good.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The ‘forward action’ that results from failure is often referred to as ‘compensation’,&#xD;
but that’s a bit simplistic. The forward action resulting from running into the warehouse&#xD;
with the belief that there’s still product present while the shelf is factually empty&#xD;
isn’t to back out and cancel the order (unless you’re doing a firesale of a touch&#xD;
tablet your management just killed). Instead, you notify the customer of the shipping&#xD;
delay, flag a correction of the inventory levels, and put the item on backorder. For&#xD;
the most part, pure ‘compensation’ doesn’t really exist. With every action, the system&#xD;
ends up in a consistent state. It’s just that some states are more convenient than&#xD;
others and there are some state for which the system has a good answer and some states&#xD;
for which it doesn’t. If the system ends up in a dead end street and just wants to&#xD;
sit down and cry because nobody told it what to do now, it should phone home and ask&#xD;
for human intervention. That’s fine and likely a wise strategy in weird edge cases. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Initiating the ‘forward action’ and, really, any action in a system that’s using messaging&#xD;
as its lifeline and as a backplane for failure resilience as I’m describing it here&#xD;
is not entirely without failure risk in itself. It’s possible that you want to initiate&#xD;
an action and can’t reach the messaging system or sending the message fails for some&#xD;
other reason. Here again, patience and tenacity are a good idea. If we can’t send,&#xD;
our overall operation is considered failed and we won’t flag the initiating message&#xD;
as completed. That will cause the job to show up again, but since we’ve got idempotency&#xD;
in the database that operation will again succeed (even if by playing dead) or fail&#xD;
and we will have the same outcome allowing us to retry the send. If it looks like&#xD;
we can send but sending fails sometime during the operation, there might be doubt&#xD;
about whether we sent the message. Since doubt is a problem and we shouldn’t send&#xD;
the same message twice, duplicate detection in the messaging system can help suppressing&#xD;
a duplicate so that it never shows up at the receiver. That allows the sender to confidently&#xD;
resend if it’s in doubt about success in a prior incarnation of processing the same&#xD;
message.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Checkpoint: We now also can establish pretty good confidence about initiating forward&#xD;
action or any other action in the system given if the ‘current’ action is following&#xD;
the principles described above.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
So far I’ve talked about individual actions and also about chains of actions, albeit&#xD;
just in the failure case. Obviously the same applies to success cases where you want&#xD;
to do something ‘next’ once you’re done with ‘this’. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Now let’s assume you want to do multiple things in parallel, like updating multiple&#xD;
stores as part of executing a single job – which gets us back to the distributed transaction&#xD;
scenario discussed earlier. What helps in these cases is if the messaging system supports&#xD;
‘topics’ that allow dropping a message (the job) into the messaging system once and&#xD;
serve the message to each participant in the composite activity via their own subscription&#xD;
on the topic. Since the messaging system is internally transactional it will guarantee&#xD;
that each message that is successfully submitted will indeed appear on each subscription&#xD;
so it ensures the distribution. With that, the failure handling story for each slice&#xD;
of the composite job turns into the same model that I’ve been explaining above. Each&#xD;
participant can be patient and tenacious when it comes to transient error conditions.&#xD;
In hard failure cases, the forward action can be a notification to the initiator that&#xD;
will then have to decide how to progress forward, including annulling or otherwise&#xD;
invoking forward actions activities that have been executed in parallel. In the aforementioned&#xD;
case of a ticketing failure that means that the ticketing module throws its hands&#xD;
up and the module responsible for booking the travel package either decides to bubble&#xD;
the case to the customer or an operator leaving the remaining reservations intact&#xD;
or to cancel the reservations for the car and the hotel that have been made in parallel.&#xD;
Should two out of three or more participants’ operations fail and each report up to&#xD;
the initiator, the initiator can either keep track of whether it already took corrective&#xD;
forward action on the third participant or, in doubt, the idempotency rule should&#xD;
avoid doing the same thing twice.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The model described here is loosely based on the notion of ‘Sagas’, which were first&#xD;
described in a 1987 ACM paper by Hector Garcia-Molina and Kenneth Salem, so this isn’t&#xD;
grand news. However, the notion of such Sagas is only now really gaining momentum&#xD;
with long-running and far distributed transactions becoming more commonplace, so it’s&#xD;
well worth to drag the model further out into the limelight and give it coverage.&#xD;
The original paper on Sagas is still assuming that the individual steps can be encapsulated&#xD;
in a regular transaction, which may not even be the case in the cloud and with infrastructures&#xD;
that don’t have inherent transaction support. The role of the messaging system with&#xD;
the capabilities mentioned above is to help compensate for the absence of that support. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
… to be continued …&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=b2e9e279-8ab3-4126-905a-25650c57a468"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/clemensv?a=QMq1ig_GCMg:QE4K8-jDQTk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/clemensv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/clemensv?a=QMq1ig_GCMg:QE4K8-jDQTk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/clemensv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/clemensv/~4/QMq1ig_GCMg" height="1" width="1"/&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,b2e9e279-8ab3-4126-905a-25650c57a468.aspx</comments>
      <category>Architecture</category>
      <category>Architecture/SOA</category>
    <feedburner:origLink>http://vasters.com/clemensv/2011/10/06/Achieving+Transactional+Behavior+With+Messaging.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=c9910112-9c07-439d-a40c-39dcf308f230</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,c9910112-9c07-439d-a40c-39dcf308f230.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,c9910112-9c07-439d-a40c-39dcf308f230.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=c9910112-9c07-439d-a40c-39dcf308f230</wfw:commentRss>
      <slash:comments>3</slash:comments>
      
      <title>The Three Kinds of Reorgs</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,c9910112-9c07-439d-a40c-39dcf308f230.aspx</guid>
      <link>http://feedproxy.google.com/~r/clemensv/~3/FefgzQ0LPgI/The+Three+Kinds+Of+Reorgs.aspx</link>
      <pubDate>Fri, 30 Sep 2011 01:48:39 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Reshuffling the deck is inevitable form time to time in any big company as projects&#xD;
and strategies shift – Reorg time!&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I’ve so far identified three kinds. Let me describe them with an analogy:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Picture yourself on a patch of land in the middle of nowadays Germany in the early&#xD;
1800s …&#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
… you sit there, watching you potatoes grow and in the distance you see a big dust&#xD;
cloud with people and horses and wagons and weapons moving from West to East. Two&#xD;
months later, someone knocks on your door and says – in French – “I want your taxes!”&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
… you sit there, watching your potatoes grow and a big dust cloud with people and&#xD;
horses and wagons and weapons moving from West to East moves right over your field&#xD;
– and the potatoes are gone. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
… you sit there, watching your potatoes grow and a big dust cloud a big dust cloud&#xD;
with people and horses and wagons and weapons approaches from the West – and a similar&#xD;
looking one from the East (!!!) and you end up dead.&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=c9910112-9c07-439d-a40c-39dcf308f230"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/clemensv?a=FefgzQ0LPgI:ZSab-iZm9Po:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/clemensv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/clemensv?a=FefgzQ0LPgI:ZSab-iZm9Po:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/clemensv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/clemensv/~4/FefgzQ0LPgI" height="1" width="1"/&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,c9910112-9c07-439d-a40c-39dcf308f230.aspx</comments>
    <feedburner:origLink>http://vasters.com/clemensv/2011/09/30/The+Three+Kinds+Of+Reorgs.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=bb1fc000-b441-445b-8909-104bd754f60d</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,bb1fc000-b441-445b-8909-104bd754f60d.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,bb1fc000-b441-445b-8909-104bd754f60d.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=bb1fc000-b441-445b-8909-104bd754f60d</wfw:commentRss>
      
      <title>Service Bus Relay Load Balancing&amp;ndash;The Missing Feature (But Not For Much Longer!)</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,bb1fc000-b441-445b-8909-104bd754f60d.aspx</guid>
      <link>http://feedproxy.google.com/~r/clemensv/~3/7ZBwu6QqZ5c/Service+Bus+Relay+Load+BalancingndashThe+Missing+Feature+But+Not+For+Much+Longer.aspx</link>
      <pubDate>Tue, 20 Sep 2011 23:54:10 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Load Balancing on the Service Bus Relay is by far our #1 most requested feature now&#xD;
that we’ve got Queues and Topics finally in production. It’s reasonable expectation&#xD;
for us deliver that capability in one of the next production updates and the good&#xD;
news is that we will. I’m not going to promise any concrete ship dates here, but it’d&#xD;
be sorely disappointing if that wouldn’t happen while the calendar still says 2011. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I just completed writing the functional spec for the feature and it’s worth communicating&#xD;
how the feature will show up, since there is a tiny chance that the behavioral change&#xD;
may affect implementations that rely on a particular exception to drive the strategy&#xD;
of how to perform failover. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The gist of the Load Balancing spec is that the required changes in your code and&#xD;
config to get load balancing are zero. With either the NetTcpRelayBinding or any of&#xD;
the HTTP bindings (WebHttpRelayBinding, etc) as well as the underlying transport binding&#xD;
elements, you’ll just open up a second (and third and fourth … up to 25) listener&#xD;
on the same name and instead of getting an AddressAlreadyInUseException as you get&#xD;
today, you’ll just get automatic load balancing. When a request for your endpoints&#xD;
shows up at Service Bus, the system will roll the dice on which of the connected listeners&#xD;
to route the request or connection/session to and perform the necessary handshake&#xD;
to make that happen.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The bottom line is that we’re effectively making the AddressAlreadyInUseException&#xD;
go away for the most part. It’ll still be thrown when the listener’s policy settings&#xD;
don’t match up, i.e. when one listener wants to have Access Control enabled and the&#xD;
other one doesn’t, but otherwise you’ll just won’t see it anymore. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The only way this way of just lighting up the feature may get anyone in trouble is&#xD;
if your application were to rely on that exception in a situation where you’ve got&#xD;
an active listener on Service Bus on one node and a ‘standby’ listener on another&#xD;
node that keeps trying to open up a listener into the same address to create a hot/warm&#xD;
cluster failover scheme &lt;em&gt;and&lt;/em&gt; if the two nodes were tripping over each other&#xD;
if they were getting traffic concurrently. That doesn’t seem too likely. If you have&#xD;
questions about this drop me a line here in the comments, by email to clemensv at&#xD;
microsoft.com or on Twitter @clemensv.  &#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=bb1fc000-b441-445b-8909-104bd754f60d"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/clemensv?a=7ZBwu6QqZ5c:2j0Z7vqWFEI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/clemensv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/clemensv?a=7ZBwu6QqZ5c:2j0Z7vqWFEI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/clemensv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/clemensv/~4/7ZBwu6QqZ5c" height="1" width="1"/&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,bb1fc000-b441-445b-8909-104bd754f60d.aspx</comments>
      <category>.NET Services</category>
      <category>AppFabric</category>
      <category>Architecture</category>
    <feedburner:origLink>http://vasters.com/clemensv/2011/09/20/Service+Bus+Relay+Load+BalancingndashThe+Missing+Feature+But+Not+For+Much+Longer.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=13a56656-e8f4-4154-8cf9-cf2480536389</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,13a56656-e8f4-4154-8cf9-cf2480536389.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,13a56656-e8f4-4154-8cf9-cf2480536389.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=13a56656-e8f4-4154-8cf9-cf2480536389</wfw:commentRss>
      
      <title>Securing Service Bus with the Access Control Service</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,13a56656-e8f4-4154-8cf9-cf2480536389.aspx</guid>
      <link>http://feedproxy.google.com/~r/clemensv/~3/Uy9aPlSiXIk/Securing+Service+Bus+With+The+Access+Control+Service.aspx</link>
      <pubDate>Mon, 19 Sep 2011 19:00:29 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
This session explains how to secure Service Bus using the Access Control Service.&#xD;
This is also an extension session for &lt;a href="http://channel9.msdn.com/Events/BUILD/BUILD2011/SAC-862T"&gt;my&#xD;
session at BUILD&lt;/a&gt;, but watching the BUILD session is not a strict prerequisite.&#xD;
&lt;/p&gt;&#xD;
        &lt;iframe style="WIDTH: 512px; HEIGHT: 288px" src="http://channel9.msdn.com/posts/Securing-Service-Bus-with-ACS/player?w=512&amp;amp;h=288" frameborder="0" scrolling="no"&gt;&#xD;
        &lt;/iframe&gt;&#xD;
        &lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=13a56656-e8f4-4154-8cf9-cf2480536389"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/clemensv?a=Uy9aPlSiXIk:vAsKrZOuTCE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/clemensv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/clemensv?a=Uy9aPlSiXIk:vAsKrZOuTCE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/clemensv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/clemensv/~4/Uy9aPlSiXIk" height="1" width="1"/&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,13a56656-e8f4-4154-8cf9-cf2480536389.aspx</comments>
      <category>.NET Services</category>
      <category>AppFabric</category>
      <category>Azure</category>
      <category>Talks</category>
    <feedburner:origLink>http://vasters.com/clemensv/2011/09/19/Securing+Service+Bus+With+The+Access+Control+Service.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=44c95cba-0951-4f92-96e2-1366b516f72c</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,44c95cba-0951-4f92-96e2-1366b516f72c.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,44c95cba-0951-4f92-96e2-1366b516f72c.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=44c95cba-0951-4f92-96e2-1366b516f72c</wfw:commentRss>
      
      <title>Service Bus Topics and Queues &amp;ndash; Advanced</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,44c95cba-0951-4f92-96e2-1366b516f72c.aspx</guid>
      <link>http://feedproxy.google.com/~r/clemensv/~3/CnnNU26YjmI/Service+Bus+Topics+And+Queues+Ndash+Advanced.aspx</link>
      <pubDate>Mon, 19 Sep 2011 02:15:26 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
This session is a followup to the Service Bus session &lt;a href="http://vasters.com/clemensv/2011/09/16/Building+Looselycoupled+Apps+With+Windows+Azure+Service+Bus+Topics+And+Queues.aspx"&gt;that&#xD;
I did at the build conference&lt;/a&gt; and explains advanced usage patterns:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;iframe style="WIDTH: 512px; HEIGHT: 288px" src="http://channel9.msdn.com/posts/ServiceBusTopicsAndQueues/player?w=512&amp;amp;h=288" frameborder="0" scrolling="no"&gt;&#xD;
          &lt;/iframe&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=44c95cba-0951-4f92-96e2-1366b516f72c"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/clemensv?a=CnnNU26YjmI:AFS8AbitYXE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/clemensv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/clemensv?a=CnnNU26YjmI:AFS8AbitYXE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/clemensv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/clemensv/~4/CnnNU26YjmI" height="1" width="1"/&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,44c95cba-0951-4f92-96e2-1366b516f72c.aspx</comments>
      <category>.NET Services</category>
      <category>AppFabric</category>
      <category>Azure</category>
      <category>Talks</category>
      <category>Technology/MSMQ</category>
      <category>Technology/Web Services</category>
    <feedburner:origLink>http://vasters.com/clemensv/2011/09/19/Service+Bus+Topics+And+Queues+Ndash+Advanced.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=981f28ab-0743-4c34-9130-8811a8d523da</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,981f28ab-0743-4c34-9130-8811a8d523da.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,981f28ab-0743-4c34-9130-8811a8d523da.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=981f28ab-0743-4c34-9130-8811a8d523da</wfw:commentRss>
      
      <title>Building loosely-coupled Apps with Windows Azure Service Bus Topics and Queues</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,981f28ab-0743-4c34-9130-8811a8d523da.aspx</guid>
      <link>http://feedproxy.google.com/~r/clemensv/~3/2lJaXbgwAGs/Building+Looselycoupled+Apps+With+Windows+Azure+Service+Bus+Topics+And+Queues.aspx</link>
      <pubDate>Fri, 16 Sep 2011 14:49:01 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
From //build in Anaheim&#xD;
&lt;/p&gt;&#xD;
        &lt;iframe style="WIDTH: 960px; HEIGHT: 544px" src="http://channel9.msdn.com/Events/BUILD/BUILD2011/SAC-862T/player?w=960&amp;amp;h=544" frameborder="0" scrolling="no"&gt;&#xD;
        &lt;/iframe&gt;&#xD;
        &lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=981f28ab-0743-4c34-9130-8811a8d523da"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/clemensv?a=2lJaXbgwAGs:q7OIvBKj5xA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/clemensv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/clemensv?a=2lJaXbgwAGs:q7OIvBKj5xA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/clemensv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/clemensv/~4/2lJaXbgwAGs" height="1" width="1"/&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,981f28ab-0743-4c34-9130-8811a8d523da.aspx</comments>
      <category>AppFabric</category>
      <category>Architecture</category>
      <category>Architecture/SOA</category>
      <category>Technology/ISB</category>
      <category>Technology/Web Services</category>
    <feedburner:origLink>http://vasters.com/clemensv/2011/09/16/Building+Looselycoupled+Apps+With+Windows+Azure+Service+Bus+Topics+And+Queues.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=38feb196-aee5-413f-96e8-16e6a0823ecb</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,38feb196-aee5-413f-96e8-16e6a0823ecb.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,38feb196-aee5-413f-96e8-16e6a0823ecb.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=38feb196-aee5-413f-96e8-16e6a0823ecb</wfw:commentRss>
      
      <title>Cloud Messaging, Messaging-As-A-Service, Integration-PaaS, Messaging-PaaS, Internet Service Bus?</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,38feb196-aee5-413f-96e8-16e6a0823ecb.aspx</guid>
      <link>http://feedproxy.google.com/~r/clemensv/~3/Kg3piPEXeKs/Cloud+Messaging+MessagingAsAService+IntegrationPaaS+MessagingPaaS+Internet+Service+Bus.aspx</link>
      <pubDate>Sat, 11 Jun 2011 05:23:12 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
There a ton of terms that’s being used for messaging or queues and pub/sub in the&#xD;
cloud. What’s the right one? Who knows? What are you seeing? What terms do you use&#xD;
and prefer? I’m interested in your opinion. Here in the the comments on @clemensv&#xD;
on twitter.&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=38feb196-aee5-413f-96e8-16e6a0823ecb"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/clemensv?a=Kg3piPEXeKs:2uZjKLLzpFQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/clemensv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/clemensv?a=Kg3piPEXeKs:2uZjKLLzpFQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/clemensv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/clemensv/~4/Kg3piPEXeKs" height="1" width="1"/&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,38feb196-aee5-413f-96e8-16e6a0823ecb.aspx</comments>
    <feedburner:origLink>http://vasters.com/clemensv/2011/06/11/Cloud+Messaging+MessagingAsAService+IntegrationPaaS+MessagingPaaS+Internet+Service+Bus.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=d41ef7d0-63cd-42ad-8455-ccfcd40997a6</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,d41ef7d0-63cd-42ad-8455-ccfcd40997a6.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,d41ef7d0-63cd-42ad-8455-ccfcd40997a6.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=d41ef7d0-63cd-42ad-8455-ccfcd40997a6</wfw:commentRss>
      <slash:comments>1</slash:comments>
      
      <title>Understanding Windows Azure AppFabric Queues (and Topics)</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,d41ef7d0-63cd-42ad-8455-ccfcd40997a6.aspx</guid>
      <link>http://feedproxy.google.com/~r/clemensv/~3/t7TKBKqUfTs/Understanding+Windows+Azure+AppFabric+Queues+And+Topics.aspx</link>
      <pubDate>Sat, 11 Jun 2011 01:29:21 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Our team’s Development Manager MK (Murali Krishnaprasad) and me were interviewed by&#xD;
Michael Washam on May 2011 CTP release of Windows Azure AppFabric. We discuss new&#xD;
technologies such as Topics, Queues, Subscriptions and how this relates to doing async&#xD;
development in the cloud.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
 &lt;iframe style="WIDTH: 512px; HEIGHT: 288px" src="http://channel9.msdn.com/Blogs/Server-Side/Understanding-Windows-Azure-AppFabric-Queues/player?w=512&amp;amp;h=288" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Republished from &lt;a href="http://channel9.msdn.com/Blogs/Server-Side/Understanding-Windows-Azure-AppFabric-Queues" target="_blank"&gt;Channel&#xD;
9&lt;/a&gt;&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=d41ef7d0-63cd-42ad-8455-ccfcd40997a6"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/clemensv?a=t7TKBKqUfTs:0VSfTZ0hJW0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/clemensv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/clemensv?a=t7TKBKqUfTs:0VSfTZ0hJW0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/clemensv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/clemensv/~4/t7TKBKqUfTs" height="1" width="1"/&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,d41ef7d0-63cd-42ad-8455-ccfcd40997a6.aspx</comments>
      <category>AppFabric</category>
      <category>Architecture</category>
      <category>Technology/ISB</category>
      <category>Technology/Web Services</category>
    <feedburner:origLink>http://vasters.com/clemensv/2011/06/11/Understanding+Windows+Azure+AppFabric+Queues+And+Topics.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=245eaca1-ec23-4d8e-b9e0-8b0c0e5b438a</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,245eaca1-ec23-4d8e-b9e0-8b0c0e5b438a.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,245eaca1-ec23-4d8e-b9e0-8b0c0e5b438a.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=245eaca1-ec23-4d8e-b9e0-8b0c0e5b438a</wfw:commentRss>
      
      <title>Service Bus May 2011 CTP Client Bits now on NuGet</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,245eaca1-ec23-4d8e-b9e0-8b0c0e5b438a.aspx</guid>
      <link>http://feedproxy.google.com/~r/clemensv/~3/zKdUMCRaW6w/Service+Bus+May+2011+CTP+Client+Bits+Now+On+NuGet.aspx</link>
      <pubDate>Mon, 23 May 2011 13:42:39 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
(This post has been written by my coworker Eric Lam who pulled this all together –&#xD;
he wrote it as an email to the team – I’m just ripping that off) &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
NuGet (&lt;a href="http://www.nuget.org/"&gt;http://www.nuget.org/&lt;/a&gt;) is an open source&#xD;
package manager for .NET started by Microsoft. For some context there is a &lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/DEV338" target="_blank"&gt;really&#xD;
good TechEd talk here&lt;/a&gt;. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
1. Unless you have it (for instance as a side-effect of installing ASP.NET MVC3),&#xD;
get NuGet installed (it’s an VS extension) &lt;a href="http://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c" target="_blank"&gt;from&#xD;
here&lt;/a&gt;  &#xD;
&lt;br&gt;&#xD;
2. Right click on the project you want to add Service bus support to and select “Add&#xD;
Library Package Reference”&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://vasters.com/clemensv/content/binary/Windows-Live-Writer/Service-bus-now-on-NuGet_DB9C/clip_image001_2.jpg"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://vasters.com/clemensv/content/binary/Windows-Live-Writer/Service-bus-now-on-NuGet_DB9C/clip_image001_thumb.jpg" width="280" height="249"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
3. The NuGet manager will show up, and search for “AppFabric”, which will show all&#xD;
our AppFabric packages available right now (note: Cache is there too!)&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://vasters.com/clemensv/content/binary/Windows-Live-Writer/Service-bus-now-on-NuGet_DB9C/clip_image002_4.jpg"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://vasters.com/clemensv/content/binary/Windows-Live-Writer/Service-bus-now-on-NuGet_DB9C/clip_image002_thumb_1.jpg" width="689" height="386"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
4. Click install, and that’s it! The package do a number of things&#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
Copy Microsoft.ServiceBus.dll and Microsoft.ServiceBus.Messaging.dll to your local&#xD;
project directories&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Add the references to your project&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
If you have a App.Config and/or Web.Config, it will add the necessary WCF bindings/extensions&#xD;
for project consumption.&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
Some things to note for the package:&#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
The packages require the projects to use the .Net 4.0 Full Profile (Client profile&#xD;
doesn’t work).&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
For sample code you will need to install it on a C# Console Application project.&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
This is only available for the CTP right now, not yet for the production SDK.&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
Let us know if you have any feedback or comments.&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=245eaca1-ec23-4d8e-b9e0-8b0c0e5b438a"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/clemensv?a=zKdUMCRaW6w:yidj3k2epS4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/clemensv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/clemensv?a=zKdUMCRaW6w:yidj3k2epS4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/clemensv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/clemensv/~4/zKdUMCRaW6w" height="1" width="1"/&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,245eaca1-ec23-4d8e-b9e0-8b0c0e5b438a.aspx</comments>
      <category>AppFabric</category>
    <feedburner:origLink>http://vasters.com/clemensv/2011/05/23/Service+Bus+May+2011+CTP+Client+Bits+Now+On+NuGet.aspx</feedburner:origLink></item>
  </channel>
</rss>

