<?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 - IT Strategy</title>
    <link>http://vasters.com/clemensv/</link>
    <description>Cloud Development and Alien Abductions</description>
    <language>en-us</language>
    <copyright>Clemens Vasters</copyright>
    <lastBuildDate>Mon, 31 Mar 2008 17:56:40 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=798bbf5b-f9f9-45b9-87ba-f6a30c359af9</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,798bbf5b-f9f9-45b9-87ba-f6a30c359af9.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,798bbf5b-f9f9-45b9-87ba-f6a30c359af9.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=798bbf5b-f9f9-45b9-87ba-f6a30c359af9</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p align="justify">
A flock of pigs has been doing aerobatics high up over Microsoft Campus in Redmond
in the past three weeks. Neither City of Redmond nor Microsoft spokespeople returned
calls requesting comments in time for this article. An Microsoft worker who requested
anonymity and has seen the pigs flying overhead commented that "they are as good as
the Blue Angels at Seafair, just funnier" and "they seem to circle over building 42
a lot, but I wouldn't know why". 
</p>
        <p>
In related news ... 
</p>
        <p align="justify">
We wrapped up the BizTalk Services "R11" CTP this last Thursday and put the latest
SDK release up on <a href="http://labs.biztalk.net/">http://labs.biztalk.net/</a>.
As you may or may not know, "BizTalk Services" is the codename for Microsoft's cloud-based
Identity and Connectivity services - with a significant set of further services in
the pipeline. The R11 release is a major milestone for the data center side of BizTalk
Services, but we've also added several new client-facing features, especially on the
Identity services. You can now authenticate using a certificate in addition to username
and CardSpace authentication, we have enabled support for 3rd party managed CardSpace
cards, and there is extended support for claims based authorization. 
</p>
        <p>
Now the surprising bit:
</p>
        <p align="justify">
Only about an hour before we locked down the SDK on Thursday, we checked a sample
into the samples tree that has a rather unusual set of prerequisites for something
coming out of Microsoft: 
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p align="justify">
Runtime: <a href="http://java.sun.com/javaee/">Java EE 5</a> on <a href="https://glassfish.dev.java.net/">Sun
Glassfish v2</a> + <a href="https://metro.dev.java.net/">Sun WSIT/Metro</a> (JAX-WS
extensions), Tool: <a href="http://netbeans.org">Netbeans 6.0 IDE</a>. 
</p>
        </blockquote>
        <p align="justify">
The sample shows how to use the BizTalk Services Identity Security Token Service (STS)
to secure the communication between a Java client and a Java service providing federated
authentication and claims-based authorization.
</p>
        <p align="justify">
The sample, which you can find in <em>./Samples/OtherPlatforms/StandaloneAccessControl/JavaEE5</em> once
you installed the SDK, is a pure Java sample not requiring any of our bits on either
the service or client side. The interaction with our services is purely happening
on the wire. 
</p>
        <p align="justify">
If you are a "Javahead", it might seem odd that we're shipping this sample inside
a Windows-only MSI installer and I will agree that that's odd. It's simply a function
of timing and the point in time when we knew that we could get it done (some more
on that below). For the next BizTalk Services SDK release I expect there to be an
additional .jar file for the Java samples.
</p>
        <p align="justify">
It's important to note that this isn't just a thing we did as a one-time thing and
because we could. We have done a significant amount of work on the backend protocol
implementations to start opening up a very broad set of scenarios on the BizTalk Services
Connectivity services for platforms other than .NET. We already have a set of additional
Java EE samples lined up for when we enable that functionality on the backend. However,
since getting security and identity working is a prerequisite for making all other
services work, that's where we started. There'll be more and there'll be more platform
and language choice than Java down the road. 
</p>
        <p align="justify">
Just to be perfectly clear: Around here we strongly believe that .NET and the Windows
Communication Foundation in particular is the most advanced platform to build services,
irrespective of whether they are of the WS-* or REST variety. If you care about my
personal opinion, I'll say that several months of research into the capabilities of
other platforms has only reaffirmed that belief for me and I don't even need to put
a Microsoft hat on to say that. 
</p>
        <p align="justify">
But we recognize and respect that there are a great variety of individual reasons
why people might not be using .NET and WCF. The obvious one is "platform". If you
run on Linux or Unix and/or if your deployment target is a Java Application Server,
then your platform is very likely not .NET. It's something else. If that's your
world, we still think that our services are something that's useful for your applications
and we want to show you why. And it is absolutely not enough for us to say "here is
the wire protocol documentation; go party!". Only Code is Truth.
</p>
        <p align="justify">
I'm also writing "Only Code is Truth" also because we've found - perhaps not too surprisingly
- that there is a significant difference between reading and implementing the WS-*
specs and having things actually work. And here I get to the point where a round of
public "Thank You" is due:
</p>
        <p align="justify">
The Metro team over at Sun Microsystems has made a very significant contribution to
making this all work. Before we started making changes to accommodate Java, there
would have been very little hope for anyone to get this seemingly simple
scenario to work. We had to make quite a few changes even though our service did follow
the specs. 
</p>
        <p align="justify">
While we were adjusting our backend STS accordingly, the Sun Metro team worked on
a set of issues that we identified on their end (with fantastic turnaround times)
and worked those into their public nightly builds. The Sun team also 'promoted' a
nightly build of Metro 1.2 to a semi-permanent <a href="https://metro.dev.java.net/servlets/ProjectDocumentList?folderID=8958&amp;expandFolder=8958&amp;folderID=7636">download
location</a> (the first 1.2 build that got that treatment), because it is the build
tested to successfully interop with our SDK release, even though that build is known
to have some regressions for some of their other test scenarios. As they work towards
wrapping up their 1.2 release and fix those other bugs, we’ll continue to test and
talk to help that the interop scenarios keep working. 
</p>
        <p align="justify">
As a result of this collaboration, Metro 1.2 is going to be a better and more interoperable
release for the Sun's customers and the greater Java community and BizTalk Services
as well as our future identity products will be better and more interoperable, too.
Win-Win. Thank you, Sun.
</p>
        <p align="justify">
As a goodie, I put some code into the Java sample that might be useful even if you
don't even care about our services. Since configuring the Java certificate stores
for standalone applications can be really painful, I added some simple code that's
using a week-old feature of the latest Metro 1.2 bits that allows configuring the
Truststores/Keystores dynamically and pull the stores from the client's .jar at runtime.
The code also has an authorization utility class that shows how to get and evaluate
claims on the service side by pulling the SAML token out of the context and pulling
the correct attributes from the token.
</p>
        <p>
Have fun.
</p>
        <p>
[By the way, this is not an April Fool's joke, in case you were wondering]<br /></p>
        <img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=798bbf5b-f9f9-45b9-87ba-f6a30c359af9" />
      </body>
      <title>BizTalk Services "R11" CTP Comes with a Surprise</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,798bbf5b-f9f9-45b9-87ba-f6a30c359af9.aspx</guid>
      <link>http://vasters.com/clemensv/2008/03/31/BizTalk+Services+R11+CTP+Comes+With+A+Surprise.aspx</link>
      <pubDate>Mon, 31 Mar 2008 17:56:40 GMT</pubDate>
      <description>&lt;p align=justify&gt;
A flock of pigs has been doing aerobatics high up over Microsoft Campus in Redmond
in the past three weeks. Neither City of Redmond nor Microsoft spokespeople returned
calls requesting comments in time for this article. An Microsoft worker who requested
anonymity and has seen the pigs flying overhead commented that "they are as good as
the Blue Angels at Seafair, just funnier" and "they seem to circle over building 42
a lot, but I wouldn't know why". 
&lt;/p&gt;
&lt;p&gt;
In related news ... 
&lt;/p&gt;
&lt;p align=justify&gt;
We wrapped up the BizTalk Services "R11" CTP this last Thursday and put the latest
SDK release up on &lt;a href="http://labs.biztalk.net/"&gt;http://labs.biztalk.net/&lt;/a&gt;.
As you may or may not know, "BizTalk Services" is the codename for Microsoft's cloud-based
Identity and Connectivity services - with a significant set of further services in
the pipeline. The R11 release is a major milestone for the data center side of BizTalk
Services, but we've also added several new client-facing features, especially on the
Identity services. You can now authenticate using a certificate in addition to username
and CardSpace authentication, we have enabled support for 3rd party managed CardSpace
cards, and there is extended support for claims based authorization. 
&lt;/p&gt;
&lt;p&gt;
Now the surprising bit:
&lt;/p&gt;
&lt;p align=justify&gt;
Only about an hour before we locked down the SDK on Thursday, we checked a sample
into the samples tree that has a rather unusual set of prerequisites for something
coming out of Microsoft: 
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p align=justify&gt;
Runtime: &lt;a href="http://java.sun.com/javaee/"&gt;Java EE 5&lt;/a&gt; on &lt;a href="https://glassfish.dev.java.net/"&gt;Sun
Glassfish v2&lt;/a&gt; + &lt;a href="https://metro.dev.java.net/"&gt;Sun WSIT/Metro&lt;/a&gt; (JAX-WS
extensions), Tool: &lt;a href="http://netbeans.org"&gt;Netbeans 6.0 IDE&lt;/a&gt;. 
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p align=justify&gt;
The sample shows how to use the BizTalk Services Identity Security Token Service (STS)
to secure the communication between a Java client and a Java service providing federated
authentication and claims-based authorization.
&lt;/p&gt;
&lt;p align=justify&gt;
The sample, which you can find in &lt;em&gt;./Samples/OtherPlatforms/StandaloneAccessControl/JavaEE5&lt;/em&gt; once
you installed the SDK, is a pure Java sample not requiring any of our bits on either
the service or client side. The interaction with our services is purely happening
on the wire. 
&lt;/p&gt;
&lt;p align=justify&gt;
If you are a "Javahead", it might seem odd that we're shipping this sample inside
a Windows-only MSI installer and I will agree that that's odd. It's simply a function
of timing and the point in time when we knew that we could get it done (some more
on that below). For the next BizTalk Services SDK release I expect there to be an
additional .jar file for the Java samples.
&lt;/p&gt;
&lt;p align=justify&gt;
It's important to note that this isn't just a thing we did as a one-time thing and
because we could. We have done a significant amount of work on the backend protocol
implementations to start opening up a very broad set of scenarios on the BizTalk Services
Connectivity services for platforms other than .NET. We already have a set of additional
Java EE samples lined up for when we enable that functionality on the backend. However,
since getting security and identity working is a prerequisite for making all other
services work, that's where we started. There'll be more and there'll be more platform
and language choice than Java down the road. 
&lt;/p&gt;
&lt;p align=justify&gt;
Just to be perfectly clear: Around here we strongly believe that .NET and the Windows
Communication Foundation in particular is the most advanced platform to build services,
irrespective of whether they are of the WS-* or REST variety. If you care about my
personal opinion, I'll say that several months of research into the capabilities of
other platforms has only reaffirmed that belief for me and I don't even need to put
a Microsoft hat on to say that. 
&lt;/p&gt;
&lt;p align=justify&gt;
But we recognize and respect that there are a great variety of individual reasons
why people might not be using .NET and WCF. The obvious one is "platform". If you
run on Linux or Unix and/or if your deployment target is a Java Application Server,
then your platform is very likely not .NET. It's something else.&amp;nbsp;If that's your
world, we still think that our services are something that's useful for your applications
and we want to show you why. And it is absolutely not enough for us to say "here is
the wire protocol documentation; go party!". Only Code is Truth.
&lt;/p&gt;
&lt;p align=justify&gt;
I'm also writing "Only Code is Truth" also because we've found - perhaps not too surprisingly
- that there is a significant difference between reading and implementing the WS-*
specs and having things actually work. And here I get to the point where a round of
public "Thank You" is due:
&lt;/p&gt;
&lt;p align=justify&gt;
The Metro team over at Sun Microsystems has made a very significant contribution to
making this all work. Before we started making changes to accommodate Java, there
would have been&amp;nbsp;very little&amp;nbsp;hope for anyone to get this seemingly simple
scenario to work. We had to make quite a few changes even though our service did follow
the specs. 
&lt;/p&gt;
&lt;p align=justify&gt;
While we were adjusting our backend STS accordingly, the Sun Metro team worked on
a set of issues that we identified on their end (with fantastic turnaround times)
and worked those into their public nightly builds. The Sun team also 'promoted' a
nightly build of Metro 1.2 to a semi-permanent &lt;a href="https://metro.dev.java.net/servlets/ProjectDocumentList?folderID=8958&amp;amp;expandFolder=8958&amp;amp;folderID=7636"&gt;download
location&lt;/a&gt; (the first 1.2 build that got that treatment), because it is the build
tested to successfully interop with our SDK release, even though that build is known
to have some regressions for some of their other test scenarios. As they work towards
wrapping up their 1.2 release and fix those other bugs, we’ll continue to test and
talk to help that the interop scenarios keep working. 
&lt;/p&gt;
&lt;p align=justify&gt;
As a result of this collaboration, Metro 1.2 is going to be a better and more interoperable
release for the Sun's customers and the greater Java community and BizTalk Services
as well as our future identity products will be better and more interoperable, too.
Win-Win. Thank you, Sun.
&lt;/p&gt;
&lt;p align=justify&gt;
As a goodie, I put some code into the Java sample that might be useful even if you
don't even care about our services. Since configuring the Java certificate stores
for standalone applications can be really painful, I added some simple code that's
using a week-old feature of the latest Metro 1.2 bits that allows configuring the
Truststores/Keystores dynamically and pull the stores from the client's .jar at runtime.
The code also has an authorization utility class that shows how to get and evaluate
claims on the service side by pulling the SAML token out of the context and pulling
the correct attributes from the token.
&lt;/p&gt;
&lt;p&gt;
Have fun.
&lt;/p&gt;
&lt;p&gt;
[By the way, this is not an April Fool's joke, in case you were wondering]&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=798bbf5b-f9f9-45b9-87ba-f6a30c359af9" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,798bbf5b-f9f9-45b9-87ba-f6a30c359af9.aspx</comments>
      <category>Architecture</category>
      <category>IT Strategy</category>
      <category>Technology</category>
      <category>Technology/CardSpace</category>
      <category>Technology/ISB</category>
      <category>Technology/WCF</category>
    </item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=d53f0e81-eebb-4327-a92f-2f2ab5fcc602</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,d53f0e81-eebb-4327-a92f-2f2ab5fcc602.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,d53f0e81-eebb-4327-a92f-2f2ab5fcc602.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=d53f0e81-eebb-4327-a92f-2f2ab5fcc602</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Steve has a <a href="http://www.stephenforte.net/owdasblog/PermaLink.aspx?guid=a8de9324-c373-4cab-8e10-4e23251a3fb4">great
analysis </a>of what BizTalk Services means for Corzen and how he views it in the
broader industry context. 
</p>
        <img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=d53f0e81-eebb-4327-a92f-2f2ab5fcc602" />
      </body>
      <title>Stephen Forte on what BizTalk Services means for his shop</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,d53f0e81-eebb-4327-a92f-2f2ab5fcc602.aspx</guid>
      <link>http://vasters.com/clemensv/2007/04/26/Stephen+Forte+On+What+BizTalk+Services+Means+For+His+Shop.aspx</link>
      <pubDate>Thu, 26 Apr 2007 22:09:51 GMT</pubDate>
      <description>&lt;p&gt;
Steve has a &lt;a href="http://www.stephenforte.net/owdasblog/PermaLink.aspx?guid=a8de9324-c373-4cab-8e10-4e23251a3fb4"&gt;great
analysis &lt;/a&gt;of what BizTalk Services means for Corzen and how he views it in the
broader industry context. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=d53f0e81-eebb-4327-a92f-2f2ab5fcc602" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,d53f0e81-eebb-4327-a92f-2f2ab5fcc602.aspx</comments>
      <category>Architecture</category>
      <category>Architecture/SOA</category>
      <category>IT Strategy</category>
      <category>Technology</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=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=9a674bcb-17fd-4f08-a888-d6fd93d0cbed</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,9a674bcb-17fd-4f08-a888-d6fd93d0cbed.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,9a674bcb-17fd-4f08-a888-d6fd93d0cbed.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=9a674bcb-17fd-4f08-a888-d6fd93d0cbed</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
It's been <a href="http://developers.slashdot.org/article.pl?sid=06/12/20/0155238">slashdotted</a> and
also otherwise widely discussed that Google has deprecated their SOAP
API. A deadly blow for SOAP as people are speculating? Guess not.
</p>
        <p>
What I find striking are the differences in the licenses between the AJAX API and
the SOAP API. That's where the beef is. While the results obtained through the SOAP
API can be used (for non-commercial purposes) practically in any way except
that "you may not use the search results provided by the Google SOAP Search API service
with an existing product or service that competes with products or services offered
by Google.", the AJAX API is constrained to use with web sites with the terms of use
stating that "The API is limited to allowing You to host and display Google Search
Results on your site, and does not provide You with the ability to access other underlying
Google Services or data."
</p>
        <p>
The AJAX API is a Web service that works for Google because its terms of use are very
prescriptive for how to build a service that ensures Google's advertising machine
gets exposure and clicks. That's certainly a reasonable business decision, but has
nothing to do with SOAP vs. REST or anything else technical. There's just no money
in application-to-application messaging for Google (unless they'd actually set up
an infrastructure to charge for software as a service and provide support and proper
SLAs for it that is saying more than "we don't make any guarantees whatsoever") while
there's a lot of money for them in being able to get lots and lots of people
to give them a free spot on their own site onto which they can place their advertising.
That's what their business is about, not software.
</p>
        <img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=9a674bcb-17fd-4f08-a888-d6fd93d0cbed" />
      </body>
      <title>"Google kills SOAP!"</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,9a674bcb-17fd-4f08-a888-d6fd93d0cbed.aspx</guid>
      <link>http://vasters.com/clemensv/2006/12/20/Google+Kills+SOAP.aspx</link>
      <pubDate>Wed, 20 Dec 2006 23:07:04 GMT</pubDate>
      <description>&lt;p&gt;
It's been &lt;a href="http://developers.slashdot.org/article.pl?sid=06/12/20/0155238"&gt;slashdotted&lt;/a&gt; and
also otherwise widely discussed&amp;nbsp;that Google&amp;nbsp;has deprecated&amp;nbsp;their SOAP
API. A deadly blow for SOAP as people are speculating? Guess not.
&lt;/p&gt;
&lt;p&gt;
What I find striking are the differences in the licenses between the AJAX API and
the SOAP API. That's where the beef is. While the results obtained through the SOAP
API can be used (for non-commercial purposes)&amp;nbsp;practically in any way&amp;nbsp;except
that "you may not use the search results provided by the Google SOAP Search API service
with an existing product or service that competes with products or services offered
by Google.", the AJAX API is constrained to use with web sites with the terms of use
stating that "The API is limited to allowing You to host and display Google Search
Results on your site, and does not provide You with the ability to access other underlying
Google Services or data."
&lt;/p&gt;
&lt;p&gt;
The AJAX API is a Web service that works for Google because its terms of use are&amp;nbsp;very
prescriptive for how to build a service that ensures Google's advertising&amp;nbsp;machine
gets exposure and clicks. That's certainly a reasonable business decision, but has
nothing to do with SOAP vs. REST or anything else technical. There's just no money
in application-to-application messaging for Google (unless they'd actually set up
an infrastructure to charge for software as a service and provide support and proper
SLAs for it that is saying more than&amp;nbsp;"we don't make any guarantees whatsoever")&amp;nbsp;while
there's a lot of money for them in being able to&amp;nbsp;get lots and lots of people
to give them a free spot on their own site onto which they can place their advertising.
That's what their business is about, not software.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=9a674bcb-17fd-4f08-a888-d6fd93d0cbed" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,9a674bcb-17fd-4f08-a888-d6fd93d0cbed.aspx</comments>
      <category>IT Strategy</category>
      <category>Technology</category>
      <category>Technology/Web Services</category>
    </item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=57b03894-e197-4512-b9ea-648105890103</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,57b03894-e197-4512-b9ea-648105890103.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,57b03894-e197-4512-b9ea-648105890103.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=57b03894-e197-4512-b9ea-648105890103</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I was sad when "Indigo" and "Avalon" went away. It'd be great if we'd have
a pool of cool legal-approved code-names for which we own the trademark rights and
which we could stick to. Think Delphi or Safari. "Indigo" was cool insofar as
it was very handy to refer to the technology set, but was removed far enough
from the specifics that it doesn't create a sharply defined, product-like island
within the larger managed-code landscape or has legacy connotations like "ADO.NET".
 Also, my talks these days could be 10 minutes shorter if I could refer to Indigo
instead of "Windows Communications Foundation". Likewise, my job title wouldn't have
to have a line wrap on the business card of I ever spelled it out in full.
</p>
        <p>
However, when I learned about the WinFX name going away (several weeks before the
public announcement) and the new "Vista Wave" technologies (WPF/WF/WCF/WCS) being rolled
up under the <a href="http://msdn.microsoft.com/winfx/">.NET Framework</a> brand,
I was quite happy. Ever since it became clear in 2004 that the grand plan to put
a complete, covers-all-and-everything managed API on top (and on quite a
bit of the bottom) of everything Windows would have to wait until siginificantly after
Vista and that therefore the Win16&gt;Win32&gt;WinFX continuity would not
tell the true story, that name made only limited sense to stick to. The .NET Framework
is the #1 choice for business applications and a well established brand. People refer
to themselves as being "dotnet" developers. But even though the .NET Framework covers
a lot of ground and "Indigo", "Avalon", "InfoCard", and "Workflow" are overwhelmingly
(or exclusively) managed-code based, there are still quite a few things in Windows
Vista that still require using P/Invoke or COM/Interop from managed code or unmanaged
code outright. That's not a problem. Something has to manage the managed code
and there's no urgent need to rewrite entire subsystems to managed code if you
only want to add or revise features. 
</p>
        <p>
So now all the new stuff is now part of the .NET Framework. That is a good, good,
good change. This says what it all is. 
</p>
        <p>
Admittedly confusing is the "3.0" bit. What we'll ship is a Framework 3.0 that rides
on top of the 2.0 CLR and includes the 2.0 versions of the Base-Class Library, Windows
Forms, and ASP.NET. It doesn't include the formerly-announced-as-to-be-part-of-3.0
technologies like VB9 (there you have the version number consistency flying out
the window outright), C# 3.0, and LINQ. Personally, I think that it might be
a tiny bit less confusing if the Framework had a version-number neutral name such
as ".NET Framework 2006" which would allow doing what we do now with less potential
for confusion, but only a tiny bit. Certainly not enough to stage a war
over "2006" vs. "3.0".
</p>
        <p>
It's a matter of project management reality and also one of platform predictability
that the ASP.NET, or Windows Forms teams do not and should not ship a full
major-version revision of their bits every year. They shipped Whidbey (2.0) in late
2005 and hence it's healthy for them to have boarded the scheduled-to-arrive-in-2007
boat heading to Orcas. We (the "WinFX" teams) subscribed to the Vista ship docking later
this year and we bring great innovation which will be preinstalled on every copy of
it. LINQ as well as VB9 and C# incorporating it on a language-level are
very obviously Visual Studio bound and hence they are on the Orcas ferry as well.
The .NET Framework is a steadily growing development platform that spans technologies
from the Developer Division, Connected Systems, Windows Server, Windows Client, SQL
Server, and other groups, and my gut feeling is that it will become the norm that
it will be extended off-cycle from the Developer Division's Visual Studio and
CLR releases. Whenever a big ship docks in the port, may it be Office, SQL, BizTalk,
Windows Server, or Windows Client, and as more and more of the still-unmanaged Win32/Win64
surface area gets wrapped, augmented or replaced by managed-code APIs over time and
entirely new things are added, there might be bits that fit into and update the
Framework.  
</p>
        <p>
So one sane way to think about the .NET Framework version number is that it merely
labels the overall package and not the individual assemblies and components included
within it. Up to 2.0 everything was pretty synchronized, but given the ever-increasing
scale of the thing, it's good to think of that being a lucky (even if intended) coindicence
of scheduling. This surely <a href="http://en.wikipedia.org/wiki/Microsoft_BackOffice">isn't
the first time</a> that packages were versioned independently of their components.
There was and is no reason for the ASP.NET team to gratuitously recompile their existing
bits with a new version number just to have the GAC look pretty and to create the
illusion that everything is new - and to break Visual Studio compatibility in the
process.
</p>
        <p>
Of course, once we cover 100% of the Win32 surface area, we can rename it all into
WinFX again ;-)  (just kidding)
</p>
        <p>
[All the usual "personal opinion" disclaimers apply to this post]
</p>
        <p>
          <font size="1">
            <em>Update:</em> Removed reference to "Win64".</font>
        </p>
        <img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=57b03894-e197-4512-b9ea-648105890103" />
      </body>
      <title>Code-Name WinFX vs .NET Framework 3.0</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,57b03894-e197-4512-b9ea-648105890103.aspx</guid>
      <link>http://vasters.com/clemensv/2006/06/18/CodeName+WinFX+Vs+NET+Framework+30.aspx</link>
      <pubDate>Sun, 18 Jun 2006 12:39:48 GMT</pubDate>
      <description>&lt;p&gt;
I was sad when "Indigo" and "Avalon" went away. It'd be great&amp;nbsp;if we'd&amp;nbsp;have
a pool of cool legal-approved code-names for which we own the trademark rights and
which we could stick to.&amp;nbsp;Think Delphi or Safari. "Indigo" was cool insofar as
it was very handy to refer to the technology set, but&amp;nbsp;was removed&amp;nbsp;far&amp;nbsp;enough
from the specifics that it doesn't&amp;nbsp;create a sharply defined, product-like island
within the larger managed-code landscape or has legacy connotations&amp;nbsp;like "ADO.NET".
&amp;nbsp;Also, my talks these days could be 10 minutes shorter if I could refer to Indigo
instead of "Windows Communications Foundation". Likewise, my job title wouldn't have
to&amp;nbsp;have a line wrap on the business card of I ever spelled it out in full.
&lt;/p&gt;
&lt;p&gt;
However, when I learned about the WinFX name going away (several weeks before the
public announcement) and the new "Vista Wave" technologies (WPF/WF/WCF/WCS) being&amp;nbsp;rolled
up&amp;nbsp;under the&amp;nbsp;&lt;a href="http://msdn.microsoft.com/winfx/"&gt;.NET Framework&lt;/a&gt;&amp;nbsp;brand,
I was&amp;nbsp;quite happy. Ever since it became clear in 2004 that the grand plan to&amp;nbsp;put
a complete,&amp;nbsp;covers-all-and-everything&amp;nbsp;managed API on top (and on quite a
bit of the bottom) of everything Windows would have to wait until siginificantly after
Vista and that&amp;nbsp;therefore&amp;nbsp;the Win16&amp;gt;Win32&amp;gt;WinFX continuity would not
tell the true story, that name made only limited sense to stick to. The .NET Framework
is the #1 choice for business applications and a well established brand. People refer
to themselves as being "dotnet" developers. But even though the .NET Framework covers
a lot of ground and "Indigo", "Avalon", "InfoCard", and "Workflow" are&amp;nbsp;overwhelmingly
(or exclusively) managed-code based, there are still quite a few things in Windows
Vista that still require using P/Invoke or COM/Interop from managed code or unmanaged
code outright. That's not a problem.&amp;nbsp;Something has to manage the managed code
and there's no urgent need to rewrite entire subsystems to managed code if&amp;nbsp;you
only want to add or revise features.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
So now all the new stuff is now part of the .NET Framework. That is a good, good,
good&amp;nbsp;change. This says what it all is. 
&lt;/p&gt;
&lt;p&gt;
Admittedly confusing is the "3.0" bit. What we'll ship is a Framework 3.0 that rides
on top of the 2.0 CLR and includes the 2.0 versions of the Base-Class Library, Windows
Forms,&amp;nbsp;and ASP.NET. It doesn't include the formerly-announced-as-to-be-part-of-3.0
technologies like VB9 (there&amp;nbsp;you have the version number consistency flying out
the window outright), C# 3.0, and&amp;nbsp;LINQ. Personally, I think&amp;nbsp;that it might&amp;nbsp;be
a tiny bit less confusing if the Framework had a version-number neutral name such
as ".NET Framework 2006" which would allow&amp;nbsp;doing what we do now with less potential
for confusion, but only a tiny bit.&amp;nbsp;Certainly not enough to&amp;nbsp;stage a war
over "2006" vs. "3.0".
&lt;/p&gt;
&lt;p&gt;
It's a matter of project management&amp;nbsp;reality and also one of platform predictability
that the ASP.NET, or Windows Forms&amp;nbsp;teams&amp;nbsp;do not and should not ship a full
major-version revision of their bits every year. They shipped Whidbey (2.0) in late
2005 and hence&amp;nbsp;it's healthy for them&amp;nbsp;to&amp;nbsp;have boarded the scheduled-to-arrive-in-2007
boat heading to Orcas. We (the "WinFX" teams) subscribed to the Vista ship&amp;nbsp;docking&amp;nbsp;later
this year and we bring great innovation which will be preinstalled on every copy of
it. LINQ&amp;nbsp;as well as&amp;nbsp;VB9 and C# incorporating it on a language-level are
very obviously Visual Studio bound and hence they are on the Orcas ferry as well.
The .NET Framework is a steadily growing development platform that spans technologies
from the Developer Division, Connected Systems, Windows Server, Windows Client, SQL
Server, and other groups, and my gut feeling is that it will become the norm that
it will be extended off-cycle from the Developer Division's&amp;nbsp;Visual Studio and
CLR releases. Whenever a big ship docks in the port, may it be Office, SQL, BizTalk,
Windows Server, or Windows Client, and as more and more of the still-unmanaged Win32/Win64
surface area gets wrapped, augmented or replaced by managed-code APIs over time and
entirely new things are added, there might be bits that&amp;nbsp;fit into and update the
Framework. &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
So one sane way to think about the .NET Framework version number is that&amp;nbsp;it merely
labels the overall package and not the individual assemblies and components included
within it. Up to 2.0&amp;nbsp;everything was pretty synchronized, but&amp;nbsp;given the ever-increasing
scale of the thing, it's good to think of that being a lucky (even if intended) coindicence
of scheduling. This surely &lt;a href="http://en.wikipedia.org/wiki/Microsoft_BackOffice"&gt;isn't
the first time&lt;/a&gt; that&amp;nbsp;packages were versioned independently of their components.
There was and is no reason for the ASP.NET team to gratuitously recompile their existing
bits with a new version number just to have the GAC look pretty and to create the
illusion that everything is new - and to break Visual Studio compatibility in the
process.
&lt;/p&gt;
&lt;p&gt;
Of course, once we cover 100% of the Win32 surface area, we can rename it all into
WinFX again ;-)&amp;nbsp; (just kidding)
&lt;/p&gt;
&lt;p&gt;
[All the usual&amp;nbsp;"personal opinion" disclaimers apply to this post]
&lt;/p&gt;
&lt;p&gt;
&lt;font size=1&gt;&lt;em&gt;Update:&lt;/em&gt; Removed reference to "Win64".&lt;/font&gt; 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=57b03894-e197-4512-b9ea-648105890103" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,57b03894-e197-4512-b9ea-648105890103.aspx</comments>
      <category>IT Strategy</category>
      <category>Technology</category>
      <category>Technology/ASP.NET</category>
      <category>Technology/Avalon</category>
      <category>Technology/CLR</category>
      <category>Technology/Indigo</category>
      <category>Technology/Longhorn</category>
      <category>Technology/WCF</category>
      <category>Technology/Windows</category>
    </item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=fdf5f8bf-199c-47c3-8cbb-838fab12f83e</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,fdf5f8bf-199c-47c3-8cbb-838fab12f83e.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,fdf5f8bf-199c-47c3-8cbb-838fab12f83e.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=fdf5f8bf-199c-47c3-8cbb-838fab12f83e</wfw:commentRss>
      <slash:comments>6</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p>
My blogging efforts this year aren’t really impressive, are they? Well, the first
half of the year I was constantly on the road at a ton of conferences and events and
didn’t really get the time to blog much. After TechEd Europe, I was simply burned
out, took three weeks of vacation to recover somewhat and since then I’ve been trying
to get some better traction with areas of Visual Studio that I hadn’t really looked
at well enough since Beta 2 came out. And of course there’s WinFX with Avalon and
Indigo that I need to track closely. 
</p>
          <p>
Now, of course I have the luxury of being able to dedicate a lot of time to learning,
because taking all the raw information in, distilling it down and making it more accessible
to folks who can’t spend all that time happens to be my job. However, I am finding
myself in this rather unfortunate situation again that I will have to throw some things
overboard and will have to focus on a set of areas. 
</p>
          <p>
At some point rather early in my career I decided that I just can’t track all hardware
innovations anymore. I certainly still know what’s generally going on, but when I
buy a new machine I am just a client for Dell, Siemens or Alienware like the next
guy. I don’t think I could make a qualified enough choice on good hardware components
to build my own PC nowadays and I actually have little interest to do so. All that
stuff comes wrapped in a case and if I don’t really have to open it to put an extension
card in, I have no interest to look inside. The same goes for x86 assembly language.
The platform is still essentially the same even after more than a decade, and whenever
Visual Studio is catching an exception right in the middle of “the land of no source
code”, I can – given I have at least the debug symbols loaded – actually figure out
where I am and, especially if it’s unmanaged code, often figure out what’s failing.
But if someone were ask me about the instruction set innovations of the Pentium 4
processor generation I’ll happily point to someone else. In 2001, I wrote a book on
BizTalk and probably knew the internals and how everything fits together as good as
someone outside of Microsoft possibly could know it. BizTalk 2006 is so far away from
me now that I’d have a hard time giving you the feature delta between the 2004 and
2006 versions. Over time, many things went over board that way; hardware and assembly
being the first and every year it seems like something else needs to go. 
</p>
          <p>
The reason is very simple: Capacity. There’s a limit to how much information an individual
can process and I think that by now, Microsoft managed to push the feature depth to
the point where I can’t fit Visual Studio and related technologies into my head all
at once any longer. In my job, it’s reasonable for people to expect that whenever
I get up on stage or write an article that I give them the 10%-20% of pre-distilled
“essentials” that they need 80% of the time out of a technology and that I know close
to 100% of the stuff that’s underneath, so that they can ask me questions and I can
give them good, well founded answers.  In the VS2003/NETFX 1.1 wave, I’ve done
something (and even if it was just a demo) with every single public namespace and
I am confident that I can answer a broad range of customer questions without having
to guess. 
</p>
          <p>
Enter VS2005 and the summary of trying to achieve the same knowledge density is: “Frustrating”. 
</p>
          <p>
There is so much more to (have to) know, especially given that there’s now Team System
and the Team Foundation Server (TFS). TFS is “designed to be customized” and the product
makes that clear wherever you look. It is a bit like an ERP system in that way. You
don’t really have a solution unless you set up a project to customize the product
for your needs. Hence, “Foundation” is a more than fitting name choice. 
</p>
          <p>
I’ve been in a planning project for the past two weeks where the customer has a well
thought out idea about their analysis, design and development processes and while
TFS seems like a great platform for them, they will definitely need customized events,
a custom-tailored version of MSF Agile with lots of new fields and custom code analysis
and check-in policies, integration with and bi-directional data flow from/into “satellite
products” such as a proper requirements analysis system, a help-desk solution and
a documentation solution, and probably will even want to get into building their own
domain specific language (DSL).  All of that is possible and the extensibility
of Visual Studio and TFS is as broad as the customer would need it to be, but … who
would know? The <a title="http://msdn.microsoft.com/vstudio/extend/SDKDownload/" href="http://msdn.microsoft.com/vstudio/extend/SDKDownload/">Team
System Extensibility Kit</a> has documentation to extend and customize process templates,
work items, source control, the build system, the team explorer, test tools, and reporting
and that’s just the headlines. Add the tools for custom <a title="http://lab.msdn.microsoft.com/teamsystem/workshop/dsltools/default.aspx" href="http://lab.msdn.microsoft.com/teamsystem/workshop/dsltools/default.aspx">domain
specific languages</a> (huge!) and the <a title="http://www.gotdotnet.com/workspaces/workspace.aspx?id=fe72608b-2b28-4cc1-9866-ea6f805f45f3" href="http://www.gotdotnet.com/workspaces/workspace.aspx?id=fe72608b-2b28-4cc1-9866-ea6f805f45f3">class
designer extensibility</a> and you’ve got more than enough stuff to put your head
into complete overflow mode. 
</p>
          <p>
And at that point you haven’t even looked at the news in Windows Forms (where I like
all the new data binding capabilities a lot) and much less at ASP.NET 2.0, which is
an entire planet all by itself. Oh, and of course there is the new deployment model
(aka “ClickOnce”), SQL 2005, with all those new features (whereby SQL/CLR is the least
interesting to me) and BizTalk 2006 and, and, and … 
</p>
          <p>
And of course, my core interest is really with the Windows Vista WinFX technology
wave including of course Indigo (don’t make me use “WCF”) and for me to a lesser degree
Avalon (yes, yes: “WPF”) for which knowing the VS2005/NETFX 2.0 foundation is of course
a prerequisite. 
</p>
          <p>
What kills me with Avalon, for instance, is that I’ve got quite a bit of the 2D stuff
cornered and know how to do things even with just an XML editor in hands, but that
the 3D stuff is nicely integrated and sits right there in front of me and I just don’t
have the necessary knowledge depth about building 3D apps to do the simplest thing
and not the time to acquire that knowledge. And I’ve got such great ideas for using
that stuff.
</p>
          <p>
It looks like it’s time to take some things off the table again and that’s an intensely
frustrating decision to make.
</p>
          <p>
Don’t get me wrong … I am not complaining about Microsoft adding too many features
to the platform. Au contraire! I think that we’re seeing a wave of innovation that’s
absolutely fantastic and will enable us out here to build better, more featured applications. 
</p>
          <p>
But for a development team to benefit from all these technologies, specialization
is absolutely needed. The times when development teams had roughly the same technology
knowledge breadth and everyone could do everything are absolutely coming to an end.
And the number of generalists who have a broad, qualified overview on an entire platform
is rapidly shrinking.
</p>
          <p>
And the development teams will change shape. Come Avalon, and game developers (yes,
game developers) will be in great demand in places that are as far away from gaming
as you could imagine. I’ve just had meetings with a very conservative and large investment
management company and they are thinking hard about adding multi-layer, alpha-blended,
3D data visualizations complete with animations and all that jazz to their trading
system UIs, and they’ve got the business demand for it. Of course, the visualization
experts won’t be data mining and data analysis or software integration specialists;
that’s left for others to do.
</p>
          <p>
For “generalists” like me, these are hard and frustrating times if they’re trying
to stay generalists. Deep and consequent specialization is a great opportunity for
everyone and the gamble is of course to pick the right technology to dig into and
become “the expert” in. If that technology or problem space becomes the hottest thing
everyone must have – you win your bet. Otherwise you might be in trouble. 
</p>
          <p>
Here are some ideas and “predictions” for such sought-after specialists – but, hey,
that’s just my unqualified opinion:
</p>
          <p style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in">
            <span style="FONT-FAMILY: Symbol">·<span style="FONT: 7pt 'Times New Roman'">         </span></span>
            <i>Cross-platform
Web service wire doctors</i>. As much as all the vendors will try to make their service
platforms such as Indigo and Web Sphere and Web Logic and Apache interoperable, customers
will try hard to break it all by introducing “absolutely necessary” whacky protocol
extensions and by using every extensibility point fathomable. As if that wasn’t hard
enough already today where most interop happens with more or less bare-bones SOAP
envelopes, just wait until bad ideas get combined with the full WS-* stack, including
reliable messaging, security and routing. These folks of course will have to know
everything about security aspects like federation, single-sign-on, etc.  
</p>
          <p style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in">
            <span style="FONT-FAMILY: Symbol">·<span style="FONT: 7pt 'Times New Roman'">         </span></span>
            <i>Visualization
Developers</i>. Avalon is a bit like an advanced 3D gaming engine for business application
developers. While that seems like a whacky thing to say – just wait what’ll happen.
Someone will come along and build a full-blown ERP or CRM package whose data visualization
capabilities and advanced data capture methods will blow everything existing out of
the water and everything with white entry fields on a gray background with boring
fonts and some plain bar charts will suddenly look not much better than a green-screen
app. In 3 years you will have people modeling 3D wire-frames on your development teams
or you are history – and the type of app doesn’t really matter much.
</p>
          <p style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in">
            <span style="FONT-FAMILY: Symbol">·<span style="FONT: 7pt 'Times New Roman'">         </span></span>
            <i>Development
Tool and Process Customization Specialists</i>:  I expect Team System to become
the SAP R/3 of software development. No deployment without customization, even if
that only happens over time. Brace for the first product update that comes around
and changes and extends the foundation’s data structures. I fully expect Team System
and the Team Foundation Server to gain substantial market share and I fully expect
that there’ll be a lot of people dying to get customization assistance.
</p>
          <p>
 
</p>
          <p>
That said: I am off to learn more stuff.
</p>
        </div>
        <img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=fdf5f8bf-199c-47c3-8cbb-838fab12f83e" />
      </body>
      <title>Visual Studio Overload And The Specialization Gamble</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,fdf5f8bf-199c-47c3-8cbb-838fab12f83e.aspx</guid>
      <link>http://vasters.com/clemensv/2005/08/31/Visual+Studio+Overload+And+The+Specialization+Gamble.aspx</link>
      <pubDate>Wed, 31 Aug 2005 08:53:45 GMT</pubDate>
      <description>&lt;div class=Section1&gt;
&lt;p&gt;
My blogging efforts this year aren’t really impressive, are they? Well, the first
half of the year I was constantly on the road at a ton of conferences and events and
didn’t really get the time to blog much. After TechEd Europe, I was simply burned
out, took three weeks of vacation to recover somewhat and since then I’ve been trying
to get some better traction with areas of Visual Studio that I hadn’t really looked
at well enough since Beta 2 came out. And of course there’s WinFX with Avalon and
Indigo that I need to track closely. 
&lt;/p&gt;
&lt;p&gt;
Now, of course I have the luxury of being able to dedicate a lot of time to learning,
because taking all the raw information in, distilling it down and making it more accessible
to folks who can’t spend all that time happens to be my job. However, I am finding
myself in this rather unfortunate situation again that I will have to throw some things
overboard and will have to focus on a set of areas. 
&lt;/p&gt;
&lt;p&gt;
At some point rather early in my career I decided that I just can’t track all hardware
innovations anymore. I certainly still know what’s generally going on, but when I
buy a new machine I am just a client for Dell, Siemens or Alienware like the next
guy. I don’t think I could make a qualified enough choice on good hardware components
to build my own PC nowadays and I actually have little interest to do so. All that
stuff comes wrapped in a case and if I don’t really have to open it to put an extension
card in, I have no interest to look inside. The same goes for x86 assembly language.
The platform is still essentially the same even after more than a decade, and whenever
Visual Studio is catching an exception right in the middle of “the land of no source
code”, I can – given I have at least the debug symbols loaded – actually figure out
where I am and, especially if it’s unmanaged code, often figure out what’s failing.
But if someone were ask me about the instruction set innovations of the Pentium 4
processor generation I’ll happily point to someone else. In 2001, I wrote a book on
BizTalk and probably knew the internals and how everything fits together as good as
someone outside of Microsoft possibly could know it. BizTalk 2006 is so far away from
me now that I’d have a hard time giving you the feature delta between the 2004 and
2006 versions. Over time, many things went over board that way; hardware and assembly
being the first and every year it seems like something else needs to go. 
&lt;/p&gt;
&lt;p&gt;
The reason is very simple: Capacity. There’s a limit to how much information an individual
can process and I think that by now, Microsoft managed to push the feature depth to
the point where I can’t fit Visual Studio and related technologies into my head all
at once any longer. In my job, it’s reasonable for people to expect that whenever
I get up on stage or write an article that I give them the 10%-20% of pre-distilled
“essentials” that they need 80% of the time out of a technology and that I know close
to 100% of the stuff that’s underneath, so that they can ask me questions and I can
give them good, well founded answers. &amp;nbsp;In the VS2003/NETFX 1.1 wave, I’ve done
something (and even if it was just a demo) with every single public namespace and
I am confident that I can answer a broad range of customer questions without having
to guess. 
&lt;/p&gt;
&lt;p&gt;
Enter VS2005 and the summary of trying to achieve the same knowledge density is: “Frustrating”. 
&lt;/p&gt;
&lt;p&gt;
There is so much more to (have to) know, especially given that there’s now Team System
and the Team Foundation Server (TFS). TFS is “designed to be customized” and the product
makes that clear wherever you look. It is a bit like an ERP system in that way. You
don’t really have a solution unless you set up a project to customize the product
for your needs. Hence, “Foundation” is a more than fitting name choice. 
&lt;/p&gt;
&lt;p&gt;
I’ve been in a planning project for the past two weeks where the customer has a well
thought out idea about their analysis, design and development processes and while
TFS seems like a great platform for them, they will definitely need customized events,
a custom-tailored version of MSF Agile with lots of new fields and custom code analysis
and check-in policies, integration with and bi-directional data flow from/into “satellite
products” such as a proper requirements analysis system, a help-desk solution and
a documentation solution, and probably will even want to get into building their own
domain specific language (DSL). &amp;nbsp;All of that is possible and the extensibility
of Visual Studio and TFS is as broad as the customer would need it to be, but … who
would know? The &lt;a title=http://msdn.microsoft.com/vstudio/extend/SDKDownload/ href="http://msdn.microsoft.com/vstudio/extend/SDKDownload/"&gt;Team
System Extensibility Kit&lt;/a&gt; has documentation to extend and customize process templates,
work items, source control, the build system, the team explorer, test tools, and reporting
and that’s just the headlines. Add the tools for custom &lt;a title=http://lab.msdn.microsoft.com/teamsystem/workshop/dsltools/default.aspx href="http://lab.msdn.microsoft.com/teamsystem/workshop/dsltools/default.aspx"&gt;domain
specific languages&lt;/a&gt; (huge!) and the &lt;a title=http://www.gotdotnet.com/workspaces/workspace.aspx?id=fe72608b-2b28-4cc1-9866-ea6f805f45f3 href="http://www.gotdotnet.com/workspaces/workspace.aspx?id=fe72608b-2b28-4cc1-9866-ea6f805f45f3"&gt;class
designer extensibility&lt;/a&gt; and you’ve got more than enough stuff to put your head
into complete overflow mode. 
&lt;/p&gt;
&lt;p&gt;
And at that point you haven’t even looked at the news in Windows Forms (where I like
all the new data binding capabilities a lot) and much less at ASP.NET 2.0, which is
an entire planet all by itself. Oh, and of course there is the new deployment model
(aka “ClickOnce”), SQL 2005, with all those new features (whereby SQL/CLR is the least
interesting to me) and BizTalk 2006 and, and, and … 
&lt;/p&gt;
&lt;p&gt;
And of course, my core interest is really with the Windows Vista WinFX technology
wave including of course Indigo (don’t make me use “WCF”) and for me to a lesser degree
Avalon (yes, yes: “WPF”) for which knowing the VS2005/NETFX 2.0 foundation is of course
a prerequisite. 
&lt;/p&gt;
&lt;p&gt;
What kills me with Avalon, for instance, is that I’ve got quite a bit of the 2D stuff
cornered and know how to do things even with just an XML editor in hands, but that
the 3D stuff is nicely integrated and sits right there in front of me and I just don’t
have the necessary knowledge depth about building 3D apps to do the simplest thing
and not the time to acquire that knowledge. And I’ve got such great ideas for using
that stuff.
&lt;/p&gt;
&lt;p&gt;
It looks like it’s time to take some things off the table again and that’s an intensely
frustrating decision to make.
&lt;/p&gt;
&lt;p&gt;
Don’t get me wrong … I am not complaining about Microsoft adding too many features
to the platform. Au contraire! I think that we’re seeing a wave of innovation that’s
absolutely fantastic and will enable us out here to build better, more featured applications. 
&lt;/p&gt;
&lt;p&gt;
But for a development team to benefit from all these technologies, specialization
is absolutely needed. The times when development teams had roughly the same technology
knowledge breadth and everyone could do everything are absolutely coming to an end.
And the number of generalists who have a broad, qualified overview on an entire platform
is rapidly shrinking.
&lt;/p&gt;
&lt;p&gt;
And the development teams will change shape. Come Avalon, and game developers (yes,
game developers) will be in great demand in places that are as far away from gaming
as you could imagine. I’ve just had meetings with a very conservative and large investment
management company and they are thinking hard about adding multi-layer, alpha-blended,
3D data visualizations complete with animations and all that jazz to their trading
system UIs, and they’ve got the business demand for it. Of course, the visualization
experts won’t be data mining and data analysis or software integration specialists;
that’s left for others to do.
&lt;/p&gt;
&lt;p&gt;
For “generalists” like me, these are hard and frustrating times if they’re trying
to stay generalists. Deep and consequent specialization is a great opportunity for
everyone and the gamble is of course to pick the right technology to dig into and
become “the expert” in. If that technology or problem space becomes the hottest thing
everyone must have – you win your bet. Otherwise you might be in trouble. 
&lt;/p&gt;
&lt;p&gt;
Here are some ideas and “predictions” for such sought-after specialists – but, hey,
that’s just my unqualified opinion:
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in"&gt;
&lt;span style="FONT-FAMILY: Symbol"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;i&gt;Cross-platform
Web service wire doctors&lt;/i&gt;. As much as all the vendors will try to make their service
platforms such as Indigo and Web Sphere and Web Logic and Apache interoperable, customers
will try hard to break it all by introducing “absolutely necessary” whacky protocol
extensions and by using every extensibility point fathomable. As if that wasn’t hard
enough already today where most interop happens with more or less bare-bones SOAP
envelopes, just wait until bad ideas get combined with the full WS-* stack, including
reliable messaging, security and routing. These folks of course will have to know
everything about security aspects like federation, single-sign-on, etc. &amp;nbsp;
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in"&gt;
&lt;span style="FONT-FAMILY: Symbol"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;i&gt;Visualization
Developers&lt;/i&gt;. Avalon is a bit like an advanced 3D gaming engine for business application
developers. While that seems like a whacky thing to say – just wait what’ll happen.
Someone will come along and build a full-blown ERP or CRM package whose data visualization
capabilities and advanced data capture methods will blow everything existing out of
the water and everything with white entry fields on a gray background with boring
fonts and some plain bar charts will suddenly look not much better than a green-screen
app. In 3 years you will have people modeling 3D wire-frames on your development teams
or you are history – and the type of app doesn’t really matter much.
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in"&gt;
&lt;span style="FONT-FAMILY: Symbol"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;i&gt;Development
Tool and Process Customization Specialists&lt;/i&gt;: &amp;nbsp;I expect Team System to become
the SAP R/3 of software development. No deployment without customization, even if
that only happens over time. Brace for the first product update that comes around
and changes and extends the foundation’s data structures. I fully expect Team System
and the Team Foundation Server to gain substantial market share and I fully expect
that there’ll be a lot of people dying to get customization assistance.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
That said: I am off to learn more stuff.
&lt;/p&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=fdf5f8bf-199c-47c3-8cbb-838fab12f83e" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,fdf5f8bf-199c-47c3-8cbb-838fab12f83e.aspx</comments>
      <category>IT Strategy</category>
      <category>Technology</category>
    </item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=f004e491-5d36-4d43-9d80-5ac07fd19123</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,f004e491-5d36-4d43-9d80-5ac07fd19123.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,f004e491-5d36-4d43-9d80-5ac07fd19123.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=f004e491-5d36-4d43-9d80-5ac07fd19123</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <title>Convoluted Logic?</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,f004e491-5d36-4d43-9d80-5ac07fd19123.aspx</guid>
      <link>http://vasters.com/clemensv/2005/02/15/Convoluted+Logic.aspx</link>
      <pubDate>Tue, 15 Feb 2005 19:12:45 GMT</pubDate>
      <description>&lt;div class="Section1"&gt;
&lt;p class="MsoNormal"&gt;
&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;&lt;a title="http://news.com.com/Windows+anti-spyware+to+come+free+of+charge/2100-7355_3-5577202.html?tag=nl" href="http://news.com.com/Windows+anti-spyware+to+come+free+of+charge/2100-7355_3-5577202.html?tag=nl"&gt;CNet
reports&lt;/a&gt; about Bill Gates’ announcement that Windows Anti-Spyware is going to be
free includes the following truly puzzling quote from the Check Point Software CTO:&lt;o:p&gt;
&lt;br&gt;
&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin-left: 40px;" class="MsoNormal"&gt;
&lt;i&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 10pt; font-style: italic; font-family: Arial;"&gt;"I
am glad to see Gates is focusing on securing the desktop," said Gregor Freund, chief
technology officer of Check Point Software, which develops desktop security software.
"However, there are some serious downsides to Microsoft's approach. Just by entering
the security market, Microsoft could stall innovation by freezing any kind of spending
of venture capital on Windows security which in the long run, will lead to less security,
not more."&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;
&lt;o:p&gt;
&lt;br&gt;
&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;Is
it just me or do you also consider the term “venture capital” as being a little out
of place in this context?&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=f004e491-5d36-4d43-9d80-5ac07fd19123" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,f004e491-5d36-4d43-9d80-5ac07fd19123.aspx</comments>
      <category>IT Strategy</category>
      <category>Other Stuff</category>
    </item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=1fdd514d-cf1f-4350-a9b3-42cf8faa1740</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,1fdd514d-cf1f-4350-a9b3-42cf8faa1740.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,1fdd514d-cf1f-4350-a9b3-42cf8faa1740.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=1fdd514d-cf1f-4350-a9b3-42cf8faa1740</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I feel like I have been "out of business" for a really long time and like I really
got nothing done in the past 3 months, even though that's objectively not true. I
guess that's "conference &amp; travel withdrawal", because I had tone and tons of
bigger events in the first half of the year and 3 smaller events since TechEd Amsterdam
in July. On the upside, I am pretty relaxed and have certainly reduced
my stress-related health risks ;-)
</p>
        <p>
So with winter and its short days coming up, the other half of my life living a 1/3
around the planet until next spring, I can and am going to spend some serious time
on a bunch of things: 
</p>
        <p>
On the <em>new programming stuff</em> front: 
<br />
     Catch up on what has been going on in Indigo in recent months,
dig deeper into "everything Whidbey", figure out the CLR aspects of SQL
2005 and familiarize myself with VS Team System.
</p>
        <p>
On the <em>existing programming stuff</em> front: 
<br />
      Consolidate my "e:\development\*"  directory on my
harddrive and pull together all my samples and utilities for Enterprise
Services, ASP.NET Web Services and other enterprise-development technologies and
create a production-quality library from of them for us and our customers to
use. Also, because the Indigo team is doing quite a bit of COM/COM+ replumbing
recently in order to have that prohgraming model ride on Indigo, I have some
hope that I can now file bugs/wishes against COM+ that might have a chance of
being addressed. If that happens and a particular showstopper is getting
out of the way, I will reopen this <a href="http://staff.newtelligence.net/clemensv/PermaLink.aspx?guid=110">project
here</a> and will, at the very least, release it as a toy.
</p>
        <p>
On the <em>architectural stuff</em> front:<br />
         Refine our SOA Workshop material, do
quite a bit of additional work on the FABRIQ, evolve the Proseware architecture model,
and get some pending projects done. In addition to our own SOA workshops (the
next English-language workshop is held <a href="http://www.newtelligence.net/PermaLink.aspx?guid=245f5632-1ea1-4e0a-acd7-718cab67d3ab">December
1-3, 2004 in Düsseldorf</a>), there will be a series of invite-only Microsoft
events on Service Orientation throughout Europe this fall/winter, and I am very
happy that I will be speaking -- mostly on architecture topics -- at the Microsoft
Eastern Mediterranean Developer Conference in Amman/Jordan in November and several
other locations in the Middle East early next year. 
</p>
        <p>
And even though I hate the effort around writing books, I am seriously considering
to write a book about "Services" in the next months. There's a lot
of stuff here on the blog that should really be consolidated into a coherent story
and there are lots and lots of considerations and motiviations for decisons I
made for FABRIQ and Proseware and other services-related work that I should probably
write down in one place. One goal of the book would be to write a pragmatic guide
on how to design and build services using currently shipping (!) technologies
that does focus on how to get stuff done and not on how to craft new, exotic
SOAP headers, how to do WSDL trickery, or do other "cool" but not necessarily practical
things. So don't expect a 1200 page monster. 
</p>
        <p>
In addition to the "how to" part, I would also like to incorporate
and consolidate other architect's good (and bad) practical design and implementation
experiences, and write about adoption accelerators and barriers, and some other
aspects that are important to get the service idea past the CFO. That's a great
pain point for many people thinking about services today. If you would be interested
in contributing experiences (named or unnamed), I certainly would like <a href="mailto:clemensv@newtelligence.com&amp;subject=Book%20Project%20Architecture">to know</a> about
it.
</p>
        <p>
And I also think about a German-to-English translation and a significant
(English) update to my German-language <a href="http://www.amazon.de/exec/obidos/ASIN/3446221530/qid=1097925674/ref=sr_8_xs_ap_i1_xgl/302-5183842-4636033">Enterprise
Services</a> book.....
</p>
        <p>
[And to preempt the question: No, I don't have a publisher for either project, yet.]
</p>
        <img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=1fdd514d-cf1f-4350-a9b3-42cf8faa1740" />
      </body>
      <title>The to-do list and (maybe) a new book and (maybe) and new old book.</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,1fdd514d-cf1f-4350-a9b3-42cf8faa1740.aspx</guid>
      <link>http://vasters.com/clemensv/2004/10/16/The+Todo+List+And+Maybe+A+New+Book+And+Maybe+And+New+Old+Book.aspx</link>
      <pubDate>Sat, 16 Oct 2004 11:29:26 GMT</pubDate>
      <description>&lt;p&gt;
I feel like I have been "out of business" for a really long time and&amp;nbsp;like I really
got nothing done in the past 3 months, even though that's objectively not true. I
guess that's "conference &amp;amp; travel withdrawal", because I had tone and tons of
bigger events in the first half of the year and 3 smaller events since TechEd Amsterdam
in July.&amp;nbsp;On the upside, I am pretty relaxed&amp;nbsp;and have&amp;nbsp;certainly reduced
my stress-related health risks&amp;nbsp;;-)
&lt;/p&gt;
&lt;p&gt;
So with winter and its short days coming up, the other half of my life living a 1/3
around the planet until next spring, I can and am going to spend some serious time
on a bunch of things: 
&lt;/p&gt;
&lt;p&gt;
On the &lt;em&gt;new programming stuff&lt;/em&gt; front: 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Catch up on what has been going on in Indigo in recent months,
dig deeper into "everything Whidbey",&amp;nbsp;figure out the CLR aspects of&amp;nbsp;SQL
2005 and familiarize myself with VS Team System.
&lt;/p&gt;
&lt;p&gt;
On the &lt;em&gt;existing programming stuff&lt;/em&gt; front: 
&lt;br&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; Consolidate my "e:\development\*"&amp;nbsp; directory on my
harddrive and pull together all&amp;nbsp;my&amp;nbsp;samples and utilities for Enterprise
Services, ASP.NET Web Services and other enterprise-development technologies&amp;nbsp;and
create a production-quality&amp;nbsp;library from&amp;nbsp;of them for&amp;nbsp;us and our customers&amp;nbsp;to
use.&amp;nbsp;Also, because the Indigo team is doing quite a bit of COM/COM+ replumbing
recently in order to have that prohgraming model ride on Indigo,&amp;nbsp;I have some
hope that&amp;nbsp;I can now file bugs/wishes against COM+ that might have a chance of
being addressed. If that happens and&amp;nbsp;a particular&amp;nbsp;showstopper&amp;nbsp;is getting
out of the way, I will reopen this &lt;a href="http://staff.newtelligence.net/clemensv/PermaLink.aspx?guid=110"&gt;project
here&lt;/a&gt; and will, at the very least, release it as a toy.
&lt;/p&gt;
&lt;p&gt;
On the &lt;em&gt;architectural stuff&lt;/em&gt; front:&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Refine our SOA Workshop material,&amp;nbsp;do
quite a bit of additional work on the FABRIQ, evolve the Proseware architecture model,
and&amp;nbsp;get some pending projects done. In addition to our own SOA workshops (the
next English-language workshop is held &lt;a href="http://www.newtelligence.net/PermaLink.aspx?guid=245f5632-1ea1-4e0a-acd7-718cab67d3ab"&gt;December
1-3, 2004&amp;nbsp;in D&amp;#252;sseldorf&lt;/a&gt;), there will be a series of invite-only Microsoft
events on Service Orientation throughout Europe&amp;nbsp;this fall/winter, and I am very
happy that I will be speaking -- mostly on architecture topics -- at the Microsoft
Eastern Mediterranean Developer Conference in Amman/Jordan in November and several
other locations in the Middle East early next year.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
And even though I hate the effort around writing books, I&amp;nbsp;am&amp;nbsp;seriously considering
to write&amp;nbsp;a book&amp;nbsp;about "Services" in the next months.&amp;nbsp;There's a lot
of stuff here on the blog that should really be consolidated into a coherent story
and there are lots and lots of&amp;nbsp;considerations and motiviations for decisons I
made&amp;nbsp;for FABRIQ and Proseware and other services-related work that I should probably
write down in one place.&amp;nbsp;One goal of the book would be to&amp;nbsp;write a pragmatic&amp;nbsp;guide
on how to design and build services&amp;nbsp;using currently shipping&amp;nbsp;(!) technologies
that does focus on how to get stuff done and not&amp;nbsp;on how to craft new, exotic
SOAP headers, how to do WSDL trickery, or do other "cool" but not necessarily practical
things.&amp;nbsp;So don't expect a 1200 page monster.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
In addition&amp;nbsp;to the "how to" part,&amp;nbsp;I would also&amp;nbsp;like to&amp;nbsp;incorporate
and consolidate&amp;nbsp;other architect's good (and bad) practical design and implementation
experiences, and write about adoption accelerators and barriers,&amp;nbsp;and some other
aspects that are important to get the service idea past the CFO.&amp;nbsp;That's a great
pain point for many people thinking about services today. If you would be interested
in&amp;nbsp;contributing experiences (named or unnamed), I certainly would like &lt;a href="mailto:clemensv@newtelligence.com&amp;amp;subject=Book%20Project%20Architecture"&gt;to&amp;nbsp;know&lt;/a&gt; about
it.
&lt;/p&gt;
&lt;p&gt;
And I also think about&amp;nbsp;a German-to-English translation&amp;nbsp;and a significant
(English) update to my German-language&amp;nbsp;&lt;a href="http://www.amazon.de/exec/obidos/ASIN/3446221530/qid=1097925674/ref=sr_8_xs_ap_i1_xgl/302-5183842-4636033"&gt;Enterprise
Services&lt;/a&gt; book.....
&lt;/p&gt;
&lt;p&gt;
[And to preempt the question: No, I don't have a publisher for either project, yet.]
&lt;/p&gt;
&lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=1fdd514d-cf1f-4350-a9b3-42cf8faa1740" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,1fdd514d-cf1f-4350-a9b3-42cf8faa1740.aspx</comments>
      <category>Architecture</category>
      <category>Architecture/SOA</category>
      <category>Blog</category>
      <category>IT Strategy</category>
      <category>newtelligence</category>
      <category>Other Stuff</category>
      <category>Talks</category>
    </item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=c3f73593-4636-4906-bee7-a1f0e90159f7</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,c3f73593-4636-4906-bee7-a1f0e90159f7.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,c3f73593-4636-4906-bee7-a1f0e90159f7.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=c3f73593-4636-4906-bee7-a1f0e90159f7</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p>
Microsoft Watch <a href="http://www.microsoft-watch.com/article2/0,1995,1625828,00.asp"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">highlights</span></a> the
recently surfaced HP memo that speculates that Microsoft would start enforcing its
patent portfolio on Open Source. How likely is it? It is an interesting question,
indeed. Here’s what I think:
</p>
          <p>
The patent situation, especially on the middleware market, used to be very much like
the cold war between the USSR and the USA in the last century. One side moves, everyone
dies. My guess is that if Microsoft had gone out and dragged Sun to court over J2EE
and Sun had countersued over .NET, things would have gotten really, really nasty.
The very foundations of the J2EE stack are sitting right in the middle of a substantial
Microsoft patent minefield covering what we know as MTS and COM+. The reverse doesn’t
look much better. Now Sun and Microsoft <a href="http://www.directionsonmicrosoft.com/sample/DOMIS/update/2004/05may/0504sdsle.htm"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">made
peace</span></a> on that front and are even looking to negotiate a broad IP cross-licensing
deal to end that sort of arms race. Cross-licensing of patents is quite common in
this industry and in most other industries as well. So where does that leave the grassroots
Open Source movement? Not in a good place, for sure.
</p>
          <p>
If you do research and you pour millions or even billions into that research, there
has to be some return on that investment. And there is a difference between academic
research and research that yields commercial products. I am not saying that there
is no close relationship between the two, but both are done with different goals.
If you do research for commercial purposes, regardless of whether you do it in the
automotive industry or in the pharmaceutical industry or even in the software industry,
the results of your research deserve protection. At the same time, it is harmful to
the society at-large, if everyone would keep all results of all research under wraps.
So governments offer companies a deal: You disclose the results of your research and
we grant you a limited-time monopoly to use that technology exclusively. If you decide
to share the technology with other parties, you can be forced to allow third parties
to license it on appropriate terms. And the German Patent law <a href="http://transpatent.com/gesetze/patg1.html#11">§11
(1)</a> , for instance, explicitly states that patents do not cover noncommercial
use of technology in a private environment.
</p>
          <p>
Now, if states offer that sort of system, a company that is built almost only on intellectual
property (like Sun, IBM, Oracle, Apple, Microsoft and so forth) <b>must</b> play with
the system. The must file for patents. If they don’t, they end of with something
like the <a href="http://www.theregister.co.uk/2004/03/05/eolas%20web%20patent%20nullified/">Eolas
mess</a> in their hands and that is not pretty. Even if some of the patents seem absolutely <a href="http://yro.slashdot.org/yro/04/06/02/2222258.shtml?tid=109&amp;tid=155&amp;tid=187&amp;tid=99">ridiculous</a>;
if the patent lawyers at a large company figure out that a certain technology is not
covered by an existing patent, they must go and protect it. Not necessarily to enforce
it, but rather to avoid that someone else enforces it on them. And because a lot of
these patents are indeed idiotic, such are rarely ever enforced and most often quite
liberally licensed. Something similar is true for trademarks. Microsoft has no choice
but to chase Lindows (now Linspire) or even poor “Mike Rowe Soft” because
they <b>must</b> defend their trademarks, by law. If they don’t and let a case
slip, they might lose them. It’s not about being nasty, it’s just following
the rules that lawmakers have set.
</p>
          <p>
Now, if someone starts cheating on the research front and consumes IP from that system
but never contributes IP to the system, it does indeed change the ballgame. If you
don’t have a patent portfolio that is interesting enough for someone else to
enter a (possibly scoped) cross-licensing deal with you and you don’t license
such patents for money but instead break the other parties’ rightfully (it’s
the law!) acquired, time-limited monopolies on commercial use of the respective technologies <b>and </b>you
do so for profit, then you are simply violating the rules of the law. That’s
as simple as it is. So, if I held Sun’s or Microsoft’s patent portfolio,
would I ask those who profit from commercialization of those patents for my share?
I really might give it some serious consideration. I think companies like Red Hat
make wonderful targets, because they are commercial entities that profit greatly from
a lot of IP that they do not (as I suspect) have properly licensed for commercial
exploitation. The interesting this is that my reading of the (German) patent law is
that the non-profit Apache Foundation can actually use patented technology without
being at risk, but a for-profit company cannot adopt their results without being liable
to acquire a license. Even giving away “free” software in order to benefit
from the support services <b>is </b>commercialization<b>. </b>So if Red Hat includes
some Apache project’s code that steps on patents, I’d say they are in
trouble.
</p>
          <p>
Now, if someone were to “reimplement” a patented drug, the pharmaceutical
company sitting on the patent would sue them out of existence the next second without
even blinking. Unless I am really badly informed, the entire biotech industry is entirely
built on IP protection. All these small biotech firms are doing research that eventually
yields protected IP and that’s what they look to turn into profit. They’re
not in the business of producing and distributing the resulting drugs on a world-wide
scale, they look to share the wealth with the pharmaceutical giants that have the
respective infrastructure. The software industry is a very, very tame place against
what’s going on in other industries. So will Sun, IBM, Oracle, Apple, and/or
Microsoft eventually become more serious about drawing profit from the rights they
hold? Right now it would be a <i>very, very stupid</i> thing to do in terms of the
resulting, adverse marketing effect. 
</p>
          <p>
Now imagine Sun’s unfortunate decline keeps going or some other technology company
with a substantial patent portfolio (and not some weak copyright claims) falls into
the hands of a litigious bunch of folks as in the case of SCO.  That’s
when the shit is going to hit the fan. Big time.
</p>
        </div>
        <img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=c3f73593-4636-4906-bee7-a1f0e90159f7" />
      </body>
      <title>Microsoft enforcing its patent portfolio on Open Source? How likely is it that?</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,c3f73593-4636-4906-bee7-a1f0e90159f7.aspx</guid>
      <link>http://vasters.com/clemensv/2004/07/22/Microsoft+Enforcing+Its+Patent+Portfolio+On+Open+Source+How+Likely+Is+It+That.aspx</link>
      <pubDate>Thu, 22 Jul 2004 12:00:08 GMT</pubDate>
      <description>&lt;div class=Section1&gt;
&lt;p&gt;
Microsoft Watch &lt;a href="http://www.microsoft-watch.com/article2/0,1995,1625828,00.asp"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;highlights&lt;/span&gt;&lt;/a&gt; the
recently surfaced HP memo that speculates that Microsoft would start enforcing its
patent portfolio on Open Source. How likely is it? It is an interesting question,
indeed. Here&amp;#8217;s what I think:
&lt;/p&gt;
&lt;p&gt;
The patent situation, especially on the middleware market, used to be very much like
the cold war between the USSR and the USA in the last century. One side moves, everyone
dies. My guess is that if Microsoft had gone out and dragged Sun to court over J2EE
and Sun had countersued over .NET, things would have gotten really, really nasty.
The very foundations of the J2EE stack are sitting right in the middle of a substantial
Microsoft patent minefield covering what we know as MTS and COM+. The reverse doesn&amp;#8217;t
look much better. Now Sun and Microsoft &lt;a href="http://www.directionsonmicrosoft.com/sample/DOMIS/update/2004/05may/0504sdsle.htm"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;made
peace&lt;/span&gt;&lt;/a&gt; on that front and are even looking to negotiate a broad IP cross-licensing
deal to end that sort of arms race. Cross-licensing of patents is quite common in
this industry and in most other industries as well. So where does that leave the grassroots
Open Source movement? Not in a good place, for sure.
&lt;/p&gt;
&lt;p&gt;
If you do research and you pour millions or even billions into that research, there
has to be some return on that investment. And there is a difference between academic
research and research that yields commercial products. I am not saying that there
is no close relationship between the two, but both are done with different goals.
If you do research for commercial purposes, regardless of whether you do it in the
automotive industry or in the pharmaceutical industry or even in the software industry,
the results of your research deserve protection. At the same time, it is harmful to
the society at-large, if everyone would keep all results of all research under wraps.
So governments offer companies a deal: You disclose the results of your research and
we grant you a limited-time monopoly to use that technology exclusively. If you decide
to share the technology with other parties, you can be forced to allow third parties
to license it on appropriate terms. And the German Patent law &lt;a href="http://transpatent.com/gesetze/patg1.html#11"&gt;&amp;#167;11
(1)&lt;/a&gt; , for instance, explicitly states that patents do not cover noncommercial
use of technology in a private environment.
&lt;/p&gt;
&lt;p&gt;
Now, if states offer that sort of system, a company that is built almost only on intellectual
property (like Sun, IBM, Oracle, Apple, Microsoft and so forth) &lt;b&gt;must&lt;/b&gt; play with
the system. The must file for patents. If they don&amp;#8217;t, they end of with something
like the &lt;a href="http://www.theregister.co.uk/2004/03/05/eolas%20web%20patent%20nullified/"&gt;Eolas
mess&lt;/a&gt; in their hands and that is not pretty. Even if some of the patents seem absolutely &lt;a href="http://yro.slashdot.org/yro/04/06/02/2222258.shtml?tid=109&amp;amp;tid=155&amp;amp;tid=187&amp;amp;tid=99"&gt;ridiculous&lt;/a&gt;;
if the patent lawyers at a large company figure out that a certain technology is not
covered by an existing patent, they must go and protect it. Not necessarily to enforce
it, but rather to avoid that someone else enforces it on them. And because a lot of
these patents are indeed idiotic, such are rarely ever enforced and most often quite
liberally licensed. Something similar is true for trademarks. Microsoft has no choice
but to chase Lindows (now Linspire) or even poor &amp;#8220;Mike Rowe Soft&amp;#8221; because
they &lt;b&gt;must&lt;/b&gt; defend their trademarks, by law. If they don&amp;#8217;t and let a case
slip, they might lose them. It&amp;#8217;s not about being nasty, it&amp;#8217;s just following
the rules that lawmakers have set.
&lt;/p&gt;
&lt;p&gt;
Now, if someone starts cheating on the research front and consumes IP from that system
but never contributes IP to the system, it does indeed change the ballgame. If you
don&amp;#8217;t have a patent portfolio that is interesting enough for someone else to
enter a (possibly scoped) cross-licensing deal with you and you don&amp;#8217;t license
such patents for money but instead break the other parties&amp;#8217; rightfully (it&amp;#8217;s
the law!) acquired, time-limited monopolies on commercial use of the respective technologies &lt;b&gt;and &lt;/b&gt;you
do so for profit, then you are simply violating the rules of the law. That&amp;#8217;s
as simple as it is. So, if I held Sun&amp;#8217;s or Microsoft&amp;#8217;s patent portfolio,
would I ask those who profit from commercialization of those patents for my share?
I really might give it some serious consideration. I think companies like Red Hat
make wonderful targets, because they are commercial entities that profit greatly from
a lot of IP that they do not (as I suspect) have properly licensed for commercial
exploitation. The interesting this is that my reading of the (German) patent law is
that the non-profit Apache Foundation can actually use patented technology without
being at risk, but a for-profit company cannot adopt their results without being liable
to acquire a license. Even giving away &amp;#8220;free&amp;#8221; software in order to benefit
from the support services &lt;b&gt;is &lt;/b&gt;commercialization&lt;b&gt;. &lt;/b&gt;So if Red Hat includes
some Apache project&amp;#8217;s code that steps on patents, I&amp;#8217;d say they are in
trouble.
&lt;/p&gt;
&lt;p&gt;
Now, if someone were to &amp;#8220;reimplement&amp;#8221; a patented drug, the pharmaceutical
company sitting on the patent would sue them out of existence the next second without
even blinking. Unless I am really badly informed, the entire biotech industry is entirely
built on IP protection. All these small biotech firms are doing research that eventually
yields protected IP and that&amp;#8217;s what they look to turn into profit. They&amp;#8217;re
not in the business of producing and distributing the resulting drugs on a world-wide
scale, they look to share the wealth with the pharmaceutical giants that have the
respective infrastructure. The software industry is a very, very tame place against
what&amp;#8217;s going on in other industries. So will Sun, IBM, Oracle, Apple, and/or
Microsoft eventually become more serious about drawing profit from the rights they
hold? Right now it would be a &lt;i&gt;very, very stupid&lt;/i&gt; thing to do in terms of the
resulting, adverse marketing effect. 
&lt;/p&gt;
&lt;p&gt;
Now imagine Sun&amp;#8217;s unfortunate decline keeps going or some other technology company
with a substantial patent portfolio (and not some weak copyright claims) falls into
the hands of a litigious bunch of folks as in the case of SCO. &amp;nbsp;That&amp;#8217;s
when the shit is going to hit the fan. Big time.
&lt;/p&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=c3f73593-4636-4906-bee7-a1f0e90159f7" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,c3f73593-4636-4906-bee7-a1f0e90159f7.aspx</comments>
      <category>IT Strategy</category>
    </item>
    <item xml:lang="de">
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=084ca683-f0ff-483d-a383-dfdfeade4be2</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,084ca683-f0ff-483d-a383-dfdfeade4be2.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,084ca683-f0ff-483d-a383-dfdfeade4be2.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=084ca683-f0ff-483d-a383-dfdfeade4be2</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Die Stellenbörse der "Bundesagentur" für Arbeit wird also nunmehr bei <a href="http://www.stern.de/campus-karriere/arbeit/index.html?id=521522&amp;nv=hp_rt">163
Millionen Euro</a> gedeckelt. Na, was ein Glück. Es wäre nett, wenn mir
irgendjemand erklären könnte, wie man für ein solches Projekt ernsthaft
soviel Geld ausgeben kann. Mir fehlt die Vorstellungskraft eine Internet-Stellenbörse
auch nur annähernd so teuer zu rechnen. 
</p>
        <img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=084ca683-f0ff-483d-a383-dfdfeade4be2" />
      </body>
      <title>163 Millionen Euro. Und wofür bitte?</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,084ca683-f0ff-483d-a383-dfdfeade4be2.aspx</guid>
      <link>http://vasters.com/clemensv/2004/03/15/163+Millionen+Euro+Und+Wof%c3%bcr+Bitte.aspx</link>
      <pubDate>Mon, 15 Mar 2004 14:53:49 GMT</pubDate>
      <description>&lt;p&gt;
Die Stellenb&amp;#246;rse der "Bundesagentur" f&amp;#252;r Arbeit wird also nunmehr bei &lt;a href="http://www.stern.de/campus-karriere/arbeit/index.html?id=521522&amp;amp;nv=hp_rt"&gt;163
Millionen Euro&lt;/a&gt; gedeckelt. Na, was ein Gl&amp;#252;ck. Es w&amp;#228;re nett, wenn mir
irgendjemand erkl&amp;#228;ren k&amp;#246;nnte, wie man f&amp;#252;r ein solches Projekt ernsthaft
soviel Geld ausgeben kann. Mir fehlt&amp;nbsp;die Vorstellungskraft eine Internet-Stellenb&amp;#246;rse
auch nur ann&amp;#228;hernd so teuer zu rechnen. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=084ca683-f0ff-483d-a383-dfdfeade4be2" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,084ca683-f0ff-483d-a383-dfdfeade4be2.aspx</comments>
      <category>IT Strategy</category>
    </item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=02a7cbe1-1c4a-4b83-8b90-d2a22fbd9df5</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,02a7cbe1-1c4a-4b83-8b90-d2a22fbd9df5.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,02a7cbe1-1c4a-4b83-8b90-d2a22fbd9df5.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=02a7cbe1-1c4a-4b83-8b90-d2a22fbd9df5</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
If Sun were actually to open-source (that's a verb now, is it?) Java as <a href="http://www.eweek.com/article2/0,4149,1539358,00.asp">IBM
demands</a>, IBM would finally own it. They've got more resources and they'd throw
them at the problem, easily taking away the leadership in the Java space. Sun would
just be sitting there, watching in disbelief what happens to what used to be their
stuff. That's really what IBM wants and I am amazed how clever they are about
it. 
</p>
        <p>
So, let's assume Sun would fall for it. Then there would be a core Java environment
that's open-source and the J2EE (the stuff that really matters) implementations would
still be closed? How much would that be worth? So the next logical call is to say
"let's open up all those J2EE app servers and related infrastructures, too." And there
we have IBM making WebSphere a freebie they throw into projects (isn't that done,
anyways?) and killing off most of the software revenue models of their competition
while happily buzzing along with their huge global services operation and their server
hardware business.
</p>
        <p>
Of course that's just an evil conspiracy theory.
</p>
        <img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=02a7cbe1-1c4a-4b83-8b90-d2a22fbd9df5" />
      </body>
      <title>If they do it they're 0wn3d</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,02a7cbe1-1c4a-4b83-8b90-d2a22fbd9df5.aspx</guid>
      <link>http://vasters.com/clemensv/2004/02/26/If+They+Do+It+Theyre+0wn3d.aspx</link>
      <pubDate>Thu, 26 Feb 2004 18:40:03 GMT</pubDate>
      <description>&lt;p&gt;
If Sun were actually to open-source (that's a verb now, is it?) Java as &lt;a href="http://www.eweek.com/article2/0,4149,1539358,00.asp"&gt;IBM
demands&lt;/a&gt;, IBM would finally own it. They've got more resources and they'd throw
them at the problem, easily taking away the leadership in the Java space. Sun would
just be sitting there, watching in disbelief what happens to what used to be their
stuff. That's really what&amp;nbsp;IBM wants and I am amazed how clever they are about
it. 
&lt;/p&gt;
&lt;p&gt;
So, let's assume Sun would fall for it. Then there would be a core Java environment
that's open-source and the J2EE (the stuff that really matters) implementations would
still be closed? How much would that be worth? So the next logical call is to say
"let's open up all those J2EE app servers and related infrastructures, too." And there
we have IBM making WebSphere a freebie they throw into projects (isn't that done,
anyways?) and killing off most of the software revenue models of their competition
while happily buzzing along with their huge global services operation and their server
hardware business.
&lt;/p&gt;
&lt;p&gt;
Of course that's just an evil conspiracy theory.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=02a7cbe1-1c4a-4b83-8b90-d2a22fbd9df5" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,02a7cbe1-1c4a-4b83-8b90-d2a22fbd9df5.aspx</comments>
      <category>IT Strategy</category>
    </item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=71a18bd9-4398-45d6-af2b-fe7ebaa67772</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,71a18bd9-4398-45d6-af2b-fe7ebaa67772.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,71a18bd9-4398-45d6-af2b-fe7ebaa67772.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=71a18bd9-4398-45d6-af2b-fe7ebaa67772</wfw:commentRss>
      <slash:comments>8</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.computerworld.com/softwaretopics/os/linux/story/0,10801,88936,00.html?nas=PM-88936">Blah,
Blah ...</a>
          <em>"...if someone is using it who doesn't have a clue. Just like
us."</em>  Dismissing vulnerabilities in any operating system like that just
to turn around and bash Microsoft while they're at it is just idiotic.
</p>
        <img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=71a18bd9-4398-45d6-af2b-fe7ebaa67772" />
      </body>
      <title>This article must be missing a sentence</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,71a18bd9-4398-45d6-af2b-fe7ebaa67772.aspx</guid>
      <link>http://vasters.com/clemensv/2004/01/10/This+Article+Must+Be+Missing+A+Sentence.aspx</link>
      <pubDate>Sat, 10 Jan 2004 07:33:32 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.computerworld.com/softwaretopics/os/linux/story/0,10801,88936,00.html?nas=PM-88936"&gt;Blah,
Blah ...&lt;/a&gt; &lt;em&gt;"...if&amp;nbsp;someone is using it who doesn't have a clue. Just like
us."&lt;/em&gt;&amp;nbsp; Dismissing vulnerabilities in any operating system like that just
to turn around and bash Microsoft while they're at it is just idiotic.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=71a18bd9-4398-45d6-af2b-fe7ebaa67772" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,71a18bd9-4398-45d6-af2b-fe7ebaa67772.aspx</comments>
      <category>IT Strategy</category>
    </item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=278c5ee8-2dcb-4010-ac8c-9e54dcd05b61</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,278c5ee8-2dcb-4010-ac8c-9e54dcd05b61.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,278c5ee8-2dcb-4010-ac8c-9e54dcd05b61.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=278c5ee8-2dcb-4010-ac8c-9e54dcd05b61</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I see quite a few models for Service Oriented Architectures that employ pipelines with
validating "gatekeeper" stages that verify whether inbound messages are
valid according to an agreed contract. Validation on inbound messages is a reactive
action resulting from distrust of the communication partner's ability
to adhere to the contract. Validation on inbound messages shields a service from invalid
input data, but seen from the perspective of the entire system, the action occurs
too late.
</p>
        <p>
What I see less often is a gatekeeper on outbound channels that verifies
whether the currently executing local service adheres to the agreed communication
contract. Validation on outbound messages is a proactive action taken in order to
create trust with partners about the local service's ability to adhere to a contract.
Furthermore, validation on outbound messages is quite often the last chance action
before a well-known point of no return: the transaction boundary. If a service is
faulty, for whatever reason, it needs to consistently fail and abort transactions
instead of emitting incorrect messages that are in violation of the contract. If the
service is faulty, it must consequently be assumed that compensating recovery
strategies will not function properly and with the desired result. 
</p>
        <p>
Exception information that is generated on an inbound channel, especially in asynchronous
one-way scenarios, vanishes into a log file at a location/organization that may not
even own the sending service that's in violation of the contract. The only logical
place to detect contract violations in order to isolate and efficiently eliminate
problems is on the outbound, not on the inbound channel. Eliminating problems may
mean to fix problems in the software, allow manual correction by an operator/clerk
or an automatic rejection/rollback/retry of the operation yielding the incorrect
result. None of these corrective actions can be done in a meaningful way by the message
recipient. The recipient can shield itself, and that is and remains very important.
However, it's just a desperate act of digging oneself in when the last line
of defense did already fall.
</p>
        <img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=278c5ee8-2dcb-4010-ac8c-9e54dcd05b61" />
      </body>
      <title>SOA: Checking postconditions is more important than checking preconditions</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,278c5ee8-2dcb-4010-ac8c-9e54dcd05b61.aspx</guid>
      <link>http://vasters.com/clemensv/2003/10/07/SOA+Checking+Postconditions+Is+More+Important+Than+Checking+Preconditions.aspx</link>
      <pubDate>Tue, 07 Oct 2003 11:08:26 GMT</pubDate>
      <description>&lt;p&gt;
I see quite a few models for&amp;nbsp;Service Oriented Architectures that employ pipelines&amp;nbsp;with
validating "gatekeeper" stages&amp;nbsp;that verify&amp;nbsp;whether inbound messages&amp;nbsp;are
valid according to&amp;nbsp;an agreed contract. Validation on inbound messages is a&amp;nbsp;reactive
action&amp;nbsp;resulting from&amp;nbsp;distrust&amp;nbsp;of the communication partner's ability
to adhere to the contract. Validation on inbound messages shields a service from invalid
input data, but seen from the perspective of the entire system, the action occurs
too late.
&lt;/p&gt;
&lt;p&gt;
What I&amp;nbsp;see less often is a&amp;nbsp;gatekeeper on outbound channels that verifies
whether the&amp;nbsp;currently executing local&amp;nbsp;service adheres to the agreed communication
contract. Validation on outbound messages is a proactive action taken in order to
create trust with partners about the local service's ability to adhere to a contract.
Furthermore, validation on outbound messages is quite often the last chance action
before a well-known point of no return: the transaction boundary. If a service is
faulty, for whatever reason, it needs to consistently fail and abort transactions
instead of emitting incorrect messages that are in violation of the contract. If the
service is faulty,&amp;nbsp;it must consequently be assumed that compensating recovery
strategies will not function properly and with the desired result. 
&lt;/p&gt;
&lt;p&gt;
Exception information that is generated on an inbound channel, especially in asynchronous
one-way scenarios, vanishes into a log file at a location/organization that may not
even own the sending service that's in violation of the contract. The only logical
place to detect contract violations in order to isolate and efficiently eliminate
problems is on the outbound, not on the inbound channel. Eliminating problems may
mean to fix problems in the software, allow manual correction by an operator/clerk
or an automatic&amp;nbsp;rejection/rollback/retry of the operation yielding the incorrect
result. None of these corrective actions can be done in a meaningful way by the message
recipient. The recipient can shield itself, and that is and remains very important.
However, it's just a desperate act of digging&amp;nbsp;oneself in&amp;nbsp;when the last line
of defense did already fall.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=278c5ee8-2dcb-4010-ac8c-9e54dcd05b61" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,278c5ee8-2dcb-4010-ac8c-9e54dcd05b61.aspx</comments>
      <category>Architecture</category>
      <category>IT Strategy</category>
    </item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=70d88df9-6e0e-464a-953e-44997a4fee0c</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,70d88df9-6e0e-464a-953e-44997a4fee0c.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,70d88df9-6e0e-464a-953e-44997a4fee0c.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=70d88df9-6e0e-464a-953e-44997a4fee0c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
If you are given a hard time, because a project is late, there's now a good example
to point to and say "well, it could be a lot worse".
</p>
        <p>
The German <a href="http://www.tollcollect.de">TollCollect</a> consortium that
is contracted by the German government to build and operate a GSM/GPS based system
to collect a country-wide, per-kilometer road use toll from trucks is currently caught
right in the middle of one of the most publicized, most political and most
costly <a href="http://www.faz.com/IN/INtemplates/eFAZ/docmain.asp?rub=%7BB1311FCC-FBFB-11D2-B228-00105A9CAF88%7D&amp;doc=%7BF3B48255-09C3-4AE5-BD0F-2553F160B7C2%7D">IT
project delays</a> in Germany, ever. The problems seem to be a nightmarish combination
of problems arising from in a huge project slammed together in a hurry and the
blame must be given to both sides, the government and the industry partners.
However, the result is absolutely disastrous for the already overstressed state budgets:
German taxpayers are currently losing at least US$150 million (€130 million) a month
just because of the project delays.
</p>
        <img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=70d88df9-6e0e-464a-953e-44997a4fee0c" />
      </body>
      <title>Collecting road tolls - not.</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,70d88df9-6e0e-464a-953e-44997a4fee0c.aspx</guid>
      <link>http://vasters.com/clemensv/2003/10/06/Collecting+Road+Tolls+Not.aspx</link>
      <pubDate>Mon, 06 Oct 2003 11:32:22 GMT</pubDate>
      <description>&lt;p&gt;
If you are given a hard time, because a project is late, there's now a good example
to point to and say "well, it could be a lot worse".
&lt;/p&gt;
&lt;p&gt;
The German &lt;a href="http://www.tollcollect.de"&gt;TollCollect&lt;/a&gt;&amp;nbsp;consortium that
is contracted by the German government to build and operate a GSM/GPS based system
to collect a country-wide, per-kilometer road use toll from trucks is currently&amp;nbsp;caught
right in the middle of&amp;nbsp;one of the most publicized, most political&amp;nbsp;and most
costly&amp;nbsp;&lt;a href="http://www.faz.com/IN/INtemplates/eFAZ/docmain.asp?rub=%7BB1311FCC-FBFB-11D2-B228-00105A9CAF88%7D&amp;amp;doc=%7BF3B48255-09C3-4AE5-BD0F-2553F160B7C2%7D"&gt;IT
project delays&lt;/a&gt; in Germany, ever. The problems&amp;nbsp;seem to be a nightmarish combination
of&amp;nbsp;problems arising from in a huge project slammed together in a hurry and&amp;nbsp;the
blame must be given&amp;nbsp;to both sides, the government and the industry partners.
However, the result is absolutely disastrous for the already overstressed state budgets:
German taxpayers are currently losing at least US$150 million (€130 million) a month
just because of the project delays.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=70d88df9-6e0e-464a-953e-44997a4fee0c" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,70d88df9-6e0e-464a-953e-44997a4fee0c.aspx</comments>
      <category>IT Strategy</category>
    </item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=6868ac5d-16cc-4863-bde4-11f663691c76</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,6868ac5d-16cc-4863-bde4-11f663691c76.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,6868ac5d-16cc-4863-bde4-11f663691c76.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=6868ac5d-16cc-4863-bde4-11f663691c76</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p>
Javier Gonzalez sent me a mail today on my <a href="http://staff.newtelligence.net/clemensv/PermaLink.aspx?guid=b379fb50-70b2-48b1-9d56-7cc5377022e5">most
recent SOA post</a> and says that it resonates with his experience:
</p>
          <p style="MARGIN-LEFT: 36pt">
            <i>I just read your article about services and find it very interesting. I have been
using OOP languages to build somewhat complex systems for the last 5 years and even
if I have had some degree of success with them, I usually find myself facing those
same problems u mention (why, for instance, do I have to throw an exception to a module
that doesn't know how to deal with it?). Yes, objects in a well designed OOP systems
are *supposed* to be loosely coupled, but then, is that really possible to completely
achieve? So I do agree with u SOA might be a solution to some of my nightmares. Only
one thing bothers me, and that is service implementation. Services, and most of all
Web Services only care about interfaces, or better yet, contracts, but the functionality
that those contracts provide have to be implemented in some way, right? Being as I
am an "object fan" I would use an OO language, but I would like to hear your opinions
on the subject. Also, there's something I call "service feasibility". Web Services
and SOA in general do "sound" a very nice idea, but then, on real systems they tend
to be sluggish, to say the least. They can put a network on its knees if the amount
of information transmitted is only fair. SAOP is a very nice idea when it comes to
interoperability, but the messages are *bloated* and the system's performance tend
to suffer. -- I'd love to hear your opinions on this topics.</i>
          </p>
          <p>
Here’s my reply to Javier:
</p>
          <p style="MARGIN-LEFT: 36pt">
Within a service, OOP stays as much of a good idea as it always was, because it gives
us all the qualities of pre-built infrastructure reuse that we've learned to appreciate
in recent years. I don't see much realistic potential for business logic or business
object reuse, but OOP as a tool is well and alive.
</p>
          <p style="MARGIN-LEFT: 36pt">
Your point about services being sluggish has some truth to it, if you look at system
components singularly. There is no doubt that a Porsche 911 is faster than a Ford
Focus. However, if you look at a larger system as a whole, to stay in the picture
let's take a bridge crossing a river at rush hour, the Focus and the 911 move at the
same speed because of congestion -- a congestion that would occur even if everyone
driving on that bridge were driving a 911. The primary goal is thus to make that bridge
wider and not to give everyone a Porsche. 
</p>
          <p style="MARGIN-LEFT: 36pt">
Maximizing throughput always tops optimizing raw performance. The idea of SOA in conjunction
with autonomous computing networks decouples subsystems in a way that you get largely
independent processing islands connected by one-way roads to which you can add arbitrary
numbers of lanes (and arbitrary number of identical islands). So while an individual
operation may indeed take a bit longer and the bandwidth requirements may be higher,
the overall system can scale its capacity and throughput to infinity.
</p>
          <p style="MARGIN-LEFT: 36pt">
Still, for a quick reality check: Have you looked at what size packages IIOP or DCOM
produce on the wire and at the number of network roundtrips they require for protocol
negotiation? The scary thing about SOAP is that it is really very much in our face
and relatively easy to comprehend. Thus people tend to pay more attention to it. If
you compare common binary protocols to SOAP (considering a realistic mix of payloads),
SOAP doesn't look all that horrible. Also, XML compresses really well and much better
than binary data. All that being said, I know that the vendors (specifically Microsoft)
are looking very closely at how to reduce the wire footprint of SOAP and I expect
them to come around with proposals in a not too distant future.
</p>
          <p>
Over in the <a href="http://staff.newtelligence.net/clemensv/CommentView.aspx?guid=b379fb50-70b2-48b1-9d56-7cc5377022e5">comment
view</a> of that article, <a href="http://stucharlton.com/blog">Stu Charlton</a> raises
some concerns and posts some questions. Here are some answers:
</p>
          <p style="MARGIN-LEFT: 36pt">
            <b>1) </b>"No shared application state, everything must be passed through messages."
 <i>Every "service" oriented system I have ever witnessed has stated this as
a goal, and eventually someone got sick of it and implemented a form of shared state.
The GIT in COM, session variables in PL/SQL packages, ASP[.NET] Sessions, JSP HttpSession,
common areas in CICS, Linda/JavaSpaces, Stateful Session Beans, Scratchpads / Blackboards,
etc.</i><i>Concern: No distributed computing paradigm has ever eliminated transient
shared state, no matter how messy or unscalable it is.</i></p>
          <p style="MARGIN-LEFT: 36pt">
Sessions are scoped to a conversation; what I mean is application-scoped state shared
across sessions. Some of the examples you give are about session state, some are about
application state. Session state can’t be avoided (although it can sometimes be piggybacked
into the message flow) and is owned by a particular service. If you’ve started a conversation
with a service, you need to go back to that service to continue the conversation.
If the service itself is implemented using a local (load balance and/or failover)
cluster that’s great, but you shouldn’t need to know about it. Application state that’s
shared between multiple services provided by an application leads to co-location assumptions
and is therefore bad. 
</p>
          <p style="MARGIN-LEFT: 36pt">
            <b>2) </b>"A customer record isn't uniquely identifiable in-memory and even not an
addressable on-disk entity that's known throughout the system"  <i>-- Question:
This confuses me quite a bit. Are you advocating the abolishment of a primary key
for a piece of shared data? If not, what do you mean by this: no notion of global
object identity (fair), or something else?</i></p>
          <p style="MARGIN-LEFT: 36pt">
I am saying that not all data can and should be treated alike. There is shared data
whose realistic frequency of change is so low, that it simply doesn’t deserve uniqueness
(and be identified by a primary key in a central store). There is shared data for
which a master copy exists, but of which many concurrent on-disk replicas and in-memory
copies may safely float throughout the system as long as there is understanding about
the temporal accuracy requirements as well as about the potential for concurrent modification.
While there is always a theoretical potential for concurrent data modification, the
reality of many systems is that a records in many tables can and will never be concurrently
accessed, because the information causing the change does not surface at two places
at the same time. How many call center agents will realistically attempt to change
a single customer’s address information at the same time? Lastly, there is data that
should only be touched within a transaction and can and may only exist in a single
place. 
</p>
          <p style="MARGIN-LEFT: 36pt">
I am not abandoning the idea of “primary key” or a unique customer number. I am saying
that reflecting that uniqueness in in-memory state is rarely the right choice and
rarely worth the hassle. Concurrent modification of data is rare and there are techniques
to eliminate it in many cases and by introduction of chronologies. Even if you are
booking into a financial account, you are just adding information to a uniquely identifiable
set of data. You are not modifying the account itself, but you add information to
it. Counter example: If you have an object that represents a physical device such
as a printer, a sensor, a network switch or a manufacturing robot, in-memory identity
immediately reflects the identity of the physical entity you are dealing with. These
are cases where objects and object identity make sense. That direct correspondence
rarely exists in business systems. Those deal with data about things, not things.
</p>
          <p style="MARGIN-LEFT: 36pt">
            <b>3)</b> "In a services world, there are no objects, just data". – […] <i>Anyway,
I don't think anyone [sane] has advocated building fine-grained object model distributed
systems for quite a few years.</i> […] <i>But the object oriented community has known
that for quite some time, hence the "Facade" pattern, and the packaging/reuse principles
from folks such as Robert C. Martin. Domain models may still exist in the implementation
of the service, depending on the complexity of the service.</i></p>
          <p style="MARGIN-LEFT: 36pt">
OOP is great for the inner implementation of a service (see above) and I am in line
with you here. There, however, plenty of people who still believe in object purity
and that’s why I am saying what I am saying.
</p>
          <p style="MARGIN-LEFT: 36pt">
            <b>4)</b> "data record stored &amp; retrieved from many different data sources within
the same application out of a variety of motivations"  --- <i>I assume all of
these copies of data are read-only, with one service having responsibility for updates.
I also assume you mean that some form of optimistic conflict checking would be involved
to ensure no lost updates. Concern: Traditionally we have had serializable transaction
isolation to protect us from concurrent anomalies. Will we still have this sort of
isolation in the face of multiple cached copies across web services? </i></p>
          <p style="MARGIN-LEFT: 36pt">
I think that absolute temporal accuracy is severely overrated and is more an engineering
obsession than anything else. Amazon.com basically lies into the faces of millions
of users each day by saying “only 2-4 items left in stock” or “Usually ships within
24 hours”. Can they give you to-the-second accurate information from their backend
warehouse? Of course they don’t. They won’t even tell you when your stuff ships when
you’re through checkout and gave them you money. They’ll do so later – by email.
</p>
          <p style="MARGIN-LEFT: 36pt">
I also think that the risk of concurrent updates to records is – as outlined above
– very low if you segment your data along the lines of the business use cases and
not so much along the lines of what a DBA thinks is perfect form.
</p>
          <p style="MARGIN-LEFT: 36pt">
I’ll skip 5) and 6) (the answers are “Ok” and “If you want to see it that way”) and
move on to 
<br /><b>7)</b> "Problematic assumptions regarding single databases vs. parallel databases
for scalability" -- <i>I'm not sure what the problem is here from an SOA perspective?
Isn't this a physical data architecture issue, something encapsulated by your database's
interface? As far as I know it's pretty transparent to me if Oracle decides to use
a parallel query, unless I dig into the SQL plan. […]</i></p>
          <p style="MARGIN-LEFT: 36pt">
“which may or may not be directly supported by your database system” is the half sentence
to consider here as well. The Oracle cluster does it, SQL Server does it too, but
there are other database system out there and there’s also other ways of storing and
accessing data than RDBMS. 
</p>
          <p style="MARGIN-LEFT: 36pt">
            <b>8)</b> "Strong contracts eliminate "illegal argument" errors" <i>Question: What
about semantic constraints? Or referential integrity constraints? XML Schemas are
richer than IDL, but they still don't capture rich semantic constraints (i.e. "book
a room in this hotel, ensuring there are no overlapping reservations" -- or "employee
reporting relationships must be hierarchical"). […] </i></p>
          <p style="MARGIN-LEFT: 36pt">
“Book a room in this hotel” is a message to the service. The requirements-motivated
answer to this message is either “yes” or “no”. “No overlapping reservations” is a
local concern of that service and even “Sorry, we don’t know that hotel” is. The employee
reporting relationships for a message relayed to an HR service can indeed be expressed
by referential constraints in XSD, the validity of the merging the message into the
backend store is an internal concern of the service. The answer is “can do that” or
“can’t do that”. 
</p>
          <p style="MARGIN-LEFT: 36pt">
What you won’t get are failures like “the employee name has more than 80 characters
and we don’t know how to deal with that”. Stronger contracts and automatic enforcement
of these contracts reduce the number of stupid errors, side-effects and the combination
of stupid errors and side effects to look for – at either endpoint. 
</p>
          <p style="MARGIN-LEFT: 36pt">
            <b>9)</b> "The vision of Web services as an integration tool of global scale exhibits
these and other constraints, making it necessary to enable asynchronous behavior and
parallel processing as a core principle of mainstream application design and don’t
leave that as a specialty to the high-performance and super-computing space."  -- <i>Concern:
Distributed/concurrent/parallel computing is hard. I haven't seen much evidence that
SOA/ web services makes this any easier. It makes contracts easier, and distributing
data types easier. But it's up to the programming model (.NET, J2EE, or something
else) to make the distributed/concurrent/parallel model easier. There are some signs
of improvement here, but I'm skeptical there will be anything that breaks this stuff
into the "mainstream" (I guess it depends on what one defines as mainstream)... </i></p>
          <p style="MARGIN-LEFT: 36pt">
Oh, I wouldn’t be too sure about that. There are lots of thing going on in that area
that I know of but can’t talk about at present.
</p>
          <p style="MARGIN-LEFT: 36pt">
            <i>While SOA as a means of widespread systems integration is a solid idea, the dream
of service-oriented "grid" computing isn't really economically viable unless the computation
is very expensive. Co-locating processing &amp; filtering as close as possible to
the data source is still the key principle to an economic &amp; performing system.
(Jim Gray also has a recent paper on this on his website). Things like XQuery for
integration and data federations (service oriented or not) still don't seem economically
plausible until distributed query processors get a lot smarter and WAN costs go down.</i>
          </p>
          <p style="MARGIN-LEFT: 36pt">
Again, if the tools were up to speed, it would be economically feasible to do so.
That’s going to be fixed. Even SOA based grids apparently sound much less like science
fiction to me than to you.
</p>
        </div>
        <img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=6868ac5d-16cc-4863-bde4-11f663691c76" />
      </body>
      <title>"Services" in SOA posting: Comments and Responses</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,6868ac5d-16cc-4863-bde4-11f663691c76.aspx</guid>
      <link>http://vasters.com/clemensv/2003/09/30/Services+In+SOA+Posting+Comments+And+Responses.aspx</link>
      <pubDate>Tue, 30 Sep 2003 15:51:47 GMT</pubDate>
      <description>&lt;div class=Section1&gt;
&lt;p&gt;
Javier Gonzalez sent me a mail today on my &lt;a href="http://staff.newtelligence.net/clemensv/PermaLink.aspx?guid=b379fb50-70b2-48b1-9d56-7cc5377022e5"&gt;most
recent SOA post&lt;/a&gt; and says that it resonates with his experience:
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 36pt"&gt;
&lt;i&gt;I just read your article about services and find it very interesting. I have been
using OOP languages to build somewhat complex systems for the last 5 years and even
if I have had some degree of success with them, I usually find myself facing those
same problems u mention (why, for instance, do I have to throw an exception to a module
that doesn't know how to deal with it?). Yes, objects in a well designed OOP systems
are *supposed* to be loosely coupled, but then, is that really possible to completely
achieve? So I do agree with u SOA might be a solution to some of my nightmares. Only
one thing bothers me, and that is service implementation. Services, and most of all
Web Services only care about interfaces, or better yet, contracts, but the functionality
that those contracts provide have to be implemented in some way, right? Being as I
am an "object fan" I would use an OO language, but I would like to hear your opinions
on the subject. Also, there's something I call "service feasibility". Web Services
and SOA in general do "sound" a very nice idea, but then, on real systems they tend
to be sluggish, to say the least. They can put a network on its knees if the amount
of information transmitted is only fair. SAOP is a very nice idea when it comes to
interoperability, but the messages are *bloated* and the system's performance tend
to suffer. -- I'd love to hear your opinions on this topics.&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
Here’s my reply to Javier:
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 36pt"&gt;
Within a service, OOP stays as much of a good idea as it always was, because it gives
us all the qualities of pre-built infrastructure reuse that we've learned to appreciate
in recent years. I don't see much realistic potential for business logic or business
object reuse, but OOP as a tool is well and alive.
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 36pt"&gt;
Your point about services being sluggish has some truth to it, if you look at system
components singularly. There is no doubt that a Porsche 911 is faster than a Ford
Focus. However, if you look at a larger system as a whole, to stay in the picture
let's take a bridge crossing a river at rush hour, the Focus and the 911 move at the
same speed because of congestion -- a congestion that would occur even if everyone
driving on that bridge were driving a 911. The primary goal is thus to make that bridge
wider and not to give everyone a Porsche. 
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 36pt"&gt;
Maximizing throughput always tops optimizing raw performance. The idea of SOA in conjunction
with autonomous computing networks decouples subsystems in a way that you get largely
independent processing islands connected by one-way roads to which you can add arbitrary
numbers of lanes (and arbitrary number of identical islands). So while an individual
operation may indeed take a bit longer and the bandwidth requirements may be higher,
the overall system can scale its capacity and throughput to infinity.
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 36pt"&gt;
Still, for a quick reality check: Have you looked at what size packages IIOP or DCOM
produce on the wire and at the number of network roundtrips they require for protocol
negotiation? The scary thing about SOAP is that it is really very much in our face
and relatively easy to comprehend. Thus people tend to pay more attention to it. If
you compare common binary protocols to SOAP (considering a realistic mix of payloads),
SOAP doesn't look all that horrible. Also, XML compresses really well and much better
than binary data. All that being said, I know that the vendors (specifically Microsoft)
are looking very closely at how to reduce the wire footprint of SOAP and I expect
them to come around with proposals in a not too distant future.
&lt;/p&gt;
&lt;p&gt;
Over in the &lt;a href="http://staff.newtelligence.net/clemensv/CommentView.aspx?guid=b379fb50-70b2-48b1-9d56-7cc5377022e5"&gt;comment
view&lt;/a&gt; of that article, &lt;a href="http://stucharlton.com/blog"&gt;Stu Charlton&lt;/a&gt; raises
some concerns and posts some questions. Here are some answers:
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 36pt"&gt;
&lt;b&gt;1) &lt;/b&gt;"No shared application state, everything must be passed through messages."
&amp;nbsp;&lt;i&gt;Every "service" oriented system I have ever witnessed has stated this as
a goal, and eventually someone got sick of it and implemented a form of shared state.
The GIT in COM, session variables in PL/SQL packages, ASP[.NET] Sessions, JSP HttpSession,
common areas in CICS, Linda/JavaSpaces, Stateful Session Beans, Scratchpads / Blackboards,
etc.&lt;/i&gt; &lt;i&gt;Concern: No distributed computing paradigm has ever eliminated transient
shared state, no matter how messy or unscalable it is.&lt;/i&gt;
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 36pt"&gt;
Sessions are scoped to a conversation; what I mean is application-scoped state shared
across sessions. Some of the examples you give are about session state, some are about
application state. Session state can’t be avoided (although it can sometimes be piggybacked
into the message flow) and is owned by a particular service. If you’ve started a conversation
with a service, you need to go back to that service to continue the conversation.
If the service itself is implemented using a local (load balance and/or failover)
cluster that’s great, but you shouldn’t need to know about it. Application state that’s
shared between multiple services provided by an application leads to co-location assumptions
and is therefore bad. 
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 36pt"&gt;
&lt;b&gt;2) &lt;/b&gt;"A customer record isn't uniquely identifiable in-memory and even not an
addressable on-disk entity that's known throughout the system" &amp;nbsp;&lt;i&gt;-- Question:
This confuses me quite a bit. Are you advocating the abolishment of a primary key
for a piece of shared data? If not, what do you mean by this: no notion of global
object identity (fair), or something else?&lt;/i&gt;
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 36pt"&gt;
I am saying that not all data can and should be treated alike. There is shared data
whose realistic frequency of change is so low, that it simply doesn’t deserve uniqueness
(and be identified by a primary key in a central store). There is shared data for
which a master copy exists, but of which many concurrent on-disk replicas and in-memory
copies may safely float throughout the system as long as there is understanding about
the temporal accuracy requirements as well as about the potential for concurrent modification.
While there is always a theoretical potential for concurrent data modification, the
reality of many systems is that a records in many tables can and will never be concurrently
accessed, because the information causing the change does not surface at two places
at the same time. How many call center agents will realistically attempt to change
a single customer’s address information at the same time? Lastly, there is data that
should only be touched within a transaction and can and may only exist in a single
place. 
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 36pt"&gt;
I am not abandoning the idea of “primary key” or a unique customer number. I am saying
that reflecting that uniqueness in in-memory state is rarely the right choice and
rarely worth the hassle. Concurrent modification of data is rare and there are techniques
to eliminate it in many cases and by introduction of chronologies. Even if you are
booking into a financial account, you are just adding information to a uniquely identifiable
set of data. You are not modifying the account itself, but you add information to
it. Counter example: If you have an object that represents a physical device such
as a printer, a sensor, a network switch or a manufacturing robot, in-memory identity
immediately reflects the identity of the physical entity you are dealing with. These
are cases where objects and object identity make sense. That direct correspondence
rarely exists in business systems. Those deal with data about things, not things.
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 36pt"&gt;
&lt;b&gt;3)&lt;/b&gt; "In a services world, there are no objects, just data". – […] &lt;i&gt;Anyway,
I don't think anyone [sane] has advocated building fine-grained object model distributed
systems for quite a few years.&lt;/i&gt; […] &lt;i&gt;But the object oriented community has known
that for quite some time, hence the "Facade" pattern, and the packaging/reuse principles
from folks such as Robert C. Martin. Domain models may still exist in the implementation
of the service, depending on the complexity of the service.&lt;/i&gt; 
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 36pt"&gt;
OOP is great for the inner implementation of a service (see above) and I am in line
with you here. There, however, plenty of people who still believe in object purity
and that’s why I am saying what I am saying.
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 36pt"&gt;
&lt;b&gt;4)&lt;/b&gt; "data record stored &amp;amp; retrieved from many different data sources within
the same application out of a variety of motivations" &amp;nbsp;--- &lt;i&gt;I assume all of
these copies of data are read-only, with one service having responsibility for updates.
I also assume you mean that some form of optimistic conflict checking would be involved
to ensure no lost updates. Concern: Traditionally we have had serializable transaction
isolation to protect us from concurrent anomalies. Will we still have this sort of
isolation in the face of multiple cached copies across web services? &lt;/i&gt;
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 36pt"&gt;
I think that absolute temporal accuracy is severely overrated and is more an engineering
obsession than anything else. Amazon.com basically lies into the faces of millions
of users each day by saying “only 2-4 items left in stock” or “Usually ships within
24 hours”. Can they give you to-the-second accurate information from their backend
warehouse? Of course they don’t. They won’t even tell you when your stuff ships when
you’re through checkout and gave them you money. They’ll do so later – by email.
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 36pt"&gt;
I also think that the risk of concurrent updates to records is – as outlined above
– very low if you segment your data along the lines of the business use cases and
not so much along the lines of what a DBA thinks is perfect form.
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 36pt"&gt;
I’ll skip 5) and 6) (the answers are “Ok” and “If you want to see it that way”) and
move on to 
&lt;br&gt;
&lt;b&gt;7)&lt;/b&gt; "Problematic assumptions regarding single databases vs. parallel databases
for scalability" -- &lt;i&gt;I'm not sure what the problem is here from an SOA perspective?
Isn't this a physical data architecture issue, something encapsulated by your database's
interface? As far as I know it's pretty transparent to me if Oracle decides to use
a parallel query, unless I dig into the SQL plan. […]&lt;/i&gt;
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 36pt"&gt;
“which may or may not be directly supported by your database system” is the half sentence
to consider here as well. The Oracle cluster does it, SQL Server does it too, but
there are other database system out there and there’s also other ways of storing and
accessing data than RDBMS. 
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 36pt"&gt;
&lt;b&gt;8)&lt;/b&gt; "Strong contracts eliminate "illegal argument" errors" &lt;i&gt;Question: What
about semantic constraints? Or referential integrity constraints? XML Schemas are
richer than IDL, but they still don't capture rich semantic constraints (i.e. "book
a room in this hotel, ensuring there are no overlapping reservations" -- or "employee
reporting relationships must be hierarchical"). […] &lt;/i&gt;
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 36pt"&gt;
“Book a room in this hotel” is a message to the service. The requirements-motivated
answer to this message is either “yes” or “no”. “No overlapping reservations” is a
local concern of that service and even “Sorry, we don’t know that hotel” is. The employee
reporting relationships for a message relayed to an HR service can indeed be expressed
by referential constraints in XSD, the validity of the merging the message into the
backend store is an internal concern of the service. The answer is “can do that” or
“can’t do that”. 
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 36pt"&gt;
What you won’t get are failures like “the employee name has more than 80 characters
and we don’t know how to deal with that”. Stronger contracts and automatic enforcement
of these contracts reduce the number of stupid errors, side-effects and the combination
of stupid errors and side effects to look for – at either endpoint. 
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 36pt"&gt;
&lt;b&gt;9)&lt;/b&gt; "The vision of Web services as an integration tool of global scale exhibits
these and other constraints, making it necessary to enable asynchronous behavior and
parallel processing as a core principle of mainstream application design and don’t
leave that as a specialty to the high-performance and super-computing space." &amp;nbsp;-- &lt;i&gt;Concern:
Distributed/concurrent/parallel computing is hard. I haven't seen much evidence that
SOA/ web services makes this any easier. It makes contracts easier, and distributing
data types easier. But it's up to the programming model (.NET, J2EE, or something
else) to make the distributed/concurrent/parallel model easier. There are some signs
of improvement here, but I'm skeptical there will be anything that breaks this stuff
into the "mainstream" (I guess it depends on what one defines as mainstream)... &lt;/i&gt;
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 36pt"&gt;
Oh, I wouldn’t be too sure about that. There are lots of thing going on in that area
that I know of but can’t talk about at present.
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 36pt"&gt;
&lt;i&gt;While SOA as a means of widespread systems integration is a solid idea, the dream
of service-oriented "grid" computing isn't really economically viable unless the computation
is very expensive. Co-locating processing &amp;amp; filtering as close as possible to
the data source is still the key principle to an economic &amp;amp; performing system.
(Jim Gray also has a recent paper on this on his website). Things like XQuery for
integration and data federations (service oriented or not) still don't seem economically
plausible until distributed query processors get a lot smarter and WAN costs go down.&lt;/i&gt;
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 36pt"&gt;
Again, if the tools were up to speed, it would be economically feasible to do so.
That’s going to be fixed. Even SOA based grids apparently sound much less like science
fiction to me than to you.
&lt;/p&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=6868ac5d-16cc-4863-bde4-11f663691c76" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,6868ac5d-16cc-4863-bde4-11f663691c76.aspx</comments>
      <category>Architecture</category>
      <category>IT Strategy</category>
    </item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=b379fb50-70b2-48b1-9d56-7cc5377022e5</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,b379fb50-70b2-48b1-9d56-7cc5377022e5.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,b379fb50-70b2-48b1-9d56-7cc5377022e5.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=b379fb50-70b2-48b1-9d56-7cc5377022e5</wfw:commentRss>
      <slash:comments>6</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p>
If you are a developer and don't live in the Netherlands (where SOA stands, well
known, for "Sexueel Overdraagbare Aandoeningen" = "Sexually transmitted diseases”),
you may have heard by now that SOA stands for "service oriented architectures". 
</p>
          <p>
What's really interesting about talks and articles about SOA (including the ones that
I gave on this year's Microsoft Architect's Tour) tend to focus almost exclusively
on the glue between services and how the use of registries and dynamic binding,
message and service contract exchange and negotiation and use of standard protocols
and data exchange formats promises greater flexibility for enterprise architectures,
but little is said about the characteristics of the "services" themselves. 
</p>
          <p>
So, here's a bit of my current thinking around services; by now I think I could probably
fill a book on the topic and therefore a blog entry cannot come even close to give
the complete picture. Also, I don’t claim to say anything new here, but rather just
want to have it all once in one place on my blog. So here we go:
</p>
          <p style="TEXT-ALIGN: center" align="center">
***
</p>
          <p>
Very broadly speaking, a service is an autonomous unit that is responsible for a transformation,
storage and/or retrieval of data. Services never interact with other services by side-effect,
meaning there is no notion of inter-service (application) state that is not explicitly
exchanged through messages. Services are accessed through well-defined public access
points that are governed by contracts that tightly define the set of supported messages,
the message content and the applicable service policies. 
</p>
          <p>
To explain services and their motivation, I will first have to write about objects.
The basic idea of exclusive data ownership is not too dissimilar to the idealistic
view domain objects. There, you have an object “Customer 12345678 Peter Miller” and
that object has its own “save data” and “load data” capability. To activate (load)
an object from persistent storage, you go through some sort of factory that is getting
the object identity as an argument and from there, all you talk to is the object and
the object’s inner implementation worries about the details of storage all by itself.
</p>
          <p>
However, in contrast to the object notion of having data and code in one place and
at one location, services strictly separate between code and data. The customer record
mentioned above isn’t a uniquely identifiable in-memory and even not an addressable
on-disk entity that’s known throughout the system, but data simply flows through the
system and the same record may exist in multiple places at the same time. In a service
world, there are no objects, there is just data.
</p>
          <p>
The idea of “self-contained” domain objects, while thought to be an ideal modularization
model, indeed most often fails to provide modularity. A data record can be stored
to and retrieved from many different data sources within the same application out
of a variety of motivations. It may be stored in an offline “isolated storage” replica
on a mobile machine, inside a queue message that is processed only during an hourly
or daily batch run, in a SQL database, an in-memory caching structure and many more
places based on its character. The character of a data record includes, for instance,
how often and by how many concurrent activities it is likely to be changed and therefore
how safe it is to create read-only replicas of the record and how long these replicas
can be regarded as being valid and accurate or even just “good enough” to base further
processing on them. Likewise, a data record can be rendered for presentation to both
human and machine consumers is a vast variety of ways, ranging from an XML fragment
over HTML rendering to sophisticated 3D graphics visualizations. 
</p>
          <p>
Although the idea of object-centric storage, object self-responsibility and universal
object-identity is fantastically attractive, a single object implementation that attempts
to accommodate all these requirements simply results in a monolithic application block
that is anything but modular. Even when it comes to “business logic”, the implementation
of the rules that govern the contextual correctness and integrity of an object, putting
all rules that result from the requirements for an entire system into a single class
breaks the separation of subsystems. Creating a single “customer” object class for
a bank’s loan, investment and financial collections business is essentially impossible
because of conflicting rules and requirements and a different perception of “customer”
by these businesses. Still, it is standard procedure to have a central database with
data records that hold the customer information shared by these systems – and a service
that governs this data store. Not too rarely that service goes by the name “host communication”
and shifts data records on and off the mainframe via CICS transactions. 
</p>
          <p>
The consequence from this thinking about domain objects and generally about the notion
of object identity and self-responsibility (and I am sure that a lot of people will
disagree violently with me on that) is that there is not only no proper way of realizing
the dream of “true objects”, but there is indeed no way of defining any method for
a domain object in a way that it doesn’t result in a monolith spanning multiple concerns
having methods that are inappropriate or wrong to be used in certain contexts. 
</p>
          <p>
However, this statement explicitly excludes property access methods that enforce rules
like “value must be greater-equal to 0 and less-equal to 100”, because the value in
question may represent an expression in percent. Now, one could argue that the fact
that such property access methods are a clear example why domain objects do indeed
make sense, because these method implement fundamental business logic, but in my view
they don’t. The fact that property access methods enforcing such rules must exist,
simply fixes an inherent weakness in the type system of most mainstream programming
languages. The rule [0&lt;=x&lt;=100] is a property of the “percentage” data type,
but that doesn’t readily map into most languages. Hence, it’s the job of explicit
coding to fix that limitation and provide stronger types. The type description language
XML Schema (and siblings like Schematron and Relax NG) provides facilities to define
data types of the desired strength and infrastructures supporting these description
formats are capable of either enforcing these rules without specific coding or generating
the code required to enforce them. Property access methods are just a way to overcome
programming model limitations and enforcing contract, they are not an object feature
or business logic. At least I don’t see them that way.
</p>
          <p>
So, if you’re still reading after I’ve slaughtered the idea of “objects” for a modular,
layered and even distributed system, it’s not so far to go from here to the essence
of what a service is.
</p>
          <p>
To recap the initial statement, a service is an autonomous unit. The autonomous character
of a service results from the combination of exclusive responsibility for certain
operations on data and a strict definition of the message contracts for both the messages
it receives and the messages it is able to provide. 
</p>
          <p>
Exclusive responsibility means that there is exactly on service in a given system
that may perform a certain operation on data, for instance storing and retrieving
data into a certain set of tables on a certain database. Any other service that requires
access to this data must use the responsible service. This serves to guarantee that
only a single implementation of (for instance) data consistency rules exists, but
also helps to eliminate assumptions that hinder (again, for instance) scalability.
One of these problematic assumptions is that all records of a given type are co-located
in the same database or in the same location. That assumption is okay as long as you
don’t have to deal with a massive data volume or very high concurrency with very frequent
transactional writes. In these cases, it may be beneficial to break up the storage
into multiple tables or even across multiple databases, which may or may not be directly
supported by your database system. If it isn’t or doesn’t work with the desired flexibility,
it’s nearly impossible to introduce this scalability technique once everyone is permitted
to access backend storage directly. (To get an idea of this sort of parallelism and
partitioning, check out this PPT by <a href="http://research.microsoft.com/~gray/talks/UW Data Mine Parallel DB.ppt">Jim
Gray</a>). 
</p>
          <p>
Ruling out that state is implicitly shared between services (in memory or on disk)
is a direct consequence from this and also serves the scalability purpose, because
it further eliminates co-location assumptions about services and enables clustering.
Note that this isn’t about “stateless” or “stateful”. Everything is stateful while
it runs. 
</p>
          <p>
Strong contracts and operational guarantees further allow you to rely on (trust) the
service that it will be able to perform a given task without passing the caller an
error that it likely can’t handle, anyways. If the message contract and the description
of types are sufficiently precise, a service won’t ever and should never have to come
back to the caller with an “invalid argument” exception. If input is compliant with
a contract, it’s the receiving service’s own problem to deal with any issues it has
with the data, even if that involves manual resolution by an operator. The sender
(client) can’t and won’t have any additional information and implemented measures
to fix the input if the contract isn’t sufficiently expressing the constraints. Operational
guarantees like transactional processing and reliable transport make sure that the
data that is passed on to a service does not get lost on the way or gets lost when
a processing attempt is unsuccessfully. If a service (A) can trust that an invoked
service (B) will be able to handle a set of data contained in a message and can trust
that processing will occur without further intervention by (A), the processing can
occur asynchronously and the message sent from (A) to (B) can be queued and load balanced. 
</p>
          <p>
This is not only true for one-way storage operations, but also for requesting data.
If (A) can trust that service (B) will not simply fail a request operation and die,
but is able to recover from any problem (with a reasonable probability) it may run
into and send a response, and (A) passes (B) a reply-to entry point to drop the request
result into, (A) can safely trust to end or suspend processing until that reply arrives
or, if required, a timeout occurs. This type of asynchronous “call me back when you’re
ready” interaction between services is called “dialog” and much better suited for
fair load distribution in distributed systems than request/response. In essence, dialogs
turn the call trees resulting from request/response operations into a sequence of
one-way operations. [A further important aspect in this context is 2PC vs. compensating
transactions, but I won’t go into that here and now]
</p>
          <p>
Asynchronous and parallel operation is a key element of both scalable systems and
systems that operate well in the presence of substantial communication constraints
like network latency and the required processing introduced by strong security boundaries.
The vision of Web services as an integration tool of global scale exhibits these and
other constraints, making it necessary to enable asynchronous behavior and parallel
processing as a core principle of mainstream application design and don’t leave that
as a specialty to the high-performance and super-computing space.
</p>
          <p>
Summarizing, services and service oriented architectures are, in a sense, a return
to quite a few of the good old principles of structured programming and batch processing.
Data and code are kept separate in order to allow cross-organization, cross-platform
modularization, and asynchronous processing is better than synchronous processing
if you want your systems to scale. But service oriented architectures also mean that
we rely much more on the abstraction and tighter definition that data contracts provide
compared to what can be expressed in a programming model. Message contracts expressed
in a rich, cross-platform type description language such as XML Schema are much more
powerful and precise than any IDL file you could ever write and they are independent
of the implementation platform that’s chosen for a particular subsystem. Service policy
contracts provide a similar abstraction for the operational requirements and guarantees
that can be mandated or given in order to establish the required level of trust between
services independent of the platform they are implemented on.
</p>
          <p>
[For some answers to reader comments <a href="http://staff.newtelligence.net/clemensv/PermaLink.aspx?guid=6868ac5d-16cc-4863-bde4-11f663691c76">go
here</a>]
</p>
        </div>
        <img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=b379fb50-70b2-48b1-9d56-7cc5377022e5" />
      </body>
      <title>"Services" in SOA</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,b379fb50-70b2-48b1-9d56-7cc5377022e5.aspx</guid>
      <link>http://vasters.com/clemensv/2003/09/25/Services+In+SOA.aspx</link>
      <pubDate>Thu, 25 Sep 2003 15:27:17 GMT</pubDate>
      <description>&lt;div class=Section1&gt;
&lt;p&gt;
If you are a developer and don't live&amp;nbsp;in the Netherlands (where SOA stands,&amp;nbsp;well
known,&amp;nbsp;for "Sexueel Overdraagbare Aandoeningen" = "Sexually transmitted diseases”),
you may have heard by now that SOA stands for "service oriented architectures". 
&lt;/p&gt;
&lt;p&gt;
What's really interesting about talks and articles about SOA (including the ones that
I gave on this year's Microsoft Architect's Tour) tend to focus almost exclusively
on the glue between services and&amp;nbsp;how the use of registries and dynamic binding,
message and service contract exchange and negotiation and use of standard&amp;nbsp;protocols
and data exchange formats promises greater flexibility for enterprise architectures,
but little is said about&amp;nbsp;the characteristics of the "services" themselves. 
&lt;/p&gt;
&lt;p&gt;
So, here's a bit of my current thinking around services; by now I think I could probably
fill a book on the topic and therefore a blog entry cannot come even close to give
the complete picture. Also, I don’t claim to say anything new here, but rather just
want to have it all once in one place on my blog. So here we go:
&lt;/p&gt;
&lt;p style="TEXT-ALIGN: center" align=center&gt;
***
&lt;/p&gt;
&lt;p&gt;
Very broadly speaking, a service is an autonomous unit that is responsible for a transformation,
storage and/or retrieval of data. Services never interact with other services by side-effect,
meaning there is no notion of inter-service (application) state that is not explicitly
exchanged through messages. Services are accessed through well-defined public access
points that are governed by contracts that tightly define the set of supported messages,
the message content and the applicable service policies. 
&lt;/p&gt;
&lt;p&gt;
To explain services and their motivation, I will first have to write about objects.
The basic idea of exclusive data ownership is not too dissimilar to the idealistic
view domain objects. There, you have an object “Customer 12345678 Peter Miller” and
that object has its own “save data” and “load data” capability. To activate (load)
an object from persistent storage, you go through some sort of factory that is getting
the object identity as an argument and from there, all you talk to is the object and
the object’s inner implementation worries about the details of storage all by itself.
&lt;/p&gt;
&lt;p&gt;
However, in contrast to the object notion of having data and code in one place and
at one location, services strictly separate between code and data. The customer record
mentioned above isn’t a uniquely identifiable in-memory and even not an addressable
on-disk entity that’s known throughout the system, but data simply flows through the
system and the same record may exist in multiple places at the same time. In a service
world, there are no objects, there is just data.
&lt;/p&gt;
&lt;p&gt;
The idea of “self-contained” domain objects, while thought to be an ideal modularization
model, indeed most often fails to provide modularity. A data record can be stored
to and retrieved from many different data sources within the same application out
of a variety of motivations. It may be stored in an offline “isolated storage” replica
on a mobile machine, inside a queue message that is processed only during an hourly
or daily batch run, in a SQL database, an in-memory caching structure and many more
places based on its character. The character of a data record includes, for instance,
how often and by how many concurrent activities it is likely to be changed and therefore
how safe it is to create read-only replicas of the record and how long these replicas
can be regarded as being valid and accurate or even just “good enough” to base further
processing on them. Likewise, a data record can be rendered for presentation to both
human and machine consumers is a vast variety of ways, ranging from an XML fragment
over HTML rendering to sophisticated 3D graphics visualizations. 
&lt;/p&gt;
&lt;p&gt;
Although the idea of object-centric storage, object self-responsibility and universal
object-identity is fantastically attractive, a single object implementation that attempts
to accommodate all these requirements simply results in a monolithic application block
that is anything but modular. Even when it comes to “business logic”, the implementation
of the rules that govern the contextual correctness and integrity of an object, putting
all rules that result from the requirements for an entire system into a single class
breaks the separation of subsystems. Creating a single “customer” object class for
a bank’s loan, investment and financial collections business is essentially impossible
because of conflicting rules and requirements and a different perception of “customer”
by these businesses. Still, it is standard procedure to have a central database with
data records that hold the customer information shared by these systems – and a service
that governs this data store. Not too rarely that service goes by the name “host communication”
and shifts data records on and off the mainframe via CICS transactions. 
&lt;/p&gt;
&lt;p&gt;
The consequence from this thinking about domain objects and generally about the notion
of object identity and self-responsibility (and I am sure that a lot of people will
disagree violently with me on that) is that there is not only no proper way of realizing
the dream of “true objects”, but there is indeed no way of defining any method for
a domain object in a way that it doesn’t result in a monolith spanning multiple concerns
having methods that are inappropriate or wrong to be used in certain contexts. 
&lt;/p&gt;
&lt;p&gt;
However, this statement explicitly excludes property access methods that enforce rules
like “value must be greater-equal to 0 and less-equal to 100”, because the value in
question may represent an expression in percent. Now, one could argue that the fact
that such property access methods are a clear example why domain objects do indeed
make sense, because these method implement fundamental business logic, but in my view
they don’t. The fact that property access methods enforcing such rules must exist,
simply fixes an inherent weakness in the type system of most mainstream programming
languages. The rule [0&amp;lt;=x&amp;lt;=100] is a property of the “percentage” data type,
but that doesn’t readily map into most languages. Hence, it’s the job of explicit
coding to fix that limitation and provide stronger types. The type description language
XML Schema (and siblings like Schematron and Relax NG) provides facilities to define
data types of the desired strength and infrastructures supporting these description
formats are capable of either enforcing these rules without specific coding or generating
the code required to enforce them. Property access methods are just a way to overcome
programming model limitations and enforcing contract, they are not an object feature
or business logic. At least I don’t see them that way.
&lt;/p&gt;
&lt;p&gt;
So, if you’re still reading after I’ve slaughtered the idea of “objects” for a modular,
layered and even distributed system, it’s not so far to go from here to the essence
of what a service is.
&lt;/p&gt;
&lt;p&gt;
To recap the initial statement, a service is an autonomous unit. The autonomous character
of a service results from the combination of exclusive responsibility for certain
operations on data and a strict definition of the message contracts for both the messages
it receives and the messages it is able to provide. 
&lt;/p&gt;
&lt;p&gt;
Exclusive responsibility means that there is exactly on service in a given system
that may perform a certain operation on data, for instance storing and retrieving
data into a certain set of tables on a certain database. Any other service that requires
access to this data must use the responsible service. This serves to guarantee that
only a single implementation of (for instance) data consistency rules exists, but
also helps to eliminate assumptions that hinder (again, for instance) scalability.
One of these problematic assumptions is that all records of a given type are co-located
in the same database or in the same location. That assumption is okay as long as you
don’t have to deal with a massive data volume or very high concurrency with very frequent
transactional writes. In these cases, it may be beneficial to break up the storage
into multiple tables or even across multiple databases, which may or may not be directly
supported by your database system. If it isn’t or doesn’t work with the desired flexibility,
it’s nearly impossible to introduce this scalability technique once everyone is permitted
to access backend storage directly. (To get an idea of this sort of parallelism and
partitioning, check out this PPT by &lt;a href="http://research.microsoft.com/~gray/talks/UW Data Mine Parallel DB.ppt"&gt;Jim
Gray&lt;/a&gt;). 
&lt;/p&gt;
&lt;p&gt;
Ruling out that state is implicitly shared between services (in memory or on disk)
is a direct consequence from this and also serves the scalability purpose, because
it further eliminates co-location assumptions about services and enables clustering.
Note that this isn’t about “stateless” or “stateful”. Everything is stateful while
it runs. 
&lt;/p&gt;
&lt;p&gt;
Strong contracts and operational guarantees further allow you to rely on (trust) the
service that it will be able to perform a given task without passing the caller an
error that it likely can’t handle, anyways. If the message contract and the description
of types are sufficiently precise, a service won’t ever and should never have to come
back to the caller with an “invalid argument” exception. If input is compliant with
a contract, it’s the receiving service’s own problem to deal with any issues it has
with the data, even if that involves manual resolution by an operator. The sender
(client) can’t and won’t have any additional information and implemented measures
to fix the input if the contract isn’t sufficiently expressing the constraints. Operational
guarantees like transactional processing and reliable transport make sure that the
data that is passed on to a service does not get lost on the way or gets lost when
a processing attempt is unsuccessfully. If a service (A) can trust that an invoked
service (B) will be able to handle a set of data contained in a message and can trust
that processing will occur without further intervention by (A), the processing can
occur asynchronously and the message sent from (A) to (B) can be queued and load balanced. 
&lt;/p&gt;
&lt;p&gt;
This is not only true for one-way storage operations, but also for requesting data.
If (A) can trust that service (B) will not simply fail a request operation and die,
but is able to recover from any problem (with a reasonable probability) it may run
into and send a response, and (A) passes (B) a reply-to entry point to drop the request
result into, (A) can safely trust to end or suspend processing until that reply arrives
or, if required, a timeout occurs. This type of asynchronous “call me back when you’re
ready” interaction between services is called “dialog” and much better suited for
fair load distribution in distributed systems than request/response. In essence, dialogs
turn the call trees resulting from request/response operations into a sequence of
one-way operations. [A further important aspect in this context is 2PC vs. compensating
transactions, but I won’t go into that here and now]
&lt;/p&gt;
&lt;p&gt;
Asynchronous and parallel operation is a key element of both scalable systems and
systems that operate well in the presence of substantial communication constraints
like network latency and the required processing introduced by strong security boundaries.
The vision of Web services as an integration tool of global scale exhibits these and
other constraints, making it necessary to enable asynchronous behavior and parallel
processing as a core principle of mainstream application design and don’t leave that
as a specialty to the high-performance and super-computing space.
&lt;/p&gt;
&lt;p&gt;
Summarizing, services and service oriented architectures are, in a sense, a return
to quite a few of the good old principles of structured programming and batch processing.
Data and code are kept separate in order to allow cross-organization, cross-platform
modularization, and asynchronous processing is better than synchronous processing
if you want your systems to scale. But service oriented architectures also mean that
we rely much more on the abstraction and tighter definition that data contracts provide
compared to what can be expressed in a programming model. Message contracts expressed
in a rich, cross-platform type description language such as XML Schema are much more
powerful and precise than any IDL file you could ever write and they are independent
of the implementation platform that’s chosen for a particular subsystem. Service policy
contracts provide a similar abstraction for the operational requirements and guarantees
that can be mandated or given in order to establish the required level of trust between
services independent of the platform they are implemented on.
&lt;/p&gt;
&lt;p&gt;
[For some answers to reader comments &lt;a href="http://staff.newtelligence.net/clemensv/PermaLink.aspx?guid=6868ac5d-16cc-4863-bde4-11f663691c76"&gt;go
here&lt;/a&gt;]
&lt;/p&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=b379fb50-70b2-48b1-9d56-7cc5377022e5" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,b379fb50-70b2-48b1-9d56-7cc5377022e5.aspx</comments>
      <category>Architecture</category>
      <category>IT Strategy</category>
    </item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=ae21eb6d-63dd-44f2-b884-4e6f512c7374</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,ae21eb6d-63dd-44f2-b884-4e6f512c7374.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,ae21eb6d-63dd-44f2-b884-4e6f512c7374.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=ae21eb6d-63dd-44f2-b884-4e6f512c7374</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p>
Bob Cancilla’s CNet <a href="http://news.com.com/2010-7345-5079603.html">article</a> is
so full of FUD that I can’t help but making a few more comments and post a few
questions. Unfortunately, his email address isn’t mentioned near the article
… therefore I have to blog it. Mr. Cancilla, feel free to use the comments feature
here, if you find this…
</p>
          <p style="margin-left:36.0pt">
            <i>Unlike IBM, Microsoft falls short when it comes to helping customers use standards
in a productive, cost-effective way. […] Sure, both companies have worked closely
to develop and promote a sizable number of important industry standards that will
continue to have a big impact on the way business is conducted in the foreseeable
future. But cool specs are meaningless to the IT people who must actually assemble
all those standards into real business solutions. That's where the rubber meets the
road for Web services. Redmond's approach to Web services is a dead-end of closed,
Windows-only systems that lock customers into a single computing model. Customers
don't have the freedom to choose the best hardware or operating system. Where does
that leave the millions of users who rely on non-Microsoft platforms such as mainframes,
Unix or Linux? </i>
          </p>
          <p>
First of all, Mr. Cancilla, you haven’t understood Web Services, at all. Web
Services are about connecting systems, irrespective of operating system, application
platform or programming model. Redmond’s approach to web services is just like
IBM’s and BEA’s and Sun’s and Oracle’s approach to Web Services.
All of them think they have a superior application platform and their embrace of Web
Services serves to make that platform the hub of communication for their and all other
systems that are (for them: unfortunately) running on other platforms in the reality
of today’s heterogeneous IT landscape. It’s about opening services for
access by other platforms. I wish I would know how you get the idea that “lock-in”
and “Web Services” belong in the same sentence?
</p>
          <p>
Secondly, show me an environment that enables the average programmer to be more productive
and hence more cost effective when developing XML and Web Services solutions than
Microsoft’s Visual Studio .NET – to a degree that it backs up your “falls
short” claim. 
</p>
          <p>
Third, I wonder how someone who has dedicated his career to one of the most monopolistic,
locked-down and proprietary platforms in existence, that is IBM’s midrange and
mainframe platforms, feels qualified to discredit Microsoft for their platform strategy.
In fact, I can run Windows on pretty much any AMD and Intel-based server or desktop
from any vendor – how’s that with your AS/400 and mainframe apps?
</p>
          <p style="margin-left:36.0pt">
            <i>Ultimately, .Net defeats the purpose of open standards because Microsoft products
are open only as long as you develop applications on the Windows platform. To me,
this doesn't say open, it says welcome to yet another Microsoft environment that is
anything but open. </i>
          </p>
          <p>
Likewise, IBM’s full Web Services stack is only open as long as you write applications
for their WebSphere environment. WebSphere is IBM’s application server and Microsoft’s
application server is Windows Server 2003. Every vendor who makes money from software
tries to build a superior platform, resulting in features that aren’t covered
by standards and therefore cause vendor lock-in. That’s a direct result from
market economy. However, this still doesn’t have anything to do with Web Services,
because these are “on-the-wire” XML message exchange standards that primarily
exist for the purpose of cross-platform interaction.
</p>
          <p style="margin-left:36.0pt">
            <i>Proprietary environments deny businesses the flexibility to chose best-of-breed
solutions that are fine-tuned to their industry's unique environment.</i>
          </p>
          <p>
… like OS/400 and OS/390 ?
</p>
          <p style="margin-left:36.0pt">
            <i>Additionally, Microsoft's claim that .Net's Web services platform saves customers
money is misleading. Sure, the initial investment is enticing, but how much will it
cost when the hard work begins? A recent Gartner report said companies planning to
move their old programs to .Net can expect to pay 40 percent to 60 percent of the
cost of developing the programs in the first place. </i>
          </p>
          <p>
A recent discussion with my 9 year old niece has shown that moving “old programs”
from anywhere to anywhere isn’t free and that anyone who’d make that claim
shouldn’t be working in this industry. 
</p>
          <p style="margin-left:36.0pt">
            <i>Building your company's Web services platform on .Net is fine if you don't mind
throwing away decades of investment in existing applications. For instance, on any
given day, businesses use CICS systems to process about 30 billion transactions, to
the tune of $1 trillion. They can't afford to rip out that kind of processing power.
Instead, they're looking for ways to exploit it within other applications. But if
they were to buy into .Net, they'd better be prepared to stack it on the shelf because
Microsoft's Host Integration Server provides limited access to CICS on mainframes.</i>
          </p>
          <p>
Ok … here we have it. CICS is a lock-in, proprietary IBM product, right? So,
what’s better than Host Integration Server? I suspect it’s an IBM product,
correct? So if you were to replace that all so powerful IBM mainframe with any other
technology (including Linux), of course using a different approach to architecture
(which is entirely possible), how would you have not to throw away that investment? 
</p>
          <p>
What seems to be promoted here is “stay with IBM , use their stack”. I
have all respect for the power of the IBM mainframe platforms, but using “openness”
as an argument in this context and for the conclusions the author is making, is nothing
less than perverse.
</p>
        </div>
        <img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=ae21eb6d-63dd-44f2-b884-4e6f512c7374" />
      </body>
      <title>Firing salvos from the glass house (take 2)</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,ae21eb6d-63dd-44f2-b884-4e6f512c7374.aspx</guid>
      <link>http://vasters.com/clemensv/2003/09/23/Firing+Salvos+From+The+Glass+House+Take+2.aspx</link>
      <pubDate>Tue, 23 Sep 2003 09:13:52 GMT</pubDate>
      <description>

&lt;div class=Section1&gt;
&lt;p&gt;
Bob Cancilla&amp;#8217;s CNet &lt;a href="http://news.com.com/2010-7345-5079603.html"&gt;article&lt;/a&gt; is
so full of FUD that I can&amp;#8217;t help but making a few more comments and post a few
questions. Unfortunately, his email address isn&amp;#8217;t mentioned near the article
&amp;#8230; therefore I have to blog it. Mr. Cancilla, feel free to use the comments feature
here, if you find this&amp;#8230;
&lt;/p&gt;
&lt;p style='margin-left:36.0pt'&gt;
&lt;i&gt;Unlike IBM, Microsoft falls short when it comes to helping customers use standards
in a productive, cost-effective way. [&amp;#8230;] Sure, both companies have worked closely
to develop and promote a sizable number of important industry standards that will
continue to have a big impact on the way business is conducted in the foreseeable
future. But cool specs are meaningless to the IT people who must actually assemble
all those standards into real business solutions. That's where the rubber meets the
road for Web services. Redmond's approach to Web services is a dead-end of closed,
Windows-only systems that lock customers into a single computing model. Customers
don't have the freedom to choose the best hardware or operating system. Where does
that leave the millions of users who rely on non-Microsoft platforms such as mainframes,
Unix or Linux? &lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
First of all, Mr. Cancilla, you haven&amp;#8217;t understood Web Services, at all. Web
Services are about connecting systems, irrespective of operating system, application
platform or programming model. Redmond&amp;#8217;s approach to web services is just like
IBM&amp;#8217;s and BEA&amp;#8217;s and Sun&amp;#8217;s and Oracle&amp;#8217;s approach to Web Services.
All of them think they have a superior application platform and their embrace of Web
Services serves to make that platform the hub of communication for their and all other
systems that are (for them: unfortunately) running on other platforms in the reality
of today&amp;#8217;s heterogeneous IT landscape. It&amp;#8217;s about opening services for
access by other platforms. I wish I would know how you get the idea that &amp;#8220;lock-in&amp;#8221;
and &amp;#8220;Web Services&amp;#8221; belong in the same sentence?
&lt;/p&gt;
&lt;p&gt;
Secondly, show me an environment that enables the average programmer to be more productive
and hence more cost effective when developing XML and Web Services solutions than
Microsoft&amp;#8217;s Visual Studio .NET &amp;#8211; to a degree that it backs up your &amp;#8220;falls
short&amp;#8221; claim. 
&lt;/p&gt;
&lt;p&gt;
Third, I wonder how someone who has dedicated his career to one of the most monopolistic,
locked-down and proprietary platforms in existence, that is IBM&amp;#8217;s midrange and
mainframe platforms, feels qualified to discredit Microsoft for their platform strategy.
In fact, I can run Windows on pretty much any AMD and Intel-based server or desktop
from any vendor &amp;#8211; how&amp;#8217;s that with your AS/400 and mainframe apps?
&lt;/p&gt;
&lt;p style='margin-left:36.0pt'&gt;
&lt;i&gt;Ultimately, .Net defeats the purpose of open standards because Microsoft products
are open only as long as you develop applications on the Windows platform. To me,
this doesn't say open, it says welcome to yet another Microsoft environment that is
anything but open. &lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
Likewise, IBM&amp;#8217;s full Web Services stack is only open as long as you write applications
for their WebSphere environment. WebSphere is IBM&amp;#8217;s application server and Microsoft&amp;#8217;s
application server is Windows Server 2003. Every vendor who makes money from software
tries to build a superior platform, resulting in features that aren&amp;#8217;t covered
by standards and therefore cause vendor lock-in. That&amp;#8217;s a direct result from
market economy. However, this still doesn&amp;#8217;t have anything to do with Web Services,
because these are &amp;#8220;on-the-wire&amp;#8221; XML message exchange standards that primarily
exist for the purpose of cross-platform interaction.
&lt;/p&gt;
&lt;p style='margin-left:36.0pt'&gt;
&lt;i&gt;Proprietary environments deny businesses the flexibility to chose best-of-breed
solutions that are fine-tuned to their industry's unique environment.&lt;/i&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;#8230; like OS/400 and OS/390 ?
&lt;/p&gt;
&lt;p style='margin-left:36.0pt'&gt;
&lt;i&gt;Additionally, Microsoft's claim that .Net's Web services platform saves customers
money is misleading. Sure, the initial investment is enticing, but how much will it
cost when the hard work begins? A recent Gartner report said companies planning to
move their old programs to .Net can expect to pay 40 percent to 60 percent of the
cost of developing the programs in the first place. &lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
A recent discussion with my 9 year old niece has shown that moving &amp;#8220;old programs&amp;#8221;
from anywhere to anywhere isn&amp;#8217;t free and that anyone who&amp;#8217;d make that claim
shouldn&amp;#8217;t be working in this industry. 
&lt;/p&gt;
&lt;p style='margin-left:36.0pt'&gt;
&lt;i&gt;Building your company's Web services platform on .Net is fine if you don't mind
throwing away decades of investment in existing applications. For instance, on any
given day, businesses use CICS systems to process about 30 billion transactions, to
the tune of $1 trillion. They can't afford to rip out that kind of processing power.
Instead, they're looking for ways to exploit it within other applications. But if
they were to buy into .Net, they'd better be prepared to stack it on the shelf because
Microsoft's Host Integration Server provides limited access to CICS on mainframes.&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
Ok &amp;#8230; here we have it. CICS is a lock-in, proprietary IBM product, right? So,
what&amp;#8217;s better than Host Integration Server? I suspect it&amp;#8217;s an IBM product,
correct? So if you were to replace that all so powerful IBM mainframe with any other
technology (including Linux), of course using a different approach to architecture
(which is entirely possible), how would you have not to throw away that investment? 
&lt;/p&gt;
&lt;p&gt;
What seems to be promoted here is &amp;#8220;stay with IBM , use their stack&amp;#8221;. I
have all respect for the power of the IBM mainframe platforms, but using &amp;#8220;openness&amp;#8221;
as an argument in this context and for the conclusions the author is making, is nothing
less than perverse.
&lt;/p&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=ae21eb6d-63dd-44f2-b884-4e6f512c7374" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,ae21eb6d-63dd-44f2-b884-4e6f512c7374.aspx</comments>
      <category>IT Strategy</category>
    </item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=757d82a2-b735-42e5-bbe1-b2f8aab1c581</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,757d82a2-b735-42e5-bbe1-b2f8aab1c581.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,757d82a2-b735-42e5-bbe1-b2f8aab1c581.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=757d82a2-b735-42e5-bbe1-b2f8aab1c581</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p>
            <span lang="DE">
              <a href="http://www.infoworld.com/article/03/08/05/HNscolicense 1.html">
                <span lang="EN-US">According
to InfoWorld</span>
              </a>
            </span>, SCO wants to have $699 per processor from everyone
who runs Linux on a server, as an “introductory” offer and will ask $1399
after Oct 15 for a single-processor license. 
</p>
          <p>
That’s pretty stunning. Even if SCO were right with their allegations that there
is SCO-owned IP in Linux (and I am not in the position to make any statement about
the rightfulness of that claim), $699 per processor is still well above and beyond
what would be their fair share – that pricing scheme looks more like “this
is our OS, including everything that ships with it” and that seems just plainly
wrong. 
</p>
          <p>
This reminds me of a similar high-profile case: the Unisys GIF license. They hold/held
the LZW patent and that’s used in GIF. Of course, lots of developers found out
after they’ve implemented and shipped GIF support and Unisys probably waited
for a critical mass to accumulate before they started enforcing licensing fees for
that patent in early 1995. (Side note from the <a href="http://www.unisys.com/about  unisys/lzw/">Unisys
site</a>: <i>The U.S. LZW patent expires June 20, 2003, the counterpart Canadian patent
expires July 7, 2004, the counterpart patents in the United Kingdom, France, Germany
and Italy expire June 18, 2004, and the Japanese counterpart patents expire June 20,
2004.</i>). While Unisys certainly didn’t make too many friends with that move,
they were initially asking something like ten cents to at most ten dollars per distributed
copy of any software package using the GIF format, if I remember right (the pricing
information seems to have vanished). I would think that looking at the SCO case, this
all of a sudden becomes very fair and reasonable.
</p>
          <p>
[Still, the web-site fee of $5000 per site if you were/are using unlicensed (as in:
Unisys’ LZW patent licensing) software to create your GIFs, remains outrageous]
</p>
        </div>
        <img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=757d82a2-b735-42e5-bbe1-b2f8aab1c581" />
      </body>
      <title>$699 per processor.</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,757d82a2-b735-42e5-bbe1-b2f8aab1c581.aspx</guid>
      <link>http://vasters.com/clemensv/2003/08/06/699+Per+Processor.aspx</link>
      <pubDate>Wed, 06 Aug 2003 09:05:18 GMT</pubDate>
      <description>

&lt;div class=Section1&gt;
&lt;p&gt;
&lt;span lang=DE&gt;&lt;a href="http://www.infoworld.com/article/03/08/05/HNscolicense 1.html"&gt;&lt;span lang=EN-US&gt;According
to InfoWorld&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;, SCO wants to have $699 per processor from everyone
who runs Linux on a server, as an &amp;#8220;introductory&amp;#8221; offer and will ask $1399
after Oct 15 for a single-processor license. 
&lt;/p&gt;
&lt;p&gt;
That&amp;#8217;s pretty stunning. Even if SCO were right with their allegations that there
is SCO-owned IP in Linux (and I am not in the position to make any statement about
the rightfulness of that claim), $699 per processor is still well above and beyond
what would be their fair share &amp;#8211; that pricing scheme looks more like &amp;#8220;this
is our OS, including everything that ships with it&amp;#8221; and that seems just plainly
wrong. 
&lt;/p&gt;
&lt;p&gt;
This reminds me of a similar high-profile case: the Unisys GIF license. They hold/held
the LZW patent and that&amp;#8217;s used in GIF. Of course, lots of developers found out
after they&amp;#8217;ve implemented and shipped GIF support and Unisys probably waited
for a critical mass to accumulate before they started enforcing licensing fees for
that patent in early 1995. (Side note from the &lt;a href="http://www.unisys.com/about  unisys/lzw/"&gt;Unisys
site&lt;/a&gt;: &lt;i&gt;The U.S. LZW patent expires June 20, 2003, the counterpart Canadian patent
expires July 7, 2004, the counterpart patents in the United Kingdom, France, Germany
and Italy expire June 18, 2004, and the Japanese counterpart patents expire June 20,
2004.&lt;/i&gt;). While Unisys certainly didn&amp;#8217;t make too many friends with that move,
they were initially asking something like ten cents to at most ten dollars per distributed
copy of any software package using the GIF format, if I remember right (the pricing
information seems to have vanished). I would think that looking at the SCO case, this
all of a sudden becomes very fair and reasonable.
&lt;/p&gt;
&lt;p&gt;
[Still, the web-site fee of $5000 per site if you were/are using unlicensed (as in:
Unisys&amp;#8217; LZW patent licensing) software to create your GIFs, remains outrageous]
&lt;/p&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=757d82a2-b735-42e5-bbe1-b2f8aab1c581" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,757d82a2-b735-42e5-bbe1-b2f8aab1c581.aspx</comments>
      <category>IT Strategy</category>
    </item>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=996f2a9a-8225-43d0-aa69-4382fbc9fb81</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,996f2a9a-8225-43d0-aa69-4382fbc9fb81.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,996f2a9a-8225-43d0-aa69-4382fbc9fb81.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=996f2a9a-8225-43d0-aa69-4382fbc9fb81</wfw:commentRss>
      <slash:comments>8</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p dir="ltr">
          <span>
            <strong>Munich and Linux</strong>
          </span>
        </p>
        <p dir="ltr">
          <span>My "3 TechEds this year" drinking and partying buddy Stephen Forte <a href="http://radio.weblogs.com/0125758/2003/07/21.html#a62">says</a>:</span>
        </p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
            <span>
              <span>
                <strong>
                  <em>Ich Bein Ein Aushlander</em>
                </strong>
              </span>
            </span> 
</p>
          <p>
            <span>
              <em>I love the city of Munich (Sorry </em>
              <a href="http://staff.newtelligence.net/clemensv">
                <em>Clemens</em>
              </a>
              <em>,
I know you don’t like that part of Germany). I go there usually twice a year. My good
friend </em>
              <a href="http://www.nicolebator.com/">
                <em>Nicole</em>
              </a>
              <em> and her
awesome hubby </em>
              <a href="http://www.ciao.co.uk/">
                <em>Chris</em>
              </a>
              <em> live there.
Being the History Major, etc I love the history all over Munich, even though
it is bad history since the Hofbrahaus was the scene of one of the most important
events leading up to Nazism and World War II. </em>
            </span>
          </p>
          <p>
            <span>
              <em>I love the </em>
              <a href="http://planundspar.bahn.de/bin/query.exe/en?ld=43&amp;newrequest=yes&amp;">
                <em>UBhan
and SBhan</em>
              </a>
              <em>. I love the </em>
              <a href="http://www.maddogsbreakfast.com.au/mdb/gui/art/art1c.shtml">
                <em>surfer
chicks</em>
              </a>
              <em> (I can't resist them!!). I love the proximity to the Alps.
Five hours by train to Venice. I love the 1/2 beer 1/2 <span>Lemonade </span>drink
in the beer garden. Ok, I will stop now on how cool it is there. </em>
            </span>
          </p>
        </blockquote>
        <p dir="ltr">
          <span>First of all, it's not that I don't like that part of Germany. I just like it
much more up here <a href="http://www.duesseldorf-today.rp-online.de/cityguide/stadtrundgang/index_english.shtml">in
and around Düsseldorf</a>. <a href="http://www.uerige.de/">We've</a><a href="http://www.hausbrauerei-zum-schluessel.de/index_2.htm#">got</a><a href="http://www.fuechschen.de/">awesome</a> microbrews
(and we mix with Coke and call it "Krefelder"), the <a href="http://www.ruhr-online.de/">Rhein-Ruhr</a><a href="http://www.stadtplan.net/index.asp?direct=brd/nrw/ruhrgebiet/home.html">metropolitan
area</a> with some 10 million people gives you always something to do, <a href="http://www.wdr.de/themen/homepages/karneval_2003.jhtml">we
really know how to party</a>, we've got plenty of <a href="http://staff.newtelligence.net/clemensv/www.vrr.de">U-
and S-Bahn</a> too, it's a 1 hour flight to virtually anywhere in west-central
Europe, Amsterdam, Brussels, Luxemburg, Frankfurt are less than 2 hours
away to drive and you can get to Hamburg in 4 and Paris in 5 hours. ... Ok I
will stop now on cool it is here. ;) </span>
        </p>
        <p dir="ltr">
          <span>Anyways, Stephen <a href="http://radio.weblogs.com/0125758/2003/07/21.html#a62">thinks</a> Munich
made a bad call by choosing Linux. I think that if they really intend to
use VMWare to run their "Windows legacy" they're in multi-trouble. </span>
        </p>
        <p dir="ltr">
          <span>My understanding is that they felt they were forced to make a choice because
NT 4.0 support runs out. So now they're going to run the unsupported NT 4.0 inside
VMWare (which does require a license) on top of an IBM/Suse supported Linux? Also, </span>
          <span>how is
it that Linux runs at 30 million Euros (by current estimate) for migration
while Windows licensing and support would have been around 27 million before some
considerable discounts that MS was willing to give? So here we have IBM and Suse raking
in the money for a development and support contract in which existing in-production software
is likely going to be entirely rewritten just because it needs to run on a different
OS because of "strategy" (which, to me, is complete idiocy) and for support contracts
that seem to be, looking at the big numbers, way above and beyond what Microsoft
is asking (because IBM and Suse outsource quite a bit of the software development
to the community "for free" and look better on the cost side for "licenses"). </span>
        </p>
        <p dir="ltr">
          <span>My experience tells me that that sort of "we force an OS down your throat" strategy
fails in any larger company after only a short while and it will fail in government
as well. If a departments finds a good software solution for their needs that fulfills
most of their business requirements for a fair price, the wallet always wins, and
should win, over the geeks in the end. At the end of the day, an OS is what it
is: just an operating system. If you have a solution that does what you need for you
business you just shouldn't care too much about the OS. If a department uses
a "non-strategic" platform and your data-center refuses to give them support,
the IT people not doing their job. The business folks make the money
for IT to be get their salaries paid. What "strategy" results in way too often
is a more horrible and less coordinated zoo of heterogeneous systems than if there
were no set strategy, at all. I know of (multiple) banks where mission critical servers
run under someone's office desk, because they happen to run the wrong database package
or a non-strategic OS and therefore the data-center rejects taking them. Maximum
stupidity with a great excuse ("strategy!"). </span>
        </p>
        <p dir="ltr">
          <span>On the other side of the fence, if your role is building solutions you
should look for the OS and development platform that gives you maximum productivity
for writing apps in order to deliver in time and in budget. Being religious
about these things is stupid. I know Windows much better than Linux and therefore
I am by several magnitudes quicker writing apps on Windows. <em>"You gravitate to
what you know" </em>and there's nothing wrong about that.</span>
        </p>
        <p dir="ltr">
          <span>To me, the Munich &amp; Linux story this isn't a win for Linux in the first
place. To me that's a clever IBM coup around "strategy" resulting in way too
much German taxpayer money (and 30 million won't do it) being thrown at the
biggest computer company (US-based) in the world instead of the biggest software company
(US-based) in the world.  How exactly does that amount to a great win in terms
of German taxpayer ROI or freedom?</span>
        </p>
        <p dir="ltr">
          <span>Also, as far as "taxpayer ROI" goes, it should be considered that most German
software companies with a working business model (means: make money by having actual
customers) aren't into open source. And my best guess is that there
is no "yet" there.</span>
        </p>
        <img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=996f2a9a-8225-43d0-aa69-4382fbc9fb81" />
      </body>
      <title>Munich and Linux</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,996f2a9a-8225-43d0-aa69-4382fbc9fb81.aspx</guid>
      <link>http://vasters.com/clemensv/2003/07/21/Munich+And+Linux.aspx</link>
      <pubDate>Mon, 21 Jul 2003 16:02:46 GMT</pubDate>
      <description>&lt;p dir=ltr&gt;
&lt;span&gt;&lt;strong&gt;Munich and Linux&lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p dir=ltr&gt;
&lt;span&gt;My "3 TechEds this year"&amp;nbsp;drinking and partying buddy Stephen Forte &lt;a href="http://radio.weblogs.com/0125758/2003/07/21.html#a62"&gt;says&lt;/a&gt;:&lt;/span&gt;
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
&lt;span&gt;&lt;span&gt;&lt;strong&gt;&lt;em&gt;Ich Bein Ein Aushlander&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;&lt;em&gt;I love the city of Munich (Sorry &lt;/em&gt;&lt;a href="http://staff.newtelligence.net/clemensv"&gt;&lt;em&gt;Clemens&lt;/em&gt;&lt;/a&gt;&lt;em&gt;,
I know you don’t like that part of Germany). I go there usually twice a year. My good
friend &lt;/em&gt;&lt;a href="http://www.nicolebator.com/"&gt;&lt;em&gt;Nicole&lt;/em&gt;&lt;/a&gt;&lt;em&gt; and her
awesome hubby &lt;/em&gt;&lt;a href="http://www.ciao.co.uk/"&gt;&lt;em&gt;Chris&lt;/em&gt;&lt;/a&gt;&lt;em&gt; live there.
Being the History Major, etc&amp;nbsp;I love the history all over Munich, even though
it is bad history since the Hofbrahaus was the scene of one of the most important
events leading up to Nazism and World War II. &lt;/em&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;&lt;em&gt;I love the &lt;/em&gt;&lt;a href="http://planundspar.bahn.de/bin/query.exe/en?ld=43&amp;amp;newrequest=yes&amp;amp;"&gt;&lt;em&gt;UBhan
and SBhan&lt;/em&gt;&lt;/a&gt;&lt;em&gt;. I love the &lt;/em&gt;&lt;a href="http://www.maddogsbreakfast.com.au/mdb/gui/art/art1c.shtml"&gt;&lt;em&gt;surfer
chicks&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&amp;nbsp;(I can't resist them!!). I love the proximity to the Alps.
Five hours by train to Venice. I love the 1/2 beer 1/2 &lt;span&gt;Lemonade &lt;/span&gt;drink
in the beer garden. Ok, I will stop now on how cool it is there. &lt;/em&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
&lt;span&gt;First of all, it's not that I don't like that part of Germany. I just like it
much more up here &lt;a href="http://www.duesseldorf-today.rp-online.de/cityguide/stadtrundgang/index_english.shtml"&gt;in
and around Düsseldorf&lt;/a&gt;. &lt;a href="http://www.uerige.de/"&gt;We've&lt;/a&gt; &lt;a href="http://www.hausbrauerei-zum-schluessel.de/index_2.htm#"&gt;got&lt;/a&gt; &lt;a href="http://www.fuechschen.de/"&gt;awesome&lt;/a&gt;&amp;nbsp;microbrews
(and we mix with Coke and call it "Krefelder"), the &lt;a href="http://www.ruhr-online.de/"&gt;Rhein-Ruhr&lt;/a&gt; &lt;a href="http://www.stadtplan.net/index.asp?direct=brd/nrw/ruhrgebiet/home.html"&gt;metropolitan
area&lt;/a&gt; with some 10 million people&amp;nbsp;gives you always something to do, &lt;a href="http://www.wdr.de/themen/homepages/karneval_2003.jhtml"&gt;we
really know how to party&lt;/a&gt;, we've got plenty of &lt;a href="http://staff.newtelligence.net/clemensv/www.vrr.de"&gt;U-
and S-Bahn&lt;/a&gt; too, it's&amp;nbsp;a 1 hour flight to virtually anywhere in west-central
Europe,&amp;nbsp;Amsterdam, Brussels, Luxemburg, Frankfurt&amp;nbsp;are less than&amp;nbsp;2 hours
away to drive and you can get to Hamburg in 4 and Paris in 5 hours.&amp;nbsp;... Ok I
will stop now on cool it is here. ;)&amp;nbsp;&lt;/span&gt;
&lt;/p&gt;
&lt;p dir=ltr&gt;
&lt;span&gt;Anyways, Stephen &lt;a href="http://radio.weblogs.com/0125758/2003/07/21.html#a62"&gt;thinks&lt;/a&gt; Munich
made a&amp;nbsp;bad call by choosing Linux. I think that if they really&amp;nbsp;intend to
use VMWare to run their "Windows legacy" they're in&amp;nbsp;multi-trouble. &lt;/span&gt;
&lt;/p&gt;
&lt;p dir=ltr&gt;
&lt;span&gt;My understanding is that they felt they were forced to make a choice because
NT 4.0 support runs out. So now they're going to run the unsupported NT 4.0 inside
VMWare (which does require a license) on top of an IBM/Suse supported Linux?&amp;nbsp;Also, &lt;/span&gt;&lt;span&gt;how&amp;nbsp;is
it&amp;nbsp;that Linux runs at 30 million&amp;nbsp;Euros&amp;nbsp;(by current estimate) for migration
while Windows licensing and support would have been around 27 million before some
considerable discounts that MS was willing to give? So here we have IBM and Suse raking
in the money for a development and support contract&amp;nbsp;in which existing in-production&amp;nbsp;software
is likely going to be entirely rewritten just because it needs to run on a different
OS because of "strategy" (which, to me,&amp;nbsp;is complete idiocy) and for support contracts
that seem to be, looking at the big numbers,&amp;nbsp;way above and beyond what Microsoft
is asking (because IBM and Suse outsource quite a bit of the software development
to the community "for free" and look better on the cost side for "licenses"). &lt;/span&gt;
&lt;/p&gt;
&lt;p dir=ltr&gt;
&lt;span&gt;My experience tells me that that sort of "we force an OS down your throat" strategy
fails in any larger company after only a short while and it will fail in government
as well. If a departments finds a good software solution for their needs that fulfills
most of their business requirements for a fair price, the wallet always wins, and
should win,&amp;nbsp;over the geeks in the end. At the end of the day, an OS is what it
is: just an operating system. If you have a solution that does what you need for you
business you&amp;nbsp;just shouldn't&amp;nbsp;care too much about the OS. If&amp;nbsp;a department&amp;nbsp;uses
a "non-strategic" platform and&amp;nbsp;your data-center refuses to give&amp;nbsp;them support,
the IT people&amp;nbsp;not doing their job.&amp;nbsp;The business folks&amp;nbsp;make the money
for&amp;nbsp;IT to be get their salaries paid. What "strategy" results in way too often
is a more horrible and less coordinated zoo of heterogeneous systems than if there
were no set strategy, at all. I know of (multiple) banks where mission critical servers
run under someone's office desk, because they happen to run the wrong database package
or a non-strategic OS and therefore the data-center rejects taking them.&amp;nbsp;Maximum
stupidity with a great excuse ("strategy!").&amp;nbsp;&lt;/span&gt;
&lt;/p&gt;
&lt;p dir=ltr&gt;
&lt;span&gt;On the other side of the fence, if your role is&amp;nbsp;building solutions you
should look for the OS and development platform that gives you maximum productivity
for writing apps&amp;nbsp;in order to&amp;nbsp;deliver in time and in budget. Being religious
about these things is stupid. I know Windows much better than Linux and therefore
I am by several magnitudes quicker writing apps on Windows. &lt;em&gt;"You gravitate to
what you know" &lt;/em&gt;and there's nothing wrong about that.&lt;/span&gt;
&lt;/p&gt;
&lt;p dir=ltr&gt;
&lt;span&gt;To me, the Munich &amp;amp; Linux story&amp;nbsp;this isn't a win for Linux in the first
place. To me that's a clever IBM coup around "strategy" resulting in&amp;nbsp;way too
much&amp;nbsp;German taxpayer money (and 30 million won't do it) being thrown at&amp;nbsp;the
biggest computer company (US-based) in the world instead of the biggest software company
(US-based) in the world. &amp;nbsp;How exactly does that amount to a great win in terms
of German taxpayer ROI or freedom?&lt;/span&gt;
&lt;/p&gt;
&lt;p dir=ltr&gt;
&lt;span&gt;Also, as far as "taxpayer ROI" goes, it should be considered that most German
software companies with a working business model (means: make money&amp;nbsp;by having&amp;nbsp;actual
customers)&amp;nbsp;aren't into&amp;nbsp;open source.&amp;nbsp;And my best guess is that there
is no "yet" there.&lt;/span&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=996f2a9a-8225-43d0-aa69-4382fbc9fb81" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,996f2a9a-8225-43d0-aa69-4382fbc9fb81.aspx</comments>
      <category>IT Strategy</category>
    </item>
  </channel>
</rss>