<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>mikechampion's weblog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/mikechampion/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/mikechampion/feed.xml</link>
    <description />
    <lastBuildDate>Tue, 16 Apr 2019 05:18:27 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Lots of Stonehenge News: Initial release, Sun contribution, JavaOne keynote</title>
      <link>https://docs.microsoft.com/archive/blogs/mikechampion/lots-of-stonehenge-news-initial-release-sun-contribution-javaone-keynote</link>
      <pubDate>Fri, 05 Jun 2009 01:10:57 GMT</pubDate>
      <dc:creator><![CDATA[MCChampion]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mikechampion/2009/06/05/lots-of-stonehenge-news-initial-release-sun-contribution-javaone-keynote/</guid>
      <description><![CDATA[There’s lots of news about Apache Stonehenge today.&nbsp; First, the effort passed a significant...]]></description>
      <content:encoded><![CDATA[<p>There’s lots of news about <a href="http://incubator.apache.org/stonehenge/">Apache Stonehenge</a> today.&nbsp; First, the effort passed a significant milestone – its first release from the Apache incubator. This means that the code was updated to use the Apache license headers, the source control and build environment translated to those used at Apache, documentation was written, and new people tested everything to make sure it works. Finally, there were rounds of <a href="http://www.apache.org/foundation/voting.html">voting</a> by the Podling Project Management Committee to certify that everything was up to the foundation’s high standards. This was a fair amount of work; look around in the <a href="https://issues.apache.org/jira/secure/BrowseProject.jspa">issues browser</a> to see all the issues that were reported and fixed.  <p>You can download this release from the <a href="http://incubator.apache.org/stonehenge/download.html">project site</a> or one of the <a href="http://www.apache.org/dyn/closer.cgi/incubator/stonehenge">mirrors</a>.&nbsp; I hope you will take a look and let us know what you think. We know it's not everything you could possibly hope for, so please <a href="https://issues.apache.org/jira/browse/STONEHENGE">report issues and make suggestions</a>. Do these code samples help you understand how to solve the problems you might have had building SOA applications with the web services standards and toolkits?&nbsp; What's missing? What challenges are you facing that a multi-platform sample application and best practices project could better illustrate how to solve? <p>This is only the first step toward Stonehenge becoming a full-fledged Apache project.&nbsp; Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful Apache Software Foundation projects. This milestone shows evidence that the community and codebase is up and running, but both will have to become more mature before the project can be fully endorsed by the ASF. <p>&nbsp; <p>The first milestone release builds from code contributed by WSO2 and Microsoft late last year.&nbsp; Today&nbsp; <strong>Sun</strong> <strong>Microsystems contributed an implementation of the StockTrader sample application</strong> services built with <a href="https://metro.dev.java.net/">Metro</a>, the web services stack in <a href="https://glassfish.dev.java.net/">Glassfish</a>. The announcement came during Microsoft's keynote address at the JavaOne confernce.&nbsp; As <a href="http://blogs.msdn.com/stevemar/archive/2009/06/04/microsoft-keynoting-at-javaone.aspx">co-presenter Steven Martin</a> put it: <blockquote> <p><em>This is important for two reasons. First, it means that Stonehenge will deliver even more value by providing best practice guidelines and reference implementations across an even broader range of scenarios and platforms, including Java, .NET, PHP, etc. The more samples and real world guidance we can give the community the better since it gives customers the ability to choose the best ones for their specific business requirements. It also makes it easier to pinpoint potential interoperability problems.</em> <p><em>In addition, it represents another step forward in our ongoing work with Sun. As we all know, today’s IT environments are heterogeneous; whether it’s a single organization that runs both.NET and Java apps or multiple organizations that seek to collaborate with each other.</em></p></blockquote> <p>Going forward, it would be great to get even more individuals, projects, and companies involved in Stonehenge.&nbsp; The focus so far has been on the StockTrader services-oriented sample application originally developed for IBM WebSphere but now has interoperating versions running on several technologies including .NET, PHP, and a couple of Java SOA frameworks. Future work can both deepen and broaden what we've started with.&nbsp; For example, there has been much joint Sun / Microsoft work to&nbsp; support interoperability across our identify federation products, and it would be good so see this in Stonehenge.&nbsp;&nbsp;&nbsp; It would also be great to get implementations for a broader set of platforms and frameworks ... Apache CXF?&nbsp; Oracle Fusion?&nbsp; A new improved WebSphere implementation at Apache?&nbsp; How about showing us how to implement this security-focused scenario with REST?&nbsp; Or maybe one or more of the emerging Cloud platforms?&nbsp; All would be welcome.&nbsp; <p>But we hope there will be more to Stonehenge than just StockTrader.&nbsp; We're thinking about what other realistically complex and challenging -- but manageable! -- service-oriented scenarios would lend themselves to a set of interoperable sample implementations.&nbsp; Please join the conversation on the <a href="http://incubator.apache.org/stonehenge/mail-lists.html">Stonehenge mailing list</a> or <a href="https://issues.apache.org/jira/browse/STONEHENGE">issues tracker</a>. </p>]]></content:encoded>
    </item>
    <item>
      <title>Microsoft and the Apache Stonehenge Project</title>
      <link>https://docs.microsoft.com/archive/blogs/mikechampion/microsoft-and-the-apache-stonehenge-project</link>
      <pubDate>Mon, 24 Nov 2008 17:09:12 GMT</pubDate>
      <dc:creator><![CDATA[MCChampion]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mikechampion/2008/11/24/microsoft-and-the-apache-stonehenge-project/</guid>
      <description><![CDATA[Several of us at Microsoft have signed up to actively participate in the Apache Stonehenge Project...]]></description>
      <content:encoded><![CDATA[<p>Several of us at Microsoft have signed up to actively participate in the <a href="http://wiki.apache.org/incubator/StonehengeProposal">Apache Stonehenge Project</a> that was accepted into the incubator recently.&nbsp; This is only the latest in a number of <a href="http://port25.technet.com/archive/2008/11/07/open-source-interoperability-projects-at-microsoft.aspx">open source interoperability projects</a> in which Microsoft is active.</p> <p>So, what is Stonehenge and why am I participating?&nbsp; This project is championed by <a href="http://pzf.fremantle.org/">Paul Fremantle</a>, co-founder and CTO of <a href="http://wso2.com/">WSO2</a>, which has been a great partner in helping to improve and demonstrate the interoperability of the WS-* standards across platforms.&nbsp; For example, at TechEd 2008, <a href="http://video.msn.com/video.aspx?mkt=en-us&amp;vid=7019fbb8-4d12-4f56-93a1-a39b9d2ccb00">Jonathan Marsh of WSO2 and Greg Leake of Microsoft demonstrated</a> how separate <a href="http://wso2.org/interop/stocktrader">WSO2</a> and <a href="http://msdn.microsoft.com/en-us/netframework/bb499684.aspx">Microsoft</a> components implementing a mutlti-tier stock trading application can interoperate and be substituted for one another.&nbsp;&nbsp; </p> <p>StockTrader is just the starting point for the broader goals of Stonehenge.&nbsp; As the project proposal puts it:</p> <blockquote> <p><em>The aim of the Stonehenge project is to develop a set of sample applications to demonstrate seamless interoperability across multiple underlying platform technologies by using currently defined W3C and OASIS standard protocols. </em></p></blockquote> <blockquote> <p><em>We are proposing this incubator project because we believe that a project that includes a set of sample applications, with multiple language and framework implementations will become a useful and important part of the SOA landscape. It will: </em> <p>· <em>illustrate and develop best practice for interoperable applications that communicate via distributed protocols, </em> <p>· <em>demonstrate interoperability between platforms, </em> <p>· <em>provide sample code upon which SOA developers can build, </em> <p>· <em>help identify interoperability issues and their solutions, and </em> <p>· <em>build confidence in cross-platform deployment of SOA technologies</em></p></blockquote> <p>More generally, we believe that Stonehenge can help wire up the "last mile" between the standardized web services <strong>infrastructure</strong> that is now implemented across key platforms, and a new generation of service oriented <strong>applications</strong> that will span them. Existing WS-* interoperability work such of the sort done by <a href="http://ws-i.org/">WS-I</a> and in our "plugfests" will continue to solidify the platform-level interoperability.&nbsp; The new work, exemplified by Apache Stonehenge, should attract a wider community of users who can exploit the hard standardization and platform interoperability work without having to wallow in as many nasty details as in the past.  <p>We've gotten clear direction from customers that sample applications based on real-world scenarios and challenges will help them realize the potential of these technologies which have been developed and standardized for the last 8 years or so. Likewise, the initial response from the Apache community has been quite favorable.&nbsp;&nbsp; I have a personal commitment to invest in helping make Stonehenge a success, and look forward to digging in.  <p>For more information on Stonehenge and other Microsoft work with the Apache Foundation, see:  <ul> <li>Sam Ramji's <a href="http://port25.technet.com/archive/2008/11/06/apachecon-keynote.aspx">ApacheCon keynote</a> and the <a href="http://www.eweek.com/c/a/Linux-and-Open-Source/Microsoft-Pushes-Interoperability-at-ApacheCon/">writeup at eWeek</a>  <li>Paul Fremantle's <a href="http://pzf.fremantle.org/2008/11/stonehenge.html">blog post on Stonehenge</a>, Kamaljit Bath's <a href="http://port25.technet.com/archive/2008/11/10/apachecon-and-the-stonehenge-proposal.aspx">report from ApacheCon</a>, and the Apache <a href="http://feathercast.org/?p=68">Feathercast</a> featuring the two of them.  <li>Subscribe to the mailing list <a href="mailto:stonehenge-dev-subscribe@incubator.apache.org">stonehenge-dev-subscribe@incubator.apache.org</a></li></ul> <p>&nbsp; <p><a href="http://wooga.drbacchus.com/apache-incubator---stonehenge"></a>&nbsp; <p><a href="http://feathercast.org/?p=68"></a></p>]]></content:encoded>
    </item>
    <item>
      <title>Web Services Standards and .NET Interoperability</title>
      <link>https://docs.microsoft.com/archive/blogs/mikechampion/web-services-standards-and-net-interoperability</link>
      <pubDate>Tue, 01 Apr 2008 18:25:01 GMT</pubDate>
      <dc:creator><![CDATA[MCChampion]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mikechampion/2008/04/01/web-services-standards-and-net-interoperability/</guid>
      <description><![CDATA[Successive versions of the .NET framework closely track the evolution of the WS-* specs as they...]]></description>
      <content:encoded><![CDATA[<p>Successive versions of the .NET framework closely track the evolution of the WS-* specs as they progress from publication, to submissions to W3C or OASIS, and ultimately as W3C Recommendations or OASIS Standards. See for example the list of <a href="http://msdn2.microsoft.com/en-us/library/ms734776(VS.85).aspx">supported interoperability specs in .NET 3.0</a> (which shipped with Vista) and .<a href="http://msdn2.microsoft.com/en-us/library/ms730294.aspx">NET 3.5</a> (which shipped with Visual Studio 2008), noting how the later release referenced the final standard for several specs whereas the earlier versions referenced the original submission.&#160; </p>  <p>Not only does Microsoft closely track the standard version of specifications, Microsoft invests in helping other companies do similarly.&#160; One way is by sponsoring&#160; &#8220;<a href="http://tech.groups.yahoo.com/group/soapbuilders/message/10812">plugfests</a>&#8221; where implementers can get together and test what works and what doesn&#8217;t while products are still being developed.&#160; Don&#8217;t believe me, take a look at accounts of the recent web services plugfest from other &#8220;coop-etitors&#8221; in the SOA industry.&#160; For example Stefan Tilkov&#160; interviewed Harold Carr to assess the state of <a href="http://www.infoq.com/news/2008/03/wcf-metro-interop">interoperability between Sun&#8217;s Metro product and WCF</a>.&#160; Harold notes: </p>  <blockquote>   <p>.NET 3.5 (which is released) is based on the standard versions. Metro 1.x (which will ship later in 2008) will be based on the standard versions also.</p> </blockquote>  <p>Harold's own <a href="http://weblogs.java.net/blog/haroldcarr/archive/2008/03/metro_web_servi_2.html">blog has details on exactly which of the ratified standards</a> were used successfully to interoperate with .NET 3.5.&#160; </p>  <p>These ongoing&#160; Plugfests are a great way to increase real world interoperability, and we hope to see even broader participation in the future. See the <a href="http://mssoapinterop.org/ilab/">scenarios and frequently asked questions</a> page for details on how to participate. All interested parties are invited irrespective of which platform they develop for and whatever their business relationship (or not!) with Microsoft might be, with no legal agreements to be signed. </p>  <p>Here is a list of Web Services <i>standard</i> specifications (i.e. the versions of these specs that are OASIS standards or W3C Recommendations) that are <i>shipping today</i> in WCF, Microsoft&#8217;s application platform framework:&#160; </p>  <ul>   <li>SOAP 1.2 </li>    <li>W3C Web Services Addressing 1.0 - Core, SOAP binding, WSDL binding </li>    <li>MTOM </li>    <li>WS-ReliableMessaging 1.1 </li>    <li>WS-Security 1.1 (also SAML Token Profile 1.1) </li>    <li>WS-Policy 1.5 / WS-PolicyAttachment 1.5 </li>    <li>WS-SecurityPolicy 1.2 </li>    <li>WS-SecureConversation 1.3 </li>    <li>WS-Trust 1.3 </li>    <li>SAML 1.1 Token Format </li>    <li>WS-Addressing 1.0 </li>    <li>WS-Coordination 1.1 </li>    <li>WS-AtomicTransaction 1.1 </li>    <li>UDDI 2.0 </li>    <li>WS-I Basic Profile 1.1 </li>    <li>WS-I Basic Security Profile 1.0</li> </ul>  <p>Other ratified standards are supported elsewhere in the Microsoft product line, e.g. the DMTF WS-Management standard is supported in Vista.</p>  <p>It&#8217;s fair to point out that not all potentially relevant specs that can claim to be standards are supported in .NET (or the native Windows XML libraries for that matter).&#160; The clearest example of a ratified version of a spec that Microsoft and many others chose not to implement is XML 1.1.&#160; This was a difficult decision, since some changes in XML 1.1 make it better aligned with the evolving Unicode standard than XML 1.0 is, but others&#160; are &#8220;breaking changes&#8221; that would actually degrade real world interoperability.&#160; In this case, principled pushback on a standards committee has led to a proposed <a href="http://www.w3.org/TR/2008/PER-xml-20080205/">new edition of XML 1.0</a> that has improved Unicode alignment without sacrificing interoperability.</p>  <p>We encourage implementers to participate in the ongoing work to demonstrate and improve real world WS-* interoperability, and for customers to let us know about additional scenarios and specifications where we need to focus in the future in order to make cross-platform services ever more valuable.</p>]]></content:encoded>
    </item>
    <item>
      <title>WS-Bandwagon or WS-JustRight?</title>
      <link>https://docs.microsoft.com/archive/blogs/mikechampion/ws-bandwagon-or-ws-justright</link>
      <pubDate>Tue, 05 Jun 2007 20:10:53 GMT</pubDate>
      <dc:creator><![CDATA[MCChampion]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mikechampion/2007/06/05/ws-bandwagon-or-ws-justright/</guid>
      <description><![CDATA[My previous post used WS-Management to illustrate the larger point that&nbsp;&nbsp;"the WS...]]></description>
      <content:encoded><![CDATA[<p>My <a href="http://blogs.msdn.com/mikechampion/archive/2007/05/21/ws-and-the-hype-cycle.aspx">previous post</a> used <a href="http://www.dmtf.org/standards/wsman">WS-Management</a> to illustrate the larger point that&nbsp;&nbsp;"the WS technologies are taking hold, deep down in the infrastructure, doing the mundane but mission critical work for which they were designed."&nbsp; Perhaps because&nbsp; WS-Management is one of the more controversial bits of the WS-* infrastructure, that example stimulated more pushback than the other example I used -- the increasing success of the WS-* based <a href="http://www.identityblog.com/?page_id=355">identity metasystem</a>&nbsp;(which is a lot more <a href="http://www.microsoft.com/presspass/press/2007/may07/05-23MetasystemPR.mspx">newsworthy</a> at the moment). &nbsp; But it's easy to justify the value of standards and open source work in the identity space, where the prevalence of phishing indicates that the web does not have a good native story that falls out of the REST architecture.&nbsp; Let's look more closely at the harder question of why WS-Management exists and why it is gaining traction. </p> <p>&nbsp;A couple of points in reply to comments&nbsp;on the earlier post:&nbsp; <ul> <li>It overlaps in functionality with WSDM, another family of specs, and this overlap is a source of friction between the MS and IBM web services stories.&nbsp; I won't get into the history or politics here other than to speculate that WS-Management&nbsp;is a classic example of the <a href="http://en.wikipedia.org/wiki/Pareto_principle">Pareto Principle</a> -- it does quite a bit less than WSDM (maybe 20% of the functionality and complexity of WSDM), but its relative simplicity makes it easier to implement while being good enough for 80% of the important use cases.&nbsp; So, even in the allegedly pathological WS ecosystem, evolution favors the simple and functional over the the more highly&nbsp;but complexly designed.  <li>Why didn't something even simpler and more RESTful evolve,&nbsp;which <a href="https://blogs.msdn.com/mikechampion/archive/2007/05/21/ws-and-the-hype-cycle.aspx#3105431">Patrick Logan's comment</a> suggests would have been easy?&nbsp; I don't know the history, but it's clear that REST concepts were in fact&nbsp;leveraged to keep the spec relatively simple.&nbsp; Patrick also <a href="http://patricklogan.blogspot.com/2007/06/ws-bandwagon-decision-making.html">pushed back</a> that that it is a "shell of a solution with little agreement on what goes into the shell." REST is also a "shell of a solution", and WS-Management adopts the same basic approach to allow late binding to the resources in a catalog rather than tight coupling to a predefined set of objects. <li>Why not just use HTTP rather than WS-Transfer?&nbsp; I created a bit of contention by asserting that WS-Man is designed for use "in&nbsp;situations where the web-scale alternatives&nbsp;really don't fit, such as&nbsp;deep within operating systems or in the firmware of chips".&nbsp; A number of people pointed out (probably correctly, but I don't really know) that an HTTP implementation would "fit" in the same amount of code or memory as a WS-Transfer implementation.&nbsp; That being as it may, I meant "fit" in the architectural sense -- I thought the common REST argument that HTTP is an application protocol indicated that it would not "fit" so deep down in the stack as the firmware on a chip or device.&nbsp; More significantly, HTTP does "fit" on top of TCP/IP, but WS-Management was designed for use in situations where only UDP network services are available. &nbsp;  <li>Whether or not the designers&nbsp;were simply riding the <a href="http://patricklogan.blogspot.com/2007/06/ws-bandwagon-decision-making.html">WS bandwagon</a> rather than thinking hard about RESTful alternatives,&nbsp;&nbsp;WS-Management sits on a number of WS specs, not just WS-Transfer.&nbsp; By building on WS-* they could leverage services that HTTP does not provide.&nbsp; WS-Eventing&nbsp;provides asynchronous&nbsp;"push" &nbsp;notifications, WS-Enumeration supports the traversal of collections of resources, and WS-Security, WS-Trust, and WS-SecureConversation provide a security infrastructure. </li></ul> <p>WS-Management leverages some&nbsp;key benefits of SOAP such as its protocol neutrality while adopting some of the REST abstractions to avoid&nbsp;the complexity of an&nbsp;RPC API for all possible management service invocations.&nbsp; In other words, it exemplifies what Jon Udell calls <a href="http://blog.jonudell.net/2007/06/05/ws-justright-revisited/">WS-JustRight</a>&nbsp;for its intended domain: "I stand by what I’ve been saying all along, in a variety of places including <a href="http://www.infoworld.com/article/05/09/12/37FEsoaevolve_1.html">this InfoWorld cover story</a>: there’s WS-Heavy, there’s WS-Lite, and for every situation there’s a WS-JustRight that may rely on elements of one, the other, or both. The Richardson/Ruby book brings much-needed clarity to the WS-Lite end of the tolerance continuum, and that’s a great thing. But when we celebrate one end of the continuum, why must we deprecate the other?"</p>]]></content:encoded>
    </item>
    <item>
      <title>WS-* and the Hype Cycle</title>
      <link>https://docs.microsoft.com/archive/blogs/mikechampion/ws-and-the-hype-cycle</link>
      <pubDate>Mon, 21 May 2007 11:24:00 GMT</pubDate>
      <dc:creator><![CDATA[MCChampion]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mikechampion/2007/05/21/ws-and-the-hype-cycle/</guid>
      <description><![CDATA[There's a persistent theme talked up by WS-*ophobes that it's all just a fad, rapidly sliding down...]]></description>
      <content:encoded><![CDATA[<p mce_keep="true">There's a persistent theme talked up by WS-*ophobes that it's all just a <a href="http://www.dehora.net/journal/2007/05/district_1.html" mce_href="http://www.dehora.net/journal/2007/05/district_1.html">fad</a>, rapidly sliding down toward the "Trough of Dilillusionment" in the <a href="http://www.gartner.com/pages/story.php.id.8795.s.8.jsp" mce_href="http://www.gartner.com/pages/story.php.id.8795.s.8.jsp">Gartner</a> <a href="http://en.wikipedia.org/wiki/Gartner's_Hype_Cycle" mce_href="http://en.wikipedia.org/wiki/Gartner's_Hype_Cycle">Hype Cycle</a>. I've come to the opposite conclusion after six weeks back in the web services world.&nbsp; The WS technologies are taking hold, deep down in the infrastructure, doing the mundane but mission critical work for which they were designed.&nbsp; </p> <p>Let's consider one example, <a href="http://www.dmtf.org/standards/published_documents/DSP0226.pdf" mce_href="http://www.dmtf.org/standards/published_documents/DSP0226.pdf">WS-Management</a>, which I had barely heard of when I started in CSD Interoperability. It's stated purpose is:  <blockquote> <p><em>To promote interoperability between management applications and managed resources, this specification identifies a core set of Web service specifications and usage requirements that expose a common set of operations central to all systems management. This comprises the abilities to<br>• Get, put (update), create, and delete individual resource instances, such as settings and dynamic values,<br>• Enumerate the contents of containers and collections, such as large tables and logs,<br>• Subscribe to events emitted by managed resources, and<br>• Execute specific management methods with strongly typed input and output parameters.</em></p></blockquote> <p>At first glance&nbsp;this appears to duplicate widely deployed bits of the web.&nbsp; For example, it depends on the <a href="http://www.tbray.org/ongoing/When/200x/2004/09/18/WS-Oppo" mce_href="http://www.tbray.org/ongoing/When/200x/2004/09/18/WS-Oppo">oft</a>-<a href="http://www.mnot.net/blog/2006/03/15/transfer" mce_href="http://www.mnot.net/blog/2006/03/15/transfer">criticized</a> WS-Transfer spec, and some are <a href="http://www.tbray.org/ongoing/When/200x/2005/09/21/Atom-Protocol" mce_href="http://www.tbray.org/ongoing/When/200x/2005/09/21/Atom-Protocol">advocating</a> using Atom and the Atom Publishing Protocol rather than WS-* for describing collections and subscribing to notifications of their contents.&nbsp; On closer examination,&nbsp;WS-Management is widely used today in&nbsp;situations where the web-scale alternatives&nbsp;really don't fit, such as&nbsp;deep within operating systems or in the firmware of chips.&nbsp;&nbsp;&nbsp; <a href="http://msdn2.microsoft.com/en-us/library/aa480728.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/aa480728.aspx">For example</a>:  <blockquote> <p><em>For IT Professionals, Windows Server and Microsoft Operations Manager will enable the management of heterogeneous software and hardware systems using WS-Management. For consumers, Windows Vista will support the discovery of and interaction with Web services-enabled devices, such as printers, digital cameras, and home control systems.</em></p></blockquote> <p>Those devices may or may not be "on the Web"; increasingly support is built into the firmware of the devices. For that matter, the&nbsp;heterogenous software systems being managed may include HTTP servers.&nbsp;&nbsp;Furthermore, this is not a Windows-specific technology, it is actively developed and supported across platforms&nbsp;by <a href="http://devresource.hp.com/drc/technical_white_papers/soa_stds/index.jsp#wsmanagement" mce_href="http://devresource.hp.com/drc/technical_white_papers/soa_stds/index.jsp#wsmanagement">HP</a>, <a href="http://oss.intel.com/en-us/projects/" mce_href="http://oss.intel.com/en-us/projects/">Intel</a>, and <a href="http://www.gridtoday.com/04/1018/103995.html" mce_href="http://www.gridtoday.com/04/1018/103995.html">others</a>.&nbsp;  <p>Another example where WS standards and technologies are quietly taking root is in the area of identity management.&nbsp;&nbsp; Both the major identity management stacks (<a href="http://xml.coverpages.org/ni2003-07-08-b.html" mce_href="http://xml.coverpages.org/ni2003-07-08-b.html">WS-Trust / WS-Federation</a> and <a href="http://www.projectliberty.org/" mce_href="http://www.projectliberty.org/">Liberty</a>) depend on Web services technologies, and there is no credible "pure Web" alternative.&nbsp;The "identity metasystem" supported by &nbsp;<a href="http://msdn2.microsoft.com/en-us/library/aa480189.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/aa480189.aspx">Windows Cardspace</a> and several other <a href="http://blogs.zdnet.com/microsoft/?p=151" mce_href="http://blogs.zdnet.com/microsoft/?p=151">vendors and open source projects</a> that to some extent bridges these stacks is getting real adoption, inching WS-* up toward the "plateau of productivity."  <p>Perhaps we are seeing a repetition of the pattern that made XML ubiquitous.&nbsp; It was <a href="http://xml.coverpages.org/bosak-xmlapps1.html" mce_href="http://xml.coverpages.org/bosak-xmlapps1.html">originally conceived as "SGML for the Web</a>", but that vision has <a href="http://www.xml.com/pub/a/2006/03/15/next-web-xhtml2-ajax.html?page=1" mce_href="http://www.xml.com/pub/a/2006/03/15/next-web-xhtml2-ajax.html?page=1">never materialized</a> -- non-wellformed HTM, Javascript, &nbsp;and proprietary formats such as PDF and Flash predominate on the Web itself.&nbsp;XML has become pervasive as a&nbsp;convenient format for less glamorous tasks,&nbsp;such as configuration files, summaries of site contents (RSS and Atom), and lists of lists (OPML). &nbsp;Likewise, at the peak of the hype cycle the web services technologies were promoted as part of a <a href="http://www.infoworld.com/articles/hn/xml/01/06/22/010622hnballmer.html" mce_href="http://www.infoworld.com/articles/hn/xml/01/06/22/010622hnballmer.html">grand vision</a>.&nbsp; The post-Vista world may not look exactly like the 2001-vintage Longhorn vision, but WS technologies are doing the unglamorous work for which they were actually designed.&nbsp; </p> <p>In short, from what I have learned recently, the trajectory of WS-* isn't pointing toward oblivion, it looks headed toward the same sort of pragmatic&nbsp;ubiquity that XML has achieved.&nbsp;&nbsp;That's not to say all is rosy; there is&nbsp;lots of confusion and dissension, again just like there was in the early days of the Web and XML.&nbsp;&nbsp;&nbsp;Likewise, "ubiquity" doesn't mean that&nbsp;the WS technologies are the best or the only option across the board, &nbsp;but that it they are increasingly available as a very&nbsp;viable&nbsp;option when developers need protocol-neutrality, security, identity, management capability, etc. </p>]]></content:encoded>
    </item>
    <item>
      <title>The Secret of LINQ Design</title>
      <link>https://docs.microsoft.com/archive/blogs/mikechampion/the-secret-of-linq-design</link>
      <pubDate>Tue, 15 May 2007 10:23:58 GMT</pubDate>
      <dc:creator><![CDATA[MCChampion]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mikechampion/2007/05/15/the-secret-of-linq-design/</guid>
      <description><![CDATA[A team within Microsoft ran an "app week" recently to build applications that implement customer...]]></description>
      <content:encoded><![CDATA[<p>A team within Microsoft ran an "app week" recently to build applications that implement customer scenarios using a variety of LINQ technologies.&nbsp; The feedback on LINQ to XML was uniformly positive. The participants were not XML geeks, but more like our target audience: developers who come across XML now and then and need to deal with it without undue fuss. This group found that they were immediately productive without having to read the documentation, because the APIs worked the way one intuitively thought they should.&nbsp; This set off an interesting internal thread speculating on why LINQ to XML was successful in achieving its design objectives in a world (and to be honest, a company) where this&nbsp;is not&nbsp;the norm.</p> <p>I saw <a href="http://www.technologyreview.com/printer_friendly_article.aspx?id=18621">The Secret of Apple Design</a> and was struck by some similarities with how LINQ to XML came about. The article quotes extensively from design guru and former Apple exec <a href="http://en.wikipedia.org/wiki/Donald_Norman">Donald Norman</a>.&nbsp; For example:</p> <blockquote> <p><em>"[Jobs] had a single, cohesive image of the final product and would not allow any deviation, no matter how promising a new proposed feature appeared to be, no matter how much the team complained. Other companies are more democratic, listening to everyone's opinions, and the result is bloat and a lack of cohesion.</em></p></blockquote> <p>Thie quote points to the first similarity --&nbsp;the existence of a designer with the skill to make hard decisions and the authority to make them stick.&nbsp;In LINQ, the Steve Jobs role&nbsp;is played by <a href="https://channel9.msdn.com/showpost.aspx?postid=159952">Anders Hejlsberg</a>. Superficially, the LINQ design teams&nbsp; look a lot like W3C working groups, with regular meetings where requirements are interpreted and fine-tinued, and proposals for alternative ways of achieving the requirements are presented and discussed, sometimes for months. &nbsp;In sharp contrast to the designed-by-committee XML technologies such as DOM, however, LINQ has an architect who makes decisions, not a chair who drives consensus.&nbsp; In the LINQ design meetings, all opinions were considered, and previous decisions open for reconsideration, but there is no pretense of democracy.&nbsp;&nbsp;When it came time end a discussion, there wasn't a vote, or weasel-wording to paper over disagreements, there was a decision.</p> <p>The quote also highlights the importance of&nbsp;<a href="http://en.wikipedia.org/wiki/The_Mythical_Man-Month">conceptual integrity</a>.&nbsp;Anders began what is now called LINQ to XML with a clear vision for how a modern XML API could work, with C# functional constructors and LINQ queries providing an essentially functional approach to working with XML.&nbsp; Lots of ideas were proposed, and lots of people complained when they were removed or rejected, but the goal of internal cohesion and alignment with LINQ was paramount.&nbsp; Of course, XML reality intervened in various unavoidably ugly ways, but much design effort was put into minimizing and isolating the ugliness.</p> <p>The third similarity I noted is an insistence on simplicity over feature richness.&nbsp; Quoting again from the article:</p> <blockquote> <p><em>"The hardest part of design ...is keeping features out." Simplicity,&nbsp;[Norman] says, is in itself a product differentiator, and pursuing it can lead to innovation. </em> <p><em>Rolston agrees. "The most fundamental thing about Apple that's interesting to me," he says, "is that they're just as smart about what they don't do. Great products can be made more beautiful by omitting things."</em></p></blockquote> <p>&nbsp;A year ago, I wrote a post on what <a href="http://blogs.msdn.com/mikechampion/archive/2006/06/30/652896.aspx">LINQ to XML would <strong>not</strong> do</a>, such as guarantee that a tree in memory is well-formed, support XML 1.1, offer more than bare minimum support for DTDs, round-trip entity references, and so forth.&nbsp; Likewise, the design team decided to <a href="http://blogs.msdn.com/xmlteam/archive/2007/03/05/streaming-with-linq-to-xml-part-1.aspx">remove the streaming input API</a> that had been extensively discussed and prototyped.&nbsp; In many such cases, Anders decided that the functionality benefit wasn't worth the complexity cost. </p> <p>Of course, the real secret to successful design is the skill and tenacity of the designers and the implementers; giving a chief designer the authority to purse cohesiveness and simplicity just enables success, it doesn't assure it. Likewise,&nbsp;LINQ's technical success doesn't guarantee real world success. For example,&nbsp;for all &nbsp;its aesthetic flaws, DOM has been an undeniable success story in helping make XML and dynamic HTML reasonably usable by developers, and has&nbsp;helped the world move from mostly proprietary&nbsp;to interoperable data formats over the last 10 years.&nbsp;&nbsp; It is possible that the same ugly compromises&nbsp;that promote&nbsp;committee consensus actually help overall adoption.&nbsp; Likewise, just as Apple's design aesthetic pays off because it appeals to an upscale market willing to pay a premium for form and fashion on top of functionality, perhaps LINQ to XML will appeal mostly to a niche in the developer community.&nbsp; We shall see ... but I bet a couple of years on this and I'm convinced that this technology will be widely adopted on the Microsoft platform and will spark a round of competitive innovation on other platforms.&nbsp; ]]></content:encoded>
    </item>
    <item>
      <title>Accelerating Evolution: LINQ News from Mix 2007</title>
      <link>https://docs.microsoft.com/archive/blogs/mikechampion/accelerating-evolution-linq-news-from-mix-2007</link>
      <pubDate>Wed, 02 May 2007 22:49:42 GMT</pubDate>
      <dc:creator><![CDATA[MCChampion]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mikechampion/2007/05/02/accelerating-evolution-linq-news-from-mix-2007/</guid>
      <description><![CDATA[There is a lot of interesting (and once confidential) stuff that came out of the Mix conference this...]]></description>
      <content:encoded><![CDATA[<p>There is a lot of interesting (and once confidential) stuff that came out of the Mix conference this week.</p> <p>Jon Udell's &nbsp;"<a href="http://blog.jonudell.net/2007/05/01/watching-anders-hejlsberg-reinvent-the-relationship-between-programs-and-data/">Watching Anders Hejlsberg reinvent the relationship between programs and data"</a>&nbsp;... offers an enthusiastic summary:</p> <blockquote> <p><em>A lot of the time, when we use the web, we’re effectively performing joins among data sources. You visit one site to look up some data, then you grab some of it and plug it into another site. If you’re lucky, somebody will have built a mashup, on a third site, to facilitate that join. But what if your browser had the data manipulation chops to help you do that mashup directly? I’m hoping that technologies like Silverlight and LINQ will enable things like that to happen.</em></p></blockquote> <p>Jon doesn't elaborate a whole lot&nbsp;on what "reinventing the relationship between programs and data" means.&nbsp; Fortunately, Anders' <a href="http://sessions.visitmix.com/silverlight/v1/videos/DEV04.wmv">LINQ presentation</a>&nbsp;itself&nbsp;is now online.&nbsp; Some points he makes about the new relationship between programs and data include:</p> <blockquote> <p>Data != Objects&nbsp; - Now you can query data without it being in a database ... LINQ offers "native support for queries as a first class concept". C# and VB now offer the same expresive power as SQL and XQuery built right into the languages.&nbsp; LINQ unifies and brings to a higher level of abstraction the whole notion of data-driven programming.&nbsp;</p> <p>Imperative-&gt;Declarative - Programmers can focus on "what now&nbsp;how" without having to learn a new language such as SQL or XQuery.&nbsp; Imperative approaches have run their course; we won't see 10x productivity improvements anytime soon, nor will compilers be able to automatically adapt imperative code to new hardware.&nbsp; But the declarative approach will support 10x improvements in the performance of data-driven applications and the "what not now" approach allows compilers to adapt to multicore architectures and so forth.&nbsp; The key is to adapt programming styles to a more declarative, query-oriented style.&nbsp; LINQ supports this.</p></blockquote> <blockquote> <p>OO programming languages have no notion of projection, you have to do it with&nbsp;tedious declarations and imperative transformations.&nbsp; LINQ makes this much easier, with&nbsp;anonymous types and functional construction.&nbsp; In the demo, Anders usees this approach to transform XML data into business objects with very little code, and no schemas or code generators.</p></blockquote> <p></p> <p>I'd elaborate a bit on the last point.&nbsp; Lots of technologies exist that leverage some <em>explicit mapping</em> from raw data to programming objects; that mapping might be a conceptual model, a schema, an ontology, or an adapter.&nbsp; For example, XQuery is used to integrate and query over diverse data sources, but only after the data has been <em>explicitly</em> transformed from its native representation (e.g. SQL tables) to an XQuery data model.&nbsp; LINQ to Objects and LINQ to XML,&nbsp;on the other hand exploit the IEnumerable&lt;T&gt;, aka <a href="http://en.wikipedia.org/wiki/Monads_in_functional_programming">monads</a>/<a href="http://research.microsoft.com/~emeijer/Papers/XLinq%20XML%20Programming%20Refactored%20(The%20Return%20Of%20The%20Monoids).htm">monoids</a>, that is implicit in almost all collections of data, or exposed as axes in XML documents.&nbsp; To me, that's the essence of LINQ's reinvention of the relationship between programs and data: conceptualizing data in an object graph, database, XML document (or <a href="http://weblogs.asp.net/fmarguerie/archive/2006/06/26/Introducing-Linq-to-Amazon.aspx">Amazon.com catalog</a>,&nbsp;&nbsp;<a href="http://iqueryable.com/2007/04/16/LINQToLDAP.aspx">LDAP directory</a>, &nbsp;ad infinitum) allows developers to write smaller, cleaner, more parallelizable, etc. programs with much less concern for the plumbing. <p>&nbsp; <p>Putting all this into a realistic application, Aaron Dunnington and Tim Scudder of the Data Programmability / XML team gave a <a href="http://int1.fp.sandpiper.net/soma/applications/silverlight/v1/videos/DEV16.wmv">Mix Presentation that exploits the XML features in Silverlight</a> clients and LINQ, etc. on the server.&nbsp; Their demo is called "The Socializer", showing how Silverlight applications can bring all sorts of social networking data together and display it in a visually appealing way. Technologies&nbsp;used in the demo include Silverlight, C# 3.0, &nbsp;LINQ to Objects,&nbsp;LINQ to XML,&nbsp;RDF, FOAF and more.&nbsp;  <p>&nbsp; <p>Needless to say, all this Silverlight <a href="http://dondodge.typepad.com/the_next_big_thing/2007/05/silverlight_get.html">love from unexpected parties</a> isn't going unchallenged.&nbsp; The most popular statement of the opposing side seems to be the fine rant from <a href="http://diveintomark.org/archives/2007/05/02/silly-season">Mark Pilgrim</a>. His most trenchant bits are unquoteable, but the gist of it seems to be that <a href="http://labs.adobe.com/wiki/index.php/Apollo:Documentation:Introducing_Adobe_Apollo">Adobe</a> and Microsoft (and Sun's "<a href="http://www.cio.in/news/viewArticle/ARTICLEID=3198">alternative to Ajax</a>") indicate the return to the bad old days of proprietary technology and vendor lockin.&nbsp; Astonishingly enough I see it differently: The purely standards-based web is quite functional and interoperable for relatively static content, but the "Web 2.0" demands for browser-centered applications that are dynamic, attractive, and portable are very difficult to meet with currently standardized technologies.&nbsp; As <a href="http://www.cio.in/news/viewArticle/ARTICLEID=3198">Dan Ingalls of Sun</a> put it: <blockquote> <p><em>AJAX sort of deals with all of the old way of doing things. It makes it simpler, which is great, but underneath it’s still all this junky HTML, Document Object Model, CSS, all that stuff, where 30 years ago, we knew how to do that stuff cleanly with a dynamic programming language and a simple graphics model.</em></p></blockquote> <p>That's NOT to say that Ajax is dead.&nbsp; As far as I know, there was a lot of Microsoft Ajax support announced at Mix, and more in the pipeline.&nbsp; I hope and pray we (inside and outisde MS) don't repeat the IE6 mistake of declaring "junky HTML, DOM, CSS, all that stuff" obsolete and stop maintaining the standards and implementations.&nbsp; It will live on, and improve for some time... while LINQ/Sliverlight/Apollo/Flair/whatever mature and potentially drive a new generation of web standards.&nbsp; But a new generation of web standards won't be invented by committees,&nbsp;but&nbsp;by developers, then polished&nbsp; by competition ... then committees can come along and tidy up.&nbsp; Just like Web 1.0 came about.</p> <p>It's interesting watching various pundits and analysts read the tea leaves of the numerous LINQ subprojects, Silverlight versions, and incubation projects such as Volta to figure out the "Microsoft" master plan for pulling it all together.&nbsp; Just as customer pain with today's technology&nbsp;drives diverse innovation across the industry, so it does within Microsoft, and the process resembles evolution in action more than intelligent design by a supreme architect.&nbsp; I don't think we're seeing a silly season so much as a <a href="http://en.wikipedia.org/wiki/Cambrian_Explosion">Cambrian explosion</a>&nbsp;of new ideas from all sorts of places, and Father Darwin alone knows how it will end up.</p>]]></content:encoded>
    </item>
    <item>
      <title>Reporting for duty on WS-Deathstar</title>
      <link>https://docs.microsoft.com/archive/blogs/mikechampion/reporting-for-duty-on-ws-deathstar</link>
      <pubDate>Tue, 01 May 2007 19:37:51 GMT</pubDate>
      <dc:creator><![CDATA[MCChampion]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mikechampion/2007/05/01/reporting-for-duty-on-ws-deathstar/</guid>
      <description><![CDATA[After an enjoyable and extremely educational 2 1/2 years on the core XML team in SQL Data...]]></description>
      <content:encoded><![CDATA[<p>After an enjoyable and extremely educational 2 1/2 years on the core XML team in SQL Data Programmability at Microsoft,&nbsp;I've moved&nbsp;to a position in the Connected Systems Division's Interoperability unit.&nbsp; Responsibilities include representing Microsoft on the W3C, helping with web services standards partnerships, and generally helping the world understand the method behind the apparent WS-Madness, or at least the subset of it that Microsoft endorses.</p> <p>"Huh?" you might ask.&nbsp; Why voluntarily join the <a href="http://www.loudthinking.com/arc/000602.html">doomed crew of WS-Deathstar</a>?&nbsp; Or maybe the WS-* crowd are not evil, they're&nbsp;&nbsp;<a href="http://bp1.blogger.com/_aOYeAe3Q1wc/RhRp7feSWxI/AAAAAAAAAC4/Pi8Iv6mN2LU/s1600-h/WS+Sand.jpg">weenies who get sand kicked in their faces</a>?&nbsp;As with XML itself, the point isn't whether "<a href="http://blog.jclark.com/2007/04/do-we-need-new-kind-of-schema-language.html">any damn fool could produce a better data format</a>" it's whether&nbsp;the web services specs provide a pragmatic foundation for&nbsp;actual interoperabiliy. Just as XML quietly became pervasive while its numerous limitations were being flamed by the cognoscenti, the WS technologies are quietly taking root in all sorts of places where interoperable identity, security, reliability, management, etc. concerns trump geek aesthetics.&nbsp; There's no disputing that skillful people can implement systems with all these properties without WS-*, but there is much to be said for building these capabilities into the infrastructure of Windows, .NET, Websphere, Java, Apache, etc., in a standardized and interoperable way. I don't pretend that goal has been achieved, but I'm convinced its achieveable.</p> <p>&nbsp;Another part of my reason for moving&nbsp;is that <a href="http://download.microsoft.com/download/5/8/6/5868081c-68aa-40de-9a45-a3803d8134b8/xlinq_overview.doc">LINQ to XML</a> is close enough to being done that I can declare victory and move on, hoping that its success will rebalance my karma after the <a href="http://search.live.com/results.aspx?q=xml+%22dom+sucks%22">beating</a> it <a href="http://www.artima.com/intv/xmlapis.html">suffered</a> from my role in DOM :-).&nbsp; I'm still involved in the project to some extent, backing up <a href="http://blogs.msdn.com/ralflammel/">Ralf</a> as he assumes the role of LINQ to XML PM and doing my bit to evangelize the LINQ XML story in <a href="http://blogs.msdn.com/xmlteam/archive/2007/04/20/linq-to-xml-changes-in-orcas-beta1.aspx">Orcas</a> and <a href="http://blogs.msdn.com/xmlteam/archive/2007/04/30/live-from-mix07-silverlight-and-xml.aspx">Silverlight</a>.</p> <p>But there are some more substantive attractions to WS-Darkness.&nbsp; First, the overall WS-* framework doesn't deserve its bad reputation among XML and Web geeks. It's hard to call anything designed by that many committees elegant, but there is an underlying conceptual integrity in it that I've come to appreciate over the years. That's not exhibited by all the specs, to be sure ...don't ask me to defend XSD or WSDL!&nbsp; There's no disputing that current interoperability above the SOAP level can be problematic, but much of this can be traced to incorrect implementations and problems mapping XSD to underlying object systems. It will take longer to get full interoperability at the higher levels of the WS stack, but I'm convinced that it will be much more practical to complete the work that is underway than to start over with some new paradigm, or to return to the bad old days of one-off data contracts and armies of consultants needed for everything.</p> <p>&nbsp;The stock&nbsp;phrase in the WS-* specs&nbsp;is that they are "designed to be composed with each other to provide a rich messaging environment".&nbsp; I&nbsp;think&nbsp;the term&nbsp;"<a href="http://ironick.typepad.com/ironick/2003/07/new_soap_reinve.html">Aspect-oriented messaging</a>" better captures the underlying architectural principle that the WS specs&nbsp;can work separately or be&nbsp;composed&nbsp;together to provide&nbsp;a variety of message services:&nbsp;</p> <blockquote> <p><em>[SOAP 1.2] provides a much simpler and more powerful aspect-oriented mechanism for extending the SOAP processing model. New aspect-oriented&nbsp;features can be added to SOAP by defining additional SOAP headers and how to process them. Such features can range from transport-level features such as security and reliable messaging to business-level features such as spending-policy enforcement to personalization and differentiated service. <b>Bottom Line:</b> Users who consider SOAP to be just a low-level RPC mechanism should review SOAP v1.2 to understand its potentially profound architectural implications for distributed computing.</em></p></blockquote> <p>"Ironick" indeed, that's by the same Nick Gall whose <a href="http://www.w3.org/2007/01/wos-papers/gall">Web of Services for Enterprise Computing whitepaper</a> got so much link love from the WS-skeptics.&nbsp;Gall may or may not have come to regret his previous enthusiasm for SOAP's architectural principles, but in any event the&nbsp;main point of his position paper isn't &nbsp;isn't so much&nbsp;about WS architecture as it is about W3C's&nbsp;philosophy:&nbsp;"While there is nothing wrong with&nbsp;[the various WS-* specs] &nbsp;--in fact there is great value in having the major middleware vendors finally agree on middleware standards after so many years of proprietary middleware protocols--the problem is that such work has nothing to do with web architecture or the W3C."&nbsp; That may be a defensible position, but the fact remains that the W3C management and staff have worked hard to give at least some of the more fundamental and web-related WS specs a home at that organization.&nbsp;&nbsp; </p> <p>Which leads to my second point:&nbsp; "<a href="http://www.addsimplicity.com/adding_simplicity_an_engi/2006/12/its_a_tool_not_.html">It's a tool, not a religion</a>". </p> <blockquote> <p><em>I have spent time around job sites. I can promise you that you'll find circular saws, chop saws, and table saws. Is there overlap in functionality and potential application of these saws? Absolutely. Why have all three then? Well, because each is particularly good for certain types of cutting chores and less optimal for others. Contractors, like mechanics, want a broad set of tools available so they can have the optimal tool for each task. </em></p> <p><em>Why then do we, as software engineers, have to work so hard to reduce our toolbox to the ultimate tool? There is this tendency to look for the Swiss Army language with supporting framework that will be the optimal solution for every problem in the world. The simple reality is that such a language and framework can never be created.</em></p></blockquote> <p>I've always been annoyed by the&nbsp;zealotry manifested in the "SOAP vs REST" debate.&nbsp;&nbsp;The&nbsp;overhyped WS marketing and the RESTifarian pushback in 2001-2002 or&nbsp;so had the&nbsp;effect of people "flipping the bozo bit"&nbsp;on each other wholesale.&nbsp; We're just now seeing&nbsp;some&nbsp;exploration of the sensible middle position -- the native Web technologies are powerful and deserve first class support in&nbsp;the&nbsp;services-oriented tools and specs, and at least some of the WS technologies are useful on the Web as well as the enterprise, especially in the realm of identity and security.&nbsp; People on the WS side are finally understanding the the potential of the SOAP GET binding, and maybe the REST folks are starting to understand the oft-maligned&nbsp;WS-Transfer&nbsp; ("HTTP over SOAP over HTTP") is not quite so pointless in a multi-hop, multi-protocol world.</p> <p>Finally,&nbsp;the supposed coup de grâce in most <a href="http://blogs.mulesource.com/?p=92">skewerings</a> of WS-* is to point out the <a href="http://www.tbray.org/ongoing/When/200x/2006/11/16/WS-Socratic">complexity</a> of the <a href="http://tomayko.com/weblog/2004/11/19/sloppy-kisses">web</a> of <a href="http://www.infoworld.com/article/06/01/31/74964_HNwebservicesissues_1.html">specs</a> and frameworks.&nbsp; The best response I've seen is by <a href="http://yetanothersoftwareblog.blogspot.com/2007/04/no-day-at-beach-for-web-services.html">Charles Zedlewski</a>:</p> <blockquote> <p><em>But I think the kvetching over the WS-* complexity is pretty overblown. What struck me looking at <a href="http://www.innoq.com/soa/ws-standards/poster/innoQ%20WS-Standards%20Poster%202007-02.pdf">Innoq’s diagram</a> is how similar it is to the Java class library (or any other major language’s class library for that matter).</em>  <p><em>... &nbsp;you don’t have to learn all the inner workings of either standard to make good use of it. You either:<br>1) Learn and choose to leverage only the most useful bits of the standard that are relevant for your project.&nbsp;... Or you:<br>2) Utilize some combination of tools and platforms that hide the complexity of the underlying standards.</em></p></blockquote> <p>Anyway, I'm having fun getting back up to speed on all this and getting back in the blog debates I swore off awhile ago.&nbsp; </p>]]></content:encoded>
    </item>
    <item>
      <title>Convergence Zones</title>
      <link>https://docs.microsoft.com/archive/blogs/mikechampion/convergence-zones</link>
      <pubDate>Fri, 12 Jan 2007 15:37:51 GMT</pubDate>
      <dc:creator><![CDATA[MCChampion]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mikechampion/2007/01/12/convergence-zones/</guid>
      <description><![CDATA[I had a lot of time to think about Elliotte Harold's call for XML predictions on the way home from...]]></description>
      <content:encoded><![CDATA[<p>I had a <em>lot</em> of time to think about <a href="http://lists.xml.org/archives/xml-dev/200701/msg00116.html">Elliotte Harold's call for XML predictions</a> on the way home from Redmond Wednesday night.&nbsp; We got several inches of snow, which is rare here and the highway folks just can't deal with . There were massive traffic tieups, and lots of time spent staring off into the snowflakes. Most of us commuters were caught off-guard by the snow, since the forecast was something like "cloudy with a chance of snow showers".&nbsp; That's not inaccurate, but not very helpful ... like most of those "successful" beginning-of-2006 predictions pundits are bragging about this month.</p> <p>Our unexpectedly intense snow yesterday was created by a <a href="http://www.komotv.com/weather/faq/4306427.html">Puget Sound Convergence Zone</a>:</p> <blockquote> <p><em>Those northwest winds will collide with the Olympic Mountains. Part of the air flow will be deflected east down the Strait of Juan de Fuca, while the other part will be deflected down the western side of the Olympics. When the northern branch reaches the I-5 Corridor and the Cascade Mountains, it will then be forced to the south. Meanwhile, when the southern branch reaches the I-5 corridor and Cascade Mountains past the southern side of the Olympics, it will then turn to the north. </em> <p><em>Eventually, the south-flowing branch and the north-flowing branch will converge. When that happens, the air has nowhere to go but up. Rising air will lead to convection. That will lead to cloud and storm development.</em></p></blockquote> <p>That seems like a good metaphor for why technology prediction is hard.&nbsp; The&nbsp;interesting stuff happens&nbsp;in the "convergence zones" where different streams of ideas and technologies collide and create upward convection currents (driven partly by hot air and vapor I suppose).&nbsp; The World Wide Web arose out of a convergence of the internet and SGML-ish markup; &nbsp;the Internet Bubble arose out of a convergence of this enabling technology and the vast numbers of PCs in every home and office; XML arose out of a convergence of the&nbsp;capability for&nbsp;universal interoperability spawned by the SGML and the Web, &nbsp;and the demand for a Web-like experience in a whole range of document and data products that was accelerated by the Bubble.&nbsp;  <p>But not every wind / technology convergence creates a <em>convergence</em> <em>zone.&nbsp;&nbsp;&nbsp;</em>See&nbsp;the "Meteorological Mumbo-Jumbo" <a href="http://www.komotv.com/news/5141057.html">section in this article</a> about our weather yesterday for an explanation of how this weather pattern was different than the other 20 recent occasions where the winds were about right:  <blockquote> <p><em>This time, the cold air is, at least initially, coming from the Gulf of Alaska. Normally, that pattern doesn't make for much snow because the air has a long time to moderate over the warmer ocean waters. But the air mass up there is SO cold ...&nbsp;the air was still cold enough to snow by the time it made it here. </em></p></blockquote> <p>In technology, lots&nbsp;of things -- technologies, personalities, zeitgeist -- have to come together at just the right time.&nbsp;&nbsp; Why was "Dynamic HTML" a bit of a yawner in the late '90s but "AJAX" a big hit in 2006? Why did the Newton flop and then the Palm become a hit a few years later?&nbsp; Why is <a href="http://yaml.org/">YAML</a> a backwater but <a href="http://json.org/">JSON</a> the Next Big Thing this year?&nbsp;I don't pretend to know.&nbsp; I do think, however, that we know&nbsp;enough&nbsp;about the XML technology landscape and the forces that interact with it and each other to at least talk about some likely convergences and divergences.  <p>First, as the weather truism goes, the best <a href="http://iri.columbia.edu/climate/forecast/tutorial/">prediction of tomorrow's weather is today's weather</a>.&nbsp; 2007 will look a lot like 2006.&nbsp; Duh.&nbsp; Overall, XML has become a fairly mature and slow-changing technology because there is a 10-year legacy holding back any radical change, e.g. a mass migration to RELAX NG, JSON, LINQ, or whatever.&nbsp; We will see a gradual migration to XSLT 2.0, growing interest and support for XQuery (as a query language!), continued improvements in XML Schema 1.0 interoperability and growing interest in 1.1 as it solidifies, and so on. <p>Second, there's a strong prevailing wind that puts XML almost everywhere, even places where it might not belong (e.g., multi-gigabyte log files!). But the pervasiveness of XML means that the "XML community" has less and less in common.&nbsp;&nbsp; The streams that collided with Mt. NonInteroperable and reconverged to create XML 10 years ago have shifted because Mt. NonInteroperable has been greatly eroded.&nbsp; People care more about interoperable documents OR data OR messages than interoperable documents AND data AND messages, so the fact that XML underlies all of their interop stories is not particularly interesting anymore.&nbsp;What predictions does this pattern imply?  <ul> <li>&nbsp;Assuming that nothing pops up to reconverge these separate streams, we'll probably see a continuing decline in the popularity in generic XML forums, books, conferences, etc., and more integration of domain-focused XML topics into more&nbsp;specialized venues.  <li>Likewise, we'll probably see an increase in the use of niche XML-related technologies, such as RELAX NG for purely textual documents and JSON for web applications, <em>in the domains for which they are well-suited</em>.&nbsp;  <li>Conversely, we'll see a decline of interest in "one size fits all" approaches.&nbsp; For example, it looks (from the outside) like the <a href="http://www.w3.org/XML/EXI/#News">W3C Efficient XML Interchange</a> people are focusing on one problem -- the fact that XML is too bloated for many limited-bandwidth scenarios -- and not trying all that hard to come up with something that is <a href="http://www.w3.org/TR/xbc-characterization/#N102EC">smaller / faster / cheaper / more universal</a> than XML for all scenarios.&nbsp;  <li>Finally, the&nbsp;breadth of XML's adoption comes at the expense of depth. This suggests&nbsp;that we'll see more of the pattern that <a href="http://2006.xmlconference.org/proceedings/162/presentation.html">Jon Bosak decried in his XML 2006 keynote</a>: "business users will never adopt a solution that depends on an additional XSLT pass because it would require them to learn something new (never mind that this “new” thing had been widely employed in other contexts for years)." Those vendors may know their customers, and suspect that they really don't want to learn yet another XML technology just because it would offer an elegant solution to a somewhat peripheral problem. </li></ul> <p>Third, like the wind XML is mostly invisible -- it's&nbsp;hidden behind the firewall, embedded in ZIP files, or just called something else. What's more, most people really don't <em>want</em> to see the XML that surrounds them. They want to see readable documents, updated feeds, processable objects, and delivered services.&nbsp; The better the XML is hidden, the more the bulk of the world likes it. Being out of sight, it's also out of mind.&nbsp; Few noticed that "Asynchronous Javascript And XML" actually refers to the&nbsp;XmlHttpRequest <em>API</em> much more than XML <em>content</em>, so the substitution of JSON for XML as the typical bits on the wire format caused little concern. Actually that understates the case -- most people are happy to use more familiar technologies instead of XML or in front of XML.&nbsp;&nbsp;What might we predict from this pattern?  <ul> <li>I'll make a (self serving!) prediction that the <a href="http://msdn2.microsoft.com/en-us/library/aa479865.aspx">LINQ</a> approach of focusing on what is common across data formats will get more mainstream traction than will the notion that users want specialized tools for their XML data.  <li>Tools that make it relatively easy to consume XML directly into programming objects such as <a href="http://blogs.msdn.com/xmlteam/archive/2006/11/27/typed-xml-programmer-welcome-to-linq.aspx">LINQ to XSD</a> will continue to mature technically and be adopted by pragmatic developers. </li></ul> <p>What about some of the XML technologies that have been swirling around out there ...&nbsp; What landfalls may we expect in 2007? Again, the whole point of the argument here is that only incremental change can be foreseen <em>unless</em> XML technologies get tangled up in some larger crosscurrents.&nbsp; So, the Semantic Web will remain highly domain-specific (e.g., the biomedical arena where well-established taxonomies and ontologies really can be leveraged by OWL inferences, SPARLQ query processors, etc.).&nbsp; I can't think of any larger social forces that might collide to provide upward convection for the semantic web technologies other than some low-probability event such as a major terrorist attack being thwarted as a direct result of Homeland Security's semantic technology investment.&nbsp; How about SVG, or XML 1.1, or some other major XML technology that hasn't gotten mainstream support (ahem, partly because of decisions in Redmond)?&nbsp; I don't foresee any major shifts in the winds here ... but then again I didn't know about the Puget Sound Convergence Zone the other day until the streets near home were iced over.</p> <p>What great technological, economic, or political forces can you envision changing the XML climate in the next year?</p>]]></content:encoded>
    </item>
    <item>
      <title>Since Don put me up to it ....</title>
      <link>https://docs.microsoft.com/archive/blogs/mikechampion/since-don-put-me-up-to-it</link>
      <pubDate>Tue, 02 Jan 2007 12:27:20 GMT</pubDate>
      <dc:creator><![CDATA[MCChampion]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mikechampion/2007/01/02/since-don-put-me-up-to-it/</guid>
      <description><![CDATA[I don't really want to perpetuate the 5 things meme, but DonXML&nbsp;asked nicely (and I'll take the...]]></description>
      <content:encoded><![CDATA[<p>I don't really want to perpetuate the 5 things meme, but <a href="http://www.donxml.com">DonXML</a>&nbsp;asked nicely (and I'll take the opportunity to shamelessly plug some favorite people, products, and organizations):</p> <ul> <li>I came to the software industry rather late in life after a mis-spent youth in Political Science at the <a href="http://umich.edu/">University of Michigan</a>.&nbsp; I discovered that it was more fun writing the code than writing the dissertation, not to mention the fact that the job market for junior programmers was immensely larger and more lucrative than the market for assistant professors circa 1980.&nbsp; Furthermore, programming gave me the luxury of staying in Ann Arbor for 25 more years.  <li>My longest lasting hobby is playing the acoustic guitar.&nbsp;I &nbsp;learned much of what I know from <a href="http://franksalamone.com/">Frank Salamone</a>, who sadly is no longer able to play. I spent the accrued vacation pay from my last job on a <a href="http://www.martinguitar.com/guitars/choosing/guitars.php?p=z&amp;g=d&amp;m=000-28">Martin 000-28</a> when I started at Microsoft.&nbsp; The piece I most enjoy playing is Leo Kottke's <a href="http://www.amazon.com/6-12-String-Guitar-Leo-Kottke/dp/B000003Z91">The Fisherman</a>.&nbsp; I try, with&nbsp;minimal success, to play&nbsp;various stuff by <a href="http://www.john-renbourn.com/">John Renbourn</a>. <li>My musical tastes&nbsp;run mostly toward the classical/traditional. A survey of&nbsp;the dying iPod (Apple seems to have rediscovered the virtues of <a href="http://en.wikipedia.org/wiki/Planned_obsolescence">Planned Obsolescence</a>) doesn't show a whole lot of written after 1759 (when Handel died) and only a handful&nbsp; after 1827 (Beethoven).&nbsp;&nbsp; All time favorite recordings include <a href="http://www.amazon.com/Christopher-Parkening-plays-Johann-Sebastian/dp/B000002RNJ/sr=1-1/qid=1167753233/ref=pd_bbs_sr_1/103-2026187-2215037?ie=UTF8&amp;s=music">Parkening Plays Bach</a>, Trevor Pinnock's <a href="http://www.amazon.com/Bach-Goldberg-Variationen-Johann-Sebastian/dp/B0000057CK/sr=8-1/qid=1167753014/ref=sr_1_1/103-2026187-2215037?ie=UTF8&amp;s=music">Goldberg-Variationen</a>, and Derek Bell's <a href="http://www.amazon.com/Carolans-Receipt-Music-Carolan-Vol/dp/B000046S03/sr=1-1/qid=1167753487/ref=pd_bbs_sr_1/103-2026187-2215037?ie=UTF8&amp;s=music">Carolan's Receipt</a>.  <li>My current favorite "leisure" activity is, as one of my kids puts it, getting torn up by nasty thorny things.&nbsp; I'd give it a more pretentious label, "natural area restoration", which around here involves a lot of struggle with <a href="http://dnr.metrokc.gov/wlr/lands/weeds/pdf/Blackberry_factsheet.pdf">Himalayan Blackberry</a>&nbsp;on behalf of the <a href="http://www.ci.woodinville.wa.us/opportunities/volunteers.asp">Sammamish River Stewards</a>. Back in Ann Arbor, is was a struggle with <a href="http://plants.usda.gov/java/profile?symbol=RHCA3">European Buckthorn</a> on behalf of the <a href="http://dickenwoods.org/">Friends of Dicken Woods</a>.&nbsp;  <li>&nbsp;Based on the countries I've actually visited, if I had my life to live over I might do it in either Norway or Australia.</li></ul> <p>Being paranoid of <a href="http://www.gapingvoid.com/Moveable_Type/archives/003585.html">this kind of response</a>, I won't inflict the meme on anyone else.</p>]]></content:encoded>
    </item>
  </channel>
</rss>