<?xml version="1.0" encoding="utf-8"?>
<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/" version="2.0">
  <channel>
    <title>Thoughts on Software Development</title>
    <link>http://www.reliablesoftware.com/DasBlog/</link>
    <description>"Publication - is the Auction Of the Mind of Man" Emily Dickinson</description>
    <language>en-us</language>
    <copyright>Reliable Software, Inc.</copyright>
    <lastBuildDate>Sun, 11 Jul 2010 19:49:12 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.8.5223.1</generator>
    <managingEditor>weblogcomments@reliablesoftware.com</managingEditor>
    <webMaster>weblogcomments@reliablesoftware.com</webMaster>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=a6c91fb7-46bb-4e0d-8804-e61838500a80</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,a6c91fb7-46bb-4e0d-8804-e61838500a80.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,a6c91fb7-46bb-4e0d-8804-e61838500a80.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=a6c91fb7-46bb-4e0d-8804-e61838500a80</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Commodity hardware has gotten very cheap. Hence it often makes more economic sense
      to spread the load in the cloud over several cheap, commodity servers, rather than
      one large expensive server. 
   </p>
        <p>
      Microsoft's Azure data pricing makes this very clear. One Gigabyte of SQL Azure costs
      about $10 per month. Azure table storage costs $0.15 per GB per month. 
   </p>
        <p>
      The data transfer costs are the same for both. With Azure table storage you pay $0.01
      for each 10,000 storage transactions. 
   </p>
        <p>
      To break even with the SQL Azure price you can get about 9,850,000 storage transactions
      per month. That is a lot of bandwidth! 
   </p>
        <p>
      Another way to look at the cost is to suppose you need only 2,600,000 storage transactions
      a month (1 a second assuming an equal time distribution over the day). That would
      cost you only $2.60. That means you could store almost 50 GB worth of data. To store
      50 GB worth of data in SQL Azure would cost about $500 / month. 
   </p>
        <p>
      If you don't need the relational model, it is a lot cheaper to use table or blob storage. 
   </p>
        <img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=a6c91fb7-46bb-4e0d-8804-e61838500a80" />
      </body>
      <title>Scaling Up vs. Scaling Out</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,a6c91fb7-46bb-4e0d-8804-e61838500a80.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,a6c91fb7-46bb-4e0d-8804-e61838500a80.aspx</link>
      <pubDate>Sun, 11 Jul 2010 19:49:12 GMT</pubDate>
      <description>&lt;p&gt;
   Commodity hardware has gotten very cheap. Hence it often makes more economic sense
   to spread the load in the cloud over several cheap, commodity servers, rather than
   one large expensive server. 
&lt;/p&gt;
&lt;p&gt;
   Microsoft's Azure data pricing makes this very clear. One Gigabyte of SQL Azure costs
   about $10 per month. Azure table storage costs $0.15 per GB per month. 
&lt;/p&gt;
&lt;p&gt;
   The data transfer costs are the same for both. With Azure table storage you pay $0.01
   for each 10,000 storage transactions. 
&lt;/p&gt;
&lt;p&gt;
   To break even with the SQL Azure price you can get about 9,850,000 storage transactions
   per month. That is a lot of bandwidth! 
&lt;/p&gt;
&lt;p&gt;
   Another way to look at the cost is to suppose you need only 2,600,000 storage transactions
   a month (1 a second assuming an equal time distribution over the day). That would
   cost you only $2.60. That means you could store almost 50 GB worth of data. To store
   50 GB worth of data in SQL Azure would cost about $500 / month. 
&lt;/p&gt;
&lt;p&gt;
   If you don't need the relational model, it is a lot cheaper to use table or blob storage. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=a6c91fb7-46bb-4e0d-8804-e61838500a80" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,a6c91fb7-46bb-4e0d-8804-e61838500a80.aspx</comments>
      <category>All;Cloud Computing;Microsoft .NET;SOA;Software Development</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=e03414c3-c0ff-44ea-b6f9-6aefce2887ea</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,e03414c3-c0ff-44ea-b6f9-6aefce2887ea.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,e03414c3-c0ff-44ea-b6f9-6aefce2887ea.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=e03414c3-c0ff-44ea-b6f9-6aefce2887ea</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Arial"> One way to approach the different architectural
      implications is to look at the various vendor offering and see how they match to the
      various application types. 
      <br /><br />
      You can divide the cloud vendors into four categories, although one vendor might have
      offerings in more than one category: 
      <br /><br />
      Platform as a Service providers 
      <br />
      Software as a Service providers 
      <br />
      Application as a Service providers 
      <br />
      Cloud Appliance Vendors 
      <br /><br />
      The Platform as a Service providers attempt to provide a cloud operating system for
      users to build an application on. An operating system serves two basic functions:
      it abstracts the underlying hardware and manages the platform resources for each process
      or user. Google App Engine, Amazon EC2, Microsoft Azure, and Force.com are examples
      of platform providers. 
      <br /><br />
      The most restrictive platform is the Google App Engine because you program to the
      Google API which makes it difficult to port to another platform. One the other hand,
      precisely because you program to a specific API, Google can scale your application
      and provide recovery for a failed application. 
      <br /><br />
      At the other extreme is Amazon. Amazon gives you a virtual machine which with you
      can program directly against the native OS installed on the virtual machine. This
      freedom comes with a price. Since the Amazon virtual machine has no knowledge about
      the application you are running, it cannot provide recovery or scaling for you. You
      are responsible for doing that. You can use third party software, but that is just
      a means of fulfilling your responsibility. 
      <br /><br />
      Microsoft tries to achieve a balance between these two approaches. By using .NET you
      have a greater degree of portability than the Google API. You could move your application
      to an Amazon VM or even your own servers. By using metadata to describe your application
      to the cloud fabric, the Azure infrastructure can provide recovery and scalability. 
      <br /><br />
      The first architectural dimension (ignoring for a moment the relative econonmics which
      will be explored in another post) then is how much responsibility you want to take
      for scaling and recovery vs. the degrees of programming freedom you want to have.
      Of course the choice between the Google API and Microsoft Azure might come down to
      the skill set of your developers, but in my opinion, for any significant application,
      the architectural implications of the platform choice should be the more important
      factor. 
      </font>
        </p>
        <img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=e03414c3-c0ff-44ea-b6f9-6aefce2887ea" />
      </body>
      <title> Why should you consider Cloud Computing? : Part 3</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,e03414c3-c0ff-44ea-b6f9-6aefce2887ea.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,e03414c3-c0ff-44ea-b6f9-6aefce2887ea.aspx</link>
      <pubDate>Sun, 27 Dec 2009 16:05:16 GMT</pubDate>
      <description>&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Arial"&gt; One way to approach the different architectural
   implications is to look at the various vendor offering and see how they match to the
   various application types. 
   &lt;br&gt;
   &lt;br&gt;
   You can divide the cloud vendors into four categories, although one vendor might have
   offerings in more than one category: 
   &lt;br&gt;
   &lt;br&gt;
   Platform as a Service providers 
   &lt;br&gt;
   Software as a Service providers 
   &lt;br&gt;
   Application as a Service providers 
   &lt;br&gt;
   Cloud Appliance Vendors 
   &lt;br&gt;
   &lt;br&gt;
   The Platform as a Service providers attempt to provide a cloud operating system for
   users to build an application on. An operating system serves two basic functions:
   it abstracts the underlying hardware and manages the platform resources for each process
   or user. Google App Engine, Amazon EC2, Microsoft Azure, and Force.com are examples
   of platform providers. 
   &lt;br&gt;
   &lt;br&gt;
   The most restrictive platform is the Google App Engine because you program to the
   Google API which makes it difficult to port to another platform. One the other hand,
   precisely because you program to a specific API, Google can scale your application
   and provide recovery for a failed application. 
   &lt;br&gt;
   &lt;br&gt;
   At the other extreme is Amazon. Amazon gives you a virtual machine which with you
   can program directly against the native OS installed on the virtual machine. This
   freedom comes with a price. Since the Amazon virtual machine has no knowledge about
   the application you are running, it cannot provide recovery or scaling for you. You
   are responsible for doing that. You can use third party software, but that is just
   a means of fulfilling your responsibility. 
   &lt;br&gt;
   &lt;br&gt;
   Microsoft tries to achieve a balance between these two approaches. By using .NET you
   have a greater degree of portability than the Google API. You could move your application
   to an Amazon VM or even your own servers. By using metadata to describe your application
   to the cloud fabric, the Azure infrastructure can provide recovery and scalability. 
   &lt;br&gt;
   &lt;br&gt;
   The first architectural dimension (ignoring for a moment the relative econonmics which
   will be explored in another post) then is how much responsibility you want to take
   for scaling and recovery vs. the degrees of programming freedom you want to have.
   Of course the choice between the Google API and Microsoft Azure might come down to
   the skill set of your developers, but in my opinion, for any significant application,
   the architectural implications of the platform choice should be the more important
   factor. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=e03414c3-c0ff-44ea-b6f9-6aefce2887ea" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,e03414c3-c0ff-44ea-b6f9-6aefce2887ea.aspx</comments>
      <category>All;Cloud Computing;Microsoft .NET;SOA</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=15ba5ed6-632f-4cab-8651-b1e0f1c40b21</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,15ba5ed6-632f-4cab-8651-b1e0f1c40b21.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,15ba5ed6-632f-4cab-8651-b1e0f1c40b21.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=15ba5ed6-632f-4cab-8651-b1e0f1c40b21</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <br />
        <img src="http://www.reliablesoftware.com/DasBlog/content/binary/arccast.bmp" border="0" />
        <br />
        <br />
        <font color="#000000" size="4">
          <b>ARCast.TV Special - Michael Stiefel on Cloud Computing
   is for Small Companies Too</b>
        </font>
        <br />
        <br />
        <font color="#000000" size="2" face="Arial"> Here is an interview that I did at last
   year's TechEd where I discuss why cloud computing is for small companies and divisions
   of large companies as well as the enterprise. In fact, there may be more immediate
   opportunites for cloud computing in small companies than in the enterprise. 
   <br /></font>
        <br />
        <font face="Arial"> Technorati Tags: <a href="http://technorati.com/tags/ARCast" rel="tag" mce_href="http://technorati.com/tags/ARCast">ARCast</a>,<a href="http://technorati.com/tags/Architects" rel="tag" mce_href="http://technorati.com/tags/Architects">Architects</a>,<a href="http://technorati.com/tags/Architecture" rel="tag" mce_href="http://technorati.com/tags/Architecture">Architecture</a>,<a href="http://technorati.com/tags/Cloud+Architecture" rel="tag" mce_href="http://technorati.com/tags/Cloud+Architecture">Cloud
   Architecture</a>,<a href="http://technorati.com/tags/Cloud+Computing" rel="tag" mce_href="http://technorati.com/tags/Cloud+Computing">Cloud
   Computing</a>,<a href="http://technorati.com/tags/Cloud+Patterns" rel="tag" mce_href="http://technorati.com/tags/Cloud+Patterns">Cloud
   Patterns</a>,<a href="http://technorati.com/tags/Cloud+Services" rel="tag" mce_href="http://technorati.com/tags/Cloud+Services">Cloud
   Services</a>,<a href="http://technorati.com/tags/Windows+Azure" rel="tag" mce_href="http://technorati.com/tags/Windows+Azure">Windows
   Azure</a>,<a href="http://technorati.com/tags/Thought+Leadershipt+Leadership" rel="tag" mce_href="http://technorati.com/tags/Thought+Leadershipt+Leadership">Thought
   Leadership Leadership 
   </a></font>
        <br />
        <br />
        <br />
        <br />
        <table>
          <tbody>
            <tr>
              <td>
                <p>
                  <iframe height="325" src="http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Cloud-Computing-is-for-Small-Companies-Too//player" frameborder="0" width="320" scrolling="no" mce_src="http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Cloud-Computing-is-for-Small-Companies-Too/">
                  </iframe>
                </p>
                <br />
                <a target="_blank" href="http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Cloud-Computing-is-for-Small-Companies-Too/">ARCast.TV
               - Cloud Computing is for Small Companies Too"</a>
              </td>
            </tr>
          </tbody>
        </table>
        <div>
          <script type="text/javascript">
digg_url = 'http://blogs.msdn.com/innov8showcase/archive/2009/11/22/arcast-tv-cloud-computing-is-for-small-companies-too.aspx';
</script>
          <script src="http://digg.com/tools/diggthis.js" type="text/javascript">
          </script>
          <div class="shoutIt">
            <a rev="vote-for" href="http://dotnetshoutout.com/Submit?url=http://blogs.msdn.com/innov8showcase/archive/2009/11/22/arcast-tv-cloud-computing-is-for-small-companies-too.aspx">
              <img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.msdn.com/innov8showcase/archive/2009/11/22/arcast-tv-cloud-computing-is-for-small-companies-too.aspx" style="border:0px" />
            </a>
            <div>
              <a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.msdn.com%2finnov8showcase%2farchive%2f2009%2f11%2f22%2farcast-tv-cloud-computing-is-for-small-companies-too.aspx">
                <img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.msdn.com%2finnov8showcase%2farchive%2f2009%2f11%2f22%2farcast-tv-cloud-computing-is-for-small-companies-too.aspx" border="0" alt="kick it on DotNetKicks.com" />
              </a>
            </div>
            <img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=15ba5ed6-632f-4cab-8651-b1e0f1c40b21" />
          </div>
        </div>
      </body>
      <title>Cloud Computing is For Small Companies Too</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,15ba5ed6-632f-4cab-8651-b1e0f1c40b21.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,15ba5ed6-632f-4cab-8651-b1e0f1c40b21.aspx</link>
      <pubDate>Fri, 25 Dec 2009 02:22:24 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;br&gt;
&lt;img src="http://www.reliablesoftware.com/DasBlog/content/binary/arccast.bmp" border="0"&gt;
&lt;br&gt;
&lt;br&gt;
&lt;font color="#000000" size="4"&gt;&lt;b&gt;ARCast.TV Special - Michael Stiefel on Cloud Computing
is for Small Companies Too&lt;/b&gt;&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
&lt;font color="#000000" size="2" face="Arial"&gt; Here is an interview that I did at last
year's TechEd where I discuss why cloud computing is for small companies and divisions
of large companies as well as the enterprise. In fact, there may be more immediate
opportunites for cloud computing in small companies than in the enterprise. 
&lt;br&gt;
&lt;/font&gt;
&lt;br&gt;
&lt;font face="Arial"&gt; Technorati Tags: &lt;a href="http://technorati.com/tags/ARCast" rel=tag mce_href="http://technorati.com/tags/ARCast"&gt;ARCast&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Architects" rel=tag mce_href="http://technorati.com/tags/Architects"&gt;Architects&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Architecture" rel=tag mce_href="http://technorati.com/tags/Architecture"&gt;Architecture&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Cloud+Architecture" rel=tag mce_href="http://technorati.com/tags/Cloud+Architecture"&gt;Cloud
Architecture&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Cloud+Computing" rel=tag mce_href="http://technorati.com/tags/Cloud+Computing"&gt;Cloud
Computing&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Cloud+Patterns" rel=tag mce_href="http://technorati.com/tags/Cloud+Patterns"&gt;Cloud
Patterns&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Cloud+Services" rel=tag mce_href="http://technorati.com/tags/Cloud+Services"&gt;Cloud
Services&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+Azure" rel=tag mce_href="http://technorati.com/tags/Windows+Azure"&gt;Windows
Azure&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Thought+Leadershipt+Leadership" rel=tag mce_href="http://technorati.com/tags/Thought+Leadershipt+Leadership"&gt;Thought
Leadership Leadership 
&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;table&gt;
   &lt;tbody&gt;
      &lt;tr&gt;
         &lt;td&gt;
            &lt;p&gt;
               &lt;iframe height="325" src="http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Cloud-Computing-is-for-Small-Companies-Too//player" frameborder="0" width="320" scrolling="no" mce_src="http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Cloud-Computing-is-for-Small-Companies-Too/"&gt;
               &lt;/iframe&gt;
            &lt;/p&gt;
            &lt;br /&gt;
            &lt;a target="_blank" href="http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Cloud-Computing-is-for-Small-Companies-Too/"&gt;ARCast.TV
            - Cloud Computing is for Small Companies Too"&lt;/a&gt; 
         &lt;/td&gt;
      &lt;/tr&gt;
   &lt;/tbody&gt;
&lt;/table&gt;
&lt;div&gt;
   &lt;script type="text/javascript"&gt;
digg_url = 'http://blogs.msdn.com/innov8showcase/archive/2009/11/22/arcast-tv-cloud-computing-is-for-small-companies-too.aspx';
&lt;/script&gt;
   &lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;
   &lt;div class="shoutIt"&gt;
      &lt;a rev="vote-for" href="http://dotnetshoutout.com/Submit?url=http://blogs.msdn.com/innov8showcase/archive/2009/11/22/arcast-tv-cloud-computing-is-for-small-companies-too.aspx"&gt; &lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.msdn.com/innov8showcase/archive/2009/11/22/arcast-tv-cloud-computing-is-for-small-companies-too.aspx" style="border:0px" /&gt; &lt;/a&gt; 
      &lt;div&gt;
         &lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.msdn.com%2finnov8showcase%2farchive%2f2009%2f11%2f22%2farcast-tv-cloud-computing-is-for-small-companies-too.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.msdn.com%2finnov8showcase%2farchive%2f2009%2f11%2f22%2farcast-tv-cloud-computing-is-for-small-companies-too.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt; 
      &lt;/div&gt;
      &lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=15ba5ed6-632f-4cab-8651-b1e0f1c40b21" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,15ba5ed6-632f-4cab-8651-b1e0f1c40b21.aspx</comments>
      <category>Cloud Computing;SOA;Software Development</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=f2dd8b67-8f64-4f26-9ea9-96a964451128</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,f2dd8b67-8f64-4f26-9ea9-96a964451128.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,f2dd8b67-8f64-4f26-9ea9-96a964451128.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=f2dd8b67-8f64-4f26-9ea9-96a964451128</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Arial">One of my clients, ITNAmerica has become
      a <a target="_blank" href="http://www.microsoft.com/business/success/?StoryID=290">Microsoft
      case study for the idea of software + services</a>. The idea behind software + services
      is that software should run where ever it makes sense: in the cloud, on the desktop,
      or on a mobile device, not just in a thin client such as a browser.</font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Arial"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Arial">Latency, bandwidth limits, and the need
      for software to<span style="">  </span>work if the connection to the cloud disappears
      makes this a logical approach.<span style="">  </span>Anybody who has tried to
      get a cell phone signal should understand the issues about continual connectivity.</font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Arial"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Arial">Curt Devlin, a Microsoft evangelist, <a target="_blank" href="http://blogs.msdn.com/curtd/default.aspx">demonstrates
      another reason</a> why this approach makes sense. It makes the transition to a cloud
      provider such as Azure much simpler. </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Arial"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Arial">If you want some further ideas on how
      to take a software + services application to a cloud platform. Check out my recent <a href="http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Special-Michael-Stiefel-on-Software-as-a-Service-in-the-Cloud/">ARCast </a>on
      "Software + Services in the Cloud."</font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
       
   </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
       
   </p>
        <p>
        </p>
        <img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=f2dd8b67-8f64-4f26-9ea9-96a964451128" />
      </body>
      <title>The Road to Azure</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,f2dd8b67-8f64-4f26-9ea9-96a964451128.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,f2dd8b67-8f64-4f26-9ea9-96a964451128.aspx</link>
      <pubDate>Thu, 05 Nov 2009 17:23:41 GMT</pubDate>
      <description>
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Arial"&gt;One of my clients, ITNAmerica has become
   a &lt;a target="_blank" href="http://www.microsoft.com/business/success/?StoryID=290"&gt;Microsoft
   case study for the idea of software + services&lt;/a&gt;. The idea behind software + services
   is that software should run where ever it makes sense: in the cloud, on the desktop,
   or on a mobile device, not just in a thin client such as a browser.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Arial"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Arial"&gt;Latency, bandwidth limits, and the need
   for software to&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;work if the connection to the cloud disappears
   makes this a logical approach.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;Anybody who has tried to
   get a cell phone signal should understand the issues about continual connectivity.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Arial"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Arial"&gt;Curt Devlin, a Microsoft evangelist, &lt;a target="_blank" href="http://blogs.msdn.com/curtd/default.aspx"&gt;demonstrates
   another reason&lt;/a&gt; why this approach makes sense. It makes the transition to a cloud
   provider such as Azure much simpler. &lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Arial"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Arial"&gt;If you want some further ideas on how
   to take a software + services application to a cloud platform. Check out my recent &lt;a href="http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Special-Michael-Stiefel-on-Software-as-a-Service-in-the-Cloud/"&gt;ARCast &lt;/a&gt;on
   "Software + Services in the Cloud."&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=f2dd8b67-8f64-4f26-9ea9-96a964451128" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,f2dd8b67-8f64-4f26-9ea9-96a964451128.aspx</comments>
      <category>All;Cloud Computing;SOA;Software Development</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=4861cdfb-8680-435e-87b9-914c48c808a6</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,4861cdfb-8680-435e-87b9-914c48c808a6.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,4861cdfb-8680-435e-87b9-914c48c808a6.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=4861cdfb-8680-435e-87b9-914c48c808a6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <br />
        <img src="http://www.reliablesoftware.com/DasBlog/content/binary/ArchitectinnovationCafe.bmp" border="0" />
        <br />
        <br />
        <font color="#000000" size="4">
          <b>ARCast.TV Special - Michael Stiefel on Software
   as a Service in the Cloud </b>
        </font>
        <br />
        <br />
        <font color="#000000" size="2" face="Arial">The Architecture Innovation Cafe presents
   my <a target="_blank" href="http://bit.ly/2bp2FM">discussion of Software as a Service
   in the Cloud</a>, I discuss how architecting and building a software as a service
   application requires solving a series of problems that are independent of a particular
   software platform. I focus on three areas of designing and building the application
   that you can leverage on new platforms such as Microsoft Azure.<br /></font>
        <br />
        <font face="Arial">Tags<br />
   ARCast, Architects, Architecture, Cloud Architecture, Cloud Computing, Cloud Patterns,
   Cloud Services, Software + Services, software as a service, Windows Azure</font>
        <br />
        <br />
        <br />
        <br />
        <table width="1000">
          <tbody>
            <tr>
              <td width="303">
                <p>
                  <iframe src="http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Special-Michael-Stiefel-on-Software-as-a-Service-in-the-Cloud//player" mce_src="http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Special-Michael-Stiefel-on-Software-as-a-Service-in-the-Cloud/" scrolling="no" width="320" frameborder="0" height="325">
                  </iframe>
                </p>
                <br />
                <a target="_blank" href="http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Special-Michael-Stiefel-on-Software-as-a-Service-in-the-Cloud/">ARCast.TV
               Special - Michael Stiefel on Software as a Service in the Cloud</a>
              </td>
            </tr>
          </tbody>
        </table>
        <div class="shoutIt">
          <script type="text/javascript">
digg_url = 'http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Special-Michael-Stiefel-on-Software-as-a-Service-in-the-Cloud/';
</script>
          <script type="text/javascript" src="http://digg.com/tools/diggthis.js">
          </script>
          <a href="http://dotnetshoutout.com/Submit?url=http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Special-Michael-Stiefel-on-Software-as-a-Service-in-the-Cloud/" rev="vote-for">
            <img style="border: 0px none ;" alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Special-Michael-Stiefel-on-Software-as-a-Service-in-the-Cloud/" />
          </a>
          <a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fchannel9.msdn.com%2fshows%2fARCast.TV%2fARCastTV-Special-Michael-Stiefel-on-Software-as-a-Service-in-the-Cloud%2f">
            <img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fchannel9.msdn.com%2fshows%2fARCast.TV%2fARCastTV-Special-Michael-Stiefel-on-Software-as-a-Service-in-the-Cloud%2f" border="0" />
          </a>
          <div>
          </div>
        </div>
        <img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=4861cdfb-8680-435e-87b9-914c48c808a6" />
      </body>
      <title>ARCast: Software as a Service in the Cloud</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,4861cdfb-8680-435e-87b9-914c48c808a6.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,4861cdfb-8680-435e-87b9-914c48c808a6.aspx</link>
      <pubDate>Thu, 05 Nov 2009 16:05:17 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;br&gt;
&lt;img src="http://www.reliablesoftware.com/DasBlog/content/binary/ArchitectinnovationCafe.bmp" border="0"&gt;
&lt;br&gt;
&lt;br&gt;
&lt;font color="#000000" size="4"&gt;&lt;b&gt;ARCast.TV Special - Michael Stiefel on Software
as a Service in the Cloud &lt;/b&gt;&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
&lt;font color="#000000" size="2" face="Arial"&gt;The Architecture Innovation Cafe presents
my &lt;a target= "_blank" href="http://bit.ly/2bp2FM"&gt;discussion of Software as a Service
in the Cloud&lt;/a&gt;, I discuss how architecting and building a software as a service
application requires solving a series of problems that are independent of a particular
software platform. I focus on three areas of designing and building the application
that you can leverage on new platforms such as Microsoft Azure.&lt;br&gt;
&lt;/font&gt;
&lt;br&gt;
&lt;font face="Arial"&gt;Tags&lt;br&gt;
ARCast, Architects, Architecture, Cloud Architecture, Cloud Computing, Cloud Patterns,
Cloud Services, Software + Services, software as a service, Windows Azure&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;table width="1000"&gt;
   &lt;tbody&gt;
      &lt;tr&gt;
         &lt;td width="303"&gt;
            &lt;p&gt;
               &lt;iframe src="http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Special-Michael-Stiefel-on-Software-as-a-Service-in-the-Cloud//player" mce_src="http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Special-Michael-Stiefel-on-Software-as-a-Service-in-the-Cloud/" scrolling="no" width="320" frameborder="0" height="325"&gt;
               &lt;/iframe&gt;
            &lt;/p&gt;
            &lt;br&gt;
            &lt;a target= "_blank" href="http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Special-Michael-Stiefel-on-Software-as-a-Service-in-the-Cloud/"&gt;ARCast.TV
            Special - Michael Stiefel on Software as a Service in the Cloud&lt;/a&gt; 
         &lt;/td&gt;
      &lt;/tr&gt;
   &lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="shoutIt"&gt;
   &lt;script type="text/javascript"&gt;
digg_url = 'http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Special-Michael-Stiefel-on-Software-as-a-Service-in-the-Cloud/';
&lt;/script&gt;
   &lt;script type="text/javascript" src="http://digg.com/tools/diggthis.js"&gt;&lt;/script&gt;
   &lt;a href="http://dotnetshoutout.com/Submit?url=http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Special-Michael-Stiefel-on-Software-as-a-Service-in-the-Cloud/" rev="vote-for"&gt;&lt;img style="border: 0px none ;" alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Special-Michael-Stiefel-on-Software-as-a-Service-in-the-Cloud/"&gt; &lt;/a&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fchannel9.msdn.com%2fshows%2fARCast.TV%2fARCastTV-Special-Michael-Stiefel-on-Software-as-a-Service-in-the-Cloud%2f"&gt;&lt;img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fchannel9.msdn.com%2fshows%2fARCast.TV%2fARCastTV-Special-Michael-Stiefel-on-Software-as-a-Service-in-the-Cloud%2f" border="0"&gt;&lt;/a&gt; 
   &lt;div&gt;
   &lt;/div&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=4861cdfb-8680-435e-87b9-914c48c808a6" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,4861cdfb-8680-435e-87b9-914c48c808a6.aspx</comments>
      <category>All;Cloud Computing;SOA</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=10f964a9-cab2-47be-861b-009708f1e815</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,10f964a9-cab2-47be-861b-009708f1e815.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,10f964a9-cab2-47be-861b-009708f1e815.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=10f964a9-cab2-47be-861b-009708f1e815</wfw:commentRss>
      <title> 	 Why should you consider Cloud Computing? : Part 2</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,10f964a9-cab2-47be-861b-009708f1e815.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,10f964a9-cab2-47be-861b-009708f1e815.aspx</link>
      <pubDate>Thu, 05 Nov 2009 02:50:26 GMT</pubDate>
      <description>&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;
&lt;meta name="ProgId" content="Word.Document"&gt;
&lt;meta name="Generator" content="Microsoft Word 11"&gt;
&lt;meta name="Originator" content="Microsoft Word 11"&gt;
&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Cmds%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
  &lt;/w:Compatibility&gt;
  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
 &lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" LatentStyleCount="156"&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt;
&lt;!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--&gt;
&lt;/style&gt;
&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
&lt;/style&gt;
&lt;![endif]--&gt;
&lt;p class="MsoNormal"&gt;
   The application delivery scenarios focus around software as a service. Software as
   a service applications fall into three varieties: pure service, and software + service,
   hosted application.
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
   &lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
   The hosted application scenario is similar to hosted application delivery. Examples
   are SalesForce, or Hosted Microsoft Exchange. People provide or buy an application
   that runs in the cloud. At the other extreme is the pure service play. Providers create
   web services (SOAP or REST based) that provide services used by other applications.
   Examples are credit card approvals, or certain loan applications. Applications written
   by third parties use this software to compose their applications in conjunction with
   their own software. Then there is the mixed play. Providers create both web applications
   and web services to be used by third parties. These applications consume the same
   web services that are available to others to build their own applications. This is
   often done to allow the provider to share the web services among various offerings,
   or because they need to boot strap the application marketplace. The need for rich
   clients does not necessarily disappear here. If applications (such as emergency services)
   have to run with loss of internet connectivity, stand alone apps may be necessary
   with synchronization software used when connectivity is re-established. Transactional
   queuing is not enough here because substantive work has to be done by the rich client
   app when connectivity is absent.
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
   &lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
   Internet scale is the last class of application. The first scaling factor is number
   of users. In order to achieve such scale you may to use cloud features such as tables
   (Google Big Table, Azure Tables, Amazon Simple DB) instead of or in addition to relational
   databases. Note that transactional guarantees are often impossible to make here. The
   second scaling factor is geographic distance. If your clients are geographically separated
   by enough distance, the latency caused by the speed of light in fiber optic cable
   actually matters. You may have to use the cloud features mentioned previously to achieve
   the responsiveness for writeable data because transactions, especially distributed
   transactions are not feasible to achieve scalability.
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
   &lt;br&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
   The next post in the series will start to discuss the architectural&amp;nbsp; implications
   of these different types of applications.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=10f964a9-cab2-47be-861b-009708f1e815" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,10f964a9-cab2-47be-861b-009708f1e815.aspx</comments>
      <category>Cloud Computing;SOA;Software Development</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=83d3b9fa-1247-4949-aeeb-25899d24252e</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,83d3b9fa-1247-4949-aeeb-25899d24252e.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,83d3b9fa-1247-4949-aeeb-25899d24252e.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=83d3b9fa-1247-4949-aeeb-25899d24252e</wfw:commentRss>
      <title>Architect's Cafe Webcast</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,83d3b9fa-1247-4949-aeeb-25899d24252e.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,83d3b9fa-1247-4949-aeeb-25899d24252e.aspx</link>
      <pubDate>Wed, 07 Oct 2009 00:55:51 GMT</pubDate>
      <description>&lt;font color="#000000" size="3" face="Arial"&gt;Here is a webcast on Software as a Service
that I did for Microsoft's Architect's Cafe:&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;
&lt;meta name="ProgId" content="Word.Document"&gt;
&lt;meta name="Generator" content="Microsoft Word 12"&gt;
&lt;meta name="Originator" content="Microsoft Word 12"&gt;
&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Cmds%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;
&lt;link rel="themeData" href="file:///C:%5CDOCUME%7E1%5Cmds%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;
&lt;link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5Cmds%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves/&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:DontVertAlignCellWithSp/&gt;
   &lt;w:DontBreakConstrainedForcedTables/&gt;
   &lt;w:DontVertAlignInTxbx/&gt;
   &lt;w:Word11KerningPairs/&gt;
   &lt;w:CachedColBalance/&gt;
  &lt;/w:Compatibility&gt;
  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val="Cambria Math"/&gt;
   &lt;m:brkBin m:val="before"/&gt;
   &lt;m:brkBinSub m:val="--"/&gt;
   &lt;m:smallFrac m:val="off"/&gt;
   &lt;m:dispDef/&gt;
   &lt;m:lMargin m:val="0"/&gt;
   &lt;m:rMargin m:val="0"/&gt;
   &lt;m:defJc m:val="centerGroup"/&gt;
   &lt;m:wrapIndent m:val="1440"/&gt;
   &lt;m:intLim m:val="subSup"/&gt;
   &lt;m:naryLim m:val="undOvr"/&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267"&gt;
  &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;
  &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;
  &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;
  &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;
  &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/&gt;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;
  &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;
  &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt;
&lt;!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:1;
	mso-generic-font-family:roman;
	mso-font-format:other;
	mso-font-pitch:variable;
	mso-font-signature:0 0 0 0 0 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-1610611985 1073750139 0 0 159 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;}
a:link, span.MsoHyperlink
	{mso-style-noshow:yes;
	mso-style-priority:99;
	color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-noshow:yes;
	mso-style-priority:99;
	color:purple;
	mso-themecolor:followedhyperlink;
	text-decoration:underline;
	text-underline:single;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	font-size:10.0pt;
	mso-ansi-font-size:10.0pt;
	mso-bidi-font-size:10.0pt;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--&gt;
&lt;/style&gt;
&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:minor-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
&lt;/style&gt;
&lt;![endif]--&gt;
&lt;p class="MsoNormal"&gt;
   &lt;span style="font-size: 11pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: rgb(31, 73, 125);"&gt;&lt;font color="#000000" size="3" face="Arial"&gt;&lt;a href="https://www112.livemeeting.com/cc/microsoft/view?id=M7GT9D"&gt;https://www112.livemeeting.com/cc/microsoft/view?id=M7GT9D&lt;/a&gt;&lt;/font&gt;
   &lt;o:p&gt;&lt;/o:p&gt;
   &lt;/span&gt;
&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=83d3b9fa-1247-4949-aeeb-25899d24252e" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,83d3b9fa-1247-4949-aeeb-25899d24252e.aspx</comments>
      <category>All;Cloud Computing;Microsoft .NET;SOA;Software Development</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=472eb302-be57-41a7-bcea-ae71e23e5df5</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,472eb302-be57-41a7-bcea-ae71e23e5df5.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,472eb302-be57-41a7-bcea-ae71e23e5df5.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=472eb302-be57-41a7-bcea-ae71e23e5df5</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <title>How Does Your Utility's SLA Compare with Windows Azure?</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,472eb302-be57-41a7-bcea-ae71e23e5df5.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,472eb302-be57-41a7-bcea-ae71e23e5df5.aspx</link>
      <pubDate>Tue, 11 Aug 2009 14:32:28 GMT</pubDate>
      <description>&lt;font color="#000000" size="3" face="Arial"&gt;Microsoft has yet to release all the details
of its Azure SLA, but it has said that you will have a 99.95 per cent up-time for
compute and 99.9 per cent up-time for SQL Azure.&lt;br&gt;
&lt;br&gt;
How does this compare with my electric utility? 
&lt;br&gt;
&lt;br&gt;
With my latest electric bill, my local utility listed its 2008 average number of service
interruptions per customer as 1.051, and the average number of minutes without power
for a customer at 78.55 minutes. So my electric utility has an up-time of .9998. I
guess they don't get 4 or 5 "9"s either.&lt;br&gt;
&lt;br&gt;
I presume these numbers include outages due to winter storms, but I do not know what
the utility regulators allow them to exclude. Microsoft, to my knowledge, has not
stated whether the SLA percentages include planned downtime for upgrades.&lt;br&gt;
&lt;br&gt;
How many outage minutes per year could we expect with Azure under the SLA? That comes
to about 262.8 compute minutes per year, or about 4.36 hours. Of course when those
outages occur matters, and whether they are concentrated in one or many interruptions.&lt;br&gt;
&lt;br&gt;
For SQL Azure that SLA is on a per month basis. So for data you could loose access
to it for 43.8 minutes per month.&lt;br&gt;
&lt;br&gt;
Is 4 hours a long time? Could you live without data access for 45 minutes a month?&lt;br&gt;
&lt;br&gt;
For Facebook probably, for emergency services you would need some sort of fallback
just like they have backup generators now.&lt;br&gt;
&lt;br&gt;
I wonder what a cloud computing brownout looks like?&lt;br&gt;
&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;table x:str="" style="border-collapse: collapse; width: 48pt;" border="0" cellpadding="0" cellspacing="0" width="64"&gt;
   &lt;col style="width: 48pt;" width="64"&gt;
   &lt;tbody&gt;
      &lt;tr style="height: 12.75pt;" height="17"&gt;
         &lt;td style="height: 12.75pt; width: 48pt;" x:num="0.99985055175038051" align="right" width="64" height="17"&gt;
            &lt;br&gt;
         &lt;/td&gt;
      &lt;/tr&gt;
   &lt;/tbody&gt;
&lt;/table&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=472eb302-be57-41a7-bcea-ae71e23e5df5" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,472eb302-be57-41a7-bcea-ae71e23e5df5.aspx</comments>
      <category>All;Cloud Computing;SOA;Software Development</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=0706e171-bdb9-4499-8bd1-0eea2e621db5</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,0706e171-bdb9-4499-8bd1-0eea2e621db5.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,0706e171-bdb9-4499-8bd1-0eea2e621db5.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=0706e171-bdb9-4499-8bd1-0eea2e621db5</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Want to provide some input to Microsoft?
   </p>
        <p>
      Here is a blog entry that contains a link to a survey that would help them decide
      on priorities for providing cloud security guidance: <a target="-1" href="http://blogs.msdn.com/jmeier/archive/2009/08/04/cloud-security-survey.aspx">http://blogs.msdn.com/jmeier/archive/2009/08/04/cloud-security-survey.aspx</a>.
   </p>
        <p>
      The post explains the rationale behind the survey.
   </p>
        <p>
       
   </p>
        <p>
       
   </p>
        <img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=0706e171-bdb9-4499-8bd1-0eea2e621db5" />
      </body>
      <title>Microsoft Cloud Security Survey</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,0706e171-bdb9-4499-8bd1-0eea2e621db5.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,0706e171-bdb9-4499-8bd1-0eea2e621db5.aspx</link>
      <pubDate>Mon, 10 Aug 2009 18:22:46 GMT</pubDate>
      <description>&lt;p&gt;
   Want to provide some input to Microsoft?
&lt;/p&gt;
&lt;p&gt;
   Here is a blog entry that contains a link to a survey that would help them decide
   on priorities for providing cloud security guidance: &lt;a target=-1 href="http://blogs.msdn.com/jmeier/archive/2009/08/04/cloud-security-survey.aspx"&gt;http://blogs.msdn.com/jmeier/archive/2009/08/04/cloud-security-survey.aspx&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
   The post explains the rationale behind the survey.
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=0706e171-bdb9-4499-8bd1-0eea2e621db5" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,0706e171-bdb9-4499-8bd1-0eea2e621db5.aspx</comments>
      <category>All;Cloud Computing;SOA;Software Development</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=2b6f5683-640f-422b-a138-aea8c20ac24c</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,2b6f5683-640f-422b-a138-aea8c20ac24c.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,2b6f5683-640f-422b-a138-aea8c20ac24c.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=2b6f5683-640f-422b-a138-aea8c20ac24c</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      I just did an interview on .NET rocks about <a href="http://www.dotnetrocks.com/default.aspx?showNum=459" target="_blank">cloud
      computing</a>.
   </p>
        <p>
      We covered a whole bunch of topics including:<br />
                          
      what is cloud computing<br />
                          
      comparing the various offering of Google, Force.com, Amazon, and Microsoft<br />
                          
      the social and economic environment required for cloud computing<br />
                          
      the implications for transactional computing and the relational model<br />
                          
      the importance of price and SLA for Microsoft whose offerring is different from Amazon
      and Google<br />
                           the
      need for rich clients even in the world of cloud computing.
   </p>
        <p>
       
   </p>
        <p>
       
   </p>
        <p>
       
   </p>
        <p>
          <a href="http://www.dotnetrocks.com/default.aspx?showNum=459">
          </a> 
   </p>
        <img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=2b6f5683-640f-422b-a138-aea8c20ac24c" />
      </body>
      <title>. NET Rocks Interview</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,2b6f5683-640f-422b-a138-aea8c20ac24c.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,2b6f5683-640f-422b-a138-aea8c20ac24c.aspx</link>
      <pubDate>Mon, 06 Jul 2009 00:53:02 GMT</pubDate>
      <description>&lt;p&gt;
   I just did an interview on .NET rocks about &lt;a href="http://www.dotnetrocks.com/default.aspx?showNum=459" target=_blank&gt;cloud
   computing&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
   We covered a whole bunch of topics including:&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
   what is cloud computing&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
   comparing the various offering of Google, Force.com, Amazon, and Microsoft&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
   the social and economic environment required for cloud computing&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
   the implications for transactional computing and the relational model&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
   the importance of price and SLA for Microsoft whose offerring is different from Amazon
   and Google&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;the
   need for rich clients even in the world of cloud computing.
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.dotnetrocks.com/default.aspx?showNum=459"&gt;&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=2b6f5683-640f-422b-a138-aea8c20ac24c" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,2b6f5683-640f-422b-a138-aea8c20ac24c.aspx</comments>
      <category>All;Cloud Computing;Microsoft .NET;SOA;Software Development</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=21fbe08c-ebdd-42e5-abdd-48169db4711e</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,21fbe08c-ebdd-42e5-abdd-48169db4711e.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,21fbe08c-ebdd-42e5-abdd-48169db4711e.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=21fbe08c-ebdd-42e5-abdd-48169db4711e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      One of the big advantages of cloud computing is its utility computing model. Customers
      can use as much compute power or as little as they want without paying for what they
      do not need. Normally, most data centers have to be built for peak demand, with the
      servers unused when they are not needed.
   </p>
        <p>
      Utility computing is based on the electric utility model. While this comparison has
      a lot of merit, there is one particular part of the analogy that really does not work.
   </p>
        <p>
      Data are not electrons.
   </p>
        <p>
      If someone steals some of your electric power by diverting it, you can get replacement
      power.  If one part of the country's electric demand exceeds its generating ability,
      it can get power from another part of the grid. One electron is as good as another.
   </p>
        <p>
      Data has identity, latency, and relationships to other pieces of data.
   </p>
        <p>
      If someone steals your data, another piece of data cannot take its place. if your
      data is stolen, or even delayed it, can aversely affect you. Depending on your resolution
      of the CAP Theorem dilemma, your replication strategy might leave you with a window
      of vulnerability for data loss.
   </p>
        <p>
      Curiously, the argument has been made that the utlity computing model makes denial
      of service attacks unfeasible because the economics of trying to get enough bot driven
      computers to assualt a hugh data center is prohibitive. Sooner or later, somebody
      is going to try to get the servers of one data center to attack the servers of another
      data center. Hopefully, the software that monitors the transactions would realize
      that somebody is exceeding their credit limit.
   </p>
        <img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=21fbe08c-ebdd-42e5-abdd-48169db4711e" />
      </body>
      <title>Cloud Computing, Utility Computing and Data</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,21fbe08c-ebdd-42e5-abdd-48169db4711e.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,21fbe08c-ebdd-42e5-abdd-48169db4711e.aspx</link>
      <pubDate>Wed, 24 Jun 2009 15:13:48 GMT</pubDate>
      <description>&lt;p&gt;
   One of the big advantages of cloud computing is its utility computing model. Customers
   can use as much compute power or as little as they want without paying for what they
   do not need. Normally, most data centers have to be built for peak demand, with the
   servers unused when they are not needed.
&lt;/p&gt;
&lt;p&gt;
   Utility computing is based on the electric utility model. While this comparison has
   a lot of merit, there is one particular part of the analogy that really does not work.
&lt;/p&gt;
&lt;p&gt;
   Data are not electrons.
&lt;/p&gt;
&lt;p&gt;
   If someone steals some of your electric power by diverting it, you can get replacement
   power.&amp;nbsp; If one part of the country's electric demand exceeds its generating ability,
   it can get power from another part of the grid. One electron is as good as another.
&lt;/p&gt;
&lt;p&gt;
   Data has identity, latency, and relationships to other pieces of data.
&lt;/p&gt;
&lt;p&gt;
   If someone steals your data, another piece of data cannot take its place. if your
   data is stolen, or even delayed it, can aversely affect you. Depending on your resolution
   of the CAP Theorem dilemma, your replication strategy might leave you with a window
   of vulnerability for data loss.
&lt;/p&gt;
&lt;p&gt;
   Curiously, the argument has been made that the utlity computing model makes denial
   of service attacks unfeasible because the economics of trying to get enough bot driven
   computers to assualt a hugh data center is prohibitive. Sooner or later, somebody
   is going to try to get the servers of one data center to attack the servers of another
   data center. Hopefully, the software that monitors the transactions would realize
   that somebody is exceeding their credit limit.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=21fbe08c-ebdd-42e5-abdd-48169db4711e" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,21fbe08c-ebdd-42e5-abdd-48169db4711e.aspx</comments>
      <category>All;Cloud Computing;SOA;Software Development</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=53155187-fea1-4eee-8318-6e2de064a1e8</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,53155187-fea1-4eee-8318-6e2de064a1e8.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,53155187-fea1-4eee-8318-6e2de064a1e8.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=53155187-fea1-4eee-8318-6e2de064a1e8</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      It's time for me to be interviewed on .NET Rocks again!
   </p>
        <p>
      Carl and Richard will interview me about Cloud Computing. The interview will be published
      on June 30 at <a href="http://www.dotnetrocks.com/" target="_blank">http://www.dotnetrocks.com/</a>.
   </p>
        <p>
      Based on my previous show (and related DNR TV segments) it will be a lot of fun to
      do and to listen to.
   </p>
        <p>
       
   </p>
        <img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=53155187-fea1-4eee-8318-6e2de064a1e8" />
      </body>
      <title>My interview on .NET Rocks about Cloud Computing</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,53155187-fea1-4eee-8318-6e2de064a1e8.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,53155187-fea1-4eee-8318-6e2de064a1e8.aspx</link>
      <pubDate>Tue, 23 Jun 2009 14:48:08 GMT</pubDate>
      <description>&lt;p&gt;
   It's time for me to be interviewed on .NET Rocks again!
&lt;/p&gt;
&lt;p&gt;
   Carl and Richard will interview me about Cloud Computing. The interview will be published
   on June 30 at &lt;a href="http://www.dotnetrocks.com/" target=_blank&gt;http://www.dotnetrocks.com/&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
   Based on my previous show (and related DNR TV segments) it will be a lot of fun to
   do and to listen to.
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=53155187-fea1-4eee-8318-6e2de064a1e8" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,53155187-fea1-4eee-8318-6e2de064a1e8.aspx</comments>
      <category>All;Cloud Computing;Microsoft .NET;SOA;Software Development</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=9bf1d506-12d1-4b53-a5d1-c4c7410c253d</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,9bf1d506-12d1-4b53-a5d1-c4c7410c253d.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,9bf1d506-12d1-4b53-a5d1-c4c7410c253d.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=9bf1d506-12d1-4b53-a5d1-c4c7410c253d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Verdana" color="#000000" size="2">Many people have misconceptions about
      cloud computing. For example, applications do not have to be built so they are all
      in the cloud. You can put the application in the cloud (to handle parallel computation),
      and have the database in your enterprise. I was <a href="http://www.msteched.com/online/view.aspx?tid=64ad77fe-66ee-49ec-bd77-6731174a4582" target="_blank">interviewed </a>at
      TechEd about some of the misconceptions about computing in the cloud.  Other
      misconceptions discussed include what size business is right for the cloud, the role
      of the browser, guaranteed connectivity, and cloud security.</font>
        </p>
        <img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=9bf1d506-12d1-4b53-a5d1-c4c7410c253d" />
      </body>
      <title>Misconceptions about Cloud Computing</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,9bf1d506-12d1-4b53-a5d1-c4c7410c253d.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,9bf1d506-12d1-4b53-a5d1-c4c7410c253d.aspx</link>
      <pubDate>Thu, 28 May 2009 01:14:25 GMT</pubDate>
      <description>&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face=Verdana color=#000000 size=2&gt;Many people have misconceptions about cloud
   computing. For example, applications do not have to be built so they are all in the
   cloud. You can put the application in the cloud (to handle parallel computation),
   and have the database in your enterprise. I was &lt;a href="http://www.msteched.com/online/view.aspx?tid=64ad77fe-66ee-49ec-bd77-6731174a4582" target=_blank&gt;interviewed &lt;/a&gt;at
   TechEd about some of the misconceptions about computing in the cloud.&amp;nbsp; Other
   misconceptions discussed include what size business is right for the cloud, the role
   of the browser, guaranteed connectivity, and cloud security.&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=9bf1d506-12d1-4b53-a5d1-c4c7410c253d" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,9bf1d506-12d1-4b53-a5d1-c4c7410c253d.aspx</comments>
      <category>All;Cloud Computing;SOA;Software Development</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=8f91d827-3a94-4271-8dd7-b3bf33d14f3a</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,8f91d827-3a94-4271-8dd7-b3bf33d14f3a.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,8f91d827-3a94-4271-8dd7-b3bf33d14f3a.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=8f91d827-3a94-4271-8dd7-b3bf33d14f3a</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Here is my Tech Ed podcast about how small businesses and small business units can
      benefit from Cloud Computing: <a href="http://www.msteched.com/online/view.aspx?tid=a4377dcf-ed90-4872-8d45-ec5108be118e" target="_blank">http://www.msteched.com/online/view.aspx?tid=a4377dcf-ed90-4872-8d45-ec5108be118e</a>.
   </p>
        <p>
      I cover some of the material discussed in yesterday's post, but there is also some
      new content.
   </p>
        <p>
       
   </p>
        <img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=8f91d827-3a94-4271-8dd7-b3bf33d14f3a" />
      </body>
      <title>TechEd Tech Talk on Cloud Computing and Small Business</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,8f91d827-3a94-4271-8dd7-b3bf33d14f3a.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,8f91d827-3a94-4271-8dd7-b3bf33d14f3a.aspx</link>
      <pubDate>Fri, 22 May 2009 02:52:36 GMT</pubDate>
      <description>&lt;p&gt;
   Here is my Tech Ed podcast about how small businesses and small business units can
   benefit from Cloud Computing: &lt;a href="http://www.msteched.com/online/view.aspx?tid=a4377dcf-ed90-4872-8d45-ec5108be118e" target="_blank"&gt;http://www.msteched.com/online/view.aspx?tid=a4377dcf-ed90-4872-8d45-ec5108be118e&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
   I cover some of the material discussed in yesterday's post, but there is also some
   new content.
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=8f91d827-3a94-4271-8dd7-b3bf33d14f3a" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,8f91d827-3a94-4271-8dd7-b3bf33d14f3a.aspx</comments>
      <category>All;Cloud Computing;SOA;Software Development</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=4e6f3b2a-b834-41c0-a050-db7dc28fce80</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,4e6f3b2a-b834-41c0-a050-db7dc28fce80.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,4e6f3b2a-b834-41c0-a050-db7dc28fce80.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=4e6f3b2a-b834-41c0-a050-db7dc28fce80</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Verdana" size="2">Small or medium sized companies can have the advantages
      of being able to act as a big company while maintaining the advantages of being small.</font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Verdana" size="2">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Verdana" size="2">A hosted solution has many advantages. </font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Verdana" size="2">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Verdana" size="2">You no longer need the staff, or have to spend money
      on installing and upgrading software on your clients' machines.<span style="mso-spacerun: yes">  </span>Your
      customers and clients can use your application anywhere, not just on their office
      computers.<span style="mso-spacerun: yes">  </span>If you provide services as
      well as an application, third parties can easily use your solution as part of their
      offering.<span style="mso-spacerun: yes">  </span>Sometimes these services can
      be used in your own applications such as portals, or future applications. Perhaps
      your customers can extend your application making it more valuable to them. Having
      your application in the cloud means that your intellectual property (your secret sauce)
      is better protected because it is not in the hands of your users.</font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Verdana" size="2">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Verdana" size="2">All these arguments also apply to small business units
      within a large enterprise.</font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Verdana" size="2">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Verdana" size="2">Nonetheless, small businesses very often do not have
      the financial ability to economically run, or even rent a significant hosted application
      solution beyond a small scale web application.</font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Verdana" size="2">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Verdana" size="2">Cloud computing offers a way out of the dilemma.</font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Verdana" size="2">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Verdana" size="2">Cloud computing offers businesses a utility model for
      computation. Host your application on a cloud platform and you pay only for what you
      use. With minimal initial investment, you can scale up or down as your customers use
      more or less of your application or services.</font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Verdana" size="2">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Verdana" size="2">With many cloud vendors (Amazon being a major exception)
      you do not even know on what infrastructure your machine runs on. Scaling and failover
      happen in those environments with minimal work on the client's part.</font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Verdana" size="2">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Verdana" size="2">Clearly the cost and reliability of the cloud provider
      is crucial. Google's most recent outage shows that this is not a unreasonable fear.
      Private IT centers also have had their outages, but they are not made public.</font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Verdana" size="2">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <a href="http://www.spectrum.ieee.org/feb09/7327">
            <font face="Verdana" size="2">Microsoft,
      Amazon,<span style="mso-spacerun: yes">  </span>Google and others are spending
      huge amounts of money to build cloud data centers</font>
          </a>
          <font face="Verdana" size="2">.
      Clearly they see the opportunity.</font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Verdana" size="2">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Verdana" size="2">Right now many large companies already have data centers
      that can offer cheaper compute power than the current generation of cloud providers.
      This will eventually change.</font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Verdana" size="2">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Verdana" size="2">But right now, small companies, start-ups, and other
      similar organizations should think about cloud computing for their hardware infrastructure.</font>
        </p>
        <img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=4e6f3b2a-b834-41c0-a050-db7dc28fce80" />
      </body>
      <title>Why would a Small Business Put an App in the Cloud?</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,4e6f3b2a-b834-41c0-a050-db7dc28fce80.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,4e6f3b2a-b834-41c0-a050-db7dc28fce80.aspx</link>
      <pubDate>Wed, 20 May 2009 19:40:19 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face=Verdana size=2&gt;Small or medium sized companies can have the advantages
   of being able to act as a big company while maintaining the advantages of being small.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face=Verdana size=2&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face=Verdana size=2&gt;A hosted solution has many advantages. &lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face=Verdana size=2&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face=Verdana size=2&gt;You no longer need the staff, or have to spend money on
   installing and upgrading software on your clients' machines.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Your
   customers and clients can use your application anywhere, not just on their office
   computers.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;If you provide services as
   well as an application, third parties can easily use your solution as part of their
   offering.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Sometimes these services can
   be used in your own applications such as portals, or future applications. Perhaps
   your customers can extend your application making it more valuable to them. Having
   your application in the cloud means that your intellectual property (your secret sauce)
   is better protected because it is not in the hands of your users.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face=Verdana size=2&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face=Verdana size=2&gt;All these arguments also apply to small business units within
   a large enterprise.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face=Verdana size=2&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face=Verdana size=2&gt;Nonetheless, small businesses very often do not have the
   financial ability to economically run, or even rent a significant hosted application
   solution beyond a small scale web application.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face=Verdana size=2&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face=Verdana size=2&gt;Cloud computing offers a way out of the dilemma.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face=Verdana size=2&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face=Verdana size=2&gt;Cloud computing offers businesses a utility model for computation.
   Host your application on a cloud platform and you pay only for what you use. With
   minimal initial investment, you can scale up or down as your customers use more or
   less of your application or services.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face=Verdana size=2&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face=Verdana size=2&gt;With many cloud vendors (Amazon being a major exception)
   you do not even know on what infrastructure your machine runs on. Scaling and failover
   happen in those environments with minimal work on the client's part.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face=Verdana size=2&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face=Verdana size=2&gt;Clearly the cost and reliability of the cloud provider is
   crucial. Google's most recent outage shows that this is not a unreasonable fear. Private
   IT centers also have had their outages, but they are not made public.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face=Verdana size=2&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;a href="http://www.spectrum.ieee.org/feb09/7327"&gt;&lt;font face=Verdana size=2&gt;Microsoft,
   Amazon,&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Google and others are spending
   huge amounts of money to build cloud data centers&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana size=2&gt;.
   Clearly they see the opportunity.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face=Verdana size=2&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face=Verdana size=2&gt;Right now many large companies already have data centers
   that can offer cheaper compute power than the current generation of cloud providers.
   This will eventually change.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face=Verdana size=2&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face=Verdana size=2&gt;But right now, small companies, start-ups, and other similar
   organizations should think about cloud computing for their hardware infrastructure.&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=4e6f3b2a-b834-41c0-a050-db7dc28fce80" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,4e6f3b2a-b834-41c0-a050-db7dc28fce80.aspx</comments>
      <category>All;Cloud Computing;SOA;Software Development</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=e1b56cb0-c0d6-4fd0-a38c-3c8bfedecc9e</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,e1b56cb0-c0d6-4fd0-a38c-3c8bfedecc9e.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,e1b56cb0-c0d6-4fd0-a38c-3c8bfedecc9e.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=e1b56cb0-c0d6-4fd0-a38c-3c8bfedecc9e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      I have uploaded the slides and code for my <a target="_blank" href="http://www.reliablesoftware.com/presentations.html#Cloud">talk</a> on
      Windows Azure at the <a target="_blank" href="http://www.msdndevcon.com/Pages/Boston.aspx">Microsoft
      MSDN day</a> in Boston on January 22.
   </p>
        <p>
      The talk was a combination of slides from several PDC talks with some of my own additions.
      I went through the fundamental architecture of the Azure cloud operating system and
      the basic elements of the Azure cloud services (i.e. Identity, Workflow, Live, SQL
      Data Services).
   </p>
        <p>
      I did two demos. The first was a simple thumbnail generator. It illustrated a simple,
      scalable architecture using web roles and worker roles that used the primitive Azure
      operating system storage for blobs and queues.  It also demonstrated how you
      model and configure a cloud application. The second, using the SQL Data Services,
      demonstrated how to integrate a non-cloud application (on a desktop or server) with
      the cloud. The app used a variety of industry standard mechanisms (WS*, REST, HTTP
      Get) to create and query data.
   </p>
        <p>
       
   </p>
        <p>
       
   </p>
        <img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=e1b56cb0-c0d6-4fd0-a38c-3c8bfedecc9e" />
      </body>
      <title>Lap Around Windows Azure and the Azure Platform</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,e1b56cb0-c0d6-4fd0-a38c-3c8bfedecc9e.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,e1b56cb0-c0d6-4fd0-a38c-3c8bfedecc9e.aspx</link>
      <pubDate>Sun, 25 Jan 2009 16:20:05 GMT</pubDate>
      <description>&lt;p&gt;
   I have uploaded the slides and code for my &lt;a target="_blank" href="http://www.reliablesoftware.com/presentations.html#Cloud"&gt;talk&lt;/a&gt; on
   Windows Azure at the &lt;a target="_blank" href="http://www.msdndevcon.com/Pages/Boston.aspx"&gt;Microsoft
   MSDN day&lt;/a&gt; in Boston on January 22.
&lt;/p&gt;
&lt;p&gt;
   The talk was a combination of slides from several PDC talks with some of my own additions.
   I went through the fundamental architecture of the Azure cloud operating system and
   the basic elements of the Azure cloud services (i.e. Identity, Workflow, Live, SQL
   Data Services).
&lt;/p&gt;
&lt;p&gt;
   I did two demos. The first was a simple thumbnail generator. It illustrated a simple,
   scalable architecture using web roles and worker roles that used the primitive Azure
   operating system storage for blobs and queues.&amp;nbsp; It also demonstrated how you
   model and configure a cloud application. The second, using the SQL Data Services,
   demonstrated how to integrate a non-cloud application (on a desktop or server) with
   the cloud. The app used a variety of industry standard mechanisms (WS*, REST, HTTP
   Get) to create and query data.
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=e1b56cb0-c0d6-4fd0-a38c-3c8bfedecc9e" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,e1b56cb0-c0d6-4fd0-a38c-3c8bfedecc9e.aspx</comments>
      <category>Cloud Computing;Microsoft .NET;SOA</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=560ad329-a24c-414b-88d8-49bacf5429d7</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,560ad329-a24c-414b-88d8-49bacf5429d7.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,560ad329-a24c-414b-88d8-49bacf5429d7.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=560ad329-a24c-414b-88d8-49bacf5429d7</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <font face="Times New Roman" size="3">At the PDC Microsoft announced its answer to
      Amazon and Google's cloud computing services.<br /></font>
          <font face="Times New Roman">
            <br />
          </font>
        </p>
        <p>
          <font face="Times New Roman" size="3">This answer has two parts: the Azure platform
      and hosted applications.<span style="mso-spacerun: yes">  </span>Unfortunately
      people confuse these two aspects of cloud computing although they do have some features
      in common.</font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">The idea behind Azure is to have a hosted operating systems
      platform.<span style="mso-spacerun: yes">  </span>Companies and individuals will
      be able to build applications that run on infrastructure inside one of Microsoft's
      data centers.<span style="mso-spacerun: yes">  </span>Hosted services are applications
      that companies and individuals will use instead of running them on their own computers.</font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">For example,<span style="mso-spacerun: yes">  </span>a<span style="mso-spacerun: yes">  </span>company
      wants to build a document approval system. It can outsource the infrastructure on
      which it runs by building the application on top of a cloud computing platform such
      as Azure.<span style="mso-spacerun: yes">  </span>My web site and blog do not
      run on my own servers, I use a hosting company. That is an example of using a hosted
      application.</font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">As people get more sophisticated about cloud computing
      we will see these two types as endpoints on a continuum. Right now as you start to
      think about cloud computing and where it makes sense,<span style="mso-spacerun: yes">  </span>it
      is easier to treat these as distinct approaches. </font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">The economics of outsourcing your computing infrastructure
      and certain applications is compelling as Nicholas Carr has argued.<span style="mso-spacerun: yes">  </span></font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">Companies will be able to vary capacity as needed. They
      can focus scarce economic resources on building the software the<span style="mso-spacerun: yes">  </span>organization
      needs, as opposed to the specialized skills needed to run computing infrastructure.<span style="mso-spacerun: yes">  </span>Many
      small and mid-sized companies already using hosting companies to run their applications.
      The next logical step is for hosting on an operating system in the cloud. </font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">Salesforce.com has already proven the viability of hosted
      CRM applications.<span style="mso-spacerun: yes">  </span>If I am a small business
      and I need Microsoft Exchange,<span style="mso-spacerun: yes">  </span>I have
      several choices. I can hire somebody who knows how to run an Exchange server. I can
      take one my already overburdened computer people and hope they can become expert enough
      on Exchange to run it without problems. Or I can outsource to a company that knows
      about Exchange,<span style="mso-spacerun: yes">  </span>the appropriate patches,
      security issues, and how to get it to scale. The choice seems pretty clear to most
      businesses.</font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">We are at the beginning of the cloud computing wave,
      and there are many legitimate concerns. What about service outages as Amazon and Salesforce.com
      have had that prevent us from accessing our critical applications and data? What about
      privacy issues? I have discussed the <a href="http://www.podango.com/podcast_episode/2415/83715/OnMicrosoft_video/OnMicrosoft__Privacy_and_Cloud_Computing_with_Michael_Stiefel">cloud
      privacy issue </a>in a podcast</font>
          <font face="Times New Roman">.<span style="mso-spacerun: yes">  </span>People
      are concerned about the ownership of information in the cloud.</font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">All these are legitimate concerns. But we have faced
      these issues before. Think of the electric power industry. We produce and consume
      all kinds of products and services using electric power. Electric power is reliable
      enough that nobody produces their own power any more. Even survivalists still get
      their usual power from the grid. </font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">This did not happen over night. Their were bitter arguments
      over the AC and DC standards for electric power transmission. Thomas Edison (the champion
      of DC power) built an alternating current electric chair for executing prisoners<span style="mso-spacerun: yes">  </span>to
      demonstrate the "horrors" of Nikola Tesla's approach. There were bitter financial
      struggles between competing companies. Read Thomas Parke Hughes' classic work "Networks
      of power: Electrification in Western society 1880-1930". Yet in the end we have reliable
      electric power.</font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">Large scale computing utilities could provide computation
      much more efficiently than individual business. Compare the energy and pollution efficiency
      of large scale electric utilities with individual automobiles.</font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">
            <span style="mso-spacerun: yes"> </span>Large companies
      with the ability to hire and retain infrastructure professionals might decide to build
      rather than outsource. Some companies may decide to do their own hosting for their
      own individual reasons.</font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">You probably already have information in the cloud if
      you have ever used Amazon.com. You have already given plenty of information to banks,
      credit card companies, and other companies you have dealt with. This information surely
      already resides on a computer somewhere. Life is full of trust decisions that you
      make without realizing it.</font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">Very few people grow their own food, sew their own clothes,
      build their own houses, or (even in these tenuous financial times)<span style="mso-spacerun: yes">  </span>keep
      their money in their mattresses any more. We have learnt to trust in an economic system
      to provide these things. This too did not happen overnight.</font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">I personally believe that Internet connectivity will
      never be 100% reliable, but how much reliability will be needed depends on the mission
      criticality of an application. That is why there will always be a role for rich clients
      and synchronization services.</font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">Hosting companies will have to be large to have the financial
      stability to handle law suits and survive for the long term. We will have to develop
      the institutional and legal infrastructure to handle what happens to data and applications
      when a hosting company fails. We learned how to do this with bank failures and<span style="mso-spacerun: yes">  </span>we
      will learn how to do this with hosting companies.</font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">This could easily take 50 years with many false starts.
      People tend to overestimate what will happen in 5 years, and underestimate what will
      happen in 10-15 years.</font>
        </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">
          </font> 
   </p>
        <p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri">
          <font face="Times New Roman">Azure, the color Microsoft picked for the name of its
      platform, is the color of a bright, cloudless day.<span style="mso-spacerun: yes">  </span>Interesting
      metaphor for a cloud computing platform. Is the future of clouds clear?</font>
        </p>
        <img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=560ad329-a24c-414b-88d8-49bacf5429d7" />
      </body>
      <title>Microsoft Cloud Computing: The Empire Strikes Back</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,560ad329-a24c-414b-88d8-49bacf5429d7.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,560ad329-a24c-414b-88d8-49bacf5429d7.aspx</link>
      <pubDate>Wed, 29 Oct 2008 23:22:13 GMT</pubDate>
      <description>&lt;p&gt;
   &lt;font face="Times New Roman" size=3&gt;At the PDC Microsoft announced its answer to Amazon
   and Google's cloud computing services.&lt;br&gt;
   &lt;/font&gt;&lt;font face="Times New Roman"&gt;
   &lt;br&gt;
   &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;font face="Times New Roman" size=3&gt;This answer has two parts: the Azure platform
   and hosted applications.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Unfortunately
   people confuse these two aspects of cloud computing although they do have some features
   in common.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;The idea behind Azure is to have a hosted operating systems
   platform.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Companies and individuals will
   be able to build applications that run on infrastructure inside one of Microsoft's
   data centers.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Hosted services are applications
   that companies and individuals will use instead of running them on their own computers.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;For example,&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;a&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;company
   wants to build a document approval system. It can outsource the infrastructure on
   which it runs by building the application on top of a cloud computing platform such
   as Azure.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;My web site and blog do not
   run on my own servers, I use a hosting company. That is an example of using a hosted
   application.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;As people get more sophisticated about cloud computing
   we will see these two types as endpoints on a continuum. Right now as you start to
   think about cloud computing and where it makes sense,&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;it
   is easier to treat these as distinct approaches. &lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;The economics of outsourcing your computing infrastructure
   and certain applications is compelling as Nicholas Carr has argued.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;Companies will be able to vary capacity as needed. They
   can focus scarce economic resources on building the software the&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;organization
   needs, as opposed to the specialized skills needed to run computing infrastructure.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Many
   small and mid-sized companies already using hosting companies to run their applications.
   The next logical step is for hosting on an operating system in the cloud. &lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;Salesforce.com has already proven the viability of hosted
   CRM applications.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;If I am a small business
   and I need Microsoft Exchange,&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I have
   several choices. I can hire somebody who knows how to run an Exchange server. I can
   take one my already overburdened computer people and hope they can become expert enough
   on Exchange to run it without problems. Or I can outsource to a company that knows
   about Exchange,&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;the appropriate patches,
   security issues, and how to get it to scale. The choice seems pretty clear to most
   businesses.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;We are at the beginning of the cloud computing wave,
   and there are many legitimate concerns. What about service outages as Amazon and Salesforce.com
   have had that prevent us from accessing our critical applications and data? What about
   privacy issues? I have discussed the &lt;a href="http://www.podango.com/podcast_episode/2415/83715/OnMicrosoft_video/OnMicrosoft__Privacy_and_Cloud_Computing_with_Michael_Stiefel"&gt;cloud
   privacy issue &lt;/a&gt;in a podcast&lt;/font&gt;&lt;font face="Times New Roman"&gt;.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;People
   are concerned about the ownership of information in the cloud.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;All these are legitimate concerns. But we have faced
   these issues before. Think of the electric power industry. We produce and consume
   all kinds of products and services using electric power. Electric power is reliable
   enough that nobody produces their own power any more. Even survivalists still get
   their usual power from the grid. &lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;This did not happen over night. Their were bitter arguments
   over the AC and DC standards for electric power transmission. Thomas Edison (the champion
   of DC power) built an alternating current electric chair for executing prisoners&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;to
   demonstrate the "horrors" of Nikola Tesla's approach. There were bitter financial
   struggles between competing companies. Read Thomas Parke Hughes' classic work "Networks
   of power: Electrification in Western society 1880-1930". Yet in the end we have reliable
   electric power.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;Large scale computing utilities could provide computation
   much more efficiently than individual business. Compare the energy and pollution efficiency
   of large scale electric utilities with individual automobiles.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;Large companies
   with the ability to hire and retain infrastructure professionals might decide to build
   rather than outsource. Some companies may decide to do their own hosting for their
   own individual reasons.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;You probably already have information in the cloud if
   you have ever used Amazon.com. You have already given plenty of information to banks,
   credit card companies, and other companies you have dealt with. This information surely
   already resides on a computer somewhere. Life is full of trust decisions that you
   make without realizing it.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;Very few people grow their own food, sew their own clothes,
   build their own houses, or (even in these tenuous financial times)&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;keep
   their money in their mattresses any more. We have learnt to trust in an economic system
   to provide these things. This too did not happen overnight.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;I personally believe that Internet connectivity will
   never be 100% reliable, but how much reliability will be needed depends on the mission
   criticality of an application. That is why there will always be a role for rich clients
   and synchronization services.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;Hosting companies will have to be large to have the financial
   stability to handle law suits and survive for the long term. We will have to develop
   the institutional and legal infrastructure to handle what happens to data and applications
   when a hosting company fails. We learned how to do this with bank failures and&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;we
   will learn how to do this with hosting companies.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;This could easily take 50 years with many false starts.
   People tend to overestimate what will happen in 5 years, and underestimate what will
   happen in 10-15 years.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;
   &lt;font face="Times New Roman"&gt;Azure, the color Microsoft picked for the name of its
   platform, is the color of a bright, cloudless day.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Interesting
   metaphor for a cloud computing platform. Is the future of clouds clear?&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=560ad329-a24c-414b-88d8-49bacf5429d7" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,560ad329-a24c-414b-88d8-49bacf5429d7.aspx</comments>
      <category>All;Microsoft .NET;SOA;Software Development;Cloud Computing</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=33393c0f-3629-49f5-a6c1-4e2d63fa67c6</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,33393c0f-3629-49f5-a6c1-4e2d63fa67c6.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,33393c0f-3629-49f5-a6c1-4e2d63fa67c6.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=33393c0f-3629-49f5-a6c1-4e2d63fa67c6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <font face="Times New Roman" size="3">"Software + Services" is Microsoft's representation
      of what a large part of the future of computing is going to be. Microsoft, however,
      has not done a great job of explaining what "Software + Services" is.</font>
        </p>
        <p>
          <font face="Times New Roman" size="3">Based on what I have read and heard, let me
      try to explain it as I see it.</font>
        </p>
        <p>
          <font face="Times New Roman" size="3">The fundamental question that one has to ask
      is "<strong>Where does computation happen?"</strong></font>
        </p>
        <p>
          <font face="Times New Roman" size="3">The obvious answer to everyone today is: "<strong>Everywhere</strong>".</font>
        </p>
        <p>
          <font face="Times New Roman" size="3"> We compute on mobile devices, appliances, desktops
      and laptops, and remote computers. We communicate with text and voice.</font>
        </p>
        <p>
          <font face="Times New Roman" size="3">Everybody understand this. The key question
      is: "<strong>Why?</strong>"</font>
        </p>
        <p>
          <font face="Times New Roman" size="3">I think the answer is because "<strong>Hardware
      is cheap, and data is expensive to move</strong>."</font>
        </p>
        <p>
          <font face="Times New Roman" size="3">The late Jim Gray did an analysis<sup>1 </sup>of
      the economics of distributed computing. His analysis came to two conclusions:</font>
        </p>
        <p>
          <font face="Times New Roman" size="3">1. Put the computation near the data. Unless
      you have something that is very compute intensive, it is much cheaper to not move
      the data.<br />
      2. If you need data from multiple sites, push the processing closer to the data source
      by filtering the data early.</font>
        </p>
        <p>
          <font face="Times New Roman" size="3">The assumption here is that telecommunication
      prices drop slower than Moore's Law.  So far this has always been the case.</font>
        </p>
        <p>
          <font face="Times New Roman" size="3">The natural conclusion is to <strong>do the
      computation where the data naturally resides</strong>. In other words: Do what makes
      sense. Some things will be in the cloud, some things will still be on the desktop.
      As long as Internet connectivity is not ubiquitous, and not always connected, you
      may have to cache data somewhere. Depending on the mission criticality of your application,
      a few seconds could be a long time.</font>
        </p>
        <p>
          <font face="Times New Roman" size="3">As Ray Ozzie put it in his MIX Keynote, we live
      in a "World of small pieces loosely joined."</font>
        </p>
        <p>
          <font face="Times New Roman" color="#000000" size="3">Software + Services means some
      things will be services in the cloud, others will be software as we know it today. 
      That includes mobile devices and appliances that we are learning to love and hate,
      just as we have always done with traditional software.</font>
        </p>
        <p>
          <font face="Times New Roman" color="#000000" size="3">
          </font> 
   </p>
        <p>
          <font face="Times New Roman" color="#000000" size="3">1. MSR-TR-2003-24 "Distributed
      Computing Economics"<br /></font>
        </p>
        <img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=33393c0f-3629-49f5-a6c1-4e2d63fa67c6" />
      </body>
      <title>What is "Software + Services?</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,33393c0f-3629-49f5-a6c1-4e2d63fa67c6.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,33393c0f-3629-49f5-a6c1-4e2d63fa67c6.aspx</link>
      <pubDate>Tue, 23 Sep 2008 01:26:57 GMT</pubDate>
      <description>&lt;p&gt;
   &lt;font face="Times New Roman" size=3&gt;"Software + Services" is Microsoft's representation
   of what a large part of the future of computing is going to be. Microsoft, however,
   has not done a great job of explaining what "Software + Services" is.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;font face="Times New Roman" size=3&gt;Based on what I have read and heard, let me try
   to explain it as I see it.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;font face="Times New Roman" size=3&gt;The fundamental question that one has to ask is
   "&lt;strong&gt;Where does computation happen?"&lt;/strong&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;font face="Times New Roman" size=3&gt;The obvious answer to everyone today is: "&lt;strong&gt;Everywhere&lt;/strong&gt;".&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;font face="Times New Roman" size=3&gt;&amp;nbsp;We compute on mobile devices,&amp;nbsp;appliances,&amp;nbsp;desktops
   and laptops,&amp;nbsp;and remote computers. We communicate with text and voice.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;font face="Times New Roman" size=3&gt;Everybody understand this. The key question is:
   "&lt;strong&gt;Why?&lt;/strong&gt;"&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;font face="Times New Roman" size=3&gt;I think the answer is because "&lt;strong&gt;Hardware
   is cheap, and data is expensive to move&lt;/strong&gt;."&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;font face="Times New Roman" size=3&gt;The late Jim Gray did an analysis&lt;sup&gt;1 &lt;/sup&gt;of
   the economics of distributed computing. His analysis came to two conclusions:&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;font face="Times New Roman" size=3&gt;1. Put the computation near the data. Unless you
   have something that is very compute intensive, it is much cheaper to not move the
   data.&lt;br&gt;
   2. If you need data from multiple sites, push the processing closer to the data source
   by filtering the data early.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;font face="Times New Roman" size=3&gt;The assumption here is that telecommunication
   prices drop slower than Moore's Law.&amp;nbsp; So far this has always been the case.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;font face="Times New Roman" size=3&gt;The natural conclusion is to &lt;strong&gt;do the computation
   where the data naturally resides&lt;/strong&gt;. In other words: Do what makes sense. Some
   things will be in the cloud, some things will still be on the desktop. As long as
   Internet connectivity is not ubiquitous, and not always connected, you may have to
   cache data somewhere. Depending on the mission criticality of your application, a
   few seconds could be a long time.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;font face="Times New Roman" size=3&gt;As Ray Ozzie put it in his MIX Keynote, we live
   in a "World of small pieces loosely joined."&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;font face="Times New Roman" color=#000000 size=3&gt;Software + Services means some things
   will be services in the cloud, others will be software as we know it today.&amp;nbsp;
   That includes mobile devices and appliances that we are learning to love and hate,
   just as we have always done with traditional software.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;font face="Times New Roman" color=#000000 size=3&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
   &lt;font face="Times New Roman" color=#000000 size=3&gt;1. MSR-TR-2003-24 "Distributed Computing
   Economics"&lt;br&gt;
   &lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=33393c0f-3629-49f5-a6c1-4e2d63fa67c6" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,33393c0f-3629-49f5-a6c1-4e2d63fa67c6.aspx</comments>
      <category>All;SOA;Software Development;Cloud Computing</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=6507b2c6-473e-4ddc-9e66-8a161e5df6e9</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,6507b2c6-473e-4ddc-9e66-8a161e5df6e9.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,6507b2c6-473e-4ddc-9e66-8a161e5df6e9.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=6507b2c6-473e-4ddc-9e66-8a161e5df6e9</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <ul style="margin-left: 0.0201in; direction: ltr; unicode-bidi: embed; margin-top: 0in; margin-bottom: 0in;">
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">To further simplify the example,
         let us assume that the we want to use the certificate to encrypt a message from the
         client to the service. It is easy to apply what we discuss here to other scenarios.</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">As we discussed in the<a href="http://www.reliablesoftware.com/DasBlog/PermaLink,guid,c953fbc9-34f2-48d4-ba33-55d621a48d7f.aspx"> previous
         post</a>, we need to generate two certificates, the root certificate that represents
         the Certificate Authority, and the certificate that represents the identity of the
         client or service. We will also create a Certificate Revocation List (CRL).</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">We will use a tool called makeCert
         to generate our certificates. Makecert, which ships with the .NET platform,<span style="">  </span>allows
         you to build an X509 certificate that can be used for development and testing. It
         does three things:</font>
          </p>
          <ol style="margin-left: 0.375in; direction: ltr; unicode-bidi: embed; margin-top: 0in; margin-bottom: 0in; font-family: Calibri; font-size: 11pt;" type="1">
            <li value="1" style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle;">
              <p>
                <font color="#000000" size="3" face="Times New Roman">
                  <span style="font-family: Calibri; font-size: 11pt;">Generates
               a public and private key</span>
                </font>
              </p>
            </li>
            <li value="2" style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle;">
              <p>
                <font color="#000000" size="3" face="Times New Roman">
                  <span style="font-family: Calibri; font-size: 11pt;">It
               associates the key pair with a name</span>
                </font>
              </p>
            </li>
            <li value="3" style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle;">
              <p>
                <font color="#000000" size="3" face="Times New Roman">
                  <span style="font-family: Calibri; font-size: 11pt;">It
               binds the name with the public key.</span>
                </font>
              </p>
            </li>
          </ol>
          <p style="margin: 0in 0in 0in 0.375in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">Many of the published examples
         use makecert to both create and install the certificate. We will do the installation
         in a separate step because this approach is closer to the use of real certificates.<span style="">  </span>Separating
         the certificates also allows the certificates to be installed on many machines instead
         of just one. This makes distributing certificates to developer machines much easier. </font>
          </p>
          <p style="margin: 0in 0in 0in 0.375in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">First we will create the Root
         Certificate with the following command:</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in 0in 0in 0.375in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">makecert -sv RootCATest.pvk
         -r -n "CN=RootCATest" RootCATest.cer</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">-n specifies the name for the
         root certificate authority. The convention is to prefix the name with "CN=" where
         CN stands for "Common Name"</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">-r indicates that the certificate
         will be a root certificate because it is self-signed.</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">-sv specifies the file that
         contains the private key. The private key will be used for signing certificates issued
         by this certificate authority. Makecert will ask you for a password to protect the
         private key in the file.</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">The file RootCATest.cer will
         just have the public key. It is in the<span style="">  </span>Canonical Encoding
         Rules (CER) format. This is the file that will be installed on machines as the root
         of the trust chain.</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">Next we will create a certificate
         revocation list.</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">makecert -crl -n "CN=RootCATest"
         -r -sv RootCATest.pvk RootCATest.crl</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">-crl indicates we are creating
         a revocation list</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">-n is the name of the root certificate
         authority</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">-r indicates that this is the
         CRL for the root certificate, it is self-signed</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">-sv indicates the file that
         contains the private key</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">RootCATest.crl is the name of
         the CRL file.</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">At this point we could install
         the root certificate, but we will wait until we finish with the certificate we will
         use in our scenario.<span style="">  </span>Here we need two files. We will need
         a CER file for the client machine so that we can install the public key associated
         with the service. Then we will create a PKCS12<span style="">  </span>format
         file that will be used to install the public and private key in the service.</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">The initial step is :</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">makecert -ic RootCATest.cer
         -iv RootCATest.pvk -n "CN=TempCert" -sv<span style="">  </span>TempCert.pvk -pe
         -sky exchange TempCert.cer</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">-n specifies the name for the
         certificate</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">-sv specifies the file for the
         certificate. This must be unique for each certificate created. If you try to reuse
         a name, you will get an error message .</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">-iv specifies the name of the
         container file for the private key of the root certificate created in the first step.</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">-ic specifies the name of the
         root certificate file created in the first step</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">-sky specifies what kind of
         key we are creating. Using the exchange option enables the certificate to be used
         for signing and encrypting the message.</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">-pe specifies that the private
         key is exportable and is included with the certificate. For message security is this
         required because you need the corresponding private key.<span style="">  </span></font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">The name of the CER file for
         the certificate is specified at the end of the command.</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">Now we need to create the PKCS12
         file. We will use a the Software Publisher Certificate Test Tool to create a Software
         Publisher's Certificate. You use this format to create the PKCS12 file using the pvkimprt
         tool. </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">cert2spc TempCert.cer TempCert.spc </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">pvkimprt -pfx TempCert.spc TempCert.pvk</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">We now have four files:</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">RootCATest.cer</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">RootCATest.crl</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">TempCert.cer</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">TempCert.pvk</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">The next step is to install
         these on the appropriate machines. I could not get certmgr to work properly to do
         an automated install.<span style="">  </span>The Winhttpcertcfg tool works for
         PKCS12 format files, but not CER format files. We will use the MMC snap-in for this.</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">Run the mmc snapin tool (type
         mmc in the Run menu). First we will open the Certificates snap-in.<span style="">  </span>Choose:
         Add/Remove Snap-In.</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
        </ul>
        <p>
          <font color="#000000" size="3" face="Times New Roman">
            <img src="content/binary/MMC1.bmp" border="0" />
          </font>
        </p>
        <ul style="margin-left: 0.0201in; direction: ltr; unicode-bidi: embed; margin-top: 0in; margin-bottom: 0in;">
          <p style="margin: 0in;">
            <font color="#000000" size="3" face="Times New Roman">
              <br />
            </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">Then Add the Certficate Snap-In.</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
        </ul>
        <p>
          <font color="#000000" size="3" face="Times New Roman">
            <img src="content/binary/MMC2.bmp" border="0" />
          </font>
        </p>
        <ul style="margin-left: 0.0201in; direction: ltr; unicode-bidi: embed; margin-top: 0in; margin-bottom: 0in;">
          <p style="margin: 0in;">
            <font color="#000000" size="3" face="Times New Roman">
              <br />
            </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">When you add the snap-in, choose
         local computer account for the computer you want to install the certificate (usually
         the local one).</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">
              <br />
            </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">We want to install the root
         certificate on both the client and service machines<span style="">  </span>in
         the Trusted Root Certificate Store.<span style="">  </span></font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
        </ul>
        <p>
          <font color="#000000" size="3" face="Times New Roman">
            <img src="content/binary/MMC3.bmp" border="0" />
          </font>
        </p>
        <ul style="margin-left: 0.0201in; direction: ltr; unicode-bidi: embed; margin-top: 0in; margin-bottom: 0in;">
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">Select that store, right mouse
         click and install both the RootCATest.cer and RootCATest.crl files.<span style="">  </span>On
         the client side you want to install only the public key in the TempCert.cer file.<span style="">  </span>On
         the service side only you want to install the PKCS12 format file (TempCert.pvk) which
         has the private key for the certificate. Install that in the Personal store. For private
         key installation you will have to provide the password for the PKCS12 file.</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">On the service side, we need
         to give the identity of the running process (NETWORK SERVICE) the rights to read the
         private key. We use two tools FindPrivateKey and cacls to do this. Run the following
         command:</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">for /F "delims=" %%i in ('FindPrivateKey.exe
         My LocalMachine -n "CN=TempITNCert" -a') do (cacls.exe "%%i" /E /G "NT AUTHORITY\NETWORK
         SERVICE":R)</font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman"> </font>
          </p>
          <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
            <font color="#000000" size="3" face="Times New Roman">Remember to delete these certificates
         when you are finished with them.</font>
          </p>
        </ul>
        <p style="margin: 0in;">
          <font color="#000000" size="3" face="Times New Roman"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman"> </font>
        </p>
        <p>
          <font color="#000000" size="3" face="Times New Roman">
            <br />
          </font>
        </p>
        <br />
        <img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=6507b2c6-473e-4ddc-9e66-8a161e5df6e9" />
      </body>
      <title>Developing with X509 Certificates</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,6507b2c6-473e-4ddc-9e66-8a161e5df6e9.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,6507b2c6-473e-4ddc-9e66-8a161e5df6e9.aspx</link>
      <pubDate>Wed, 10 Sep 2008 01:07:45 GMT</pubDate>
      <description>&lt;ul style="margin-left: 0.0201in; direction: ltr; unicode-bidi: embed; margin-top: 0in; margin-bottom: 0in;"&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;To further simplify the example,
      let us assume that the we want to use the certificate to encrypt a message from the
      client to the service. It is easy to apply what we discuss here to other scenarios.&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;As we discussed in the&lt;a href="http://www.reliablesoftware.com/DasBlog/PermaLink,guid,c953fbc9-34f2-48d4-ba33-55d621a48d7f.aspx"&gt; previous
      post&lt;/a&gt;, we need to generate two certificates, the root certificate that represents
      the Certificate Authority, and the certificate that represents the identity of the
      client or service. We will also create a Certificate Revocation List (CRL).&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;We will use a tool called makeCert
      to generate our certificates. Makecert, which ships with the .NET platform,&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;allows
      you to build an X509 certificate that can be used for development and testing. It
      does three things:&lt;/font&gt;
   &lt;/p&gt;
   &lt;ol style="margin-left: 0.375in; direction: ltr; unicode-bidi: embed; margin-top: 0in; margin-bottom: 0in; font-family: Calibri; font-size: 11pt;" type="1"&gt;
      &lt;li value="1" style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle;"&gt;
         &lt;p&gt;
            &lt;font color="#000000" size="3" face="Times New Roman"&gt;&lt;span style="font-family: Calibri; font-size: 11pt;"&gt;Generates
            a public and private key&lt;/span&gt;&lt;/font&gt;
         &lt;/p&gt;
      &lt;/li&gt;
      &lt;li value="2" style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle;"&gt;
         &lt;p&gt;
            &lt;font color="#000000" size="3" face="Times New Roman"&gt;&lt;span style="font-family: Calibri; font-size: 11pt;"&gt;It
            associates the key pair with a name&lt;/span&gt;&lt;/font&gt;
         &lt;/p&gt;
      &lt;/li&gt;
      &lt;li value="3" style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle;"&gt;
         &lt;p&gt;
            &lt;font color="#000000" size="3" face="Times New Roman"&gt;&lt;span style="font-family: Calibri; font-size: 11pt;"&gt;It
            binds the name with the public key.&lt;/span&gt;&lt;/font&gt;
         &lt;/p&gt;
      &lt;/li&gt;
   &lt;/ol&gt;
   &lt;p style="margin: 0in 0in 0in 0.375in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;Many of the published examples
      use makecert to both create and install the certificate. We will do the installation
      in a separate step because this approach is closer to the use of real certificates.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;Separating
      the certificates also allows the certificates to be installed on many machines instead
      of just one. This makes distributing certificates to developer machines much easier. &lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in 0in 0in 0.375in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;First we will create the Root
      Certificate with the following command:&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in 0in 0in 0.375in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;makecert -sv RootCATest.pvk
      -r -n "CN=RootCATest" RootCATest.cer&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;-n specifies the name for the
      root certificate authority. The convention is to prefix the name with "CN=" where
      CN stands for "Common Name"&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;-r indicates that the certificate
      will be a root certificate because it is self-signed.&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;-sv specifies the file that
      contains the private key. The private key will be used for signing certificates issued
      by this certificate authority. Makecert will ask you for a password to protect the
      private key in the file.&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;The file RootCATest.cer will
      just have the public key. It is in the&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;Canonical Encoding
      Rules (CER) format. This is the file that will be installed on machines as the root
      of the trust chain.&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;Next we will create a certificate
      revocation list.&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;makecert -crl -n "CN=RootCATest"
      -r -sv RootCATest.pvk RootCATest.crl&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;-crl indicates we are creating
      a revocation list&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;-n is the name of the root certificate
      authority&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;-r indicates that this is the
      CRL for the root certificate, it is self-signed&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;-sv indicates the file that
      contains the private key&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;RootCATest.crl is the name of
      the CRL file.&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;At this point we could install
      the root certificate, but we will wait until we finish with the certificate we will
      use in our scenario.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;Here we need two files. We will need
      a CER file for the client machine so that we can install the public key associated
      with the service. Then we will create a PKCS12&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;format
      file that will be used to install the public and private key in the service.&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;The initial step is :&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;makecert -ic RootCATest.cer
      -iv RootCATest.pvk -n "CN=TempCert" -sv&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;TempCert.pvk -pe
      -sky exchange TempCert.cer&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;-n specifies the name for the
      certificate&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;-sv specifies the file for the
      certificate. This must be unique for each certificate created. If you try to reuse
      a name, you will get an error message .&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;-iv specifies the name of the
      container file for the private key of the root certificate created in the first step.&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;-ic specifies the name of the
      root certificate file created in the first step&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;-sky specifies what kind of
      key we are creating. Using the exchange option enables the certificate to be used
      for signing and encrypting the message.&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;-pe specifies that the private
      key is exportable and is included with the certificate. For message security is this
      required because you need the corresponding private key.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;The name of the CER file for
      the certificate is specified at the end of the command.&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;Now we need to create the PKCS12
      file. We will use a the Software Publisher Certificate Test Tool to create a Software
      Publisher's Certificate. You use this format to create the PKCS12 file using the pvkimprt
      tool. &lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;cert2spc TempCert.cer TempCert.spc &lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;pvkimprt -pfx TempCert.spc TempCert.pvk&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;We now have four files:&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;RootCATest.cer&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;RootCATest.crl&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;TempCert.cer&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;TempCert.pvk&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;The next step is to install
      these on the appropriate machines. I could not get certmgr to work properly to do
      an automated install.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;The Winhttpcertcfg tool works for
      PKCS12 format files, but not CER format files. We will use the MMC snap-in for this.&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;Run the mmc snapin tool (type
      mmc in the Run menu). First we will open the Certificates snap-in.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;Choose:
      Add/Remove Snap-In.&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
&lt;/ul&gt;
&lt;p&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;&lt;img src="content/binary/MMC1.bmp" border="0"&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul style="margin-left: 0.0201in; direction: ltr; unicode-bidi: embed; margin-top: 0in; margin-bottom: 0in;"&gt;
   &lt;p style="margin: 0in;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;
      &lt;br&gt;
      &lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;Then Add the Certficate Snap-In.&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
&lt;/ul&gt;
&lt;p&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;&lt;img src="content/binary/MMC2.bmp" border="0"&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul style="margin-left: 0.0201in; direction: ltr; unicode-bidi: embed; margin-top: 0in; margin-bottom: 0in;"&gt;
   &lt;p style="margin: 0in;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;
      &lt;br&gt;
      &lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;When you add the snap-in, choose
      local computer account for the computer you want to install the certificate (usually
      the local one).&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;
      &lt;br&gt;
      &lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;We want to install the root
      certificate on both the client and service machines&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;in
      the Trusted Root Certificate Store.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
&lt;/ul&gt;
&lt;p&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;&lt;img src="content/binary/MMC3.bmp" border="0"&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul style="margin-left: 0.0201in; direction: ltr; unicode-bidi: embed; margin-top: 0in; margin-bottom: 0in;"&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;Select that store, right mouse
      click and install both the RootCATest.cer and RootCATest.crl files.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;On
      the client side you want to install only the public key in the TempCert.cer file.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;On
      the service side only you want to install the PKCS12 format file (TempCert.pvk) which
      has the private key for the certificate. Install that in the Personal store. For private
      key installation you will have to provide the password for the PKCS12 file.&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;On the service side, we need
      to give the identity of the running process (NETWORK SERVICE) the rights to read the
      private key. We use two tools FindPrivateKey and cacls to do this. Run the following
      command:&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;for /F "delims=" %%i in ('FindPrivateKey.exe
      My LocalMachine -n "CN=TempITNCert" -a') do (cacls.exe "%%i" /E /G "NT AUTHORITY\NETWORK
      SERVICE":R)&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/p&gt;
   &lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
      &lt;font color="#000000" size="3" face="Times New Roman"&gt;Remember to delete these certificates
      when you are finished with them.&lt;/font&gt;
   &lt;/p&gt;
&lt;/ul&gt;
&lt;p style="margin: 0in;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;
   &lt;br&gt;
   &lt;/font&gt;
&lt;/p&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=6507b2c6-473e-4ddc-9e66-8a161e5df6e9" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,6507b2c6-473e-4ddc-9e66-8a161e5df6e9.aspx</comments>
      <category>Microsoft .NET;SOA;Software Development</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=c953fbc9-34f2-48d4-ba33-55d621a48d7f</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,c953fbc9-34f2-48d4-ba33-55d621a48d7f.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,c953fbc9-34f2-48d4-ba33-55d621a48d7f.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=c953fbc9-34f2-48d4-ba33-55d621a48d7f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman">Working with X509 certificates
      can be very frustrating for WCF developers. </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman">This is the first of two posts.
      In this post I will explain just enough of the background for X509 certificates so
      that I can explain in the next post how to create and use certificates during .NET
      development with WCF.   The second post is <a href="http://www.reliablesoftware.com/DasBlog/PermaLink,guid,6507b2c6-473e-4ddc-9e66-8a161e5df6e9.aspx">here</a>.<br /></font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman">I do not know any good books
      for a developer that explains how to use certificates. Even the excellent books on
      WCF just give you the certificates you need to get the sample code to work. They do
      not really explain to you why you are installing different certificates into different
      stores, or how to generate the certificates you need to get your software to work.
      Very often the examples run on one machine with the client and service sharing the
      same store. This is not a realistic scenario.</font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman">Obviously I cannot explain all
      about certificates in one blog post. I just wish to share some knowledge. Hopefully
      it will spare you some grief.</font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman">Here is the problem I want to
      solve. </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman">Suppose you have a set of web
      services that is accessed by either an ASP.NET or rich client. The service requires
      the client application to use an X509 certificate to access the service. This could
      be to encrypt the data, to identify the client, to sign the data to avoid repudiation,
      or for a number of other reasons. How do you install the certificates on the client
      and service machines?</font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman">Certificate technology is based
      on <a target="_blank" href="http://en.wikipedia.org/wiki/Public-key_cryptography">asymmetric
      encryption</a>.<span style="">  </span></font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman">In the encryption scenario,
      the client would use the public key of the service to encrypt the traffic.<span style="">  </span>The
      service would use its private key to decrypt the message.<span style="">  </span>In
      the identification scenario the service would use the public key of the client to
      identify a message signed with the client's private key.</font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman">One of the key issues is how
      you can be sure that the public key is associated with a given identity. Perhaps somebody
      substituted their key for the one you should be using.<span style="">  </span>Perhaps
      somebody is hijacking calls to the service, or you made a mistake in the address of
      the service.<span style="">  </span>A classic example of these types of vulnerabilities<span style="">  </span>is
      the "<a target="_blank" href="http://en.wikipedia.org/wiki/Man-in-the-middle_attack">man
      in the middle attack</a>".<span style="">  </span>Another key issue is that the
      private key cannot be read or modified by unauthorized parties.</font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman">Public Key Infrastructure (PKI)
      is the name for a technology that uses a certificate authority (CA) to bind the public
      key to an identity. This identity is unique to the certificate authority. X509 is
      a standard for implementing a PKI.<span style="">  </span>An X509 certificate
      represents an association between an identity and a public key.</font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman">An X509 certificate is issued
      by a given Certificate Authority to represent its guarantee that a public key is associated
      with a particular identity. Depending on how much you trust the CA, and the amount
      of identity verification the CA did, would determine how much trust you have in the
      certificate. For example VeriSign issues different types of certificates depending
      on how much verification was done. Sometimes organizations will be their own certificate
      authorities and issues certificates because they want the maximum amount of control.</font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman">This relationship between a
      CA and its issued certificates is represented in the "chain of trust". Each X509 certificate
      is signed with the private key of the CA. In order to verify the chain of trust you
      need the CA's public key.<span style="">  </span>If you are your own CA authority
      you can distribute the X509 certificate representing this "root certificate".<span style="">  </span>Some
      browsers and operating systems install root certificates as part of their setup. So
      the manufacturer of the browser or operating system is part of the chain of trust.</font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman">The X509 standard also includes
      a certificate revocation list (CRL) which is a mechanism for checking whether a certificate
      has been revoked by the CA.<span style="">  </span>The standard does not specify
      how often this checking is done. By default, Internet Explorer and Firefox do not
      check for certificate revocation. Certificates also contain an expiration date.</font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman">Another approach to trust is
      called "<a target="_blank" href="http://en.wikipedia.org/wiki/Web_of_trust">peer to
      peer</a>" trust, or "web of trust".<span style="">  </span>Given the difficulties
      of peer trust it is not practical for most Internet applications. It can, however,
      make development scenarios simpler. Your development environment, however,<span style="">  </span>should
      mimic your deployment environment.<span style="">  </span>Hence I do not recommend
      using peer to peer trust unless that is practical for your deployed solution.</font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman">There are various protocols
      for transmitting certificates.<span style="">  </span>We will be interested in
      two of them.</font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman">The Canonical Encoding Rules
      (CER) protocol will be used to digitally transmit the public key of a given identity.
      The PKCS12 protocol will be used to transmit the public and private keys. The private
      key will be password protected.</font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" size="3" face="Times New Roman">The next post will describe
      the mechanisms for creating and installing certificates in a .NET development environment.</font>
        </p>
        <p>
        </p>
        <img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=c953fbc9-34f2-48d4-ba33-55d621a48d7f" />
      </body>
      <title>X509 Certificates for Developers </title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,c953fbc9-34f2-48d4-ba33-55d621a48d7f.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,c953fbc9-34f2-48d4-ba33-55d621a48d7f.aspx</link>
      <pubDate>Sun, 24 Aug 2008 14:02:20 GMT</pubDate>
      <description>&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;Working with X509 certificates
   can be very frustrating for WCF developers. &lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;This is the first of two posts.
   In this post I will explain just enough of the background for X509 certificates so
   that I can explain in the next post how to create and use certificates during .NET
   development with WCF.&amp;nbsp;&amp;nbsp; The second post is &lt;a href="http://www.reliablesoftware.com/DasBlog/PermaLink,guid,6507b2c6-473e-4ddc-9e66-8a161e5df6e9.aspx"&gt;here&lt;/a&gt;.&lt;br&gt;
   &lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;I do not know any good books
   for a developer that explains how to use certificates. Even the excellent books on
   WCF just give you the certificates you need to get the sample code to work. They do
   not really explain to you why you are installing different certificates into different
   stores, or how to generate the certificates you need to get your software to work.
   Very often the examples run on one machine with the client and service sharing the
   same store. This is not a realistic scenario.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;Obviously I cannot explain all
   about certificates in one blog post. I just wish to share some knowledge. Hopefully
   it will spare you some grief.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;Here is the problem I want to
   solve. &lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;Suppose you have a set of web
   services that is accessed by either an ASP.NET or rich client. The service requires
   the client application to use an X509 certificate to access the service. This could
   be to encrypt the data, to identify the client, to sign the data to avoid repudiation,
   or for a number of other reasons. How do you install the certificates on the client
   and service machines?&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;Certificate technology is based
   on &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Public-key_cryptography"&gt;asymmetric
   encryption&lt;/a&gt;.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;In the encryption scenario,
   the client would use the public key of the service to encrypt the traffic.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;The
   service would use its private key to decrypt the message.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;In
   the identification scenario the service would use the public key of the client to
   identify a message signed with the client's private key.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;One of the key issues is how
   you can be sure that the public key is associated with a given identity. Perhaps somebody
   substituted their key for the one you should be using.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;Perhaps
   somebody is hijacking calls to the service, or you made a mistake in the address of
   the service.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;A classic example of these types of vulnerabilities&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;is
   the "&lt;a target="_blank" href="http://en.wikipedia.org/wiki/Man-in-the-middle_attack"&gt;man
   in the middle attack&lt;/a&gt;".&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;Another key issue is that the
   private key cannot be read or modified by unauthorized parties.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;Public Key Infrastructure (PKI)
   is the name for a technology that uses a certificate authority (CA) to bind the public
   key to an identity. This identity is unique to the certificate authority. X509 is
   a standard for implementing a PKI.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;An X509 certificate
   represents an association between an identity and a public key.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;An X509 certificate is issued
   by a given Certificate Authority to represent its guarantee that a public key is associated
   with a particular identity. Depending on how much you trust the CA, and the amount
   of identity verification the CA did, would determine how much trust you have in the
   certificate. For example VeriSign issues different types of certificates depending
   on how much verification was done. Sometimes organizations will be their own certificate
   authorities and issues certificates because they want the maximum amount of control.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;This relationship between a
   CA and its issued certificates is represented in the "chain of trust". Each X509 certificate
   is signed with the private key of the CA. In order to verify the chain of trust you
   need the CA's public key.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;If you are your own CA authority
   you can distribute the X509 certificate representing this "root certificate".&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;Some
   browsers and operating systems install root certificates as part of their setup. So
   the manufacturer of the browser or operating system is part of the chain of trust.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;The X509 standard also includes
   a certificate revocation list (CRL) which is a mechanism for checking whether a certificate
   has been revoked by the CA.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;The standard does not specify
   how often this checking is done. By default, Internet Explorer and Firefox do not
   check for certificate revocation. Certificates also contain an expiration date.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;Another approach to trust is
   called "&lt;a target="_blank" href="http://en.wikipedia.org/wiki/Web_of_trust"&gt;peer to
   peer&lt;/a&gt;" trust, or "web of trust".&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;Given the difficulties
   of peer trust it is not practical for most Internet applications. It can, however,
   make development scenarios simpler. Your development environment, however,&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;should
   mimic your deployment environment.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;Hence I do not recommend
   using peer to peer trust unless that is practical for your deployed solution.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;There are various protocols
   for transmitting certificates.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;We will be interested in
   two of them.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;The Canonical Encoding Rules
   (CER) protocol will be used to digitally transmit the public key of a given identity.
   The PKCS12 protocol will be used to transmit the public and private keys. The private
   key will be password protected.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" size="3" face="Times New Roman"&gt;The next post will describe
   the mechanisms for creating and installing certificates in a .NET development environment.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=c953fbc9-34f2-48d4-ba33-55d621a48d7f" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,c953fbc9-34f2-48d4-ba33-55d621a48d7f.aspx</comments>
      <category>Microsoft .NET;SOA;Software Development</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=1fa49845-b93c-425f-ab56-224694398cf0</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,1fa49845-b93c-425f-ab56-224694398cf0.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,1fa49845-b93c-425f-ab56-224694398cf0.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=1fa49845-b93c-425f-ab56-224694398cf0</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">On Friday, June 6 of Microsoft's Tech-Ed
   I will be hosting a Birds of a Feather Session on the topic "Software + Services is
   For Small Companies Too". It will be held in Room S330 E at noon.<br /><br />
   To continue the conversation, please add your comments and opinions to this blog post.
   If you are unable to attend feel free to add your thoughts as well here.<br /><br />
   Here are some questions to get you started thinking about the topic:<br /><br />
   What is Software + Services?          
   <br />
             
   <br />
   Are small companies afraid of software + services? Are they afraid of cloud computing?
   Why?          
   <br />
             
   <br />
   Doesn't cloud computing leverage the efforts of small companies? If cloud computing
   makes IT a commodity, doesn't this allow small companies to be even more nimble in
   their development efforts?          
   <br />
             
   <br />
   What are the real advantages that large companies have over small companies? What
   about the innovators dillemma? How do large companies keep their current customers
   happy and assure future growth through innovation?  Doesn't this help small companies.
   Doesn't cloud computing help small companies innovate even more?<br /><br /><p></p><a href="http://teched2008.leveragesoftware.com/profile_view.aspx?customerid=michaelstiefel"><img src="http://teched2008.leveragesoftware.com/businesscard.aspx?customerid=michaelstiefel" alt="Join Me at Tech·Ed Connect!" border="0" /></a><img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=1fa49845-b93c-425f-ab56-224694398cf0" /></body>
      <title>Software + Services Is For Small Companies Too</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,1fa49845-b93c-425f-ab56-224694398cf0.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,1fa49845-b93c-425f-ab56-224694398cf0.aspx</link>
      <pubDate>Mon, 02 Jun 2008 02:47:05 GMT</pubDate>
      <description>On Friday, June 6 of Microsoft's Tech-Ed I will be hosting a Birds of a Feather Session on the topic "Software + Services is For Small Companies Too". It will be held in Room S330 E at noon.&lt;br&gt;
&lt;br&gt;
To continue the conversation, please add your comments and opinions to this blog post.
If you are unable to attend feel free to add your thoughts as well here.&lt;br&gt;
&lt;br&gt;
Here are some questions to get you started thinking about the topic:&lt;br&gt;
&lt;br&gt;
What is Software + Services?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;br&gt;
Are small companies afraid of software + services? Are they afraid of cloud computing?
Why?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;br&gt;
Doesn't cloud computing leverage the efforts of small companies? If cloud computing
makes IT a commodity, doesn't this allow small companies to be even more nimble in
their development efforts?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;br&gt;
What are the real advantages that large companies have over small companies? What
about the innovators dillemma? How do large companies keep their current customers
happy and assure future growth through innovation?&amp;nbsp; Doesn't this help small companies.
Doesn't cloud computing help small companies innovate even more?&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;a href="http://teched2008.leveragesoftware.com/profile_view.aspx?customerid=michaelstiefel"&gt;&lt;img src="http://teched2008.leveragesoftware.com/businesscard.aspx?customerid=michaelstiefel" alt="Join Me at Tech·Ed Connect!" border="0"&gt;&lt;/a&gt; &lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=1fa49845-b93c-425f-ab56-224694398cf0" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,1fa49845-b93c-425f-ab56-224694398cf0.aspx</comments>
      <category>Microsoft .NET;SOA;Software Development</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=457b4176-fa3c-45c8-8927-31a3b5126dab</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,457b4176-fa3c-45c8-8927-31a3b5126dab.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,457b4176-fa3c-45c8-8927-31a3b5126dab.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=457b4176-fa3c-45c8-8927-31a3b5126dab</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">I have put my VSLive! talk, explaining
   how to use Windows Comunication Foundation and Windows Workflow Foundation together
   to create distributed applications in the Presentations section of my web site.<br /><p></p><img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=457b4176-fa3c-45c8-8927-31a3b5126dab" /></body>
      <title>Workflow Services Using WCF and WF Uploaded</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,457b4176-fa3c-45c8-8927-31a3b5126dab.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,457b4176-fa3c-45c8-8927-31a3b5126dab.aspx</link>
      <pubDate>Fri, 04 Apr 2008 02:36:37 GMT</pubDate>
      <description>I have put my VSLive! talk, explaining how to use Windows Comunication Foundation and Windows Workflow Foundation together to create distributed applications in the Presentations section of my web site.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=457b4176-fa3c-45c8-8927-31a3b5126dab" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,457b4176-fa3c-45c8-8927-31a3b5126dab.aspx</comments>
      <category>All;Microsoft .NET;SOA;Workflow</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=de4bd4fe-242d-494c-b13f-1d77f01dfc9b</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,de4bd4fe-242d-494c-b13f-1d77f01dfc9b.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,de4bd4fe-242d-494c-b13f-1d77f01dfc9b.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=de4bd4fe-242d-494c-b13f-1d77f01dfc9b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">I did a short <a href="http://www.cstechcast.com/home.aspx?Episode=14">podcast </a>for
   Consortio Services about Software as a Service as part of their weekly techcast. 
   <br /><br />
   I very briefly cover what SaaS is about and some of the critical issues facing organizations
   looking at delivering services using the SaaS model.<p></p><img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=de4bd4fe-242d-494c-b13f-1d77f01dfc9b" /></body>
      <title>SaaS Podcast</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,de4bd4fe-242d-494c-b13f-1d77f01dfc9b.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,de4bd4fe-242d-494c-b13f-1d77f01dfc9b.aspx</link>
      <pubDate>Thu, 06 Mar 2008 05:42:48 GMT</pubDate>
      <description>I did a short &lt;a href="http://www.cstechcast.com/home.aspx?Episode=14"&gt;podcast &lt;/a&gt;for
Consortio Services about Software as a Service as part of their weekly techcast. 
&lt;br&gt;
&lt;br&gt;
I very briefly cover what SaaS is about and some of the critical issues facing organizations
looking at delivering services using the SaaS model.&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=de4bd4fe-242d-494c-b13f-1d77f01dfc9b" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,de4bd4fe-242d-494c-b13f-1d77f01dfc9b.aspx</comments>
      <category>All;SOA;Software Development</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=5b1e5222-d09f-4000-a9ef-e3cd200dd5ef</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,5b1e5222-d09f-4000-a9ef-e3cd200dd5ef.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,5b1e5222-d09f-4000-a9ef-e3cd200dd5ef.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=5b1e5222-d09f-4000-a9ef-e3cd200dd5ef</wfw:commentRss>
      <title>Speaking at VSLive! in San Francisco April 1-3.</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,5b1e5222-d09f-4000-a9ef-e3cd200dd5ef.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,5b1e5222-d09f-4000-a9ef-e3cd200dd5ef.aspx</link>
      <pubDate>Tue, 04 Mar 2008 17:24:29 GMT</pubDate>
      <description>I am going to be giving two talks and a workshop at VS Live! in San Francisco.&lt;br&gt;
&lt;br&gt;
The first talk is an &lt;a href="http://vslive.com/2008/sf/corenet.aspx#vc7"&gt;"Introduction
to Windows Workflow Foundation"&lt;/a&gt; where I explain both the business reasons why
Microsoft developed Workflow Foundation as well as the technical fundamentals. This
talk will help you understand not only how to build workflows, but when it makes sense
to do so and when to use some other technology.&lt;br&gt;
&lt;br&gt;
The second is "&lt;a href="http://vslive.com/2008/sf/corenet.aspx#vc63"&gt;Workflow Services
Using WCF and WWF&lt;/a&gt;". WCF allows you to encapsulate business functionality into
a service. Windows Workflow Foundation allows you to integrate these services into
long running business processes. The latest version of the .NET Framework (3.5) makes
it much easier to use these technologies together to build some very powerful business
applications.&lt;br&gt;
&lt;br&gt;
On Thursday I will give a &lt;a href="http://vslive.com/2008/sf/workshops.aspx#vpo2"&gt;whole
day tutorial&lt;/a&gt; on Workflow Foundation where will dive into the details of how to
use this technology to build business applications.&lt;br&gt;
&lt;br&gt;
Other speakers will talk about VSTS, ALM, Silverlight, AJAX, .NET Framework 3.0 and
3.5, Sharepoint 2007, Windows WF, Visual Studio 2008, SQL Server 2008, and much more.&lt;br&gt;
&lt;br&gt;
If you have not already registered for VSLive San Francisco, you can receive a $695
discount on the Gold Passport if you register using priority code&lt;font color="#000000" face="Times New Roman" size="3"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt; &lt;span style="color: red;"&gt;SPSTI&lt;/span&gt;.
More at &lt;a title="blocked::http://www.vslive.com/sf" href="http://www.vslive.com/sf"&gt;www.vslive.com/sf&lt;/a&gt; 
&lt;o:p&gt;
   &lt;br&gt;
   &lt;br&gt;
&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman" size="3"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;.&lt;/span&gt;&lt;/font&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img src="http://www.reliablesoftware.com/DasBlog/content/binary/VSSF08_SeeMe_SPSTI.gif" border="0"&gt;&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=5b1e5222-d09f-4000-a9ef-e3cd200dd5ef" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,5b1e5222-d09f-4000-a9ef-e3cd200dd5ef.aspx</comments>
      <category>All;Microsoft .NET;SOA;Software Development;Workflow</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=50e845e2-7de7-4834-9728-637c4406903a</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,50e845e2-7de7-4834-9728-637c4406903a.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,50e845e2-7de7-4834-9728-637c4406903a.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=50e845e2-7de7-4834-9728-637c4406903a</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <font color="#000000" face="Times New Roman" size="3">The Windows Workflow Foundation
      (WF) ships with a Policy Activity that allows you to execute a set of rules against
      your workflow. This activity contains a design time rules editor that allows you to
      create a set of rules. At run time, the Policy Activity runs these rules using the
      WF Rules engine. </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" face="Times New Roman" size="3">Among other features, the rules
      engine allows you to prioritize rules and to set a chaining policy to govern rules
      evaluation.<span style="">  </span>The rules engine uses a set of Code DOM expressions
      to represent the rules. These rules can be run against any managed object, not just
      a workflow. Hence, the mechanisms of the rules engine have nothing to do with workflow.
      You can actually instantiate and use this rules engine without having to embed it
      inside of a workflow. You can use this rules engine to build rules-driven .NET applications.</font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" face="Times New Roman" size="3"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" face="Times New Roman" size="3">I gave a <a href="../presentations.html##Workflow">talk</a> at
      the last Las Vegas VSLive! that demonstrates how to do this. The first sample in the
      talk uses a workflow to demonstrate the power of the rules engine. The second and
      third samples use a very simple example to demonstrate how to use the engine outside
      of a workflow.</font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" face="Times New Roman" size="3"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" face="Times New Roman" size="3">Two problems have to be solved.<span style="">  </span>You
      have to create a set of Code DOM expressions for the rules. You have to host the engine
      and supply it the rules and the object to run the rules against. </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" face="Times New Roman" size="3"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" face="Times New Roman" size="3">While the details are in the
      slides and the examples, here is the gist of the solution. </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" face="Times New Roman" size="3"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" face="Times New Roman" size="3">To use the rules engine at runtime,
      you pull the workflow rules out of some storage mechanism. The first sample uses a
      file. A WorkflowMarkupSerializer instance deserializes the stored rules to an instance
      of the RuleSet class.<span style="">  </span>A RuleValidation instance validates
      the rules against the type of the business object against which you will run the rules
      against. The Execute method on the RuleExecution class is used to invoke the rules
      engine and run the rules.</font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" face="Times New Roman" size="3"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" face="Times New Roman" size="3">How do you create the rules?
      Ideally you would use some domain language, or domain based application, that would
      generate the rules as Code DOM expressions. If you were masochistic enough, you could
      create those expressions by hand. </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" face="Times New Roman" size="3"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" face="Times New Roman" size="3">As an alternative, the second
      sample hosts the Workflow rules editor dialog (RuleSetDialog class) to let you create
      the rules. Unfortunately, like the workflow designer, this is a programmer's tool,
      not a business analyst's tool. <span style=""></span>A WorkflowMarkupSerializer
      instance is used to serialize the rules to the appropriate storage.<br /></font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" face="Times New Roman" size="3"> </font>
        </p>
        <p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
          <font color="#000000" face="Times New Roman" size="3">I would be interested in hearing
      about how people use this engine to build rules driven applications.</font>
        </p>
        <p>
        </p>
        <img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=50e845e2-7de7-4834-9728-637c4406903a" />
      </body>
      <title>Using the WF Rules Engine Outside of a Workflow</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,50e845e2-7de7-4834-9728-637c4406903a.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,50e845e2-7de7-4834-9728-637c4406903a.aspx</link>
      <pubDate>Thu, 22 Nov 2007 19:23:55 GMT</pubDate>
      <description>&lt;p&gt;
   &lt;font color="#000000" face="Times New Roman" size="3"&gt;The Windows Workflow Foundation
   (WF) ships with a Policy Activity that allows you to execute a set of rules against
   your workflow. This activity contains a design time rules editor that allows you to
   create a set of rules. At run time, the Policy Activity runs these rules using the
   WF Rules engine. &lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" face="Times New Roman" size="3"&gt;Among other features, the rules
   engine allows you to prioritize rules and to set a chaining policy to govern rules
   evaluation.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;The rules engine uses a set of Code DOM expressions
   to represent the rules. These rules can be run against any managed object, not just
   a workflow. Hence, the mechanisms of the rules engine have nothing to do with workflow.
   You can actually instantiate and use this rules engine without having to embed it
   inside of a workflow. You can use this rules engine to build rules-driven .NET applications.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" face="Times New Roman" size="3"&gt;I gave a &lt;a href="../presentations.html##Workflow"&gt;talk&lt;/a&gt; at
   the last Las Vegas VSLive! that demonstrates how to do this. The first sample in the
   talk uses a workflow to demonstrate the power of the rules engine. The second and
   third samples use a very simple example to demonstrate how to use the engine outside
   of a workflow.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" face="Times New Roman" size="3"&gt;Two problems have to be solved.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;You
   have to create a set of Code DOM expressions for the rules. You have to host the engine
   and supply it the rules and the object to run the rules against. &lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" face="Times New Roman" size="3"&gt;While the details are in the
   slides and the examples, here is the gist of the solution. &lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" face="Times New Roman" size="3"&gt;To use the rules engine at runtime,
   you pull the workflow rules out of some storage mechanism. The first sample uses a
   file. A WorkflowMarkupSerializer instance deserializes the stored rules to an instance
   of the RuleSet class.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;A RuleValidation instance validates
   the rules against the type of the business object against which you will run the rules
   against. The Execute method on the RuleExecution class is used to invoke the rules
   engine and run the rules.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" face="Times New Roman" size="3"&gt;How do you create the rules?
   Ideally you would use some domain language, or domain based application, that would
   generate the rules as Code DOM expressions. If you were masochistic enough, you could
   create those expressions by hand. &lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" face="Times New Roman" size="3"&gt;As an alternative, the second
   sample hosts the Workflow rules editor dialog (RuleSetDialog class) to let you create
   the rules. Unfortunately, like the workflow designer, this is a programmer's tool,
   not a business analyst's tool.&amp;nbsp;&lt;span style=""&gt;&lt;/span&gt;A WorkflowMarkupSerializer
   instance is used to serialize the rules to the appropriate storage.&lt;br&gt;
   &lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;
   &lt;font color="#000000" face="Times New Roman" size="3"&gt;I would be interested in hearing
   about how people use this engine to build rules driven applications.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=50e845e2-7de7-4834-9728-637c4406903a" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,50e845e2-7de7-4834-9728-637c4406903a.aspx</comments>
      <category>All;Microsoft .NET;SOA;Software Development;Workflow</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=33ae57d1-2a6c-44a5-bb60-5f65325bfe28</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,33ae57d1-2a6c-44a5-bb60-5f65325bfe28.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,33ae57d1-2a6c-44a5-bb60-5f65325bfe28.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=33ae57d1-2a6c-44a5-bb60-5f65325bfe28</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Meditation is supposed to develop awareness,
   help focus your attention, and relax while increasing your focus. At one of my current
   clients we are developing a Software as a Service (SaaS) application. We have developed
   the following "meditative principles":<br /><br />
   1. It's not done until the tests are done.<br />
   2. If it's broke, fix it first.<br />
   3. If it's not in a script or code, it doesn't exist.<br />
   4. Don't explain, do it (but ask questions if you don't understand).<br /><br />
   And finally (with apologies to Bobby McFerrin),<br /><br />
    "Don't worry, be agile".<br /><br />
   Here is a little song I wrote<br />
   You might want to sing it note for note<br />
   Don't worry be agile<br />
   In every software we have some trouble<br />
   When you worry you make it double<br />
   Don't worry, be agile<br /><br />
   Ain't got no place to lay your head<br />
   Somebody came and took your machine<br />
   Don't worry, be agile<br />
   The manager say your code is late<br />
   He may have to litigate<br />
   Don't worry, be agile<br />
   Look at me I refactor<br />
   Don't worry, be agile<br />
   Here I give you my url<br />
   When you worry call me<br />
   I make you agile<br />
   Don't worry, be agile<br />
   Ain't got no time ain't got no style<br />
   Ain't got not money to make you smile<br />
   But don't worry self organize<br />
   Cause when you worry<br />
   Your face will frown<br />
   And that will bring everybody down<br />
   So don't worry, be agile (now)<br /><br />
   There is this little song I wrote<br />
   I hope you learn it note for note<br />
   Like good little developers<br />
   Don't worry, be agile<br />
   Listen to what I say<br />
   In your software expect some trouble<br />
   But when you worry<br />
   You make it double<br />
   Don't worry, be agile<br />
   Don't worry don't do it, be agile<br />
   Put a smile on your face<br />
   Don't bring everybody down like this<br />
   Don't worry, it will soon pass<br />
   Whatever it is<br />
   Don't worry, be agile<br /><br /><p></p><img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=33ae57d1-2a6c-44a5-bb60-5f65325bfe28" /></body>
      <title>Developer Meditations</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,33ae57d1-2a6c-44a5-bb60-5f65325bfe28.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,33ae57d1-2a6c-44a5-bb60-5f65325bfe28.aspx</link>
      <pubDate>Wed, 31 Oct 2007 17:32:21 GMT</pubDate>
      <description>Meditation is supposed to develop awareness, help focus your attention, and relax while increasing your focus. At one of my current clients we are developing a Software as a Service (SaaS) application. We have developed the following "meditative principles":&lt;br&gt;
&lt;br&gt;
1. It's not done until the tests are done.&lt;br&gt;
2. If it's broke, fix it first.&lt;br&gt;
3. If it's not in a script or code, it doesn't exist.&lt;br&gt;
4. Don't explain, do it (but ask questions if you don't understand).&lt;br&gt;
&lt;br&gt;
And finally (with apologies to Bobby McFerrin),&lt;br&gt;
&lt;br&gt;
&amp;nbsp;"Don't worry, be agile".&lt;br&gt;
&lt;br&gt;
Here is a little song I wrote&lt;br&gt;
You might want to sing it note for note&lt;br&gt;
Don't worry be agile&lt;br&gt;
In every software we have some trouble&lt;br&gt;
When you worry you make it double&lt;br&gt;
Don't worry, be agile&lt;br&gt;
&lt;br&gt;
Ain't got no place to lay your head&lt;br&gt;
Somebody came and took your machine&lt;br&gt;
Don't worry, be agile&lt;br&gt;
The manager say your code is late&lt;br&gt;
He may have to litigate&lt;br&gt;
Don't worry, be agile&lt;br&gt;
Look at me I refactor&lt;br&gt;
Don't worry, be agile&lt;br&gt;
Here I give you my url&lt;br&gt;
When you worry call me&lt;br&gt;
I make you agile&lt;br&gt;
Don't worry, be agile&lt;br&gt;
Ain't got no time ain't got no style&lt;br&gt;
Ain't got not money to make you smile&lt;br&gt;
But don't worry self organize&lt;br&gt;
Cause when you worry&lt;br&gt;
Your face will frown&lt;br&gt;
And that will bring everybody down&lt;br&gt;
So don't worry, be agile (now)&lt;br&gt;
&lt;br&gt;
There is this little song I wrote&lt;br&gt;
I hope you learn it note for note&lt;br&gt;
Like good little developers&lt;br&gt;
Don't worry, be agile&lt;br&gt;
Listen to what I say&lt;br&gt;
In your software expect some trouble&lt;br&gt;
But when you worry&lt;br&gt;
You make it double&lt;br&gt;
Don't worry, be agile&lt;br&gt;
Don't worry don't do it, be agile&lt;br&gt;
Put a smile on your face&lt;br&gt;
Don't bring everybody down like this&lt;br&gt;
Don't worry, it will soon pass&lt;br&gt;
Whatever it is&lt;br&gt;
Don't worry, be agile&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=33ae57d1-2a6c-44a5-bb60-5f65325bfe28" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,33ae57d1-2a6c-44a5-bb60-5f65325bfe28.aspx</comments>
      <category>All;SOA;Software Development</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=95a481ff-c079-4bba-b7ad-dc35524e6b44</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,95a481ff-c079-4bba-b7ad-dc35524e6b44.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,95a481ff-c079-4bba-b7ad-dc35524e6b44.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=95a481ff-c079-4bba-b7ad-dc35524e6b44</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <font size="3">David Chappell (</font>
          <a href="http://www.davidchappell.com/HTML_email/Opinari_No16_8_06.html">
            <font size="3">http://www.davidchappell.com/HTML_email/Opinari_No16_8_06.html</font>
          </a>
          <font size="3">)
      argues that SOA may not foster the service reuse that everyone has been hoping for.
      I think his analysis is correct, but I think with business services we at least
      have a reasonable hope of achieving reuse. Here we are least dealing with the way
      things actually happen in the world as opposed to programmer abstractions such as
      objects or components. That combined with the looser coupling of services gives me
      some hope.<br /><br />
      The reason why frameworks like .NET are successful is they reflect years and years
      of experience with programming problems. Many examples of reuse (such as file systems
      and compilers) are so embedded in our experience that we no longer see them for what
      they are.<br /><br />
      Reuse may fail here as well for all the reasons mentioned in David Chappell's analysis.
      At least now I feel we are on the right track.</font>
        </p>
        <img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=95a481ff-c079-4bba-b7ad-dc35524e6b44" />
      </body>
      <title>Software Reuse and SOA</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,95a481ff-c079-4bba-b7ad-dc35524e6b44.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,95a481ff-c079-4bba-b7ad-dc35524e6b44.aspx</link>
      <pubDate>Fri, 29 Sep 2006 22:00:37 GMT</pubDate>
      <description>&lt;p&gt;
   &lt;font size=3&gt;David Chappell (&lt;/font&gt;&lt;a href="http://www.davidchappell.com/HTML_email/Opinari_No16_8_06.html"&gt;&lt;font size=3&gt;http://www.davidchappell.com/HTML_email/Opinari_No16_8_06.html&lt;/font&gt;&lt;/a&gt;&lt;font size=3&gt;)
   argues that SOA may not foster the service reuse that everyone has been hoping for.
   I think his&amp;nbsp;analysis is correct, but I think with business services we at least
   have a reasonable hope of achieving reuse. Here we are least dealing with the way
   things actually happen in the world as opposed to programmer abstractions such as
   objects or components. That combined with the looser coupling of services gives me
   some hope.&lt;br&gt;
   &lt;br&gt;
   The reason why frameworks like .NET are successful is they reflect years and years
   of experience with programming problems. Many examples of reuse (such as file systems
   and compilers) are so embedded in our experience that we no longer see them for what
   they are.&lt;br&gt;
   &lt;br&gt;
   Reuse may fail here as well for all the reasons mentioned in David Chappell's analysis.
   At least now I feel we are on the right track.&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=95a481ff-c079-4bba-b7ad-dc35524e6b44" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,95a481ff-c079-4bba-b7ad-dc35524e6b44.aspx</comments>
      <category>All;SOA</category>
    </item>
    <item>
      <trackback:ping>http://www.reliablesoftware.com/DasBlog/Trackback.aspx?guid=8bc3f62a-4c3f-48d0-878b-7eb96746bc30</trackback:ping>
      <pingback:server>http://www.reliablesoftware.com/DasBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,8bc3f62a-4c3f-48d0-878b-7eb96746bc30.aspx</pingback:target>
      <dc:creator>weblogcomments@reliablesoftware.com (Michael Stiefel)</dc:creator>
      <wfw:comment>http://www.reliablesoftware.com/DasBlog/CommentView,guid,8bc3f62a-4c3f-48d0-878b-7eb96746bc30.aspx</wfw:comment>
      <wfw:commentRss>http://www.reliablesoftware.com/DasBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=8bc3f62a-4c3f-48d0-878b-7eb96746bc30</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1">
          <font size="3">The </font>
          <a href="http://www.oasis-open.org/committees/download.php/19361/soa-rm-cs.pdf">
            <font size="3">Reference
      Model for Service Oriented Architecture </font>
          </a>
          <font size="3">defines a vocabulary
      for building service-oriented systems. Put together by a technical committee operating
      under the auspices of the OASIS standards organization, it is the result of individuals
      and organizations representing vendors, users, governments, consulting organizations,
      and academic institutions.</font>
        </p>
        <p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1">
          <font size="3">
          </font> 
   </p>
        <p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1">
          <font size="3">The Reference Model (RM) sees SOA as a means for organizing and using
      distributed capabilities that may be under the control of different ownership domains.
      The RM is not an architecture. It does not attempt to make any architecture normative.
      It does not try to make any standard or set of standards normative. </font>
        </p>
        <p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1">
          <font size="3">
          </font> 
   </p>
        <p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1">
          <font size="3">It does provide a common set of semantics that can be used across different
      implementations. This does sound rather fancy. Nonetheless, just like Moliere's bourgeois
      gentlemen that found out he was speaking prose all his life, many industries have
      been using reference models all along. They just never had to define them explicitly.</font>
        </p>
        <p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1">
          <font size="3">
          </font> 
   </p>
        <p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1">
          <font size="3">An architect for a residential dwelling knows that if they use the
      term door or window, the builder will understand what is meant. There are widely varied
      implementations of doors and windows depending, for example, if you are building a
      space station or an igloo. Nonetheless, everyone knows what the terms mean. Many of
      these terms are codified in building codes, and by standards bodies, and have evolved
      over the years. The software architecture community moves too quickly for such evolution;
      this is where standards organizations can help.</font>
        </p>
        <p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1">
          <font size="3">
          </font> 
   </p>
        <p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1">
          <font size="3">Software architectures, for sure,<span style="mso-spacerun: yes"> </span>can
      have </font>
          <a href="http://www.opengroup.org/architecture/togaf8-doc/arch/chap31.html#tag_32_02">
            <font size="3">views
      and viewpoints</font>
          </a>
          <font size="3">, but the terms in which they are discussed
      have to be understood.</font>
        </p>
        <p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1">
          <font size="3">
          </font> 
   </p>
        <p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1">
          <font size="3">The core concepts that the RM discusses are service, visibility, execution
      context,<span style="mso-spacerun: yes">  </span>service description, real world
      effect,<span style="mso-spacerun: yes">  </span>interaction, and contract and
      policy.</font>
        </p>
        <p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1">
          <font size="3">
          </font> 
   </p>
        <p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1">
          <font size="3">I will discuss these core concepts over the next few posts.</font>
        </p>
        <p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1">
          <font size="3">
          </font> 
   </p>
        <p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1">
          <font size="3">None of this work is going on in isolation, or is it intended to denigrate
      other work such as the WS* specifications, or organizations such as the ISO, IEEE,
      IETF, the Ontolog Forum or other groups. The reference model just supplies standard
      definitions so that it becomes easier for each group to communicate with the others.</font>
        </p>
        <img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=8bc3f62a-4c3f-48d0-878b-7eb96746bc30" />
      </body>
      <title>SOA Reference Model Committee Standard</title>
      <guid>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,8bc3f62a-4c3f-48d0-878b-7eb96746bc30.aspx</guid>
      <link>http://www.reliablesoftware.com/DasBlog/PermaLink,guid,8bc3f62a-4c3f-48d0-878b-7eb96746bc30.aspx</link>
      <pubDate>Fri, 01 Sep 2006 16:32:59 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;
   &lt;font size=3&gt;The &lt;/font&gt;&lt;a href="http://www.oasis-open.org/committees/download.php/19361/soa-rm-cs.pdf"&gt;&lt;font size=3&gt;Reference
   Model for Service Oriented Architecture &lt;/font&gt;&lt;/a&gt;&lt;font size=3&gt;defines a vocabulary
   for building service-oriented systems. Put together by a technical committee operating
   under the auspices of the OASIS standards organization, it is the result of individuals
   and organizations representing vendors, users, governments, consulting organizations,
   and academic institutions.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;
   &lt;font size=3&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;
   &lt;font size=3&gt;The Reference Model (RM) sees SOA as a means for organizing and using
   distributed capabilities that may be under the control of different ownership domains.
   The RM is not an architecture. It does not attempt to make any architecture normative.
   It does not try to make any standard or set of standards normative. &lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;
   &lt;font size=3&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;
   &lt;font size=3&gt;It does provide a common set of semantics that can be used across different
   implementations. This does sound rather fancy. Nonetheless, just like Moliere's bourgeois
   gentlemen that found out he was speaking prose all his life, many industries have
   been using reference models all along. They just never had to define them explicitly.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;
   &lt;font size=3&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;
   &lt;font size=3&gt;An architect for a residential dwelling knows that if they use the term
   door or window, the builder will understand what is meant. There are widely varied
   implementations of doors and windows depending, for example, if you are building a
   space station or an igloo. Nonetheless, everyone knows what the terms mean. Many of
   these terms are codified in building codes, and by standards bodies, and have evolved
   over the years. The software architecture community moves too quickly for such evolution;
   this is where standards organizations can help.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;
   &lt;font size=3&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;
   &lt;font size=3&gt;Software architectures, for sure,&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;can
   have &lt;/font&gt;&lt;a href="http://www.opengroup.org/architecture/togaf8-doc/arch/chap31.html#tag_32_02"&gt;&lt;font size=3&gt;views
   and viewpoints&lt;/font&gt;&lt;/a&gt;&lt;font size=3&gt;, but the terms in which they are discussed
   have to be understood.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;
   &lt;font size=3&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;
   &lt;font size=3&gt;The core concepts that the RM discusses are service, visibility, execution
   context,&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;service description, real world
   effect,&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;interaction, and contract and
   policy.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;
   &lt;font size=3&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;
   &lt;font size=3&gt;I will discuss these core concepts over the next few posts.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;
   &lt;font size=3&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;
   &lt;font size=3&gt;None of this work is going on in isolation, or is it intended to denigrate
   other work such as the WS* specifications, or organizations such as the ISO, IEEE,
   IETF, the Ontolog Forum or other groups. The reference model just supplies standard
   definitions so that it becomes easier for each group to communicate with the others.&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.reliablesoftware.com/DasBlog/aggbug.ashx?id=8bc3f62a-4c3f-48d0-878b-7eb96746bc30" /&gt;</description>
      <comments>http://www.reliablesoftware.com/DasBlog/CommentView,guid,8bc3f62a-4c3f-48d0-878b-7eb96746bc30.aspx</comments>
      <category>All;SOA</category>
    </item>
  </channel>
</rss>