<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" version="2.0">
  <channel>
    <title>Clemens Vasters - MSDN</title>
    <link>http://vasters.com/clemensv/</link>
    <description>Cloud Development and Alien Abductions</description>
    <language>en-us</language>
    <copyright>Clemens Vasters</copyright>
    <lastBuildDate>Tue, 21 Aug 2007 07:46:33 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.7067.0</generator>
    <managingEditor>cvasters@guhhome.com</managingEditor>
    <webMaster>cvasters@guhhome.com</webMaster>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=9677a491-9037-4b79-baa3-bcf093737957</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,9677a491-9037-4b79-baa3-bcf093737957.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,9677a491-9037-4b79-baa3-bcf093737957.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=9677a491-9037-4b79-baa3-bcf093737957</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <strong>
            <font color="#ff1493">UPDATE:</font> The code has been updated. Ignore this
post and <a href="http://vasters.com/clemensv/PermaLink,guid,679ca50b-c907-4831-81c4-369ef7b85839.aspx">go
here</a>.</strong>
        </p>
        <p>
I'm writing lots of code lately. I've rejoined the dasBlog community and I'm
busy writing a prototype for the .NET Framework 3.5 version of dasBlog (we just
released the 2.0 version, see <a href="http://www.dasblog.info/">http://www.dasblog.info/</a>).
</p>
        <p>
One of the goals of the prototype, which we'll eventually merge into the main
codebase once the .NET Framework 3.5 is available at hosting sites is to standardize
on WCF for all non-HTML endpoints. Since lots of the relevant inter-blog and blogging
tool APIs are still based on XML-RPC, that called for an implementation of XML-RPC
on WCF. I've just isolated that code and <a href="http://wcf.netfx3.com/files/folders/creating_and_using_custom_bindings/entry11943.aspx">put
it up on wcf.netfx3.com</a>.
</p>
        <p>
My XML-RPC implementation is a binding with a special encoder and a set of behaviors.
The Service Model programming experience is completely "normal" with no special extension
attributes. That means you can also expose the XML-RPC contracts as SOAP endpoints
with all the advanced WCF bindings and features if you like. 
</p>
        <p>
The binding supports client and service side and is completely config enabled. Here's
a snippet from the MetaWeblog contract:
</p>
        <font size="4">
          <p>
          </p>
        </font>
        <font face="Courier New">[<font color="#2b91af">ServiceContract</font>(Namespace
= <font color="#a31515"><a href="http://www.xmlrpc.com/metaWeblogApi">http://www.xmlrpc.com/metaWeblogApi</a></font>)]<br /><font color="#0000ff">public</font><font color="#0000ff">interface</font><font color="#2b91af">IMetaWeblog</font> :
Microsoft.ServiceModel.Samples.XmlRpc.Contracts.Blogger.</font>
        <font face="Courier New">
          <font color="#2b91af">IBlogger<br /></font>{<br />
   [<font color="#2b91af">OperationContract</font>(Action=<font color="#a31515">"metaWeblog.editPost"</font>)]<br /><font color="#0000ff">   bool</font> metaweblog_editPost(<font color="#0000ff">string</font> postid,<br /><font color="#0000ff">                            
string</font> username,<br /><font color="#0000ff">                             string</font> password,<br /><font color="#2b91af">                             Post</font> post,<br /><font color="#0000ff">                            
bool</font> publish);</font>
        <p>
          <font face="Courier New">   [<font color="#2b91af">OperationContract</font>(Action=<font color="#a31515">"metaWeblog.getCategories"</font>)]<br /><font color="#2b91af">   CategoryInfo</font>[] metaweblog_getCategories(<font color="#0000ff"> string</font> blogid,<br /><font color="#0000ff">                                     
      string</font> username,<br /><font color="#0000ff">                                     
      string</font> password);<br />
    ...<br /></font>
          <font face="Courier New">}</font>
        </p>
        <p>
For your convenience I've included complete Blogger, MetaWeblog, and MovableType
API contracts along with the respective data types in the test application. The test
app is a small in-memory blog that you can use with the blogging function of Word
2007 as a client or some other blogging client for testing. 
</p>
        <p>
Of the other interesting XML-RPC APIs, the <a href="http://www.hixie.ch/specs/pingback/pingback">Pingback
API</a> has the following contract:
</p>
        <p>
          <span style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; FONT-SIZE: 8pt; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-no-proof: yes">
            <font size="2">
              <font face="Courier New">
                <font color="#000000">
                  <span style="mso-spacerun: yes">    </span>[</font>
                <span style="COLOR: #2b91af">ServiceContract</span>
                <font color="#000000">(Namespace=</font>
                <span style="COLOR: #a31515">"http://www.hixie.ch/specs/pingback/pingback"</span>
              </font>
            </font>
            <font size="2">
              <font face="Courier New">
                <font color="#000000">)]<br /><span style="mso-spacerun: yes">    </span></font>
                <span style="COLOR: blue">public</span>
                <font color="#000000">
                </font>
                <span style="COLOR: blue">interface</span>
                <font color="#000000">
                </font>
              </font>
            </font>
            <span style="COLOR: #2b91af">
              <font size="2" face="Courier New">IPingback<br /></font>
            </span>
            <font size="2">
              <font face="Courier New">
                <font color="#000000">
                  <span style="mso-spacerun: yes">    </span>{<br /><span style="mso-spacerun: yes">        </span>[</font>
                <span style="COLOR: #2b91af">OperationContract</span>
                <font color="#000000">(Action=</font>
                <span style="COLOR: #a31515">"pingback.ping"</span>
              </font>
            </font>
            <font size="2">
              <font face="Courier New">
                <font color="#000000">)]<br /><span style="mso-spacerun: yes">        </span></font>
                <span style="COLOR: blue">string</span>
                <font color="#000000"> ping(</font>
                <span style="COLOR: blue">string</span>
                <font color="#000000"> sourceUri, </font>
                <span style="COLOR: blue">string</span>
              </font>
            </font>
            <font size="2">
              <font face="Courier New">
                <font color="#000000"> targetUri);<br /><span style="mso-spacerun: yes">    </span>}</font>
              </font>
            </font>
          </span>
        </p>
        <p>
          <span style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; FONT-SIZE: 8pt; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-no-proof: yes">
            <font size="2" face="Verdana">and
the <a href="http://www.xmlrpc.com/weblogsCom">WeblogUpdates API</a> looks like this:</font>
          </span>
        </p>
        <span style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; FONT-SIZE: 8pt; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-no-proof: yes">
          <p style="MARGIN: 0in 0in 10pt" class="MsoNormal">
            <span style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; FONT-SIZE: 8pt; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes">
              <font face="Courier New">
                <font size="2">
                  <font color="#000000">   
[</font>
                  <span style="COLOR: #2b91af">DataContract</span>
                </font>
              </font>
              <font face="Courier New">
                <font size="2">
                  <font color="#000000">]<br /><span style="mso-spacerun: yes">    </span></font>
                  <span style="COLOR: blue">public</span>
                  <font color="#000000">
                  </font>
                  <span style="COLOR: blue">struct</span>
                  <font color="#000000">
                  </font>
                </font>
              </font>
              <span style="COLOR: #2b91af">
                <font size="2" face="Courier New">WeblogUpdatesReply<br /></font>
              </span>
              <font face="Courier New">
                <font size="2">
                  <font color="#000000">
                    <span style="mso-spacerun: yes">    </span>{<br /><span style="mso-spacerun: yes">        </span>[</font>
                  <span style="COLOR: #2b91af">DataMember</span>
                </font>
              </font>
              <font face="Courier New">
                <font size="2">
                  <font color="#000000">]<br /><span style="mso-spacerun: yes">        </span></font>
                  <span style="COLOR: blue">public</span>
                  <font color="#000000">
                  </font>
                  <span style="COLOR: blue">bool</span>
                </font>
              </font>
              <font face="Courier New">
                <font size="2">
                  <font color="#000000"> flerror;<br /><span style="mso-spacerun: yes">        </span>[</font>
                  <span style="COLOR: #2b91af">DataMember</span>
                </font>
              </font>
              <font face="Courier New">
                <font size="2">
                  <font color="#000000">]<br /><span style="mso-spacerun: yes">        </span></font>
                  <span style="COLOR: blue">public</span>
                  <font color="#000000">
                  </font>
                  <span style="COLOR: blue">string</span>
                </font>
              </font>
              <font face="Courier New">
                <font size="2">
                  <font color="#000000"> message;<br /><span style="mso-spacerun: yes">    </span>}<br /><br /><span style="mso-spacerun: yes">    </span>[</font>
                  <span style="COLOR: #2b91af">ServiceContract</span>
                </font>
              </font>
              <font face="Courier New">
                <font size="2">
                  <font color="#000000">]<br /><span style="mso-spacerun: yes">    </span></font>
                  <span style="COLOR: blue">public</span>
                  <font color="#000000">
                  </font>
                  <span style="COLOR: blue">interface</span>
                  <font color="#000000">
                  </font>
                </font>
              </font>
              <span style="COLOR: #2b91af">
                <font size="2" face="Courier New">IWeblogUpdates<br /></font>
              </span>
              <font face="Courier New">
                <font size="2">
                  <font color="#000000">
                    <span style="mso-spacerun: yes">    </span>{<br /><span style="mso-spacerun: yes">        </span>[</font>
                  <span style="COLOR: #2b91af">OperationContract</span>
                  <font color="#000000">(Action
= </font>
                  <span style="COLOR: #a31515">"weblogUpdates.extendedPing"</span>
                </font>
              </font>
              <font face="Courier New">
                <font size="2">
                  <font color="#000000">)]<br /><span style="mso-spacerun: yes">        </span></font>
                  <span style="COLOR: #2b91af">WeblogUpdatesReply</span>
                  <font color="#000000"> ExtendedPing(</font>
                  <span style="COLOR: blue">string</span>
                  <font color="#000000"> weblogName, </font>
                  <span style="COLOR: blue">string</span>
                  <font color="#000000"> weblogUrl, </font>
                  <span style="COLOR: blue">string</span>
                  <font color="#000000"> checkUrl, </font>
                  <span style="COLOR: blue">string</span>
                </font>
              </font>
              <font face="Courier New">
                <font size="2">
                  <font color="#000000"> rssUrl);<br /><span style="mso-spacerun: yes">        </span>[</font>
                  <span style="COLOR: #2b91af">OperationContract</span>
                  <font color="#000000">(Action=</font>
                  <span style="COLOR: #a31515">"weblogUpdates.ping"</span>
                </font>
              </font>
              <font face="Courier New">
                <font size="2">
                  <font color="#000000">)]<br /><span style="mso-spacerun: yes">        </span></font>
                  <span style="COLOR: #2b91af">WeblogUpdatesReply</span>
                  <font color="#000000"> Ping(</font>
                  <span style="COLOR: blue">string</span>
                  <font color="#000000"> weblogName, </font>
                  <span style="COLOR: blue">string</span>
                </font>
              </font>
              <font color="#000000" size="2" face="Courier New"> weblogUrl);<br /><span style="mso-spacerun: yes">    </span>}</font>
            </span>
          </p>
          <p>
          </p>
        </span>I'm expecting some interop bugs since I've done a clean implementation
from the specs, so if you find any please let me know.
<p>
The code is subject to the Microsoft samples license, which means that you can put
it into your (blogging) apps. Enjoy.
</p><img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=9677a491-9037-4b79-baa3-bcf093737957" /></body>
      <title>XML-RPC with WCF</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,9677a491-9037-4b79-baa3-bcf093737957.aspx</guid>
      <link>http://vasters.com/clemensv/2007/08/21/XMLRPC+With+WCF.aspx</link>
      <pubDate>Tue, 21 Aug 2007 07:46:33 GMT</pubDate>
      <description>&lt;p&gt;
&lt;strong&gt;&lt;font color=#ff1493&gt;UPDATE:&lt;/font&gt; The code has been updated. Ignore this
post and &lt;a href="http://vasters.com/clemensv/PermaLink,guid,679ca50b-c907-4831-81c4-369ef7b85839.aspx"&gt;go
here&lt;/a&gt;.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I'm writing lots of code&amp;nbsp;lately. I've rejoined the dasBlog community and I'm
busy&amp;nbsp;writing a prototype for the .NET Framework 3.5 version of dasBlog (we just
released the 2.0 version, see &lt;a href="http://www.dasblog.info/"&gt;http://www.dasblog.info/&lt;/a&gt;).
&lt;/p&gt;
&lt;p&gt;
One of the&amp;nbsp;goals of the prototype, which we'll eventually merge into the main
codebase once&amp;nbsp;the .NET Framework 3.5 is available at hosting sites is to standardize
on WCF for all non-HTML endpoints. Since lots of the relevant inter-blog and blogging
tool APIs&amp;nbsp;are still based on XML-RPC, that called for an implementation of XML-RPC
on WCF. I've just isolated that code and &lt;a href="http://wcf.netfx3.com/files/folders/creating_and_using_custom_bindings/entry11943.aspx"&gt;put
it up on wcf.netfx3.com&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
My XML-RPC implementation is a binding with a special encoder and a set of behaviors.
The Service Model programming experience is completely "normal" with no special extension
attributes. That means you can also expose the XML-RPC contracts as SOAP endpoints
with all the advanced WCF bindings and features if you like. 
&lt;/p&gt;
&lt;p&gt;
The binding&amp;nbsp;supports client and service side and is completely config enabled.&amp;nbsp;Here's
a snippet from the MetaWeblog contract:
&lt;/p&gt;
&lt;font size=4&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font face="Courier New"&gt;[&lt;font color=#2b91af&gt;ServiceContract&lt;/font&gt;(Namespace
= &lt;font color=#a31515&gt;&lt;a href="http://www.xmlrpc.com/metaWeblogApi"&gt;http://www.xmlrpc.com/metaWeblogApi&lt;/a&gt;&lt;/font&gt;)]&lt;br&gt;
&lt;font color=#0000ff&gt;public&lt;/font&gt; &lt;font color=#0000ff&gt;interface&lt;/font&gt; &lt;font color=#2b91af&gt;IMetaWeblog&lt;/font&gt; :
Microsoft.ServiceModel.Samples.XmlRpc.Contracts.Blogger.&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#2b91af&gt;IBlogger&lt;br&gt;
&lt;/font&gt;{&lt;br&gt;
&amp;nbsp;&amp;nbsp; [&lt;font color=#2b91af&gt;OperationContract&lt;/font&gt;(Action=&lt;font color=#a31515&gt;"metaWeblog.editPost"&lt;/font&gt;)]&lt;br&gt;
&lt;font color=#0000ff&gt;&amp;nbsp;&amp;nbsp; bool&lt;/font&gt; metaweblog_editPost(&lt;font color=#0000ff&gt;string&lt;/font&gt; postid,&lt;br&gt;
&lt;font color=#0000ff&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
string&lt;/font&gt; username,&lt;br&gt;
&lt;font color=#0000ff&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string&lt;/font&gt; password,&lt;br&gt;
&lt;font color=#2b91af&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Post&lt;/font&gt; post,&lt;br&gt;
&lt;font color=#0000ff&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
bool&lt;/font&gt; publish);&lt;/font&gt;&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp; [&lt;font color=#2b91af&gt;OperationContract&lt;/font&gt;(Action=&lt;font color=#a31515&gt;"metaWeblog.getCategories"&lt;/font&gt;)]&lt;br&gt;
&lt;font color=#2b91af&gt;&amp;nbsp;&amp;nbsp; CategoryInfo&lt;/font&gt;[] metaweblog_getCategories(&lt;font color=#0000ff&gt; string&lt;/font&gt; blogid,&lt;br&gt;
&lt;font color=#0000ff&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;&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; string&lt;/font&gt; username,&lt;br&gt;
&lt;font color=#0000ff&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;&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; string&lt;/font&gt; password);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;br&gt;
&lt;/font&gt;&lt;font face="Courier New"&gt;}&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
For your convenience I've included&amp;nbsp;complete Blogger, MetaWeblog, and MovableType
API contracts along with the respective data types in the test application. The test
app is a small in-memory blog that you can use with the blogging function of Word
2007 as a client or some other blogging client for testing. 
&lt;/p&gt;
&lt;p&gt;
Of the other interesting XML-RPC APIs, the &lt;a href="http://www.hixie.ch/specs/pingback/pingback"&gt;Pingback
API&lt;/a&gt; has the following contract:
&lt;/p&gt;
&lt;p&gt;
&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; FONT-SIZE: 8pt; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-no-proof: yes"&gt;&lt;font size=2&gt;&lt;font face="Courier New"&gt;&lt;font color=#000000&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;/font&gt;&lt;span style="COLOR: #2b91af"&gt;ServiceContract&lt;/span&gt;&lt;font color=#000000&gt;(Namespace=&lt;/font&gt;&lt;span style="COLOR: #a31515"&gt;"http://www.hixie.ch/specs/pingback/pingback"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&lt;font face="Courier New"&gt;&lt;font color=#000000&gt;)]&lt;br&gt;
&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;span style="COLOR: blue"&gt;public&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: blue"&gt;interface&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="COLOR: #2b91af"&gt;&lt;font size=2 face="Courier New"&gt;IPingback&lt;br&gt;
&lt;/font&gt;&lt;/span&gt;&lt;font size=2&gt;&lt;font face="Courier New"&gt;&lt;font color=#000000&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br&gt;
&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;/font&gt;&lt;span style="COLOR: #2b91af"&gt;OperationContract&lt;/span&gt;&lt;font color=#000000&gt;(Action=&lt;/font&gt;&lt;span style="COLOR: #a31515"&gt;"pingback.ping"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&lt;font face="Courier New"&gt;&lt;font color=#000000&gt;)]&lt;br&gt;
&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;span style="COLOR: blue"&gt;string&lt;/span&gt;&lt;font color=#000000&gt; ping(&lt;/font&gt;&lt;span style="COLOR: blue"&gt;string&lt;/span&gt;&lt;font color=#000000&gt; sourceUri, &lt;/font&gt;&lt;span style="COLOR: blue"&gt;string&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&lt;font face="Courier New"&gt;&lt;font color=#000000&gt; targetUri);&lt;br&gt;
&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; FONT-SIZE: 8pt; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-no-proof: yes"&gt;&lt;font size=2 face=Verdana&gt;and
the &lt;a href="http://www.xmlrpc.com/weblogsCom"&gt;WeblogUpdates API&lt;/a&gt; looks like this:&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; FONT-SIZE: 8pt; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-no-proof: yes"&gt; 
&lt;p style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;
&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; FONT-SIZE: 8pt; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
[&lt;/font&gt;&lt;span style="COLOR: #2b91af"&gt;DataContract&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;font color=#000000&gt;]&lt;br&gt;
&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;span style="COLOR: blue"&gt;public&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: blue"&gt;struct&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="COLOR: #2b91af"&gt;&lt;font size=2 face="Courier New"&gt;WeblogUpdatesReply&lt;br&gt;
&lt;/font&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;font color=#000000&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br&gt;
&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;/font&gt;&lt;span style="COLOR: #2b91af"&gt;DataMember&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;font color=#000000&gt;]&lt;br&gt;
&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;span style="COLOR: blue"&gt;public&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: blue"&gt;bool&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;font color=#000000&gt; flerror;&lt;br&gt;
&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;/font&gt;&lt;span style="COLOR: #2b91af"&gt;DataMember&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;font color=#000000&gt;]&lt;br&gt;
&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;span style="COLOR: blue"&gt;public&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: blue"&gt;string&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;font color=#000000&gt; message;&lt;br&gt;
&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;br&gt;
&lt;br&gt;
&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;/font&gt;&lt;span style="COLOR: #2b91af"&gt;ServiceContract&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;font color=#000000&gt;]&lt;br&gt;
&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;span style="COLOR: blue"&gt;public&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: blue"&gt;interface&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="COLOR: #2b91af"&gt;&lt;font size=2 face="Courier New"&gt;IWeblogUpdates&lt;br&gt;
&lt;/font&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;font color=#000000&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br&gt;
&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;/font&gt;&lt;span style="COLOR: #2b91af"&gt;OperationContract&lt;/span&gt;&lt;font color=#000000&gt;(Action
= &lt;/font&gt;&lt;span style="COLOR: #a31515"&gt;"weblogUpdates.extendedPing"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;font color=#000000&gt;)]&lt;br&gt;
&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;span style="COLOR: #2b91af"&gt;WeblogUpdatesReply&lt;/span&gt;&lt;font color=#000000&gt; ExtendedPing(&lt;/font&gt;&lt;span style="COLOR: blue"&gt;string&lt;/span&gt;&lt;font color=#000000&gt; weblogName, &lt;/font&gt;&lt;span style="COLOR: blue"&gt;string&lt;/span&gt;&lt;font color=#000000&gt; weblogUrl, &lt;/font&gt;&lt;span style="COLOR: blue"&gt;string&lt;/span&gt;&lt;font color=#000000&gt; checkUrl, &lt;/font&gt;&lt;span style="COLOR: blue"&gt;string&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;font color=#000000&gt; rssUrl);&lt;br&gt;
&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;/font&gt;&lt;span style="COLOR: #2b91af"&gt;OperationContract&lt;/span&gt;&lt;font color=#000000&gt;(Action=&lt;/font&gt;&lt;span style="COLOR: #a31515"&gt;"weblogUpdates.ping"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;font color=#000000&gt;)]&lt;br&gt;
&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;span style="COLOR: #2b91af"&gt;WeblogUpdatesReply&lt;/span&gt;&lt;font color=#000000&gt; Ping(&lt;/font&gt;&lt;span style="COLOR: blue"&gt;string&lt;/span&gt;&lt;font color=#000000&gt; weblogName, &lt;/font&gt;&lt;span style="COLOR: blue"&gt;string&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=#000000 size=2 face="Courier New"&gt; weblogUrl);&lt;br&gt;
&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/span&gt;I'm expecting some interop bugs since I've done a clean implementation from
the specs, so if you find any please let me know.&gt;
&lt;p&gt;
The code is subject to the Microsoft samples license, which means that you can put
it into your (blogging) apps. Enjoy.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=9677a491-9037-4b79-baa3-bcf093737957" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,9677a491-9037-4b79-baa3-bcf093737957.aspx</comments>
      <category>MSDN</category>
      <category>Technology/Indigo</category>
      <category>Technology/WCF</category>
      <category>Technology/Weblogs</category>
    </item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=842e5373-60c1-4390-b820-00dba8b0cb4c</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,842e5373-60c1-4390-b820-00dba8b0cb4c.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,842e5373-60c1-4390-b820-00dba8b0cb4c.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=842e5373-60c1-4390-b820-00dba8b0cb4c</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <title>Internet Service Bus</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,842e5373-60c1-4390-b820-00dba8b0cb4c.aspx</guid>
      <link>http://vasters.com/clemensv/2007/04/25/Internet+Service+Bus.aspx</link>
      <pubDate>Wed, 25 Apr 2007 03:28:23 GMT</pubDate>
      <description>&lt;p&gt;
&lt;span&gt;"ESB" (for "Enterprise Service Bus") is an acronym floating around in the SOA/BPM
space for quite a while now. The notion is that you have a set of shared services
in an enterprise that act as a shared foundation for discovering, connecting and federating
services. That's a good thing and there's not much of a debate about the usefulness,
except whether &lt;a href="http://www.microsoft.com/biztalk/solutions/soa/esb.mspx"&gt;&lt;font color=#0000ff&gt;ESB&lt;/font&gt;&lt;/a&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt; is
the actual term is being used to describe this service fabric or whether there's a
concrete product with that name. Microsoft has, for instance,&amp;nbsp;directory services,
the UDDI registry, and our P2P resolution services&amp;nbsp;that contribute to the discovery
portion,&amp;nbsp;we've got BizTalk&amp;nbsp;Server as&amp;nbsp;a scalable business process, integration
and federation hub, we've got the Windows Communication Foundation for building service
oriented applications and endpoints, we've got the Windows Workflow Foundation for
building workflow-driven endpoint applications, and we have the Identity Platform
with ILM/MIIS, ADFS, and CardSpace that provides the federated identity backplane. 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;Today, the division I work in (Connected Systems Division) has announced &lt;a href="http://labs.biztalk.net/"&gt;&lt;font color=#0000ff&gt;BizTalk
Services&lt;/font&gt;&lt;/a&gt;, which&amp;nbsp;John Shewchuk explains &lt;a href="http://connectedsystems.spaces.live.com/"&gt;&lt;font color=#0000ff&gt;here&lt;/font&gt;&lt;/a&gt;&amp;nbsp;and
Dennis Pilarinos drills into &lt;a href="http://www.dennispi.com/"&gt;&lt;font color=#0000ff&gt;here&lt;/font&gt;&lt;/a&gt;.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;Two aspects that&amp;nbsp;make&amp;nbsp;the idea of a&amp;nbsp;"service bus" generally very
attractive&amp;nbsp;are that&amp;nbsp;the service bus&amp;nbsp;enables identity federation and
connectivity federation.&amp;nbsp;This idea gets far more interesting and more broadly
applicable when we&amp;nbsp;remove the "Enterprise" constraint from ESB it and put "Internet"
into its place, thus&amp;nbsp;elevating it to an "Internet Services Bus", or ISB.&amp;nbsp;If
we look at&amp;nbsp;the&amp;nbsp;most&amp;nbsp;popular&amp;nbsp;Internet-dependent applications outside
of the browser these days, like the many Instant Messaging apps, BitTorrent, Limewire,
VoIP, Orb/Slingbox, Skype, Halo,&amp;nbsp;Project Gotham Racing, and others,&amp;nbsp;many
of them&amp;nbsp;depend on one or two key services must be provided for each of them:
Identity Federation (or, in absence of that,&amp;nbsp;a central identity&amp;nbsp;service)
and some sort of message relay in order to connect up two or more application instances&amp;nbsp;that
each sit&amp;nbsp;behind firewalls - and at the very least&amp;nbsp;some stable, shared rendezvous
point or directory to seed P2P connections.&amp;nbsp;The question "how does&amp;nbsp;Messenger
work?" has, from an high-level architecture perspective a simple answer: The Messenger
"switchboard" acts as a message relay. 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;The problem gets really juicy when we look at the reality of what connecting
such applications means and what an ISV (or you!) were to come up with the next cool
thing on the Internet:&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;You'll soon find out that you will have to run a whole lot of server infrastructure
and the routing of all of that traffic goes through your pipes. If your cool thing
involves moving lots of large files around (let's say you'd want to build a photo
sharing app like the very unfortunately deceased &lt;a href="http://en.wikipedia.org/wiki/Microsoft_Max"&gt;&lt;font color=#0000ff&gt;Microsoft
Max&lt;/font&gt;&lt;/a&gt;) you'd&amp;nbsp;suddenly find&amp;nbsp;yourself running some significant sets
of&amp;nbsp;pipes (tubes?)&amp;nbsp;into your basement even though your users&amp;nbsp;are just
passing data from one place to the next.&amp;nbsp;That's a killer for lots of good ideas
as this represents a significant entry barrier. Interesting stuff can get popular
very, very fast these days and sometimes faster than you can say "Venture Capital".&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;Messenger runs such infrastructure. And the need for such infrastructure was
indeed an (not entirely unexpected) important&amp;nbsp;takeaway from the cited Max project.
What looked just to be a very polished and cool client app to showcase all the Vista
and NETFX 3.0 goodness was just the tip of a significant iceberg of (just as cool)
server functionality that was running in a Microsoft data center to make the sharing
experience as seamless and easy as it was.&amp;nbsp;Once you want to&amp;nbsp;do cool stuff
that goes beyond the request/response browser thing, you easily end up running a data
center. And people will quickly think that your&amp;nbsp;application sucks if that data
center doesn't "just work". And that translates into several "nines" in terms of availability
in my book. And that'll cost you.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;As cool as Flickr and YouTube are, I don't think of none of them or their brethren
to be nearly as disruptive in terms of architectural paradigm shift&amp;nbsp;and long-term
technology impact as Napster, ICQ and Skype were as they appeared on the scene. YouTube
is just a place with interesting content. ICQ changed the world of collaboration.
Napster's and Skype's impact changed and is changing entire industries. The Internet
is far more and has more potential than just having some shared, mashed-up&amp;nbsp;places
where lots of people go to consume, search&amp;nbsp;and upload stuff. "Personal computing"
where I'm in control of MY stuff and share between MY places from wherever I happen
to be and NOT giving that data to someone else so that they can decorate my stuff
with ads has a future. The pendulum will swing back. I want to be able to take a family
picture with my digital camera and snap that into a digital picture frame at my dad's
house at the push of a button without some&amp;nbsp;"place" being in the middle of that.
The picture frame just has to be able to stick its head out to a place where my camera
can&amp;nbsp;talk to it so that it can accept that picture and know that it's me who is
sending it.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;Another personal, and very concrete and real&amp;nbsp;point in case: I am running,
and I've written about that before,&amp;nbsp;a custom-built (software/hardware) combo
of two machines (one in Germany, one here in the US) that provide me and my family
with full Windows Media Center embedded access to live and recorded TV along with
electronic program guide data for 45+ German TV channels, Sports Pay-TV included.
The work of getting the connectivity right (dynamic DNS, port mappings, firewall holes),
dealing with the bandwidth constraints&amp;nbsp;and shielding&amp;nbsp;this against unwanted
access&amp;nbsp;were ridiculously complicated. This solution&amp;nbsp;and IP telephony and
video conferencing (over Messenger, Skype) are&amp;nbsp;shrinking the distance to home
to what's effectively just the inconvenience of the time difference of 9 hours and
that we don't see family and friends in person all that often. Otherwise we're completely
"plugged in" on what's going on at home and in Germany in general. That's an immediate
and huge improvement of the quality of living for us, is enabled by the Internet,
and has very little to do with "the Web", let alone "Web 2.0" - except that my Program
Guide app for Media Center happens to be an AJAX app today.&amp;nbsp;Using BizTalk Services
would throw out a whole lot of complexity that I had to deal with myself, especially
on the access control/identity and connectivity and discoverability fronts. Of course,
as I've done it the hard way and it's working to a degree that my wife is very happy
with it as it stands (which is the customer satisfaction metric that matters here),
I'm not making changes for technology's sake until I'm attacking the next revision
of this or I'll wait for one of the alternative and improving solutions (Orb is on
a good path) to catch up with what I have. 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;But I digress. Just as much as the services that&amp;nbsp;were just&amp;nbsp;announced
(and the ones that are lined up to follow) are a potential&amp;nbsp;enabler for new Napster/ICQ/Skype
type consumer space applications from innovative companies who don't have the capacity
or expertise to run their own data center, they are also and just as importantly the
"&lt;em&gt;&lt;b&gt;&lt;span style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;Small and Medium Enterprise&lt;/span&gt;&lt;/b&gt;&lt;/em&gt; Service
Bus". 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;If you are an ISV catering shrink-wrapped business solutions to SMEs whose network
infrastructure&amp;nbsp;may be as simple as&amp;nbsp;a DSL line (with dynamic IP) that goes
into a (wireless) hub and is as locked down as it possibly can be by the local networking
company that services them, we can do as much as we want as an industry in trying
to make inter-company B2B work and expand it to SMEs;&amp;nbsp;your customers just aren't
playing in that game if they can't&amp;nbsp;get over these basic connectivity hurdles. 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;Your app, that lives behind the firewall shield and NAT and a dynamic IP,&amp;nbsp;doesn't
have a stable, public place where it can publish its endpoints and you have no way
to federate identity (and access control)&amp;nbsp;unless you are doing some pretty invasive
surgery on their network setup&amp;nbsp;or you&amp;nbsp;end up building and running run a
bunch of infrastructure on-site or for them. And that's the same problem as the mentioned
consumer apps have.&amp;nbsp;Even more so, if you look at the list of "coming soon" services,
you'll find that problems like relaying events or coordinating work with workflows
are very suitable for&amp;nbsp;many common use-cases in SME business applications once
you imagine expanding their scope to inter-company collaboration.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;So where's "Megacorp Enterprises" in that play? First of all, Megacorp isn't
an island. Every Megacorp depends on lots of SME suppliers and retailers (or their
equivalents in the respective lingo of the verticals). Plugging all of them directly
into&amp;nbsp;Megacorp's "ESB" often isn't feasible for lots of reasons and increasingly
less so if the SME had a second or third (imagine that!) customer and/or supplier.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;Second, Megacorp isn't a uniform big&amp;nbsp;entity.&amp;nbsp;The count of "enterprise
applications" running inside of Megacorp is measured in thousands rather than dozens.
We're often inclined to think of SAP or Siebel when we think of enterprise applications,&amp;nbsp;but
the vast majority are much simpler and more scoped than that. It's not entirely ridiculous
to think that&amp;nbsp;some of those applications runs (gasp!) under someone's desk or
in a cabinet in an extra room of a department.&amp;nbsp;And it's also not entirely ridiculous
to think that these applications are so vertical and special that their integration
into the "ESB" gets continuously overridden by someone else's higher priorities and
yet, the respective business department needs a very practical way to connect with
partners &lt;em&gt;&lt;span style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;now&lt;/span&gt;&lt;/em&gt; and
be "connectable" even though it sits deeply inside the network thicket of Megacorp.
While it is likely on every CIO's&amp;nbsp;goal sheet to contain that sort of IT anarchy,
it's a reality that needs answers in order to keep the business bring in the money.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;Third, Megacorp needs to work with Gigacorp. To make it interesting, let's assume
that Megacorp and Gigacorp don't like each other much and trust each other even less.
They even compete. Yet, they've got to work on a standard and hence they need to collaborate.
It turns out that this scenario is almost entirely the same as the "Panic! Our departments
take IT in their own hands!" scenario described above. At most, Megacorp wants to
give Gigacorp a rendezvous and identity federation point on neutral ground. So instead
of letting Gigacorp on their ESB, they both hook their apps and their identity infrastructures
into the ISB and let the ISB be the mediator in that play.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;Bottom line: There are very many solution scenarios, of which I mentioned just
a few,&amp;nbsp;where "I" is&amp;nbsp;a much&amp;nbsp;more suitable&amp;nbsp;scope than "E". Sometimes&amp;nbsp;the
appropriate scope is just "I", sometimes the appropriate scope is just "E". They key
to achieve the agility that SOA strategies commonly promise is the ability to do the
"E to I" scale-up whenever you need it in order to enable broader communication. If
you need to elevate one or a set services from your ESB to Internet scope, you have
the option to go and do so as appropriate and integrated with your identity infrastructure.&amp;nbsp;And
since this all strictly WS-* standards based, your "E" might actually be "whatever
you happen to run today".&amp;nbsp;BizTalk Services is&amp;nbsp;the "I".&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;Or, in other words,&amp;nbsp;&lt;a href="http://labs.biztalk.net/"&gt;&lt;font color=#0000ff&gt;this
is a pretty big deal.&lt;/font&gt;&lt;/a&gt; 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=842e5373-60c1-4390-b820-00dba8b0cb4c" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,842e5373-60c1-4390-b820-00dba8b0cb4c.aspx</comments>
      <category>Architecture</category>
      <category>Architecture/SOA</category>
      <category>IT Strategy</category>
      <category>Microsoft</category>
      <category>MSDN</category>
      <category>Technology/BizTalk</category>
      <category>Technology/WCF</category>
      <category>Technology/Web Services</category>
    </item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=1d54f6d7-4860-4e7e-a020-6cab738770b0</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,1d54f6d7-4860-4e7e-a020-6cab738770b0.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,1d54f6d7-4860-4e7e-a020-6cab738770b0.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=1d54f6d7-4860-4e7e-a020-6cab738770b0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Cool. I hadn't even seen this demo until now, even though we already have it for a
while. Our technical evangelist Craig McMurtry posted the <a href="http://wcf.netfx3.com/files/48/distributed_applications/entry2977.aspx">"Digital
Fortress"</a> demo, which is an implementation of the computer systems that play major
roles in Dan Brown's novel "Digital Fortress". There are several reasons why
I find this demo interesting and pretty amusing.
</p>
        <p>
First of all, it has a "Hollywood-Style UI", which is funny. It's got the huge full-screen
login screen with a "sort-of-looks-like-the-NSA" logo, a big count-down clock and
a "control screen" (below) with the gratuitous graphics and big buttons one might
expect. The other thing that's very interesting is that it is a <em>management
tools demo</em> (of all things). The key to bust the evil conspiracy is to trace
suspicious network activity across many nodes on the network and the script packaged
with the demo shows you how to get that done using the built-in WCF tracing facilities. <a href="http://wcf.netfx3.com/files/48/distributed_applications/entry2977.aspx">Download.</a></p>
        <p align="center">
          <img src="http://friends.newtelligence.net/clemensv/content/binary/fortress.jpg" border="0" />
        </p>
        <p>
 
</p>
        <img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=1d54f6d7-4860-4e7e-a020-6cab738770b0" />
      </body>
      <title>WCF Goes To Hollywood.</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,1d54f6d7-4860-4e7e-a020-6cab738770b0.aspx</guid>
      <link>http://vasters.com/clemensv/2006/06/21/WCF+Goes+To+Hollywood.aspx</link>
      <pubDate>Wed, 21 Jun 2006 08:39:35 GMT</pubDate>
      <description>&lt;p&gt;
Cool. I hadn't even seen this demo until now, even though we already have it for a
while.&amp;nbsp;Our technical evangelist Craig McMurtry posted the &lt;a href="http://wcf.netfx3.com/files/48/distributed_applications/entry2977.aspx"&gt;"Digital
Fortress"&lt;/a&gt; demo, which is an implementation of&amp;nbsp;the computer systems that play&amp;nbsp;major
roles in Dan Brown's novel "Digital Fortress". There are several&amp;nbsp;reasons&amp;nbsp;why
I find this demo interesting and pretty amusing.
&lt;/p&gt;
&lt;p&gt;
First of all, it has a "Hollywood-Style UI", which is funny. It's got the huge full-screen
login screen with a "sort-of-looks-like-the-NSA" logo, a big count-down clock and
a "control screen" (below) with the gratuitous graphics and big buttons one might
expect. The other thing that's very interesting is that&amp;nbsp;it is a &lt;em&gt;management
tools demo&lt;/em&gt; (of all things).&amp;nbsp;The key to bust the evil conspiracy is to trace
suspicious network activity across many nodes on the network and the script packaged
with the demo shows you how to get that done using the built-in WCF tracing facilities. &lt;a href="http://wcf.netfx3.com/files/48/distributed_applications/entry2977.aspx"&gt;Download.&lt;/a&gt;
&lt;/p&gt;
&lt;p align=center&gt;
&lt;img src="http://friends.newtelligence.net/clemensv/content/binary/fortress.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=1d54f6d7-4860-4e7e-a020-6cab738770b0" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,1d54f6d7-4860-4e7e-a020-6cab738770b0.aspx</comments>
      <category>MSDN</category>
      <category>Technology/Indigo</category>
      <category>Technology/WCF</category>
    </item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=6059315f-0d8e-4671-a883-9e6d15a48b02</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,6059315f-0d8e-4671-a883-9e6d15a48b02.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,6059315f-0d8e-4671-a883-9e6d15a48b02.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=6059315f-0d8e-4671-a883-9e6d15a48b02</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <em>[Note to self: Schedule the video taping session early in a bound-to-be-stressful
week, not 2 hours before you need to leave for the airport on Friday.]</em>
        </p>
        <p>
MSDN TV has a <a href="http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20060615WCFCV/manifest.xml">new
episode</a> featuring <a href="http://dictionary.reference.com/browse/yours truly">yours
truly</a> speaking about WCF bindings (and what they cause in the channel stack).
</p>
        <img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=6059315f-0d8e-4671-a883-9e6d15a48b02" />
      </body>
      <title>MSDN TV: WCF Bindings.</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,6059315f-0d8e-4671-a883-9e6d15a48b02.aspx</guid>
      <link>http://vasters.com/clemensv/2006/06/18/MSDN+TV+WCF+Bindings.aspx</link>
      <pubDate>Sun, 18 Jun 2006 12:56:50 GMT</pubDate>
      <description>&lt;p&gt;
&lt;em&gt;[Note to self: Schedule the video taping session early in a bound-to-be-stressful
week, not 2 hours before you need to leave for the airport on Friday.]&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
MSDN TV has a &lt;a href="http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20060615WCFCV/manifest.xml"&gt;new
episode&lt;/a&gt; featuring &lt;a href="http://dictionary.reference.com/browse/yours truly"&gt;yours
truly&lt;/a&gt; speaking about WCF bindings (and what they cause in the channel stack).
&lt;/p&gt;
&lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=6059315f-0d8e-4671-a883-9e6d15a48b02" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,6059315f-0d8e-4671-a883-9e6d15a48b02.aspx</comments>
      <category>MSDN</category>
      <category>Technology/Indigo</category>
      <category>Technology/WCF</category>
    </item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=8f9dd2a3-2991-4cea-a62e-36ea2cabb9b3</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,8f9dd2a3-2991-4cea-a62e-36ea2cabb9b3.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,8f9dd2a3-2991-4cea-a62e-36ea2cabb9b3.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=8f9dd2a3-2991-4cea-a62e-36ea2cabb9b3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">... or as Pluralsight's main security dude
and newly crowned MSDN guest editor <a href="http://pluralsight.com/blogs/keith/archive/2006/06/06/26869.aspx">Keith
Brown</a> calls it more formally: <a href="http://msdn.microsoft.com/security/identityaccess/">Identity
and Access Management Developer Center on MSDN</a>. <img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=8f9dd2a3-2991-4cea-a62e-36ea2cabb9b3" /></body>
      <title>The New MSDN Hangout of the Security Dudes and Dudettes</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,8f9dd2a3-2991-4cea-a62e-36ea2cabb9b3.aspx</guid>
      <link>http://vasters.com/clemensv/2006/06/07/The+New+MSDN+Hangout+Of+The+Security+Dudes+And+Dudettes.aspx</link>
      <pubDate>Wed, 07 Jun 2006 15:58:07 GMT</pubDate>
      <description>... or as Pluralsight's main security dude and newly crowned MSDN guest editor &lt;a href="http://pluralsight.com/blogs/keith/archive/2006/06/06/26869.aspx"&gt;Keith
Brown&lt;/a&gt; calls it more formally: &lt;a href="http://msdn.microsoft.com/security/identityaccess/"&gt;Identity
and Access Management Developer Center on MSDN&lt;/a&gt;. &lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=8f9dd2a3-2991-4cea-a62e-36ea2cabb9b3" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,8f9dd2a3-2991-4cea-a62e-36ea2cabb9b3.aspx</comments>
      <category>MSDN</category>
    </item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=98fc7b70-b854-45b6-96bc-4a3c0305477c</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,98fc7b70-b854-45b6-96bc-4a3c0305477c.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,98fc7b70-b854-45b6-96bc-4a3c0305477c.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=98fc7b70-b854-45b6-96bc-4a3c0305477c</wfw:commentRss>
      <title>Look, look, my blog is on MSDN</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,98fc7b70-b854-45b6-96bc-4a3c0305477c.aspx</guid>
      <link>http://vasters.com/clemensv/2006/05/26/Look+Look+My+Blog+Is+On+MSDN.aspx</link>
      <pubDate>Fri, 26 May 2006 16:19:11 GMT</pubDate>
      <description>&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
&lt;span lang=EN-US&gt;When I started blogging about 5 years ago ( I can’t remember exactly,
but 2002 seems right) I would never have thought that my blog would end up on the
MSDN Web Services home page. Now it did. Matt Powell, who’s been the blogger featured
on the front page of the “MSDN Web Services and Distributed Technologies Developer
Center”&amp;nbsp; at &lt;a href="http://msdn.microsoft.com/webservices"&gt;http://msdn.microsoft.com/webservices&lt;/a&gt;&lt;?xml:namespace prefix = o /&gt; has
asked me to whether I’d be interested in taking that spot from him and you can guess
that it didn’t take me very long to say “Absolutely! Yes!”. 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span lang=EN-US&gt;So for the benefit of anyone who just found my blog through MSDN
and hasn’t attended any of my talks at some conference or hasn’t previously read my
original blog I should probably introduce myself:&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span lang=EN-US&gt;My name is Clemens Vasters and I am one of two Community Program
Managers on the Windows Communication Foundation (WCF) team. My team mate Shy Cohen
is responsible for our managed partners, our early adopter programs, and direct customer
engagements and I am more or less responsible for keeping in touch with everyone else.
That includes folks like the Microsoft MVPs, the Microsoft Regional Directors, frequent
conference speakers, and book authors, but also – and most importantly – You, You,
You, and You. I should also point out that Shy and myself are both members of the
product team who builds WCF and neither in marketing, evangelism or even sales. We
care first and foremost about the technology, we know how it all was built and why,
and about You being able to build great apps with it. &amp;nbsp;And we care very much
about you telling us what you like and don’t like so that we can make things even
better for you in the next releases. 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span lang=EN-US&gt;Thank you for all the great work, Matt. I’ll try to use this spot
wisely. :-)&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=98fc7b70-b854-45b6-96bc-4a3c0305477c" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,98fc7b70-b854-45b6-96bc-4a3c0305477c.aspx</comments>
      <category>MSDN</category>
    </item>
  </channel>
</rss>