<?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:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" version="2.0">
  <channel>
    <title>Softwaremaker - Software Architectures</title>
    <link>http://www.softwaremaker.net/blog/</link>
    <description>&lt;Challenging Conventions /&gt;</description>
    <language>en-us</language>
    <copyright>William T</copyright>
    <lastBuildDate>Mon, 11 Sep 2006 09:15:18 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>itnews@softwaremaker.net</managingEditor>
    <webMaster>itnews@softwaremaker.net</webMaster>
    <item>
      <trackback:ping>http://www.softwaremaker.net/blog/Trackback.aspx?guid=8e16025f-a810-4635-966c-e7fe0571d3d1</trackback:ping>
      <pingback:server>http://www.softwaremaker.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.softwaremaker.net/blog/PermaLink,guid,8e16025f-a810-4635-966c-e7fe0571d3d1.aspx</pingback:target>
      <dc:creator>William Tay</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img height="96" alt="EACheader.gif" src="http://www.softwaremaker.net/blog/content/binary/EACheader.gif" width="720" border="0" />
        </p>
        <p>
I will be speaking in The <a href="http://www.flip-side.biz/eEAC06flyer.htm" target="_blank">Enterprise
Architecture Conference 2006</a> to be held in Singapore on 25-28 September
2006.
</p>
        <p>
And no - for once, I wont be speaking on Web Services or anything Service-Oriented.
Instead, I will tackle head-on a topic that not many people would not like to
go near: <strong>Enterprise Architecture Security</strong></p>
        <p>
I will be speaking on the second day (27 Sept 2006: 1430-1530) and quite a few
of my governmental clients will be there as well in the audience.
</p>
        <p>
The title is: <strong><u>Security Planning and Strategies In An Enterprise Architecture.</u></strong> The
agenda is as follows:
</p>
        <ul>
          <li>
Outline of the key Enterprise-based security issues and counter-measures, that is
technology-agnostic 
</li>
          <li>
An examination of general security threats and how to plan and implement security
policies and controls for often-performed computer security activities 
</li>
          <li>
Key best practices in terms of security that can be applied to practical real-life
scenarios and implemented solutions such as IP and Data security 
</li>
          <li>
Auditing and monitoring of systems within an Enterprise 
</li>
        </ul>
        <p>
If you are in need to spend SGD2,000 <img src="http://www.softwaremaker.net/pictures/swmemoticons/wink.gif" />,
I hope to see you there.
</p>
        <p>
          <img title="Enterprise Architecture Conference 2006 Singapore Flyer" height="1261" alt="EACFlyerjpeg.gif" src="http://www.softwaremaker.net/blog/content/binary/EACFlyerjpeg.gif" width="659" border="0" />
        </p>
        <img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=8e16025f-a810-4635-966c-e7fe0571d3d1" />
        <br />
        <hr />
© William Tay 2012 | Swinging Technologist 
<br /><a href="http://www.softwaremaker.net/blog">http://www.softwaremaker.net/blog</a></body>
      <title>Speaking in the Enterprise Architecture Conference 2006 in Singapore</title>
      <guid isPermaLink="false">http://www.softwaremaker.net/blog/PermaLink,guid,8e16025f-a810-4635-966c-e7fe0571d3d1.aspx</guid>
      <link>http://www.softwaremaker.net/blog/SpeakingInTheEnterpriseArchitectureConference2006InSingapore.aspx</link>
      <pubDate>Mon, 11 Sep 2006 09:15:18 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img height=96 alt=EACheader.gif src="http://www.softwaremaker.net/blog/content/binary/EACheader.gif" width=720 border=0&gt;
&lt;/p&gt;
&lt;p&gt;
I will be speaking in The &lt;a href="http://www.flip-side.biz/eEAC06flyer.htm" target=_blank&gt;Enterprise
Architecture Conference 2006&lt;/a&gt;&amp;nbsp;to be held in Singapore on 25-28&amp;nbsp;September
2006.
&lt;/p&gt;
&lt;p&gt;
And no - for once, I wont be speaking on Web Services or anything Service-Oriented.
Instead, I will tackle head-on a topic&amp;nbsp;that not many people would not like to
go near: &lt;strong&gt;Enterprise Architecture Security&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I will be speaking on the second day (27&amp;nbsp;Sept 2006: 1430-1530) and quite a few
of my governmental clients will be there as well in the audience.
&lt;/p&gt;
&lt;p&gt;
The title is: &lt;strong&gt;&lt;u&gt;Security Planning and Strategies In An Enterprise Architecture.&lt;/u&gt;&lt;/strong&gt; The
agenda is as follows:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Outline of the key Enterprise-based security issues and counter-measures, that is
technology-agnostic 
&lt;li&gt;
An examination of general security threats and how to plan and implement security
policies and controls for often-performed computer security activities 
&lt;li&gt;
Key best practices in terms of security that can be applied to practical real-life
scenarios and implemented solutions such as IP and Data security 
&lt;li&gt;
Auditing and monitoring of systems within an Enterprise 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
If you are in need to spend SGD2,000 &lt;img src="http://www.softwaremaker.net/pictures/swmemoticons/wink.gif"&gt;,
I hope to see you there.
&lt;/p&gt;
&lt;p&gt;
&lt;img title="Enterprise Architecture Conference 2006 Singapore Flyer" height=1261 alt=EACFlyerjpeg.gif src="http://www.softwaremaker.net/blog/content/binary/EACFlyerjpeg.gif" width=659 border=0&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=8e16025f-a810-4635-966c-e7fe0571d3d1" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
© William Tay 2012 | Swinging Technologist 
&lt;br /&gt;
&lt;a href="http://www.softwaremaker.net/blog"&gt;http://www.softwaremaker.net/blog&lt;/a&gt;</description>
      <category>Biz Matters;Presentations;Software Architectures</category>
    </item>
    <item>
      <trackback:ping>http://www.softwaremaker.net/blog/Trackback.aspx?guid=5c12a359-fd01-4615-834b-4b117245b0c4</trackback:ping>
      <pingback:server>http://www.softwaremaker.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.softwaremaker.net/blog/PermaLink,guid,5c12a359-fd01-4615-834b-4b117245b0c4.aspx</pingback:target>
      <dc:creator>William Tay</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
One of the topics presented during the Architecture Track in the just-concluded <a href="http://www.microsoft.com/malaysia/techedsea2006/" target="_blank">Microsoft
TechED South East Asia 2006</a> was done by <a href="http://www.iasarchitects.org/" target="_blank">IASA</a>.
</p>
        <p>
It was done via a very interactive session with the floor questioning the panel from
the <a href="http://malaysia.iasahome.org/iasaweb/appmanager/home/chapterdetail" target="_blank">IASA
Malaysian chapter</a> about the value of being an architect and topics of the like.
</p>
        <p>
One of the questions from the floor was: "<strong><em>Do you believe that architects
should be writing code ?</em></strong>"
</p>
        <p>
It seems that 3/4 of the panel members agree. Some even going on bragging that he
is still doing it in assembly, C++ language. hmmm ... In the interest of keeping the
session on time so that that the attendees can get home on time amidst the KL
jams - I kept my mouth shut.
</p>
        <p>
Let me open them now.
</p>
        <p>
Architects <strong><em>shouldnt</em></strong> code. Period. My thoughts. Period. To
prevent myself from rambling, which is what I always do when I have a strong opinion
on something, let me list them in point forms.
</p>
        <p>
The term "architect" is a very <a href="http://wordnet.princeton.edu/perl/webwn?o2=&amp;o0=1&amp;o7=&amp;o5=&amp;o1=1&amp;o6=&amp;o4=&amp;o3=&amp;s=unfixed" target="_blank">nebulous</a> term.
The hype around it with all the wannabees printing it in bold font on their cards
out there (<em>I know a couple of them in Singapore who does them with no shame</em>),
who have no idea what is the difference between horizontal and vertical scaling, doesnt
make it any better. For better or worse, I only believe in one type - and that is
the all-emcompassing solution architect.
</p>
        <p>
Afterall, aint what all customers want is a solution ? Do you think they really care
what is underneath the solution more than that this solution works well, is kept within
their budget, perform effectively and efficiently within the constraints of their
environment ? Therefore, in this context, I will speak in the context of <strong>Solution
Architects</strong>.
</p>
        <ul>
          <li>
To those ppl who said that "<a href="http://c2.com/cgi/wiki?ArchitectsDontCode" target="_blank"><em>How
can someone who never writes a line of code be responsible for how that code will
be written?</em></a>", again, I am talking about a solution architect. In any case,
an architect can code, sing, dance <strong><em>before</em></strong>, for all I care.
They shouldnt be doing it in their role as solution architects <strong>now</strong>.
Read on.</li>
        </ul>
        <p>
 
</p>
        <ul>
          <li>
In the past, code influenced architecture. The limitations of <strong><em>written-code</em></strong> in
a <strong><em>chosen-platform</em></strong> in a <strong><em>defined-era</em></strong> is
the damning evidence of the limitation of the architecture. <a href="http://www.zetnet.co.uk/rad/tutvb3.html" target="_blank">VB3</a> anyone
?</li>
        </ul>
        <p>
 
</p>
        <ul>
          <li>
Biasedness based on preference. A solution architect that has a decade long experience
in writing code is usually one that doesnt see the other side of the fence, doesnt
know that there are better solutions and worst - refuse to want to see it. Most of
the people in this category are usually skilled in one platform over the other and
it is very hard for people like that to sit down and analyze a problem without
a pre-conceived notion in mind in a very neutral manner. Because of this, the likely
solution they are going to propose will have the same limitations of the platform
they have been so comfortable with. I dont question the depth. Where is the breadth
? These guys should remain what they are good in and be experts in their domains and
probably be paid better than a solution architect. For those who argue that they are
equally well-versed in both sides of the fence - Good for you. Stay there. It is very
likely you are drawing a lot more than an architect. If you are not, you just need
to sell yourself better.</li>
        </ul>
        <p>
 
</p>
        <ul>
          <li>
It is all about the business. Solution Architects bridge the gap between (the
returns of) the business with the (returns of) technology. So, yes, they should be
just as apt with the Finanical Calculator as much as an Integrated Development Environment
or a Installation Panel or Console. They understand the entire depreciation cycle
of an enterprise solution much better than the differences between a thread and
a process. So yes, the higher the level the language they <strong><em>used to</em></strong> code
in (I am talking about <a href="http://www.everything2.com/index.pl?node_id=1250992" target="_blank">4GL</a>),
the better. Bragging how much you <strong><em>still</em></strong> do your work today
in <a href="http://www.webopedia.com/TERM/M/machine_language.html" target="_blank">First</a> or <a href="http://www.webopedia.com/TERM/A/assembly_language.html" target="_blank">Second</a> Level
Programming Lanaguages doesnt do you any good. In fact, it makes you look bad. It
shows the lack of touch you have with your business, how it is run, what are
the constraints and the entire business and revenue model. Writing performance drivers,
assemblers, kernels, runtimes has nothing to do with a company's business
model in a world where <a href="http://en.wikipedia.org/wiki/Moore's_law" target="_blank">Moore's
Law</a> still rules.</li>
        </ul>
        <p>
It is all about the business, still.
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=5c12a359-fd01-4615-834b-4b117245b0c4" />
        <br />
        <hr />
© William Tay 2012 | Swinging Technologist 
<br /><a href="http://www.softwaremaker.net/blog">http://www.softwaremaker.net/blog</a></body>
      <title>Architects and Code: Orthogonal or Not ?</title>
      <guid isPermaLink="false">http://www.softwaremaker.net/blog/PermaLink,guid,5c12a359-fd01-4615-834b-4b117245b0c4.aspx</guid>
      <link>http://www.softwaremaker.net/blog/ArchitectsAndCodeOrthogonalOrNot.aspx</link>
      <pubDate>Sat, 09 Sep 2006 15:18:43 GMT</pubDate>
      <description>&lt;p&gt;
One of the topics presented during the Architecture Track in the just-concluded &lt;a href="http://www.microsoft.com/malaysia/techedsea2006/" target=_blank&gt;Microsoft
TechED South East Asia 2006&lt;/a&gt;&amp;nbsp;was done by &lt;a href="http://www.iasarchitects.org/" target=_blank&gt;IASA&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
It was done via a very interactive session with the floor questioning the panel from
the &lt;a href="http://malaysia.iasahome.org/iasaweb/appmanager/home/chapterdetail" target=_blank&gt;IASA
Malaysian chapter&lt;/a&gt; about the value of being an architect and topics of the like.
&lt;/p&gt;
&lt;p&gt;
One of the questions from the floor was: "&lt;strong&gt;&lt;em&gt;Do you believe that architects
should be writing code ?&lt;/em&gt;&lt;/strong&gt;"
&lt;/p&gt;
&lt;p&gt;
It seems that 3/4 of the panel members agree. Some even going on bragging that he
is still doing it in assembly, C++ language. hmmm ... In the interest of keeping the
session on time so that that the attendees can get home on time&amp;nbsp;amidst the KL
jams - I kept my mouth shut.
&lt;/p&gt;
&lt;p&gt;
Let me open them now.
&lt;/p&gt;
&lt;p&gt;
Architects &lt;strong&gt;&lt;em&gt;shouldnt&lt;/em&gt;&lt;/strong&gt; code. Period. My thoughts. Period. To
prevent myself from rambling, which is what I always do when I have a strong opinion
on something, let me list them in point forms.
&lt;/p&gt;
&lt;p&gt;
The term "architect" is a very &lt;a href="http://wordnet.princeton.edu/perl/webwn?o2=&amp;amp;o0=1&amp;amp;o7=&amp;amp;o5=&amp;amp;o1=1&amp;amp;o6=&amp;amp;o4=&amp;amp;o3=&amp;amp;s=unfixed" target=_blank&gt;nebulous&lt;/a&gt; term.
The hype around it with all the wannabees printing it in bold font on their cards
out there (&lt;em&gt;I know a couple of them in Singapore who does them with no shame&lt;/em&gt;),
who have no idea what is the difference between horizontal and vertical scaling, doesnt
make it any better. For better or worse, I only believe in one type - and that is
the all-emcompassing solution architect.
&lt;/p&gt;
&lt;p&gt;
Afterall, aint what all customers want is a solution ? Do you think they really care
what is underneath the solution more than that this solution works well, is kept within
their budget, perform effectively and efficiently within the constraints of their
environment ? Therefore, in this context, I&amp;nbsp;will speak&amp;nbsp;in the context of &lt;strong&gt;Solution
Architects&lt;/strong&gt;.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
To those ppl who said that "&lt;a href="http://c2.com/cgi/wiki?ArchitectsDontCode" target=_blank&gt;&lt;em&gt;How
can someone who never writes a line of code be responsible for how that code will
be written?&lt;/em&gt; &lt;/a&gt;", again, I am talking about a solution architect. In any case,
an architect can code, sing, dance &lt;strong&gt;&lt;em&gt;before&lt;/em&gt;&lt;/strong&gt;, for all I care.
They shouldnt be doing it in their role as solution architects &lt;strong&gt;now&lt;/strong&gt;.
Read on.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
In the past, code influenced architecture. The limitations of &lt;strong&gt;&lt;em&gt;written-code&lt;/em&gt;&lt;/strong&gt; in
a &lt;strong&gt;&lt;em&gt;chosen-platform&lt;/em&gt;&lt;/strong&gt; in a &lt;strong&gt;&lt;em&gt;defined-era&lt;/em&gt;&lt;/strong&gt; is
the damning evidence of the limitation of the architecture. &lt;a href="http://www.zetnet.co.uk/rad/tutvb3.html" target=_blank&gt;VB3&lt;/a&gt; anyone
?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Biasedness based on preference. A solution architect that has a decade long experience
in writing code is usually one that&amp;nbsp;doesnt see the other side of the fence, doesnt
know that there are better solutions and worst - refuse to want to see it. Most of
the people in this category are usually skilled in one platform over the other and
it is very hard for people like that to sit down and analyze a&amp;nbsp;problem without
a pre-conceived notion in mind in a very neutral manner. Because of this, the likely
solution they are going to&amp;nbsp;propose will have the same limitations of the platform
they have been so comfortable with. I dont question the depth. Where is the breadth
? These guys should remain what they are good in and be experts in their domains and
probably be paid better than a solution architect. For those who argue that they are
equally well-versed in both sides of the fence - Good for you. Stay there. It is very
likely you are drawing a lot more than an architect. If you are not, you just need
to sell yourself better.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
It is all about the business. Solution Architects&amp;nbsp;bridge the gap between (the
returns of) the business with the (returns of) technology. So, yes, they should be
just as apt with the Finanical Calculator as much as an Integrated Development Environment
or a Installation Panel or Console. They understand the entire depreciation cycle
of an enterprise&amp;nbsp;solution much better than the differences between a thread and
a process. So yes, the higher the level the language they &lt;strong&gt;&lt;em&gt;used to&lt;/em&gt;&lt;/strong&gt; code
in (I am talking about &lt;a href="http://www.everything2.com/index.pl?node_id=1250992" target=_blank&gt;4GL&lt;/a&gt;),
the better. Bragging how much you &lt;strong&gt;&lt;em&gt;still&lt;/em&gt;&lt;/strong&gt; do your work today
in &lt;a href="http://www.webopedia.com/TERM/M/machine_language.html" target=_blank&gt;First&lt;/a&gt; or &lt;a href="http://www.webopedia.com/TERM/A/assembly_language.html" target=_blank&gt;Second&lt;/a&gt; Level
Programming Lanaguages doesnt do you any good. In fact, it makes you look bad. It
shows&amp;nbsp;the lack of touch you have with your business, how it is run, what are
the constraints and the entire business and revenue model. Writing performance drivers,
assemblers, kernels, runtimes&amp;nbsp;has nothing to do with&amp;nbsp;a company's&amp;nbsp;business
model in&amp;nbsp;a world where &lt;a href="http://en.wikipedia.org/wiki/Moore's_law" target=_blank&gt;Moore's
Law&lt;/a&gt; still rules.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
It is all about the business, still.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=5c12a359-fd01-4615-834b-4b117245b0c4" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
© William Tay 2012 | Swinging Technologist 
&lt;br /&gt;
&lt;a href="http://www.softwaremaker.net/blog"&gt;http://www.softwaremaker.net/blog&lt;/a&gt;</description>
      <category>Random Musings;Software Architectures;Software Development</category>
    </item>
    <item>
      <trackback:ping>http://www.softwaremaker.net/blog/Trackback.aspx?guid=83b172cb-5d1a-4d8e-96a3-2d67208499fc</trackback:ping>
      <pingback:server>http://www.softwaremaker.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.softwaremaker.net/blog/PermaLink,guid,83b172cb-5d1a-4d8e-96a3-2d67208499fc.aspx</pingback:target>
      <dc:creator>William Tay</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Now if XML-RPC aint enough (I had blogged about this <a href="http://www.softwaremaker.net/blog/HistoryLessonXMLRPCVsSOAPPartI.aspx" target="_blank">here</a> and <a href="http://www.softwaremaker.net/blog/HistoryLessonXMLRPCVsSOAPPartII.aspx" target="_blank">here</a>),
now we can add <a href="http://xins.sourceforge.net/restrpc.html" target="_blank">REST-RPC</a> into
the mix. The main difference would be the use of HTTP to provide application
semantics via its verbs. This would mean that there would hardly be any XML or
Request payload of any kind.
</p>
        <img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=83b172cb-5d1a-4d8e-96a3-2d67208499fc" />
        <br />
        <hr />
© William Tay 2012 | Swinging Technologist 
<br /><a href="http://www.softwaremaker.net/blog">http://www.softwaremaker.net/blog</a></body>
      <title>More alternatives to SOAP: Rest-RPC</title>
      <guid isPermaLink="false">http://www.softwaremaker.net/blog/PermaLink,guid,83b172cb-5d1a-4d8e-96a3-2d67208499fc.aspx</guid>
      <link>http://www.softwaremaker.net/blog/MoreAlternativesToSOAPRestRPC.aspx</link>
      <pubDate>Tue, 07 Mar 2006 01:01:34 GMT</pubDate>
      <description>&lt;p&gt;
Now if XML-RPC aint enough (I had blogged about this &lt;a href="http://www.softwaremaker.net/blog/HistoryLessonXMLRPCVsSOAPPartI.aspx" target=_blank&gt;here&lt;/a&gt; and &lt;a href="http://www.softwaremaker.net/blog/HistoryLessonXMLRPCVsSOAPPartII.aspx" target=_blank&gt;here&lt;/a&gt;),
now we can add &lt;a href="http://xins.sourceforge.net/restrpc.html" target=_blank&gt;REST-RPC&lt;/a&gt; into
the mix. The main difference would be the use of HTTP to provide&amp;nbsp;application
semantics via its verbs. This would mean that&amp;nbsp;there would hardly be any XML or
Request payload of any kind.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=83b172cb-5d1a-4d8e-96a3-2d67208499fc" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
© William Tay 2012 | Swinging Technologist 
&lt;br /&gt;
&lt;a href="http://www.softwaremaker.net/blog"&gt;http://www.softwaremaker.net/blog&lt;/a&gt;</description>
      <category>Software Architectures;Software Development;Technology;XML Services</category>
    </item>
    <item>
      <trackback:ping>http://www.softwaremaker.net/blog/Trackback.aspx?guid=5e03bc6a-e30b-435c-8146-5dda0ce4b170</trackback:ping>
      <pingback:server>http://www.softwaremaker.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.softwaremaker.net/blog/PermaLink,guid,5e03bc6a-e30b-435c-8146-5dda0ce4b170.aspx</pingback:target>
      <dc:creator>William Tay</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
On the back of <a href="http://www.softwaremaker.net/blog/PDC2005MyTopicIsSelectedForBOF.aspx">this</a>,
from <a href="http://paulfallon.com/" target="_blank">Paul Fallon's space</a><a href="http://paulfallon.com/2005/08/30/So+Whats+New+In+WSAtomicTransaction+WSBusinessActivity+And+WSCoordination.aspx" target="_blank">here</a>, <a href="http://blogs.msdn.com/esperpento" target="_blank">Max
Feingold</a> has a real good summary on <a href="http://blogs.msdn.com/esperpento/archive/2005/08/27/457252.aspx" target="_blank">Whats
New with WS-AT, WS-BA and WS-C</a>.
</p>
        <p>
Should make for some good reading on my l<em>ooooooooo</em>ng flight to LAX via the
Pacific Route.
</p>
        <img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=5e03bc6a-e30b-435c-8146-5dda0ce4b170" />
        <br />
        <hr />
© William Tay 2012 | Swinging Technologist 
<br /><a href="http://www.softwaremaker.net/blog">http://www.softwaremaker.net/blog</a></body>
      <title>More on WS Transaction Framework</title>
      <guid isPermaLink="false">http://www.softwaremaker.net/blog/PermaLink,guid,5e03bc6a-e30b-435c-8146-5dda0ce4b170.aspx</guid>
      <link>http://www.softwaremaker.net/blog/MoreOnWSTransactionFramework.aspx</link>
      <pubDate>Wed, 31 Aug 2005 01:56:50 GMT</pubDate>
      <description>&lt;p&gt;
On the back of &lt;a href="http://www.softwaremaker.net/blog/PDC2005MyTopicIsSelectedForBOF.aspx"&gt;this&lt;/a&gt;,
from &lt;a href="http://paulfallon.com/" target=_blank&gt;Paul Fallon's space&lt;/a&gt; &lt;a href="http://paulfallon.com/2005/08/30/So+Whats+New+In+WSAtomicTransaction+WSBusinessActivity+And+WSCoordination.aspx" target=_blank&gt;here&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/esperpento" target=_blank&gt;Max
Feingold&lt;/a&gt;&amp;nbsp;has a real good summary on &lt;a href="http://blogs.msdn.com/esperpento/archive/2005/08/27/457252.aspx" target=_blank&gt;Whats
New with WS-AT, WS-BA and WS-C&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Should make for some good reading on my l&lt;em&gt;ooooooooo&lt;/em&gt;ng flight to LAX via the
Pacific Route.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=5e03bc6a-e30b-435c-8146-5dda0ce4b170" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
© William Tay 2012 | Swinging Technologist 
&lt;br /&gt;
&lt;a href="http://www.softwaremaker.net/blog"&gt;http://www.softwaremaker.net/blog&lt;/a&gt;</description>
      <category>PDC2005_LA;Service-Orientation;Software Architectures</category>
    </item>
    <item>
      <trackback:ping>http://www.softwaremaker.net/blog/Trackback.aspx?guid=957bb9e7-f9bc-4f9d-bed0-fb8bdd06d191</trackback:ping>
      <pingback:server>http://www.softwaremaker.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.softwaremaker.net/blog/PermaLink,guid,957bb9e7-f9bc-4f9d-bed0-fb8bdd06d191.aspx</pingback:target>
      <dc:creator>William Tay</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
According to <a href="http://pluralsight.com/blogs/dbox" target="_blank">Don</a>'s
blog <a href="http://pluralsight.com/blogs/dbox/archive/2005/07/14/13352.aspx" target="_blank">here</a>: <a href="http://msdn.microsoft.com/Longhorn/understanding/pillars/Indigo/default.aspx" target="_blank">Indigo</a> has <a href="http://blogs.msdn.com/xmlteam/archive/2005/02/15/372982.aspx">support</a> for <a href="http://www.xfront.com/REST-Web-Services.html" target="_blank">REST</a> since
Day 1. In the same breadth, he disclosed that it will explicitly support HTTP PUT/POST/DELETE/GET
to please the REST purists out <a href="http://www.prescod.net/rest/rest_vs_soap_overview/" target="_blank">there</a>.
</p>
        <p>
Like <a href="http://www.hyperthink.net/blog" target="_blank">Steve</a> mentioned <a href="http://hyperthink.net/blog/PermaLink,guid,e5cbc9c2-6f8b-49f7-aa18-241588fb6b72.aspx" target="_blank">here</a>,
I, too, am not a fan of technology stacks that complete with their own ideologies.
To me, technology is there just to get a job done efficiently and effectively.
My post <a href="http://www.softwaremaker.net/blog/PermaLink,guid,3de723b2-8e23-4fa3-8e2f-359c0a6c9b44.aspx" target="_blank">here</a> attracted
quite a fair bit of hits and same-echo-sentiment emails. It even made to ZiffDavis
blog list <a href="http://blog.ziffdavis.com/devlife/archive/2005/07/08/15522.aspx" target="_blank">here</a>.
</p>
        <p>
As Steve has echoed as well, I am also even more convinced now that Indigo is going
to be the platform to beat when it comes to distributed communications. No doubt about
it.
</p>
        <p>
I am really glad that the Indigo team, whom I think comprises some of the brightest
minds in the software field, is all united to work towards a common goal of creating
a religion and ideology-agnostic product. If this is not innovation, I dont know what
is.
</p>
        <p>
Show me the money, Beta1
</p>
        <img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=957bb9e7-f9bc-4f9d-bed0-fb8bdd06d191" />
        <br />
        <hr />
© William Tay 2012 | Swinging Technologist 
<br /><a href="http://www.softwaremaker.net/blog">http://www.softwaremaker.net/blog</a></body>
      <title>Indigo will support REST EXPLICITLY in Beta1</title>
      <guid isPermaLink="false">http://www.softwaremaker.net/blog/PermaLink,guid,957bb9e7-f9bc-4f9d-bed0-fb8bdd06d191.aspx</guid>
      <link>http://www.softwaremaker.net/blog/IndigoWillSupportRESTEXPLICITLYInBeta1.aspx</link>
      <pubDate>Fri, 15 Jul 2005 04:40:50 GMT</pubDate>
      <description>&lt;p&gt;
According to&amp;nbsp;&lt;a href="http://pluralsight.com/blogs/dbox" target=_blank&gt;Don&lt;/a&gt;'s
blog&amp;nbsp;&lt;a href="http://pluralsight.com/blogs/dbox/archive/2005/07/14/13352.aspx" target=_blank&gt;here&lt;/a&gt;: &lt;a href="http://msdn.microsoft.com/Longhorn/understanding/pillars/Indigo/default.aspx" target="_blank"&gt;Indigo&lt;/a&gt; has &lt;a href="http://blogs.msdn.com/xmlteam/archive/2005/02/15/372982.aspx"&gt;support&lt;/a&gt; for &lt;a href="http://www.xfront.com/REST-Web-Services.html" target=_blank&gt;REST&lt;/a&gt; since
Day 1. In the same breadth, he disclosed that it will explicitly support HTTP PUT/POST/DELETE/GET
to please the REST purists out &lt;a href="http://www.prescod.net/rest/rest_vs_soap_overview/" target=_blank&gt;there&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Like &lt;a href="http://www.hyperthink.net/blog" target=_blank&gt;Steve&lt;/a&gt; mentioned &lt;a href="http://hyperthink.net/blog/PermaLink,guid,e5cbc9c2-6f8b-49f7-aa18-241588fb6b72.aspx" target=_blank&gt;here&lt;/a&gt;,
I, too, am not a fan of technology stacks that complete with their own ideologies.
To me, technology is there&amp;nbsp;just to get a job done efficiently and effectively.
My post &lt;a href="http://www.softwaremaker.net/blog/PermaLink,guid,3de723b2-8e23-4fa3-8e2f-359c0a6c9b44.aspx" target=_blank&gt;here&lt;/a&gt; attracted
quite a fair bit of hits and same-echo-sentiment emails. It even made to ZiffDavis
blog list &lt;a href="http://blog.ziffdavis.com/devlife/archive/2005/07/08/15522.aspx" target=_blank&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
As Steve has echoed as well, I am also even more convinced now that Indigo is going
to be the platform to beat when it comes to distributed communications. No doubt about
it.
&lt;/p&gt;
&lt;p&gt;
I am really glad that the Indigo team, whom I think comprises some of the brightest
minds in the software field, is all united to work towards a common goal of creating
a religion and ideology-agnostic product. If this is not innovation, I dont know what
is.
&lt;/p&gt;
&lt;p&gt;
Show me the money, Beta1
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=957bb9e7-f9bc-4f9d-bed0-fb8bdd06d191" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
© William Tay 2012 | Swinging Technologist 
&lt;br /&gt;
&lt;a href="http://www.softwaremaker.net/blog"&gt;http://www.softwaremaker.net/blog&lt;/a&gt;</description>
      <category>Service-Orientation;Software Architectures;Windows Communication Foundation (WCF) aka Indigo</category>
    </item>
    <item>
      <trackback:ping>http://www.softwaremaker.net/blog/Trackback.aspx?guid=318a70f2-3b0c-4f4b-8bc9-022aa450db88</trackback:ping>
      <pingback:server>http://www.softwaremaker.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.softwaremaker.net/blog/PermaLink,guid,318a70f2-3b0c-4f4b-8bc9-022aa450db88.aspx</pingback:target>
      <dc:creator>William Tay</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I have been invited by the <a href="http://www.ark-group.com" target="_blank">Ark
Group</a> to speak in one of their major technology management conferences in Singapore
on the 27th July 2005.
</p>
        <p>
          <a href="http://www.ark-group.com/home/events/event.asp?eventid=0704FD66-9BE1-40BE-A092-6473245C5232" target="_blank">This
conference</a> is themed around <strong>Planning and Implementing Service-Oriented
Architecture : <em>Developing SOA to Reduce the Cost of Integration, Leverage Legacy
Systems and Improve Business Agility.</em></strong></p>
        <p>
My 45-min presentation is titled:
</p>
        <p>
          <strong>
            <u>Design and Security Notes from the Field</u>
          </strong>
        </p>
        <ul>
          <li>
Distributed Computing 
<ul><li>
Thoughts 
</li><li>
When to use What 
</li><li>
More Thoughts</li></ul></li>
          <li>
Distributed Security 
<ul><li>
Thoughts 
</li><li>
When to use What 
</li><li>
More Thoughts</li></ul></li>
        </ul>
        <p>
As usual to my presentation style, I tend to keep my topics interesting and a refreshing
experience. The conferences in this field has always been dominated by the academics,
researchers and technology vendors who sometimes lose touch of whats happening on
the ground. I will go against this bias and inject some field experience in there.
It should be an interesting conference for attendees and delegates. I think it will
even be much more interesting when I sit down with them for networking lunch. <img src="http://www.softwaremaker.net/pictures/swmemoticons/wink.gif" /></p>
        <p>
I hope to see you there.
</p>
        <img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=318a70f2-3b0c-4f4b-8bc9-022aa450db88" />
        <br />
        <hr />
© William Tay 2012 | Swinging Technologist 
<br /><a href="http://www.softwaremaker.net/blog">http://www.softwaremaker.net/blog</a></body>
      <title>Speaking on Design and Security Notes from the Field on Planning and Implementing an SO(A)</title>
      <guid isPermaLink="false">http://www.softwaremaker.net/blog/PermaLink,guid,318a70f2-3b0c-4f4b-8bc9-022aa450db88.aspx</guid>
      <link>http://www.softwaremaker.net/blog/SpeakingOnDesignAndSecurityNotesFromTheFieldOnPlanningAndImplementingAnSOA.aspx</link>
      <pubDate>Tue, 12 Jul 2005 22:11:01 GMT</pubDate>
      <description>&lt;p&gt;
I have been invited by the &lt;a href="http://www.ark-group.com" target=_blank&gt;Ark Group&lt;/a&gt; to
speak in one of their major technology management conferences in Singapore on the
27th July 2005.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.ark-group.com/home/events/event.asp?eventid=0704FD66-9BE1-40BE-A092-6473245C5232" target=_blank&gt;This
conference&lt;/a&gt; is themed around &lt;strong&gt;Planning and Implementing Service-Oriented
Architecture : &lt;em&gt;Developing SOA to Reduce the Cost of Integration, Leverage Legacy
Systems and Improve Business Agility.&lt;/em&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
My 45-min presentation is titled:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;u&gt;Design and Security Notes from the Field&lt;/u&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Distributed Computing 
&lt;ul&gt;
&lt;li&gt;
Thoughts 
&lt;li&gt;
When to use What 
&lt;li&gt;
More Thoughts&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
Distributed Security 
&lt;ul&gt;
&lt;li&gt;
Thoughts 
&lt;li&gt;
When to use What 
&lt;li&gt;
More Thoughts&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
As usual to my presentation style, I tend to keep my topics interesting and a refreshing
experience. The conferences in this field has always been dominated by the academics,
researchers and technology vendors who sometimes lose touch of whats happening on
the ground. I will go against this bias and inject some field experience in there.
It should be an interesting conference for attendees and delegates. I think it will
even be much more interesting&amp;nbsp;when I sit down with them for networking lunch. &lt;img src="http://www.softwaremaker.net/pictures/swmemoticons/wink.gif"&gt;
&lt;/p&gt;
&lt;p&gt;
I hope to see you there.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=318a70f2-3b0c-4f4b-8bc9-022aa450db88" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
© William Tay 2012 | Swinging Technologist 
&lt;br /&gt;
&lt;a href="http://www.softwaremaker.net/blog"&gt;http://www.softwaremaker.net/blog&lt;/a&gt;</description>
      <category>Presentations;Service-Orientation;Software Architectures;Software Development</category>
    </item>
    <item>
      <trackback:ping>http://www.softwaremaker.net/blog/Trackback.aspx?guid=3de723b2-8e23-4fa3-8e2f-359c0a6c9b44</trackback:ping>
      <pingback:server>http://www.softwaremaker.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.softwaremaker.net/blog/PermaLink,guid,3de723b2-8e23-4fa3-8e2f-359c0a6c9b44.aspx</pingback:target>
      <dc:creator>William Tay</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I have been following the exchanges between <a href="http://savas.parastatidis.name/" target="_blank">Savas</a>, <a href="http://jim.webber.name/" target="_blank">Jim
Webber</a>, and Michi Henning <a href="http://jim.webber.name/2005/06/23/dbeede6f-4745-443a-bed3-3a556fcd3a36.aspx#ac06010a-8247-411a-b07a-278df15106e0" target="_blank">here</a> and <a href="http://savas.parastatidis.name/2005/07/03/f52bed61-6dd0-4c08-8b54-22987a2f1468.aspx" target="_blank">here</a>.
There are more links but I will leave it up to the interested reader to use a <a href="http://www.xfront.com/REST-Web-Services.html" target="_blank">RESTful
approach</a> to refer to those resources from the above 2 links. <img src="http://www.softwaremaker.net/pictures/swmemoticons/wink.gif" /></p>
        <p>
To be honest, this has been piped over the newsgroups, forums, conferences, etc for
some time now and it is really nothing interesting to debate about, really.
</p>
        <p>
All this noise has led to a lot of <a href="http://en.wikipedia.org/wiki/FUD" target="_blank">FUD</a> in
the field and I get a constant barrage of questions in any of the technology conferences
I speak in or attend. I work in the fields out there and therefore I tend to approach
technology unlike that of academics, trainers or vendors. I do what clients want in
the most efficient way (<em>read:cost_and_resource-effective</em>) possible. I have
met a few people from academics as well as from the product vendors who entered
the field thinking that just because they can point out which exact page number explains
the ds:SignedInfo in _WS-Security Specs_, they can convince and conquer the field
and have every single customer out there upgrade their existing technological infrastructure
every 6 years.
</p>
        <p>
Well, the Mainfraimes, the <a href="http://www.webopedia.com/TERM/C/CICS.html" target="_blank">CICS</a> and
the <a href="http://www.answers.com/topic/cobol" target="_blank">COBOL</a> wonks are
still out there. Still making a lot of money for its vendors and service providers. People
are still driving <a href="http://www.urbandictionary.com/define.php?term=lada" target="_blank">Lada</a>s
and these legacy will be there for some time, probably a long long time.
</p>
        <p>
We get a lot of younER developers who are very confused with all barrage of technologies
out there and sometimes people on the field (which means customers as well) get
the short end of the stick when these developers use the wrong technology in
the different parts of the technical solution. So, yes, some of the stuff you read
in <a href="http://thedailywtf.com/" target="_blank">the Daily WTF</a> is not ficticious.
</p>
        <p>
Sometimes, when I come across comments like these here from Savas's blog <a href="http://savas.parastatidis.name/2005/07/04/76affcec-2a1f-4090-b3e5-66ab76be73f8.aspx" target="_blank">here</a>:
</p>
        <p>
          <em>
            <font color="#808080">&gt; Microsoft is betting on SOAP and made it a key part
of its distributed computing platform, not DCOM.</font>
          </em>
        </p>
        <p>
          <em>
            <font color="#808080">Betting on SOAP? Hmmm... .NET remoting does not use SOAP.
It uses a binary protocol for performance reasons. So, I'm not sure that Microsoft
are "betting on SOAP". They certainly are not for their .NET remoting protocol. And
DCOM failed because it could not be made to scale, due to its misguided garbage collection
idea. And because DCOM, amazing as that may sound, was even more complex than CORBA.</font>
          </em>
        </p>
        <p>
Somehow, I either feel that I still dont get the picture or that irrationality is
clouding good judgement (still).
</p>
        <p>
Of course, .NET Remoting doesnt use SOAP. In fact, it used to and is <a href="http://blogs.msdn.com/mattavis/archive/2004/08/23/219200.aspx" target="_blank">deprecated</a> for
good reasons. It is a distributed <strong><em>object</em></strong> technology which implies
implicit method invocation. SOAP is not a distributed object technology. It is all
about services, all about standard schemas, being explicit in design and yes, it also
means dispatching these XML documents on a "hopeless transport" or the Lada of the
network protocol today. You cannot compare them just like you cannot compare the performance
of objects and services.
</p>
        <p>
Is this the best we can do ? Of course NOT. Should we all dump our existing heap
of scrap metal in our garage and get the shiniest and fastest aluminium today ? Of
course. Are we going to empty our bank account, forfeit and compensate on our current
loan arrangments to do it ? NO, NOPE, NADA ... This is a just a fact that
we have to deal with.
</p>
        <p>
Having said that, to me, both sets of distributed technologies will have its place
to stay, regardless of what the vendors say to sell more and the trainers sell to
teach more. Each have its place and their merits tend to show up best if used
and deployed wisely in the different layers, tiers and boundaries of a decent, usable
and viable solution. When I say Solution, I mean an entire composition of different
new and old systems that services a business program, initiative and ultimately a
goal. Isnt that what we are building systems for in the first place or have
I totally lost my mind and lost track of who my paymaster is ? Dont get me wrong,
progress is not possible without making full proof and implementations of the latest
rocket science or theories. But Progress can be measured in many ways. To most people,
progress is measured by how they can make legacy or existing technologies and architetures
last and endure given the rapidly evolving set of standards, protocols and environments
and how fast they can go home and spend time with their families as age increases
and <a href="http://www.webopedia.com/TERM/T/TTL.html" target="_blank">TTL</a> declines.
</p>
        <p>
COM+, DCOM, .NET Remoting is something we use very frequently on the field, and for
good reasons too. I am known to be a <a href="http://www.w3.org/TR/soap/" target="_blank">(W3C)
SOAP</a> Wonk BUT I will not give them up easily within the innards of my system and
I will use SOAP for the reasons it was designed for. In fact, to me, one
of the most important features in SOAP is the <strong><em>@role</em></strong> (<strong><em>@actor</em></strong>)
and the <strong><em>@mustUnderstand</em></strong>. Or else, I would just stick with
just plain old XML.
</p>
        <p>
Is Microsoft betting on SOAP ? You bet, and so is the entire industry. It is a well
known fact that while it is simplistic in design (in fact, this is one of the wierd
specification that becomes simpler as the newer iteration evolve. Let hope it remains
this way), getting across-the-board agreement is the costly element. In fact, it took
5 years from the original design meeting and prototype to become an “official” specification
and it (SOAP 1.1) is still not an official W3C Submission. The cost to each participating
organization easily crosses several million USD. The rough estimates to putting the
final WS-* specs to bed (if there is such a thing) would easily be more than 20 million
USD.
</p>
        <p>
Just like life, in the field of software engineering, compromise is something we need
to work with. I once had a straight-through exhaust pipe the circumference of a toilet
bowl fitted underneath my car as well as a wide-open air filter underneath the car
bonnet. After 3 months, I couldnt deal with the generated noise as well as the
(less-dense) hot air the air cone was taking in from all angles so I dumped both
of them. While it may take me slightly longer (by a few seconds, perhaps) to
reach the market to buy groceries, the brat in the younger me learnt to deal
with it. <img src="http://www.softwaremaker.net/pictures/swmemoticons/wink.gif" /></p>
        <p>
While, I have my own ideas on the Request/Reply MEP, RPC, Document-Literal Messaging,
etc and I like to share my research and thoughts with some of the brightest minds
in the industry over a hot cup of Java, it is not something I lose sleep or sweat
about. It just serves to keep my sanity in check when I still have to deal with OLE
and VB3 issues today and it does make good conversation with some of the most intelligent
geeks out there.
</p>
        <p>
Sometimes, I feel the point of technology is lost when people argue over stuff like
that. To these people, I recommend a good classic read: <a href="http://www.amazon.com/exec/obidos/tg/sim-explorer/explore-items/-/0679745408/0/101/1/none/purchase/ref%3Dpd%5Fsxp%5Fr0/102-1223873-2763357" target="_blank">Technopoly:
The surrender of Culture to Technology by Neil Postman</a></p>
        <img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=3de723b2-8e23-4fa3-8e2f-359c0a6c9b44" />
        <br />
        <hr />
© William Tay 2012 | Swinging Technologist 
<br /><a href="http://www.softwaremaker.net/blog">http://www.softwaremaker.net/blog</a></body>
      <title>The irrationality behind Technical Arguments</title>
      <guid isPermaLink="false">http://www.softwaremaker.net/blog/PermaLink,guid,3de723b2-8e23-4fa3-8e2f-359c0a6c9b44.aspx</guid>
      <link>http://www.softwaremaker.net/blog/TheIrrationalityBehindTechnicalArguments.aspx</link>
      <pubDate>Thu, 07 Jul 2005 04:40:24 GMT</pubDate>
      <description>&lt;p&gt;
I have been following the exchanges between &lt;a href="http://savas.parastatidis.name/" target=_blank&gt;Savas&lt;/a&gt;, &lt;a href="http://jim.webber.name/" target=_blank&gt;Jim
Webber&lt;/a&gt;, and Michi Henning &lt;a href="http://jim.webber.name/2005/06/23/dbeede6f-4745-443a-bed3-3a556fcd3a36.aspx#ac06010a-8247-411a-b07a-278df15106e0" target=_blank&gt;here&lt;/a&gt;&amp;nbsp;and &lt;a href="http://savas.parastatidis.name/2005/07/03/f52bed61-6dd0-4c08-8b54-22987a2f1468.aspx" target=_blank&gt;here&lt;/a&gt;.
There are more links but I will leave it up to the interested reader to use a &lt;a href="http://www.xfront.com/REST-Web-Services.html" target=_blank&gt;RESTful
approach&lt;/a&gt; to refer to those resources from the above 2 links. &lt;img src="http://www.softwaremaker.net/pictures/swmemoticons/wink.gif"&gt;
&lt;/p&gt;
&lt;p&gt;
To be honest, this has been piped over the newsgroups, forums, conferences, etc for
some time now and it is really nothing interesting to debate about, really.
&lt;/p&gt;
&lt;p&gt;
All this noise has led to a lot of &lt;a href="http://en.wikipedia.org/wiki/FUD" target=_blank&gt;FUD&lt;/a&gt;&amp;nbsp;in
the field and I get a constant barrage of questions in any of the technology conferences
I speak in or attend. I work in the fields out there and therefore I tend to approach
technology unlike that of academics, trainers or vendors. I do what clients want in
the most efficient way (&lt;em&gt;read:cost_and_resource-effective&lt;/em&gt;) possible. I have
met a few people from academics&amp;nbsp;as well as from the product vendors who entered
the field thinking that just because they can point out which exact page number explains
the ds:SignedInfo in&amp;nbsp;_WS-Security Specs_, they can convince and conquer the field
and have every single customer out there upgrade their existing technological infrastructure
every 6 years.
&lt;/p&gt;
&lt;p&gt;
Well, the Mainfraimes, the &lt;a href="http://www.webopedia.com/TERM/C/CICS.html" target=_blank&gt;CICS&lt;/a&gt; and
the &lt;a href="http://www.answers.com/topic/cobol" target=_blank&gt;COBOL&lt;/a&gt; wonks are
still out there. Still making a lot of money for its vendors and service providers.&amp;nbsp;People
are still driving &lt;a href="http://www.urbandictionary.com/define.php?term=lada" target=_blank&gt;Lada&lt;/a&gt;s
and these legacy will be there for some time, probably a long long time.
&lt;/p&gt;
&lt;p&gt;
We get a lot of younER developers who are very confused with all barrage of technologies
out there&amp;nbsp;and sometimes people on the field (which means customers as well) get
the short end of the stick&amp;nbsp;when these developers use the wrong technology in
the different parts of the technical solution. So, yes, some of the stuff you read
in &lt;a href="http://thedailywtf.com/" target=_blank&gt;the Daily WTF&lt;/a&gt; is not ficticious.
&lt;/p&gt;
&lt;p&gt;
Sometimes, when I come across comments like these here from Savas's blog &lt;a href="http://savas.parastatidis.name/2005/07/04/76affcec-2a1f-4090-b3e5-66ab76be73f8.aspx" target=_blank&gt;here&lt;/a&gt;:
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color=#808080&gt;&amp;gt; Microsoft is betting on SOAP and made it a key part of
its distributed computing platform, not DCOM.&lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color=#808080&gt;Betting on SOAP? Hmmm... .NET remoting does not use SOAP.
It uses a binary protocol for performance reasons. So, I'm not sure that Microsoft
are "betting on SOAP". They certainly are not for their .NET remoting protocol. And
DCOM failed because it could not be made to scale, due to its misguided garbage collection
idea. And because DCOM, amazing as that may sound, was even more complex than CORBA.&lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
Somehow, I either feel that I still dont get the picture or that irrationality is
clouding good judgement (still).
&lt;/p&gt;
&lt;p&gt;
Of course, .NET Remoting doesnt use SOAP. In fact, it used to and is &lt;a href="http://blogs.msdn.com/mattavis/archive/2004/08/23/219200.aspx" target=_blank&gt;deprecated&lt;/a&gt; for
good reasons. It is a distributed &lt;strong&gt;&lt;em&gt;object&lt;/em&gt;&lt;/strong&gt; technology which&amp;nbsp;implies
implicit method invocation. SOAP is not a distributed object technology. It is all
about services, all about standard schemas, being explicit in design and yes, it also
means dispatching these XML documents on a "hopeless transport" or the Lada of the
network protocol today. You cannot compare them just like you cannot compare the performance
of objects and services.
&lt;/p&gt;
&lt;p&gt;
Is this the best we can do ?&amp;nbsp;Of course NOT. Should we all dump our existing heap
of scrap metal in our garage and get the shiniest and fastest aluminium today ? Of
course. Are we going to empty our bank account, forfeit and compensate on our current
loan arrangments to do it ?&amp;nbsp;NO, NOPE, NADA ...&amp;nbsp;This is a just a fact&amp;nbsp;that
we have to deal with.
&lt;/p&gt;
&lt;p&gt;
Having said that, to me, both sets of distributed technologies will have its place
to stay, regardless of what the vendors say to sell more and the trainers sell to
teach&amp;nbsp;more. Each have its place and their merits tend to show up best if used
and deployed wisely in the different layers, tiers and boundaries of a decent, usable
and viable solution. When I say Solution, I mean an entire composition of different
new and old systems that services a business program, initiative and ultimately a
goal.&amp;nbsp;Isnt that what we are building systems&amp;nbsp;for in the first place or have
I totally lost my mind and lost track of who my paymaster is ? Dont get me wrong,
progress is not possible without making full proof and implementations of the latest
rocket science or theories. But Progress can be measured in many ways. To most people,
progress is measured by how they can make legacy or existing technologies and architetures
last and endure given the rapidly evolving set of standards, protocols and environments
and how fast they can go home and spend time with their families as age increases
and &lt;a href="http://www.webopedia.com/TERM/T/TTL.html" target=_blank&gt;TTL&lt;/a&gt; declines.
&lt;/p&gt;
&lt;p&gt;
COM+, DCOM, .NET Remoting is something we use very frequently on the field, and for
good reasons too. I am known to be a&amp;nbsp;&lt;a href="http://www.w3.org/TR/soap/" target="_blank"&gt;(W3C)
SOAP&lt;/a&gt; Wonk BUT I will not give them up easily within the innards of my system and
I will use SOAP for the reasons it&amp;nbsp;was designed&amp;nbsp;for. In fact, to me, one
of the most important features in SOAP is the &lt;strong&gt;&lt;em&gt;@role&lt;/em&gt;&lt;/strong&gt; (&lt;strong&gt;&lt;em&gt;@actor&lt;/em&gt;&lt;/strong&gt;)
and the &lt;strong&gt;&lt;em&gt;@mustUnderstand&lt;/em&gt;&lt;/strong&gt;. Or else, I would&amp;nbsp;just stick&amp;nbsp;with
just plain old XML.
&lt;/p&gt;
&lt;p&gt;
Is Microsoft betting on SOAP ? You bet, and so is the entire industry. It is a well
known fact that while it is simplistic in design (in fact, this is one of the wierd
specification that becomes simpler as the newer iteration evolve. Let hope it remains
this way), getting across-the-board agreement is the costly element. In fact, it took
5 years from the original design meeting and prototype to become an “official” specification
and it (SOAP 1.1) is still not an official W3C Submission. The cost to each participating
organization easily crosses several million USD. The rough estimates to putting the
final WS-* specs to bed (if there is such a thing) would easily be more than 20 million
USD.
&lt;/p&gt;
&lt;p&gt;
Just like life, in the field of software engineering, compromise is something we need
to work with. I once had a straight-through exhaust pipe the circumference of a toilet
bowl fitted underneath my car as well as a wide-open air filter underneath the car
bonnet. After 3 months,&amp;nbsp;I couldnt deal with the generated noise as well as the
(less-dense) hot air the air cone was taking in from all angles so I dumped&amp;nbsp;both
of them. While it may take me slightly longer (by a few seconds, perhaps)&amp;nbsp;to
reach the market to buy groceries,&amp;nbsp;the brat in the younger me learnt to deal
with it. &lt;img src="http://www.softwaremaker.net/pictures/swmemoticons/wink.gif"&gt;
&lt;/p&gt;
&lt;p&gt;
While, I have my own ideas on the Request/Reply MEP, RPC, Document-Literal Messaging,
etc&amp;nbsp;and I like to share my research and thoughts with some of the brightest minds
in the industry over a hot cup of Java, it is not something I lose sleep or sweat
about. It just serves to keep my sanity in check when I still have to deal with OLE
and VB3 issues today and it does make good conversation with some of the most intelligent
geeks out there.
&lt;/p&gt;
&lt;p&gt;
Sometimes, I feel the point of technology is lost when people argue over stuff like
that. To these people, I recommend a good classic read: &lt;a href="http://www.amazon.com/exec/obidos/tg/sim-explorer/explore-items/-/0679745408/0/101/1/none/purchase/ref%3Dpd%5Fsxp%5Fr0/102-1223873-2763357" target=_blank&gt;Technopoly:
The surrender of Culture to Technology by Neil Postman&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=3de723b2-8e23-4fa3-8e2f-359c0a6c9b44" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
© William Tay 2012 | Swinging Technologist 
&lt;br /&gt;
&lt;a href="http://www.softwaremaker.net/blog"&gt;http://www.softwaremaker.net/blog&lt;/a&gt;</description>
      <category>Random Musings;Service-Orientation;Software Architectures;Technology;XML Services</category>
    </item>
    <item>
      <trackback:ping>http://www.softwaremaker.net/blog/Trackback.aspx?guid=e77a6d49-c854-48a2-92ad-eff34bc68f5b</trackback:ping>
      <pingback:server>http://www.softwaremaker.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.softwaremaker.net/blog/PermaLink,guid,e77a6d49-c854-48a2-92ad-eff34bc68f5b.aspx</pingback:target>
      <dc:creator>William Tay</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p align="left">
          <a href="http://msdn.microsoft.com/library/en-us/dnglobspec/html/ws-metadataexchange.pdf" target="_blank">WS-MetadataExchange</a> is
used and enabled by default in <a href="http://msdn.microsoft.com/Longhorn/understanding/pillars/Indigo/default.aspx" target="_blank">Indigo</a> and
it comes with <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnglobspec/html/ws-policy.asp" target="_blank">WS-Policy</a> as
well.
</p>
        <p align="left">
This is one specification that I find really useful because the current
convention of using http-get to get the metadata from asmx?WSDL is still a very .NET
sort of convention. For my projects, I usually like to put the metadata in a physical
file and deploy it as *.wsdl. Other people and toolkits will also have their own naming
conventions.
</p>
        <p align="left">
While using http-get is a very useful convention of retrieving metadata, we cannot
assume that all services will support HTTP. In Indigo, it’s common to expose
an endpoint that only listens over IPC or SOAP-over-TCP.
</p>
        <p align="left">
At its current Beta 1 drop, only http / https will be supported. I do forsee
that tcp will be supported in the next major drop.
</p>
        <p align="left">
In Indigo, the WS-MetadataExchange endpoints are added to the (http) service by default
at the <strong><em>container-baseAddress/containee-endpointAddress</em></strong> as
a <strong><em>mex</em></strong> suffix. You can also choose to define your own custom
mex endpoints. Another wonderful thing it supports is that it allows the specifying
of a custom metadata file (which I know I will be definitely be using). In other words,
instead of getting Indigo to automatically generate the metadata, it will send
the requestor to the uri location of the metadata file I specify.
</p>
        <p align="left">
If you have done some <a href="http://www.oasis-open.org/committees/uddi-spec/tcspecs.shtml" target="_blank">UDDI</a> work
before, you would be accustomed to the convention of sending standardized <a href="http://www.w3.org/TR/soap/" target="_blank">(W3C)
SOAP</a> Request messages for querying purposes. WS-MetadataExchange uses the
same sort of principles, albeit with different querying implementations.
</p>
        <p align="left">
Here is how it works. There is no better way to illustrate this than to get really
friendly with the wire-layer plumbings. I have a tool <a href="http://www.softwaremaker.net/blog/PermaLink,guid,315afe18-1b3a-41ca-93b4-d0c2262331fb.aspx" target="_blank">here</a> that
will give you a good view of the exchange.
</p>
        <p>
          <i>
            <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #ffffcc">
              <img height="16" alt="SPONSOR.jpg" src="http://www.softwaremaker.net/blog/content/binary/SPONSOR.jpg" width="59" border="0" />
              <br />
Getting an <a href="http://www.testking.com/MCDBA-certification-training.htm">mcdba
certification</a> is not a problem if you have done <a href="http://www.testking.com/certification-training-Cisco.htm">cisco
training</a> as well as other <a href="http://www.testking.com/Security-Plus-certification-training.htm">security
training</a> programs like <a href="http://www.testking.com/MCP-certification-training.htm">mcp</a> but
there is no replacement of <a href="http://www.testking.com/certification-training-Microsoft.htm">microsoft
training</a>.</span>
          </i>
        </p>
        <p align="left">
You need to send a standard SOAP request to the listening mex endpoint that goes like
this (Replace the square brackets with angle ones)
</p>
        <p align="left">
  [s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing"]<br />
    [s:Header]<br />
      [a:Action s:mustUnderstand="1"]<strong>http://schemas.xmlsoap.org/ws/2004/09/mex/GetMetadata/Request</strong>[/a:Action]<br />
      [a:MessageID]uuid:f22ee227-3eeb-460d-9352-1a34e97bf911;id=0[/a:MessageID]<br />
      [a:To s:mustUnderstand="1"]http://localhost/servicemodelsamples/service.svc/mex[/a:To]<br />
      [a:ReplyTo]<br />
        [a:Address]http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous[/a:Address]<br />
      [/a:ReplyTo]<br />
    [/s:Header]<br />
    [s:Body]<br />
      [GetMetadata xmlns="http://schemas.xmlsoap.org/ws/2004/09/mex"
/]<br />
    [/s:Body]<br />
    [!-- OR an Empty SOAP Body will do just as fine --]<br />
    [!-- s:Body /--]<br />
  [/s:Envelope]
</p>
        <p align="left">
In the <a href="http://www.softwaremaker.net/blog/PermaLink,guid,315afe18-1b3a-41ca-93b4-d0c2262331fb.aspx" target="_blank">tool</a> I
had build, you need to put the a:Action value (<strong>in bold above</strong>) into
the SOAPAction textbox as this has to be propagated up to the HTTP-Headers as a SOAPAction
header. This is one of the sticklers of using http to query for any SOAP Web Service.
Once you clicked post, you will see a good-looking response with all the metadata
of <a href="http://www.w3.org/TR/wsdl" target="_blank">WSDL</a> and WS-Policy in the
SOAP body. I took out a lot of details in the constraints of space. You should be
able to get the point.
</p>
        <p align="left">
  [s:Envelope xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:s="http://www.w3.org/2003/05/soap-envelope"]<br />
    [s:Header]<br />
      [a:Action s:mustUnderstand="1"]http://schemas.xmlsoap.org/ws/2004/09/mex/GetMetadata/Response[/a:Action]<br />
      [a:RelatesTo]uuid:f22ee227-3eeb-460d-9352-1a34e97bf911;id=0[/a:RelatesTo]<br />
      [a:To s:mustUnderstand="1"]http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous[/a:To]<br />
      [ActivityId xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics"]uuid:a55fa135-e1b9-4557-a7c3-39cbf042f85d[/ActivityId]<br />
    [/s:Header]<br />
    [s:Body]<br />
      [wsx:Metadata xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"]<br />
        [wsx:MetadataSection Dialect="http://schemas.xmlsoap.org/wsdl/"
Identifier="http://tempuri.org/"]<br />
          [wsdl:definitions]<br />
            [!--WSDL and
XSD GUNK--]<br />
            [!--XSD GUNK--]<br />
            [!--WS-Policy
GUNK--]<br />
          [/wsdl:definitions]<br />
        [/wsx:MetadataSection]<br />
      [/wsx:Metadata]<br />
    [/s:Body]<br />
  [/s:Envelope]
</p>
        <p align="left">
You will be able to load endpoints, bindings and types dynamically at runtime
with such information.
</p>
        <p align="left">
Do take note that Indigo is extremely strict about the mediaTypes headers and you
need to set the contentType of the Http-Headers to <strong>application/soap+xml</strong>.
This can be done in the configuration file.
</p>
        <p align="left">
Do <a href="http://www.softwaremaker.net/blog/PermaLink,guid,315afe18-1b3a-41ca-93b4-d0c2262331fb.aspx" target="_blank">download</a> it
and try it.
</p>
        <p align="left">
If you think this is a cool new feature in the Microsoft technology space, it is not.
</p>
        <p align="left">
          <a href="http://msdn2.microsoft.com/en-us/webservices/aa740663.aspx" target="_blank" title="Web Services Enchancements">Web
Services Enhancements (WSE)</a> 2.0 also had it. All you need is to send in a
"http://schemas.microsoft.com/wse/2003/06/RequestDescription" in the Action of a SOAP
Message request to a listening WSE 2.0 service and you will be presented with the
WSDL as well. This is what WseWsdl2.exe does you switch in a TCP address.
</p>
        <img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=e77a6d49-c854-48a2-92ad-eff34bc68f5b" />
        <br />
        <hr />
© William Tay 2012 | Swinging Technologist 
<br /><a href="http://www.softwaremaker.net/blog">http://www.softwaremaker.net/blog</a></body>
      <title>WS-MetadataExchange and Indigo</title>
      <guid isPermaLink="false">http://www.softwaremaker.net/blog/PermaLink,guid,e77a6d49-c854-48a2-92ad-eff34bc68f5b.aspx</guid>
      <link>http://www.softwaremaker.net/blog/WSMetadataExchangeAndIndigo.aspx</link>
      <pubDate>Sat, 18 Jun 2005 05:08:50 GMT</pubDate>
      <description>&lt;p align=left&gt;
&lt;a href=http://msdn.microsoft.com/library/en-us/dnglobspec/html/ws-metadataexchange.pdf target=_blank&gt;WS-MetadataExchange&lt;/a&gt; is
used and enabled by default in &lt;a href="http://msdn.microsoft.com/Longhorn/understanding/pillars/Indigo/default.aspx" target="_blank"&gt;Indigo&lt;/a&gt; and
it comes with&amp;nbsp;&lt;a href=http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnglobspec/html/ws-policy.asp target=_blank&gt;WS-Policy&lt;/a&gt; as
well.
&lt;/p&gt;
&lt;p align=left&gt;
This is one specification that I find really useful&amp;nbsp;because the&amp;nbsp;current
convention of using http-get to get the metadata from asmx?WSDL is still a very .NET
sort of convention. For my projects, I usually like to put the metadata in a physical
file and deploy it as *.wsdl. Other people and toolkits will also have their own naming
conventions.
&lt;/p&gt;
&lt;p align=left&gt;
While using http-get is a very useful convention of retrieving metadata, we cannot
assume that&amp;nbsp;all services will support HTTP. In Indigo, it’s common to expose
an endpoint that only listens over IPC or SOAP-over-TCP.
&lt;/p&gt;
&lt;p align=left&gt;
At&amp;nbsp;its current Beta 1 drop, only http / https will be supported. I do forsee
that tcp will be supported in the next major drop.
&lt;/p&gt;
&lt;p align=left&gt;
In Indigo, the WS-MetadataExchange endpoints are added to the (http) service by default
at the &lt;strong&gt;&lt;em&gt;container-baseAddress/containee-endpointAddress&lt;/em&gt;&lt;/strong&gt; as
a &lt;strong&gt;&lt;em&gt;mex&lt;/em&gt;&lt;/strong&gt; suffix. You can also choose to define your own custom
mex endpoints. Another wonderful thing it supports is that it allows the specifying
of a custom metadata file (which I know I will be definitely be using). In other words,
instead of getting Indigo to automatically generate the metadata,&amp;nbsp;it will&amp;nbsp;send
the requestor to the&amp;nbsp;uri location of the metadata file&amp;nbsp;I specify.
&lt;/p&gt;
&lt;p align=left&gt;
If you have done some &lt;a href="http://www.oasis-open.org/committees/uddi-spec/tcspecs.shtml" target="_blank"&gt;UDDI&lt;/a&gt; work
before, you would be accustomed to the convention of sending standardized &lt;a href="http://www.w3.org/TR/soap/" target="_blank"&gt;(W3C)
SOAP&lt;/a&gt; Request messages for querying purposes. WS-MetadataExchange&amp;nbsp;uses the
same sort of principles, albeit with different querying implementations.
&lt;/p&gt;
&lt;p align=left&gt;
Here is how it works. There is no better way to illustrate this than to get really
friendly with the wire-layer plumbings. I have a tool &lt;a href="http://www.softwaremaker.net/blog/PermaLink,guid,315afe18-1b3a-41ca-93b4-d0c2262331fb.aspx" target=_blank&gt;here&lt;/a&gt; that
will give you a good view of the exchange.
&lt;/p&gt;
&lt;p&gt;
&lt;i&gt;&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #ffffcc"&gt;&lt;img height=16 alt=SPONSOR.jpg src="http://www.softwaremaker.net/blog/content/binary/SPONSOR.jpg" width=59 border=0&gt;
&lt;br&gt;
Getting an &lt;a href="http://www.testking.com/MCDBA-certification-training.htm"&gt;mcdba
certification&lt;/a&gt; is not a problem if you have done &lt;a href="http://www.testking.com/certification-training-Cisco.htm"&gt;cisco
training&lt;/a&gt; as well as other &lt;a href="http://www.testking.com/Security-Plus-certification-training.htm"&gt;security
training&lt;/a&gt; programs like &lt;a href="http://www.testking.com/MCP-certification-training.htm"&gt;mcp&lt;/a&gt; but
there is no replacement of &lt;a href="http://www.testking.com/certification-training-Microsoft.htm"&gt;microsoft
training&lt;/a&gt;.&lt;/span&gt;&lt;/i&gt;
&lt;/p&gt;
&lt;p align=left&gt;
You need to send a standard SOAP request to the listening mex endpoint that goes like
this (Replace the square brackets with angle ones)
&lt;/p&gt;
&lt;p align=left&gt;
&amp;nbsp; [s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing"]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; [s:Header]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [a:Action s:mustUnderstand="1"]&lt;strong&gt;http://schemas.xmlsoap.org/ws/2004/09/mex/GetMetadata/Request&lt;/strong&gt;[/a:Action]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [a:MessageID]uuid:f22ee227-3eeb-460d-9352-1a34e97bf911;id=0[/a:MessageID]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [a:To s:mustUnderstand="1"]http://localhost/servicemodelsamples/service.svc/mex[/a:To]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [a:ReplyTo]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [a:Address]http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous[/a:Address]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [/a:ReplyTo]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; [/s:Header]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; [s:Body]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [GetMetadata xmlns="http://schemas.xmlsoap.org/ws/2004/09/mex"
/]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; [/s:Body]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; [!-- OR an Empty SOAP Body will do just as fine --]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; [!-- s:Body /--]&lt;br&gt;
&amp;nbsp; [/s:Envelope]
&lt;/p&gt;
&lt;p align=left&gt;
In the &lt;a href="http://www.softwaremaker.net/blog/PermaLink,guid,315afe18-1b3a-41ca-93b4-d0c2262331fb.aspx" target=_blank&gt;tool&lt;/a&gt; I
had build, you need to put the a:Action value&amp;nbsp;(&lt;strong&gt;in bold above&lt;/strong&gt;)&amp;nbsp;into
the SOAPAction textbox as this has to be propagated up to the HTTP-Headers as a SOAPAction
header. This is one of the sticklers of using http to query for any SOAP Web Service.
Once you clicked post, you will see a good-looking response with all the metadata
of &lt;a href="http://www.w3.org/TR/wsdl" target="_blank"&gt;WSDL&lt;/a&gt; and WS-Policy in the
SOAP body. I took out a lot of details in the constraints of space. You should be
able to get the point.
&lt;/p&gt;
&lt;p align=left&gt;
&amp;nbsp; [s:Envelope xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:s="http://www.w3.org/2003/05/soap-envelope"]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; [s:Header]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [a:Action s:mustUnderstand="1"]http://schemas.xmlsoap.org/ws/2004/09/mex/GetMetadata/Response[/a:Action]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [a:RelatesTo]uuid:f22ee227-3eeb-460d-9352-1a34e97bf911;id=0[/a:RelatesTo]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [a:To s:mustUnderstand="1"]http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous[/a:To]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ActivityId xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics"]uuid:a55fa135-e1b9-4557-a7c3-39cbf042f85d[/ActivityId]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; [/s:Header]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; [s:Body]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [wsx:Metadata xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [wsx:MetadataSection Dialect="http://schemas.xmlsoap.org/wsdl/"
Identifier="http://tempuri.org/"]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [wsdl:definitions]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[!--WSDL and
XSD GUNK--]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[!--XSD GUNK--]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[!--WS-Policy
GUNK--]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [/wsdl:definitions]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [/wsx:MetadataSection]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [/wsx:Metadata]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; [/s:Body]&lt;br&gt;
&amp;nbsp; [/s:Envelope]
&lt;/p&gt;
&lt;p align=left&gt;
You&amp;nbsp;will be able to&amp;nbsp;load endpoints, bindings and types dynamically at runtime
with such information.
&lt;/p&gt;
&lt;p align=left&gt;
Do take note that Indigo is extremely strict about the mediaTypes headers and you
need to&amp;nbsp;set the contentType of the Http-Headers to &lt;strong&gt;application/soap+xml&lt;/strong&gt;.
This can be done in the configuration file.
&lt;/p&gt;
&lt;p align=left&gt;
Do &lt;a href="http://www.softwaremaker.net/blog/PermaLink,guid,315afe18-1b3a-41ca-93b4-d0c2262331fb.aspx" target=_blank&gt;download&lt;/a&gt; it
and try it.
&lt;/p&gt;
&lt;p align=left&gt;
If you think this is a cool new feature in the Microsoft technology space, it is not.
&lt;/p&gt;
&lt;p align=left&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/webservices/aa740663.aspx" target="_blank" title="Web Services Enchancements"&gt;Web
Services Enhancements (WSE)&lt;/a&gt; 2.0 also had it. All you need is to send in&amp;nbsp;a
"http://schemas.microsoft.com/wse/2003/06/RequestDescription" in the Action of a SOAP
Message request to a listening WSE 2.0 service and you will be presented with the
WSDL as well. This is what WseWsdl2.exe does you&amp;nbsp;switch&amp;nbsp;in a TCP address.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=e77a6d49-c854-48a2-92ad-eff34bc68f5b" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
© William Tay 2012 | Swinging Technologist 
&lt;br /&gt;
&lt;a href="http://www.softwaremaker.net/blog"&gt;http://www.softwaremaker.net/blog&lt;/a&gt;</description>
      <category>Software Architectures;Software Development;Useful Tips;Windows Communication Foundation (WCF) aka Indigo</category>
    </item>
    <item>
      <trackback:ping>http://www.softwaremaker.net/blog/Trackback.aspx?guid=d3a66c9e-9e3b-490c-8ccd-51fb067ab8d8</trackback:ping>
      <pingback:server>http://www.softwaremaker.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.softwaremaker.net/blog/PermaLink,guid,d3a66c9e-9e3b-490c-8ccd-51fb067ab8d8.aspx</pingback:target>
      <dc:creator>William Tay</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Fellow <a href="http://msdn.microsoft.com/isv/rd/default.aspx" target="_blank" title="Microsoft Regional Director">Microsoft
Regional Director</a> and a software legend, <a href="http://www.lhotka.net/WeBlog" target="_blank">Rocky
Lhotka</a> posted an interesting entry on Message-based WebMethod "overloading" <a href="http://www.lhotka.net/WeBlog/PermaLink.aspx?guid=2a5e2d14-3cf5-4cea-a296-24b894228f5d" target="_blank">here</a>.
</p>
        <p>
In it, he recommends (and I quote) that service methods use a request/response
or just request method signature: 
</p>
        <p>
          <font face="Georgia" color="#808080">
            <em>   response = f(request)</em>
          </font>
        </p>
        <p>
          <font face="Georgia" color="#808080">
            <em>or</em>
          </font>
        </p>
        <p>
          <font face="Georgia" color="#808080">
            <em>   f(request)</em>
          </font>
        </p>
        <p>
          <font face="Georgia" color="#808080">
            <em> "request" and "response" are both messages,
defined by a type or schema (with a little "s", not necessarily XSD).</em>
          </font>
        </p>
        <p>
          <font face="Georgia" color="#808080">
            <em>The actual procedure, f, is then implemented
as a Message Router, routing each call to an appropriate handler method depending
on the specific type of the request message.</em>
          </font>
        </p>
        <p>
I couldnt agree more. While easier to comprehend, the practice of passing parameters
to a Web Method call often sends the wrong messages across as <a href="http://www.w3.org/TR/soap/" target="_blank">(W3C)
SOAP</a> as just another RPC. Ultimately, if you have no idea and dont even want to
grok the innards of the <a href="http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemXmlSerializationXmlSerializerClassTopic" target="_blank">XMLSerializer</a>,
you would really think you are passing method parameters across or worse, think that
you are ferrying objects across the wire.
</p>
        <p>
Therefore, I firmly believe that it is for the good of all if you explicity specify
that you are expecting a XMLDocument / XMLElement / XMLNode and you will dispatch
the same on your endpoint. What you do at your implementation (whether it is serializing from
a type to deserializing from one) is placed squarely at the mercy of the tools in
your hand or the knowledge in your head.
</p>
        <p>
With the current state of tools (or lack there-of) today, I sit on the same camp as <a href="http://pluralsight.com/blogs/aaron/default.aspx" target="_blank">Aaron
Skonnard</a> and <a href="http://weblogs.asp.net/cweyer/" target="_blank">Christian
Weyer</a> (plus others, I believe) as I believe firmly in the contract-first approach.
Good devs should dig what is going on as close to the wire as possible, <strong><em>at
least once</em></strong>. Then they can use all the wizards and helpers they want.
This will help them understand better what is going on if they should need to troubleshoot
later (leaky abstractions) or find other ways to improve performance.
</p>
        <p>
This is just something that my team and me here have gathered over the years esp when
I have got many developers out there working on the same solution offshore in different
countries.
</p>
        <p>
While I agree that not many people out there enjoy or want to grok the angle brackets
and that the lack of tools out there is hugely to be blamed, tools make a productive
developer but not necessarily a proficient one.
</p>
        <p>
Until today, I still come across developers that still think Web Services are still
about transferring an object across the wire. Having terms like "Web References" and
"proxies", even deemed to be more abstract and dev-friendly, does potray the wrong
ideas across.
</p>
        <p>
I have always recommended young<em>er </em>developers who are interested in learning
about Web Services / ASMX and SOAP to try out the (<em>just-now-defunct</em>) <a href="http://msdn.microsoft.com/webservices/building/soaptk/default.aspx" target="_blank">Microsoft
SOAP Toolkit</a> first before moving on. I find that to be a great interesting
way to learn about XML SOAP Services as abstractions are kept to a minimum. Another
great SOAP Toolkit in the face of Microsoft's non-supporting stance of its own is <a href="http://www.pocketsoap.com/weblog/index.html" target="_blank">Simon
Fell</a>'s <a href="http://www.pocketsoap.com/" target="_blank">PocketSOAP</a>.
</p>
        <p>
Another fellow Regional Director, <a href="http://www.srtsolutions.com/public/blog/20574?model=user/myst/user-srt-corporate&amp;style=user/myst/srt-corporate&amp;scheme=green" target="_blank">Bill
Wagner</a> (who authored an very impressive book "<a href="http://www.awprofessional.com/title/0321245660" target="_blank">Effective
C#</a>") posted his solution to Rocky's post <a href="http://www.srtsolutions.com/public/item/91025" target="_blank">here</a>. I
have used the same sort of approach that Bill had documented before and it is
good and does serve its purpose. However (<em>and please correct me if I am wrong</em>),
it bounds the message contracts and datatypes tightly to the WSDL. If I am going to
add a third Request / Response pair of classes, it will render my initial WSDL invalid
(unless of course, if I am willing to add an additional endpoint)
</p>
        <p>
I worked on a project before which specify that (newer) datatypes are to be added
in phases and therefore, we had to decouple the XSD from the WSDL (which is in accordance
with one of the <a href="http://devresource.hp.com/drc/slide_presentations/schemaWSDL/index.jsp" target="_blank">best
practice of WSDL Deployments</a> -- modular and the separation of concerns). Oh, by
the way, this is practiced in <a href="http://msdn.microsoft.com/Longhorn/understanding/pillars/Indigo/default.aspx" target="_blank">Indigo</a>. 
</p>
        <p>
I don't know if there is a way to decouple the XSDs from the WSDL in VS2003 today.
Even if there is, I am guessing it is a difficult hack at best. So, what I did was
to create the XSDs for each datatype as they come along and do a XSD import in my
WSDL. At my message exchange contract, I used an <a href="http://www.xfront.com/ExtensibleContentModels.html" target="_blank">open
content type with xsd:any</a>. Thereafter, I author my own WSDL with the help of Christian's
and <a href="http://www.thinktecture.com/" target="_blank">Thinktecture</a>'s <a href="http://www.thinktecture.com/Resources/Software/WSContractFirst/default.html" target="_blank">WSContractFirst</a>.
Since the message and the datatype XSDs are all imported, the wsdl actually has a
small footprint now. With the wsdl /server switch, xsd:any becomes an XMLElement type.
For abstraction within my service, I changed it to an object in my implementation
detail.
</p>
        <p>
          <strong>
            <em>Note: .NET 1.1's WSDL.exe /server switch, in my mind, is still
fairly limited and comes with a couple of annoying things I didn't like BUT I will
expand this in detail later.</em>
          </strong>
        </p>
        <p>
[System.Xml.Serialization.XmlTypeAttribute([Namespace]:="urn:softwaremaker-n<br />
et.swmstoreexchangemessages"]&gt; _<br />
Public Class Response<br />
  Public Result As Result<br />
End Class
</p>
        <p>
[System.Xml.Serialization.XmlTypeAttribute([Namespace]:="urn:softwaremaker-n<br />
et.swmstoreexchangemessages")] _<br />
Public Class Result<br />
  [System.Xml.Serialization.XmlElement(ElementName:="Book",<br />
Type:=GetType(BookType),<br />
Namespace:="urn:softwaremaker-net.swmstoreextendedtypes"), _<br />
  System.Xml.Serialization.XmlElement(ElementName:="CD",<br />
Type:=GetType(CDType),<br />
Namespace:="urn:softwaremaker-net.swmstoreextendedtypes"), _<br />
  System.Xml.Serialization.XmlElement(ElementName:="Anything",<br />
Type:=GetType(AnyType),<br />
Namespace:="urn:softwaremaker-net.swmstoreextendedtypes")] _<br />
  Public Any As Object<br />
End Class
</p>
        <p>
  Public Function<br />
ProcessRequest([System.Xml.Serialization.XmlElementAttribute([Namespace]:="u<br />
rn:softwaremaker-net.swmstoreexchangemessages")] ByVal Request As Object) As [System.Xml.Serialization.XmlElementAttribute("Response",<br />
[Namespace]:="urn:softwaremaker-net.swmstoreexchangemessages")] Response<br />
   '...<br />
   End Function
</p>
        <p>
Once the consumer points to my wsdl (I turned off documentation of asmx by default),
all the XSDs are imported by VS2003 as well (and that is a good thing). The xsd:any
is still an XMLElement over at their end and we leave it as it is since we cannot
control what they do there. The consumer can choose to deal with the raw XML if they
want to OR do an xsd.exe imported.xsd /c and let the XMLSerializer do its (<em>limited</em>)
magic <img src="http://www.softwaremaker.net/pictures/swmemoticons/wink.gif" />.
</p>
        <p>
In this sense, no matter how many more datatypes I add or remove, my wire-contract
remains the same. I just let the endpoints serialize / deserialize the open-content
xml (xsd:any). In my project I had mentioned earlier, I have one asmx endpoint servicing
multiple consumers each sending different messages that conforms to different XSDs
(For example, GroupA sends BookType and GroupB sends the CDType as well as a
GroupC next time that sends a type that is unknown to me today). The thing I need
to take care of is to send the appropriate datatype xsd to the appropriate groups
so they can serialize / deserialize into the appropriate types. As you can see from
the code snippet above, at my asmx, I will just add any new datatypes that come along.
</p>
        <p>
While, this may seem like too much compared to Bill's solution above, it was necessary
to decouple the datatypes from my wsdl in that project and the XSD Editor (codenamed:
daVinci ?) in VS.NET2003 was the best tool I had in hand at that time. Developers
are too comfortable with objects. This is obviously natural with the decade-long evolution
of Object-Orientation and the power of abstractions the OO tools and languages bring
today.
</p>
        <p>
However, other factors like time, extensibility, standardization make abstractions
expensive...and among others, these are all factors that make up the principles of
the move towards Service-Orientation. Now, if we have to make and designed services
to be explicit, this means that devs need to know they are explicity invoking a service
across the wire, how far can the tools go to hide all the plumbings and yet not hide
the fact that the service is <em>on the other side</em> and not just a mere shadow
copy of a <a href="http://www.devx.com/dotnet/Article/7002/0/page" target="_blank">remoting</a> object
that seems to reside on the same application domain.
</p>
        <p>
Will Service-Orientation fail to hit the mainstream because of this ? I dont know.
I guess only time will tell.
</p>
        <img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=d3a66c9e-9e3b-490c-8ccd-51fb067ab8d8" />
        <br />
        <hr />
© William Tay 2012 | Swinging Technologist 
<br /><a href="http://www.softwaremaker.net/blog">http://www.softwaremaker.net/blog</a></body>
      <title>Contract First: Message-based WebMethod "overloading"</title>
      <guid isPermaLink="false">http://www.softwaremaker.net/blog/PermaLink,guid,d3a66c9e-9e3b-490c-8ccd-51fb067ab8d8.aspx</guid>
      <link>http://www.softwaremaker.net/blog/ContractFirstMessagebasedWebMethodOverloading.aspx</link>
      <pubDate>Thu, 05 May 2005 02:22:18 GMT</pubDate>
      <description>&lt;p&gt;
Fellow&amp;nbsp;&lt;a href="http://msdn.microsoft.com/isv/rd/default.aspx" target="_blank" title="Microsoft Regional Director"&gt;Microsoft
Regional Director&lt;/a&gt;&amp;nbsp;and a software legend, &lt;a href="http://www.lhotka.net/WeBlog" target=_blank&gt;Rocky
Lhotka&lt;/a&gt;&amp;nbsp;posted an interesting entry on Message-based WebMethod "overloading" &lt;a href="http://www.lhotka.net/WeBlog/PermaLink.aspx?guid=2a5e2d14-3cf5-4cea-a296-24b894228f5d" target=_blank&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
In it, he recommends&amp;nbsp;(and I quote) that service methods use a request/response
or just request method signature:&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Georgia color=#808080&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp; response = f(request)&lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Georgia color=#808080&gt;&lt;em&gt;or&lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Georgia color=#808080&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp; f(request)&lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Georgia color=#808080&gt;&lt;em&gt;&amp;nbsp;"request" and "response" are both messages,
defined by a type or schema (with a little "s", not necessarily XSD).&lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Georgia color=#808080&gt;&lt;em&gt;The actual procedure, f, is then implemented
as a Message Router, routing each call to an appropriate handler method depending
on the specific type of the request message.&lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
I couldnt agree more. While easier to comprehend, the practice of passing parameters
to a Web Method call often sends the wrong messages across as &lt;a href="http://www.w3.org/TR/soap/" target="_blank"&gt;(W3C)
SOAP&lt;/a&gt; as just another RPC. Ultimately, if you have no idea and dont even want to
grok the innards of the &lt;a href="http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemXmlSerializationXmlSerializerClassTopic" target=_blank&gt;XMLSerializer&lt;/a&gt;,
you would really think you are passing method parameters across or worse, think that
you are ferrying objects across the wire.
&lt;/p&gt;
&lt;p&gt;
Therefore, I firmly believe that it is for the good of all if you explicity specify
that you are expecting a XMLDocument / XMLElement / XMLNode and you will dispatch
the same on your endpoint. What you do at your implementation (whether it is serializing&amp;nbsp;from
a type to deserializing from one) is placed squarely at the mercy of the tools in
your hand or the knowledge in your head.
&lt;/p&gt;
&lt;p&gt;
With the current state of tools (or lack there-of) today, I sit on the same camp as &lt;a href="http://pluralsight.com/blogs/aaron/default.aspx" target=_blank&gt;Aaron
Skonnard&lt;/a&gt; and &lt;a href="http://weblogs.asp.net/cweyer/" target=_blank&gt;Christian
Weyer&lt;/a&gt; (plus others, I believe) as I believe firmly in the contract-first approach.
Good devs should dig what is going on as close to the wire as possible, &lt;strong&gt;&lt;em&gt;at
least once&lt;/em&gt;&lt;/strong&gt;. Then they can use all the wizards and helpers they want.
This will help them understand better what is going on if they should need to troubleshoot
later (leaky abstractions) or find other ways to improve performance.
&lt;/p&gt;
&lt;p&gt;
This is just something that my team and me here have gathered over the years esp when
I have got many developers out there working on the same solution offshore in different
countries.
&lt;/p&gt;
&lt;p&gt;
While I agree that not many people out there enjoy or want to grok the angle brackets
and that the lack of tools out there is hugely to be blamed, tools make a productive
developer but not necessarily a proficient one.
&lt;/p&gt;
&lt;p&gt;
Until today, I still come across developers that still think Web Services are still
about transferring an object across the wire. Having terms like "Web References" and
"proxies", even deemed to be more abstract and dev-friendly, does potray the wrong
ideas across.
&lt;/p&gt;
&lt;p&gt;
I have always recommended young&lt;em&gt;er &lt;/em&gt;developers who are interested in learning
about Web Services / ASMX and SOAP to try out the (&lt;em&gt;just-now-defunct&lt;/em&gt;) &lt;a href="http://msdn.microsoft.com/webservices/building/soaptk/default.aspx" target=_blank&gt;Microsoft
SOAP Toolkit&lt;/a&gt;&amp;nbsp;first before moving on. I find that to be a great interesting
way to learn about XML SOAP Services as abstractions are kept to a minimum. Another
great SOAP Toolkit in the face of Microsoft's non-supporting stance of its own is &lt;a href="http://www.pocketsoap.com/weblog/index.html" target=_blank&gt;Simon
Fell&lt;/a&gt;'s &lt;a href="http://www.pocketsoap.com/" target=_blank&gt;PocketSOAP&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Another fellow Regional Director, &lt;a href="http://www.srtsolutions.com/public/blog/20574?model=user/myst/user-srt-corporate&amp;amp;style=user/myst/srt-corporate&amp;amp;scheme=green" target=_blank&gt;Bill
Wagner&lt;/a&gt;&amp;nbsp;(who authored an very impressive book "&lt;a href="http://www.awprofessional.com/title/0321245660" target=_blank&gt;Effective
C#&lt;/a&gt;") posted his solution to Rocky's post &lt;a href="http://www.srtsolutions.com/public/item/91025" target=_blank&gt;here&lt;/a&gt;.&amp;nbsp;I
have used the same sort of approach that Bill had documented&amp;nbsp;before and it is
good and does serve its purpose. However (&lt;em&gt;and please correct me if I am wrong&lt;/em&gt;),
it bounds the message contracts and datatypes tightly to the WSDL. If I am going to
add a third Request / Response pair of classes, it will render my initial WSDL invalid
(unless of course, if I am willing to add an additional endpoint)
&lt;/p&gt;
&lt;p&gt;
I worked on a project before which specify that (newer) datatypes are to be added
in phases and therefore, we had to decouple the XSD from the WSDL (which is in accordance
with one of the &lt;a href="http://devresource.hp.com/drc/slide_presentations/schemaWSDL/index.jsp" target=_blank&gt;best
practice of WSDL Deployments&lt;/a&gt; -- modular and the separation of concerns). Oh, by
the way, this is practiced in &lt;a href="http://msdn.microsoft.com/Longhorn/understanding/pillars/Indigo/default.aspx" target="_blank"&gt;Indigo&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
I don't know if there is a way to decouple the XSDs from the WSDL in VS2003 today.
Even if there is, I am guessing it is a difficult hack at best. So, what I did was
to create the XSDs for each datatype as they come along and do a XSD import in my
WSDL. At my message exchange contract, I used an &lt;a href="http://www.xfront.com/ExtensibleContentModels.html" target=_blank&gt;open
content type with xsd:any&lt;/a&gt;. Thereafter, I author my own WSDL with the help of Christian's
and &lt;a href="http://www.thinktecture.com/" target=_blank&gt;Thinktecture&lt;/a&gt;'s &lt;a href="http://www.thinktecture.com/Resources/Software/WSContractFirst/default.html" target=_blank&gt;WSContractFirst&lt;/a&gt;.
Since the message and the datatype XSDs are all imported, the wsdl actually has a
small footprint now. With the wsdl /server switch, xsd:any becomes an XMLElement type.
For abstraction within my service, I changed it to an object in my implementation
detail.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;Note:&amp;nbsp;.NET 1.1's&amp;nbsp;WSDL.exe /server switch, in my mind, is still
fairly limited and comes with a couple of annoying things I didn't like BUT I will
expand this in detail later.&lt;/em&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
[System.Xml.Serialization.XmlTypeAttribute([Namespace]:="urn:softwaremaker-n&lt;br&gt;
et.swmstoreexchangemessages"]&amp;gt; _&lt;br&gt;
Public Class Response&lt;br&gt;
&amp;nbsp; Public Result As Result&lt;br&gt;
End Class
&lt;/p&gt;
&lt;p&gt;
[System.Xml.Serialization.XmlTypeAttribute([Namespace]:="urn:softwaremaker-n&lt;br&gt;
et.swmstoreexchangemessages")] _&lt;br&gt;
Public Class Result&lt;br&gt;
&amp;nbsp; [System.Xml.Serialization.XmlElement(ElementName:="Book",&lt;br&gt;
Type:=GetType(BookType),&lt;br&gt;
Namespace:="urn:softwaremaker-net.swmstoreextendedtypes"), _&lt;br&gt;
&amp;nbsp; System.Xml.Serialization.XmlElement(ElementName:="CD",&lt;br&gt;
Type:=GetType(CDType),&lt;br&gt;
Namespace:="urn:softwaremaker-net.swmstoreextendedtypes"), _&lt;br&gt;
&amp;nbsp; System.Xml.Serialization.XmlElement(ElementName:="Anything",&lt;br&gt;
Type:=GetType(AnyType),&lt;br&gt;
Namespace:="urn:softwaremaker-net.swmstoreextendedtypes")] _&lt;br&gt;
&amp;nbsp; Public Any As Object&lt;br&gt;
End Class
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp; Public Function&lt;br&gt;
ProcessRequest([System.Xml.Serialization.XmlElementAttribute([Namespace]:="u&lt;br&gt;
rn:softwaremaker-net.swmstoreexchangemessages")] ByVal Request As Object) As [System.Xml.Serialization.XmlElementAttribute("Response",&lt;br&gt;
[Namespace]:="urn:softwaremaker-net.swmstoreexchangemessages")] Response&lt;br&gt;
&amp;nbsp;&amp;nbsp; '...&lt;br&gt;
&amp;nbsp;&amp;nbsp; End Function
&lt;/p&gt;
&lt;p&gt;
Once the consumer points to my wsdl (I turned off documentation of asmx by default),
all the XSDs are imported by VS2003 as well (and that is a good thing). The xsd:any
is still an XMLElement over at their end and we leave it as it is since we cannot
control what they do there. The consumer can choose to deal with the raw XML if they
want to OR do an xsd.exe imported.xsd /c and let the XMLSerializer do its (&lt;em&gt;limited&lt;/em&gt;)
magic &lt;img src="http://www.softwaremaker.net/pictures/swmemoticons/wink.gif"&gt;.
&lt;/p&gt;
&lt;p&gt;
In this sense, no matter how many more datatypes I add or remove, my wire-contract
remains the same. I just let the endpoints serialize / deserialize the open-content
xml (xsd:any). In my project I had mentioned earlier, I have one asmx endpoint servicing
multiple consumers each sending different messages that conforms to different XSDs
(For example, GroupA sends BookType and GroupB sends the CDType as&amp;nbsp;well as&amp;nbsp;a
GroupC next time that sends a type that is unknown to me today). The thing I need
to take care of is to send the appropriate datatype xsd to the appropriate groups
so they can serialize / deserialize into the appropriate types. As you can see from
the code snippet above, at my asmx, I will just add any new datatypes that come along.
&lt;/p&gt;
&lt;p&gt;
While, this may seem like too much compared to Bill's solution above, it was necessary
to decouple the datatypes from my wsdl in that project and the XSD Editor (codenamed:
daVinci ?) in VS.NET2003 was the best tool I had in hand at that time. Developers
are too comfortable with objects. This is obviously natural with the decade-long evolution
of Object-Orientation and the power of abstractions the OO tools and languages bring
today.
&lt;/p&gt;
&lt;p&gt;
However, other factors like time, extensibility, standardization make abstractions
expensive...and among others, these are all factors that make up the principles of
the move towards Service-Orientation. Now, if we have to make and designed services
to be explicit, this means that devs need to know they are explicity invoking a service
across the wire, how far can the tools go to hide all the plumbings and yet not hide
the fact that the service is &lt;em&gt;on the other side&lt;/em&gt; and not just a mere&amp;nbsp;shadow
copy of a &lt;a href="http://www.devx.com/dotnet/Article/7002/0/page" target=_blank&gt;remoting&lt;/a&gt; object
that seems to reside on the same application domain.
&lt;/p&gt;
&lt;p&gt;
Will Service-Orientation fail to hit the mainstream because of this ? I dont know.
I guess only time will tell.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=d3a66c9e-9e3b-490c-8ccd-51fb067ab8d8" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
© William Tay 2012 | Swinging Technologist 
&lt;br /&gt;
&lt;a href="http://www.softwaremaker.net/blog"&gt;http://www.softwaremaker.net/blog&lt;/a&gt;</description>
      <category>Service-Orientation;Software Architectures;Software Development;XML Services</category>
    </item>
    <item>
      <trackback:ping>http://www.softwaremaker.net/blog/Trackback.aspx?guid=cd3c52b8-7f7a-466e-a68c-149401598e13</trackback:ping>
      <pingback:server>http://www.softwaremaker.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.softwaremaker.net/blog/PermaLink,guid,cd3c52b8-7f7a-466e-a68c-149401598e13.aspx</pingback:target>
      <dc:creator>William Tay</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I have been a very interested observer in the recent debate between <a href="http://pluralsight.com/blogs/tewald/archive/2005/02/09/5702.aspx" target="_blank">Tim</a> and <a href="http://staff.newtelligence.net/clemensv/PermaLink.aspx?guid=86fdfcaa-9df9-4b71-822a-fcc77453da33" target="_blank">Clemens</a> <a href="http://staff.newtelligence.net/clemensv/PermaLink.aspx?guid=39ba6b34-40ba-42ef-ba78-9f9ebefe6a7a" target="_blank">on</a> their
definition of the contract in the context of XSD/WSDL/Policy. <a href="http://pluralsight.com/blogs/aaron/" target="_blank">Aaron</a> has <a href="http://pluralsight.com/blogs/aaron/archive/2005/02/10/5738.aspx" target="_blank">this</a> to
share as well which I read with great interest.
</p>
        <p>
I have done a fair amount of work in preparing to give some prezzos and
talks about XSD/WSDL/Policy this year. This is the feedback I had gathered over past
few months when developers questioned the reach of interoperability of XML SOAP Services...and
most of the time, they have no idea what is going on with the XMLSerializer and the
WSDL Generator.
</p>
        <p>
Although I am on Clemen's side when he states that:
</p>
        <p>
"<font face="Georgia" color="#006400"><em>Staring at WSDL is about as interesting
as looking at the output of “midl /Oicf”.</em></font>"
</p>
        <p>
I do stand on different ground as him when I believe that developers <em><strong>still</strong></em> need
to know what is going on in the deeper plumbings of things. Semantics discovery is
still a distance away. While the RAD approach of VS.NET and <a href="http://msdn.microsoft.com/Longhorn/understanding/pillars/Indigo/default.aspx" target="_blank">Indigo</a> is
great in churning out developer and business productivity, the real world of the enterprise
is rather different. Working in a fairly large SI give me an in-depth look at how
disparate systems <strong><em>MUST BE</em></strong> made to integrate and work with
each other. Introducing newer, better systems such as Indigo is not even an option
at this point in time.
</p>
        <p>
WSDL-generating tools are still very primtive today. There is no easy way to really
extend or version my XML SOAP Services without mucking around with the 
<ANGLE>
brackets of WSDL today. If you implement some kind of a proxy-middleware layer approach
as a messaging layer (known as the Enterprise Service or Message Bus to some),
it is highly likely that it is doing things to your XSD or WSDL to attain its
advertised benefits. The point is --- You cannot run away from having to
muck around with it and we are not even talking about interoperability yet.
</ANGLE></p>
        <p>
Clemens, however, did state his point is only valid "<font face="Georgia" color="#006400"><em>if
you’ll be sticking to Indigo</em></font>". Unfortunately, I dont have that luxury
to work in an environment with a single homogeneous platform and I really doubt that
will change in the real world for many years to come. So besides having to know what
the wire-format looks like, it is equally important to agree to <em><strong>that</strong></em> format
first and this is where XSD/WSDL/Policy comes in.
</p>
        <p>
I think Aaron hit the point in his post when he did a comparison of roles between
IDL and XSD/WSDL/Policy plays in the definition of a contract. However, I would read WSDL
than IDL anytime of the day.
</p>
        <p>
I believe that the WSDL generated by default (*.asmx?WSDL) from VS.NET is difficult
to read and understand before it is not in-line with proper practices. Modularity,
Re-usability and Separation of concerns are not being diligently practiced. That
is fine, and like what Clemens say, as it is not meant to be read by many humans...but
by not treating it as an official contract is totally different thing altogether.
</p>
        <p>
I think WSDL is the indispensable API and is poised to be the universal contract design
view. I am a great fan of the contract-first approach and <a href="http://www.thinktecture.com/" target="_blank">Thinktecture</a>'s <a href="http://www.thinktecture.com/Resources/Software/WSContractFirst/default.html" target="_blank">WSCF</a>,
currently in the 4th rendition, is a huge step in the right direction to realize that
design implementation. It does a great job in separating the data types from the message
types. I cannot wait for it to go one step further in version 5 where it will <a href="http://weblogs.asp.net/cweyer/archive/2005/02/09/370131.aspx" target="_blank">generate
interfaces to host the service implementation regardless of where the implementation
may be</a>, amongst other things. Thanks <a href="http://weblogs.asp.net/cweyer" target="_blank">Christian</a> for
listening to my <a href="http://weblogs.asp.net/cweyer/articles/358680.aspx" target="_blank">pleas</a>.
</p>
        <p>
And if you are not debating the fact that WSDL is the contract but it is the
readability you are having an issue with, there are a couple of ways to
make a WSDL easier to read. If you are having trouble with the 
<ANGLE>
brackets, then why not try the {curly} ones instead. I used <a href="http://www.capescience.com/simplifiedwsdl.xslt" target="_blank">CapeClear's
Simplified WSDL Stylesheet</a> to bend the angles into curls.
</ANGLE></p>
        <p>
And of course, some people from the other camp do <a href="http://weblogs.java.net/blog/jdcmember/archive/2005/04/ws_authors_you.html" target="_blank">share</a> the
same views as well.
</p>
        <p>
Barring any further <a href="http://www.softwaremaker.net/blog/PermaLink,guid,b01ff393-28f1-4c66-b527-6c8a1a26cfad.aspx" target="_blank">whopping</a> from <a href="http://www.xml.com/pub/a/2004/11/17/salz.html" target="_blank">Rich
Salz</a> on <a href="http://www.w3.org/TR/wsdl20/" target="_blank">WSDL 2.0</a>, I
think some of the recommendations of WSDL 2.0 does make it slightly flatter and therefore
easier on the eyes. Examples include:
</p>
        <ol>
          <li>
Removal of Message Constructs -- It is more or less redundant now with Doc/Literal
in wide acceptance now and is rightfully placed in the 
<TYPES>
section. 
<li>
Renaming of <em>PortTypes to Interfaces</em> and <em>Port to Endpoint</em> can give
a Software / XML SOAP Service geek orgasms. 
</li><li>
Introducing XML Schema model XSD-type enhancements such as <em>wsdl:import</em> and <em>wsdl:include</em> does
bring about certain principles of modularity, re-usability and separation of concerns. 
</li><li>
...</li></TYPES></li>
        </ol>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=cd3c52b8-7f7a-466e-a68c-149401598e13" />
        <br />
        <hr />
© William Tay 2012 | Swinging Technologist 
<br /><a href="http://www.softwaremaker.net/blog">http://www.softwaremaker.net/blog</a></body>
      <title>The Great XSD/WSDL/Policy Contract Divide</title>
      <guid isPermaLink="false">http://www.softwaremaker.net/blog/PermaLink,guid,cd3c52b8-7f7a-466e-a68c-149401598e13.aspx</guid>
      <link>http://www.softwaremaker.net/blog/TheGreatXSDWSDLPolicyContractDivide.aspx</link>
      <pubDate>Fri, 11 Feb 2005 02:56:39 GMT</pubDate>
      <description>&lt;p&gt;
I have been a very interested observer in the recent debate between &lt;a href="http://pluralsight.com/blogs/tewald/archive/2005/02/09/5702.aspx" target=_blank&gt;Tim&lt;/a&gt; and &lt;a href="http://staff.newtelligence.net/clemensv/PermaLink.aspx?guid=86fdfcaa-9df9-4b71-822a-fcc77453da33" target=_blank&gt;Clemens&lt;/a&gt;&amp;nbsp;&lt;a href="http://staff.newtelligence.net/clemensv/PermaLink.aspx?guid=39ba6b34-40ba-42ef-ba78-9f9ebefe6a7a" target=_blank&gt;on&lt;/a&gt; their
definition of the contract in the context of XSD/WSDL/Policy. &lt;a href="http://pluralsight.com/blogs/aaron/" target=_blank&gt;Aaron&lt;/a&gt; has &lt;a href="http://pluralsight.com/blogs/aaron/archive/2005/02/10/5738.aspx" target=_blank&gt;this&lt;/a&gt; to
share as well which I read with great interest.
&lt;/p&gt;
&lt;p&gt;
I&amp;nbsp;have done a fair amount of work in&amp;nbsp;preparing to give some prezzos and
talks about XSD/WSDL/Policy this year. This is the feedback I had gathered over past
few months when developers questioned the reach of interoperability of XML SOAP Services...and
most of the time, they have no idea what is going on with the XMLSerializer and the
WSDL Generator.
&lt;/p&gt;
&lt;p&gt;
Although I am on Clemen's side when he states that:
&lt;/p&gt;
&lt;p&gt;
"&lt;font face=Georgia color=#006400&gt;&lt;em&gt;Staring at WSDL is about as interesting as looking
at the output of “midl /Oicf”.&lt;/em&gt;&lt;/font&gt;"
&lt;/p&gt;
&lt;p&gt;
I do stand on different ground as him when I believe that developers &lt;em&gt;&lt;strong&gt;still&lt;/strong&gt;&lt;/em&gt; need
to know what is going on in the deeper plumbings of things. Semantics discovery is
still a distance away. While the RAD approach of VS.NET and &lt;a href="http://msdn.microsoft.com/Longhorn/understanding/pillars/Indigo/default.aspx" target="_blank"&gt;Indigo&lt;/a&gt; is
great in churning out developer and business productivity, the real world of the enterprise
is rather different. Working in a fairly large SI give me an in-depth look at how
disparate systems &lt;strong&gt;&lt;em&gt;MUST BE&lt;/em&gt;&lt;/strong&gt; made to integrate and work with
each other. Introducing newer, better systems such as Indigo is not even an option
at this point in time.
&lt;/p&gt;
&lt;p&gt;
WSDL-generating tools are still very primtive today. There is no easy way to really
extend or version my XML SOAP Services without mucking around with the 
&lt;ANGLE&gt;
brackets of WSDL today. If you implement some kind of a proxy-middleware layer approach
as a messaging layer (known as&amp;nbsp;the Enterprise Service or Message Bus to some),
it is highly likely that it is doing things to your XSD or WSDL to attain&amp;nbsp;its
advertised&amp;nbsp;benefits. The point is --- You cannot run away from&amp;nbsp;having to
muck&amp;nbsp;around with it and we are not even talking about interoperability yet.
&lt;/p&gt;
&lt;p&gt;
Clemens, however,&amp;nbsp;did state his point is only valid "&lt;font face=Georgia color=#006400&gt;&lt;em&gt;if
you’ll be sticking to Indigo&lt;/em&gt;&lt;/font&gt;". Unfortunately, I dont have that luxury
to work in an environment with a single homogeneous platform and I really doubt that
will change in the real world for many years to come. So besides having to know what
the wire-format looks like, it is equally important to agree to &lt;em&gt;&lt;strong&gt;that&lt;/strong&gt;&lt;/em&gt; format
first and this is where XSD/WSDL/Policy comes in.
&lt;/p&gt;
&lt;p&gt;
I think Aaron hit the point in his post when he did a comparison of roles between
IDL and XSD/WSDL/Policy plays in the definition of a contract. However, I would read&amp;nbsp;WSDL
than IDL anytime of the day.
&lt;/p&gt;
&lt;p&gt;
I believe that the WSDL generated by default (*.asmx?WSDL) from VS.NET is difficult
to read and understand before it is not in-line with proper practices. Modularity,
Re-usability and Separation of concerns&amp;nbsp;are not being diligently practiced. That
is fine, and like what Clemens say, as it is not meant to be read by many humans...but
by not treating it as an official contract is totally different thing altogether.
&lt;/p&gt;
&lt;p&gt;
I think WSDL is the indispensable API and is poised to be the universal contract design
view. I am a great fan of the contract-first approach and &lt;a href="http://www.thinktecture.com/" target=_blank&gt;Thinktecture&lt;/a&gt;'s &lt;a href="http://www.thinktecture.com/Resources/Software/WSContractFirst/default.html" target=_blank&gt;WSCF&lt;/a&gt;,
currently in the 4th rendition, is a huge step in the right direction to realize that
design implementation. It does a great job in separating the data types from the message
types. I cannot wait for it to go one step further in version 5 where it will &lt;a href="http://weblogs.asp.net/cweyer/archive/2005/02/09/370131.aspx" target=_blank&gt;generate
interfaces to host the service implementation regardless of where the implementation
may be&lt;/a&gt;, amongst other things. Thanks&amp;nbsp;&lt;a href="http://weblogs.asp.net/cweyer" target=_blank&gt;Christian&lt;/a&gt; for
listening to my &lt;a href="http://weblogs.asp.net/cweyer/articles/358680.aspx" target=_blank&gt;pleas&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
And if you are not debating&amp;nbsp;the fact that WSDL is the contract but it is the
readability you are having an issue with, there are&amp;nbsp;a couple of&amp;nbsp;ways to
make a WSDL easier to read. If you are having trouble with the 
&lt;ANGLE&gt;
brackets, then why not try the {curly} ones instead. I used &lt;a href="http://www.capescience.com/simplifiedwsdl.xslt" target=_blank&gt;CapeClear's
Simplified WSDL Stylesheet&lt;/a&gt; to bend the angles into curls.
&lt;/p&gt;
&lt;p&gt;
And of course, some&amp;nbsp;people from&amp;nbsp;the other camp do &lt;a href="http://weblogs.java.net/blog/jdcmember/archive/2005/04/ws_authors_you.html" target=_blank&gt;share&lt;/a&gt; the
same views as well.
&lt;/p&gt;
&lt;p&gt;
Barring any further &lt;a href="http://www.softwaremaker.net/blog/PermaLink,guid,b01ff393-28f1-4c66-b527-6c8a1a26cfad.aspx" target=_blank&gt;whopping&lt;/a&gt; from &lt;a href="http://www.xml.com/pub/a/2004/11/17/salz.html" target=_blank&gt;Rich
Salz&lt;/a&gt; on &lt;a href="http://www.w3.org/TR/wsdl20/" target=_blank&gt;WSDL 2.0&lt;/a&gt;, I think
some of the recommendations of WSDL 2.0 does make it slightly flatter and therefore
easier on the eyes. Examples include:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Removal of Message Constructs -- It is more or less redundant now with Doc/Literal
in wide acceptance now and is rightfully placed in the 
&lt;TYPES&gt;
section. 
&lt;li&gt;
Renaming of &lt;em&gt;PortTypes to Interfaces&lt;/em&gt; and &lt;em&gt;Port to Endpoint&lt;/em&gt; can give
a Software / XML SOAP Service geek orgasms. 
&lt;li&gt;
Introducing&amp;nbsp;XML Schema model XSD-type enhancements such as &lt;em&gt;wsdl:import&lt;/em&gt; and &lt;em&gt;wsdl:include&lt;/em&gt; does
bring about certain principles of modularity, re-usability and separation of concerns. 
&lt;li&gt;
...&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=cd3c52b8-7f7a-466e-a68c-149401598e13" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
© William Tay 2012 | Swinging Technologist 
&lt;br /&gt;
&lt;a href="http://www.softwaremaker.net/blog"&gt;http://www.softwaremaker.net/blog&lt;/a&gt;</description>
      <category>Random Musings;Software Architectures</category>
    </item>
    <item>
      <trackback:ping>http://www.softwaremaker.net/blog/Trackback.aspx?guid=c032d957-d6a3-4b2f-bd47-cea9aecf401b</trackback:ping>
      <pingback:server>http://www.softwaremaker.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.softwaremaker.net/blog/PermaLink,guid,c032d957-d6a3-4b2f-bd47-cea9aecf401b.aspx</pingback:target>
      <dc:creator>William Tay</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Bill Gates <a href="http://www.microsoft.com/mscorp/execmail/" target="_blank">talks</a> about
Microsoft's commitment to interop
</p>
Any questions ?<img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=c032d957-d6a3-4b2f-bd47-cea9aecf401b" /><br /><hr />
© William Tay 2012 | Swinging Technologist 
<br /><a href="http://www.softwaremaker.net/blog">http://www.softwaremaker.net/blog</a></body>
      <title>Microsoft's committment to Interoperability</title>
      <guid isPermaLink="false">http://www.softwaremaker.net/blog/PermaLink,guid,c032d957-d6a3-4b2f-bd47-cea9aecf401b.aspx</guid>
      <link>http://www.softwaremaker.net/blog/MicrosoftsCommittmentToInteroperability.aspx</link>
      <pubDate>Fri, 04 Feb 2005 00:43:49 GMT</pubDate>
      <description>&lt;p&gt;
Bill Gates &lt;a href="http://www.microsoft.com/mscorp/execmail/" target=_blank&gt;talks&lt;/a&gt; about
Microsoft's commitment to interop
&lt;/p&gt;
Any questions ?&lt;img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=c032d957-d6a3-4b2f-bd47-cea9aecf401b" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
© William Tay 2012 | Swinging Technologist 
&lt;br /&gt;
&lt;a href="http://www.softwaremaker.net/blog"&gt;http://www.softwaremaker.net/blog&lt;/a&gt;</description>
      <category>Software Architectures;Technology;XML Services</category>
    </item>
    <item>
      <trackback:ping>http://www.softwaremaker.net/blog/Trackback.aspx?guid=8ab044b5-76b7-4a3f-8a4c-a064904046ab</trackback:ping>
      <pingback:server>http://www.softwaremaker.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.softwaremaker.net/blog/PermaLink,guid,8ab044b5-76b7-4a3f-8a4c-a064904046ab.aspx</pingback:target>
      <dc:creator>William Tay</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Time and time again, I have heard many companies and people talk about how they want
to adopt XML Services and <a href="http://www.w3.org/TR/soap/" target="_blank">(W3C)
SOAP</a> so that they can be seen moving with the times embracing Service Orientated
Architectures.
</p>
        <p>
I have always stressed that it is a lot lot more than that. Just because all your
applications can emit out SOAP and angle brackets and your consuming applications
can "Add Web Reference" doesnt mean your business is in the realms of Service-Orientation.
</p>
        <p>
This article <a href="http://www.computerworld.com/developmenttopics/development/webservices/story/0,10801,99176,00.html?from=story_package" target="_blank">here</a> puts
it very nicely. It is a lot more than what most people think and it takes a longer
time to understand and embrace it fully. It is very much in the business processes
and very importantly, the understanding of it...and this takes a tremendous mindset
change in the business thinking and culture.
</p>
        <p>
I took the liberty to quote a few snippets out:
</p>
        <ul>
          <li>
            <em>
              <font face="Georgia" color="#808080">"Some of the enterprises that are deftly
moving toward a service-oriented architecture to exploit the potential of Web services
are confronting challenges technology can't always conquer. Users say Web services
still suffer from a lack of clear metadata definitions and the need for sometimes
significant IT cultural changes. "<br />
 </font>
            </em>
          </li>
          <li>
            <em>
              <font face="Georgia" color="#808080">"Trimble learned that even using Web services,
it isn't possible for the company to "gracefully and quickly" integrate systems gained
in several acquisitions over the past couple of years because of the metadata problems,
Denis said. "There's too much fluidity around data objects, [and] we fall back into
our own nomenclature and begin to define business objects," he said. "Customer definitions
are the most complex challenges for us. We support very different businesses. Our
customers are major accounts, channels and end users, so it is difficult to have a
one-size-fits-all definition." Until industry standards for metadata management mature,
the company must tackle the metadata issues outside the SOA project, he said "<br />
 </font>
            </em>
          </li>
          <li>
            <em>
              <font face="Georgia" color="#808080">"But as the project has moved forward, it
has been slowed by the lack of standard metadata definitions, which define and describe
applications' data, "<br />
 </font>
            </em>
          </li>
          <li>
            <em>
              <font face="Georgia" color="#808080">"Learning noted that the migration to Web
services required some cultural changes along the way, such as getting customers to
change their mind-set about the way they use the system."<br />
 </font>
            </em>
          </li>
          <li>
            <em>
              <font face="Georgia" color="#808080">"Denis said that the company must create
its own process for managing the disparate ERP systems' metadata because of a lack
of tools that can automate the operation. The complex ERP network includes packages
from SAP AG, Oracle Corp. and Siebel Systems Inc., some of which were gained via acquisitions."<br /></font>
            </em>
          </li>
        </ul>
        <font face="Georgia" color="#808080">
          <em>
          </em>
        </font>
        <img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=8ab044b5-76b7-4a3f-8a4c-a064904046ab" />
        <br />
        <hr />
© William Tay 2012 | Swinging Technologist 
<br /><a href="http://www.softwaremaker.net/blog">http://www.softwaremaker.net/blog</a></body>
      <title>SO(A): It is more than just SOAP</title>
      <guid isPermaLink="false">http://www.softwaremaker.net/blog/PermaLink,guid,8ab044b5-76b7-4a3f-8a4c-a064904046ab.aspx</guid>
      <link>http://www.softwaremaker.net/blog/SOAItIsMoreThanJustSOAP.aspx</link>
      <pubDate>Sat, 29 Jan 2005 08:52:29 GMT</pubDate>
      <description>&lt;p&gt;
Time and time again, I have heard many companies and people talk about how they want
to adopt XML Services and &lt;a href="http://www.w3.org/TR/soap/" target="_blank"&gt;(W3C)
SOAP&lt;/a&gt; so that they can be seen moving with the times embracing Service Orientated
Architectures.
&lt;/p&gt;
&lt;p&gt;
I have always stressed that it is a lot lot more than that. Just because all your
applications can emit out SOAP and angle brackets and your consuming applications
can "Add Web Reference" doesnt mean your business is in the realms of Service-Orientation.
&lt;/p&gt;
&lt;p&gt;
This article &lt;a href="http://www.computerworld.com/developmenttopics/development/webservices/story/0,10801,99176,00.html?from=story_package" target=_blank&gt;here&lt;/a&gt; puts
it very nicely. It is a lot more than what most people think and it takes a longer
time to understand and embrace it fully. It is very much in the business processes
and&amp;nbsp;very importantly, the understanding of it...and this takes a tremendous mindset
change in the business thinking and culture.
&lt;/p&gt;
&lt;p&gt;
I took the liberty to quote a few snippets out:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font face=Georgia color=#808080&gt;"Some of the enterprises that are deftly moving
toward a service-oriented architecture to exploit the potential of Web services are
confronting challenges technology can't always conquer. Users say Web services still
suffer from a lack of clear metadata definitions and the need for sometimes significant
IT cultural changes. "&lt;br&gt;
&amp;nbsp;&lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font face=Georgia color=#808080&gt;"Trimble learned that even using Web services,
it isn't possible for the company to "gracefully and quickly" integrate systems gained
in several acquisitions over the past couple of years because of the metadata problems,
Denis said. "There's too much fluidity around data objects, [and] we fall back into
our own nomenclature and begin to define business objects," he said. "Customer definitions
are the most complex challenges for us. We support very different businesses. Our
customers are major accounts, channels and end users, so it is difficult to have a
one-size-fits-all definition." Until industry standards for metadata management mature,
the company must tackle the metadata issues outside the SOA project, he said "&lt;br&gt;
&amp;nbsp;&lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font face=Georgia color=#808080&gt;"But as the project has moved forward, it has
been slowed by the lack of standard metadata definitions, which define and describe
applications' data, "&lt;br&gt;
&amp;nbsp;&lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font face=Georgia color=#808080&gt;"Learning noted that the migration to Web services
required some cultural changes along the way, such as getting customers to change
their mind-set about the way they use the system."&lt;br&gt;
&amp;nbsp;&lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font face=Georgia color=#808080&gt;"Denis said that the company must create its
own process for managing the disparate ERP systems' metadata because of a lack of
tools that can automate the operation. The complex ERP network includes packages from
SAP AG, Oracle Corp. and Siebel Systems Inc., some of which were gained via acquisitions."&lt;br&gt;
&lt;/li&gt;
&lt;/ul&gt;
&gt;&gt;&lt;font face=Georgia color=#808080&gt;&lt;em&gt;&lt;/em&gt;&lt;/font&gt;&lt;img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=8ab044b5-76b7-4a3f-8a4c-a064904046ab" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
© William Tay 2012 | Swinging Technologist 
&lt;br /&gt;
&lt;a href="http://www.softwaremaker.net/blog"&gt;http://www.softwaremaker.net/blog&lt;/a&gt;</description>
      <category>Biz Matters;Random Musings;Software Architectures;Technology</category>
    </item>
    <item>
      <trackback:ping>http://www.softwaremaker.net/blog/Trackback.aspx?guid=babad880-98e8-40dd-abdb-1485b7d9eada</trackback:ping>
      <pingback:server>http://www.softwaremaker.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.softwaremaker.net/blog/PermaLink,guid,babad880-98e8-40dd-abdb-1485b7d9eada.aspx</pingback:target>
      <dc:creator>William Tay</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">Finally, after months of waiting, Microsoft's
Enterprise Library is available for <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/entlib.asp" target="_blank">download</a>.
This is essentially Avanade's famous ACA.NET version 4 which now has a official Microsoft
alignment.<img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=babad880-98e8-40dd-abdb-1485b7d9eada" /><br /><hr />
© William Tay 2012 | Swinging Technologist 
<br /><a href="http://www.softwaremaker.net/blog">http://www.softwaremaker.net/blog</a></body>
      <title>Microsoft's Enterprise Library Jan 2005 is available for download</title>
      <guid isPermaLink="false">http://www.softwaremaker.net/blog/PermaLink,guid,babad880-98e8-40dd-abdb-1485b7d9eada.aspx</guid>
      <link>http://www.softwaremaker.net/blog/MicrosoftsEnterpriseLibraryJan2005IsAvailableForDownload.aspx</link>
      <pubDate>Sat, 29 Jan 2005 00:59:58 GMT</pubDate>
      <description>Finally, after months of waiting, Microsoft's Enterprise Library is available for &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/entlib.asp" target=_blank&gt;download&lt;/a&gt;.
This is essentially Avanade's famous ACA.NET version 4 which now has a official Microsoft
alignment.&lt;img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=babad880-98e8-40dd-abdb-1485b7d9eada" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
© William Tay 2012 | Swinging Technologist 
&lt;br /&gt;
&lt;a href="http://www.softwaremaker.net/blog"&gt;http://www.softwaremaker.net/blog&lt;/a&gt;</description>
      <category>Software Architectures;Software Development;Technology</category>
    </item>
    <item>
      <trackback:ping>http://www.softwaremaker.net/blog/Trackback.aspx?guid=0addacde-3722-4925-a793-b5c72bfd392a</trackback:ping>
      <pingback:server>http://www.softwaremaker.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.softwaremaker.net/blog/PermaLink,guid,0addacde-3722-4925-a793-b5c72bfd392a.aspx</pingback:target>
      <dc:creator>William Tay</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Mike Champion has a great post <a href="http://weblogs.asp.net/mikechampion/archive/2004/12/28/338998.aspx" target="_blank">here</a> on
the overheads of XML.
</p>
        <p>
IMHO, I think a binary representation of XML brings on a whole different set of issues,
namely removing the abstraction it is supposed to represent.
</p>
        <p>
On a slightly different perspective and from a designing front, I have been advocating
against the use of XML in all layers of a enterprise application esp. when tightly
bound object technology is much more desired. In my presentations on SO(A), I have
always preach on best using service-messaging as communication b/w applications, NOT
between tiers of an application.
</p>
        <p>
However, many businesses are using XML Services as a communication mechanism JUST
SO they can be seen as implementing an SO(A)... and of course, for all the wrong reasons.
</p>
        <p>
Hence, many of them complain when performance suffers.
</p>
        <p>
What do they expect when they are making verbose, chatty calls to their own Data
Access Layer via SOAP ?
</p>
        <img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=0addacde-3722-4925-a793-b5c72bfd392a" />
        <br />
        <hr />
© William Tay 2012 | Swinging Technologist 
<br /><a href="http://www.softwaremaker.net/blog">http://www.softwaremaker.net/blog</a></body>
      <title>XML and Overheads</title>
      <guid isPermaLink="false">http://www.softwaremaker.net/blog/PermaLink,guid,0addacde-3722-4925-a793-b5c72bfd392a.aspx</guid>
      <link>http://www.softwaremaker.net/blog/XMLAndOverheads.aspx</link>
      <pubDate>Wed, 29 Dec 2004 12:23:13 GMT</pubDate>
      <description>&lt;p&gt;
Mike Champion has a great&amp;nbsp;post &lt;a href="http://weblogs.asp.net/mikechampion/archive/2004/12/28/338998.aspx" target=_blank&gt;here&lt;/a&gt;&amp;nbsp;on
the overheads of XML.
&lt;/p&gt;
&lt;p&gt;
IMHO, I think a binary representation of XML brings on a whole different set of issues,
namely removing the abstraction it is supposed to represent.
&lt;/p&gt;
&lt;p&gt;
On a slightly different perspective and from a designing front, I have been advocating
against the use of XML in all layers of a enterprise application esp. when tightly
bound object technology is much more desired. In my presentations on SO(A), I have
always preach on best using service-messaging as communication b/w applications, NOT
between tiers of an application.
&lt;/p&gt;
&lt;p&gt;
However, many businesses are using XML Services as a communication mechanism JUST
SO they can be seen as implementing an SO(A)... and of course, for all the wrong reasons.
&lt;/p&gt;
&lt;p&gt;
Hence, many of them complain when performance suffers.
&lt;/p&gt;
&lt;p&gt;
What do they expect when they are making verbose, chatty&amp;nbsp;calls to their own Data
Access Layer via SOAP ?
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=0addacde-3722-4925-a793-b5c72bfd392a" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
© William Tay 2012 | Swinging Technologist 
&lt;br /&gt;
&lt;a href="http://www.softwaremaker.net/blog"&gt;http://www.softwaremaker.net/blog&lt;/a&gt;</description>
      <category>Service-Orientation;Software Architectures;XML Services</category>
    </item>
    <item>
      <trackback:ping>http://www.softwaremaker.net/blog/Trackback.aspx?guid=d6a2bd5f-310f-4697-9d8c-8f53b6caeb03</trackback:ping>
      <pingback:server>http://www.softwaremaker.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.softwaremaker.net/blog/PermaLink,guid,d6a2bd5f-310f-4697-9d8c-8f53b6caeb03.aspx</pingback:target>
      <dc:creator>William Tay</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
To slightly expand on my <a href="http://www.softwaremaker.net/blog/PermaLink,guid,1508b8a2-a4f5-49a3-beb4-15725f0b0f59.aspx" target="_blank">post</a> and <a href="http://www.dynamic-cast.com/mt-archives/000069.html" target="_blank">Hervey's</a> a
little bit further, there was mention on the use of Enveloped Signatures in the SOAP
Headers. Enveloped Signature (as defined by <a href="http://www.w3.org/TR/xmldsig-core/" target="_blank">XML-Digital
Signature</a>) is a signature over the XML content that contains the
signature as an element. The content provides the root XML document element. Obviously,
enveloped signatures must take care not to include their own value in the calculation
of the SignatureValue. In other words, Enveloped Signature would sign the contents
of the SOAP headers <strong><em>WITHOUT</em></strong> the signature. This is
the only way a Security header can be signed without creating a circular reference
dependency.
</p>
        <p>
To do the above, you are enforcing the prevention of intermediaries from modifying
the SOAP Headers.
</p>
        <p>
However, as taken from the _WS-Security Specs_ 
<hr id="null" /><em><font face="Georgia" color="#ff0000">Because of the mutability of some SOAP headers,
producers SHOULD NOT use the Enveloped Signature Transform defined in XML Signature.
Instead, messages SHOULD explicitly include the elements to be signed. Similarly,
producers SHOULD NOT use the Enveloping Signature defined in XML Signature [XMLSIG]</font></em><hr id="null" /></p>
        <p>
        </p>
        <p>
WS-Security doesnt *believe* in the Enveloped Signatures because it stands on the belief
that SOAP Headers are <a href="http://www.hyperdictionary.com/dictionary/mutable" target="_blank">mutable</a>.
Since SOAP Headers can change and the likelihood is there that a SOAP intermediary
can change the headers, an Enveloped Signature would not be as extensible and work
as well.
</p>
        <p>
I am a strong believer of that. If a normal signature is used instead of an enveloped one,
then an intermediary can safely add more tokens and more signatures to a Security
header targeted at another node on the message path...and that is why there is WS-Security.
Security cannot just be based on End-to-End scenarios or else SSL / HTTPS will
suffice.
</p>
        <p>
I also further believe that an intermediary should be able to extend Security headers
which are meant for other target nodes. Since a SOAP node can only process a
single Security Header (because of re-ordering constraints of SOAP Headers), this
option may not be as far-fetched or ridiculous as it may sound.
</p>
        <p>
Of course, anyone can still choose to implement Enveloped Signatures over their SOAP
Headers if they are just implementing End-to-End scenarios and enforcing non-tampering
measures over any desired or <em>un-desired</em> intermediaries. However, extensibility may
not be an option here should intermediaries be required to offload certain processing
functionality off the ultimate receiver or even add more tokens and signatures along
the way.
</p>
        <img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=d6a2bd5f-310f-4697-9d8c-8f53b6caeb03" />
        <br />
        <hr />
© William Tay 2012 | Swinging Technologist 
<br /><a href="http://www.softwaremaker.net/blog">http://www.softwaremaker.net/blog</a></body>
      <title>Enveloped Signatures - XMLDSIG and WS-Security</title>
      <guid isPermaLink="false">http://www.softwaremaker.net/blog/PermaLink,guid,d6a2bd5f-310f-4697-9d8c-8f53b6caeb03.aspx</guid>
      <link>http://www.softwaremaker.net/blog/EnvelopedSignaturesXMLDSIGAndWSSecurity.aspx</link>
      <pubDate>Sat, 11 Dec 2004 02:57:32 GMT</pubDate>
      <description>&lt;p&gt;
To slightly expand on&amp;nbsp;my &lt;a href="http://www.softwaremaker.net/blog/PermaLink,guid,1508b8a2-a4f5-49a3-beb4-15725f0b0f59.aspx" target=_blank&gt;post&lt;/a&gt; and &lt;a href="http://www.dynamic-cast.com/mt-archives/000069.html" target=_blank&gt;Hervey's&lt;/a&gt; a
little bit further, there was mention on the use of Enveloped Signatures in the SOAP
Headers. Enveloped Signature&amp;nbsp;(as defined by &lt;a href="http://www.w3.org/TR/xmldsig-core/" target="_blank"&gt;XML-Digital
Signature&lt;/a&gt;)&amp;nbsp;is a&amp;nbsp;signature&amp;nbsp;over the XML content that contains the
signature as an element. The content provides the root XML document element. Obviously,
enveloped signatures must take care not to include their own value in the calculation
of the SignatureValue. In other words, Enveloped Signature would sign the contents
of the SOAP headers&amp;nbsp;&lt;strong&gt;&lt;em&gt;WITHOUT&lt;/em&gt;&lt;/strong&gt; the signature. This is
the only way a Security header can be signed without creating a circular reference
dependency.
&lt;/p&gt;
&lt;p&gt;
To do the above, you are enforcing the prevention of&amp;nbsp;intermediaries from modifying
the SOAP Headers.
&lt;/p&gt;
&lt;p&gt;
However, as taken from the _WS-Security Specs_ 
&lt;hr id=null&gt;
&lt;em&gt;&lt;font face=Georgia color=#ff0000&gt;Because of the mutability of some SOAP headers,
producers SHOULD NOT use the Enveloped Signature Transform defined in XML Signature.
Instead, messages SHOULD explicitly include the elements to be signed. Similarly,
producers SHOULD NOT use the Enveloping Signature defined in XML Signature [XMLSIG]&lt;/font&gt;&lt;/em&gt; 
&lt;hr id=null&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
WS-Security doesnt *believe* in the Enveloped Signatures because it stands on the&amp;nbsp;belief
that SOAP Headers are &lt;a href="http://www.hyperdictionary.com/dictionary/mutable" target=_blank&gt;mutable&lt;/a&gt;.
Since SOAP Headers can change and the likelihood is there that a SOAP intermediary
can change the headers, an Enveloped Signature would not be as extensible and work
as well.
&lt;/p&gt;
&lt;p&gt;
I am a strong believer of that. If a normal signature is used instead of an&amp;nbsp;enveloped&amp;nbsp;one,
then an intermediary can safely add more tokens and more signatures to a Security
header targeted at another node on the message path...and that is why there is WS-Security.
Security cannot just be based on End-to-End scenarios or else SSL / HTTPS&amp;nbsp;will
suffice.
&lt;/p&gt;
&lt;p&gt;
I also further believe that an intermediary should be able to extend Security headers
which&amp;nbsp;are meant for other target nodes. Since a SOAP node can only process a
single Security Header (because of re-ordering constraints of SOAP Headers), this
option may not be as far-fetched or ridiculous as it may sound.
&lt;/p&gt;
&lt;p&gt;
Of course, anyone can still choose to implement Enveloped Signatures over their SOAP
Headers if they are just implementing End-to-End scenarios and enforcing non-tampering
measures over any desired or &lt;em&gt;un-desired&lt;/em&gt; intermediaries. However, extensibility&amp;nbsp;may
not be an option here should intermediaries be required to offload certain processing
functionality off the ultimate receiver or even add more tokens and signatures along
the way.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=d6a2bd5f-310f-4697-9d8c-8f53b6caeb03" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
© William Tay 2012 | Swinging Technologist 
&lt;br /&gt;
&lt;a href="http://www.softwaremaker.net/blog"&gt;http://www.softwaremaker.net/blog&lt;/a&gt;</description>
      <category>Software Architectures;Web Services Enhancements (WSE);WS-Splat Specs;XML Services</category>
    </item>
    <item>
      <trackback:ping>http://www.softwaremaker.net/blog/Trackback.aspx?guid=20f8fcb0-a5eb-41b4-8ddf-217f4e338cf1</trackback:ping>
      <pingback:server>http://www.softwaremaker.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.softwaremaker.net/blog/PermaLink,guid,20f8fcb0-a5eb-41b4-8ddf-217f4e338cf1.aspx</pingback:target>
      <dc:creator>William Tay</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I have been noticing an increasing number of emails and newgroup threads asking for
the security of Usernametokens as specified by _WS-Security Specs_ on <a href="http://www.oasis-open.org" target="_blank">OASIS</a>.
Most people would like to use it because it is the only alternative they have and
there are no other options for using <a href="http://www.ietf.org/html.charters/pkix-charter.html" target="_blank">X.509
PKI Digital Certificates</a>. Here is my personal take on it.
</p>
        <p>
I think some of the security concerns are slightly misplaced here. Firstly, I dont
think <a href="http://www.ws-i.org" target="_blank" title="Web Services Interoperability Organization">WS-I</a> or
OASIS would include Usernametokens inside the WS-Security Specifications if they doubt
its security. As I would like to say, --- <strong>Implementation is key</strong>.
</p>
        <p>
A Username token does <strong><em>NOT</em></strong> use any simpler or less-standard
security algorithm than any other tokens. In fact, it uses the same hashing algorithm,
symmetric algorithm such as the 128-key Cipher Block Chain (cbc) <a href="http://www.cescomm.co.nz/about/aes.html" target="_blank">Advanced
Encryption Standard</a>, etc as any other token. Many people, also, do not realize
that the same symmetric algorithm is used to encrypt the SOAP message body when an asymmetric
X509SecurityToken is used as well. The asymmetric key algorithm is only used
to encrypt the secret key that is doing the actual symmetric encryption processing.
This is done for the purpose of reducing cipher bloat and increasing processing speed.
The paranoia in me, however, would go for a higher-bit key implementation, which
is possible.
</p>
        <p>
Remember that your secret can be stolen and kept for years and tried to be broken
with much higher-end and cheaper deciphering machines in the future. OK, OK, that
is my paraniod self talking. <img src="http://www.softwaremaker.net/pictures/swmemoticons/smile.gif" /></p>
        <p>
I believe when statements are made against the security of Usernametokens, they are
made against the passwords of the Usernametokens. Therefore, the statement: "Usernametokens,
on their own they are only as secure as the passwords"
</p>
        <p>
Usernametokens are as secure as your passwords. That means that if you have a good
security policy on how your company treats passwords, ie...
</p>
        <ol>
          <li>
Minimum password length 
</li>
          <li>
Implementation of alphanumeric and other different characters and symbols in password 
</li>
          <li>
Password change frequency (in months instead of years <img src="http://www.softwaremaker.net/pictures/swmemoticons/wink.gif" />) 
</li>
          <li>
Elimination of Weak Passwords such as using names and such 
</li>
          <li>
...</li>
        </ol>
        <p>
you should <strong><em>NOT</em></strong> be so fearful of using a Usernametoken
in your Web Service implementation.
</p>
        <p>
On the other hand, if you don't treat or administer your passwords with good password
policies, then you cannot expect Usernametokens to give your message as secure a protection
as you would like.
</p>
        <p>
I would also recommend using the PasswordOption.SendNone, if possible. The hash of
the password and other elements are used to produce the cipher. NO password is
sent over using this enumerated option. Of course, the only caveat is except through
a dictionary attack, which of course, can be made so much more difficult
(or almost impossible) by having a good password policy administration system.
</p>
        <p>
If you have to send your Usernametoken over in PasswordOption.SendPlainText for whatever
reasons (using Windows, LDAP Authentication or you may have hashed versions of your
passwords stored in your UserDB), you <strong><em>SHOULD</em></strong> encrypt
the UsernameToken with a X.509 digital certificate. Read my post <a href="http://www.softwaremaker.net/blog/PermaLink,guid,43d85031-3e0b-48a7-bdd7-1f49932db40a.aspx" target="_blank">here</a> for
my own implementation of it.
</p>
        <p>
        </p>
        <p>
        </p>
        <p>
Another thing to take note is one that relates to the real world and why I believe
Usernametokens have its place here. It is easiest to implement and common in any business
environments. Therefore, it can be plugged into any existing IT systems with relatively
lesser effort. Also, X509 digital certs are usually used to authenticate machines
and / or companies, it would be more expensive and unrealistic to expect every user
in a 100+ user organization to have a digital cert and a private / public key
pair. Therefore, I strongly believe that Usernametokens are more appt to authenticate
the users <strong><em>themselves</em></strong> in the real world and will continue
to be one of the most popular way to authenticate users in the near <em>biometric-less</em> future.
However, if you are using authentication between machines, you <strong><em>should</em></strong> opt
for X509 digital certs instead.
</p>
        <p>
          <hr id="null" />
          <font color="#ff0000">
            <font face="Georgia">[Author note] I believe WSE 2.0 SP2 has
taken some lengths to make sure that Usernametokens which transmits a clear text password
are now encrypted.</font>
          </font>
        </p>
        <p>
        </p>
        <p>
          <font color="#ff0000">
          </font>
        </p>
        <ul>
          <li>
            <font face="Georgia" color="#ff0000">For security reasons, it is strongly recommended
to encrypt Username tokens, especially when they contain password information. The <b>SecurityTokenServiceClient</b> class
now automatically encrypts any <b>UsernameToken</b> security tokens included in outgoing
SOAP requests. Similarly, the <b>SecurityTokenService</b> class automatically encrypts
any <b>UsernameToken</b> security tokens included in outgoing SOAP responses.</font>
          </li>
        </ul>
        <img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=20f8fcb0-a5eb-41b4-8ddf-217f4e338cf1" />
        <br />
        <hr />
© William Tay 2012 | Swinging Technologist 
<br /><a href="http://www.softwaremaker.net/blog">http://www.softwaremaker.net/blog</a></body>
      <title>Security of UsernameTokens in WS-Security as implemented by WSE 2.0</title>
      <guid isPermaLink="false">http://www.softwaremaker.net/blog/PermaLink,guid,20f8fcb0-a5eb-41b4-8ddf-217f4e338cf1.aspx</guid>
      <link>http://www.softwaremaker.net/blog/SecurityOfUsernameTokensInWSSecurityAsImplementedByWSE20.aspx</link>
      <pubDate>Thu, 09 Dec 2004 01:57:26 GMT</pubDate>
      <description>&lt;p&gt;
I have been noticing an increasing number of emails and newgroup threads asking for
the security of Usernametokens as specified by _WS-Security Specs_ on &lt;a href="http://www.oasis-open.org" target="_blank"&gt;OASIS&lt;/a&gt;.
Most people would like to use it because it is the only alternative they have and
there are no other options for using &lt;a href="http://www.ietf.org/html.charters/pkix-charter.html" target="_blank"&gt;X.509
PKI Digital Certificates&lt;/a&gt;. Here is my personal take on it.
&lt;/p&gt;
&lt;p&gt;
I think some of the security concerns are slightly misplaced here. Firstly, I dont
think &lt;a href="http://www.ws-i.org" target="_blank" title="Web Services Interoperability Organization"&gt;WS-I&lt;/a&gt; or
OASIS would include Usernametokens inside the WS-Security Specifications if they doubt
its security. As I would like to say, --- &lt;strong&gt;Implementation is key&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
A Username token does &lt;strong&gt;&lt;em&gt;NOT&lt;/em&gt;&lt;/strong&gt;&amp;nbsp;use any simpler or less-standard
security algorithm than any other tokens. In fact, it uses the same hashing algorithm,
symmetric algorithm such as the 128-key Cipher Block Chain (cbc) &lt;a href="http://www.cescomm.co.nz/about/aes.html" target=_blank&gt;Advanced
Encryption Standard&lt;/a&gt;, etc as any other token. Many people, also, do not realize
that the same symmetric algorithm is used to encrypt the SOAP message body when an&amp;nbsp;asymmetric
X509SecurityToken is used as well. The asymmetric key algorithm is&amp;nbsp;only used
to encrypt the secret&amp;nbsp;key that is doing the actual symmetric encryption processing.
This is done for the purpose of reducing cipher bloat and increasing processing speed.
The paranoia in me, however,&amp;nbsp;would go for a higher-bit key implementation, which
is possible.
&lt;/p&gt;
&lt;p&gt;
Remember that your secret can be stolen and kept for years and tried to be broken
with much higher-end and cheaper deciphering machines in the future. OK, OK, that
is my paraniod self talking. &lt;img src="http://www.softwaremaker.net/pictures/swmemoticons/smile.gif"&gt;
&lt;/p&gt;
&lt;p&gt;
I believe when statements are made against the security of Usernametokens, they are
made against the passwords of the Usernametokens. Therefore, the statement: "Usernametokens,
on their own they are only as secure as the passwords"
&lt;/p&gt;
&lt;p&gt;
Usernametokens are as secure as your passwords. That means that if you have a good
security policy on how your company treats passwords, ie...
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Minimum password length 
&lt;li&gt;
Implementation of alphanumeric and other different characters and symbols in password 
&lt;li&gt;
Password change frequency (in months instead of years &lt;img src="http://www.softwaremaker.net/pictures/swmemoticons/wink.gif"&gt;) 
&lt;li&gt;
Elimination of Weak Passwords such as using names and such 
&lt;li&gt;
...&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
you should &lt;strong&gt;&lt;em&gt;NOT&lt;/em&gt;&lt;/strong&gt;&amp;nbsp;be so fearful of using a Usernametoken
in your Web Service implementation.
&lt;/p&gt;
&lt;p&gt;
On the other hand, if you don't treat or administer your passwords with good&amp;nbsp;password
policies, then you cannot expect Usernametokens to give your message as secure a protection
as&amp;nbsp;you would like.
&lt;/p&gt;
&lt;p&gt;
I would also recommend using the PasswordOption.SendNone, if possible. The hash of
the password&amp;nbsp;and other elements are used to produce the cipher. NO password is
sent over using this enumerated option. Of course, the only caveat is except through
a dictionary attack, which&amp;nbsp;of course,&amp;nbsp;can be made so much more difficult
(or almost impossible) by having a good password policy administration system.
&lt;/p&gt;
&lt;p&gt;
If you have to send your Usernametoken over in PasswordOption.SendPlainText for whatever
reasons (using Windows, LDAP Authentication or you may have hashed versions of your
passwords stored in your UserDB), you&amp;nbsp;&lt;strong&gt;&lt;em&gt;SHOULD&lt;/em&gt;&lt;/strong&gt; encrypt
the UsernameToken with a X.509 digital certificate. Read my post &lt;a href="http://www.softwaremaker.net/blog/PermaLink,guid,43d85031-3e0b-48a7-bdd7-1f49932db40a.aspx" target=_blank&gt;here&lt;/a&gt; for
my own implementation of it.
&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Another thing to take note is one that relates to the real world and why I believe
Usernametokens have its place here. It is easiest to implement and common in any business
environments. Therefore, it can be plugged into any existing IT systems with relatively
lesser effort. Also, X509 digital certs are usually used to authenticate machines
and / or companies, it would be more expensive and unrealistic to expect every user
in a 100+ user&amp;nbsp;organization to have a digital cert and a private / public key
pair. Therefore, I strongly believe that Usernametokens are more appt to authenticate
the users &lt;strong&gt;&lt;em&gt;themselves&lt;/em&gt;&lt;/strong&gt; in the real world and will continue
to be one of the most popular way to authenticate users in the near &lt;em&gt;biometric-less&lt;/em&gt; future.
However, if you are using authentication between machines, you &lt;strong&gt;&lt;em&gt;should&lt;/em&gt;&lt;/strong&gt;&amp;nbsp;opt
for X509 digital certs instead.
&lt;/p&gt;
&lt;p&gt;
&lt;hr id=null&gt;
&lt;font color=#ff0000&gt;&lt;font face=Georgia&gt;[Author note] I believe WSE 2.0 SP2 has taken
some lengths to make sure that Usernametokens which transmits a clear text password
are now encrypted.&lt;/font&gt; &lt;/font&gt; 
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#ff0000&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font face=Georgia color=#ff0000&gt;For security reasons, it is strongly recommended
to encrypt Username tokens, especially when they contain password information. The &lt;b&gt;SecurityTokenServiceClient&lt;/b&gt; class
now automatically encrypts any &lt;b&gt;UsernameToken&lt;/b&gt; security tokens included in outgoing
SOAP requests. Similarly, the &lt;b&gt;SecurityTokenService&lt;/b&gt; class automatically encrypts
any &lt;b&gt;UsernameToken&lt;/b&gt; security tokens included in outgoing SOAP responses.&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=20f8fcb0-a5eb-41b4-8ddf-217f4e338cf1" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
© William Tay 2012 | Swinging Technologist 
&lt;br /&gt;
&lt;a href="http://www.softwaremaker.net/blog"&gt;http://www.softwaremaker.net/blog&lt;/a&gt;</description>
      <category>Software Architectures;Web Services Enhancements (WSE);WS-Splat Specs;XML Services</category>
    </item>
    <item>
      <trackback:ping>http://www.softwaremaker.net/blog/Trackback.aspx?guid=67711da0-1ea0-4652-bcbd-0b61266e1a66</trackback:ping>
      <pingback:server>http://www.softwaremaker.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.softwaremaker.net/blog/PermaLink,guid,67711da0-1ea0-4652-bcbd-0b61266e1a66.aspx</pingback:target>
      <dc:creator>William Tay</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <ul>
          <li>
Individual data objects as endpoints ? 
</li>
          <li>
Resources (data objects) are like children. They need to have names if they are to
participate in society - Fundamental Flaw of UDDI ? 
</li>
          <li>
Any business problem can be thought of as a data resource manipulation problem and
HTTP is a data resource manipulation protocol ?</li>
        </ul>
        <p>
While I have been looking through to see there are any interesting materials and resources using <a href="http://searchwebservices.techtarget.com/sDefinition/0,,sid26_gci823682,00.html" target="_blank">Respresentational
State Transfer</a> (REST) to implement <strong><em>WEB</em></strong> Services
in .NET (<em>since this is </em><strong>WEB</strong><em> in every sense of the word,
unlike my <a href="http://dotnetjunkies.com/WebLog/softwaremaker/archive/2004/07/25/20245.aspx" target="_blank">special
inkling</a> to call it XML Services most of the time</em>), I came across this pretty
interesting resource <a href="http://www.prescod.net/rest/" target="_blank">here</a>.
</p>
        <img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=67711da0-1ea0-4652-bcbd-0b61266e1a66" />
        <br />
        <hr />
© William Tay 2012 | Swinging Technologist 
<br /><a href="http://www.softwaremaker.net/blog">http://www.softwaremaker.net/blog</a></body>
      <title>REST - For the Fun of it</title>
      <guid isPermaLink="false">http://www.softwaremaker.net/blog/PermaLink,guid,67711da0-1ea0-4652-bcbd-0b61266e1a66.aspx</guid>
      <link>http://www.softwaremaker.net/blog/RESTForTheFunOfIt.aspx</link>
      <pubDate>Fri, 12 Nov 2004 22:44:30 GMT</pubDate>
      <description>&lt;ul&gt;
&lt;li&gt;
Individual data objects as endpoints ? 
&lt;li&gt;
Resources (data objects) are like children. They need to have names if they are to
participate in society - Fundamental Flaw of UDDI ? 
&lt;li&gt;
Any business problem can be thought of as a data resource manipulation problem and
HTTP is a data resource manipulation protocol ?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
While I have been looking through to see there are any interesting materials and resources&amp;nbsp;using &lt;a href="http://searchwebservices.techtarget.com/sDefinition/0,,sid26_gci823682,00.html" target=_blank&gt;Respresentational
State Transfer&lt;/a&gt; (REST) to implement&amp;nbsp;&lt;strong&gt;&lt;em&gt;WEB&lt;/em&gt;&lt;/strong&gt; Services
in .NET (&lt;em&gt;since this is &lt;/em&gt;&lt;strong&gt;WEB&lt;/strong&gt;&lt;em&gt; in every sense of the word,
unlike my &lt;a href="http://dotnetjunkies.com/WebLog/softwaremaker/archive/2004/07/25/20245.aspx" target=_blank&gt;special
inkling&lt;/a&gt; to call it XML Services most of the time&lt;/em&gt;), I came across this pretty
interesting resource &lt;a href="http://www.prescod.net/rest/" target=_blank&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=67711da0-1ea0-4652-bcbd-0b61266e1a66" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
© William Tay 2012 | Swinging Technologist 
&lt;br /&gt;
&lt;a href="http://www.softwaremaker.net/blog"&gt;http://www.softwaremaker.net/blog&lt;/a&gt;</description>
      <category>Software Architectures;XML Services</category>
    </item>
    <item>
      <trackback:ping>http://www.softwaremaker.net/blog/Trackback.aspx?guid=df9ebacd-895b-46c2-a7c9-13ac3fecf9f6</trackback:ping>
      <pingback:server>http://www.softwaremaker.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.softwaremaker.net/blog/PermaLink,guid,df9ebacd-895b-46c2-a7c9-13ac3fecf9f6.aspx</pingback:target>
      <dc:creator>William Tay</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
While a lot of people have been caught up with the recent advancements of Web Services
Standards of <a href="http://www.ws-i.org" target="_blank" title="Web Services Interoperability Organization">WS-I</a>, <a href="http://www.oasis-open.org" target="_blank">OASIS</a>, <a href="http://www.w3.org/" target="_blank">W3C</a> (the
advanced communication standard protocols, the framework, etc), that is just the tip
of the Web Services iceberg.
</p>
        <p>
Once (not if) XML Web Services becomes the de-facto standards for cross
domain communication for enterprise mission-critical connected distributed systems
(EMCCDS) in the future, the focus <em><strong>will be</strong></em> on the IT Infrastructure.
Why ? Well, someone or something has to keep it up and make sure it stays running
;) Messages of Service-Orientation are supposed to be self-contained and independent
so the BUS must be there to make sure the dispatch doesnt fail.
</p>
        <p>
Infrastructure-level Web services are XML services that implement part of the
distributed computing infrastructure. They support other Web services communicate
with each other. In particular, these <strong><em>robust</em></strong> services (<em>and
not necessarily WEB Services in any way</em>) are the ones that makes or breaks the
communication framework. They provide such functionality as:
</p>
        <ul>
          <li>
            <em>
              <font color="#000080">
                <strong>Provisioning</strong>
              </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#000080">
                <strong>Performance Managment</strong> (Message Payload,
Response Time, etc) </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#000080">
                <strong>Operational Management</strong>
              </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#000080">
                <strong>Usage Metering</strong>
              </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#000080">
                <strong>Billing and Payments</strong>
              </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#000080">
                <strong>Routing</strong> (XML-Aware HW Appliances such
as Routers and Firewalls, SW Routers) </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#000080">
                <strong>Orchestration</strong> (Workflows, Business Processes,
etc) </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#000080">
                <strong>Advertisement and Discovery</strong> (WS-Discovery
is key) </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#000080">
                <strong>Caching</strong> (Implementing different techniques
and patterns for Caching, etc) </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#000080">
                <strong>Queuing</strong> (For added Reliability) </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#000080">
                <strong>State Management and Persistence</strong> (Transactional,
2-Phase Committ, Co-ordination, etc)</font>
            </em>
          </li>
        </ul>
        <p>
To understand this a bit further, now with more of a federated approach to services,
there will be more applications and servers to enable the use of Identity Management,
Authorization, Directory and other shared services. What follows next are supporting
services and application hookups. Supporting services are especially important in
crowded IT environments. “Retrofitting” has to be considered to improve
extensibility (afterall, much money has been sunk in to create standards-based interfaces
to reusable code). This puts further weight on the current infrastructure. Connectivity
is very vital here as monolithic solutions are being <a href="http://www.thefreedictionary.com/cleave" target="_blank">cleaved</a> apart
to form intelligent shared services, then <a href="http://www.thefreedictionary.com/cleave" target="_blank">cleaved</a> together
again via connections to form a logical virtual composite system.
</p>
        <p>
Very importantly, all these are very much tied to <strong><em><font color="#000080">Service
Level Agreements (SLAs)</font></em></strong> and <strong><em><font color="#000080">Quality
of Service (QoS)</font></em></strong> which will form the basis of the <strong><em><font color="#000080">business
returns and implications of Web Services in Service-Orientation</font></em></strong>.
</p>
        <p>
          <a href="http://www.burtongroup.com/weblogs/annethomasmanes/" target="_blank">Anne
Thomas Manes</a>, one the leading thought thinkers on Web Services, has an article
that talks about Infrastructure Level Web Services <a href="http://www.sys-con.com/webservices/articleprint.cfm?id=627" target="_blank">here</a>.
</p>
        <p>
I am presently head-down and knee-deep working on writing a white paper that explains
how XML Services and Service-Orientation will eventually empower the IT
Infrastructure and some of the design considerations as we move forward to greater
adoption of messaging-based solutions in the EMCCDS.<br /></p>
        <img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=df9ebacd-895b-46c2-a7c9-13ac3fecf9f6" />
        <br />
        <hr />
© William Tay 2012 | Swinging Technologist 
<br /><a href="http://www.softwaremaker.net/blog">http://www.softwaremaker.net/blog</a></body>
      <title>Service Orientation == Empowerment of the IT Infrastructure</title>
      <guid isPermaLink="false">http://www.softwaremaker.net/blog/PermaLink,guid,df9ebacd-895b-46c2-a7c9-13ac3fecf9f6.aspx</guid>
      <link>http://www.softwaremaker.net/blog/ServiceOrientationEmpowermentOfTheITInfrastructure.aspx</link>
      <pubDate>Thu, 04 Nov 2004 01:20:27 GMT</pubDate>
      <description>&lt;p&gt;
While a lot of people have been caught up with the recent advancements of Web Services
Standards of &lt;a href="http://www.ws-i.org" target="_blank" title="Web Services Interoperability Organization"&gt;WS-I&lt;/a&gt;, &lt;a href="http://www.oasis-open.org" target="_blank"&gt;OASIS&lt;/a&gt;, &lt;a href="http://www.w3.org/" target="_blank"&gt;W3C&lt;/a&gt; (the
advanced communication standard protocols, the framework, etc), that is just the tip
of the Web Services iceberg.
&lt;/p&gt;
&lt;p&gt;
Once (not if)&amp;nbsp;XML Web&amp;nbsp;Services becomes the de-facto standards for cross
domain communication for enterprise mission-critical connected distributed&amp;nbsp;systems
(EMCCDS) in the future, the focus &lt;em&gt;&lt;strong&gt;will be&lt;/strong&gt;&lt;/em&gt; on the IT Infrastructure.
Why ? Well, someone or something has to keep it up and make sure it stays running
;) Messages of Service-Orientation are supposed to be self-contained and independent
so the BUS must be there to make sure the dispatch doesnt fail.
&lt;/p&gt;
&lt;p&gt;
Infrastructure-level Web services are&amp;nbsp;XML services that implement part of the
distributed computing infrastructure. They&amp;nbsp;support other Web services communicate
with each other. In particular, these &lt;strong&gt;&lt;em&gt;robust&lt;/em&gt;&lt;/strong&gt; services&amp;nbsp;(&lt;em&gt;and
not necessarily WEB Services in any way&lt;/em&gt;) are the ones that makes or breaks the
communication framework. They provide such functionality as:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#000080&gt;&lt;strong&gt;Provisioning&lt;/strong&gt; &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#000080&gt;&lt;strong&gt;Performance Managment&lt;/strong&gt; (Message Payload, Response
Time, etc) &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#000080&gt;&lt;strong&gt;Operational Management&lt;/strong&gt; &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#000080&gt;&lt;strong&gt;Usage Metering&lt;/strong&gt; &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#000080&gt;&lt;strong&gt;Billing and Payments&lt;/strong&gt; &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#000080&gt;&lt;strong&gt;Routing&lt;/strong&gt;&amp;nbsp;(XML-Aware HW Appliances such
as Routers and Firewalls, SW Routers) &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#000080&gt;&lt;strong&gt;Orchestration&lt;/strong&gt; (Workflows, Business Processes,
etc) &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#000080&gt;&lt;strong&gt;Advertisement and Discovery&lt;/strong&gt; (WS-Discovery
is key) &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#000080&gt;&lt;strong&gt;Caching&lt;/strong&gt; (Implementing different techniques
and patterns for Caching, etc) &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#000080&gt;&lt;strong&gt;Queuing&lt;/strong&gt; (For added Reliability) &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#000080&gt;&lt;strong&gt;State Management and Persistence&lt;/strong&gt; (Transactional,
2-Phase Committ, Co-ordination, etc)&lt;/font&gt;&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
To understand this a bit further,&amp;nbsp;now with more of a federated approach to services,
there will be more&amp;nbsp;applications and servers to enable the use of Identity Management,
Authorization, Directory and other shared services. What follows next are supporting
services and application hookups. Supporting services are especially important in
crowded IT environments. &amp;#8220;Retrofitting&amp;#8221; has to be considered to improve
extensibility (afterall, much money has been sunk in to create standards-based interfaces
to reusable code). This puts further weight on the current infrastructure. Connectivity
is very vital here as monolithic solutions are being &lt;a href="http://www.thefreedictionary.com/cleave" target=_blank&gt;cleaved&lt;/a&gt; apart
to form intelligent shared services, then &lt;a href="http://www.thefreedictionary.com/cleave" target=_blank&gt;cleaved&lt;/a&gt; together
again via connections to form a logical virtual composite system.
&lt;/p&gt;
&lt;p&gt;
Very importantly, all these are very much tied to &lt;strong&gt;&lt;em&gt;&lt;font color=#000080&gt;Service
Level Agreements (SLAs)&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;&lt;font color=#000080&gt;Quality
of Service (QoS)&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt; which will form the basis of the &lt;strong&gt;&lt;em&gt;&lt;font color=#000080&gt;business
returns and implications of Web Services in Service-Orientation&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.burtongroup.com/weblogs/annethomasmanes/" target=_blank&gt;Anne Thomas
Manes&lt;/a&gt;, one the leading thought thinkers on Web Services, has an article that talks
about Infrastructure Level Web Services &lt;a href="http://www.sys-con.com/webservices/articleprint.cfm?id=627" target=_blank&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
I am presently head-down and knee-deep working on writing a white paper that explains
how&amp;nbsp;XML Services&amp;nbsp;and Service-Orientation will eventually empower the IT
Infrastructure and some of the design considerations as we move forward to greater
adoption of&amp;nbsp;messaging-based solutions&amp;nbsp;in the EMCCDS.&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=df9ebacd-895b-46c2-a7c9-13ac3fecf9f6" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
© William Tay 2012 | Swinging Technologist 
&lt;br /&gt;
&lt;a href="http://www.softwaremaker.net/blog"&gt;http://www.softwaremaker.net/blog&lt;/a&gt;</description>
      <category>Service-Orientation;Software Architectures;XML Services</category>
    </item>
    <item>
      <trackback:ping>http://www.softwaremaker.net/blog/Trackback.aspx?guid=6a305013-29cc-4d6e-9dea-3ee5d74c552e</trackback:ping>
      <pingback:server>http://www.softwaremaker.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.softwaremaker.net/blog/PermaLink,guid,6a305013-29cc-4d6e-9dea-3ee5d74c552e.aspx</pingback:target>
      <dc:creator>William Tay</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://dotnetjunkies.com/WebLog/softwaremaker/category/1686.aspx" target="_blank">My
previous blogs on Software Architectures</a>
        </p>
        <img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=6a305013-29cc-4d6e-9dea-3ee5d74c552e" />
        <br />
        <hr />
© William Tay 2012 | Swinging Technologist 
<br /><a href="http://www.softwaremaker.net/blog">http://www.softwaremaker.net/blog</a></body>
      <title>Previously, on Softwaremaker - Software Architectures</title>
      <guid isPermaLink="false">http://www.softwaremaker.net/blog/PermaLink,guid,6a305013-29cc-4d6e-9dea-3ee5d74c552e.aspx</guid>
      <link>http://www.softwaremaker.net/blog/PreviouslyOnSoftwaremakerSoftwareArchitectures.aspx</link>
      <pubDate>Fri, 29 Oct 2004 15:13:03 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://dotnetjunkies.com/WebLog/softwaremaker/category/1686.aspx" target=_blank&gt;My
previous blogs on Software Architectures&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=6a305013-29cc-4d6e-9dea-3ee5d74c552e" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
© William Tay 2012 | Swinging Technologist 
&lt;br /&gt;
&lt;a href="http://www.softwaremaker.net/blog"&gt;http://www.softwaremaker.net/blog&lt;/a&gt;</description>
      <category>Software Architectures</category>
    </item>
  </channel>
</rss>