<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Anil John - Service Orientation</title>
    <link>http://www.aniltj.com/blog/</link>
    <description>On Architecture, Digital Security, Service Orientation...</description>
    <language>en-us</language>
    <copyright>Anil John</copyright>
    <lastBuildDate>Sat, 17 Apr 2010 21:09:44 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>aniltj@gmail.com</managingEditor>
    <webMaster>aniltj@gmail.com</webMaster>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=f04cc52f-057b-47a9-98ad-97007361a9c5</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,f04cc52f-057b-47a9-98ad-97007361a9c5.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,f04cc52f-057b-47a9-98ad-97007361a9c5.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=f04cc52f-057b-47a9-98ad-97007361a9c5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I had the opportunity earlier in the week to attend the <a href="http://middleware.internet2.edu/idtrust/2010/program.html" target="_blank">9th
Symposium on Identity and Trust on the Internet (IDtrust 2010)</a> which was held
at NIST.
</p>
        <p>
Given that a lot of the work that I am currently doing is centered around externalized,
policy driven Authorization using Attribute Based Access Control (ABAC) and the profiling
and deployment of Enterprise Attribute Services, I found a <a href="http://middleware.internet2.edu/idtrust/2010/papers/02-thomas-idp-soa.pdf" target="_blank">paper</a> [PDF]
and <a href="http://middleware.internet2.edu/idtrust/2010/slides/02-thomas-idp-soa.pdf" target="_blank">presentation</a> [PDF]
given by Ivonne Thomas from the Hasso-Plattner-Institue for IT-Systems Engineering
to be very interesting.
</p>
        <p>
As an aside, one of the best explanations on conveying what ABAC is all about, particularly
to business owners, was given by a colleague who works for the DOD in this particular
domain (Thanks Ken B).
</p>
        <blockquote>
          <p>
            <em>“Consider if you will, the following two situations.</em>
          </p>
          <p>
            <em>You are standing in line at the Grocery store and a little old lady in a walker
comes up to you and demands your driver’s license and proof-of-insurance! You will
be making a particular decision at that time. Now, consider if the same question was
asked of you with red and blue lights blinking behind you and someone with a badge
and a gun is knocking on your windshield asking for the same information.</em>
          </p>
          <p>
            <em>We make these types of decisions all the time in our lives based on a real time
evaluation of who is asking the question, what they want access to, and the context
in which the question is being asked. ABAC is how we could do the same thing in the
electronic world. Making a real-time access control decision based on attributes of
the subject, the attributes of the resource and the attributes of the environment/context.”</em>
          </p>
        </blockquote>
        <p>
I love this explanation and have shamelessly stolen and used it to great effect in
multiple situations.
</p>
        <p>
Coming back to the paper, given that Attributes are used to make these critical access
control decisions, how does one judge the “trust-worthiness” and/or “authoritative-ness”
of each attribute that are used to make the decision?  How could one convey these
qualities related to attributes to a Relying Party so that it can make a nuanced access
control decision?
</p>
        <p>
On the authentication front, we have an existing body of work that can be leveraged
such as the <a href="http://www.whitehouse.gov/omb/assets/omb/memoranda/fy04/m04-04.pdf" target="_blank">OMB
E-Authentication Guidance M-04-04</a> [PDF] which defines the four Levels of Assurance
(LOA) for the US Federal Government and the attendant <a href="http://csrc.nist.gov/publications/drafts/800-63-rev1/SP800-63-Rev1_Dec2008.pdf" target="_blank">NIST
SP 800-63</a> [PDF] that defines the technologies that can be used to meet the requirements
of M-04-04.  In particular, you have the ability to use <a href="http://lists.oasis-open.org/archives/security-services/201004/msg00022.html" target="_blank">SAML
Authentication Context to convey the LOA statements</a> in conformance with an identity
assurance framework. 
</p>
        <p>
          <img style="border-right-width: 0px; margin: 0px 0px 10px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="AttributeContext" border="0" alt="AttributeContext" align="right" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/ConveyingAttributeAssurance_F156/AttributeContext_3.jpg" width="207" height="284" /> The
paper, which I think has a misleading title, uses the Authentication Context approach
as an example and defines an extension to the SAML 2.0 schema for what is termed by
the Authors as an “Attribute Context” which can be applied to each Attribute value.
The authors define the parts as:
</p>
        <ul>
          <li>
            <em>
              <strong>Attribute Context</strong> This data element holds the attribute context, 
which is comprised of all additional information to the attribute value itself. This
element is the upper container for all identity metadata. </em>
          </li>
          <li>
            <em>
              <strong>Attribute Data Source</strong> This data element indicates the source
from which the attribute value was originally received and is part of the Attribute
Context. This  can  be  for  example  another  identity 
provider, some authority as a certificate authority or the user himself who entered
the data. </em>
          </li>
          <li>
            <em>
              <strong>Verification  Context</strong> This data element holds the verification
context, which comprises all information related to the verification of an identity
attribute value. The Verification Context is one specific context within the Attribute
Context. </em>
          </li>
          <li>
            <em>
              <strong>Verification Status</strong> This data element indicates the verification
status of an identity attribute value, which should be one of “verified”, “not verified”
or “unknown”. The verification status is part of the verification context. </em>
          </li>
          <li>
            <em>
              <strong>Verification Context Declaration</strong> The verification context declaration
holds the verification process details.  Such a detail could for example be the
method that has been used for verifying the correctness of the attribute.  Further
extensions are possible and should be added here.  The verification context declaration
besides the verification status make up the verification context.</em>
          </li>
        </ul>
        <p>
I know of many folks who are working on the policy side of this question of how to
judge the “authoritative-ness” of an Attribute under multiple topics such as “Attribute
Assurance”, “Attribute Practice Statements”, “Authority Services” etc. etc. 
But I have often thought about how one would go about conveying these types of assertions
using current technology. This approach seems to provide an elegant approach for doing
just that:
</p>
        <p>
          <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="AttributeResponse2" border="0" alt="AttributeResponse2" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/ConveyingAttributeAssurance_F156/AttributeResponse2_6.jpg" width="827" height="362" />
        </p>
        <p>
As you can see in the above example, the extensions proposed by the authors integrate
nicely into a standard saml:AttributeStatement and convey the metadata about individual
attributes to a Relying Party that can make a more nuanced access control decision.
</p>
        <p>
I think this is a great beginning and would love to see the authors submit this to
the OASIS Security Services (SAML) TC so that it can become part and parcel of the
SAML 2.0 specification. I would also love to see a Profile come out of the OASIS SSTC
that would define a consistent set of <em>Verification Context Declarations</em>. 
In particular I believe that the concept of referencing “<em>Governing Agreements</em>”
as defined in the current “<a href="http://lists.oasis-open.org/archives/security-services/201004/msg00022.html" target="_blank">SAML
2.0 Identity Assurance Profile, Version 1.0</a>” (which is in public review) has applicability
to this work as well.
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:31a6f1b0-c9e6-41f6-a177-20e6e7203e55" class="wlWriterEditableSmartContent">del.icio.us
Tags: <a href="http://del.icio.us/popular/ABAC" rel="tag">ABAC</a>,<a href="http://del.icio.us/popular/SAML" rel="tag">SAML</a>,<a href="http://del.icio.us/popular/Attribute+Assurance" rel="tag">Attribute
Assurance</a>,<a href="http://del.icio.us/popular/OASIS" rel="tag">OASIS</a></div>
        <br />
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5923e235-3070-41b4-8ce2-c4bbe2640eda" class="wlWriterEditableSmartContent">Technorati
Tags: <a href="http://technorati.com/tags/ABAC" rel="tag">ABAC</a>,<a href="http://technorati.com/tags/SAML" rel="tag">SAML</a>,<a href="http://technorati.com/tags/Attribute+Assurance" rel="tag">Attribute
Assurance</a>,<a href="http://technorati.com/tags/OASIS" rel="tag">OASIS</a></div>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=f04cc52f-057b-47a9-98ad-97007361a9c5" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Conveying Attribute Assurance</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,f04cc52f-057b-47a9-98ad-97007361a9c5.aspx</guid>
      <link>http://www.aniltj.com/blog/2010/04/17/ConveyingAttributeAssurance.aspx</link>
      <pubDate>Sat, 17 Apr 2010 21:09:44 GMT</pubDate>
      <description>&lt;p&gt;
I had the opportunity earlier in the week to attend the &lt;a href="http://middleware.internet2.edu/idtrust/2010/program.html" target="_blank"&gt;9th
Symposium on Identity and Trust on the Internet (IDtrust 2010)&lt;/a&gt; which was held
at NIST.
&lt;/p&gt;
&lt;p&gt;
Given that a lot of the work that I am currently doing is centered around externalized,
policy driven Authorization using Attribute Based Access Control (ABAC) and the profiling
and deployment of Enterprise Attribute Services, I found a &lt;a href="http://middleware.internet2.edu/idtrust/2010/papers/02-thomas-idp-soa.pdf" target="_blank"&gt;paper&lt;/a&gt; [PDF]
and &lt;a href="http://middleware.internet2.edu/idtrust/2010/slides/02-thomas-idp-soa.pdf" target="_blank"&gt;presentation&lt;/a&gt; [PDF]
given by Ivonne Thomas from the Hasso-Plattner-Institue for IT-Systems Engineering
to be very interesting.
&lt;/p&gt;
&lt;p&gt;
As an aside, one of the best explanations on conveying what ABAC is all about, particularly
to business owners, was given by a colleague who works for the DOD in this particular
domain (Thanks Ken B).
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;“Consider if you will, the following two situations.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;You are standing in line at the Grocery store and a little old lady in a walker
comes up to you and demands your driver’s license and proof-of-insurance! You will
be making a particular decision at that time. Now, consider if the same question was
asked of you with red and blue lights blinking behind you and someone with a badge
and a gun is knocking on your windshield asking for the same information.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;We make these types of decisions all the time in our lives based on a real time
evaluation of who is asking the question, what they want access to, and the context
in which the question is being asked. ABAC is how we could do the same thing in the
electronic world. Making a real-time access control decision based on attributes of
the subject, the attributes of the resource and the attributes of the environment/context.”&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
I love this explanation and have shamelessly stolen and used it to great effect in
multiple situations.
&lt;/p&gt;
&lt;p&gt;
Coming back to the paper, given that Attributes are used to make these critical access
control decisions, how does one judge the “trust-worthiness” and/or “authoritative-ness”
of each attribute that are used to make the decision?&amp;nbsp; How could one convey these
qualities related to attributes to a Relying Party so that it can make a nuanced access
control decision?
&lt;/p&gt;
&lt;p&gt;
On the authentication front, we have an existing body of work that can be leveraged
such as the &lt;a href="http://www.whitehouse.gov/omb/assets/omb/memoranda/fy04/m04-04.pdf" target="_blank"&gt;OMB
E-Authentication Guidance M-04-04&lt;/a&gt; [PDF] which defines the four Levels of Assurance
(LOA) for the US Federal Government and the attendant &lt;a href="http://csrc.nist.gov/publications/drafts/800-63-rev1/SP800-63-Rev1_Dec2008.pdf" target="_blank"&gt;NIST
SP 800-63&lt;/a&gt; [PDF] that defines the technologies that can be used to meet the requirements
of M-04-04.&amp;nbsp; In particular, you have the ability to use &lt;a href="http://lists.oasis-open.org/archives/security-services/201004/msg00022.html" target="_blank"&gt;SAML
Authentication Context to convey the LOA statements&lt;/a&gt; in conformance with an identity
assurance framework. 
&lt;/p&gt;
&lt;p&gt;
&lt;img style="border-right-width: 0px; margin: 0px 0px 10px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="AttributeContext" border="0" alt="AttributeContext" align="right" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/ConveyingAttributeAssurance_F156/AttributeContext_3.jpg" width="207" height="284"&gt; The
paper, which I think has a misleading title, uses the Authentication Context approach
as an example and defines an extension to the SAML 2.0 schema for what is termed by
the Authors as an “Attribute Context” which can be applied to each Attribute value.
The authors define the parts as:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Attribute Context&lt;/strong&gt; This data element holds the attribute context,&amp;nbsp;
which is comprised of all additional information to the attribute value itself. This
element is the upper container for all identity metadata. &lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Attribute Data Source&lt;/strong&gt; This data element indicates the source
from which the attribute value was originally received and is part of the Attribute
Context. This&amp;nbsp; can&amp;nbsp; be&amp;nbsp; for&amp;nbsp; example&amp;nbsp; another&amp;nbsp; identity&amp;nbsp;
provider, some authority as a certificate authority or the user himself who entered
the data. &lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Verification&amp;nbsp; Context&lt;/strong&gt; This data element holds the verification
context, which comprises all information related to the verification of an identity
attribute value. The Verification Context is one specific context within the Attribute
Context. &lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Verification Status&lt;/strong&gt; This data element indicates the verification
status of an identity attribute value, which should be one of “verified”, “not verified”
or “unknown”. The verification status is part of the verification context. &lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Verification Context Declaration&lt;/strong&gt; The verification context declaration
holds the verification process details.&amp;nbsp; Such a detail could for example be the
method that has been used for verifying the correctness of the attribute.&amp;nbsp; Further
extensions are possible and should be added here.&amp;nbsp; The verification context declaration
besides the verification status make up the verification context.&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
I know of many folks who are working on the policy side of this question of how to
judge the “authoritative-ness” of an Attribute under multiple topics such as “Attribute
Assurance”, “Attribute Practice Statements”, “Authority Services” etc. etc.&amp;nbsp;
But I have often thought about how one would go about conveying these types of assertions
using current technology. This approach seems to provide an elegant approach for doing
just that:
&lt;/p&gt;
&lt;p&gt;
&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="AttributeResponse2" border="0" alt="AttributeResponse2" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/ConveyingAttributeAssurance_F156/AttributeResponse2_6.jpg" width="827" height="362"&gt; 
&lt;/p&gt;
&lt;p&gt;
As you can see in the above example, the extensions proposed by the authors integrate
nicely into a standard saml:AttributeStatement and convey the metadata about individual
attributes to a Relying Party that can make a more nuanced access control decision.
&lt;/p&gt;
&lt;p&gt;
I think this is a great beginning and would love to see the authors submit this to
the OASIS Security Services (SAML) TC so that it can become part and parcel of the
SAML 2.0 specification. I would also love to see a Profile come out of the OASIS SSTC
that would define a consistent set of &lt;em&gt;Verification Context Declarations&lt;/em&gt;.&amp;nbsp;
In particular I believe that the concept of referencing “&lt;em&gt;Governing Agreements&lt;/em&gt;”
as defined in the current “&lt;a href="http://lists.oasis-open.org/archives/security-services/201004/msg00022.html" target="_blank"&gt;SAML
2.0 Identity Assurance Profile, Version 1.0&lt;/a&gt;” (which is in public review) has applicability
to this work as well.
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:31a6f1b0-c9e6-41f6-a177-20e6e7203e55" class="wlWriterEditableSmartContent"&gt;del.icio.us
Tags: &lt;a href="http://del.icio.us/popular/ABAC" rel="tag"&gt;ABAC&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/SAML" rel="tag"&gt;SAML&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Attribute+Assurance" rel="tag"&gt;Attribute
Assurance&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/OASIS" rel="tag"&gt;OASIS&lt;/a&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5923e235-3070-41b4-8ce2-c4bbe2640eda" class="wlWriterEditableSmartContent"&gt;Technorati
Tags: &lt;a href="http://technorati.com/tags/ABAC" rel="tag"&gt;ABAC&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SAML" rel="tag"&gt;SAML&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Attribute+Assurance" rel="tag"&gt;Attribute
Assurance&lt;/a&gt;,&lt;a href="http://technorati.com/tags/OASIS" rel="tag"&gt;OASIS&lt;/a&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=f04cc52f-057b-47a9-98ad-97007361a9c5" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,f04cc52f-057b-47a9-98ad-97007361a9c5.aspx</comments>
      <category>Security</category>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=78811206-7964-4031-8f21-8b2a54f0d827</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,78811206-7964-4031-8f21-8b2a54f0d827.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,78811206-7964-4031-8f21-8b2a54f0d827.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=78811206-7964-4031-8f21-8b2a54f0d827</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
To be conformant to SPML v2 means that the SPML interface (Provisioning Service Provider
/ PSP) MUST:
</p>
        <ul>
          <li>
Support the set of Core operations</li>
          <ul>
            <li>
a discovery operation {listTargets} on the provider</li>
            <li>
basic operations {add, lookup, modify, delete} that apply to objects on a target</li>
          </ul>
          <li>
Supports basic operations for every schema entity that a target supports</li>
          <li>
Supports modal mechanisms for asynchronous operations</li>
        </ul>
        <p>
          <img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 10px 10px; display: inline; border-top: 0px; border-right: 0px" title="SPML" border="0" alt="SPML" align="right" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/SPMLUseCasesandProfilingChoices_EB57/SPML_3.jpg" width="510" height="383" />There
are additional “Standard” operations described in the <a href="http://www.oasis-open.org/committees/download.php/17708/pstc-spml-2.0-os.zip" target="_blank">OASIS
SPML v2 Specification [Zip]</a>. The clear thing to keep in mind is that each operations
adds a data management burden onto the provider, so the choice of whether or not to
implement them should be considered very carefully.
</p>
        <p>
From the perspective of deployment topologies, the PSP could be deployed separately
from the Target or could very well be integrated tightly with the Target e.g. an SPML
compliant web service interface on a target system.
</p>
        <p>
One of the frustrating items for me when enquiring about SPML support in products
has been the lack of clarity and visibility around exactly what has been implemented.
All too often, vendors seem to have cherry picked a chosen set of operations (whether
from the Core or from the Standard list) and used that to claim SPML support. I would
be very curious to see if anyone can claim full SPML v2 compliance.
</p>
        <p>
A particular use case for SPML that I am currently working on has to deal with the
“batch” movement of attributes from multiple systems to a central repository. The
typical flow is as follows:
</p>
        <ul>
          <li>
Per organizational policy &amp; relationship to user, attributes are assigned in their
home organization and/or business unit (Org A / Org B / …)</li>
          <li>
Org A must move those users and/or their attributes to a central repository (Repository
X) on a regular basis</li>
          <li>
Repository X acts as the authoritative source of attributes of users from multiple
organizations / business units and can provide those attributes to authenticated and
authorized entities in a real-time request/response and in a synch-take-offline-use
modes.</li>
        </ul>
        <p>
Some points to keep in mind are:
</p>
        <ul>
          <li>
Org A / B / … may have, and all too often do, have their own existing identity and
provisioning systems as well as associated governance processes in place.</li>
          <li>
The organizations and the repository may or may not be under the same sphere of control
and as such cannot mandate the use of the same piece of provisioning software and
associated connectors on both ends of the divide.</li>
          <li>
The systems where the organizations store the attributes of their users may not necessarily
be directory based systems.</li>
          <li>
The Repository may or may not be directory based system.</li>
          <li>
Identity / Trust / Security are, as you may imagine, rather important in these types
of transactions.</li>
        </ul>
        <p>
          <img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 10px 10px; display: inline; border-top: 0px; border-right: 0px" title="SPML_Profile" border="0" alt="SPML_Profile" align="right" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/SPMLUseCasesandProfilingChoices_EB57/SPML_Profile_3.jpg" width="466" height="125" /> To
meet these needs, we are currently profiling SPML to support the Core SPML Operations
as well as the optional “BATCH” capability.  The “ASYNC” capability is something
that we are more than likely going to support as well as it provides a mechanism for
the provider to advertise support for asynchronous operations rather than have a request
for an asynch operation fail on a requester with an error “<em>status=’failed’</em>”
and “<em>error=’unsupportedExecutionMode’</em>”.
</p>
        <p>
Keep in mind that the end result will satisfy more than just the one use case that
I noted above. In fact, it satisfies many other use cases that we have that deal with
both LACS and PACS scenarios. In addition, the profile will also bring in the pieces
that are noted as out of scope in the SPML standard i.e. the Profiling of the Security
protocols that are used to assure the integrity, confidentiality and trust of these
exchanges. Fortunately, we can leverage <a href="http://www.aniltj.com/blog/2009/06/06/SAML2ProfilesForPIVSubjectsAndBackendAttributeExchange.aspx" target="_blank">some
of previous work we have done</a> in this space for that aspect.
</p>
        <p>
        </p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5ce0edf9-3092-484a-8775-94f83b0f3c0b" class="wlWriterEditableSmartContent">del.icio.us
Tags: <a href="http://del.icio.us/popular/SPML" rel="tag">SPML</a>,<a href="http://del.icio.us/popular/Federation" rel="tag">Federation</a>,<a href="http://del.icio.us/popular/IdM" rel="tag">IdM</a></div>
        <br />
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:56ea29cf-d882-4cf0-902b-6efac841ad4c" class="wlWriterEditableSmartContent">Technorati
Tags: <a href="http://technorati.com/tags/SPML" rel="tag">SPML</a>,<a href="http://technorati.com/tags/Federation" rel="tag">Federation</a>,<a href="http://technorati.com/tags/IdM" rel="tag">IdM</a></div>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=78811206-7964-4031-8f21-8b2a54f0d827" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>SPML Use Cases and Profiling Choices</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,78811206-7964-4031-8f21-8b2a54f0d827.aspx</guid>
      <link>http://www.aniltj.com/blog/2010/02/21/SPMLUseCasesAndProfilingChoices.aspx</link>
      <pubDate>Sun, 21 Feb 2010 21:44:10 GMT</pubDate>
      <description>&lt;p&gt;
To be conformant to SPML v2 means that the SPML interface (Provisioning Service Provider
/ PSP) MUST:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Support the set of Core operations&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
a discovery operation {listTargets} on the provider&lt;/li&gt;
&lt;li&gt;
basic operations {add, lookup, modify, delete} that apply to objects on a target&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
Supports basic operations for every schema entity that a target supports&lt;/li&gt;
&lt;li&gt;
Supports modal mechanisms for asynchronous operations&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 10px 10px; display: inline; border-top: 0px; border-right: 0px" title="SPML" border="0" alt="SPML" align="right" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/SPMLUseCasesandProfilingChoices_EB57/SPML_3.jpg" width="510" height="383"&gt;There
are additional “Standard” operations described in the &lt;a href="http://www.oasis-open.org/committees/download.php/17708/pstc-spml-2.0-os.zip" target="_blank"&gt;OASIS
SPML v2 Specification [Zip]&lt;/a&gt;. The clear thing to keep in mind is that each operations
adds a data management burden onto the provider, so the choice of whether or not to
implement them should be considered very carefully.
&lt;/p&gt;
&lt;p&gt;
From the perspective of deployment topologies, the PSP could be deployed separately
from the Target or could very well be integrated tightly with the Target e.g. an SPML
compliant web service interface on a target system.
&lt;/p&gt;
&lt;p&gt;
One of the frustrating items for me when enquiring about SPML support in products
has been the lack of clarity and visibility around exactly what has been implemented.
All too often, vendors seem to have cherry picked a chosen set of operations (whether
from the Core or from the Standard list) and used that to claim SPML support. I would
be very curious to see if anyone can claim full SPML v2 compliance.
&lt;/p&gt;
&lt;p&gt;
A particular use case for SPML that I am currently working on has to deal with the
“batch” movement of attributes from multiple systems to a central repository. The
typical flow is as follows:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Per organizational policy &amp;amp; relationship to user, attributes are assigned in their
home organization and/or business unit (Org A / Org B / …)&lt;/li&gt;
&lt;li&gt;
Org A must move those users and/or their attributes to a central repository (Repository
X) on a regular basis&lt;/li&gt;
&lt;li&gt;
Repository X acts as the authoritative source of attributes of users from multiple
organizations / business units and can provide those attributes to authenticated and
authorized entities in a real-time request/response and in a synch-take-offline-use
modes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Some points to keep in mind are:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Org A / B / … may have, and all too often do, have their own existing identity and
provisioning systems as well as associated governance processes in place.&lt;/li&gt;
&lt;li&gt;
The organizations and the repository may or may not be under the same sphere of control
and as such cannot mandate the use of the same piece of provisioning software and
associated connectors on both ends of the divide.&lt;/li&gt;
&lt;li&gt;
The systems where the organizations store the attributes of their users may not necessarily
be directory based systems.&lt;/li&gt;
&lt;li&gt;
The Repository may or may not be directory based system.&lt;/li&gt;
&lt;li&gt;
Identity / Trust / Security are, as you may imagine, rather important in these types
of transactions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 10px 10px; display: inline; border-top: 0px; border-right: 0px" title="SPML_Profile" border="0" alt="SPML_Profile" align="right" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/SPMLUseCasesandProfilingChoices_EB57/SPML_Profile_3.jpg" width="466" height="125"&gt; To
meet these needs, we are currently profiling SPML to support the Core SPML Operations
as well as the optional “BATCH” capability.&amp;nbsp; The “ASYNC” capability is something
that we are more than likely going to support as well as it provides a mechanism for
the provider to advertise support for asynchronous operations rather than have a request
for an asynch operation fail on a requester with an error “&lt;em&gt;status=’failed’&lt;/em&gt;”
and “&lt;em&gt;error=’unsupportedExecutionMode’&lt;/em&gt;”.
&lt;/p&gt;
&lt;p&gt;
Keep in mind that the end result will satisfy more than just the one use case that
I noted above. In fact, it satisfies many other use cases that we have that deal with
both LACS and PACS scenarios. In addition, the profile will also bring in the pieces
that are noted as out of scope in the SPML standard i.e. the Profiling of the Security
protocols that are used to assure the integrity, confidentiality and trust of these
exchanges. Fortunately, we can leverage &lt;a href="http://www.aniltj.com/blog/2009/06/06/SAML2ProfilesForPIVSubjectsAndBackendAttributeExchange.aspx" target="_blank"&gt;some
of previous work we have done&lt;/a&gt; in this space for that aspect.
&lt;/p&gt;
&lt;p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5ce0edf9-3092-484a-8775-94f83b0f3c0b" class="wlWriterEditableSmartContent"&gt;del.icio.us
Tags: &lt;a href="http://del.icio.us/popular/SPML" rel="tag"&gt;SPML&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Federation" rel="tag"&gt;Federation&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/IdM" rel="tag"&gt;IdM&lt;/a&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:56ea29cf-d882-4cf0-902b-6efac841ad4c" class="wlWriterEditableSmartContent"&gt;Technorati
Tags: &lt;a href="http://technorati.com/tags/SPML" rel="tag"&gt;SPML&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Federation" rel="tag"&gt;Federation&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IdM" rel="tag"&gt;IdM&lt;/a&gt;
&lt;/div&gt;
&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=78811206-7964-4031-8f21-8b2a54f0d827" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,78811206-7964-4031-8f21-8b2a54f0d827.aspx</comments>
      <category>Architecture</category>
      <category>Security</category>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=a3f2992e-37e5-4580-a1fa-292bdc2ed3a7</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,a3f2992e-37e5-4580-a1fa-292bdc2ed3a7.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,a3f2992e-37e5-4580-a1fa-292bdc2ed3a7.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=a3f2992e-37e5-4580-a1fa-292bdc2ed3a7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Mark Diodati at the Burton Group kicked off this conversation in his blog post "<a href="http://identityblog.burtongroup.com/bgidps/2010/02/spml-is-on-life-support-.html" target="_blank">SPML
Is On Life Support...</a>" Other folks, notably Nishant Kaushik ("<a href="http://blog.talkingidentity.com/2010/02/spml-under-the-spotlight-again.html" target="_blank">SPML
Under the Spotlight Again?</a>"), Ingrid Melve ("<a href="http://identitynetworks.wordpress.com/2010/02/11/provisioning-will-spml-emerge/" target="_blank">Provisioning,
will SPML emerge?</a>") and Jeff Bohren ("<a href="http://idlogger.wordpress.com/2010/02/12/whither-spml-or-wither-spml/" target="_blank">Whither
SPML or wither SPML?"</a>) bring additional perspectives to this conversation. There
is also some <a href="http://twitter.com/#search?q=SPML" target="_blank">chatter in
the Twitter-verse</a> around this topic as well.
</p>
        <p>
As someone who has been involved in both the standards process as well as end user
implementation, I have a semi-jaded perspective to offer on what it takes for vendors
to implement interfaces that are standards based in their tooling/products. First
of all, let it be clearly understood that Standards are beautiful things (and there
are many of them) but <strong>a Standard without vendor tooling support is nothing
more than shelf-ware</strong>. So in the case of Standards Based Provisioning, in
order to get that tooling support, multiple things need to happen:
</p>
        <ul>
          <li>
            <strong>First and foremost, do NOT let a vendor drive your architecture!</strong> User
organizations need to break out the "vicious cycle" that exists by first realizing
that there are choices beyond the proprietary connectors that are being peddled by
vendors, and secondly by stepping up and <strong>defining provisioning architectures
in a manner that prioritizes open interfaces, minimizes custom connectors and promotes
diversity of vendor choice</strong>.  Map vendor technology into your architecture
and not the other way around, because if you start from what a vendor's product gives
you, you will always be limited by that vendor's vision, choices and motivations. 
</li>
          <li>
            <strong>Bring your use cases and pain points to the Standards development process</strong> and
invest the time and effort (Yes, this is often painful and time consuming!) to incorporate
your needs into the base standard itself. I am finding that often the Technical Committees
in Standards Organizations are proposed and driven by vendors and not end users. But
in cases where there is a good balance between end users and vendors, the Standard
reflects the needs of real people (The Security Services/SAML TC at OASIS often comes
to mind as a good example). 
</li>
          <li>
Organizations need to <strong>incorporate the need for open standards into their product
acquisition process</strong>. This needs to go beyond "Product X will support SPML"
to explicit use cases as to which portions of the standard are important and relevant.
Prototype what you need and be prepared to ask tough, detailed questions and ask for
conformance tests against a profile of the Standard. 
</li>
          <li>
Be prepared to <strong>actively work with vendors who treat you like an intelligent,
strategic partner</strong> and are willing to invest their time in understanding your
business needs and motivations. These are the <strong>folks who see the strategic
value and business opportunities in supporting open interfaces and standards</strong>,
realize they can turn and burn quicker than the competition, and compete on how fast
they can innovate and on customer satisfaction versus depending on product lock-in. 
They are out there, and it is incumbent upon organizations to drive the conversation
with those folks.</li>
        </ul>
        <p>
Moving on, let me reiterate the comments that I made on Mark's blog posting:
</p>
        <blockquote>
          <p>
"<em>The concern with exposing LDAP/AD across organizational boundaries is real and
may not be resolved at the technology level. Applying an existing cross-cutting security
infrastructure to a SOAP binding (to SPML) is a proven and understood mechanism which
is more acceptable to risk averse organizations.</em></p>
          <p>
            <em>I would also add two additional points:</em>
          </p>
          <ol>
            <li>
              <em>More support for the XSD portion of SPML vs. DSML in vendor tooling. There are
a LOT of authoritative sources of information that are simply NOT directories.</em>
            </li>
            <li>
              <em>There needs to be the the analog of SAML metadata in the SPML world (Or a profile
of SAML metadata that can be used with SPML) to bootstrap the discovery of capabilities.
The "listTargets" operation is simply not enough.</em>"</li>
          </ol>
        </blockquote>
        <p>
          <img style="border-width: 0px; margin: 0px 0px 10px 10px;" alt="Pull" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/StandardsBasedProvisioningandSPML_AA2B/Pull_3.jpg" align="right" border="0" height="212" width="476" /> While
I do resonate with the "pull" model interfaces noted by Mark in his posting, I do
believe that exposing LDAP(S)/AD Interfaces either directly of via Virtual Directories
outside organizational boundaries is a non-starter for many organizations. 
</p>
        <p>
At the same time I believe there exists options in the current state of technology
to provide a hybrid approach that can incorporate both the pull model as well as provide
the application of cross-cutting security infrastructure into the mix. The architecture
that we are currently using incorporates a combination of both Virtual/Meta Directory
capabilities as well as an XML Security Gateway to provide policy enforcement (security
and more) when exposed to the outside. 
</p>
        <p>
I will also reiterate that there needs to be more support for the XSD portion of SPML
vs. DSML. A lot of the authoritative sources of user information that I am dealing
with are simply not found in directory services but in other sources such as relational
databases, custom web services and sometimes proprietary formats in addition to LDAP/AD.
</p>
        <p>
I hope to post some the use cases for standards based provisioning as well as the
details of some of the profiling that we are doing on SPML to satisfy those use cases
in future blog posts. Looking forward to further conversations around this topic.
</p>
        <div style="padding: 0px; margin: 0px; display: inline; float: none;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6f8b6857-55e2-4ce2-9692-88ecbf400e91" class="wlWriterSmartContent">del.icio.us
Tags: <a href="http://del.icio.us/popular/SPML" rel="tag">SPML</a>,<a href="http://del.icio.us/popular/Federation" rel="tag">Federation</a>,<a href="http://del.icio.us/popular/IdM" rel="tag">IdM</a>,<a href="http://del.icio.us/popular/BurtonGroup" rel="tag">BurtonGroup</a>,<a href="http://del.icio.us/popular/VirtualDirectory" rel="tag">VirtualDirectory</a>,<a href="http://del.icio.us/popular/Standards" rel="tag">Standards</a></div>
        <br />
        <div style="padding: 0px; margin: 0px; display: inline; float: none;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:61b7fca8-8c3b-4de6-970f-5b8dbbc14169" class="wlWriterSmartContent">Technorati
Tags: <a href="http://technorati.com/tags/SPML" rel="tag">SPML</a>,<a href="http://technorati.com/tags/Federation" rel="tag">Federation</a>,<a href="http://technorati.com/tags/IdM" rel="tag">IdM</a>,<a href="http://technorati.com/tags/BurtonGroup" rel="tag">BurtonGroup</a>,<a href="http://technorati.com/tags/VirtualDirectory" rel="tag">VirtualDirectory</a>,<a href="http://technorati.com/tags/Standards" rel="tag">Standards</a></div>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=a3f2992e-37e5-4580-a1fa-292bdc2ed3a7" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Standards Based Provisioning and SPML</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,a3f2992e-37e5-4580-a1fa-292bdc2ed3a7.aspx</guid>
      <link>http://www.aniltj.com/blog/2010/02/13/StandardsBasedProvisioningAndSPML.aspx</link>
      <pubDate>Sat, 13 Feb 2010 17:26:52 GMT</pubDate>
      <description>&lt;p&gt;
Mark Diodati at the Burton Group kicked off this conversation in his blog post "&lt;a href="http://identityblog.burtongroup.com/bgidps/2010/02/spml-is-on-life-support-.html" target="_blank"&gt;SPML
Is On Life Support...&lt;/a&gt;" Other folks, notably Nishant Kaushik ("&lt;a href="http://blog.talkingidentity.com/2010/02/spml-under-the-spotlight-again.html" target="_blank"&gt;SPML
Under the Spotlight Again?&lt;/a&gt;"), Ingrid Melve ("&lt;a href="http://identitynetworks.wordpress.com/2010/02/11/provisioning-will-spml-emerge/" target="_blank"&gt;Provisioning,
will SPML emerge?&lt;/a&gt;") and Jeff Bohren ("&lt;a href="http://idlogger.wordpress.com/2010/02/12/whither-spml-or-wither-spml/" target="_blank"&gt;Whither
SPML or wither SPML?"&lt;/a&gt;) bring additional perspectives to this conversation. There
is also some &lt;a href="http://twitter.com/#search?q=SPML" target="_blank"&gt;chatter in
the Twitter-verse&lt;/a&gt; around this topic as well.
&lt;/p&gt;
&lt;p&gt;
As someone who has been involved in both the standards process as well as end user
implementation, I have a semi-jaded perspective to offer on what it takes for vendors
to implement interfaces that are standards based in their tooling/products. First
of all, let it be clearly understood that Standards are beautiful things (and there
are many of them) but &lt;strong&gt;a Standard without vendor tooling support is nothing
more than shelf-ware&lt;/strong&gt;. So in the case of Standards Based Provisioning, in
order to get that tooling support, multiple things need to happen:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;First and foremost, do NOT let a vendor drive your architecture!&lt;/strong&gt; User
organizations need to break out the "vicious cycle" that exists by first realizing
that there are choices beyond the proprietary connectors that are being peddled by
vendors, and secondly by stepping up and &lt;strong&gt;defining provisioning architectures
in a manner that prioritizes open interfaces, minimizes custom connectors and promotes
diversity of vendor choice&lt;/strong&gt;.&amp;nbsp; Map vendor technology into your architecture
and not the other way around, because if you start from what a vendor's product gives
you, you will always be limited by that vendor's vision, choices and motivations. 
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bring your use cases and pain points to the Standards development process&lt;/strong&gt; and
invest the time and effort (Yes, this is often painful and time consuming!) to incorporate
your needs into the base standard itself. I am finding that often the Technical Committees
in Standards Organizations are proposed and driven by vendors and not end users. But
in cases where there is a good balance between end users and vendors, the Standard
reflects the needs of real people (The Security Services/SAML TC at OASIS often comes
to mind as a good example). 
&lt;/li&gt;
&lt;li&gt;
Organizations need to &lt;strong&gt;incorporate the need for open standards into their product
acquisition process&lt;/strong&gt;. This needs to go beyond "Product X will support SPML"
to explicit use cases as to which portions of the standard are important and relevant.
Prototype what you need and be prepared to ask tough, detailed questions and ask for
conformance tests against a profile of the Standard. 
&lt;/li&gt;
&lt;li&gt;
Be prepared to &lt;strong&gt;actively work with vendors who treat you like an intelligent,
strategic partner&lt;/strong&gt; and are willing to invest their time in understanding your
business needs and motivations. These are the &lt;strong&gt;folks who see the strategic
value and business opportunities in supporting open interfaces and standards&lt;/strong&gt;,
realize they can turn and burn quicker than the competition, and compete on how fast
they can innovate and on customer satisfaction versus depending on product lock-in.&amp;nbsp;
They are out there, and it is incumbent upon organizations to drive the conversation
with those folks.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Moving on, let me reiterate the comments that I made on Mark's blog posting:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
"&lt;em&gt;The concern with exposing LDAP/AD across organizational boundaries is real and
may not be resolved at the technology level. Applying an existing cross-cutting security
infrastructure to a SOAP binding (to SPML) is a proven and understood mechanism which
is more acceptable to risk averse organizations.&lt;/em&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;I would also add two additional points:&lt;/em&gt; 
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;em&gt;More support for the XSD portion of SPML vs. DSML in vendor tooling. There are
a LOT of authoritative sources of information that are simply NOT directories.&lt;/em&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;There needs to be the the analog of SAML metadata in the SPML world (Or a profile
of SAML metadata that can be used with SPML) to bootstrap the discovery of capabilities.
The "listTargets" operation is simply not enough.&lt;/em&gt;"&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;img style="border-width: 0px; margin: 0px 0px 10px 10px;" alt="Pull" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/StandardsBasedProvisioningandSPML_AA2B/Pull_3.jpg" align="right" border="0" height="212" width="476"&gt; While
I do resonate with the "pull" model interfaces noted by Mark in his posting, I do
believe that exposing LDAP(S)/AD Interfaces either directly of via Virtual Directories
outside organizational boundaries is a non-starter for many organizations. 
&lt;/p&gt;
&lt;p&gt;
At the same time I believe there exists options in the current state of technology
to provide a hybrid approach that can incorporate both the pull model as well as provide
the application of cross-cutting security infrastructure into the mix. The architecture
that we are currently using incorporates a combination of both Virtual/Meta Directory
capabilities as well as an XML Security Gateway to provide policy enforcement (security
and more) when exposed to the outside. 
&lt;/p&gt;
&lt;p&gt;
I will also reiterate that there needs to be more support for the XSD portion of SPML
vs. DSML. A lot of the authoritative sources of user information that I am dealing
with are simply not found in directory services but in other sources such as relational
databases, custom web services and sometimes proprietary formats in addition to LDAP/AD.
&lt;/p&gt;
&lt;p&gt;
I hope to post some the use cases for standards based provisioning as well as the
details of some of the profiling that we are doing on SPML to satisfy those use cases
in future blog posts. Looking forward to further conversations around this topic.
&lt;/p&gt;
&lt;div style="padding: 0px; margin: 0px; display: inline; float: none;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6f8b6857-55e2-4ce2-9692-88ecbf400e91" class="wlWriterSmartContent"&gt;del.icio.us
Tags: &lt;a href="http://del.icio.us/popular/SPML" rel="tag"&gt;SPML&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Federation" rel="tag"&gt;Federation&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/IdM" rel="tag"&gt;IdM&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/BurtonGroup" rel="tag"&gt;BurtonGroup&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/VirtualDirectory" rel="tag"&gt;VirtualDirectory&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Standards" rel="tag"&gt;Standards&lt;/a&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;div style="padding: 0px; margin: 0px; display: inline; float: none;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:61b7fca8-8c3b-4de6-970f-5b8dbbc14169" class="wlWriterSmartContent"&gt;Technorati
Tags: &lt;a href="http://technorati.com/tags/SPML" rel="tag"&gt;SPML&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Federation" rel="tag"&gt;Federation&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IdM" rel="tag"&gt;IdM&lt;/a&gt;,&lt;a href="http://technorati.com/tags/BurtonGroup" rel="tag"&gt;BurtonGroup&lt;/a&gt;,&lt;a href="http://technorati.com/tags/VirtualDirectory" rel="tag"&gt;VirtualDirectory&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Standards" rel="tag"&gt;Standards&lt;/a&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=a3f2992e-37e5-4580-a1fa-292bdc2ed3a7" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,a3f2992e-37e5-4580-a1fa-292bdc2ed3a7.aspx</comments>
      <category>Architecture</category>
      <category>Security</category>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=f1add0ad-6b36-466a-8ca1-80158146df72</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,f1add0ad-6b36-466a-8ca1-80158146df72.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,f1add0ad-6b36-466a-8ca1-80158146df72.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=f1add0ad-6b36-466a-8ca1-80158146df72</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I had a great time at Burton Group's Catalyst Conference this year.  Spent my
time between the Identity Management, SOA and Cloud sessions. Also had an opportunity
to attend the Cloud Security &amp; Identity SIG session as well.
</p>
        <p>
As the fast-thinking, slow talking, and always insightful <a href="http://apsblog.burtongroup.com/2009/08/is-there-a-cloud-programming-model.html" target="_blank">Chris
Haddad notes on the Burton APS Blog</a> (Chris... enjoyed the lunch and the conversation)
"<em>Existing Cloud Computing's momentum is predominantly focused on hardware optimization
(IaaS) or delivery of entire applications (SaaS)</em>". 
</p>
        <p>
But the message that I often hear from Cloud vendors is:
</p>
        <ul>
          <li>
We want to be an extension of your Enterprise</li>
          <li>
We have deep expertise in certain competencies that are not core to your business,
and as such you should let us integrate what we bring to the table into your Enterprise</li>
        </ul>
        <p>
... and variations on this theme.
</p>
        <p>
But in order to do this, an Enterprise needs to have a deep understanding of its own
core competencies, have clearly articulated it's capabilities into distinct offerings,
and gone through some sort of a rationalization process for its existing application
portfolio.. In effect, have done a very good job of Service Orient-ing themselves!
</p>
        <p>
But we are also hearing at the same time that SOA has lost its bright and shiny appeal
and that most SOA efforts, with rare exceptions, have not been successful. For the
record, success in SOA to me is not about building out a web services infrastructure,
but about getting true value and clear and measurable ROI out of the effort. 
</p>
        <p>
So to me, it would appear that without an organization getting Service Orientation
right, any serious attempt they make on the cloud computing end will end up as nothing
more than an attempt at building a castle on quicksand. 
</p>
        <p>
The other point that I noted was that while there were discussions around Identity
and Security of Cloud offerings (they still need to mature a whole lot more, but the
discussion was still there), there was little to no discussion around visibility and
manageability of cloud offerings.  A point that I brought up in questions and
in conversations on this topic was that while people's appetite for risk vary, one
of the ways to evaluate and potentially mitigate risk was to provide more real time
visibility into cloud offerings.  If a cloud vendor's offerings are to be tightly
integrated into an Enterprise, and I now have a clear dependency on them, I would
very much want to have a clear awareness of how the cloud offerings were behaving.
</p>
        <p>
From a technical perspective, what I was proposing was something very similar in concept
to the monitoring (and not management) piece of what WS-Management &amp; WSDM brought
to the table on the WS-* front. In effect, a standardized interface that all cloud
vendors agree to implement that provides health and monitoring visibility to the organizations
that utilize their services. In short, I do not want to get an after-the-fact report
on your status sent to me by e-mail or pulled up on a web site, I want the real time
visibility into your services that my NOC can monitor. There was a response from some
vendors that they have this interface internally for their own monitoring. My response
back to them is to expose it to your customers, and work within the cloud community
to standardize it such that the same interface exits as I move from vendor to vendor.
</p>
        <div style="margin: 0px; padding: 0px; display: inline;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:96c8b93c-9412-4fef-aa12-99975e8d47be" class="wlWriterSmartContent">del.icio.us
Tags: <a href="http://del.icio.us/popular/SOA" rel="tag">SOA</a>,<a href="http://del.icio.us/popular/Cloud%20Computing" rel="tag">Cloud
Computing</a>,<a href="http://del.icio.us/popular/Security" rel="tag">Security</a>,<a href="http://del.icio.us/popular/Management" rel="tag">Management</a>,<a href="http://del.icio.us/popular/#Catalyst09" rel="tag">#Catalyst09</a></div>
        <br />
        <div style="margin: 0px; padding: 0px; display: inline;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:f99638b3-f974-45ff-9b6f-f0401dbfd1d8" class="wlWriterSmartContent">Technorati
Tags: <a href="http://technorati.com/tags/SOA" rel="tag">SOA</a>,<a href="http://technorati.com/tags/Cloud%20Computing" rel="tag">Cloud
Computing</a>,<a href="http://technorati.com/tags/Security" rel="tag">Security</a>,<a href="http://technorati.com/tags/Management" rel="tag">Management</a>,<a href="http://technorati.com/tags/#Catalyst09" rel="tag">#Catalyst09</a></div>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=f1add0ad-6b36-466a-8ca1-80158146df72" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Cloud Computing Thoughts from Catalyst09</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,f1add0ad-6b36-466a-8ca1-80158146df72.aspx</guid>
      <link>http://www.aniltj.com/blog/2009/08/14/CloudComputingThoughtsFromCatalyst09.aspx</link>
      <pubDate>Fri, 14 Aug 2009 13:59:16 GMT</pubDate>
      <description>&lt;p&gt;
I had a great time at Burton Group's Catalyst Conference this year.&amp;nbsp; Spent my
time between the Identity Management, SOA and Cloud sessions. Also had an opportunity
to attend the Cloud Security &amp;amp; Identity SIG session as well.
&lt;/p&gt;
&lt;p&gt;
As the fast-thinking, slow talking, and always insightful &lt;a href="http://apsblog.burtongroup.com/2009/08/is-there-a-cloud-programming-model.html" target="_blank"&gt;Chris
Haddad notes on the Burton APS Blog&lt;/a&gt; (Chris... enjoyed the lunch and the conversation)
"&lt;em&gt;Existing Cloud Computing's momentum is predominantly focused on hardware optimization
(IaaS) or delivery of entire applications (SaaS)&lt;/em&gt;". 
&lt;/p&gt;
&lt;p&gt;
But the message that I often hear from Cloud vendors is:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
We want to be an extension of your Enterprise&lt;/li&gt;
&lt;li&gt;
We have deep expertise in certain competencies that are not core to your business,
and as such you should let us integrate what we bring to the table into your Enterprise&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
... and variations on this theme.
&lt;/p&gt;
&lt;p&gt;
But in order to do this, an Enterprise needs to have a deep understanding of its own
core competencies, have clearly articulated it's capabilities into distinct offerings,
and gone through some sort of a rationalization process for its existing application
portfolio.. In effect, have done a very good job of Service Orient-ing themselves!
&lt;/p&gt;
&lt;p&gt;
But we are also hearing at the same time that SOA has lost its bright and shiny appeal
and that most SOA efforts, with rare exceptions, have not been successful. For the
record, success in SOA to me is not about building out a web services infrastructure,
but about getting true value and clear and measurable ROI out of the effort. 
&lt;/p&gt;
&lt;p&gt;
So to me, it would appear that without an organization getting Service Orientation
right, any serious attempt they make on the cloud computing end will end up as nothing
more than an attempt at building a castle on quicksand. 
&lt;/p&gt;
&lt;p&gt;
The other point that I noted was that while there were discussions around Identity
and Security of Cloud offerings (they still need to mature a whole lot more, but the
discussion was still there), there was little to no discussion around visibility and
manageability of cloud offerings.&amp;nbsp; A point that I brought up in questions and
in conversations on this topic was that while people's appetite for risk vary, one
of the ways to evaluate and potentially mitigate risk was to provide more real time
visibility into cloud offerings.&amp;nbsp; If a cloud vendor's offerings are to be tightly
integrated into an Enterprise, and I now have a clear dependency on them, I would
very much want to have a clear awareness of how the cloud offerings were behaving.
&lt;/p&gt;
&lt;p&gt;
From a technical perspective, what I was proposing was something very similar in concept
to the monitoring (and not management) piece of what WS-Management &amp;amp; WSDM brought
to the table on the WS-* front. In effect, a standardized interface that all cloud
vendors agree to implement that provides health and monitoring visibility to the organizations
that utilize their services. In short, I do not want to get an after-the-fact report
on your status sent to me by e-mail or pulled up on a web site, I want the real time
visibility into your services that my NOC can monitor. There was a response from some
vendors that they have this interface internally for their own monitoring. My response
back to them is to expose it to your customers, and work within the cloud community
to standardize it such that the same interface exits as I move from vendor to vendor.
&lt;/p&gt;
&lt;div style="margin: 0px; padding: 0px; display: inline;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:96c8b93c-9412-4fef-aa12-99975e8d47be" class="wlWriterSmartContent"&gt;del.icio.us
Tags: &lt;a href="http://del.icio.us/popular/SOA" rel="tag"&gt;SOA&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Cloud%20Computing" rel="tag"&gt;Cloud
Computing&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Security" rel="tag"&gt;Security&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Management" rel="tag"&gt;Management&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/#Catalyst09" rel="tag"&gt;#Catalyst09&lt;/a&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;div style="margin: 0px; padding: 0px; display: inline;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:f99638b3-f974-45ff-9b6f-f0401dbfd1d8" class="wlWriterSmartContent"&gt;Technorati
Tags: &lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Cloud%20Computing" rel="tag"&gt;Cloud
Computing&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Security" rel="tag"&gt;Security&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Management" rel="tag"&gt;Management&lt;/a&gt;,&lt;a href="http://technorati.com/tags/#Catalyst09" rel="tag"&gt;#Catalyst09&lt;/a&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=f1add0ad-6b36-466a-8ca1-80158146df72" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,f1add0ad-6b36-466a-8ca1-80158146df72.aspx</comments>
      <category>Architecture</category>
      <category>Security</category>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=797afba7-f887-4a06-8ceb-a851cb179ae4</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,797afba7-f887-4a06-8ceb-a851cb179ae4.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,797afba7-f887-4a06-8ceb-a851cb179ae4.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=797afba7-f887-4a06-8ceb-a851cb179ae4</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In the physical world, when an attacker is preparing to assassinate someone or bomb
a target, the first thing that they will do is to determine how best to set up that
attack. The phrase used to describe the initial phase of the set-up is called 'pre-operational
surveillance'.  
</p>
        <p>
Unfortunately, the default configuration of most web services allow a potential attacker
to do the digital equivalent of pre-operational surveillance very easily. In the digital
world, these type of threats are often classified under the category of 'Information
Disclosure Threats'. There are two in particular (there are more) that I would like
to call attention to: 
</p>
        <ol>
          <li>
SOAP Fault Error Messages 
</li>
          <li>
WSDL Scanning/Foot-Printing/Enumeration</li>
        </ol>
        <p>
          <strong>1. SOAP Fault Error Messages</strong>
        </p>
        <p>
All too often, detailed fault messages can provide information about the web service
or the back-end resources used by that web service. In fact, one of the favorite tactic
of attackers is to try to deliberately cause an exception or fault in a web service
in the hope that sensitive information such as connection strings, stack traces and
other information may end up in the SOAP fault. Mark O'Neill has a recent blog entry
'<a href="http://xmlnetworking.blogspot.com/2008/09/soap-faults-too-much-information.html">SOAP
Faults - Too much information</a>' in which he points to a vulnerability assessment
that his company did of a bank that provided information that enabled an attacker
to understand the infrastructure the bank was running and presumably allowed them
to further tailor the attack.
</p>
        <p>
The typical mitigation for this type of information disclosure is the implementation
of the '<a href="http://msdn.microsoft.com/en-us/library/aa480591.aspx">Exception
Shielding Pattern</a>' as noted in the Patterns &amp; Practices Book <a href="http://www.amazon.com/Web-Service-Security-Implementation-Enhancements/dp/0735623147/">'Web
Service Security</a>' [<a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=3E02A6C8-128A-47C2-9F39-4082582F3FE1&amp;displaylang=en">Free
PDF Version</a>] which can be used to "<em>Return only those exceptions to the client
that have been sanitized or exceptions that are safe by design. Exceptions that are
safe by design do not contain sensitive information in the exception message, and
they do not contain a detailed stack trace, either of which might reveal sensitive
information about the Web service's inner workings.</em>" (FULL DISCLOSURE: 
I was an external, unpaid, technical reviewer of this book).
</p>
        <p>
You can either implement this pattern in software or use a hardware device like a
XML Security Gateway to implement this pattern. Mark utilized a Vordel Security GW,
but this is something that can be implemented by all devices in this category. I have
direct experience with Layer 7 as well as Cisco/Reactivity Gateways and happen to
know that they support this functionality and I don't doubt that IBM/DataPower and
others in this space support it as well.
</p>
        <p>
Note that this does not imply that the error's that happen are not caught or addressed
but simply that they are not propagated to an end-user. 
</p>
        <p>
          <strong>2. WSDL Scanning/Foot-Printing/Enumeration</strong>
        </p>
        <p>
Appendix A of '<a href="http://csrc.nist.gov/publications/nistpubs/800-95/SP800-95.pdf">NIST
800-95: Guide to Secure Web Services</a>' provides a listing of common attacks against
web services, and you will note that there are many references to the information
that can be found in a WSDL that can lend itself to a variety of attacks including
Reconnaissance Attacks, WSDL Scanning, Schema Poisoning and more. 
</p>
        <p>
And in the '<a href="https://buildsecurityin.us-cert.gov/daisy/bsi/articles/best-practices/assembly/639-BSI.html">Security
Concepts, Challenges, and Design Considerations for Web Services Integration</a>'
article at the "Build Security In" web site sponsored by the DHS National Cyber Security
Division, it notes that "<em>An attacker may footprint a system’s data types and operations
based on information stored in WSDL, since the WSDL may be published without a high
degree of security. For example, in a world-readable registry, the method’s interface
is exposed. WSDL is the interface to the web services. WSDL contains the message exchange
pattern, types, values, methods, and parameters that are available to the service
requester. An attacker may use this information to gain knowledge about the system
and to craft attacks against the service directly and the system in general.</em>"  
</p>
        <p>
The type of information found in a WSDL, and which can be obtained simply by appending
a ?WSDL to the end of a service endpoint URL, can be an extremely useful source of
info for an attacker seeking to exploit a weakness in a service, and as such should
not be provided or simply turned off. 
</p>
        <p>
There are multiple ways of mitigating this type of an attack which include turning
off the automatic ?WSDL generation at the SOAP stack application level or by the configuring
the intermediary that is protecting the service end-point. For example, most XML Security
Gateway's by default turn off the ability to query the ?WSDL on a service end-point. 
</p>
        <p>
I consider this to be a very good default.
</p>
        <p>
When this option is implemented, there are often a variety of questions that come
up that I would like a take a quick moment to address.
</p>
        <p>
Q. If you turn off the automatic WSDL generation capabilities (i.e. ?WSDL) how are
developers supposed to implement a client that invokes the web service?
</p>
        <blockquote>
          <p>
There are two ways. (1) Publish the WSDL and the associates XML Schema and Policy
files in an Enterprise Registry/Repository that has the appropriate Access Control
Mechanisms on it so that a developer can obtain a copy of the WSDL/Schema/Policy Documents
at design time. (2) Provide the WSDL/Schema/Policy files out of band (e.g. Zip File,
At a protected web site) to the developer.  
</p>
          <p>
Oh yes, there is always the run-time binding question that comes up here as well.
What I will say is that run-time binding does not mean "run time proxy generation
+ dynamic UI code generation + glue code" but simply that the client side proxy and
the associated UI and glue code are generated at design time, but that the end-point
that the client points to may be a dynamic lookup from a UDDI compliant Registry.
I've done this before and this does not require any run-time lookup of a web service's
WSDL.
</p>
          <p>
There is an additional benefit to this method as well. Have you ever gone through
the process of <a href="http://www.aniltj.com/blog/2005/05/15/GuidelinesForXMLSchemaDesignToImproveWebServicesInteroperability.aspx">defining
a WSDL and Schema using best practices for web services interoperability</a>, implemented
a service using that WSDL and Schema, and then looked at the auto-generated WSDL?
You may be surprised to find that the automatic generated WSDL may be in a majority
of cases is not as clean or easy to follow and in some cases may indeed be wrong.
The best practice for developing interoperable web services recommends <a href="http://www.aniltj.com/blog/2005/10/09/SchemaFirstContractFirstTopDownStyleOfDevelopmentTools.aspx">following
a contract-first approach</a>. This requires that the "contract" i.e. the WSDL and
the Schema to be something that is developed with a great deal of care given to interoperability.
Since the automatic generation of WSDL is platform-specific, there is always the possibility
of some platform-specific artifacts ending up in the contract documents, which is
not what you intended to happen.
</p>
        </blockquote>
        <p>
Q. What about those existing/legacy services that do a run time lookup? Won't those
break? 
</p>
        <blockquote>
          <p>
The question that needs to be asked at this point is why these services are doing
a run time lookup, is there value being added by this capability in this client, and
are there alternatives that will enable the client to provide the same functionality
without compromising security?  
</p>
          <p>
As an example take the case of a BEA Weblogic client.  If you will look at the <a href="http://edocs.bea.com/wls/docs70/webserv/client.html#1024463">documentation
that BEA provides on building a Dynamic client</a> you will note that they provide
two different approaches, one that uses a dynamic WSDL lookup and another that does
not. The interesting thing about this is that the approach that uses the WSDL makes
a run-time lookup of a Web Service's WSDL which will end up breaking if the ?WSDL
functionality is turned off. But the alternative approach of building a dynamic client
provides the same functionality without the run-time WSDL lookup. 
</p>
          <p>
From what I can see, from a functional perspective there is no difference between
the two approaches and given that one of the things that you want to do when developing
web services, or any software for that matter, is to minimize the number of external
dependencies, I would choose the second option of NOT doing a run-time WSDL lookup
in this particular case. What is regrettable in this case is that it appears that
the default configuration in BEA's tooling is to use the run-time WSDL option (Or
so I have been informed), which leads to issues when folks who choose the default
options with their tools develop the clients.  
</p>
        </blockquote>
        <p>
Mitigating these information disclosure threats requires both developers and operational
support folks to understand their shared responsibility for security. Developer's
need to understand that security should be part of the software development lifecycle
and is not something that is bolted on at the end or is 'thrown over the wall' for
someone else to take care of. Operational folks need to understand that a layered
defense in depth strategy is needed and that secure coding practices of developers
are an essential component of any operational environment. In particular the mentality
of "Firewalls and SSL will save us all" needs to change for all parties concerned.<br /></p>
        <div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:36ddef89-6bea-490a-97e3-80069e355e50" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">del.icio.us
Tags: <a href="http://del.icio.us/popular/information-disclosure" rel="tag">information-disclosure</a>,<a href="http://del.icio.us/popular/web-services" rel="tag">web-services</a>,<a href="http://del.icio.us/popular/WSDL-Scanning" rel="tag">WSDL-Scanning</a></div>
        <br />
        <div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c4e7d2c6-23ec-42a0-afba-33637ccbd129" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati
Tags: <a href="http://technorati.com/tags/information-disclosure" rel="tag">information-disclosure</a>,<a href="http://technorati.com/tags/web-services" rel="tag">web-services</a>,<a href="http://technorati.com/tags/WSDL-Scanning" rel="tag">WSDL-Scanning</a></div>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=797afba7-f887-4a06-8ceb-a851cb179ae4" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Information Disclosure Threats and Web Services</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,797afba7-f887-4a06-8ceb-a851cb179ae4.aspx</guid>
      <link>http://www.aniltj.com/blog/2008/09/21/InformationDisclosureThreatsAndWebServices.aspx</link>
      <pubDate>Sun, 21 Sep 2008 19:09:18 GMT</pubDate>
      <description>&lt;p&gt;
In the physical world, when an attacker is preparing to assassinate someone or bomb
a target, the first thing that they will do is to determine how best to set up that
attack. The phrase used to describe the initial phase of the set-up is called 'pre-operational
surveillance'.&amp;nbsp; 
&lt;p&gt;
Unfortunately, the default configuration of most web services allow a potential attacker
to do the digital equivalent of pre-operational surveillance very easily. In the digital
world, these type of threats are often classified under the category of 'Information
Disclosure Threats'. There are two in particular (there are more) that I would like
to call attention to: 
&lt;ol&gt;
&lt;li&gt;
SOAP Fault Error Messages 
&lt;li&gt;
WSDL Scanning/Foot-Printing/Enumeration&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;strong&gt;1. SOAP Fault Error Messages&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
All too often, detailed fault messages can provide information about the web service
or the back-end resources used by that web service. In fact, one of the favorite tactic
of attackers is to try to deliberately cause an exception or fault in a web service
in the hope that sensitive information such as connection strings, stack traces and
other information may end up in the SOAP fault. Mark O'Neill has a recent blog entry
'&lt;a href="http://xmlnetworking.blogspot.com/2008/09/soap-faults-too-much-information.html"&gt;SOAP
Faults - Too much information&lt;/a&gt;' in which he points to a vulnerability assessment
that his company did of a bank that provided information that enabled an attacker
to understand the infrastructure the bank was running and presumably allowed them
to further tailor the attack.
&lt;/p&gt;
&lt;p&gt;
The typical mitigation for this type of information disclosure is the implementation
of the '&lt;a href="http://msdn.microsoft.com/en-us/library/aa480591.aspx"&gt;Exception
Shielding Pattern&lt;/a&gt;' as noted in the Patterns &amp;amp; Practices Book &lt;a href="http://www.amazon.com/Web-Service-Security-Implementation-Enhancements/dp/0735623147/"&gt;'Web
Service Security&lt;/a&gt;' [&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=3E02A6C8-128A-47C2-9F39-4082582F3FE1&amp;amp;displaylang=en"&gt;Free
PDF Version&lt;/a&gt;] which can be used to "&lt;em&gt;Return only those exceptions to the client
that have been sanitized or exceptions that are safe by design. Exceptions that are
safe by design do not contain sensitive information in the exception message, and
they do not contain a detailed stack trace, either of which might reveal sensitive
information about the Web service's inner workings.&lt;/em&gt;" (FULL DISCLOSURE:&amp;nbsp;
I was an external, unpaid, technical reviewer of this book).
&lt;/p&gt;
&lt;p&gt;
You can either implement this pattern in software or use a hardware device like a
XML Security Gateway to implement this pattern. Mark utilized a Vordel Security GW,
but this is something that can be implemented by all devices in this category. I have
direct experience with Layer 7 as well as Cisco/Reactivity Gateways and happen to
know that they support this functionality and I don't doubt that IBM/DataPower and
others in this space support it as well.
&lt;/p&gt;
&lt;p&gt;
Note that this does not imply that the error's that happen are not caught or addressed
but simply that they are not propagated to an end-user. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;2. WSDL Scanning/Foot-Printing/Enumeration&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Appendix A of '&lt;a href="http://csrc.nist.gov/publications/nistpubs/800-95/SP800-95.pdf"&gt;NIST
800-95: Guide to Secure Web Services&lt;/a&gt;' provides a listing of common attacks against
web services, and you will note that there are many references to the information
that can be found in a WSDL that can lend itself to a variety of attacks including
Reconnaissance Attacks, WSDL Scanning, Schema Poisoning and more. 
&lt;/p&gt;
&lt;p&gt;
And in the '&lt;a href="https://buildsecurityin.us-cert.gov/daisy/bsi/articles/best-practices/assembly/639-BSI.html"&gt;Security
Concepts, Challenges, and Design Considerations for Web Services Integration&lt;/a&gt;'
article at the "Build Security In" web site sponsored by the DHS National Cyber Security
Division, it notes that "&lt;em&gt;An attacker may footprint a system’s data types and operations
based on information stored in WSDL, since the WSDL may be published without a high
degree of security. For example, in a world-readable registry, the method’s interface
is exposed. WSDL is the interface to the web services. WSDL contains the message exchange
pattern, types, values, methods, and parameters that are available to the service
requester. An attacker may use this information to gain knowledge about the system
and to craft attacks against the service directly and the system in general.&lt;/em&gt;"&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
The type of information found in a WSDL, and which can be obtained simply by appending
a ?WSDL to the end of a service endpoint URL, can be an extremely useful source of
info for an attacker seeking to exploit a weakness in a service, and as such should
not be provided or simply turned off. 
&lt;/p&gt;
&lt;p&gt;
There are multiple ways of mitigating this type of an attack which include turning
off the automatic ?WSDL generation at the SOAP stack application level or by the configuring
the intermediary that is protecting the service end-point. For example, most XML Security
Gateway's by default turn off the ability to query the ?WSDL on a service end-point. 
&lt;/p&gt;
&lt;p&gt;
I consider this to be a very good default.
&lt;/p&gt;
&lt;p&gt;
When this option is implemented, there are often a variety of questions that come
up that I would like a take a quick moment to address.
&lt;/p&gt;
&lt;p&gt;
Q. If you turn off the automatic WSDL generation capabilities (i.e. ?WSDL) how are
developers supposed to implement a client that invokes the web service?
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
There are two ways. (1) Publish the WSDL and the associates XML Schema and Policy
files in an Enterprise Registry/Repository that has the appropriate Access Control
Mechanisms on it so that a developer can obtain a copy of the WSDL/Schema/Policy Documents
at design time. (2) Provide the WSDL/Schema/Policy files out of band (e.g. Zip File,
At a protected web site) to the developer.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Oh yes, there is always the run-time binding question that comes up here as well.
What I will say is that run-time binding does not mean "run time proxy generation
+ dynamic UI code generation + glue code" but simply that the client side proxy and
the associated UI and glue code are generated at design time, but that the end-point
that the client points to may be a dynamic lookup from a UDDI compliant Registry.
I've done this before and this does not require any run-time lookup of a web service's
WSDL.
&lt;/p&gt;
&lt;p&gt;
There is an additional benefit to this method as well. Have you ever gone through
the process of &lt;a href="http://www.aniltj.com/blog/2005/05/15/GuidelinesForXMLSchemaDesignToImproveWebServicesInteroperability.aspx"&gt;defining
a WSDL and Schema using best practices for web services interoperability&lt;/a&gt;, implemented
a service using that WSDL and Schema, and then looked at the auto-generated WSDL?
You may be surprised to find that the automatic generated WSDL may be in a majority
of cases is not as clean or easy to follow and in some cases may indeed be wrong.
The best practice for developing interoperable web services recommends &lt;a href="http://www.aniltj.com/blog/2005/10/09/SchemaFirstContractFirstTopDownStyleOfDevelopmentTools.aspx"&gt;following
a contract-first approach&lt;/a&gt;. This requires that the "contract" i.e. the WSDL and
the Schema to be something that is developed with a great deal of care given to interoperability.
Since the automatic generation of WSDL is platform-specific, there is always the possibility
of some platform-specific artifacts ending up in the contract documents, which is
not what you intended to happen.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Q. What about those existing/legacy services that do a run time lookup? Won't those
break? &lt;blockquote&gt; 
&lt;p&gt;
The question that needs to be asked at this point is why these services are doing
a run time lookup, is there value being added by this capability in this client, and
are there alternatives that will enable the client to provide the same functionality
without compromising security?&amp;nbsp; 
&lt;p&gt;
As an example take the case of a BEA Weblogic client.&amp;nbsp; If you will look at the &lt;a href="http://edocs.bea.com/wls/docs70/webserv/client.html#1024463"&gt;documentation
that BEA provides on building a Dynamic client&lt;/a&gt; you will note that they provide
two different approaches, one that uses a dynamic WSDL lookup and another that does
not. The interesting thing about this is that the approach that uses the WSDL makes
a run-time lookup of a Web Service's WSDL which will end up breaking if the ?WSDL
functionality is turned off. But the alternative approach of building a dynamic client
provides the same functionality without the run-time WSDL lookup. 
&lt;p&gt;
From what I can see, from a functional perspective there is no difference between
the two approaches and given that one of the things that you want to do when developing
web services, or any software for that matter, is to minimize the number of external
dependencies, I would choose the second option of NOT doing a run-time WSDL lookup
in this particular case. What is regrettable in this case is that it appears that
the default configuration in BEA's tooling is to use the run-time WSDL option (Or
so I have been informed), which leads to issues when folks who choose the default
options with their tools develop the clients.&amp;nbsp; 
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Mitigating these information disclosure threats requires both developers and operational
support folks to understand their shared responsibility for security. Developer's
need to understand that security should be part of the software development lifecycle
and is not something that is bolted on at the end or is 'thrown over the wall' for
someone else to take care of. Operational folks need to understand that a layered
defense in depth strategy is needed and that secure coding practices of developers
are an essential component of any operational environment. In particular the mentality
of "Firewalls and SSL will save us all" needs to change for all parties concerned.&lt;br&gt;
&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:36ddef89-6bea-490a-97e3-80069e355e50" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;del.icio.us
Tags: &lt;a href="http://del.icio.us/popular/information-disclosure" rel="tag"&gt;information-disclosure&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/web-services" rel="tag"&gt;web-services&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/WSDL-Scanning" rel="tag"&gt;WSDL-Scanning&lt;/a&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c4e7d2c6-23ec-42a0-afba-33637ccbd129" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati
Tags: &lt;a href="http://technorati.com/tags/information-disclosure" rel="tag"&gt;information-disclosure&lt;/a&gt;,&lt;a href="http://technorati.com/tags/web-services" rel="tag"&gt;web-services&lt;/a&gt;,&lt;a href="http://technorati.com/tags/WSDL-Scanning" rel="tag"&gt;WSDL-Scanning&lt;/a&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=797afba7-f887-4a06-8ceb-a851cb179ae4" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,797afba7-f887-4a06-8ceb-a851cb179ae4.aspx</comments>
      <category>Security</category>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=648a6e19-82b7-488b-a5fd-e552d60da16d</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,648a6e19-82b7-488b-a5fd-e552d60da16d.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,648a6e19-82b7-488b-a5fd-e552d60da16d.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=648a6e19-82b7-488b-a5fd-e552d60da16d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Notes from an on-going online discussion to self, for use as a reference and for discussion:
</p>
        <p>
          <em>"SOA is an architectural style, and an architectural style is a set of principles.
Gartner has enumerated five principles that constrain SOA: </em>
        </p>
        <ul>
          <li>
            <em>modular</em>
          </li>
          <li>
            <em>distributable</em>
          </li>
          <li>
            <em>described</em>
          </li>
          <li>
            <em>sharable</em>
          </li>
          <li>
            <em>loosely coupled</em>
          </li>
        </ul>
        <p>
          <em>To the degree a system exhibits all five, the more it qualifies as representing
the SOA style"</em>
        </p>
        <p>
- Nick Gall, Gartner
</p>
        <p>
          <em>"SOA Principles of Service Design: </em>
        </p>
        <ul>
          <li>
            <em>Service Contracts</em>
          </li>
          <li>
            <em>Service Coupling</em>
          </li>
          <li>
            <em>Service Abstraction</em>
          </li>
          <li>
            <em>Service Reusability</em>
          </li>
          <li>
            <em>Service Autonomy</em>
          </li>
          <li>
            <em>Service Statelessness</em>
          </li>
          <li>
            <em>Service Discoverability</em>
          </li>
          <li>
            <em>Service Composability" </em>
          </li>
        </ul>
        <p>
- Thomas Erl, <a href="http://www.soaprinciples.com/">SOA Principles of Service Design</a></p>
        <p>
          <em>"From my perspective, the overarching principle governing SOA is separation of
concerns. This principle helps you determine how to factor functionality into services.
Thomas Erl discusses service factoring and granularity in the SOA Fundamentals section
of his book rather than treating SoC as a principle"</em>
        </p>
        <p>
- Anne Thomas Manes, Burton Group
</p>
        <p>
          <em>"The 4 tenets of Indigo as defined by Don Box, which has now been morphed into
the Microsoft tenets of SOA:</em>
        </p>
        <ul>
          <li>
            <em>Boundaries are explicit</em>
          </li>
          <li>
            <em>Services are autonomous</em>
          </li>
          <li>
            <em>Services share schema and contract, not class</em>
          </li>
          <li>
            <em>Service compatibility is determined based on policy"</em>
          </li>
        </ul>
        <p>
- Don Box, <a href="http://msdn.microsoft.com/en-us/magazine/cc164026.aspx">A Guide
to Developing and Running Connected Systems with Indigo</a></p>
        <p>
          <em>"The 10 Principles of SOA, as expanded on the above 4 tenets, by Stefan Tilkov:</em>
        </p>
        <ul>
          <li>
            <em>Explicit boundaries</em>
          </li>
          <li>
            <em>Shared contract and schema, not class</em>
          </li>
          <li>
            <em>Policy-driven</em>
          </li>
          <li>
            <em>Autonomous</em>
          </li>
          <li>
            <em>Wire formats, not programming language APIs</em>
          </li>
          <li>
            <em>Document-oriented</em>
          </li>
          <li>
            <em>Loosely coupled</em>
          </li>
          <li>
            <em>Standards-compliant</em>
          </li>
          <li>
            <em>Vendor-independent</em>
          </li>
          <li>
            <em>Metadata-driven"</em>
          </li>
        </ul>
        <p>
- <a href="http://www.innoq.com/blog/st/2006/12/13/10_principles_of_soa.html">Stefan
Tilkov</a>, innoQ
</p>
        <p>
I've been using a combination of Anne's separation of concerns, Thomas Erl's principles
and selected bits from the OASIS SOA-RM in the SOA class that I teach but the variations
above look to be great fodder for some discussions!
</p>
        <div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:4c31fc72-59b7-4188-af02-0436da696b54" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">del.icio.us
Tags: <a href="http://del.icio.us/popular/SOA" rel="tag">SOA</a>,<a href="http://del.icio.us/popular/Teaching" rel="tag">Teaching</a></div>
        <br />
        <div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:55308049-7a7d-4b0d-a73f-9413fe9b04d6" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati
Tags: <a href="http://technorati.com/tags/SOA" rel="tag">SOA</a>,<a href="http://technorati.com/tags/Teaching" rel="tag">Teaching</a></div>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=648a6e19-82b7-488b-a5fd-e552d60da16d" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>The Many Principles of SOA</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,648a6e19-82b7-488b-a5fd-e552d60da16d.aspx</guid>
      <link>http://www.aniltj.com/blog/2008/09/07/TheManyPrinciplesOfSOA.aspx</link>
      <pubDate>Sun, 07 Sep 2008 16:14:13 GMT</pubDate>
      <description>&lt;p&gt;
Notes from an on-going online discussion to self, for use as a reference and for discussion:
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;"SOA is an architectural style, and an architectural style is a set of principles.
Gartner has enumerated five principles that constrain SOA: &lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;modular&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;distributable&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;described&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;sharable&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;loosely coupled&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;em&gt;To the degree a system exhibits all five, the more it qualifies as representing
the SOA style"&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
- Nick Gall, Gartner
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;"SOA Principles of Service Design: &lt;/em&gt; 
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Service Contracts&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Service Coupling&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Service Abstraction&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Service Reusability&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Service Autonomy&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Service Statelessness&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Service Discoverability&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Service Composability" &lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
- Thomas Erl, &lt;a href="http://www.soaprinciples.com/"&gt;SOA Principles of Service Design&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;"From my perspective, the overarching principle governing SOA is separation of
concerns. This principle helps you determine how to factor functionality into services.
Thomas Erl discusses service factoring and granularity in the SOA Fundamentals section
of his book rather than treating SoC as a principle"&lt;/em&gt; 
&lt;/p&gt;
&lt;p&gt;
- Anne Thomas Manes, Burton Group
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;"The 4 tenets of Indigo as defined by Don Box, which has now been morphed into
the Microsoft tenets of SOA:&lt;/em&gt; 
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Boundaries are explicit&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Services are autonomous&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Services share schema and contract, not class&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Service compatibility is determined based on policy"&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
- Don Box, &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc164026.aspx"&gt;A Guide
to Developing and Running Connected Systems with Indigo&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;"The 10 Principles of SOA, as expanded on the above 4 tenets, by Stefan Tilkov:&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Explicit boundaries&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Shared contract and schema, not class&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Policy-driven&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Autonomous&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Wire formats, not programming language APIs&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Document-oriented&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Loosely coupled&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Standards-compliant&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Vendor-independent&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Metadata-driven"&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
- &lt;a href="http://www.innoq.com/blog/st/2006/12/13/10_principles_of_soa.html"&gt;Stefan
Tilkov&lt;/a&gt;, innoQ
&lt;/p&gt;
&lt;p&gt;
I've been using a combination of Anne's separation of concerns, Thomas Erl's principles
and selected bits from the OASIS SOA-RM in the SOA class that I teach but the variations
above look to be great fodder for some discussions!
&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:4c31fc72-59b7-4188-af02-0436da696b54" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;del.icio.us
Tags: &lt;a href="http://del.icio.us/popular/SOA" rel="tag"&gt;SOA&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Teaching" rel="tag"&gt;Teaching&lt;/a&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:55308049-7a7d-4b0d-a73f-9413fe9b04d6" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati
Tags: &lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Teaching" rel="tag"&gt;Teaching&lt;/a&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=648a6e19-82b7-488b-a5fd-e552d60da16d" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,648a6e19-82b7-488b-a5fd-e552d60da16d.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=cc704578-84f5-4c36-bad1-67417e8ea58b</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,cc704578-84f5-4c36-bad1-67417e8ea58b.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,cc704578-84f5-4c36-bad1-67417e8ea58b.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=cc704578-84f5-4c36-bad1-67417e8ea58b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="border-width: 0px; margin: 0px 0px 0px 10px;" alt="Abstraction" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/AbstractionRemoteControlsandServiceOrien_C775/Abstraction_3.png" align="right" border="0" height="248" width="329" />As <a href="http://epp.jhu.edu/course-homepages/viewpage.php?homepage_id=2980">part
of my SOA class</a>, we are currently going over some of the principles of service
design. In particular, we were going over the principle of abstraction.  The
example of technology abstraction that I used in class was a remote control.
</p>
        <p>
The funny thing for me has been just recently my 10+ year old Pioneer AV receiver
that is part of my home entertainment system finally started having problems after
years of excellent service.  I had to replace it with a new Onkyo AV receiver
that really has more options in it that I know what to do with. So I spent some time
two nights ago, after the kids and wife had gone to bed, to swap out this component. 
But the greatest thing for me was that when they went to watch TV and to listen to
the radio the next day, they did not have to do anything differently! 
</p>
        <p>
Everything just worked using the same interface that they have always been used to,
down to using the same key presses, because I had invested some time in consolidating
my "service interface" to <a href="http://www.aniltj.com/blog/2007/12/08/UpgradingToHDTV.aspx">one
programmable and extendable universal remote</a>. So, the only additional thing I
had done was to update the firmware in the remote control to now point to the new
receiver on the back-end.
</p>
        <p>
I would definitely consider this a practical example of the implementation of the
principle of abstraction.
</p>
        <div style="margin: 0px; padding: 0px; display: inline;">del.icio.us tags: <a href="http://del.icio.us/popular/SOA" rel="tag">SOA</a>, <a href="http://del.icio.us/popular/Teaching" rel="tag">Teaching</a></div>
        <br />
        <div style="margin: 0px; padding: 0px; display: inline;">Technorati tags: <a href="http://technorati.com/tags/SOA" rel="tag">SOA</a>, <a href="http://technorati.com/tags/Teaching" rel="tag">Teaching</a></div>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=cc704578-84f5-4c36-bad1-67417e8ea58b" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Abstraction, Remote Controls and Service Orientation</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,cc704578-84f5-4c36-bad1-67417e8ea58b.aspx</guid>
      <link>http://www.aniltj.com/blog/2008/03/09/AbstractionRemoteControlsAndServiceOrientation.aspx</link>
      <pubDate>Sun, 09 Mar 2008 18:10:33 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img style="border-width: 0px; margin: 0px 0px 0px 10px;" alt="Abstraction" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/AbstractionRemoteControlsandServiceOrien_C775/Abstraction_3.png" align="right" border="0" height="248" width="329"&gt;As &lt;a href="http://epp.jhu.edu/course-homepages/viewpage.php?homepage_id=2980"&gt;part
of my SOA class&lt;/a&gt;, we are currently going over some of the principles of service
design. In particular, we were going over the principle of abstraction.&amp;nbsp; The
example of technology abstraction that I used in class was a remote control.
&lt;/p&gt;
&lt;p&gt;
The funny thing for me has been just recently my 10+ year old Pioneer AV receiver
that is part of my home entertainment system finally started having problems after
years of excellent service.&amp;nbsp; I had to replace it with a new Onkyo AV receiver
that really has more options in it that I know what to do with. So I spent some time
two nights ago, after the kids and wife had gone to bed, to swap out this component.&amp;nbsp;
But the greatest thing for me was that when they went to watch TV and to listen to
the radio the next day, they did not have to do anything differently! 
&lt;/p&gt;
&lt;p&gt;
Everything just worked using the same interface that they have always been used to,
down to using the same key presses, because I had invested some time in consolidating
my "service interface" to &lt;a href="http://www.aniltj.com/blog/2007/12/08/UpgradingToHDTV.aspx"&gt;one
programmable and extendable universal remote&lt;/a&gt;. So, the only additional thing I
had done was to update the firmware in the remote control to now point to the new
receiver on the back-end.
&lt;/p&gt;
&lt;p&gt;
I would definitely consider this a practical example of the implementation of the
principle of abstraction.
&lt;/p&gt;
&lt;div style="margin: 0px; padding: 0px; display: inline;"&gt;del.icio.us tags: &lt;a href="http://del.icio.us/popular/SOA" rel="tag"&gt;SOA&lt;/a&gt;, &lt;a href="http://del.icio.us/popular/Teaching" rel="tag"&gt;Teaching&lt;/a&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;div style="margin: 0px; padding: 0px; display: inline;"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Teaching" rel="tag"&gt;Teaching&lt;/a&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=cc704578-84f5-4c36-bad1-67417e8ea58b" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,cc704578-84f5-4c36-bad1-67417e8ea58b.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=3789ab8b-c4ab-4142-b04a-de30c3fbb4eb</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,3789ab8b-c4ab-4142-b04a-de30c3fbb4eb.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,3789ab8b-c4ab-4142-b04a-de30c3fbb4eb.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=3789ab8b-c4ab-4142-b04a-de30c3fbb4eb</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="border-width: 0px;" alt="The Bus" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/ESBinaSOAInfrastructure_140F6/1_5.png" align="right" border="0" height="215" width="366" />Many
people believe that an Enterprise Service Bus (ESB) is a must have component of a
SOA infrastructure.  The  usual argument put forth is that if you want security,
manageability and reliability in your environment, you must have something that looks
like a "bus" in your environment.
</p>
        <p>
I have a slightly different perspective on this.  From my experience, there are <a href="http://www.aniltj.com/blog/2007/03/23/DesignPatternsAndSOARuntimeInfrastructure.aspx">other
components that do an outstanding job</a> when it comes to security functionality.
In addition, an ESB really can't manage services that are not "plugged-in" to it (you
need something like a WSM product). And finally, with the approval of and support
for <a href="http://docs.oasis-open.org/ws-rx/wsrm/200702">WS-ReliableMessaging as
an OASIS standard</a>, you no longer need some proprietary messaging technology to
provide reliable messaging. You can leverage the support for the standard built into
the basic service platform itself. So my experience has been that you do not need
a "bus" in the middle through which all traffic should flow and all things in your
enterprise should be connected to.
</p>
        <p>
          <img style="border: 0px none ; margin: 0px 10px 0px 0px;" alt="Service Platform" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/ESBinaSOAInfrastructure_140F6/2_5.png" align="left" border="0" height="181" width="366" /> But
at the same time, where I have seen the value of an ESB is from the perspective of
its ability to easily tap into a variety of back-end systems and expose them using
a contracted web service interface. So in my world, the ESB provides me ease of use
when it comes to tapping into custom or Enterprise class systems (ERP, RDBMS, Mainframe)
and "service-enabling" them. So an ESB is simply a type of Service Platform which
can be used to build services and not a bus to which everything is connected. 
The service created in this manner can be treated like any other service that you
build or buy, and can be secured and managed just like you would any other service.  
</p>
        <p>
In this model, I really did not see much value in having an ESB, given that we have
a pretty comprehensive existing and heterogeneous SOA infrastructure that is designed
to work together in a standards compliant manner and provides pretty much all of the
functionality that an ESB is touted to fulfill. The only exception would be if there
existed some back-end system that I could not natively tap into from a standard service
platform and needed the facilities of an ESB to ease the connection into that proprietary
or legacy system.
</p>
        <p>
But I had the opportunity yesterday to listen to Anne Thomas Manes of the Burton Group
at the "Pragmatic SOA  Governance" workshop that was put together by Michael
Meehan and his crew from TechTarget.com. Great event, BTW!
</p>
        <p>
          <img style="border-width: 0px; margin: 0px 0px 0px 10px;" alt="Platform plus Protocols" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/ESBinaSOAInfrastructure_140F6/3_5.png" align="right" border="0" height="181" width="366" /> What
Anne's comments opened my eyes to was to take what I had above to the next step. From
her perspective, an ESB is the new generation of Application Servers, and what it
brings to the table is the ability for an organization to be resilient to application
protocol changes.  So an ESB provides the ability to leverage the same core business
logic that is used to build a capability, and expose it over multiple service protocols/interfaces.
And if a new protocol needs to be supported, it is simply a matter of the ESB supporting
it. Keep in mind the end product is still a contracted service interface. But in this
case, that interface is not limited to SOAP but can be many others that may be much
more peformant or optimized for that particular domain. 
</p>
        <p>
Conceptually, I can buy into this. Will have to see how well it does in real life.
</p>
        <div style="margin: 0px; padding: 0px; display: inline;">del.icio.us tags: <a href="http://del.icio.us/popular/SOA" rel="tag">SOA</a>, <a href="http://del.icio.us/popular/ESB" rel="tag">ESB</a></div>
        <br />
        <div style="margin: 0px; padding: 0px; display: inline;">Technorati tags: <a href="http://technorati.com/tags/SOA" rel="tag">SOA</a>, <a href="http://technorati.com/tags/ESB" rel="tag">ESB</a></div>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=3789ab8b-c4ab-4142-b04a-de30c3fbb4eb" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>ESB in a SOA Infrastructure</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,3789ab8b-c4ab-4142-b04a-de30c3fbb4eb.aspx</guid>
      <link>http://www.aniltj.com/blog/2008/02/28/ESBInASOAInfrastructure.aspx</link>
      <pubDate>Thu, 28 Feb 2008 03:48:53 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img style="border-width: 0px;" alt="The Bus" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/ESBinaSOAInfrastructure_140F6/1_5.png" align="right" border="0" height="215" width="366"&gt;Many
people believe that an Enterprise Service Bus (ESB) is a must have component of a
SOA infrastructure.&amp;nbsp; The&amp;nbsp; usual argument put forth is that if you want security,
manageability and reliability in your environment, you must have something that looks
like a "bus" in your environment.
&lt;/p&gt;
&lt;p&gt;
I have a slightly different perspective on this.&amp;nbsp; From my experience, there are &lt;a href="http://www.aniltj.com/blog/2007/03/23/DesignPatternsAndSOARuntimeInfrastructure.aspx"&gt;other
components that do an outstanding job&lt;/a&gt; when it comes to security functionality.
In addition, an ESB really can't manage services that are not "plugged-in" to it (you
need something like a WSM product). And finally, with the approval of and support
for &lt;a href="http://docs.oasis-open.org/ws-rx/wsrm/200702"&gt;WS-ReliableMessaging as
an OASIS standard&lt;/a&gt;, you no longer need some proprietary messaging technology to
provide reliable messaging. You can leverage the support for the standard built into
the basic service platform itself. So my experience has been that you do not need
a "bus" in the middle through which all traffic should flow and all things in your
enterprise should be connected to.
&lt;/p&gt;
&lt;p&gt;
&lt;img style="border: 0px none ; margin: 0px 10px 0px 0px;" alt="Service Platform" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/ESBinaSOAInfrastructure_140F6/2_5.png" align="left" border="0" height="181" width="366"&gt; But
at the same time, where I have seen the value of an ESB is from the perspective of
its ability to easily tap into a variety of back-end systems and expose them using
a contracted web service interface. So in my world, the ESB provides me ease of use
when it comes to tapping into custom or Enterprise class systems (ERP, RDBMS, Mainframe)
and "service-enabling" them. So an ESB is simply a type of Service Platform which
can be used to build services and not a bus to which everything is connected.&amp;nbsp;
The service created in this manner can be treated like any other service that you
build or buy, and can be secured and managed just like you would any other service.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
In this model, I really did not see much value in having an ESB, given that we have
a pretty comprehensive existing and heterogeneous SOA infrastructure that is designed
to work together in a standards compliant manner and provides pretty much all of the
functionality that an ESB is touted to fulfill. The only exception would be if there
existed some back-end system that I could not natively tap into from a standard service
platform and needed the facilities of an ESB to ease the connection into that proprietary
or legacy system.
&lt;/p&gt;
&lt;p&gt;
But I had the opportunity yesterday to listen to Anne Thomas Manes of the Burton Group
at the "Pragmatic SOA&amp;nbsp; Governance" workshop that was put together by Michael
Meehan and his crew from TechTarget.com. Great event, BTW!
&lt;/p&gt;
&lt;p&gt;
&lt;img style="border-width: 0px; margin: 0px 0px 0px 10px;" alt="Platform plus Protocols" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/ESBinaSOAInfrastructure_140F6/3_5.png" align="right" border="0" height="181" width="366"&gt; What
Anne's comments opened my eyes to was to take what I had above to the next step. From
her perspective, an ESB is the new generation of Application Servers, and what it
brings to the table is the ability for an organization to be resilient to application
protocol changes.&amp;nbsp; So an ESB provides the ability to leverage the same core business
logic that is used to build a capability, and expose it over multiple service protocols/interfaces.
And if a new protocol needs to be supported, it is simply a matter of the ESB supporting
it. Keep in mind the end product is still a contracted service interface. But in this
case, that interface is not limited to SOAP but can be many others that may be much
more peformant or optimized for that particular domain. 
&lt;/p&gt;
&lt;p&gt;
Conceptually, I can buy into this. Will have to see how well it does in real life.
&lt;/p&gt;
&lt;div style="margin: 0px; padding: 0px; display: inline;"&gt;del.icio.us tags: &lt;a href="http://del.icio.us/popular/SOA" rel="tag"&gt;SOA&lt;/a&gt;, &lt;a href="http://del.icio.us/popular/ESB" rel="tag"&gt;ESB&lt;/a&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;div style="margin: 0px; padding: 0px; display: inline;"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/ESB" rel="tag"&gt;ESB&lt;/a&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=3789ab8b-c4ab-4142-b04a-de30c3fbb4eb" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,3789ab8b-c4ab-4142-b04a-de30c3fbb4eb.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=24f03e68-7ba5-424f-8e8f-2622d378f755</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,24f03e68-7ba5-424f-8e8f-2622d378f755.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,24f03e68-7ba5-424f-8e8f-2622d378f755.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=24f03e68-7ba5-424f-8e8f-2622d378f755</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I recently signed and sent off my official appointment letter which stated:
</p>
        <blockquote>
          <p>
            <em>I am pleased to offer you an appointment as Lecturer in the <a href="http://www.epp.jhu.edu/">[Johns
Hopkins University] Whiting School's Engineering and Applied Science Program for Professionals</a>.
It is my understanding that you have agreed to teach the following course(s) for the
Spring 2008 semester:</em>
          </p>
          <p>
            <em>605.702.31 - Service-Oriented Architecture</em>
          </p>
        </blockquote>
        <p>
I am looking forward to this new and interesting chapter in my life!
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=24f03e68-7ba5-424f-8e8f-2622d378f755" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>It is official...</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,24f03e68-7ba5-424f-8e8f-2622d378f755.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/11/29/ItIsOfficial.aspx</link>
      <pubDate>Thu, 29 Nov 2007 01:15:25 GMT</pubDate>
      <description>&lt;p&gt;
I recently signed and sent off my official appointment letter which stated:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;I am pleased to offer you an appointment as Lecturer in the &lt;a href="http://www.epp.jhu.edu/"&gt;[Johns
Hopkins University] Whiting School's Engineering and Applied Science Program for Professionals&lt;/a&gt;.
It is my understanding that you have agreed to teach the following course(s) for the
Spring 2008 semester:&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;605.702.31 - Service-Oriented Architecture&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
I am looking forward to this new and interesting chapter in my life!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=24f03e68-7ba5-424f-8e8f-2622d378f755" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,24f03e68-7ba5-424f-8e8f-2622d378f755.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=cb534f1b-2c00-48d5-96eb-c45158a3a63b</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,cb534f1b-2c00-48d5-96eb-c45158a3a63b.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,cb534f1b-2c00-48d5-96eb-c45158a3a63b.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=cb534f1b-2c00-48d5-96eb-c45158a3a63b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <blockquote>
          <p>
            <em>Recently, a lot of interest has been shown in SOA (Service Oriented Architectures).
In these systems, there are multiple services each with its own code and data, and
ability to operate independently of its partners. In particular, atomic transactions
with two-phase commit do not occur across multiple services because this necessitates
holding locks while another service decides the outcome of the transaction. This talk
proposes there are a number of seminal differences between data inside a service and
data sent into the space outside of the service boundary. The act of unlocking data
as a copy of it is sent in the message means the interpretation of the received message
must include the understanding that this data in unlocked. This changes how the data
can be used. 
<br /><br />
We then consider objects, SQL, and XML as different representations of data. Each
of these models has strengths and weaknesses when applied to the inside and outside
of the service boundary. The talk concludes that the strength of each of these models
in one area is derived from essential characteristics underlying its weakness in the
other area.</em>
          </p>
          <p>
Source: <a href="http://blogs.msdn.com/pathelland/archive/2007/11/25/presentation-of-data-on-the-inside-versus-data-on-the-outside-at-teched-emea-at-barcelona.aspx">Presentation
by Pat Helland of "Data on the Inside versus Data on the Outside" at TechEd EMEA at
Barcelona</a></p>
        </blockquote>
        <p>
Pat Helland's "<a href="http://msdn2.microsoft.com/en-us/library/ms954587.aspx">Data
on the Outside vs. Data on the Inside</a>" paper has always been one of those must
read items for me when it comes to Service Orientation. He recently gave a presentation
on the topic at TechEd EMEA at Barcelona and has posted the slides. Definitely worth
checking out...
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=cb534f1b-2c00-48d5-96eb-c45158a3a63b" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Data and more...</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,cb534f1b-2c00-48d5-96eb-c45158a3a63b.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/11/26/DataAndMore.aspx</link>
      <pubDate>Mon, 26 Nov 2007 02:21:57 GMT</pubDate>
      <description>&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;Recently, a lot of interest has been shown in SOA (Service Oriented Architectures).
In these systems, there are multiple services each with its own code and data, and
ability to operate independently of its partners. In particular, atomic transactions
with two-phase commit do not occur across multiple services because this necessitates
holding locks while another service decides the outcome of the transaction. This talk
proposes there are a number of seminal differences between data inside a service and
data sent into the space outside of the service boundary. The act of unlocking data
as a copy of it is sent in the message means the interpretation of the received message
must include the understanding that this data in unlocked. This changes how the data
can be used. 
&lt;br&gt;
&lt;br&gt;
We then consider objects, SQL, and XML as different representations of data. Each
of these models has strengths and weaknesses when applied to the inside and outside
of the service boundary. The talk concludes that the strength of each of these models
in one area is derived from essential characteristics underlying its weakness in the
other area.&lt;/em&gt; 
&lt;/p&gt;
&lt;p&gt;
Source: &lt;a href="http://blogs.msdn.com/pathelland/archive/2007/11/25/presentation-of-data-on-the-inside-versus-data-on-the-outside-at-teched-emea-at-barcelona.aspx"&gt;Presentation
by Pat Helland of "Data on the Inside versus Data on the Outside" at TechEd EMEA at
Barcelona&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Pat Helland's "&lt;a href="http://msdn2.microsoft.com/en-us/library/ms954587.aspx"&gt;Data
on the Outside vs. Data on the Inside&lt;/a&gt;" paper has always been one of those must
read items for me when it comes to Service Orientation. He recently gave a presentation
on the topic at TechEd EMEA at Barcelona and has posted the slides. Definitely worth
checking out...
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=cb534f1b-2c00-48d5-96eb-c45158a3a63b" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,cb534f1b-2c00-48d5-96eb-c45158a3a63b.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=570e114f-542c-4bf9-bf55-744fa6169027</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,570e114f-542c-4bf9-bf55-744fa6169027.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,570e114f-542c-4bf9-bf55-744fa6169027.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=570e114f-542c-4bf9-bf55-744fa6169027</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Slides and notes from two presentations on REST and SOAP at QCon:
</p>
        <ul>
          <li>
            <a href="http://wanderingbarque.com/nonintersecting/2007/11/12/qcon-wrap-up/">Pete
Lacey on REST and SOAP</a>
          </li>
          <li>
            <a href="http://wso2.org/library/2818">Sanjiva Weerawarana on SOAP and REST</a>
          </li>
        </ul>
        <p>
Very different viewpoints. I enjoyed both :-) 
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=570e114f-542c-4bf9-bf55-744fa6169027" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Two Viewpoints on SOAP and REST</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,570e114f-542c-4bf9-bf55-744fa6169027.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/11/22/TwoViewpointsOnSOAPAndREST.aspx</link>
      <pubDate>Thu, 22 Nov 2007 17:19:51 GMT</pubDate>
      <description>&lt;p&gt;
Slides and notes from two presentations on REST and SOAP at QCon:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://wanderingbarque.com/nonintersecting/2007/11/12/qcon-wrap-up/"&gt;Pete
Lacey on REST and SOAP&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://wso2.org/library/2818"&gt;Sanjiva Weerawarana on SOAP and REST&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Very different viewpoints. I enjoyed both :-) 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=570e114f-542c-4bf9-bf55-744fa6169027" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,570e114f-542c-4bf9-bf55-744fa6169027.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=597b6093-439f-4f1a-abc2-afb0a6685731</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,597b6093-439f-4f1a-abc2-afb0a6685731.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,597b6093-439f-4f1a-abc2-afb0a6685731.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=597b6093-439f-4f1a-abc2-afb0a6685731</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I was giving a presentation and demo today about Policy Based Management in a Web
Services environment. The particular use case I was demonstrating was the ability
to, <strong>by policy</strong>, change the type of authentication tokens that were
accepted by a web service (from none, to hard-coded, to leveraging an existing identity
store, to X.509 Certs etc.) depending on the level of assurance needed, <strong>without
modifying the web service code</strong>. 
</p>
        <p>
The mechanism I was using as the Policy Enforcement Point (PEP) in my demonstration
was an XML Security Gateway. XML Security Gateways are useful devices for a <a href="http://www.aniltj.com/blog/2007/03/23/DesignPatternsAndSOARuntimeInfrastructure.aspx">variety</a> of <a href="http://www.aniltj.com/blog/2007/07/16/MessageReplayXMLGatewaysAndReplayCaches.aspx">reasons</a>,
but typically there are also drawbacks. The major one is that if you have XML Security
Gateways from multiple vendors, you typically cannot define policies in the Policy
Administration Point (PAP) of one vendor and push it out to the Gateways (PEPs) of
another vendor. This issue becomes even more extensive when you consider that other
pieces of web services infrastructure such as Web Service Management (WSM) products,
ESBs etc. also have their own unique consoles for administration.
</p>
        <p>
When you question the vendors on this, the typical answer that you get is that they
are waiting for WS-Policy (and the associated domain specific languages under WS-Policy)
to be approved and adopted to alleviate this issue. In the mean time of course, if
you need that central administration, just standardize on our product :-) I'll buy
that to a certain extent, but what about support for those standards that have been
out there for a while and have traction in the community? e.g. SAML and XACML. 
</p>
        <p>
One of the reasons that the <a href="http://www.aniltj.com/blog/2007/11/02/CiscoAndSecurent.aspx">acquisition
of Reactivity and Securent by Cisco interested me</a>, was that it brought together
the possibility of an XML Security Gateway (acting as a PEP) backing against a XACML-based
fine grained authorization service (PDP). I was not aware of anyone who supported
this use case out of the box, although  I am aware of folks who have requested
this functionality and the vendors who have either custom modified their products
to enable this or have put it on their feature roadmap. 
</p>
        <p>
But I was recently made aware of at least one potential out of the box support for
this capability by <a href="http://radio.weblogs.com/0111797/">Mark O'Neill</a>, CTO
of <a href="http://www.vordel.com/">Vordel</a>. Mark pointed me to Vordel's <a href="http://radio.weblogs.com/0111797/2007/01/22.html#a73">XACML
PEP Support</a>, as well as <a href="http://radio.weblogs.com/0111797/2006/08/21.html#a56">a
case study and information on interoperating</a> with various XACML PDPs. Very interesting!
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=597b6093-439f-4f1a-abc2-afb0a6685731" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>XML Security Gateways as Policy Enforcement Points</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,597b6093-439f-4f1a-abc2-afb0a6685731.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/11/21/XMLSecurityGatewaysAsPolicyEnforcementPoints.aspx</link>
      <pubDate>Wed, 21 Nov 2007 02:27:41 GMT</pubDate>
      <description>&lt;p&gt;
I was giving a presentation and demo today about Policy Based Management in a Web
Services environment. The particular use case I was demonstrating was the ability
to, &lt;strong&gt;by policy&lt;/strong&gt;, change the type of authentication tokens that were
accepted by a web service (from none, to hard-coded, to leveraging an existing identity
store, to X.509 Certs etc.) depending on the level of assurance needed, &lt;strong&gt;without
modifying the web service code&lt;/strong&gt;. 
&lt;/p&gt;
&lt;p&gt;
The mechanism I was using as the Policy Enforcement Point (PEP) in my demonstration
was an XML Security Gateway. XML Security Gateways are useful devices for a &lt;a href="http://www.aniltj.com/blog/2007/03/23/DesignPatternsAndSOARuntimeInfrastructure.aspx"&gt;variety&lt;/a&gt; of &lt;a href="http://www.aniltj.com/blog/2007/07/16/MessageReplayXMLGatewaysAndReplayCaches.aspx"&gt;reasons&lt;/a&gt;,
but typically there are also drawbacks. The major one is that if you have XML Security
Gateways from multiple vendors, you typically cannot define policies in the Policy
Administration Point (PAP) of one vendor and push it out to the Gateways (PEPs) of
another vendor. This issue becomes even more extensive when you consider that other
pieces of web services infrastructure such as Web Service Management (WSM) products,
ESBs etc. also have their own unique consoles for administration.
&lt;/p&gt;
&lt;p&gt;
When you question the vendors on this, the typical answer that you get is that they
are waiting for WS-Policy (and the associated domain specific languages under WS-Policy)
to be approved and adopted to alleviate this issue. In the mean time of course, if
you need that central administration, just standardize on our product :-) I'll buy
that to a certain extent, but what about support for those standards that have been
out there for a while and have traction in the community? e.g. SAML and XACML. 
&lt;/p&gt;
&lt;p&gt;
One of the reasons that the &lt;a href="http://www.aniltj.com/blog/2007/11/02/CiscoAndSecurent.aspx"&gt;acquisition
of Reactivity and Securent by Cisco interested me&lt;/a&gt;, was that it brought together
the possibility of an XML Security Gateway (acting as a PEP) backing against a XACML-based
fine grained authorization service (PDP). I was not aware of anyone who supported
this use case out of the box, although&amp;nbsp; I am aware of folks who have requested
this functionality and the vendors who have either custom modified their products
to enable this or have put it on their feature roadmap. 
&lt;/p&gt;
&lt;p&gt;
But I was recently made aware of at least one potential out of the box support for
this capability by &lt;a href="http://radio.weblogs.com/0111797/"&gt;Mark O'Neill&lt;/a&gt;, CTO
of &lt;a href="http://www.vordel.com/"&gt;Vordel&lt;/a&gt;. Mark pointed me to Vordel's &lt;a href="http://radio.weblogs.com/0111797/2007/01/22.html#a73"&gt;XACML
PEP Support&lt;/a&gt;, as well as &lt;a href="http://radio.weblogs.com/0111797/2006/08/21.html#a56"&gt;a
case study and information on interoperating&lt;/a&gt; with various XACML PDPs. Very interesting!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=597b6093-439f-4f1a-abc2-afb0a6685731" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,597b6093-439f-4f1a-abc2-afb0a6685731.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=77cf018a-d060-43dd-8156-023a26f52d8b</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,77cf018a-d060-43dd-8156-023a26f52d8b.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,77cf018a-d060-43dd-8156-023a26f52d8b.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=77cf018a-d060-43dd-8156-023a26f52d8b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The W3C <a href="http://www.w3.org/2002/ws/databinding/">XML Schema Patterns for Databinding
Working Group</a> have published updated Working Drafts for "<a href="http://www.w3.org/TR/xmlschema-patterns/">Basic
XML Schema Patterns for Databinding Version 1.0</a>" and "<a href="http://www.w3.org/2002/ws/databinding/">Advanced
XML Schema Patterns for Databinding Version 1.0</a>" 
</p>
        <p>
          <a href="http://www.w3.org/2002/ws/databinding/snapshots/report-20071030/all.html">
            <img style="border-width: 0px; margin: 0px 0px 0px 5px;" alt="XML Databinding Interop Report" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/XMLSchemaPatternsforDatabindingInteroper_14930/XMLDatabinding_Results_9.jpg" align="right" border="0" height="304" width="547" />
          </a> As <a href="http://www.aniltj.com/blog/2006/05/12/XMLSchemaPatternsForCommonDataStructuresVersion10WorkingDraft.aspx">I've
mentioned before</a> this is one of the only efforts who are looking at ways of working
around the fact that XML Schema is inconsistently implemented across various web service
Toolkits. 
</p>
        <p>
This is also the primary reason that I am moving away from databinding in general
to consuming the XML directly which enables me to use native XML technologies such
as XPath, XSLT etc.
</p>
        <p>
What is even more interesting is that as part of the report they have come up with
a Test Suite and have run it against a range of web service implementations (Axis,
Axis2, .NET 2.0, WCF, XFire and more..) and documented it in an <a href="http://www.w3.org/2002/ws/databinding/snapshots/report-20071030/all.html">Interoperability
Report</a>. The results are interesting... to say the least! 
</p>
        <p>
Highly recommended reading if interested in web services interoperability.
</p>
        <br />
        <p>
          <br />
        </p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=77cf018a-d060-43dd-8156-023a26f52d8b" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>XML Schema Patterns for Databinding: Interoperability Report</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,77cf018a-d060-43dd-8156-023a26f52d8b.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/11/04/XMLSchemaPatternsForDatabindingInteroperabilityReport.aspx</link>
      <pubDate>Sun, 04 Nov 2007 23:30:15 GMT</pubDate>
      <description>&lt;p&gt;
The W3C &lt;a href="http://www.w3.org/2002/ws/databinding/"&gt;XML Schema Patterns for Databinding
Working Group&lt;/a&gt; have published updated Working Drafts for "&lt;a href="http://www.w3.org/TR/xmlschema-patterns/"&gt;Basic
XML Schema Patterns for Databinding Version 1.0&lt;/a&gt;" and "&lt;a href="http://www.w3.org/2002/ws/databinding/"&gt;Advanced
XML Schema Patterns for Databinding Version 1.0&lt;/a&gt;" 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.w3.org/2002/ws/databinding/snapshots/report-20071030/all.html"&gt;&lt;img style="border-width: 0px; margin: 0px 0px 0px 5px;" alt="XML Databinding Interop Report" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/XMLSchemaPatternsforDatabindingInteroper_14930/XMLDatabinding_Results_9.jpg" align="right" border="0" height="304" width="547"&gt;&lt;/a&gt; As &lt;a href="http://www.aniltj.com/blog/2006/05/12/XMLSchemaPatternsForCommonDataStructuresVersion10WorkingDraft.aspx"&gt;I've
mentioned before&lt;/a&gt; this is one of the only efforts who are looking at ways of working
around the fact that XML Schema is inconsistently implemented across various web service
Toolkits. 
&lt;/p&gt;
&lt;p&gt;
This is also the primary reason that I am moving away from databinding in general
to consuming the XML directly which enables me to use native XML technologies such
as XPath, XSLT etc.
&lt;/p&gt;
&lt;p&gt;
What is even more interesting is that as part of the report they have come up with
a Test Suite and have run it against a range of web service implementations (Axis,
Axis2, .NET 2.0, WCF, XFire and more..) and documented it in an &lt;a href="http://www.w3.org/2002/ws/databinding/snapshots/report-20071030/all.html"&gt;Interoperability
Report&lt;/a&gt;. The results are interesting... to say the least! 
&lt;/p&gt;
&lt;p&gt;
Highly recommended reading if interested in web services interoperability.
&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=77cf018a-d060-43dd-8156-023a26f52d8b" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,77cf018a-d060-43dd-8156-023a26f52d8b.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=d5ce5759-3e82-4437-b988-ba0a14f56d45</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,d5ce5759-3e82-4437-b988-ba0a14f56d45.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,d5ce5759-3e82-4437-b988-ba0a14f56d45.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=d5ce5759-3e82-4437-b988-ba0a14f56d45</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <ul>
          <li>
            <a href="http://www.oasis-open.org/committees/relax-ng/spec-20011203.html">RELAX NG
Specification</a> at OASIS 
</li>
          <li>
            <a href="http://www.oasis-open.org/committees/relax-ng/tutorial.html">RELAX NG Tutorial</a> at
OASIS 
</li>
          <li>
            <a href="http://www.griffinbrown.co.uk/blog/PermaLink,guid,9aebb083-a961-42b1-9748-a57e06a0f19a.aspx">10
reasons to model XML with RELAX NG , not W3C XML Schema</a>
          </li>
          <li>
            <a href="http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=19adeb36-16d9-4cb6-a99f-cf3d1b15de5c">Should
you choose RELAX now?</a>
          </li>
        </ul>
        <p align="center">
          <a href="http://www.amazon.com/exec/obidos/ASIN/0596004214/aniltj-20">
          </a> <a href="http://www.amazon.com/exec/obidos/ASIN/0596004214/aniltj-20"><img src="http://ecx.images-amazon.com/images/I/215RPPXXMRL.jpg" border="0" /></a></p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=d5ce5759-3e82-4437-b988-ba0a14f56d45" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>RELAX NG Resources</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,d5ce5759-3e82-4437-b988-ba0a14f56d45.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/10/30/RELAXNGResources.aspx</link>
      <pubDate>Tue, 30 Oct 2007 02:38:30 GMT</pubDate>
      <description>&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.oasis-open.org/committees/relax-ng/spec-20011203.html"&gt;RELAX NG
Specification&lt;/a&gt; at OASIS 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.oasis-open.org/committees/relax-ng/tutorial.html"&gt;RELAX NG Tutorial&lt;/a&gt; at
OASIS 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.griffinbrown.co.uk/blog/PermaLink,guid,9aebb083-a961-42b1-9748-a57e06a0f19a.aspx"&gt;10
reasons to model XML with RELAX NG , not W3C XML Schema&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=19adeb36-16d9-4cb6-a99f-cf3d1b15de5c"&gt;Should
you choose RELAX now?&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p align="center"&gt;
&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0596004214/aniltj-20"&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0596004214/aniltj-20"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/215RPPXXMRL.jpg" border="0"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=d5ce5759-3e82-4437-b988-ba0a14f56d45" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,d5ce5759-3e82-4437-b988-ba0a14f56d45.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=97e43bda-ced4-40f9-ae2e-714cd34953de</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,97e43bda-ced4-40f9-ae2e-714cd34953de.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,97e43bda-ced4-40f9-ae2e-714cd34953de.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=97e43bda-ced4-40f9-ae2e-714cd34953de</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
When designing schemas, one tries to strive for modularity which allows one to build
XML schemas that are composed of other schema documents. The keywords that make it
possible are <em>include</em>, <em>import</em> and <em>redefine</em>.  Most folks
who are used to schemas are familiar with import and if you want to maximize
interoperability you should stay away from redefine since it is not implemented on
a consistent basis. 
</p>
        <p>
That leaves the include keyword.  When you use include, one of the following
should be true:
</p>
        <ul>
          <li>
Both schema documents (The including schema and the included schema) must have the
same target namespace 
</li>
          <li>
Neither of the schema documents should have a target namespace 
</li>
          <li>
The including schema document has a target namespace, and the included schema does
not.</li>
        </ul>
        <p>
In the last case, all components of the included schema document take on the namespace
of the including schema document. The included schema document is sometimes referred
to as a chameleon schema as its namespace changes depending on where it is included.
</p>
        <p>
A best practice that I normally follow is to use chameleon schemas for common,
reusable types so that I don't have to namespace qualify some very common schema
types that I normally end up using across multiple schemas. 
</p>
        <p>
I recently ran into an issue when actually working on this in that a particular .NET
tool that I was using did not seem understand the use of option (3) i.e. chameleon
schemas. Since I know the guys who developed the tool, and they are considered pretty
much experts in the field, I was not that surprised when I pinged them on this and
got back an answer that it was a known issue.
</p>
        <p>
According to them, the reason that the issue exists is because of a lack of support
in the .NET API itself and (this is way too low level for me) has to do with
how the ServiceDescriptionImporter(SDI) class is not working properly. So you
would have issues if you tried to use wsdl.exe with chameleon schemas in .NET 1.1
and 2.0. Not sure if the issue exists under WCF.
</p>
        <p>
The workaround for this, which I implemented, was to qualify the included schema with
the same namespace as the including schema. Not ideal, but got me to where I needed
to.
</p>
        <p>
Hopefully this is an issue that will be fixed.
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=97e43bda-ced4-40f9-ae2e-714cd34953de" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Modular schemas, include, and tooling support</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,97e43bda-ced4-40f9-ae2e-714cd34953de.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/09/17/ModularSchemasIncludeAndToolingSupport.aspx</link>
      <pubDate>Mon, 17 Sep 2007 16:07:25 GMT</pubDate>
      <description>&lt;p&gt;
When designing schemas, one tries to strive for modularity which allows one to build
XML schemas that are composed of other schema documents. The keywords that make it
possible are &lt;em&gt;include&lt;/em&gt;, &lt;em&gt;import&lt;/em&gt; and &lt;em&gt;redefine&lt;/em&gt;.&amp;nbsp; Most folks
who are used to schemas are familiar with import and&amp;nbsp;if you want to maximize
interoperability you should stay away from redefine since it is not implemented on
a consistent basis. 
&lt;/p&gt;
&lt;p&gt;
That leaves the include keyword.&amp;nbsp; When you use include, one of the following
should be true:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Both schema documents (The including schema and the included schema) must have the
same target namespace 
&lt;/li&gt;
&lt;li&gt;
Neither of the schema documents should have a target namespace 
&lt;/li&gt;
&lt;li&gt;
The including schema document has a target namespace, and the included schema does
not.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
In the last case, all components of the included schema document take on the namespace
of the including schema document. The included schema document is sometimes referred
to as a chameleon schema as its namespace changes depending on where it is included.
&lt;/p&gt;
&lt;p&gt;
A&amp;nbsp;best practice that I normally follow is to use chameleon schemas for common,
reusable types so that I don't have to namespace qualify some very common&amp;nbsp;schema
types that I normally end up using across multiple schemas.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
I recently ran into an issue when actually working on this in that a particular .NET
tool that I was using did not seem understand the use of option (3) i.e. chameleon
schemas. Since I know the guys who developed the tool, and they are considered pretty
much experts in the field, I was not that surprised when I pinged them on this and
got back an answer that it was a known issue.
&lt;/p&gt;
&lt;p&gt;
According to them, the reason that the issue exists is because of a lack of support
in the .NET API itself and (this is way too low level&amp;nbsp;for me) has to do with
how the ServiceDescriptionImporter(SDI) class is not working properly.&amp;nbsp;So you
would have issues if you tried to use wsdl.exe with chameleon schemas in .NET 1.1
and 2.0. Not sure if the issue exists under WCF.
&lt;/p&gt;
&lt;p&gt;
The workaround for this, which I implemented, was to qualify the included schema with
the same namespace as the including schema. Not ideal, but got me to where I needed
to.
&lt;/p&gt;
&lt;p&gt;
Hopefully this is an issue that will be fixed.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=97e43bda-ced4-40f9-ae2e-714cd34953de" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,97e43bda-ced4-40f9-ae2e-714cd34953de.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=5973b2a4-7965-44a4-8d76-55c361372f57</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,5973b2a4-7965-44a4-8d76-55c361372f57.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,5973b2a4-7965-44a4-8d76-55c361372f57.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=5973b2a4-7965-44a4-8d76-55c361372f57</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Service Component Architecture (SCA) is something that has been popping up on my radar
for some time now, but I've been having a hard time getting a clear idea of what
SCA is all about from the vendor presentations and from the specifications themselves. 
</p>
        <p>
In particular I was interested in how it relates to SOA and Web Services, but what
I had heard to date and what I took away from the various presentations/readings made
me put it on the back-burner as a "new application thing from a bunch of Java vendors".  
</p>
        <p>
I just changed my mind on this after reading David Chappell's "<a href="http://www.davidchappell.com/articles/Introducing_SCA.pdf">Introducing
SCA [PDF]</a>" white-paper.  It is a clear, vendor-neutral and most excellent
description of what SCA is all about and the various pieces that make up SCA. In particular
it sets the stage for understanding how various vendors who jump on the SCA bandwagon
may choose to focus on or implement one or more of the the pieces of what SCA is in
total.
</p>
        <p>
I would also add that if after reading the white-paper you are interested in the standardization
efforts around SCA, to check out the <a href="http://www.oasis-opencsa.org/">OASIS
OpenCSA</a> efforts.
</p>
        <p>
In short, as noted in the white-paper "<em>The reality today is clear: Anyone who's
interested in the future of application development should also be interested in SCA.</em>"
Read!
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=5973b2a4-7965-44a4-8d76-55c361372f57" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Demystifying SCA</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,5973b2a4-7965-44a4-8d76-55c361372f57.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/09/03/DemystifyingSCA.aspx</link>
      <pubDate>Mon, 03 Sep 2007 01:48:33 GMT</pubDate>
      <description>&lt;p&gt;
Service Component Architecture (SCA) is something that has been popping up on my radar
for some time now, but I've been having&amp;nbsp;a hard time getting a clear idea of what
SCA is all about from the vendor presentations and from the specifications themselves. 
&lt;/p&gt;
&lt;p&gt;
In particular I was interested in how it relates to SOA and Web Services, but what
I had heard to date and what I took away from the various presentations/readings made
me put it on the back-burner as a "new application thing from a bunch of Java vendors".&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
I just changed my mind on this after reading David Chappell's "&lt;a href="http://www.davidchappell.com/articles/Introducing_SCA.pdf"&gt;Introducing
SCA [PDF]&lt;/a&gt;" white-paper.&amp;nbsp; It is a clear, vendor-neutral&amp;nbsp;and most excellent
description of what SCA is all about and the various pieces that make up SCA. In particular
it sets the stage for understanding how various vendors who&amp;nbsp;jump on the SCA bandwagon
may choose to focus on or implement one or more of the the pieces of what SCA is in
total.
&lt;/p&gt;
&lt;p&gt;
I would also add that if after reading the white-paper you are interested in the standardization
efforts around SCA,&amp;nbsp;to check out the &lt;a href="http://www.oasis-opencsa.org/"&gt;OASIS
OpenCSA&lt;/a&gt; efforts.
&lt;/p&gt;
&lt;p&gt;
In short, as noted in the white-paper "&lt;em&gt;The reality today is clear: Anyone who's
interested in the future of application development should also be interested in SCA.&lt;/em&gt;"
Read!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=5973b2a4-7965-44a4-8d76-55c361372f57" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,5973b2a4-7965-44a4-8d76-55c361372f57.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=0f9032ea-ba39-43fb-b6ee-57d269b267a5</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,0f9032ea-ba39-43fb-b6ee-57d269b267a5.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,0f9032ea-ba39-43fb-b6ee-57d269b267a5.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=0f9032ea-ba39-43fb-b6ee-57d269b267a5</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
You don't get much! Rest with the small caps of course. The program starts (depending
on whether or not you have something going on during breakfast) any time between 7
and 8:30 p.m. and goes on all the way through 6 p.m. Then there are networking and
interoperability events that usually go on until 9 p.m. All in all, very full program
with very little bit of slack or fluff.
</p>
        <p>
Allrighty, now that I have made my lame joke, I did want to mention "REST Easy" workshop
that was given by <a href="http://wanderingbarque.com/nonintersecting/">Pete Lacey</a>.
 I personally found it to be very enjoyable and educational. Pete is passionate,
articulate and takes no prisoners on this topic.  <strike>You might as well have
named the workshop "SOAP based web services are the spawn of evil and should be staked
through the heart ASAP!" </strike>:-)
</p>
        <p>
As I mentioned to Pete afterwards, I am not in the OR camp (i.e. WS-* <strong>OR</strong> REST) as
I believe that there is a place for both. I also think that 10 years from now we will
be using a strange fusion of the two approaches and arguing about something else!
In any case, I do believe that REST offers definite potential benefits if you can
wrap your head around it and learn how to apply its constraints correctly in building
solutions. I, for one, intend to dedicate some time to do just that. You can
never have enough tools in your toolbox!
</p>
        <p>
          <b>UPDATE</b>:  Humor often does not come through very well when writing (and
the above, now crossed-out sentence, was meant to be humorous). But based on Pete's
comments below, I want to make sure that the reader's of this blog posting do not
get wrong impression. Significant portion (&gt; 95%) of the time was spent on REST
principles itself, examples of an actual REST solution with code samples and a lot
more and not on picking on  WS-*. To think otherwise would be very unfair to
Pete and that is not my intent at all. My only intent with the above comment was to
note that if you believe the premise and the promise of REST as presented in the workshop,
you will come away with an aversion to the complexity that is inherent in the current
state of WS-*. Which of course is why I noted above that I would indeed be investing
time in learning more about REST.<br /></p>
        <p>
        </p>
        <div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:3410381c-dad7-4874-9009-27d1c2a8e994" contenteditable="false" style="margin: 0px; padding: 0px; display: inline;">Technorati
tags: <a href="http://technorati.com/tags/BurtonGroupCatalyst07" rel="tag">BurtonGroupCatalyst07</a></div>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=0f9032ea-ba39-43fb-b6ee-57d269b267a5" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>REST at Catalyst</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,0f9032ea-ba39-43fb-b6ee-57d269b267a5.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/07/02/RESTAtCatalyst.aspx</link>
      <pubDate>Mon, 02 Jul 2007 02:52:12 GMT</pubDate>
      <description>&lt;p&gt;
You don't get much! Rest with the small caps of course. The program starts (depending
on whether or not you have something going on during breakfast) any time between 7
and 8:30 p.m. and goes on all the way through 6 p.m. Then there are networking and
interoperability events that usually go on until 9 p.m. All in all, very full program
with very little bit of slack or fluff.
&lt;/p&gt;
&lt;p&gt;
Allrighty, now that I have made my lame joke, I did want to mention "REST Easy" workshop
that was given by &lt;a href="http://wanderingbarque.com/nonintersecting/"&gt;Pete Lacey&lt;/a&gt;.
&amp;nbsp;I personally found it to be very enjoyable and educational. Pete is passionate,
articulate and takes no prisoners on this topic.&amp;nbsp; &lt;strike&gt;You might as well have
named the workshop "SOAP based web services are the spawn of evil and should be staked
through the heart ASAP!" &lt;/strike&gt;:-)
&lt;/p&gt;
&lt;p&gt;
As I mentioned to Pete afterwards, I am not in the OR camp (i.e. WS-* &lt;strong&gt;OR&lt;/strong&gt; REST)&amp;nbsp;as
I believe that there is a place for both. I also think that 10 years from now we will
be using a strange fusion of the two approaches and arguing about something else!
In any case, I do believe that REST offers definite potential benefits if you can
wrap your head around it and learn how to apply its constraints correctly in building
solutions. I, for one, intend to dedicate some time&amp;nbsp;to do just that. You can
never have enough tools in your toolbox!
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;UPDATE&lt;/b&gt;:&amp;nbsp; Humor often does not come through very well when writing (and
the above, now crossed-out sentence, was meant to be humorous). But based on Pete's
comments below, I want to make sure that the reader's of this blog posting do not
get wrong impression. Significant portion (&amp;gt; 95%) of the time was spent on REST
principles itself, examples of an actual REST solution with code samples and a lot
more and not on picking on&amp;nbsp; WS-*. To think otherwise would be very unfair to
Pete and that is not my intent at all. My only intent with the above comment was to
note that if you believe the premise and the promise of REST as presented in the workshop,
you will come away with an aversion to the complexity that is inherent in the current
state of WS-*. Which of course is why I noted above that I would indeed be investing
time in learning more about REST.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:3410381c-dad7-4874-9009-27d1c2a8e994" contenteditable="false" style="margin: 0px; padding: 0px; display: inline;"&gt;Technorati
tags: &lt;a href="http://technorati.com/tags/BurtonGroupCatalyst07" rel="tag"&gt;BurtonGroupCatalyst07&lt;/a&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=0f9032ea-ba39-43fb-b6ee-57d269b267a5" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,0f9032ea-ba39-43fb-b6ee-57d269b267a5.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=80e6bf38-f392-4f12-b4c4-827970cf3154</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,80e6bf38-f392-4f12-b4c4-827970cf3154.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,80e6bf38-f392-4f12-b4c4-827970cf3154.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=80e6bf38-f392-4f12-b4c4-827970cf3154</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Today was a good day!
</p>
        <p>
Gave my presentation today and got some incredibly good engagement and feedback on
it which I need to follow-up on. It appears that a lot of folks share the trials and
tribulations that we are going through as we are deploying our SOA environment, so
sharing the information on how best we are accomplishing what we need to do and
some of the best practices we have identified definitely opened up a floodgate
of ideas for possible collaboration, which was exactly what we were hoping for!
</p>
        <p>
The sessions as usual were outstanding and I ended up in the evening having some intense
and wide ranging conversations with both Anne Thomas Manes as well as Jonathan Chaitt
from Disney. Anne is the SOA track lead for Catalyst conference and really did a great
job of putting together a great selection of folks (Burton, End Users, Vendors, Independents)
while keeping it all real.  I also really enjoyed chatting with the Disney
folks. They are doing some really fine work in the area of fine grained
authorization and are folks I hope to keep in touch with. 
</p>
        <p>
Also attended both an OASIS XACML Interop event as well as a WS-I Basic Security Profile
Interop Session which really opens up some possibilities for some of the things that
we are considering.
</p>
        <p>
All in all an excellent day topped by some an awesome personally guided walking tour
of downtown SF (Some amazingly beautiful buildings out here) by a rather remarkable
gentleman that I met the last time I was out here who just so happens is a former
SF resident.
</p>
        <div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:8c279a6b-9fdd-42f9-9007-de29271cc48d" contenteditable="false" style="margin: 0px; padding: 0px; display: inline;">Technorati
Tags: <a href="http://technorati.com/tags/BurtonGroupCatalyst07" rel="tag">BurtonGroupCatalyst07</a></div>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=80e6bf38-f392-4f12-b4c4-827970cf3154" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Catalyst - Thursday</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,80e6bf38-f392-4f12-b4c4-827970cf3154.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/06/29/CatalystThursday.aspx</link>
      <pubDate>Fri, 29 Jun 2007 20:46:51 GMT</pubDate>
      <description>&lt;p&gt;
Today was a good day!
&lt;/p&gt;
&lt;p&gt;
Gave my presentation today and got some incredibly good engagement and feedback on
it which I need to follow-up on. It appears that a lot of folks share the trials and
tribulations that we are going through as we are deploying our SOA environment, so
sharing the information on how best we&amp;nbsp;are accomplishing what we need to do and
some of the&amp;nbsp;best practices we have identified definitely opened up a floodgate
of ideas for possible collaboration, which was exactly what we were hoping for!
&lt;/p&gt;
&lt;p&gt;
The sessions as usual were outstanding and I ended up in the evening having some intense
and wide ranging conversations with both Anne Thomas Manes as well as Jonathan Chaitt
from Disney. Anne is the SOA track lead for Catalyst conference and really did a great
job of putting together a great selection of folks (Burton, End Users, Vendors, Independents)
while keeping it all real.&amp;nbsp; I also really enjoyed chatting with&amp;nbsp;the&amp;nbsp;Disney
folks.&amp;nbsp;They&amp;nbsp;are doing some really&amp;nbsp;fine work in the area of fine grained
authorization and&amp;nbsp;are folks I hope to&amp;nbsp;keep in touch with.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Also attended both an OASIS XACML Interop event as well as a WS-I Basic Security Profile
Interop Session which really opens up some possibilities for some of the things that
we are considering.
&lt;/p&gt;
&lt;p&gt;
All in all an excellent day topped by some an awesome personally guided walking tour
of downtown SF (Some amazingly beautiful buildings out here) by a rather remarkable
gentleman that I met the last time I was out here who just so happens is a former
SF resident.
&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:8c279a6b-9fdd-42f9-9007-de29271cc48d" contenteditable="false" style="margin: 0px; padding: 0px; display: inline;"&gt;Technorati
Tags: &lt;a href="http://technorati.com/tags/BurtonGroupCatalyst07" rel="tag"&gt;BurtonGroupCatalyst07&lt;/a&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=80e6bf38-f392-4f12-b4c4-827970cf3154" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,80e6bf38-f392-4f12-b4c4-827970cf3154.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=72ec9157-676d-42be-b58f-9671cce95c56</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,72ec9157-676d-42be-b58f-9671cce95c56.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,72ec9157-676d-42be-b58f-9671cce95c56.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=72ec9157-676d-42be-b58f-9671cce95c56</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Trends driving enterprise IT
</p>
        <ul>
          <li>
Today's toys = tomorrow's tools</li>
          <li>
SaaS as a new business model</li>
          <li>
Semantic disparity</li>
          <li>
Integration of collaboration into business apps</li>
          <li>
Virtualization</li>
          <li>
Automating regulatory compliance and governance</li>
          <li>
more...</li>
        </ul>
        <p>
Organizations should build general-purpose reusable infrastructure based on standards
to ensure management, consistency etc. Tension between building for today and architecting
for tomorrow. Realize that tech is fleeting.
</p>
        <p>
Growing resistance to super-platform from best of breed. Innovations in raising level
of abstraction and in the pursuit of simplicity.
</p>
        <p>
Super-platform vendors are not just selling app servers but SOA/BPM platforms. More
"stuff" in the core platform. But also more specialization in the areas of:
</p>
        <ul>
          <li>
Domain-specific languages</li>
          <li>
OSS rebel framework</li>
          <li>
Mobile frameworks</li>
          <li>
UI frameworks</li>
          <li>
Others..</li>
        </ul>
        <p>
Increasing simplicity
</p>
        <ul>
          <li>
REST/WS-*/POX</li>
          <li>
Dynamic vs. compiled languages</li>
          <li>
80/20 rule specialized frameworks (e.g., Rails)</li>
          <li>
Lightweight containers</li>
        </ul>
        <p>
Increasing abstraction
</p>
        <ul>
          <li>
Model-driven development</li>
          <li>
Declarative languages</li>
          <li>
Data services</li>
          <li>
Infrastructure services</li>
        </ul>
        <p>
Assume heterogeneity at the core. Pursue simplicity and abstraction. Invest in infrastructure
(SDLC, Governance, Runtime, Security, Data) to provide separation of concerns, increase
productivity and efficiency and provide better governance and consistency.
</p>
        <p>
          <strong>Don't let the vendor dictate your strategy</strong>
        </p>
        <ul>
          <li>
Design own infrastructure</li>
          <li>
Identify functional capabilities and map vendor tech into them</li>
          <li>
Best innovation from startup community</li>
          <li>
Focus on principles and patterns and recognize that technology is fleeting</li>
          <li>
Separation of concerns between Apps and Infrastructure</li>
          <li>
More...</li>
        </ul>
        <p>
        </p>
        <div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:ffd96381-798d-470d-bd17-b3f71df32513" contenteditable="false" style="margin: 0px; padding: 0px; display: inline;">Technorati
Tags: <a href="http://technorati.com/tags/BurtonGroupCatalyst07" rel="tag">BurtonGroupCatalyst07</a></div>
        <p>
        </p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=72ec9157-676d-42be-b58f-9671cce95c56" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Catalyst - Anne Thomas Manes Keynote - State of Disunion</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,72ec9157-676d-42be-b58f-9671cce95c56.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/06/27/CatalystAnneThomasManesKeynoteStateOfDisunion.aspx</link>
      <pubDate>Wed, 27 Jun 2007 21:41:37 GMT</pubDate>
      <description>&lt;p&gt;
Trends driving enterprise IT
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Today's toys&amp;nbsp;= tomorrow's tools&lt;/li&gt;
&lt;li&gt;
SaaS as a new business model&lt;/li&gt;
&lt;li&gt;
Semantic disparity&lt;/li&gt;
&lt;li&gt;
Integration of collaboration into business apps&lt;/li&gt;
&lt;li&gt;
Virtualization&lt;/li&gt;
&lt;li&gt;
Automating regulatory compliance and governance&lt;/li&gt;
&lt;li&gt;
more...&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Organizations should build general-purpose reusable infrastructure&amp;nbsp;based on standards
to ensure management, consistency etc. Tension between building for today and architecting
for tomorrow. Realize that tech is fleeting.
&lt;/p&gt;
&lt;p&gt;
Growing resistance to super-platform from best of breed. Innovations in raising level
of abstraction and in the pursuit of simplicity.
&lt;/p&gt;
&lt;p&gt;
Super-platform vendors are not just selling app servers but SOA/BPM platforms. More
"stuff" in the core platform. But also more specialization in the areas of:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Domain-specific languages&lt;/li&gt;
&lt;li&gt;
OSS rebel framework&lt;/li&gt;
&lt;li&gt;
Mobile frameworks&lt;/li&gt;
&lt;li&gt;
UI frameworks&lt;/li&gt;
&lt;li&gt;
Others..&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Increasing simplicity
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
REST/WS-*/POX&lt;/li&gt;
&lt;li&gt;
Dynamic vs. compiled languages&lt;/li&gt;
&lt;li&gt;
80/20 rule specialized frameworks (e.g., Rails)&lt;/li&gt;
&lt;li&gt;
Lightweight containers&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Increasing abstraction
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Model-driven development&lt;/li&gt;
&lt;li&gt;
Declarative languages&lt;/li&gt;
&lt;li&gt;
Data services&lt;/li&gt;
&lt;li&gt;
Infrastructure services&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Assume heterogeneity at the core. Pursue simplicity and abstraction. Invest in infrastructure
(SDLC, Governance, Runtime, Security, Data) to provide separation of concerns, increase
productivity and efficiency and provide better governance and consistency.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Don't let the vendor dictate your strategy&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Design own infrastructure&lt;/li&gt;
&lt;li&gt;
Identify functional capabilities and map vendor tech into them&lt;/li&gt;
&lt;li&gt;
Best innovation from startup community&lt;/li&gt;
&lt;li&gt;
Focus on principles and patterns and recognize that technology is fleeting&lt;/li&gt;
&lt;li&gt;
Separation of concerns between Apps and Infrastructure&lt;/li&gt;
&lt;li&gt;
More...&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:ffd96381-798d-470d-bd17-b3f71df32513" contenteditable="false" style="margin: 0px; padding: 0px; display: inline;"&gt;Technorati
Tags: &lt;a href="http://technorati.com/tags/BurtonGroupCatalyst07" rel="tag"&gt;BurtonGroupCatalyst07&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=72ec9157-676d-42be-b58f-9671cce95c56" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,72ec9157-676d-42be-b58f-9671cce95c56.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=b1e78578-121c-4d24-8458-568cae24f94d</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,b1e78578-121c-4d24-8458-568cae24f94d.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,b1e78578-121c-4d24-8458-568cae24f94d.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=b1e78578-121c-4d24-8458-568cae24f94d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I am attending the Burton Group Catalyst conference in San Francisco this week. Flew
out on here on Monday and attended some workshops over the last couple of days on
Identity Federation Technologies, Application Security and my personal favorite, Pete
Lacey's workshop on REST.
</p>
        <p>
Today is also the first day that I am feeling relatively human as over the last three
days I've been suffering from what felt like all of the symptoms of a flu.  Liberal
amounts of rest combined with regular dosages of various pain killers seem to have
improved the situation. Which is a good thing since I am scheduled to give a case
study presentation on Thursday:
</p>
        <blockquote>
          <p>
            <em>
              <strong>SOA and Security: A Pattern-based Approach</strong>
            </em>
          </p>
          <p>
            <em>A critical part of building out a SOA runtime infrastructure is the requirement
to directly address the threats to message exchanges that exist in a non-benign environment.
As JHU/APL is building out its SOA infrastructure for our GIG Testbed environment,
we are taking a measured and hopefully realistic approach to web service security
that is leveraging best practices from the community that are embodied in various
security patterns. </em>
          </p>
          <p>
            <em>To the greatest extent possible, we are mapping various applicable security patterns
to physical implementations using components of a SOA runtime infrastructure such
as mediation and web service management systems in combination with applicable security
and WS-* standards. This presentation will provide an overview of this effort, with
drill downs into some specific patterns and their corresponding implementations, as
well as provide insight into some of the related but non-technical issues such as
governance and building a community of practice around this effort.</em>
          </p>
        </blockquote>
        <p>
        </p>
        <div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:bb124025-7975-41bf-b2a5-0f807aa38040" contenteditable="false" style="margin: 0px; padding: 0px; display: inline;">Technorati
Tags: <a href="http://technorati.com/tags/BurtonGroupCatalyst07" rel="tag">BurtonGroupCatalyst07</a></div>
        <p>
        </p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=b1e78578-121c-4d24-8458-568cae24f94d" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Burton Group Catalyst 2007</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,b1e78578-121c-4d24-8458-568cae24f94d.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/06/27/BurtonGroupCatalyst2007.aspx</link>
      <pubDate>Wed, 27 Jun 2007 16:25:02 GMT</pubDate>
      <description>&lt;p&gt;
I am attending the Burton Group Catalyst conference in San Francisco this week. Flew
out on here on Monday and attended some workshops over the last couple of days on
Identity Federation Technologies, Application Security and my personal favorite, Pete
Lacey's workshop on REST.
&lt;/p&gt;
&lt;p&gt;
Today is also the first day that I am feeling relatively human as over the last three
days I've been suffering from what felt like all of the symptoms of a flu.&amp;nbsp; Liberal
amounts of rest combined with regular dosages of various pain killers seem to have
improved the situation. Which is a good thing since I am scheduled to give a case
study presentation on Thursday:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;&lt;strong&gt;SOA and Security: A Pattern-based Approach&lt;/strong&gt; &lt;/em&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;A critical part of building out a SOA runtime infrastructure is the requirement
to directly address the threats to message exchanges that exist in a non-benign environment.
As JHU/APL is building out its SOA infrastructure for our GIG Testbed environment,
we are taking a measured and hopefully realistic approach to web service security
that is leveraging best practices from the community that are embodied in various
security patterns. &lt;/em&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;To the greatest extent possible, we are mapping various applicable security patterns
to physical implementations using components of a SOA runtime infrastructure such
as mediation and web service management systems in combination with applicable security
and WS-* standards. This presentation will provide an overview of this effort, with
drill downs into some specific patterns and their corresponding implementations, as
well as provide insight into some of the related but non-technical issues such as
governance and building a community of practice around this effort.&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:bb124025-7975-41bf-b2a5-0f807aa38040" contenteditable="false" style="margin: 0px; padding: 0px; display: inline;"&gt;Technorati
Tags: &lt;a href="http://technorati.com/tags/BurtonGroupCatalyst07" rel="tag"&gt;BurtonGroupCatalyst07&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=b1e78578-121c-4d24-8458-568cae24f94d" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,b1e78578-121c-4d24-8458-568cae24f94d.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=cb67bcd7-e6dc-44bc-8490-3d837e673193</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,cb67bcd7-e6dc-44bc-8490-3d837e673193.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,cb67bcd7-e6dc-44bc-8490-3d837e673193.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=cb67bcd7-e6dc-44bc-8490-3d837e673193</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <blockquote>
          <p>
"I've set my bozo bit for WS and SOA types who are repositioning themselves as REST
stalwarts. Spotting a bandwagons is not an indicator of competence. " - REST Person 
</p>
          <p>
"REST is now the hot chick in town. Its on the uptick of the hype curve. Atom is going
to be taking over soon. Until we get past the top of the hype curve its impossible
to have intelligent, analytical, critical conversations with the fanatics." - WS-*
Person
</p>
        </blockquote>
        <p>
From the perspective of someone who just wants to get things done, this is simply <a href="http://en.wikipedia.org/wiki/Mutual_assured_destruction">MAD</a>. &lt;sigh&gt;
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=cb67bcd7-e6dc-44bc-8490-3d837e673193" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Give it a REST!</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,cb67bcd7-e6dc-44bc-8490-3d837e673193.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/06/07/GiveItAREST.aspx</link>
      <pubDate>Thu, 07 Jun 2007 23:56:15 GMT</pubDate>
      <description>&lt;blockquote&gt; 
&lt;p&gt;
"I've set my bozo bit for WS and SOA types who are repositioning themselves as REST
stalwarts. Spotting a bandwagons is not an indicator of competence. " - REST Person 
&lt;/p&gt;
&lt;p&gt;
"REST is now the hot chick in town. Its on the uptick of the hype curve. Atom is going
to be taking over soon. Until we get past the top of the hype curve its impossible
to have intelligent, analytical, critical conversations with the fanatics." - WS-*
Person
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
From the perspective of someone who just wants to get things done, this&amp;nbsp;is&amp;nbsp;simply &lt;a href="http://en.wikipedia.org/wiki/Mutual_assured_destruction"&gt;MAD&lt;/a&gt;.&amp;nbsp;&amp;lt;sigh&amp;gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=cb67bcd7-e6dc-44bc-8490-3d837e673193" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,cb67bcd7-e6dc-44bc-8490-3d837e673193.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=5b49f339-0698-4e90-b413-12a10fcde21e</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,5b49f339-0698-4e90-b413-12a10fcde21e.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,5b49f339-0698-4e90-b413-12a10fcde21e.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=5b49f339-0698-4e90-b413-12a10fcde21e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
I had a chance to geek out over dinner with a couple of friends, Ken Laskey and Chris
Bashioum, as well as a colleague of theirs (Rob Mikula) from <a href="http://www.mitre.org/">MITRE</a>.
We got together to talk about SOA Governance since both Ken and Chris are fellow members
on the OASIS SOA-RM TC and the three of them team teach a SOA course at MITRE that
heavily leverages the SOA-RM. 
</p>
        <p>
Unsurprisingly, the conversation ranged across the board from SOA adoption, granularity
of services, performance impact of composite services and possible ways to mitigate
them, the role of the UDDI protocol, data model extensibility in Repositories, WS-Policy, <a href="http://en.wikipedia.org/wiki/Consent_of_the_governed">Consent
of the Governed</a> and how it applies to SOA Governance, the role of a Center of
Excellence in the adoption and operation of a SOA and more... :-) 
</p>
        <p>
A discussion that we were having also provided me with a way forward in something
that I've been struggling with regarding the <a href="http://www.aniltj.com/blog/2007/04/11/TeachingSOA.aspx">SOA
course that I will be teaching for Johns Hopkins University</a>. What type of project/exercise
work can the students work on for the class? What Ken, Chris and Rob do in their two
day class is to have their students work through a case study on integrating multiple
information systems using a SOA approach. Given that I have a semester's worth of
time, a case study with drill downs in specific and relevant areas running the gamut
from governance and requirements to actual implementation of services could be very
useful in driving home the lecture/discussion points while at the same time providing
me with a mechanism to gauge if the students are actually grokking the information.
Will have to give some serious thought on how to go about structuring this. 
</p>
        <p>
All in all, an immensely enjoyable evening!
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=5b49f339-0698-4e90-b413-12a10fcde21e" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>SOA over Dinner</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,5b49f339-0698-4e90-b413-12a10fcde21e.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/04/20/SOAOverDinner.aspx</link>
      <pubDate>Fri, 20 Apr 2007 03:19:12 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
I had a chance to geek out over dinner with a couple of friends, Ken Laskey and Chris
Bashioum, as well as a colleague of theirs (Rob Mikula) from &lt;a href="http://www.mitre.org/"&gt;MITRE&lt;/a&gt;.
We got together to talk about SOA Governance since both Ken and Chris are fellow members
on the OASIS SOA-RM TC and the three of them team teach a SOA course at MITRE that
heavily leverages the SOA-RM. 
&lt;p&gt;
Unsurprisingly, the&amp;nbsp;conversation ranged across the board from SOA adoption, granularity
of services, performance impact of composite services and possible ways to mitigate
them, the role of the UDDI protocol, data model extensibility in Repositories, WS-Policy, &lt;a href="http://en.wikipedia.org/wiki/Consent_of_the_governed"&gt;Consent
of the Governed&lt;/a&gt; and how it applies to SOA Governance, the role of a Center of
Excellence in the adoption and operation of a SOA and more... :-) 
&lt;p&gt;
A discussion that we were having&amp;nbsp;also provided me with a way forward in something
that I've been struggling with regarding the &lt;a href="http://www.aniltj.com/blog/2007/04/11/TeachingSOA.aspx"&gt;SOA
course that I will be teaching for Johns Hopkins University&lt;/a&gt;. What type of project/exercise
work can the students work on for the class? What Ken, Chris and Rob do in their two
day class is to have their students work through a case study on integrating multiple
information systems using a SOA approach. Given that I have a semester's worth of
time, a case study with drill downs in specific and relevant areas running the gamut
from governance and requirements to actual implementation of services could be very
useful in driving home the lecture/discussion points while at the same time providing
me with a mechanism to gauge if the students are actually grokking the information.
Will have to give some serious thought on how to go about structuring this. 
&lt;p&gt;
All in all, an immensely enjoyable evening!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=5b49f339-0698-4e90-b413-12a10fcde21e" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,5b49f339-0698-4e90-b413-12a10fcde21e.aspx</comments>
      <category>Musings</category>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=6615bd9a-22af-46fa-9c74-5a6238d2ecd8</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,6615bd9a-22af-46fa-9c74-5a6238d2ecd8.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,6615bd9a-22af-46fa-9c74-5a6238d2ecd8.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=6615bd9a-22af-46fa-9c74-5a6238d2ecd8</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I will be teaching a graduate degree class on <em>Service Oriented Architecture</em> via
the <a href="http://www.epp.jhu.edu/">Johns Hopkins University's Engineering Programs
for Professionals</a>.  The exact date is uncertain, but I expect it to be either
in the Fall of this year or the Spring of next year. Here is the class description:
</p>
        <blockquote>
          <p>
            <strong>605.702 Service Oriented Architecture</strong>
          </p>
          <p>
          </p>
          <p>
This course will explore SOA concepts and design principles, interoperability standards,
security considerations as well as runtime and governance infrastructure for SOA implementations. 
</p>
          <p>
Web services will be used as an example of implementation technology for SOA and as
such, the exploration of runtime infrastructure will focus on standards based support
for SOA requirements in modern service platforms such as .NET/WCF and Java/Axis2,
the role of mediation systems such as XML Security Gateways and ESBs, as well as how
Registries, Repositories and Web Service Management capabilities map into an implementation
of a SOA. 
</p>
          <p>
Given its focus on shared capabilities, SOA involves more than technology. Therefore,
additional topics will include the impact of SOA on culture, organization, and governance.
</p>
        </blockquote>
        <p>
If you thought the <a href="http://docs.oasis-open.org/soa-rm/v1.0/soa-rm.html">definition
of SOA</a> sounded familiar, you would not be mistaken.
</p>
        <p>
I am really looking forward to teaching this class, if for no other reason that I
have found that in the process of teaching (or preparing and giving a presentation)
and interacting with the audience, I often learn a great deal as well.  Given
the rapid change in this topic area, this course more than likely will tend to
morph on a semester to semester basis as our shared understanding of what SOA is and
how best it can be implemented advance.
</p>
        <p>
          <strong>UPDATE</strong> (4/11/07): Course description was recently updated to be bit
more descriptive (or buzzword compliant - take your pick) :-)
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=6615bd9a-22af-46fa-9c74-5a6238d2ecd8" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Teaching SOA</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,6615bd9a-22af-46fa-9c74-5a6238d2ecd8.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/04/11/TeachingSOA.aspx</link>
      <pubDate>Wed, 11 Apr 2007 01:04:53 GMT</pubDate>
      <description>&lt;p&gt;
I will be teaching a graduate degree class on &lt;em&gt;Service Oriented Architecture&lt;/em&gt;&amp;nbsp;via
the &lt;a href="http://www.epp.jhu.edu/"&gt;Johns Hopkins University's Engineering Programs
for Professionals&lt;/a&gt;.&amp;nbsp; The exact date is uncertain, but I expect it to be either
in the Fall of this year or the Spring of next year. Here is the class description:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;605.702 Service Oriented Architecture&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
This course will explore SOA concepts and design principles, interoperability standards,
security considerations as well as runtime and governance infrastructure for SOA implementations. 
&lt;/p&gt;
&lt;p&gt;
Web services will be used as an example of implementation technology for SOA and as
such, the exploration of runtime infrastructure will focus on standards based support
for SOA requirements in modern service platforms such as .NET/WCF and Java/Axis2,
the role of mediation systems such as XML Security Gateways and ESBs, as well as how
Registries, Repositories and Web Service Management capabilities map into an implementation
of a SOA. 
&lt;/p&gt;
&lt;p&gt;
Given its focus on shared capabilities, SOA involves more than technology. Therefore,
additional topics will include the impact of SOA on culture, organization, and governance.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
If you thought the &lt;a href="http://docs.oasis-open.org/soa-rm/v1.0/soa-rm.html"&gt;definition
of SOA&lt;/a&gt; sounded familiar, you would not be mistaken.
&lt;/p&gt;
&lt;p&gt;
I am really looking forward to teaching this class, if for no other reason that I
have&amp;nbsp;found that in the process of teaching (or preparing and giving a presentation)
and interacting with the audience, I often learn a great deal as well.&amp;nbsp; Given
the rapid change&amp;nbsp;in this topic area, this course more than likely will tend to
morph on a semester to semester basis as our shared understanding of what SOA is and
how best it can be implemented advance.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;UPDATE&lt;/strong&gt; (4/11/07): Course description was recently updated to be bit
more descriptive (or buzzword compliant - take your pick) :-)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=6615bd9a-22af-46fa-9c74-5a6238d2ecd8" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,6615bd9a-22af-46fa-9c74-5a6238d2ecd8.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=7d7a6bc7-7acc-434d-b89a-4b9d119d3669</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,7d7a6bc7-7acc-434d-b89a-4b9d119d3669.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,7d7a6bc7-7acc-434d-b89a-4b9d119d3669.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=7d7a6bc7-7acc-434d-b89a-4b9d119d3669</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I recently came across <a title="The WSIT Tutorial" href="http://java.sun.com/webservices/interop/reference/tutorial/doc/index.html">this
resource from Sun</a>. According to the web site:
</p>
        <blockquote>
          <p>
            <em>This tutorial explains how to develop web applications using the Web Service Interoperability
Technologies (WSIT). The tutorial describes how, when, and why to use the WSIT technologies
and also describes the features and options that each technology supports. </em>
          </p>
          <p>
            <a>
              <em>
              </em>
            </a>
          </p>
          <p>
            <em>WSIT, developed by Sun Microsystems, implements several new web services technologies
including Security Policy, WS-Trust, WS-SecureConversation, Reliable Messaging, Data
Binding, Atomic Transactions, and Optimization. <strong>WSIT was also tested in a
joint effort by Sun Microsystems, Inc. and Microsoft with the expressed goal of ensuring
interoperability between web services applications developed using either WSIT and
the Windows Communication Foundation (WCF) product</strong>. </em>
          </p>
          <p>
            <em>[...]</em>
          </p>
          <p>
            <em>The Web Services Interoperability Technology Tutorial addresses the following
technology areas: </em>
          </p>
          <ul>
            <a>
            </a>
            <li>
              <em>Bootstrapping and Configuration</em>
            </li>
            <p>
              <a>
                <em>
                </em>
              </a>
            </p>
            <li>
              <em>Message Optimization </em>
            </li>
            <p>
              <a>
                <em>
                </em>
              </a>
            </p>
            <li>
              <em>Reliable Messaging (WS-RM)</em>
            </li>
            <p>
              <a>
                <em>
                </em>
              </a>
            </p>
            <li>
              <em>Web Services Security 1.1 (WS-Security)</em>
            </li>
            <p>
              <a>
                <em>
                </em>
              </a>
            </p>
            <li>
              <em>Web Services Trust (WS-Trust)</em>
            </li>
            <p>
              <a>
                <em>
                </em>
              </a>
            </p>
            <li>
              <em>Web Services Secure Conversation (WS-Secure Conversation)</em>
            </li>
            <p>
              <a>
                <em>
                </em>
              </a>
            </p>
            <li>
              <em>Data Contracts</em>
            </li>
            <p>
              <a>
                <em>
                </em>
              </a>
            </p>
            <li>
              <em>Atomic Transactions (WS-AT)</em>
            </li>
            <p>
              <a>
                <em>
                </em>
              </a>
            </p>
            <li>
              <em>SOAP/TCP</em>
            </li>
          </ul>
        </blockquote>
        <p>
This looks to be a rather good resource to learn about Web Service Interoperability
between Sun and Microsoft stacks using some of the advanced WS-* standards and specifications. 
The highlight above regarding the joint Sun/Microsoft testing is mine. <a title="The WSIT Tutorial" href="http://java.sun.com/webservices/interop/reference/tutorial/doc/index.html">Worth
checking out</a>.
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=7d7a6bc7-7acc-434d-b89a-4b9d119d3669" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Java Tutorial for Web Service Interoperability Technologies</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,7d7a6bc7-7acc-434d-b89a-4b9d119d3669.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/04/07/JavaTutorialForWebServiceInteroperabilityTechnologies.aspx</link>
      <pubDate>Sat, 07 Apr 2007 18:12:29 GMT</pubDate>
      <description>&lt;p&gt;
I recently came across &lt;a title="The WSIT Tutorial" href="http://java.sun.com/webservices/interop/reference/tutorial/doc/index.html"&gt;this
resource from Sun&lt;/a&gt;. According to the web site:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;This tutorial explains how to develop web applications using the Web Service Interoperability
Technologies (WSIT). The tutorial describes how, when, and why to use the WSIT technologies
and also describes the features and options that each technology supports. &lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a&gt;&lt;em&gt;&lt;/em&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;WSIT, developed by Sun Microsystems, implements several new web services technologies
including Security Policy, WS-Trust, WS-SecureConversation, Reliable Messaging, Data
Binding, Atomic Transactions, and Optimization. &lt;strong&gt;WSIT was also tested in a
joint effort by Sun Microsystems, Inc. and Microsoft with the expressed goal of ensuring
interoperability between web services applications developed using either WSIT and
the Windows Communication Foundation (WCF) product&lt;/strong&gt;. &lt;/em&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;[...]&lt;/em&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;The Web Services Interoperability Technology Tutorial addresses the following
technology areas: &lt;/em&gt; 
&lt;/p&gt;
&lt;ul&gt;
&lt;a&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;em&gt;Bootstrapping and Configuration&lt;/em&gt;
&lt;/li&gt;
&lt;p&gt;
&lt;a&gt;&lt;em&gt;&lt;/em&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;li&gt;
&lt;em&gt;Message Optimization &lt;/em&gt;
&lt;/li&gt;
&lt;p&gt;
&lt;a&gt;&lt;em&gt;&lt;/em&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;li&gt;
&lt;em&gt;Reliable Messaging (WS-RM)&lt;/em&gt;
&lt;/li&gt;
&lt;p&gt;
&lt;a&gt;&lt;em&gt;&lt;/em&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;li&gt;
&lt;em&gt;Web Services Security 1.1 (WS-Security)&lt;/em&gt;
&lt;/li&gt;
&lt;p&gt;
&lt;a&gt;&lt;em&gt;&lt;/em&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;li&gt;
&lt;em&gt;Web Services Trust (WS-Trust)&lt;/em&gt;
&lt;/li&gt;
&lt;p&gt;
&lt;a&gt;&lt;em&gt;&lt;/em&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;li&gt;
&lt;em&gt;Web Services Secure Conversation (WS-Secure Conversation)&lt;/em&gt;
&lt;/li&gt;
&lt;p&gt;
&lt;a&gt;&lt;em&gt;&lt;/em&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;li&gt;
&lt;em&gt;Data Contracts&lt;/em&gt;
&lt;/li&gt;
&lt;p&gt;
&lt;a&gt;&lt;em&gt;&lt;/em&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;li&gt;
&lt;em&gt;Atomic Transactions (WS-AT)&lt;/em&gt;
&lt;/li&gt;
&lt;p&gt;
&lt;a&gt;&lt;em&gt;&lt;/em&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;li&gt;
&lt;em&gt;SOAP/TCP&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
This looks to be a rather good resource to learn about&amp;nbsp;Web Service Interoperability
between Sun and Microsoft stacks using some of the advanced WS-* standards and specifications.&amp;nbsp;
The highlight above regarding&amp;nbsp;the joint Sun/Microsoft testing is mine. &lt;a title="The WSIT Tutorial" href="http://java.sun.com/webservices/interop/reference/tutorial/doc/index.html"&gt;Worth
checking out&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=7d7a6bc7-7acc-434d-b89a-4b9d119d3669" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,7d7a6bc7-7acc-434d-b89a-4b9d119d3669.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=5716191d-c6f6-4290-9ffb-70f077229216</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,5716191d-c6f6-4290-9ffb-70f077229216.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,5716191d-c6f6-4290-9ffb-70f077229216.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=5716191d-c6f6-4290-9ffb-70f077229216</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I had the opportunity today to give a presentation on <a title="OASIS SOA RM" href="http://docs.oasis-open.org/soa-rm/v1.0/soa-rm.html">SOA</a> and
its relationship to <a title="US DoD Net-Centric Data Strategy" href="http://www.dod.mil/cio-nii/docs/Net-Centric-Data-Strategy-2003-05-092.pdf">Net-Centricity</a> to
various folks in my organization. During the Q&amp;A session that followed the briefing,
there was a question regarding service versioning.
</p>
        <p>
Just to provide some context, in my briefing one of the items that I touched on is
the concept of Loose Coupling and how that enables the abstraction of interface from
implementation and gives a service provider the ability to change out their implementation
without affecting the service consumer. 
</p>
        <p>
To paraphrase the question "I have a service that is being used by
multiple parties, and I am changing the implementation of that service but not the
interface. (1) From a testing and certification perspective, what should I do? (2)
What mechanisms exist to communicate this change to all the folks who are using
my service?"
</p>
        <p>
The interesting variation that this particular question posed was that changing out
the implementation in this example was NOT about changing implementation technology
but changing the processing algorithms/business logic associated with the implementation.
</p>
        <p>
My answer to (1) was that if the algorithm/business logic change had the effect
of changing the expected result (as compared to the original implementation),
at that point I would consider this implementation to be a whole new service and would
consciously break the interface. For example, in the case of a web service implementation,
I would change/update the namespace of the schema such the it would break compatibility
with existing service consumers. I would also have to have this service be tested
and certified as though it was a new service.
</p>
        <p>
But before I do that, I would have to notify the consumers that are using my service
that I am about to make this change. Which relates to my answer to (2). AFAIK, at
present there is no standardized, automated way of notifying all existing service
consumers that I am about to change out my implementation. So in the current state
of technology, what I would have to do would be to set up a mechanism/process
as part of the original client provisioning on how I as a service provider would communicate
changes and updates of importance to my service consumers. 
</p>
        <p>
The example I pointed to was how Google implements its <a href="http://www.google.com/support/adwordsapi/bin/topic.py?topic=8400">AdWords
API versioning strategy</a>:
</p>
        <blockquote>
          <p>
            <em>The AdWords API supports multiple recent versions of the WSDL to allow developers
time to migrate to the most recent version. Once an earlier version of the WSDL has
been replaced by an updated version, the older version will be supported for four
months after the launch of the newer version. </em>
          </p>
          <p>
            <em>During this period, the AdWords API will continue to provide developer access
to and documentation support for any version dating back two months. </em>
          </p>
          <p>
            <em>You can tell which version of the WSDL you are accessing based on the access URL
namespace, which includes the version number. Versions are named with the letter 'v'
followed by whole numbers (v5, v6, etc.). </em>
          </p>
          <p>
            <em>The Release Notes summarizes changes between versions. In addition, new versions
and shutdowns of older version are announced via the AdWords API Blog. </em>
          </p>
          <p>
            <em>In addition to this documentation, whenever we release a new version of the AdWords
API, new versions and older version shutdowns will be announced via the AdWords API
Blog.</em>
          </p>
        </blockquote>
        <p>
In the above example, the communication mechanism is the AdWords API Blog
and it is incumbent upon service consumers to subscribe to it to keep updated on what
is going on with the API. And Google provides a 4 month window in which they run both
the old version and the new version side-by-side to give you time to move from one
to the other.
</p>
        <p>
But I have to admit that this is a situation that I have not personally run into (change
in implementation logic, no change in interface), so I am basing my answers on various
community best practices and conversations with folks who have had to do this. 
If you have run into this particular situation before, I would be very interested
in knowing how you handle this in your organization, especially any info you can share on
the governance policies and processes that you have put into place to communicate
upcoming changes.
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=5716191d-c6f6-4290-9ffb-70f077229216" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Service versioning best practice?</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,5716191d-c6f6-4290-9ffb-70f077229216.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/04/05/ServiceVersioningBestPractice.aspx</link>
      <pubDate>Thu, 05 Apr 2007 02:39:39 GMT</pubDate>
      <description>&lt;p&gt;
I had the opportunity today to give a presentation on &lt;a title="OASIS SOA RM" href="http://docs.oasis-open.org/soa-rm/v1.0/soa-rm.html"&gt;SOA&lt;/a&gt; and
its relationship to&amp;nbsp;&lt;a title="US DoD Net-Centric Data Strategy" href="http://www.dod.mil/cio-nii/docs/Net-Centric-Data-Strategy-2003-05-092.pdf"&gt;Net-Centricity&lt;/a&gt; to
various folks in my organization. During the Q&amp;amp;A session that followed the briefing,
there was a question regarding service versioning.
&lt;/p&gt;
&lt;p&gt;
Just to provide some context, in my briefing one of the items that I touched on is
the concept of Loose Coupling and how that enables the abstraction of interface from
implementation and gives a service provider the ability to change out their implementation
without affecting the service consumer. 
&lt;/p&gt;
&lt;p&gt;
To paraphrase the question&amp;nbsp;"I have&amp;nbsp;a service that is&amp;nbsp;being used by
multiple parties, and I am changing the implementation of that service but not the
interface. (1) From a testing and certification perspective, what should I do? (2)
What mechanisms exist&amp;nbsp;to communicate this change to all the folks who are using
my service?"
&lt;/p&gt;
&lt;p&gt;
The interesting variation that this particular question posed was that changing out
the implementation in this example was NOT about changing implementation technology
but changing the processing algorithms/business logic associated with the implementation.
&lt;/p&gt;
&lt;p&gt;
My answer to (1) was that if the algorithm/business logic&amp;nbsp;change had the effect
of changing&amp;nbsp;the expected result (as compared to the original implementation),
at that point I would consider this implementation to be a whole new service and would
consciously break the interface. For example, in the case of a web service implementation,
I would change/update the namespace of the schema such the it would break compatibility
with existing service consumers. I would&amp;nbsp;also have to have this service be tested
and certified as though it was a new service.
&lt;/p&gt;
&lt;p&gt;
But before I do that, I would have to notify the consumers that are using my service
that I am about to make this change. Which relates to my answer to (2). AFAIK, at
present there is no standardized, automated way of notifying all existing service
consumers that I am about to change out my implementation. So in the current state
of technology,&amp;nbsp;what&amp;nbsp;I would have to do would be&amp;nbsp;to set up&amp;nbsp;a mechanism/process
as part of the original client provisioning on how I as a service provider would communicate
changes and updates of importance&amp;nbsp;to my service consumers. 
&lt;/p&gt;
&lt;p&gt;
The example I pointed&amp;nbsp;to was&amp;nbsp;how Google implements its &lt;a href="http://www.google.com/support/adwordsapi/bin/topic.py?topic=8400"&gt;AdWords
API versioning strategy&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;The AdWords API supports multiple recent versions of the WSDL to allow developers
time to migrate to the most recent version. Once an earlier version of the WSDL has
been replaced by an updated version, the older version will be supported for four
months after the launch of the newer version. &lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;During this period, the AdWords API will continue to provide developer access
to and documentation support for any version dating back two months. &lt;/em&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;You can tell which version of the WSDL you are accessing based on the access URL
namespace, which includes the version number. Versions are named with the letter 'v'
followed by whole numbers (v5, v6, etc.). &lt;/em&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;The Release Notes summarizes changes between versions. In addition, new versions
and shutdowns of older version are announced via the AdWords API Blog. &lt;/em&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;In addition to this documentation, whenever we release a new version of the AdWords
API, new versions and older version shutdowns will be announced via the AdWords API
Blog.&lt;/em&gt; 
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
In&amp;nbsp;the above&amp;nbsp;example, the communication mechanism is the AdWords API Blog
and it is incumbent upon service consumers to subscribe to it to keep updated on what
is going on with the API. And Google provides a 4 month window in which they run both
the old version and the new version side-by-side to give you time to move from one
to the other.
&lt;/p&gt;
&lt;p&gt;
But I have to admit that this is a situation that I have not personally run into (change
in implementation logic, no change in interface), so I am basing my answers on various
community best practices and conversations with folks who have had to do this.&amp;nbsp;
If you have run into this particular situation before, I would be very interested
in knowing how you handle this in your organization, especially any info you can share&amp;nbsp;on
the governance&amp;nbsp;policies and processes that you have put into place to communicate
upcoming changes.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=5716191d-c6f6-4290-9ffb-70f077229216" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,5716191d-c6f6-4290-9ffb-70f077229216.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=632e651b-71b8-4f16-868b-4bcb0077dd04</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,632e651b-71b8-4f16-868b-4bcb0077dd04.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,632e651b-71b8-4f16-868b-4bcb0077dd04.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=632e651b-71b8-4f16-868b-4bcb0077dd04</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
There is an interesting article over at Thomas Earl's <a href="http://www.soamag.com/">SOA
Magazine</a> site by Cory Isaacson titled "<a title="High Performance SOA with Software Pipelines" href="http://www.soamag.com/I5/0307-1.asp">High
Performance SOA with Software Pipelines</a>". 
</p>
        <p>
          <img style="border-width: 0px; margin: 10px 0px 10px 10px;" alt="http://www.soamag.com/I5/0307-1.asp" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/ConcurrentComputingSOAandPerformanceEngi_CB30/Software_Pipelines11.png" align="right" border="0" height="257" width="411" />In
the article, Isaacson notes that "Distributed service-oriented applications, by their
nature, take advantage of multi-CPU and multi-server architectures. However, for software
applications to truly leverage multi-core platforms, they must be designed and implemented
with an approach that emphasizes concurrent processing".
</p>
        <p>
He identifies and explains current approaches to dealing with concurrency in
applications such as:
</p>
        <ul>
          <li>
            <strong>Symmetric Multi-Processing</strong> in which a SMP server operating system
manages the workload distribution across multiple CPUs. 
</li>
          <li>
            <strong>Automated Network Routing</strong> in which service requests are routed to
individual servers in a pool of redundant servers. 
</li>
          <li>
            <strong>Clustering Systems</strong> in which multiple servers share common resources
over a private "cluster interconnect". 
</li>
          <li>
            <strong>Grid Computing</strong> in which applications are divided into sub-tasks that
can execute independently. 
</li>
        </ul>
        <p>
... as well as the various limitations associated with the current approaches. He
also identifies a new approach, based on a methodology called <em>software pipelines</em>,
which can enable businesses to achieve the benefits of concurrent processing without
major redevelopment effort. I found it to be <a title="High Performance SOA with Software Pipelines" href="http://www.soamag.com/I5/0307-1.asp">fascinating
reading</a> as I personally have not done much work with multi-threaded applications
or grid computing. 
</p>
        <p>
As an aside, the challenges of programming for multi-core chips and how to make that
easier for the developer was a key theme in <a href="http://www.microsoft.com/presspass/exec/billg/speeches/2007/03-13MVPSummit.mspx">Bill
Gate's keynote address</a> at the recent <a title="Microsoft MVP Summit 2007 Recap" href="http://www.aniltj.com/blog/2007/03/17/MicrosoftMVPSummit2007Recap.aspx">Microsoft
MVP Summit</a>.
</p>
        <p>
          <img style="margin: 0px 0px 10px 10px;" alt="patterns and practices Perf and Scale" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/ConcurrentComputingSOAandPerformanceEngi_CB30/EngineeringforperfMSDN5.gif" align="right" height="318" width="368" />As <a title="Web Services and Performance" href="http://www.aniltj.com/blog/2007/02/11/WebServicesAndPerformance.aspx">I
have noted before</a>, performance engineering to me is something that should
be considered in an end to end manner.  Currently, in the web service world,
there are folks who are tackling this problems using hardware (e.g. XML Security Gateways)
and by using <a title="Binary XML, Web Services and Standards" href="http://www.aniltj.com/blog/2006/10/29/BinaryXMLWebServicesAndStandards.aspx">binary
encoding approaches</a>, but IMHO, not a lot of work being done to provide
best practices for optimizing the design of the services themselves. 
</p>
        <p>
An exception to the rule, and an excellent source of information on performance
engineering that I always point to, are the first three chapters in the <a href="http://msdn2.microsoft.com/en-us/library/ms998526.aspx">PAG
Perf &amp; Scale book</a>. So, for your reading pleasure, let me point to them once
more:
</p>
        <ul>
          <li>
            <a href="http://msdn2.microsoft.com/en-us/library/ms998534.aspx">Fundamentals of Engineering
for Performance</a>
          </li>
          <li>
            <a href="http://msdn2.microsoft.com/en-us/library/ms998537.aspx">Performance Modeling</a>
          </li>
          <li>
            <a href="http://msdn2.microsoft.com/en-us/library/ms998541.aspx">Design Guidelines
for Application Performance</a>
          </li>
        </ul>
        <p>
Just to be clear, it does not matter if you are in the .NET camp or the Java Camp
or any of the other language/platform camps, the information above is
equally applicable and relevant.
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=632e651b-71b8-4f16-868b-4bcb0077dd04" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Concurrent Computing, SOA and Performance Engineering</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,632e651b-71b8-4f16-868b-4bcb0077dd04.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/04/01/ConcurrentComputingSOAAndPerformanceEngineering.aspx</link>
      <pubDate>Sun, 01 Apr 2007 18:27:09 GMT</pubDate>
      <description>&lt;p&gt;
There is an interesting article over at Thomas Earl's &lt;a href="http://www.soamag.com/"&gt;SOA
Magazine&lt;/a&gt; site by Cory Isaacson titled "&lt;a title="High Performance SOA with Software Pipelines" href="http://www.soamag.com/I5/0307-1.asp"&gt;High
Performance SOA with Software Pipelines&lt;/a&gt;". 
&lt;/p&gt;
&lt;p&gt;
&lt;img style="border-width: 0px; margin: 10px 0px 10px 10px;" alt="http://www.soamag.com/I5/0307-1.asp" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/ConcurrentComputingSOAandPerformanceEngi_CB30/Software_Pipelines11.png" align="right" border="0" height="257" width="411"&gt;In
the article, Isaacson notes that "Distributed service-oriented applications, by their
nature, take advantage of multi-CPU and multi-server architectures. However, for software
applications to truly leverage multi-core platforms, they must be designed and implemented
with an approach that emphasizes concurrent processing".
&lt;/p&gt;
&lt;p&gt;
He&amp;nbsp;identifies and explains current approaches to dealing with concurrency in
applications such as:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Symmetric Multi-Processing&lt;/strong&gt; in which a SMP server operating system
manages the workload distribution across multiple CPUs. 
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automated Network Routing&lt;/strong&gt; in which service requests are routed to
individual servers in a pool of redundant servers. 
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clustering Systems&lt;/strong&gt; in which multiple servers share common resources
over a private "cluster interconnect". 
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Grid Computing&lt;/strong&gt; in which applications are divided into sub-tasks that
can execute independently. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
... as well as the various limitations associated with the current approaches. He
also identifies a new approach, based on a methodology called &lt;em&gt;software pipelines&lt;/em&gt;,
which can enable businesses to achieve the benefits of concurrent processing without
major redevelopment effort. I found it to be &lt;a title="High Performance SOA with Software Pipelines" href="http://www.soamag.com/I5/0307-1.asp"&gt;fascinating
reading&lt;/a&gt; as I personally have not done much work with multi-threaded applications
or grid computing. 
&lt;/p&gt;
&lt;p&gt;
As an aside, the challenges of programming for multi-core chips and how to make that
easier for the developer was a key theme in &lt;a href="http://www.microsoft.com/presspass/exec/billg/speeches/2007/03-13MVPSummit.mspx"&gt;Bill
Gate's keynote address&lt;/a&gt; at the recent &lt;a title="Microsoft MVP Summit 2007 Recap" href="http://www.aniltj.com/blog/2007/03/17/MicrosoftMVPSummit2007Recap.aspx"&gt;Microsoft
MVP Summit&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;img style="margin: 0px 0px 10px 10px;" alt="patterns and practices Perf and Scale" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/ConcurrentComputingSOAandPerformanceEngi_CB30/EngineeringforperfMSDN5.gif" align="right" height="318" width="368"&gt;As &lt;a title="Web Services and Performance" href="http://www.aniltj.com/blog/2007/02/11/WebServicesAndPerformance.aspx"&gt;I
have noted before&lt;/a&gt;, performance engineering to me&amp;nbsp;is something that should
be considered in an end to end manner.&amp;nbsp; Currently, in the web service world,
there are folks who are tackling this problems using hardware (e.g. XML Security Gateways)
and by&amp;nbsp;using &lt;a title="Binary XML, Web Services and Standards" href="http://www.aniltj.com/blog/2006/10/29/BinaryXMLWebServicesAndStandards.aspx"&gt;binary
encoding approaches&lt;/a&gt;,&amp;nbsp;but IMHO, not a lot of work being done&amp;nbsp;to provide
best practices for&amp;nbsp;optimizing the design of the services themselves. 
&lt;/p&gt;
&lt;p&gt;
An exception to the rule, and an&amp;nbsp;excellent source of information on performance
engineering that I always point to, are the first three chapters in the &lt;a href="http://msdn2.microsoft.com/en-us/library/ms998526.aspx"&gt;PAG
Perf &amp;amp; Scale book&lt;/a&gt;. So, for your reading pleasure, let me point to them once
more:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/ms998534.aspx"&gt;Fundamentals of Engineering
for Performance&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/ms998537.aspx"&gt;Performance Modeling&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/ms998541.aspx"&gt;Design Guidelines
for Application Performance&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Just to be clear, it does not matter if you are in the .NET camp or the Java Camp
or any of the other&amp;nbsp;language/platform&amp;nbsp;camps, the information above&amp;nbsp;is
equally applicable and relevant.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=632e651b-71b8-4f16-868b-4bcb0077dd04" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,632e651b-71b8-4f16-868b-4bcb0077dd04.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=2be55640-14ef-45fb-a69a-e4d0291da7ac</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,2be55640-14ef-45fb-a69a-e4d0291da7ac.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,2be55640-14ef-45fb-a69a-e4d0291da7ac.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=2be55640-14ef-45fb-a69a-e4d0291da7ac</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
One of the first things that is brought up when one talks of web services interoperability
is the <a href="http://www.ws-i.org/">Web Services Interoperability Organization</a> (WS-I)
and conformance to the WS-I basic profile, and how that ensures interoperability (Allrighty,
I am deliberately choosing not to talk about how WS-I punted on XML Schema profiling
and how you can build web services that are <a href="http://www.aniltj.com/blog/2005/07/20/SOAPBuildersDiscussionSummaryOnWebServicesInteroperabilityIssuesMarch2005.aspx">WS-I
basic profile compliant but NOT interoperable</a>). 
</p>
        <p>
Many folks have the impression that the WS-I is a standards organization. It is important
that it is not and that <a href="http://www.ws-i.org/about/Default.aspx">it is a coalition
of vendors</a>.  There is a rather <a href="http://appside.blogspot.com/2007/03/ws-i-and-transparency-wtf.html">interesting
blog post by Erik Johnson</a>, the former chair of the WS-I XML Schema Planning Working
Group, that sheds some light on some of the internal processes at this organization.
</p>
        <p>
As someone who is actively involved in the standards work that is going on at <a href="http://www.oasis-open.org/">OASIS</a>,
it is always fascinating for me to get insight into how other organizations work
with specifications and standards in the SOA and Web Services space.
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=2be55640-14ef-45fb-a69a-e4d0291da7ac" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>WS-I is not a standards organization</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,2be55640-14ef-45fb-a69a-e4d0291da7ac.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/04/01/WSIIsNotAStandardsOrganization.aspx</link>
      <pubDate>Sun, 01 Apr 2007 02:21:06 GMT</pubDate>
      <description>&lt;p&gt;
One of the first things that is brought up when one talks of web services interoperability
is the &lt;a href="http://www.ws-i.org/"&gt;Web Services Interoperability Organization&lt;/a&gt; (WS-I)
and conformance to the WS-I basic profile, and how that ensures interoperability (Allrighty,
I am deliberately choosing not&amp;nbsp;to talk about how WS-I punted on XML Schema profiling
and how you can build web services that are &lt;a href="http://www.aniltj.com/blog/2005/07/20/SOAPBuildersDiscussionSummaryOnWebServicesInteroperabilityIssuesMarch2005.aspx"&gt;WS-I
basic profile compliant but NOT interoperable&lt;/a&gt;). 
&lt;/p&gt;
&lt;p&gt;
Many folks have the impression that the WS-I is a standards organization. It is important
that it is not and that &lt;a href="http://www.ws-i.org/about/Default.aspx"&gt;it is a coalition
of vendors&lt;/a&gt;.&amp;nbsp; There is a rather &lt;a href="http://appside.blogspot.com/2007/03/ws-i-and-transparency-wtf.html"&gt;interesting
blog post by Erik Johnson&lt;/a&gt;, the former chair of the WS-I XML Schema Planning Working
Group, that sheds some light on some of the internal processes at this organization.
&lt;/p&gt;
&lt;p&gt;
As someone who is actively involved in the standards work that is going on at &lt;a href="http://www.oasis-open.org/"&gt;OASIS&lt;/a&gt;,
it is always fascinating for me to get insight into how other organizations&amp;nbsp;work
with specifications and standards in the SOA and Web Services space.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=2be55640-14ef-45fb-a69a-e4d0291da7ac" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,2be55640-14ef-45fb-a69a-e4d0291da7ac.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=926afb7a-1646-4ed5-805f-e1f8ab7b071e</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,926afb7a-1646-4ed5-805f-e1f8ab7b071e.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,926afb7a-1646-4ed5-805f-e1f8ab7b071e.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=926afb7a-1646-4ed5-805f-e1f8ab7b071e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Patterns are your friends. Patterns keep you from having to reinvent the wheel and
it allows you to leverage best practices. Patterns provide a common vocabulary that
can be used to share information between folks who often come from different
backgrounds. I like patterns! 
</p>
        <p>
I was one of the external reviewers for the <a href="http://msdn2.microsoft.com/en-us/library/aa480545.aspx">PAG
book on Web Service Security Patterns,</a> so using a pattern based approach is
something that I am very much following as part of the design and deployment of a
SOA runtime infrastructure.  
</p>
        <p>
Yesterday, a colleague and I were discussing one of the design decisions we made in
configuring our environment to enable access for external applications and services
to web services within our private network. The enjoyable part of the conversation
for me was in using a pattern as a common mechanism of communication to discuss the
rationale for the decision, given that our backgrounds are a bit different (He comes
from the Network/Comms background and I from the AppDev side).
</p>
        <p>
In particular, the pattern that we used in this instance is the <a href="http://msdn2.microsoft.com/en-us/library/aa480606.aspx">Perimeter
Service Router Pattern</a>. Here is a bit of detail on the pattern (follow the link
for complete info):
</p>
        <p>
          <strong>
            <em>Context</em>
          </strong>
        </p>
        <p>
          <em>
            <img style="border: 0px none ; margin: 0px 0px 10px 10px;" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/DesignPatternsandSOARuntimeInfrastructur_108AB/Perimeter_Service_Router%5B4%5D.png" align="right" border="0" height="317" width="411" /> External
applications require access to one or more Web services that are deployed within a
private network. Access to the Web services and resources in the private network is
restricted to authenticated users. External applications should not have access to
resources used by the Web services in the private network.</em>
        </p>
        <p>
          <strong>
            <em>Problem</em>
          </strong>
        </p>
        <p>
          <em>How do you make Web services in a private network available to external applications
without exposing resources in the private network? </em>
        </p>
        <p>
          <strong>
            <em>Forces</em>
          </strong>
        </p>
        <p>
          <em>Any of the following conditions justifies using the solution described in this
pattern: </em>
        </p>
        <ul>
          <li>
            <em>Internal Web services and dependent resources may be targeted by attackers who
are external to the network. The organization must protect Web services on the internal
network, so that any attacks do not affect the internal Web services or dependent
resources.</em>
          </li>
          <li>
            <em>Attackers can gain information about the internal network, and use it to compromise
the network. The organization must not reveal information about the internal network
infrastructure that can be useful to attackers.</em>
          </li>
        </ul>
        <p>
          <em>The following condition is an additional reason to use the solution: </em>
        </p>
        <ul>
          <li>
            <em>External clients need reliable access to fixed service endpoints. The location
of a Web service's internal implementation may need to change dynamically to cater
for the availability of dependent resources, or to cater for maintenance and batch
processing windows. External clients should be unaffected by these changes.<br /></em>
          </li>
        </ul>
        <p>
          <strong>
            <em>Solution</em>
          </strong>
        </p>
        <p>
          <em>Design a Web service intermediary that acts as a perimeter service router. The
perimeter service router provides an external interface on the perimeter network for
internal Web services. It accepts messages from external applications and routes them
to the appropriate Web service on the private network.</em>
        </p>
        <p>
The realization of this pattern for us was NOT in software but in hardware. We used
a XML Security Gateway as the realization of the Perimeter Service Router pattern.
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=926afb7a-1646-4ed5-805f-e1f8ab7b071e" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Design Patterns and SOA Runtime Infrastructure</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,926afb7a-1646-4ed5-805f-e1f8ab7b071e.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/03/23/DesignPatternsAndSOARuntimeInfrastructure.aspx</link>
      <pubDate>Fri, 23 Mar 2007 22:49:11 GMT</pubDate>
      <description>&lt;p&gt;
Patterns are your friends. Patterns keep you from having to reinvent the wheel and
it allows you to leverage best practices. Patterns provide a common vocabulary that
can be used&amp;nbsp;to share information between folks who often come from different
backgrounds.&amp;nbsp;I like patterns! 
&lt;/p&gt;
&lt;p&gt;
I was one of the external reviewers for the &lt;a href="http://msdn2.microsoft.com/en-us/library/aa480545.aspx"&gt;PAG
book on Web Service Security Patterns,&lt;/a&gt; so using a pattern based approach&amp;nbsp;is
something that I am very much following as part of the design and deployment of a
SOA runtime infrastructure.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Yesterday, a colleague and I were discussing one of the design decisions we made in
configuring our environment to enable access for external applications and services
to web services within our private network. The enjoyable part of the conversation
for me was in using a pattern as a common mechanism of communication to discuss the
rationale for the decision, given that our backgrounds are a bit different (He comes
from the Network/Comms background and I from the AppDev side).
&lt;/p&gt;
&lt;p&gt;
In particular, the pattern that we used in this instance&amp;nbsp;is&amp;nbsp;the &lt;a href="http://msdn2.microsoft.com/en-us/library/aa480606.aspx"&gt;Perimeter
Service Router Pattern&lt;/a&gt;. Here is a bit of detail on the pattern (follow the link
for complete info):
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;Context&lt;/em&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;img style="border: 0px none ; margin: 0px 0px 10px 10px;" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/DesignPatternsandSOARuntimeInfrastructur_108AB/Perimeter_Service_Router%5B4%5D.png" align="right" border="0" height="317" width="411"&gt; External
applications require access to one or more Web services that are deployed within a
private network. Access to the Web services and resources in the private network is
restricted to authenticated users. External applications should not have access to
resources used by the Web services in the private network.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;Problem&lt;/em&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;How do you make Web services in a private network available to external applications
without exposing resources in the private network? &lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;Forces&lt;/em&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Any of the following conditions justifies using the solution described in this
pattern:&amp;nbsp;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Internal Web services and dependent resources may be targeted by attackers who
are external to the network. The organization must protect Web services on the internal
network, so that any attacks do not affect the internal Web services or dependent
resources.&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Attackers can gain information about the internal network, and use it to compromise
the network. The organization must not reveal information about the internal network
infrastructure that can be useful to attackers.&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;em&gt;The following condition is an additional reason to use the solution: &lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;External clients need reliable access to fixed service endpoints. The location
of a Web service's internal implementation may need to change dynamically to cater
for the availability of dependent resources, or to cater for maintenance and batch
processing windows. External clients should be unaffected by these changes.&lt;br&gt;
&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;Solution&lt;/em&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Design a Web service intermediary that acts as a perimeter service router. The
perimeter service router provides an external interface on the perimeter network for
internal Web services. It accepts messages from external applications and routes them
to the appropriate Web service on the private network.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
The realization of this pattern for us was NOT in software but in hardware. We used
a XML Security Gateway as the realization of the Perimeter Service Router pattern.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=926afb7a-1646-4ed5-805f-e1f8ab7b071e" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,926afb7a-1646-4ed5-805f-e1f8ab7b071e.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=5e836298-05dc-4b17-ad58-090f0ff79db8</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,5e836298-05dc-4b17-ad58-090f0ff79db8.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,5e836298-05dc-4b17-ad58-090f0ff79db8.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=5e836298-05dc-4b17-ad58-090f0ff79db8</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I, along with <a href="http://www.biske.com/blog/">Todd Biske</a> and some other
folks, were recently interviewed by <a href="http://www.windley.org/">Phil Windley</a> for
an article on SOA and Governance which will be published in the March 5th print
issue of <a href="http://www.infoworld.com/">InfoWorld</a>. A lot of my thinking
in this area has been influenced by a combination of my background in operational
IT, my current work in the SOA space as well as my participation in the
standards process as a member of the OASIS SOA-RM TC. 
</p>
        <p>
Do read the "<a href="http://www.infoworld.com/article/07/03/05/10FEcollabgov_1.html?source=NLC-SOA&amp;cgd=2007-03-08">Teaming
up for SOA</a>" article and let me know what you think.
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=5e836298-05dc-4b17-ad58-090f0ff79db8" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>SOA and Governance article in InfoWorld</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,5e836298-05dc-4b17-ad58-090f0ff79db8.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/03/07/SOAAndGovernanceArticleInInfoWorld.aspx</link>
      <pubDate>Wed, 07 Mar 2007 04:39:45 GMT</pubDate>
      <description>&lt;p&gt;
I,&amp;nbsp;along with &lt;a href="http://www.biske.com/blog/"&gt;Todd Biske&lt;/a&gt; and&amp;nbsp;some&amp;nbsp;other
folks,&amp;nbsp;were recently interviewed by &lt;a href="http://www.windley.org/"&gt;Phil Windley&lt;/a&gt; for
an article on SOA and Governance&amp;nbsp;which will be published in the March 5th print
issue of &lt;a href="http://www.infoworld.com/"&gt;InfoWorld&lt;/a&gt;.&amp;nbsp;A lot of my thinking
in this area has been influenced by a combination of my background in operational
IT, my current work in the SOA space&amp;nbsp;as well as my&amp;nbsp;participation in the
standards process as a member of the OASIS SOA-RM TC.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Do read the "&lt;a href="http://www.infoworld.com/article/07/03/05/10FEcollabgov_1.html?source=NLC-SOA&amp;amp;cgd=2007-03-08"&gt;Teaming
up for SOA&lt;/a&gt;" article and let me know what you think.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=5e836298-05dc-4b17-ad58-090f0ff79db8" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,5e836298-05dc-4b17-ad58-090f0ff79db8.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=f6242c01-bee5-4033-902c-77a8353ae65c</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,f6242c01-bee5-4033-902c-77a8353ae65c.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,f6242c01-bee5-4033-902c-77a8353ae65c.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=f6242c01-bee5-4033-902c-77a8353ae65c</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I recently had the opportunity to look at some of the details of <img style="border: 0px none ; margin: 10px 0px 0px 10px;" alt="WSRP v1 WSDL Interfaces" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/UniformInterfaceintheSOAPWorld_BD84/WSRP_v1_WSDL%5B4%5D.png" align="right" border="0" height="448" width="470" /><a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrp">Web
Services for Remote Portlets (WSRP)</a>, which is a web services protocol for
aggregating content and interactive web applications from remote sources.  As
an aside, if you are interested in a quick tutorial, I would recommend the <a title="OASIS WSRP TC's Web Services for Remote Portlets 1.0 Primer" href="http://www.oasis-open.org/committees/download.php/21178/wsrp-primer-1.0.html">OASIS
WSRP TC's Web Services for Remote Portlets 1.0 Primer</a>.
</p>
        <p>
The interesting thing with this standard is that it is built on top of a
few fundamental standards such as XML, SOAP and WSDL. But with WSRP, every single
web service has the same set of operations (See graphic).
</p>
        <p>
This is very similar to the REST architectural constraint of uniform interfaces,
which means that all resources present the same interface to clients. As noted in <a href="http://www.aniltj.com/blog/2007/01/04/REST101ForSOAPeople.aspx">Steve's
excellent REST Article</a>:
</p>
        <blockquote>
          <p>
"<em>A significant advantage of the uniform interface constraint lies in the area
of scalability. For a client to correctly interact with a SOA service, it must understand
the specifics of both that service’s interface contract and data contract. But for
a client to invoke a REST service, it must understand only that service’s specific
data contract: the interface contract is uniform for all services.</em>"
</p>
        </blockquote>
        <p>
To apply this to WSRP, both the <a href="http://www.oasis-open.org/committees/wsrp/specifications/version1/wsrp_v1_interfaces.wsdl">interface
contract</a> and the <a href="http://www.oasis-open.org/committees/wsrp/specifications/version1/wsrp_v1_types.xsd">data
contract</a> are uniform for all WSRP services, and as such the consumer
of the WSRP service is a generic construct. For example, pretty much all of the major
portal implementations supply, at a minimum, a WSRP consumer portlet that can bring
in a remote WSRP service without any coding. 
</p>
        <p>
While I understand that REST is about more than uniform interfaces, wonder what the
REST folks would have to say about WSRP.
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=f6242c01-bee5-4033-902c-77a8353ae65c" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Uniform Interface in the SOAP World?</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,f6242c01-bee5-4033-902c-77a8353ae65c.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/02/25/UniformInterfaceInTheSOAPWorld.aspx</link>
      <pubDate>Sun, 25 Feb 2007 18:28:39 GMT</pubDate>
      <description>&lt;p&gt;
I recently had the opportunity to look at some of the details of &lt;img style="border: 0px none ; margin: 10px 0px 0px 10px;" alt="WSRP v1 WSDL Interfaces" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/UniformInterfaceintheSOAPWorld_BD84/WSRP_v1_WSDL%5B4%5D.png" align="right" border="0" height="448" width="470"&gt;&lt;a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrp"&gt;Web
Services for Remote Portlets (WSRP)&lt;/a&gt;, which&amp;nbsp;is a web services protocol for
aggregating content and interactive web applications from remote sources.&amp;nbsp; As
an aside, if you are interested in a quick tutorial, I would recommend the &lt;a title="OASIS WSRP TC's Web Services for Remote Portlets 1.0 Primer" href="http://www.oasis-open.org/committees/download.php/21178/wsrp-primer-1.0.html"&gt;OASIS
WSRP TC's Web Services for Remote Portlets 1.0 Primer&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
The interesting thing with this standard is that it is built&amp;nbsp;on top of&amp;nbsp;a
few fundamental standards such as XML, SOAP and WSDL. But with WSRP, every single
web service has the same set of operations (See graphic).
&lt;/p&gt;
&lt;p&gt;
This&amp;nbsp;is very similar to the REST architectural constraint of uniform interfaces,
which means that all resources present the same interface to clients. As noted in &lt;a href="http://www.aniltj.com/blog/2007/01/04/REST101ForSOAPeople.aspx"&gt;Steve's
excellent REST Article&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
"&lt;em&gt;A significant advantage of the uniform interface constraint lies in the area
of scalability. For a client to correctly interact with a SOA service, it must understand
the specifics of both that service’s interface contract and data contract. But for
a client to invoke a REST service, it must understand only that service’s specific
data contract: the interface contract is uniform for all services.&lt;/em&gt;"
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
To apply this to WSRP, both the&amp;nbsp;&lt;a href="http://www.oasis-open.org/committees/wsrp/specifications/version1/wsrp_v1_interfaces.wsdl"&gt;interface
contract&lt;/a&gt;&amp;nbsp;and the &lt;a href="http://www.oasis-open.org/committees/wsrp/specifications/version1/wsrp_v1_types.xsd"&gt;data
contract&lt;/a&gt; are&amp;nbsp;uniform for all WSRP services, and as such&amp;nbsp;the consumer
of the WSRP service is a generic construct. For example, pretty much all of the major
portal implementations supply, at a minimum, a WSRP consumer portlet that can bring
in a remote&amp;nbsp;WSRP service without any coding. 
&lt;/p&gt;
&lt;p&gt;
While I understand that REST is about more than uniform interfaces, wonder what the
REST folks would have to say about WSRP.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=f6242c01-bee5-4033-902c-77a8353ae65c" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,f6242c01-bee5-4033-902c-77a8353ae65c.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=320eee25-d4cc-4843-9f6e-7b9c3a60c8a7</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,320eee25-d4cc-4843-9f6e-7b9c3a60c8a7.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,320eee25-d4cc-4843-9f6e-7b9c3a60c8a7.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=320eee25-d4cc-4843-9f6e-7b9c3a60c8a7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
It would appear that <a href="http://www.reactivity.com/">Reactivity</a>, makers of
XML Security Gateway products and one of the few remaining independent companies in
the SOA infrastructure arena, is in <a href="http://newsroom.cisco.com/dlls/2007/corp_022107.html">the
process of being acquired by Cisco</a>.
</p>
        <p>
Given Cisco's traditional strengths as well as its SONA (Service-Oriented Network
Architecture) efforts, I wonder if this acquisition will speed the <a href="http://www.aniltj.com/blog/2007/01/07/UnifiedViewOfEnterpriseManagement.aspx">convergence
of management capabilities</a> that span both the <a href="http://www.aniltj.com/blog/2007/02/18/QualityOfServiceAndWebServices.aspx">services
and the network layers</a>.
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=320eee25-d4cc-4843-9f6e-7b9c3a60c8a7" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Reactivity and Cisco - Another consolidation in the SOA infrastructure space</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,320eee25-d4cc-4843-9f6e-7b9c3a60c8a7.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/02/22/ReactivityAndCiscoAnotherConsolidationInTheSOAInfrastructureSpace.aspx</link>
      <pubDate>Thu, 22 Feb 2007 02:03:52 GMT</pubDate>
      <description>&lt;p&gt;
It would appear that &lt;a href="http://www.reactivity.com/"&gt;Reactivity&lt;/a&gt;, makers of
XML Security Gateway products and one of the few remaining independent companies in
the SOA infrastructure arena, is in &lt;a href="http://newsroom.cisco.com/dlls/2007/corp_022107.html"&gt;the
process of being acquired by Cisco&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Given Cisco's traditional strengths as well as its SONA (Service-Oriented Network
Architecture) efforts, I wonder if this acquisition will speed the &lt;a href="http://www.aniltj.com/blog/2007/01/07/UnifiedViewOfEnterpriseManagement.aspx"&gt;convergence
of management capabilities&lt;/a&gt; that span both the &lt;a href="http://www.aniltj.com/blog/2007/02/18/QualityOfServiceAndWebServices.aspx"&gt;services
and the network layers&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=320eee25-d4cc-4843-9f6e-7b9c3a60c8a7" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,320eee25-d4cc-4843-9f6e-7b9c3a60c8a7.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=d3212597-966d-4736-af22-45cc96472626</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,d3212597-966d-4736-af22-45cc96472626.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,d3212597-966d-4736-af22-45cc96472626.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=d3212597-966d-4736-af22-45cc96472626</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I was reading through the research article "<a href="http://doi.ieeecomputersociety.org/10.1109/MC.2007.41">Adaptive
QoS for Mobile Web Services through Cross-Layer Communication</a>" in the current
issue of IEEE Computer Magazine in which the authors are proposing something called
WS-QoS framework, which is an approach to unify Quality of Service (QoS) for
web services across transport, computing and app layers.  It is an interesting
read.
</p>
        <p>
Per the article, the discovery, selection and invocation process consists, at a high
level, of :
</p>
        <ol>
          <li>
Service Provider registers with a UDDI based registry. Each service has a unique interface
key. 
</li>
          <li>
Potential Service Consumer queries an "<em>offer broker</em>" (This is a new
entity in the mix) for services that match a specific interface key AND
QoS requirements 
</li>
          <li>
The offer broker acts as the middle man in identifying the "best match" between
the QoS requirements of the Service Consumer and potential Service Providers who are
registered in the UDDI based registry. 
</li>
          <li>
The Service Consumer directly invokes the identified best match Service Provider.</li>
        </ol>
        <p>
The manner in which QoS is codified is based on a specific XML Schema .
</p>
        <p>
For example, for the Transport Segment you could have something like:
</p>
        <blockquote>
          <pre class="csharpcode">
            <span class="kwrd">&lt;</span>
            <span class="html">operationQoSInfo</span>
            <span class="attr">name</span>
            <span class="kwrd">="myOperation"</span>
            <span class="kwrd">&gt;</span> ... <span class="kwrd">&lt;</span><span class="html">transportQoSPriorities</span><span class="kwrd">&gt;</span><span class="kwrd">&lt;</span><span class="html">delay</span><span class="kwrd">&gt;</span>5<span class="kwrd">&lt;/</span><span class="html">delay</span><span class="kwrd">&gt;</span><span class="kwrd">&lt;</span><span class="html">jitter</span><span class="kwrd">&gt;</span>3<span class="kwrd">&lt;/</span><span class="html">jitter</span><span class="kwrd">&gt;</span> .... <span class="kwrd">&lt;/</span><span class="html">transportQoSPriorities</span><span class="kwrd">&gt;</span> ... <span class="kwrd">&lt;/</span><span class="html">operationQoSInfo</span><span class="kwrd">&gt;</span></pre>
        </blockquote>
        <p>
          <span class="kwrd">
          </span> For Servers it could be:
</p>
        <blockquote>
          <pre class="csharpcode">
            <span class="kwrd">&lt;</span>
            <span class="html">serverQoSMetrics</span>
            <span class="kwrd">&gt;</span> ... <span class="kwrd">&lt;</span><span class="html">requestsPerSecond</span><span class="kwrd">&gt;</span>30<span class="kwrd">&lt;/</span><span class="html">requestsPerSecond</span><span class="kwrd">&gt;</span> ... <span class="kwrd">&lt;/</span><span class="html">serverQoSMetrics</span><span class="kwrd">&gt;</span></pre>
        </blockquote>
        <p>
And at the App Layer you could have something that codifies facets like compression
and decompression and other items.
</p>
        <p>
As a thought exercise, given that the point of using web services is all about interoperability,
I went through what would need to happen from the standards and vendor support to
make all this real.
</p>
        <ol>
          <li>
Given the amount of work going on around WS-Policy, wrap up the QoS information as
a domain policy language for QoS under the WS-Policy umbrella</li>
          <li>
The direct integration of the "offer broker" functionality into the Registry/Repository</li>
          <li>
Built in support from the networking vendors that can map the codified policies
into the appropriate technology specific network mechanism such as priorities
for expedited forwarding, assured forwarding, best-effort etc.</li>
          <li>
Built in support from the server OS vendors that can map the codified policies into
server performance levels. And given that a lot of folks are using virtualization
in their computing tier, support from those folks as well.</li>
          <li>
Last but not least, agreement and profiling of the specification(s) between all of
the web service stack vendors.</li>
        </ol>
        <p>
I am sure that I have grossly over-simplified a lot of things in the above and probably
gotten some of it completely wrong. But the essence remains. Beyond this being
a technically challenging problem, there needs to be significant amount of agreement
between a lot of vendors as well as the incorporation of a variety of these technologies
into the various product sets (Vendor Politics, Oh My!). 
</p>
        <p>
It is going to be a while! &lt;sigh&gt;
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=d3212597-966d-4736-af22-45cc96472626" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Quality of Service and Web Services</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,d3212597-966d-4736-af22-45cc96472626.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/02/18/QualityOfServiceAndWebServices.aspx</link>
      <pubDate>Sun, 18 Feb 2007 18:13:27 GMT</pubDate>
      <description>&lt;p&gt;
I was reading through the research article "&lt;a href="http://doi.ieeecomputersociety.org/10.1109/MC.2007.41"&gt;Adaptive
QoS for Mobile Web Services through Cross-Layer Communication&lt;/a&gt;" in the current
issue of IEEE Computer Magazine in which the authors are proposing something called
WS-QoS framework, which&amp;nbsp;is an approach to unify Quality of Service (QoS) for
web services across transport, computing and app layers.&amp;nbsp; It is an interesting
read.
&lt;/p&gt;
&lt;p&gt;
Per the article, the discovery, selection and invocation process consists, at a high
level, of&amp;nbsp;:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Service Provider registers with a UDDI based registry. Each service has a unique interface
key. 
&lt;/li&gt;
&lt;li&gt;
Potential Service Consumer queries an "&lt;em&gt;offer broker&lt;/em&gt;"&amp;nbsp;(This is a new
entity in the mix) for services that match&amp;nbsp;a specific&amp;nbsp;interface key AND
QoS requirements 
&lt;/li&gt;
&lt;li&gt;
The offer broker acts as the middle man in identifying&amp;nbsp;the "best match" between
the QoS requirements of the Service Consumer and potential Service Providers who are
registered in the UDDI based registry. 
&lt;/li&gt;
&lt;li&gt;
The Service Consumer directly invokes the identified best match Service Provider.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
The manner in which QoS is codified is based on a specific XML Schema .
&lt;/p&gt;
&lt;p&gt;
For example, for the Transport Segment you could have something like:
&lt;/p&gt;
&lt;blockquote&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;operationQoSInfo&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="myOperation"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; ... &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;transportQoSPriorities&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;delay&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;5&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;delay&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;jitter&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;3&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;jitter&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; .... &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;transportQoSPriorities&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; ... &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;operationQoSInfo&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/blockquote&gt; 
&lt;p&gt;
&lt;span class="kwrd"&gt;&lt;/span&gt;&amp;nbsp;For Servers it could be:
&lt;/p&gt;
&lt;blockquote&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;serverQoSMetrics&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; ... &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;requestsPerSecond&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;30&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;requestsPerSecond&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; ... &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;serverQoSMetrics&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
And at the App Layer you could have something that codifies facets&amp;nbsp;like compression
and decompression and other items.
&lt;/p&gt;
&lt;p&gt;
As a thought exercise, given that the point of using web services is all about interoperability,
I went through what would need to happen from the standards and vendor support to
make all this real.
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Given the amount of work going on around WS-Policy, wrap up the QoS information as
a domain policy language for QoS under the WS-Policy umbrella&lt;/li&gt;
&lt;li&gt;
The direct integration of the "offer broker" functionality into the Registry/Repository&lt;/li&gt;
&lt;li&gt;
Built in support from the networking vendors&amp;nbsp;that can map the codified policies
into the appropriate technology specific network mechanism&amp;nbsp;such as&amp;nbsp;priorities
for expedited forwarding, assured forwarding, best-effort etc.&lt;/li&gt;
&lt;li&gt;
Built in support from the server OS vendors that can map the codified policies into
server performance levels. And given that a lot of folks are&amp;nbsp;using virtualization
in their computing tier, support from those folks as well.&lt;/li&gt;
&lt;li&gt;
Last but not least, agreement and profiling of the specification(s) between all of
the web service stack vendors.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
I am sure that I have grossly over-simplified a lot of things in the above and probably
gotten some of it completely wrong. But the essence remains. Beyond&amp;nbsp;this being
a technically challenging problem, there needs to be significant amount of agreement
between a lot of vendors as well as the incorporation of a variety of these technologies
into the various product sets (Vendor Politics, Oh My!). 
&lt;/p&gt;
&lt;p&gt;
It is going to be a while! &amp;lt;sigh&amp;gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=d3212597-966d-4736-af22-45cc96472626" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,d3212597-966d-4736-af22-45cc96472626.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=99f9c759-36ce-40bf-8617-a5aeb08e6e02</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,99f9c759-36ce-40bf-8617-a5aeb08e6e02.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,99f9c759-36ce-40bf-8617-a5aeb08e6e02.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=99f9c759-36ce-40bf-8617-a5aeb08e6e02</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
via <a href="http://blogs.cocoondev.org/dims/">Dims</a>:
</p>
        <blockquote>
          <p>
"For a while now, we've been building up a Stack comparison page at the Apache WS
Wiki site:<br /><a href="http://wiki.apache.org/ws/StackComparison">http://wiki.apache.org/ws/StackComparison</a></p>
          <p>
Yes, You can edit it and update existing information on that page. Just click on the
link at the top right corner and create an account for yourself ......"
</p>
        </blockquote>
        <p>
Not a complete listing by any means (In particular it is currently missing the
WCF/.NET 1.1/2.0 as well as the stacks from BEA and IBM), but a good starting point,
especially if you are interested in the Open Source Web Service stacks.
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=99f9c759-36ce-40bf-8617-a5aeb08e6e02" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Comparison of Web Services Stacks</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,99f9c759-36ce-40bf-8617-a5aeb08e6e02.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/02/16/ComparisonOfWebServicesStacks.aspx</link>
      <pubDate>Fri, 16 Feb 2007 14:31:31 GMT</pubDate>
      <description>&lt;p&gt;
via &lt;a href="http://blogs.cocoondev.org/dims/"&gt;Dims&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
"For a while now, we've been building up a Stack comparison page at the Apache WS
Wiki site:&lt;br&gt;
&lt;a href="http://wiki.apache.org/ws/StackComparison"&gt;http://wiki.apache.org/ws/StackComparison&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Yes, You can edit it and update existing information on that page. Just click on the
link at the top right corner and create an account for yourself ......"
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Not a complete listing by any means (In particular it&amp;nbsp;is currently missing the
WCF/.NET 1.1/2.0 as well as the stacks from BEA and IBM), but a good starting point,
especially if you are interested in the Open Source Web Service stacks.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=99f9c759-36ce-40bf-8617-a5aeb08e6e02" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,99f9c759-36ce-40bf-8617-a5aeb08e6e02.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=6df3ef2c-26bc-4171-b457-8a77eae7a424</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,6df3ef2c-26bc-4171-b457-8a77eae7a424.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,6df3ef2c-26bc-4171-b457-8a77eae7a424.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=6df3ef2c-26bc-4171-b457-8a77eae7a424</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Both Paul Fremantle in the <a href="http://www.aniltj.com/blog/2007/02/11/WebServicesAndPerformance.aspx">comments
on my previous entry</a> and Sanjiva Weerawarana in <a href="http://www.bloglines.com/blog/sanjiva?id=180">his
blog entry</a> confirm that the option of moving away from serialization to handling
the raw XML messaging is something that was designed into the Axis2 core but
was not something that the majority of developers seem to be comfortable with. Very
much appreciate the information. Would love to see some tutorials around this (if
it is not there already) on either the WSO2 or Axis2 sites.
</p>
        <p>
Sanjiva also noted the need to define a benchmark for testing that takes into account
a lot more of the factors that I noted in my previous entry and offered to host it
as an open source project. 
</p>
        <p>
So to start, what is needed would be some sort of a "real" application against
which the tests could be run. Hmm... I'll throw one out for consideration. Have
you thought about running your tests against the <a href="http://www.ws-i.org/deliverables/workinggroup.aspx?wg=sampleapps">WS-I
sample application</a>? 
</p>
        <p>
According to the WS-I web site:
</p>
        <blockquote>
          <p>
"The Sample Application presents a high-level, interoperable example of a supply chain
management application in the form of a set of Use Cases that demonstrate use of Web
services that conform to the Basic Profile 1.0."
</p>
        </blockquote>
        <p>
Currently the Sample Application has been implemented by BEA Systems, Bowstreet,
Corillian, IBM, Microsoft, Nokia, Novell, Oracle, Quovadx, SAP and Sun Microsystems
(On a variety of web services stacks to be sure). Source code is available for download
on the WS-I site. 
</p>
        <p>
Please keep in mind that I am throwing this out after about 5 minutes of thinking
and have not really explored any of the details such as possible licensing restrictions
by WS-I etc. Something to consider....
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=6df3ef2c-26bc-4171-b457-8a77eae7a424" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Web Services and Performance - II</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,6df3ef2c-26bc-4171-b457-8a77eae7a424.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/02/13/WebServicesAndPerformanceII.aspx</link>
      <pubDate>Tue, 13 Feb 2007 05:27:53 GMT</pubDate>
      <description>&lt;p&gt;
Both Paul Fremantle in the &lt;a href="http://www.aniltj.com/blog/2007/02/11/WebServicesAndPerformance.aspx"&gt;comments
on my previous entry&lt;/a&gt; and Sanjiva Weerawarana in &lt;a href="http://www.bloglines.com/blog/sanjiva?id=180"&gt;his
blog entry&lt;/a&gt; confirm that the option of moving away from serialization to handling
the raw XML messaging is something that was designed&amp;nbsp;into the Axis2 core but
was not something that the majority of developers seem to be comfortable with. Very
much appreciate the information. Would love to see some tutorials around this (if
it is not there already) on either the WSO2 or Axis2 sites.
&lt;/p&gt;
&lt;p&gt;
Sanjiva also noted the need to define a benchmark for testing that takes into account
a lot more of the factors that I noted in my previous entry and offered to host it
as an open source project. 
&lt;/p&gt;
&lt;p&gt;
So to start, what is needed&amp;nbsp;would be&amp;nbsp;some sort of a "real" application against
which the tests could be run.&amp;nbsp;Hmm... I'll throw one out for consideration. Have
you thought about running your tests against the &lt;a href="http://www.ws-i.org/deliverables/workinggroup.aspx?wg=sampleapps"&gt;WS-I
sample application&lt;/a&gt;? 
&lt;/p&gt;
&lt;p&gt;
According to the WS-I web site:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
"The Sample Application presents a high-level, interoperable example of a supply chain
management application in the form of a set of Use Cases that demonstrate use of Web
services that conform to the Basic Profile 1.0."
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Currently the Sample Application has been&amp;nbsp;implemented by BEA Systems, Bowstreet,
Corillian, IBM, Microsoft, Nokia, Novell, Oracle, Quovadx, SAP and Sun Microsystems
(On a variety of web services stacks to be sure). Source code is available for download
on the WS-I site. 
&lt;/p&gt;
&lt;p&gt;
Please keep in mind that I am throwing this out after about 5 minutes of thinking
and have not really explored any of the details such as possible licensing restrictions
by WS-I etc. Something to consider....
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=6df3ef2c-26bc-4171-b457-8a77eae7a424" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,6df3ef2c-26bc-4171-b457-8a77eae7a424.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=be33881d-235b-4da2-8a6a-c95b3369529d</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,be33881d-235b-4da2-8a6a-c95b3369529d.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,be33881d-235b-4da2-8a6a-c95b3369529d.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=be33881d-235b-4da2-8a6a-c95b3369529d</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A reference to the <a href="http://dev2dev.bea.com/pub/a/2006/09/soa-practitioners-guide.html">SOA
Practitioners' guide</a>, which is hosted on BEA's Dev2Dev site, came across on one
of the lists that I am on. According to the web site:
</p>
        <blockquote>
          <p>
            <em>SOA is relatively new, so companies seeking to implement it cannot tap into a
wealth of practical expertise. Without a common language and industry vocabulary based
on shared experience, SOA may end up adding more custom logic and increased complexity
to IT infrastructure, instead of delivering on its promise of intra and inter-enterprise
services reuse and process interoperability. To help develop a shared language and
collective body of knowledge about SOA, a group of SOA practitioners created this
SOA Practitioners' Guide series of documents. In it, these SOA experts describe and
document best practices and key learnings relating to SOA, to help other companies
address the challenges of SOA. The SOA Practitioners' Guide is envisioned as a multi-part
collection of publications that can act as a standard reference encyclopedia for all
SOA stakeholders.</em>
          </p>
          <p>
            <em>The guide is available in three parts:</em>
          </p>
          <ul>
            <li>
              <a href="http://dev2dev.bea.com/2006/09/SOAPGPart1.pdf">
                <em>SOA Practitioners Guide
Part 1</em>
              </a>
              <em>—Why Services-Oriented Architecture? This guide provides a high-level
summary of SOA. </em>
            </li>
            <li>
              <a href="http://dev2dev.bea.com/2006/09/SOAPGPart2.pdf">
                <em>SOA Practitioners Guide
Part 2</em>
              </a>
              <em>—This guide covers the SOA Reference Architecture, which provides
a worked design of an enterprise-wide SOA implementation with detailed architecture
diagrams, component descriptions, detailed requirements, design patterns, opinions
about standards, patterns on regulation compliance, standards templates and potential
code assets from members. </em>
            </li>
            <li>
              <a href="http://dev2dev.bea.com/2006/09/SOAPGPart3.pdf">
                <em>SOA Practitioners Guide
Part 3</em>
              </a>
              <em>—This guide introduces the Services Lifecycle and provides a detailed
process for services management though the service lifecycle, from inception through
to retirement or repurposing of the services. It also contains an appendix that includes
organization and governance best practices, templates, comments on key SOA standards,
and recommended links for more information.</em>
            </li>
          </ul>
        </blockquote>
        <p>
I've not had a chance to go through these documents in any great detail, but I do
note that two of the reviewers for the documents are <a href="http://elementallinks.typepad.com/">Brenda
Michelson</a> of Elemental Links, Inc. and <a href="http://service-architecture.blogspot.com/">Steve
Jones</a> of Capgemini Group who are both smart, competent people in the SOA space
who spent some time on this effort. Looks like I'll have to dedicate some time
to read these documents.
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=be33881d-235b-4da2-8a6a-c95b3369529d" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>SOA Practitioners' Guide</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,be33881d-235b-4da2-8a6a-c95b3369529d.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/02/12/SOAPractitionersGuide.aspx</link>
      <pubDate>Mon, 12 Feb 2007 02:45:14 GMT</pubDate>
      <description>&lt;p&gt;
A reference to the &lt;a href="http://dev2dev.bea.com/pub/a/2006/09/soa-practitioners-guide.html"&gt;SOA
Practitioners' guide&lt;/a&gt;, which is hosted on BEA's Dev2Dev site, came across on one
of the lists that I am on. According to the web site:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;SOA is relatively new, so companies seeking to implement it cannot tap into a
wealth of practical expertise. Without a common language and industry vocabulary based
on shared experience, SOA may end up adding more custom logic and increased complexity
to IT infrastructure, instead of delivering on its promise of intra and inter-enterprise
services reuse and process interoperability. To help develop a shared language and
collective body of knowledge about SOA, a group of SOA practitioners created this
SOA Practitioners' Guide series of documents. In it, these SOA experts describe and
document best practices and key learnings relating to SOA, to help other companies
address the challenges of SOA. The SOA Practitioners' Guide is envisioned as a multi-part
collection of publications that can act as a standard reference encyclopedia for all
SOA stakeholders.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;The guide is available in three parts:&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://dev2dev.bea.com/2006/09/SOAPGPart1.pdf"&gt;&lt;em&gt;SOA Practitioners Guide
Part 1&lt;/em&gt;&lt;/a&gt;&lt;em&gt;—Why Services-Oriented Architecture? This guide provides a high-level
summary of SOA. &lt;/em&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://dev2dev.bea.com/2006/09/SOAPGPart2.pdf"&gt;&lt;em&gt;SOA Practitioners Guide
Part 2&lt;/em&gt;&lt;/a&gt;&lt;em&gt;—This guide covers the SOA Reference Architecture, which provides
a worked design of an enterprise-wide SOA implementation with detailed architecture
diagrams, component descriptions, detailed requirements, design patterns, opinions
about standards, patterns on regulation compliance, standards templates and potential
code assets from members. &lt;/em&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://dev2dev.bea.com/2006/09/SOAPGPart3.pdf"&gt;&lt;em&gt;SOA Practitioners Guide
Part 3&lt;/em&gt;&lt;/a&gt;&lt;em&gt;—This guide introduces the Services Lifecycle and provides a detailed
process for services management though the service lifecycle, from inception through
to retirement or repurposing of the services. It also contains an appendix that includes
organization and governance best practices, templates, comments on key SOA standards,
and recommended links for more information.&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
I've not had a chance to go through these documents in any great detail, but I do
note that two of the reviewers for the documents are &lt;a href="http://elementallinks.typepad.com/"&gt;Brenda
Michelson&lt;/a&gt; of Elemental Links, Inc. and &lt;a href="http://service-architecture.blogspot.com/"&gt;Steve
Jones&lt;/a&gt; of Capgemini Group who are both smart, competent people in the SOA space
who spent some time on this effort.&amp;nbsp;Looks like I'll have to dedicate some time
to read these documents.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=be33881d-235b-4da2-8a6a-c95b3369529d" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,be33881d-235b-4da2-8a6a-c95b3369529d.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=6a26398e-c269-4545-848b-3f6e0cb01b1c</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,6a26398e-c269-4545-848b-3f6e0cb01b1c.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,6a26398e-c269-4545-848b-3f6e0cb01b1c.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=6a26398e-c269-4545-848b-3f6e0cb01b1c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Ben Moreland, the Director for Foundation Services at the <a href="http://www.thehartford.com/">The
Hartford</a>, has a <a href="http://www.ebizq.net/topics/soa/features/7680.html">great
article on SOA Governance up on eBizQ</a>.  The Hartford is an organization in
the financial sector who is at the forefront of SOA adoption and implementation on
the commercial side of the house. 
</p>
        <p>
The keys to their success have been their strong Enterprise Architecture and Governance
programs. Case in point is that, in a presentation that Ben gave recently, he
noted that some time ago (2-3 yrs?) The Hartford sequestered both their Senior Business
Executives and Enterprise Architects for an extended period of time (I believe it
was around 4 months!) to hammer out a strategic plan for how they were going to employ
technology to drive business value. Their approach to SOA is based on that strategic
plan and is a clear indicator how serious these folks are about executing on
that all too often mythical "Business/IT alignment" everyone talks about! 
</p>
        <p>
From the Article:
</p>
        <blockquote>
          <p>
"<em>Some people use SOA governance to mean service lifecycle governance—that is,
governing the lifecycle of services from creation through deployment. Others take
it to mean applying runtime policies to services. But is there more to SOA governance
than this? Shouldn’t governance with SOA ultimately be about delivering on your business
and SOA objectives? Finally, without a common understanding of what governance means,
are organizations that adopt SOA simply setting themselves up for failure?</em>"
</p>
        </blockquote>
        <p>
The article identifies the <a href="http://www.ebizq.net/topics/soa/features/7680.html?page=2">Key
Leverage Points of SOA Governance</a> as People, Financial, Portfolio, Operations,
Architecture, Technology and Projects, and as noted in the article:
</p>
        <blockquote>
          <p>
            <em>The key thing to understand is that you can only achieve the change necessary
for SOA success by putting policies and processes in place around all of the key leverage
points denoted above—people, application portfolio, services portfolio, projects,
services, enterprise architecture, enterprise technology platforms, and operations.
If you put these policies in place—that is, if you govern your SOA journey wisely—
you will be able to deliver on your SOA strategy and business objectives.</em>
          </p>
        </blockquote>
        <p>
All in all, an excellent article from a practitioner and not a talking head :-) <a href="http://www.ebizq.net/topics/soa/features/7680.html">Check
it out</a>! 
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=6a26398e-c269-4545-848b-3f6e0cb01b1c" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Keys to Successful Governance with SOA</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,6a26398e-c269-4545-848b-3f6e0cb01b1c.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/02/11/KeysToSuccessfulGovernanceWithSOA.aspx</link>
      <pubDate>Sun, 11 Feb 2007 20:06:27 GMT</pubDate>
      <description>&lt;p&gt;
Ben Moreland, the Director for Foundation Services at the &lt;a href="http://www.thehartford.com/"&gt;The
Hartford&lt;/a&gt;, has a &lt;a href="http://www.ebizq.net/topics/soa/features/7680.html"&gt;great
article on SOA Governance up on eBizQ&lt;/a&gt;.&amp;nbsp; The Hartford is an organization in
the financial sector who is at the forefront of SOA adoption and implementation on
the commercial side of the house. 
&lt;/p&gt;
&lt;p&gt;
The keys to their success have been their strong Enterprise Architecture and Governance
programs.&amp;nbsp;Case in point is that, in a presentation that Ben gave recently, he
noted that some time ago (2-3 yrs?) The Hartford sequestered both their Senior Business
Executives and Enterprise Architects for an extended period of time (I believe it
was around 4 months!) to hammer out a strategic plan for how they were going to employ
technology to drive business value. Their approach to SOA is based on that strategic
plan and&amp;nbsp;is a clear indicator how serious these folks are about executing on
that all too often mythical "Business/IT alignment" everyone talks about! 
&lt;/p&gt;
&lt;p&gt;
From the Article:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
"&lt;em&gt;Some people use SOA governance to mean service lifecycle governance—that is,
governing the lifecycle of services from creation through deployment. Others take
it to mean applying runtime policies to services. But is there more to SOA governance
than this? Shouldn’t governance with SOA ultimately be about delivering on your business
and SOA objectives? Finally, without a common understanding of what governance means,
are organizations that adopt SOA simply setting themselves up for failure?&lt;/em&gt;"
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
The article identifies&amp;nbsp;the &lt;a href="http://www.ebizq.net/topics/soa/features/7680.html?page=2"&gt;Key
Leverage Points of SOA Governance&lt;/a&gt;&amp;nbsp;as People, Financial, Portfolio, Operations,
Architecture, Technology&amp;nbsp;and Projects, and as noted in the article:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;The key thing to understand is that you can only achieve the change necessary
for SOA success by putting policies and processes in place around all of the key leverage
points denoted above—people, application portfolio, services portfolio, projects,
services, enterprise architecture, enterprise technology platforms, and operations.
If you put these policies in place—that is, if you govern your SOA journey wisely—
you will be able to deliver on your SOA strategy and business objectives.&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
All in all, an excellent article from a practitioner and not a talking head :-) &lt;a href="http://www.ebizq.net/topics/soa/features/7680.html"&gt;Check
it out&lt;/a&gt;! 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=6a26398e-c269-4545-848b-3f6e0cb01b1c" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,6a26398e-c269-4545-848b-3f6e0cb01b1c.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=d441e7e2-1bf8-4f88-b03e-ea2915cad808</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,d441e7e2-1bf8-4f88-b03e-ea2915cad808.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,d441e7e2-1bf8-4f88-b03e-ea2915cad808.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=d441e7e2-1bf8-4f88-b03e-ea2915cad808</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
There is currently a <a href="http://www.infoq.com/news/2007/02/axis2-xfire-benchmark">war
of words going on regarding the performance</a> of some of the Java web service stacks
including Axis2, XFire and JAX-WS 2.1 FCS.  
</p>
        <p>
Instinctively, I think that this type of testing is asking the wrong questions
and I am trying to articulate why that is so.
</p>
        <p>
To start with, these steps seem to completely sidestep any of the design considerations
that are associated with the development of any serious enterprise class web service.
Those <a title="MS PAG: Improving Web Services Performance" href="http://msdn2.microsoft.com/en-us/library/ms998562.aspx#scalenetchapt10_topic7">design
considerations</a> [Microsoft PAG: Improving Web Services Performance] include:
</p>
        <ul>
          <li>
Design chunky interfaces to reduce round trips.</li>
          <li>
Prefer message-based programming over RPC style.</li>
          <li>
Use literal message encoding for parameter formatting.</li>
          <li>
Prefer primitive types for Web services parameters.</li>
          <li>
Avoid maintaining server state between calls.</li>
          <li>
Consider input validation for costly Web methods.</li>
          <li>
Consider your approach to caching.</li>
          <li>
Consider approaches for bulk data transfer and attachments.</li>
          <li>
Avoid calling local Web services.</li>
        </ul>
        <p>
Secondly, this type of benchmarking tends to focus people on the immediacy and synchronous
nature of web services rather than designing the system for asynchronous operation. 
In a real production system, all too often the chunk of time that is taken up by the
processing associated with the business logic that the web service is fronting may
be a significant factor in the performance overhead associated with the web service.
And as you go through your perf optimization, it may very well make sense to
optimize that piece e.g. database calls (as that gets you the biggest bang for
the buck) as you do your end to end performance engineering.
</p>
        <p>
Lastly, this all seems to be about the relative performance of the various data binding
frameworks that are out there (ADB, JiBX, XMLBeans etc.. etc..) which in turn brings
up all the nasty interoperability issues related to serialization/de-serialization
that deal with the impendence mismatch between XML Schema and the language of
your choice (Java, C#, ...).  This is something that I have had a <a href="http://www.aniltj.com/blog/2005/07/20/SOAPBuildersDiscussionSummaryOnWebServicesInteroperabilityIssuesMarch2005.aspx">great
deal of interest in</a>, especially in trying to find <a href="http://www.aniltj.com/blog/2005/12/11/XMLSchemaToObjectMappingsIssuesAndWorkArounds.aspx">work
arounds to ensure interoperability</a>. But more and more, I am becoming frustrated
by this particular aspect of web services and am moving more towards avoiding serialization
entirely and processing a message directly. This would also allow me to utilize some
of the more powerful capabilities like XSLT/XPath etc. 
</p>
        <p>
Of course, this also moves me away from the web services mainstream and the "ease
of use" argument that can be made due to the tooling support for XML to Object Mappings
by the various vendors.  One of the things on my list of near term to-do's is
to explore how hard/easy it would be to go down this path using some of the modern
web service stacks such as WCF and Axis2. I really think that in the long term, it
would be much more beneficial to me to go down this path and will more than likely
also help out as I try to come up to speed on REST (Another one of my to-do's).
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=d441e7e2-1bf8-4f88-b03e-ea2915cad808" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Web Services and Performance</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,d441e7e2-1bf8-4f88-b03e-ea2915cad808.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/02/11/WebServicesAndPerformance.aspx</link>
      <pubDate>Sun, 11 Feb 2007 16:59:09 GMT</pubDate>
      <description>&lt;p&gt;
There is currently a &lt;a href="http://www.infoq.com/news/2007/02/axis2-xfire-benchmark"&gt;war
of words going on regarding the performance&lt;/a&gt; of some of the Java web service stacks
including Axis2, XFire and JAX-WS 2.1 FCS.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Instinctively, I think that this type of testing&amp;nbsp;is asking the wrong questions
and I am trying to articulate why that is so.
&lt;/p&gt;
&lt;p&gt;
To start with, these steps seem to completely sidestep any of the design considerations
that are associated with the development of any serious enterprise class web service.
Those &lt;a title="MS PAG: Improving Web Services Performance" href="http://msdn2.microsoft.com/en-us/library/ms998562.aspx#scalenetchapt10_topic7"&gt;design
considerations&lt;/a&gt; [Microsoft PAG: Improving Web Services Performance] include:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Design chunky interfaces to reduce round trips.&lt;/li&gt;
&lt;li&gt;
Prefer message-based programming over RPC style.&lt;/li&gt;
&lt;li&gt;
Use literal message encoding for parameter formatting.&lt;/li&gt;
&lt;li&gt;
Prefer primitive types for Web services parameters.&lt;/li&gt;
&lt;li&gt;
Avoid maintaining server state between calls.&lt;/li&gt;
&lt;li&gt;
Consider input validation for costly Web methods.&lt;/li&gt;
&lt;li&gt;
Consider your approach to caching.&lt;/li&gt;
&lt;li&gt;
Consider approaches for bulk data transfer and attachments.&lt;/li&gt;
&lt;li&gt;
Avoid calling local Web services.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Secondly, this type of benchmarking tends to focus people on the immediacy and synchronous
nature of web services rather than designing the system for asynchronous operation.&amp;nbsp;
In a real production system, all too often the chunk of time that is taken up by the
processing associated with the business logic that the web service is fronting may
be a significant factor in the performance overhead associated with the web service.
And&amp;nbsp;as you go through your perf optimization, it may very well make sense to
optimize that piece e.g. database calls&amp;nbsp;(as that gets you the biggest bang for
the buck) as you do your end to end performance engineering.
&lt;/p&gt;
&lt;p&gt;
Lastly, this all seems to be about the relative performance of the various data binding
frameworks that are out there (ADB, JiBX, XMLBeans etc.. etc..) which in turn brings
up all the nasty interoperability issues related to serialization/de-serialization
that deal with the impendence mismatch between&amp;nbsp;XML Schema and the language of
your choice (Java, C#, ...).&amp;nbsp; This is something that I&amp;nbsp;have had a &lt;a href="http://www.aniltj.com/blog/2005/07/20/SOAPBuildersDiscussionSummaryOnWebServicesInteroperabilityIssuesMarch2005.aspx"&gt;great
deal of interest in&lt;/a&gt;, especially in trying to find &lt;a href="http://www.aniltj.com/blog/2005/12/11/XMLSchemaToObjectMappingsIssuesAndWorkArounds.aspx"&gt;work
arounds to ensure interoperability&lt;/a&gt;. But more and more, I am becoming frustrated
by this particular aspect of web services and am moving more towards avoiding serialization
entirely and processing a message directly. This would also allow me to utilize some
of the more powerful capabilities like XSLT/XPath etc. 
&lt;/p&gt;
&lt;p&gt;
Of course, this also moves me away from the web services mainstream and the "ease
of use" argument that can be made due to the tooling support for XML to Object Mappings
by the various vendors.&amp;nbsp; One of the things on my list of near term to-do's is
to explore how hard/easy it would be to go down this path using some of the modern
web service stacks such as WCF and Axis2. I really think that in the long term, it
would be much more beneficial to me to go down this path and will more than likely
also help out as I try to come up to speed on&amp;nbsp;REST (Another one of my to-do's).
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=d441e7e2-1bf8-4f88-b03e-ea2915cad808" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,d441e7e2-1bf8-4f88-b03e-ea2915cad808.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=00365325-28fd-4c02-a081-dca015cdcdbf</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,00365325-28fd-4c02-a081-dca015cdcdbf.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,00365325-28fd-4c02-a081-dca015cdcdbf.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=00365325-28fd-4c02-a081-dca015cdcdbf</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The latest edition of Thomas Erl's [Editor] SOA Magazine is out.
</p>
        <blockquote>
          <p>
            <a href="http://www.soamag.com/I4/0207-1.asp">
              <b>Service Elicitation: Defining the
Conceptual Service</b>
            </a>
            <br />
Fundamental to any SOA delivery project is the definition of services. More specifically,
the ability to define what constitutes a service and how logic should be partitioned
and represented across a collection of services. The ambitious goal of SOA to achieve
unity between business and technology domains further makes service definition a critical
step along a typical SOA roadmap. This is the second article in a series dedicated
to exploring the functional side of SOA. It explores several ways to properly describe
a service in a stage called "service elicitation," essentially the process of extracting
services from business knowledge...
</p>
          <p>
            <a href="http://www.soamag.com/I4/0207-2.asp">
              <b>SOA and EDA: Using Events to Bridge
Decoupled Service Boundaries </b>
            </a>
            <br />
The distinction between service-oriented architecture (SOA) and event-driven architecture
(EDA) can be traced down to message patterns. Understanding the implications of common
exchange patterns, such as request-and-reply and publish-and-subscribe, helps determine
both fundamental differences and commonality in these two complementary architectural
models. It is appropriate and desirable to use the acronyms SOA and EDA to make this
distinction, because both of these architectural styles are positioned in the same
domain; SOA focusing on the decomposition of business functions and EDA focusing on
business events. This article explores the differences between these two models and
specifically studies how EDA patterns can be used to connect decoupled service domains... 
</p>
          <p>
            <a href="http://www.soamag.com/I4/0207-3.asp">
              <b>SOA and the Emergence of Business
Technology: How Business Services are Changing the IT Landscape </b>
            </a>
            <br />
Globalization is having a tremendous impact on IT. Fueled by technological change
and innovation IT is becoming more capable than ever of establishing itself as a true
partner to business, a trend that is creating the opportunity for a new breed of IT
professional: one that is both technology and business savvy. In this article we discuss
the genesis of this accelerating wave of change, how it has been responsible for and
relates to the service-oriented architectural model, and how it is contributing to
a new field we can call "business technology"...
</p>
        </blockquote>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=00365325-28fd-4c02-a081-dca015cdcdbf" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>SOA Magazine February 2007 Issue</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,00365325-28fd-4c02-a081-dca015cdcdbf.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/01/28/SOAMagazineFebruary2007Issue.aspx</link>
      <pubDate>Sun, 28 Jan 2007 16:21:03 GMT</pubDate>
      <description>&lt;p&gt;
The latest edition of Thomas Erl's [Editor]&amp;nbsp;SOA Magazine is out.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;a href="http://www.soamag.com/I4/0207-1.asp"&gt;&lt;b&gt;Service Elicitation: Defining the
Conceptual Service&lt;/b&gt;&lt;/a&gt;
&lt;br&gt;
Fundamental to any SOA delivery project is the definition of services. More specifically,
the ability to define what constitutes a service and how logic should be partitioned
and represented across a collection of services. The ambitious goal of SOA to achieve
unity between business and technology domains further makes service definition a critical
step along a typical SOA roadmap. This is the second article in a series dedicated
to exploring the functional side of SOA. It explores several ways to properly describe
a service in a stage called "service elicitation," essentially the process of extracting
services from business knowledge...
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.soamag.com/I4/0207-2.asp"&gt;&lt;b&gt;SOA and EDA: Using Events to Bridge
Decoupled Service Boundaries &lt;/b&gt;&lt;/a&gt;
&lt;br&gt;
The distinction between service-oriented architecture (SOA) and event-driven architecture
(EDA) can be traced down to message patterns. Understanding the implications of common
exchange patterns, such as request-and-reply and publish-and-subscribe, helps determine
both fundamental differences and commonality in these two complementary architectural
models. It is appropriate and desirable to use the acronyms SOA and EDA to make this
distinction, because both of these architectural styles are positioned in the same
domain; SOA focusing on the decomposition of business functions and EDA focusing on
business events. This article explores the differences between these two models and
specifically studies how EDA patterns can be used to connect decoupled service domains... 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.soamag.com/I4/0207-3.asp"&gt;&lt;b&gt;SOA and the Emergence of Business
Technology: How Business Services are Changing the IT Landscape &lt;/b&gt;&lt;/a&gt;
&lt;br&gt;
Globalization is having a tremendous impact on IT. Fueled by technological change
and innovation IT is becoming more capable than ever of establishing itself as a true
partner to business, a trend that is creating the opportunity for a new breed of IT
professional: one that is both technology and business savvy. In this article we discuss
the genesis of this accelerating wave of change, how it has been responsible for and
relates to the service-oriented architectural model, and how it is contributing to
a new field we can call "business technology"...
&lt;/p&gt;
&lt;/blockquote&gt;&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=00365325-28fd-4c02-a081-dca015cdcdbf" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,00365325-28fd-4c02-a081-dca015cdcdbf.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=607bceb4-c314-432d-a85f-d943129ef702</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,607bceb4-c314-432d-a85f-d943129ef702.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,607bceb4-c314-432d-a85f-d943129ef702.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=607bceb4-c314-432d-a85f-d943129ef702</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
One of the questions that is often asked by certain folks is the relationship between
Enterprise Architecture and Service Oriented Architecture. Some folks believe that
SOA is the new version of EA, others that the disciplines are distinct. My personal
belief that they are mutually supporting disciplines and the level of maturity that
an organization has achieved in one will directly impact its ability to implement
the other.
</p>
        <p>
Given this the following quote, from Anne Thomas Manes of the Burton Group, really
resonated with me:
</p>
        <blockquote>
          <p>
"SOA also applies at the enterprise architecture level -- helping the [Enterprise
Architects] optimize the application portfolio and data architecture. Nearly
every large organization has way too many applications that implement the same capabilities
and way too many data structures that represent the same information. The cost of
ownership of managing and maintaining a bloated application and database portfolio
keeps fixed annual costs very high, reduces the available funds for new projects,
and severely limits the flexibility and agility of the organization. From the [Enterprise
Architecture] perspective, the goal is to dramatically reduce duplication of application
functionality and data structures by implementing shared capabilities as services
and designing standard data structures for interfacing with those services. [Enterprise
Architects] should be defining priorities for SOA projects.
</p>
          <p>
When it comes time to design a specific application, the goal is to analyze the required
capabilities of the application, identify capabilities that have already been implemented,
and identify capabilities that other systems might need. These shared capabilities
should be implemented as services -- not re-implemented in every application that
needs them. Also any volatile capability should be implemented as a service to increase
separation of concern and to enable easier management."
</p>
        </blockquote>
        <p>
Figured I'd put it on the blog as I'm sure that I will be reusing this particular
explanation in the future and it will be easier to point to it here with attribution
given to Anne.
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=607bceb4-c314-432d-a85f-d943129ef702" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Relationship between Enterprise Architecture and SOA</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,607bceb4-c314-432d-a85f-d943129ef702.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/01/28/RelationshipBetweenEnterpriseArchitectureAndSOA.aspx</link>
      <pubDate>Sun, 28 Jan 2007 16:12:54 GMT</pubDate>
      <description>&lt;p&gt;
One of the questions that is often asked by certain folks is the relationship between
Enterprise Architecture and Service Oriented Architecture. Some folks believe that
SOA is the new version of EA, others that the disciplines are distinct. My personal
belief that they are mutually supporting disciplines and the level of maturity that
an organization has achieved in one will directly impact its ability to implement
the other.
&lt;/p&gt;
&lt;p&gt;
Given this the following quote, from Anne Thomas Manes of the Burton Group, really
resonated with me:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
"SOA also applies at the enterprise architecture level -- helping the&amp;nbsp;[Enterprise
Architects]&amp;nbsp;optimize the application portfolio and data architecture. Nearly
every large organization has way too many applications that implement the same capabilities
and way too many data structures that represent the same information. The cost of
ownership of managing and maintaining a bloated application and database portfolio
keeps fixed annual costs very high, reduces the available funds for new projects,
and severely limits the flexibility and agility of the organization. From the [Enterprise
Architecture] perspective, the goal is to dramatically reduce duplication of application
functionality and data structures by implementing shared capabilities as services
and designing standard data structures for interfacing with those services. [Enterprise
Architects] should be defining priorities for SOA projects.
&lt;/p&gt;
&lt;p&gt;
When it comes time to design a specific application, the goal is to analyze the required
capabilities of the application, identify capabilities that have already been implemented,
and identify capabilities that other systems might need. These shared capabilities
should be implemented as services -- not re-implemented in every application that
needs them. Also any volatile capability should be implemented as a service to increase
separation of concern and to enable easier management."
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Figured I'd put it on the blog as I'm sure that I will be reusing this particular
explanation in the future and it will be easier to point to it here with attribution
given to Anne.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=607bceb4-c314-432d-a85f-d943129ef702" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,607bceb4-c314-432d-a85f-d943129ef702.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=a282bfe4-6a7a-4cca-9c39-bc3927a21297</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,a282bfe4-6a7a-4cca-9c39-bc3927a21297.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,a282bfe4-6a7a-4cca-9c39-bc3927a21297.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=a282bfe4-6a7a-4cca-9c39-bc3927a21297</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I was reading Todd's entry on "<a href="http://www.biske.com/blog/?p=106">Services
for Managing the Network</a>" in which he comments on an article by the
F5 folks which talks about a unified way to manage both services and network components
through web service interfaces. 
</p>
        <p>
This is something that I've been thinking about for a while as well.  To me a SOA
runtime infrastructure should allow us to monitor, manage and administer
across network, computing and service resources using standardized policies.
In this ideal world, the appropriate domain experts (Security, Networking, QoS, SLA
etc.) define the policies for that domain in a centralized manner, push out those
polices to distributed appliances and service platforms across your Enterprise such
that they can be enforced, and provides the ability to collect metrics on
what is going on in your environment.
</p>
        <p>
In some ways the greater challenge is not technical, but cultural. It lies in
trying to provide a common frame of reference and understanding to folks who
come from different background (NetOps/Transport folks, DataCenter/Computing Infrastructure
folks, Service folks) on the impact of deploying a SOA runtime infrastructure. It
is a challenge that I face on a regular basis and one that requires the most fundamental
of skills - Communications and the ability to see the other person's point of view. 
</p>
        <p>
On the technical side of the house, the challenge is wrapped up in the phrase "standardized
policies". To reach this stage requires two separate things to happen:
</p>
        <ol>
          <li>
The ratification of standards that address these various aspects of management</li>
          <li>
Adoption of these standards by various vendors at the Network, Computing and Service
layers</li>
        </ol>
        <p>
At the current stage of technology, some of what I am discussing above is possible
by using a combination of WSM, Mediation Systems, Registry/Repository, Platforms and
Network Devices. But unfortunately, given that a lot of the standards are not finalized,
it requires one to use specific vendor products (where vendors have established interop relationships)
that are using proprietary mechanisms in the absence of established standards.
</p>
        <p>
So what are some of the standards that we should be tracking and urging our vendors
to support in the policy and management space?
</p>
        <ul>
          <li>
            <strong>Policy</strong> - WS-Policy to start with. But keep in mind that
WS-Policy is simply a container and still requires the creation of multiple domain
specific languages that will address areas such as SLAs and QoS etc. 
</li>
          <li>
            <strong>Provisioning </strong>- Adoption of Service Provisioning Markup Language (SPML)
v 2.0. Keep in mind that this deals purely with user provisioning and not with service
provisioning. Current service provisioning is, to a great extent, a manual process.</li>
          <li>
            <strong>Management &amp; Reporting</strong> - The convergence of WSDM and WS-Management.
Note that this has a dependency on the convergence of WS-Eventing (WS-Management needs
this) and WS-Notification (WSDM needs this) into WS-EventNotification.</li>
        </ul>
        <p>
As you can see above, there is a lot of work that still needs to be done in this space
and significant competition among the various vendor factions regarding what
these standards should be. As you are building out your infrastructure, I would highly
recommend that you question your vendors on their support for existing standards,
their tracking and participation in the standards process, and their roadmap for support
of future standards, so that in the end you have the ability to monitor, manage and
administer your environment in a holistic manner.
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=a282bfe4-6a7a-4cca-9c39-bc3927a21297" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Unified View of Enterprise Management</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,a282bfe4-6a7a-4cca-9c39-bc3927a21297.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/01/07/UnifiedViewOfEnterpriseManagement.aspx</link>
      <pubDate>Sun, 07 Jan 2007 18:47:15 GMT</pubDate>
      <description>&lt;p&gt;
I was reading Todd's entry on "&lt;a href="http://www.biske.com/blog/?p=106"&gt;Services
for Managing the Network&lt;/a&gt;"&amp;nbsp;in which he&amp;nbsp;comments on an article by the
F5 folks which talks about a unified way to manage both services and network components
through&amp;nbsp;web service interfaces.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
This is something that I've been thinking about for a while as well.&amp;nbsp; To me&amp;nbsp;a&amp;nbsp;SOA
runtime infrastructure&amp;nbsp;should&amp;nbsp;allow us to&amp;nbsp;monitor, manage and administer
across&amp;nbsp;network, computing and service resources&amp;nbsp;using standardized policies.
In this ideal world, the appropriate domain experts (Security, Networking, QoS, SLA
etc.)&amp;nbsp;define the policies for that domain in a centralized manner, push out those
polices to distributed appliances and service platforms across your Enterprise such
that they can be enforced, and&amp;nbsp;provides the ability&amp;nbsp;to collect metrics on
what is going on in your environment.
&lt;/p&gt;
&lt;p&gt;
In some ways the&amp;nbsp;greater challenge is not technical, but cultural. It lies in
trying to provide a common frame of reference and understanding&amp;nbsp;to folks who
come from different background (NetOps/Transport folks, DataCenter/Computing Infrastructure
folks, Service folks) on the impact of deploying a SOA runtime infrastructure. It
is a challenge that I face on a regular basis and one that requires the most fundamental
of skills - Communications and the ability to see the other person's point of view. 
&lt;/p&gt;
&lt;p&gt;
On the technical side of the house, the challenge is wrapped up in the phrase "standardized
policies".&amp;nbsp;To reach this stage requires two separate things to happen:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
The ratification of standards that address these various aspects of management&lt;/li&gt;
&lt;li&gt;
Adoption of these standards by various vendors at the Network, Computing and Service
layers&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
At the current stage of technology, some of what I am discussing above is possible
by using a combination of WSM, Mediation Systems, Registry/Repository, Platforms and
Network Devices. But unfortunately, given that a lot of the standards are not finalized,
it requires one to use specific vendor products (where vendors have established interop&amp;nbsp;relationships)
that are using proprietary mechanisms in the absence of established standards.
&lt;/p&gt;
&lt;p&gt;
So what are some of the standards that we should be tracking and urging our vendors
to support in the policy and management space?
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Policy&lt;/strong&gt; -&amp;nbsp;WS-Policy&amp;nbsp;to start with. But keep in mind that
WS-Policy is simply a container and still requires the creation of multiple domain
specific languages that will address areas such as SLAs and QoS etc. 
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Provisioning &lt;/strong&gt;- Adoption of Service Provisioning Markup Language (SPML)
v 2.0. Keep in mind that this deals purely with user provisioning and not with service
provisioning. Current service provisioning is, to a great extent, a manual process.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Management &amp;amp; Reporting&lt;/strong&gt; - The convergence of WSDM and WS-Management.
Note that this has a dependency on the convergence of WS-Eventing (WS-Management needs
this) and WS-Notification (WSDM needs this)&amp;nbsp;into WS-EventNotification.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
As you can see above, there is a lot of work that still needs to be done in this space
and significant&amp;nbsp;competition among the various vendor factions regarding what
these standards should be. As you are building out your infrastructure, I would highly
recommend that you question your vendors on their&amp;nbsp;support for existing standards,
their tracking and participation in the standards process, and their roadmap for&amp;nbsp;support
of future standards, so that in the end you have the ability to monitor, manage and
administer your environment in a holistic manner.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=a282bfe4-6a7a-4cca-9c39-bc3927a21297" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,a282bfe4-6a7a-4cca-9c39-bc3927a21297.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=a85f0794-b1ac-4f58-bdf4-608e16e1d82e</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,a85f0794-b1ac-4f58-bdf4-608e16e1d82e.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,a85f0794-b1ac-4f58-bdf4-608e16e1d82e.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=a85f0794-b1ac-4f58-bdf4-608e16e1d82e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This is a great introductory article on REST by Steve Vinoski of IONA titled
"<a href="http://dsonline.computer.org/portal/pages/dsonline/2007/01/w1tow.html">REST
Eye for the SOA Guy</a>" (<a href="http://www.iona.com/hyplan/vinoski/pdfs/IEEE-REST_Eye_for_the_SOA_Guy.pdf">PDF</a>)
that has been published in the current issue of <a href="http://computer.org/internet">IEEE
Internet Computing</a>. For more in-depth info, check out the <a href="http://rest.blueoxen.net/">RESTwiki</a> .
</p>
        <p>
P.S. My kids were kind enough, in the recent season of sharing, to share a rather
nasty cold with me. Towards the end of the day yesterday, my co-workers were making
the "warding-off-evil" signs in my direction,  so I am taking the day off
today. Now that the medication has kicked in, I am using the temporary relief as
an excuse to catch up on some technical reading which, unfortunately, I
can tolerate only for short bursts. &lt;sigh&gt;
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=a85f0794-b1ac-4f58-bdf4-608e16e1d82e" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>REST 101 for SOA People</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,a85f0794-b1ac-4f58-bdf4-608e16e1d82e.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/01/04/REST101ForSOAPeople.aspx</link>
      <pubDate>Thu, 04 Jan 2007 16:28:45 GMT</pubDate>
      <description>&lt;p&gt;
This is a great introductory article on REST by Steve Vinoski&amp;nbsp;of IONA titled
"&lt;a href="http://dsonline.computer.org/portal/pages/dsonline/2007/01/w1tow.html"&gt;REST
Eye for the SOA Guy&lt;/a&gt;" (&lt;a href="http://www.iona.com/hyplan/vinoski/pdfs/IEEE-REST_Eye_for_the_SOA_Guy.pdf"&gt;PDF&lt;/a&gt;)
that has been published in the current issue of &lt;a href="http://computer.org/internet"&gt;IEEE
Internet Computing&lt;/a&gt;. For more in-depth info, check out the &lt;a href="http://rest.blueoxen.net/"&gt;RESTwiki&lt;/a&gt; .
&lt;/p&gt;
&lt;p&gt;
P.S. My kids were kind enough, in the recent season of sharing, to share a rather
nasty cold with me. Towards the end of the day yesterday, my co-workers were making
the "warding-off-evil" signs in my direction,&amp;nbsp;&amp;nbsp;so I am taking the day off
today. Now that the medication has kicked in, I am using the temporary relief&amp;nbsp;as
an excuse to&amp;nbsp;catch up on some technical reading which,&amp;nbsp;unfortunately, I
can tolerate only for short bursts. &amp;lt;sigh&amp;gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=a85f0794-b1ac-4f58-bdf4-608e16e1d82e" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,a85f0794-b1ac-4f58-bdf4-608e16e1d82e.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=885076d5-fa91-4c1b-b930-da7042270846</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,885076d5-fa91-4c1b-b930-da7042270846.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,885076d5-fa91-4c1b-b930-da7042270846.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=885076d5-fa91-4c1b-b930-da7042270846</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The latest edition of Thomas Erl's [Editor] SOA Magazine is out.
</p>
        <blockquote>
          <p>
            <a href="http://www.soamag.com/I3/0107-3.asp">Implications of SOA on Business Strategy
and Organizational Design</a>
          </p>
          <p>
The need to somehow change the way we do business as a prerequisite to unlocking the
transformative potential (and resulting competitive advantage) inherent in technological
innovation is becoming increasingly recognized. The scope of discussion this time
around however moves beyond organizational efficiencies to whole of market efficiencies,
and the strategic implications this has in terms of planning and organizational design.
Many business leaders have grown progressively indignant towards the over-sold and
under-delivered powers of technology to effect their bottom line - these, the same
people who are responsible for setting strategic direction, business planning, and
capital investment. This is the first in a series of articles targeting the business
community. It explores the implications of SOA on strategic planning and organizational
design - from a business perspective.
</p>
          <p>
            <a href="http://www.soamag.com/I3/0107-2.asp">Commercializing Services: Web Services
Distribution Channels and SOA</a>
          </p>
          <p>
Exposing web services to the outside world is much more complex than creating and
maintaining services geared towards internal consumption. While internally focused
projects have their technical challenges, outwardly focused web services initiatives
bring to the fore a whole host of non-IT related issues such as business strategy
and marketing. Those who proceed with such projects with the same mindset that made
their internal projects successful run a significant risk of failing. Web services
initiatives aimed at serving the needs of non-captive customers and partners are akin
in effort to that of creating a new business channel and not merely a systems integration
project. In order be successful in these efforts, you must clearly understand your
organization's objectives, your customer's needs and the Web Services Distribution
Ecosystem...
</p>
          <p>
            <a href="http://www.soamag.com/I3/0107-1.asp">AJAX: Bringing SOA to the Front Lines</a>
          </p>
          <p>
A service-oriented architecture (SOA) can provide enterprises with significant benefits,
including the ability to reuse application functionality and to interconnect heterogeneous
applications to create new composite ones. However, a critical component to the realization
of SOA benefits is that users throughout the extended enterprise can efficiently access
and interact with key resources. Otherwise you cannot fully leverage your infrastructure
investment. Using AJAX rich internet applications (RIAs) as the presentation tier,
however, can significantly enhance the impact of SOA. This article explains how companies
can link their employees, customers and partners, with a scalable, flexible interface
to efficiently interact with service-oriented resources.
</p>
        </blockquote>
        <p>
Always an an interesting read.
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=885076d5-fa91-4c1b-b930-da7042270846" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>SOA Magazine January 2007 Issue</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,885076d5-fa91-4c1b-b930-da7042270846.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/01/04/SOAMagazineJanuary2007Issue.aspx</link>
      <pubDate>Thu, 04 Jan 2007 04:00:47 GMT</pubDate>
      <description>&lt;p&gt;
The latest edition of Thomas Erl's [Editor]&amp;nbsp;SOA Magazine is out.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;a href="http://www.soamag.com/I3/0107-3.asp"&gt;Implications of SOA on Business Strategy
and Organizational Design&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
The need to somehow change the way we do business as a prerequisite to unlocking the
transformative potential (and resulting competitive advantage) inherent in technological
innovation is becoming increasingly recognized. The scope of discussion this time
around however moves beyond organizational efficiencies to whole of market efficiencies,
and the strategic implications this has in terms of planning and organizational design.
Many business leaders have grown progressively indignant towards the over-sold and
under-delivered powers of technology to effect their bottom line - these, the same
people who are responsible for setting strategic direction, business planning, and
capital investment. This is the first in a series of articles targeting the business
community. It explores the implications of SOA on strategic planning and organizational
design - from a business perspective.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.soamag.com/I3/0107-2.asp"&gt;Commercializing Services: Web Services
Distribution Channels and SOA&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Exposing web services to the outside world is much more complex than creating and
maintaining services geared towards internal consumption. While internally focused
projects have their technical challenges, outwardly focused web services initiatives
bring to the fore a whole host of non-IT related issues such as business strategy
and marketing. Those who proceed with such projects with the same mindset that made
their internal projects successful run a significant risk of failing. Web services
initiatives aimed at serving the needs of non-captive customers and partners are akin
in effort to that of creating a new business channel and not merely a systems integration
project. In order be successful in these efforts, you must clearly understand your
organization's objectives, your customer's needs and the Web Services Distribution
Ecosystem...
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.soamag.com/I3/0107-1.asp"&gt;AJAX: Bringing SOA to the Front Lines&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
A service-oriented architecture (SOA) can provide enterprises with significant benefits,
including the ability to reuse application functionality and to interconnect heterogeneous
applications to create new composite ones. However, a critical component to the realization
of SOA benefits is that users throughout the extended enterprise can efficiently access
and interact with key resources. Otherwise you cannot fully leverage your infrastructure
investment. Using AJAX rich internet applications (RIAs) as the presentation tier,
however, can significantly enhance the impact of SOA. This article explains how companies
can link their employees, customers and partners, with a scalable, flexible interface
to efficiently interact with service-oriented resources.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Always an an interesting read.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=885076d5-fa91-4c1b-b930-da7042270846" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,885076d5-fa91-4c1b-b930-da7042270846.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=b3fe312d-38db-4666-9d21-80883333362d</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,b3fe312d-38db-4666-9d21-80883333362d.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,b3fe312d-38db-4666-9d21-80883333362d.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=b3fe312d-38db-4666-9d21-80883333362d</wfw:commentRss>
      <slash:comments>7</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
I am a member of the OASIS SOA Reference Architecture Subcommittee which is part
of the <a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=soa-rm">SOA-RM
(Reference Model) Technical Committee</a>. We had a <a href="http://www.aniltj.com/blog/2006/12/13/OASISSOAReferenceArchitecture.aspx">F2F
meeting before the holidays</a> and one of the items that came up during our discussion
was the need to engage the wider community to make sure that the work we are doing
is relevant and applicable to implementers, and to solicit feedback for incorporation
into this ongoing work. So I asked our chair if I could blog about this work and he
said sure (Thanks <a href="http://frankmccabe.wordpress.com/">Frank</a>!), provided
that I mention that this is a work in progress. 
</p>
        <p>
So, this is a work in progress :-) 
</p>
        <p>
On a serious note, comments/corrections/additions/pointers/hints/smoke signals are
very welcome and I or any other member of the TC can act as your conduit and make
sure that it is presented to the TC at large. Please feel free to leave comments on
this blog entry or <a href="http://xri.net/=anil.john">contact me directly</a>. Needless
to say, if your organization is part of OASIS, we are a friendly bunch of folks doing
some interesting and complex work, and would very much welcome your direct participation! 
</p>
        <p>
On to the topic at hand. A particular interest of mine in the SOA-RA is the area of
governance and we had a discussion on this topic that I wanted to share. 
</p>
        <p>
          <strong>SOA &amp; GOVERNANCE</strong>
        </p>
        <p>
The starting point of the discussion was the definition of SOA as defined in the <a href="http://docs.oasis-open.org/soa-rm/v1.0/soa-rm.html">SOA-RM</a> which
states that "<b>Service Oriented Architecture</b> (SOA) is a paradigm for organizing
and utilizing distributed <b>capabilities</b> that may be under the control of different
ownership domains." 
</p>
        <p>
But when we speak of traditional IT governance, it usually means governance applied
within the Enterprise; within a single ownership domain if you will. But in the case
of a SOA implementation it needs to be applied across ownership domains, across Enterprises.
And that requires a different set of carrots and sticks, perhaps something much more
contractual in nature rather than something direct. And that in turn brings
to light the fact that what one organization considers governance will be completely
different from what another organization considers governance. 
</p>
        <p>
At this point, I proposed a definition of governance that is consistent with the above
and has resonated very well with me. Requiring no original thought on my part, I quoted Anne
Thomas Manes of the Burton Group who has said “Governance refers to the
processes that an enterprise puts in place to ensure that things are done right, where
"right" means in accordance with best practices, architectural principles, government
regulations, laws, and other determining factors. SOA governance refers to the processes
used to govern <strike>adoption and</strike> implementation of SOA.” With the exception
of adoption bit, the committee members agreed that this was a good working definition.
This also tied in very nicely with an earlier comment by a colleague, Ken Laskey of
MITRE, that "Governance for SOA [...] is likely to parallel governance for traditional
commerce", and that "There will be a range of governance depending on the perceived
needs of the participants." 
</p>
        <p>
One of the items on my to-do list is to research the governance practices of large
enterprises, especially ones in which the business units have a great deal of autonomy,
to distill some lessons on what works and what does not work. At this point in
time, I personally have not seen examples of SOA implementations that span Enterprises.
Or rather Enterprises that are equivalent in authority/power/influence. Any examples
you can share would be very appreciated. 
</p>
        <p>
As we progressed along this path, one of the items that became much clearer is that
governance by its very nature implies the authority to govern. That authority can
be formal or informal and could be codified in an explicit manner or implied.
But in all cases, there is the concept of authority. Given this, implementing SOA
governance requires: 
</p>
        <ol>
          <li>
Formulation of polices that are appropriate to the domain</li>
          <li>
The ability to enforce the policies</li>
          <li>
The ability to obtain metrics on what is working and what is not</li>
          <li>
Implementing feedback [and adjudication] processes that can adjust the existing policies
as needed</li>
        </ol>
        <p>
&lt;aniltj - personal comments&gt;
</p>
        <blockquote>
          <p>
Speaking for myself, and not for the committee at large, one of the items that we
need to keep in mind regarding governance is that it should not just be the big hammer.
It should also be the mechanism for providing motivators to moving to and doing the
right things in a SOA. Not just the de-motivators. And the reality as regards to SOA
governance is that it should be an extension of your existing IT governance where
you add the SOA specific bits. I think the challenge here will be figuring out what
that amorphous line is. It does not make sense in the SOA RA to document IT governance
components, but there is definitely overlap and mutual support. Just as with EA and
SOA. 
</p>
          <p>
Above all, I think we need to realize that when we speak of formulating SOA polices,
we are dealing with people and behavior and culture and not just technology. Which
means it is messy and imprecise. As the old saying goes "Technology is easy, People?
That's Hard!".
</p>
        </blockquote>
        <p>
&lt;/aniltj - personal comments&gt;
</p>
        <p>
Again, a work in progress. Input and comments are solicited and welcome.
</p>
        <p>
          <b>UPDATE</b>: 1/3/07 - incorporation of off-line comments.
</p>
        <p>
          <b>UPDATE</b>: 1/4/07 - I just noticed that OASIS also has a public <a href="http://www.oasis-open.org/committees/comments/index.php?wg_abbrev=soa-rm">SOA-RM
Comment Listserv</a>, which folks can use to provide feedback as well. Please use
whichever mechanism works for you.<br /></p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=b3fe312d-38db-4666-9d21-80883333362d" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>OASIS SOA-RA - A Starting Point for Governance</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,b3fe312d-38db-4666-9d21-80883333362d.aspx</guid>
      <link>http://www.aniltj.com/blog/2007/01/03/OASISSOARAAStartingPointForGovernance.aspx</link>
      <pubDate>Wed, 03 Jan 2007 03:32:58 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
I am a member of the OASIS SOA Reference Architecture Subcommittee&amp;nbsp;which is part
of the &lt;a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=soa-rm"&gt;SOA-RM
(Reference Model) Technical Committee&lt;/a&gt;. We had a &lt;a href="http://www.aniltj.com/blog/2006/12/13/OASISSOAReferenceArchitecture.aspx"&gt;F2F
meeting before the holidays&lt;/a&gt; and one of the items that came up during our discussion
was the need to engage the wider community to make sure that the work we are doing
is relevant and applicable to implementers, and to solicit feedback for incorporation
into this ongoing work. So I asked our chair if I could blog about this work and he
said sure (Thanks &lt;a href="http://frankmccabe.wordpress.com/"&gt;Frank&lt;/a&gt;!), provided
that I mention that this is a work in progress. 
&lt;/p&gt;
&lt;p&gt;
So, this is a work in progress :-) 
&lt;/p&gt;
&lt;p&gt;
On a serious note, comments/corrections/additions/pointers/hints/smoke signals are
very welcome and I or any other member of the TC can act as your conduit and make
sure that it is presented to the TC at large. Please feel free to leave comments on
this blog entry or &lt;a href="http://xri.net/=anil.john"&gt;contact me directly&lt;/a&gt;. Needless
to say, if your organization is part of OASIS, we are a friendly bunch&amp;nbsp;of folks&amp;nbsp;doing
some interesting and complex work, and would very much welcome your direct participation! 
&lt;/p&gt;
&lt;p&gt;
On to the topic at hand. A particular interest of mine in the SOA-RA is the area of
governance and we had a discussion on this topic that I wanted to share. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;SOA &amp;amp; GOVERNANCE&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
The starting point of the discussion was the definition of SOA as defined in the &lt;a href="http://docs.oasis-open.org/soa-rm/v1.0/soa-rm.html"&gt;SOA-RM&lt;/a&gt; which
states that "&lt;b&gt;Service Oriented Architecture&lt;/b&gt; (SOA) is a paradigm for organizing
and utilizing distributed &lt;b&gt;capabilities&lt;/b&gt; that may be under the control of different
ownership domains." 
&lt;/p&gt;
&lt;p&gt;
But when we speak of traditional IT governance, it usually means governance applied
within the Enterprise; within a single ownership domain if you will. But in the case
of a SOA implementation it needs to be applied across ownership domains, across Enterprises.
And that requires a different set of carrots and sticks, perhaps something much more
contractual in nature rather than something&amp;nbsp;direct.&amp;nbsp;And that in turn brings
to light the fact that what one organization considers governance will be completely
different from what another organization considers governance. 
&lt;/p&gt;
&lt;p&gt;
At this point, I proposed a definition of governance that is consistent with the above
and has resonated very well with me. Requiring no original thought on my part, I&amp;nbsp;quoted&amp;nbsp;Anne
Thomas Manes of the Burton Group&amp;nbsp;who has said&amp;nbsp;“Governance refers to the
processes that an enterprise puts in place to ensure that things are done right, where
"right" means in accordance with best practices, architectural principles, government
regulations, laws, and other determining factors. SOA governance refers to the processes
used to govern &lt;strike&gt;adoption and&lt;/strike&gt; implementation of SOA.” With the exception
of adoption bit, the committee members agreed that this was a good working definition.
This also tied in very nicely with an earlier comment by a colleague, Ken Laskey of
MITRE, that "Governance for SOA [...] is likely to parallel governance for traditional
commerce", and that "There will be a range of governance depending on the perceived
needs of the participants." 
&lt;/p&gt;
&lt;p&gt;
One of the items on my to-do list is to research the governance practices of large
enterprises, especially ones in which the business units have a great deal of autonomy,
to distill some lessons on what works and what does not&amp;nbsp;work. At this point in
time, I personally have not seen examples of SOA implementations that span Enterprises.
Or rather Enterprises that are equivalent in authority/power/influence. Any examples
you can share would be very appreciated. 
&lt;/p&gt;
&lt;p&gt;
As we progressed along this path, one of the items that became much clearer is that
governance by its very nature implies the authority to govern. That authority can
be formal or informal and could be codified in an explicit manner or&amp;nbsp;implied.
But in all cases, there is the concept of authority. Given this, implementing SOA
governance requires: 
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Formulation of polices that are appropriate to the domain&lt;/li&gt;
&lt;li&gt;
The ability to enforce&amp;nbsp;the policies&lt;/li&gt;
&lt;li&gt;
The ability to&amp;nbsp;obtain metrics on what is working and what is not&lt;/li&gt;
&lt;li&gt;
Implementing feedback [and adjudication] processes that can adjust the existing policies
as needed&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&amp;lt;aniltj - personal comments&amp;gt;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
Speaking for myself, and not for the committee at large, one of the items that we
need to keep in mind regarding governance is that it should not just be the big hammer.
It should also be the mechanism for providing motivators to moving to and doing the
right things in a SOA. Not just the de-motivators. And the reality as regards to SOA
governance is that it should be an extension of your existing IT governance where
you add the SOA specific bits. I think the challenge here will be figuring out what
that amorphous line is. It does not make sense in the SOA RA to document&amp;nbsp;IT governance
components, but there is definitely overlap and mutual support. Just as with EA and
SOA.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Above all, I think we need to realize that when we speak of formulating SOA polices,
we are dealing with people and behavior and culture and not just technology. Which
means it is messy and imprecise. As the old saying goes "Technology is easy, People?
That's Hard!".
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&amp;lt;/aniltj - personal comments&amp;gt;
&lt;/p&gt;
&lt;p&gt;
Again, a work in progress. Input and comments are solicited and welcome.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;UPDATE&lt;/b&gt;: 1/3/07 - incorporation of off-line comments.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;UPDATE&lt;/b&gt;: 1/4/07 - I just noticed that OASIS also has a public &lt;a href="http://www.oasis-open.org/committees/comments/index.php?wg_abbrev=soa-rm"&gt;SOA-RM
Comment Listserv&lt;/a&gt;, which folks can use to provide feedback as well. Please use
whichever mechanism works for you.&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=b3fe312d-38db-4666-9d21-80883333362d" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,b3fe312d-38db-4666-9d21-80883333362d.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=fc511378-afa6-4a36-8a21-5ac85ed2e0ba</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,fc511378-afa6-4a36-8a21-5ac85ed2e0ba.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,fc511378-afa6-4a36-8a21-5ac85ed2e0ba.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=fc511378-afa6-4a36-8a21-5ac85ed2e0ba</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
As we move beyond the infancy of SOA, there is general consensus that it is not just
about the technology but about using technology to solve critical problems
that are facing businesses/agencies/organizations.
</p>
        <p>
          <a href="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/ThreatstoMessageExchangesinaSOA_13F76/MessageExchangeThreats%5B10%5D.jpg" atomicselection="true">
            <img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 0px 0px 10px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="482" src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/ThreatstoMessageExchangesinaSOA_13F76/MessageExchangeThreats_thumb%5B6%5D.jpg" width="640" align="right" border="0" />
          </a>
        </p>
        <p>
But as ever, we operate in a non-benign environment, and the realization of the Architecture
requires one to consider the myriad of threats that can be brought to bear on a SOA
implementation.
</p>
        <p>
I am trying to graphically represent some of the threats that can be brought
to bear against the exchange of messages in a SOA e.g. In a SOA implemented using
web services.
</p>
        <p>
There are two that I explicitly did not put on the graphic, and those are:
</p>
        <ol>
          <li>
Unauthorized Service Consumers 
</li>
          <li>
Rogue Service Producers</li>
        </ol>
        <p>
Not because they are not important, but simply because I'm still trying to figure
out a way to represent them on this graphic in a clean manner.
</p>
        <p>
This is only the starting point for a discussion of security threats in a SOA,
and there has been some work done to date on various security design patterns
that can be used to mitigate these threats. 
</p>
        <p>
This is definitely an area that I am going to be exploring in much greater detail.
</p>
        <br />
        <p>
          <br />
        </p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=fc511378-afa6-4a36-8a21-5ac85ed2e0ba" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Threats to Message Exchanges in a SOA</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,fc511378-afa6-4a36-8a21-5ac85ed2e0ba.aspx</guid>
      <link>http://www.aniltj.com/blog/2006/12/28/ThreatsToMessageExchangesInASOA.aspx</link>
      <pubDate>Thu, 28 Dec 2006 03:43:10 GMT</pubDate>
      <description>&lt;p&gt;
As we move beyond the infancy of SOA, there is general consensus that it is not just
about the technology but about using&amp;nbsp;technology to&amp;nbsp;solve critical problems
that are facing businesses/agencies/organizations.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/ThreatstoMessageExchangesinaSOA_13F76/MessageExchangeThreats%5B10%5D.jpg" atomicselection="true"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 0px 0px 10px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=482 src="http://www.aniltj.com/blog/content/binary/WindowsLiveWriter/ThreatstoMessageExchangesinaSOA_13F76/MessageExchangeThreats_thumb%5B6%5D.jpg" width=640 align=right border=0&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
But as ever, we operate in a non-benign environment, and the realization of the Architecture
requires one to consider the myriad of threats that can be brought to bear on a SOA
implementation.
&lt;/p&gt;
&lt;p&gt;
I&amp;nbsp;am trying to graphically represent some of the threats that can be brought
to bear against the exchange of messages in a SOA e.g. In a SOA implemented using
web services.
&lt;/p&gt;
&lt;p&gt;
There are two that I explicitly did not put on the graphic, and those are:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Unauthorized Service Consumers 
&lt;li&gt;
Rogue Service Producers&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Not because they are not important, but simply because I'm still trying to figure
out a way to represent them on this graphic in a clean manner.
&lt;/p&gt;
&lt;p&gt;
This&amp;nbsp;is only the starting point for a discussion of security threats in a SOA,
and&amp;nbsp;there has been some work done to date on&amp;nbsp;various security design patterns
that can be used to mitigate these threats. 
&lt;/p&gt;
&lt;p&gt;
This is definitely an area that I am going to be exploring in much greater detail.
&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=fc511378-afa6-4a36-8a21-5ac85ed2e0ba" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,fc511378-afa6-4a36-8a21-5ac85ed2e0ba.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=139dbfde-74e1-4db5-a6ce-0694b45195d1</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,139dbfde-74e1-4db5-a6ce-0694b45195d1.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,139dbfde-74e1-4db5-a6ce-0694b45195d1.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=139dbfde-74e1-4db5-a6ce-0694b45195d1</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://blogs.zdnet.com/service-oriented/">Joe McKendrick</a> has a list of <a href="http://blogs.zdnet.com/service-oriented/?p=781">Ten
companies where SOA made a difference in 2006 </a>.  These are companies
that moved beyond the pilot stage into live deployments and are seeing results.
They include:
</p>
        <ul>
          <li>
eBay 
</li>
          <li>
IBM 
</li>
          <li>
Wachovia Bank 
</li>
          <li>
Harley Davidson 
</li>
          <li>
Hewlett Packard 
</li>
          <li>
Ameriprise Financial 
</li>
          <li>
Amazon 
</li>
          <li>
Citigroup 
</li>
          <li>
OnStar 
</li>
          <li>
Dreamworks Animation SKG</li>
        </ul>
        <p>
A good list to point to when asked about examples of successful SOA implementations.
</p>
        <p>
          <strong>Update</strong> (12/26/06):  <a href="http://blogs.zdnet.com/service-oriented/?p=788">Another
eight more companies</a> (International Truck, MedicAlert, Experian, Washington Group,
Siemens AG, The Hartford, FBI, Monster).
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=139dbfde-74e1-4db5-a6ce-0694b45195d1" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Ten companies where SOA made a difference in 2006</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,139dbfde-74e1-4db5-a6ce-0694b45195d1.aspx</guid>
      <link>http://www.aniltj.com/blog/2006/12/23/TenCompaniesWhereSOAMadeADifferenceIn2006.aspx</link>
      <pubDate>Sat, 23 Dec 2006 16:16:44 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blogs.zdnet.com/service-oriented/"&gt;Joe McKendrick&lt;/a&gt; has a list of &lt;a href="http://blogs.zdnet.com/service-oriented/?p=781"&gt;Ten
companies where SOA made a difference in 2006&amp;nbsp;&lt;/a&gt;.&amp;nbsp; These are companies
that moved beyond the pilot stage&amp;nbsp;into live deployments and are seeing results.
They include:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
eBay 
&lt;/li&gt;
&lt;li&gt;
IBM 
&lt;/li&gt;
&lt;li&gt;
Wachovia Bank 
&lt;/li&gt;
&lt;li&gt;
Harley Davidson 
&lt;/li&gt;
&lt;li&gt;
Hewlett Packard 
&lt;/li&gt;
&lt;li&gt;
Ameriprise Financial 
&lt;/li&gt;
&lt;li&gt;
Amazon 
&lt;/li&gt;
&lt;li&gt;
Citigroup 
&lt;/li&gt;
&lt;li&gt;
OnStar 
&lt;/li&gt;
&lt;li&gt;
Dreamworks Animation SKG&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
A good list to point to when asked about examples of successful SOA implementations.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update&lt;/strong&gt; (12/26/06):&amp;nbsp; &lt;a href="http://blogs.zdnet.com/service-oriented/?p=788"&gt;Another
eight more companies&lt;/a&gt; (International Truck, MedicAlert, Experian, Washington Group,
Siemens AG, The Hartford, FBI, Monster).
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=139dbfde-74e1-4db5-a6ce-0694b45195d1" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,139dbfde-74e1-4db5-a6ce-0694b45195d1.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=5ae3a91a-9d4b-46d8-91d8-6ee97b1265a9</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,5ae3a91a-9d4b-46d8-91d8-6ee97b1265a9.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,5ae3a91a-9d4b-46d8-91d8-6ee97b1265a9.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=5ae3a91a-9d4b-46d8-91d8-6ee97b1265a9</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The <a href="http://www.oasis-open.org/specs/index.php#soa-rmv1.0">SOA Reference Model
(SOA-RM)</a> was approved as an <a href="http://www.oasis-open.org/news/oasis-news-2006-10-23.php">OASIS
Standard on October 23, 2006</a>.  Currently we are working on the SOA Reference
Architecture (SOA-RA), and today was the first of three days of Face 2 Face Meetings
for the RA work. Long and interesting day with a group of smart people. 
</p>
        <p>
I have traditionally had to be concrete and implementation focused
(Make the rubber meet the road and not the sky!), so one of the challenges that I
have as part of the process of working on the SOA-RA is in trying to distill my
experience and lessons into something that can contribute to a body of work that
exists at a higher level of abstraction, and applies to a wide range of implementations.
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=5ae3a91a-9d4b-46d8-91d8-6ee97b1265a9" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>OASIS SOA Reference Architecture</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,5ae3a91a-9d4b-46d8-91d8-6ee97b1265a9.aspx</guid>
      <link>http://www.aniltj.com/blog/2006/12/13/OASISSOAReferenceArchitecture.aspx</link>
      <pubDate>Wed, 13 Dec 2006 00:54:55 GMT</pubDate>
      <description>&lt;p&gt;
The &lt;a href="http://www.oasis-open.org/specs/index.php#soa-rmv1.0"&gt;SOA Reference Model
(SOA-RM)&lt;/a&gt; was approved as an &lt;a href="http://www.oasis-open.org/news/oasis-news-2006-10-23.php"&gt;OASIS
Standard on October 23, 2006&lt;/a&gt;.&amp;nbsp; Currently we are working on the SOA Reference
Architecture (SOA-RA),&amp;nbsp;and today was the first of three days of Face 2 Face Meetings
for the RA work. Long and interesting day with&amp;nbsp;a group of smart people. 
&lt;/p&gt;
&lt;p&gt;
I have&amp;nbsp;traditionally had to&amp;nbsp;be concrete and&amp;nbsp;implementation focused
(Make the rubber meet the road and not the sky!), so one of the challenges that I
have as part of the process of working on the SOA-RA&amp;nbsp;is in trying to&amp;nbsp;distill&amp;nbsp;my
experience and lessons&amp;nbsp;into something that can contribute to a body of work that
exists at a higher level of abstraction, and&amp;nbsp;applies to a wide range of implementations.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=5ae3a91a-9d4b-46d8-91d8-6ee97b1265a9" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,5ae3a91a-9d4b-46d8-91d8-6ee97b1265a9.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=9aa45943-66ef-4a8d-8a34-b0699c4c5cc3</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,9aa45943-66ef-4a8d-8a34-b0699c4c5cc3.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,9aa45943-66ef-4a8d-8a34-b0699c4c5cc3.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=9aa45943-66ef-4a8d-8a34-b0699c4c5cc3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I had a chance to attend a Special Technical Session at the OMG Technical Meeting
held in Arlington, VA today on Emerging Standards for SOA.  Enjoyed the talk
on linking Web Service Specification Languages and Semantic Technologies by a
friend of mine, Chris Bashioum of MITRE, as well as a most excellent briefing
by Toufik Boulez of Layer 7 Technologies on WS-Policy. There were also very informative
presentations on WS-Security and WS-I Security Profile as well as SCA and SDO and
other various other topics.
</p>
        <p>
As always it was also an opportunity to renew old acquaintances and make new ones.
Surprisingly, a much more informative and enjoyable day than I expected!
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=9aa45943-66ef-4a8d-8a34-b0699c4c5cc3" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Emerging Standards for SOA at the OMG</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,9aa45943-66ef-4a8d-8a34-b0699c4c5cc3.aspx</guid>
      <link>http://www.aniltj.com/blog/2006/12/07/EmergingStandardsForSOAAtTheOMG.aspx</link>
      <pubDate>Thu, 07 Dec 2006 03:47:48 GMT</pubDate>
      <description>&lt;p&gt;
I had a chance to attend&amp;nbsp;a Special Technical Session at the OMG Technical Meeting
held in Arlington, VA today on Emerging Standards for SOA.&amp;nbsp; Enjoyed the talk
on linking Web Service Specification Languages and Semantic&amp;nbsp;Technologies by a
friend of mine, Chris Bashioum of MITRE, as well as&amp;nbsp;a most excellent briefing
by Toufik Boulez of Layer 7 Technologies on&amp;nbsp;WS-Policy. There were also very informative
presentations on WS-Security and WS-I Security Profile as well as SCA and SDO and
other various other topics.
&lt;/p&gt;
&lt;p&gt;
As always it was also an opportunity to renew old acquaintances and make new ones.
Surprisingly, a much more&amp;nbsp;informative and enjoyable day than I expected!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=9aa45943-66ef-4a8d-8a34-b0699c4c5cc3" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,9aa45943-66ef-4a8d-8a34-b0699c4c5cc3.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=55226b86-f153-4d7f-9989-970b3cb30539</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,55226b86-f153-4d7f-9989-970b3cb30539.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,55226b86-f153-4d7f-9989-970b3cb30539.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=55226b86-f153-4d7f-9989-970b3cb30539</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Last Call Working Draft Review for Basic XML Schema Patterns for Databinding. 
Here is some more information on this W3C Working Group:
</p>
        <blockquote>
          <p>
"The W3C <a href="http://www.w3.org/2002/ws/databinding/">XML Schema Patterns for
Databinding Working Group</a>, part of the W3C Web Services Activity, has released
two working drafts for review.The mission of this Working Group is to define a set
of XML Schema patterns that will be efficiently implementable by the broad community
who use XML databindings. Patterns which may prove useful to model include abstractions
of structures common across a wide variety of programming environments, such as hash
tables, vectors, and collections.
</p>
          <p>
There are several ways of representing such abstracted data structures and Web Services
toolkits are currently using ad hoc technologies to infer the most suitable language
mapping when processing XML Schemas.Agreeing on a set of XML Schema patterns for which
databinding optimizations can be made will facilitate the ability of Web services
and other toolkits to expose a more comprehensible data model to the developer. 
</p>
          <p>
The WG has published a First Public Working Draft for "<a href="http://www.w3.org/TR/xmlschema-patterns-advanced/">Advanced
XML Schema Patterns for Databinding Version 1.0.</a>" This document defines an advanced
set of example XML Schema 1.0 constructs and types in the form of concrete XPath 2.0
expressions. These patterns are known to be in widespread use and considered to be
compatible with databinding implementations. Implementers of databinding tools may
find these patterns useful to represent simple and common place data structures. Ensuring
tools recognize at least these simple XML Schema 1.0 patterns and present them in
terms most appropriate to the specific language, database or environment will provide
an improved user experience when using databinding tools. 
</p>
          <p>
The WG has also issued a Last Call Working Draft for the "<a href="http://www.w3.org/TR/xmlschema-patterns/">Basic
XML Schema Patterns for Databinding Version 1.0</a>" specification. A databinding
tool generates a mapping between XML 1.0 documents which conform to an XML Schema
1.0 schema and an internal data representation. For example, a Web services databinding
tool may use XML Schema 1.0 descriptions inside a WSDL 2.0 or WSDL 1.1 document to
produce and consume XML and SOAP messages in terms of data structures in a programming
language or data held inside a database."
</p>
        </blockquote>
        <p>
Given that the impedance mismatch between XML Schema and Language Types are one of
the major causes of Interoperability problems in web services toolkits, this work
and these documents are definitely worth checking out.
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=55226b86-f153-4d7f-9989-970b3cb30539" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>XML Schema Patterns for Databinding</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,55226b86-f153-4d7f-9989-970b3cb30539.aspx</guid>
      <link>http://www.aniltj.com/blog/2006/11/24/XMLSchemaPatternsForDatabinding.aspx</link>
      <pubDate>Fri, 24 Nov 2006 21:29:41 GMT</pubDate>
      <description>&lt;p&gt;
Last Call Working Draft Review for Basic XML Schema Patterns for Databinding.&amp;nbsp;
Here is some more information on this&amp;nbsp;W3C Working Group:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
"The W3C &lt;a href="http://www.w3.org/2002/ws/databinding/"&gt;XML Schema Patterns for
Databinding Working Group&lt;/a&gt;, part of the W3C Web Services Activity, has released
two working drafts for review.The mission of this Working Group is to define a set
of XML Schema patterns that will be efficiently implementable by the broad community
who use XML databindings. Patterns which may prove useful to model include abstractions
of structures common across a wide variety of programming environments, such as hash
tables, vectors, and collections.
&lt;/p&gt;
&lt;p&gt;
There are several ways of representing such abstracted data structures and Web Services
toolkits are currently using ad hoc technologies to infer the most suitable language
mapping when processing XML Schemas.Agreeing on a set of XML Schema patterns for which
databinding optimizations can be made will facilitate the ability of Web services
and other toolkits to expose a more comprehensible data model to the developer. 
&lt;/p&gt;
&lt;p&gt;
The WG has published a First Public Working Draft for "&lt;a href="http://www.w3.org/TR/xmlschema-patterns-advanced/"&gt;Advanced
XML Schema Patterns for Databinding Version 1.0.&lt;/a&gt;" This document defines an advanced
set of example XML Schema 1.0 constructs and types in the form of concrete XPath 2.0
expressions. These patterns are known to be in widespread use and considered to be
compatible with databinding implementations. Implementers of databinding tools may
find these patterns useful to represent simple and common place data structures. Ensuring
tools recognize at least these simple XML Schema 1.0 patterns and present them in
terms most appropriate to the specific language, database or environment will provide
an improved user experience when using databinding tools. 
&lt;/p&gt;
&lt;p&gt;
The WG has also issued a Last Call Working Draft for the "&lt;a href="http://www.w3.org/TR/xmlschema-patterns/"&gt;Basic
XML Schema Patterns for Databinding Version 1.0&lt;/a&gt;" specification. A databinding
tool generates a mapping between XML 1.0 documents which conform to an XML Schema
1.0 schema and an internal data representation. For example, a Web services databinding
tool may use XML Schema 1.0 descriptions inside a WSDL 2.0 or WSDL 1.1 document to
produce and consume XML and SOAP messages in terms of data structures in a programming
language or data held inside a database."
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Given that the impedance mismatch between XML Schema and Language Types are one of
the major causes of Interoperability problems in web services toolkits, this work
and these documents are definitely worth checking out.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=55226b86-f153-4d7f-9989-970b3cb30539" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,55226b86-f153-4d7f-9989-970b3cb30539.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=faf85fa2-d0f3-4a69-8e52-8c30b0e9a995</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,faf85fa2-d0f3-4a69-8e52-8c30b0e9a995.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,faf85fa2-d0f3-4a69-8e52-8c30b0e9a995.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=faf85fa2-d0f3-4a69-8e52-8c30b0e9a995</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
LOL!  From Pete Lacey at the Burton Group:
</p>
        <blockquote>
          <p>
            <strong>SG:</strong> [....] From here on in we pass around coarse-grained messages—you
like that term, coarse-grained?. Messages that conform to an XML Schema. We call the
new style Document/Literal and the old style RPC/Encoded. 
</p>
          <p>
            <strong>Dev:</strong> XML Schema? 
</p>
          <p>
            <strong>SG:</strong> Oh, it’s all the rage. Next big thing. Take a look. 
</p>
          <p>
            <strong>Dev:</strong>
            <em>(Reads XML Schema spec)</em>. Saints preserve us! Alexander
the Great couldn’t unravel that. 
</p>
          <p>
            <strong>SG:</strong> Don’t worry about it. Your tools will create the schema for you.
Really, its all about the tooling. 
</p>
          <p>
            <strong>Dev:</strong> How are the tools gonna do that? 
</p>
          <p>
            <strong>SG:</strong> Well, they will reflect on your code (if possible) and autogenerate
a compliant schema. 
</p>
          <p>
            <strong>Dev:</strong> Reflect on my code? I thought it was all about documents, not
serialized objects. 
</p>
          <p>
            <strong>SG:</strong> Didn’t you hear me? It’s all about the tools. Anyway, we can’t
expect you to write XML Schema and WSDL by hand. Besides, its just plumbing. You don’t
need to see it. 
</p>
          <p>
            <strong>Dev:</strong> Whoa, back up. What was that word? Wizzdle? 
</p>
          <p>
            <strong>SG:</strong> Oh, haven’t I mentioned WSDL? W-S-D-L. Web Services Description
Language. It’s how you specify the data types, parameter lists, operation names, transport
bindings, and the endpoint URI, so that client developers can access your service.
Check it out. 
</p>
          <p>
            <strong>Dev:</strong>
            <em>(Reads WSDL spec)</em>. I trust that the guys who wrote
this have been shot. It’s not even internally consistent. And what’s with all this
HTTP GET bindings. I thought GET was undefined. 
</p>
          <p>
            <strong>SG:</strong> Don’t worry about that. Nobody uses that. Anyway, your tools
will generate a WSDL, and in the WSDL will be the schema. 
</p>
          <p>
            <strong>Dev:</strong> But shouldn’t it be the other way ‘round? Shouldn’t I design
the contract first and then generate the code? 
</p>
          <p>
            <strong>SG:</strong> Well, yeah, I guess that sounds right in principle. But that’s
not so easy to do, and very few SOAP stacks support WSDL-first development. Just let
the tools worry about it.
</p>
        </blockquote>
        <p>
This is so darn funny, especially when you consider that it is so true! <a href="http://wanderingbarque.com/nonintersecting/2006/11/15/the-s-stands-for-simple/">Go
read the entire thing, please!</a></p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=faf85fa2-d0f3-4a69-8e52-8c30b0e9a995" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>The S stands for Simple by Pete Lacey</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,faf85fa2-d0f3-4a69-8e52-8c30b0e9a995.aspx</guid>
      <link>http://www.aniltj.com/blog/2006/11/17/TheSStandsForSimpleByPeteLacey.aspx</link>
      <pubDate>Fri, 17 Nov 2006 03:48:02 GMT</pubDate>
      <description>&lt;p&gt;
LOL!&amp;nbsp; From Pete Lacey at the Burton Group:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;SG:&lt;/strong&gt;&amp;nbsp;[....] From here on in we pass around coarse-grained messages—you
like that term, coarse-grained?. Messages that conform to an XML Schema. We call the
new style Document/Literal and the old style RPC/Encoded. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Dev:&lt;/strong&gt; XML Schema? 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;SG:&lt;/strong&gt; Oh, it’s all the rage. Next big thing. Take a look. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Dev:&lt;/strong&gt; &lt;em&gt;(Reads XML Schema spec)&lt;/em&gt;. Saints preserve us! Alexander
the Great couldn’t unravel that. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;SG:&lt;/strong&gt; Don’t worry about it. Your tools will create the schema for you.
Really, its all about the tooling. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Dev:&lt;/strong&gt; How are the tools gonna do that? 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;SG:&lt;/strong&gt; Well, they will reflect on your code (if possible) and autogenerate
a compliant schema. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Dev:&lt;/strong&gt; Reflect on my code? I thought it was all about documents, not
serialized objects. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;SG:&lt;/strong&gt; Didn’t you hear me? It’s all about the tools. Anyway, we can’t
expect you to write XML Schema and WSDL by hand. Besides, its just plumbing. You don’t
need to see it. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Dev:&lt;/strong&gt; Whoa, back up. What was that word? Wizzdle? 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;SG:&lt;/strong&gt; Oh, haven’t I mentioned WSDL? W-S-D-L. Web Services Description
Language. It’s how you specify the data types, parameter lists, operation names, transport
bindings, and the endpoint URI, so that client developers can access your service.
Check it out. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Dev:&lt;/strong&gt; &lt;em&gt;(Reads WSDL spec)&lt;/em&gt;. I trust that the guys who wrote
this have been shot. It’s not even internally consistent. And what’s with all this
HTTP GET bindings. I thought GET was undefined. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;SG:&lt;/strong&gt; Don’t worry about that. Nobody uses that. Anyway, your tools
will generate a WSDL, and in the WSDL will be the schema. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Dev:&lt;/strong&gt; But shouldn’t it be the other way ‘round? Shouldn’t I design
the contract first and then generate the code? 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;SG:&lt;/strong&gt; Well, yeah, I guess that sounds right in principle. But that’s
not so easy to do, and very few SOAP stacks support WSDL-first development. Just let
the tools worry about it.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
This is so darn funny, especially when you consider that it is so true! &lt;a href="http://wanderingbarque.com/nonintersecting/2006/11/15/the-s-stands-for-simple/"&gt;Go
read the entire thing, please!&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=faf85fa2-d0f3-4a69-8e52-8c30b0e9a995" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,faf85fa2-d0f3-4a69-8e52-8c30b0e9a995.aspx</comments>
      <category>Service Orientation</category>
    </item>
    <item>
      <trackback:ping>http://www.aniltj.com/blog/Trackback.aspx?guid=2567d9d4-a889-4b46-bc5a-51c42922bbb4</trackback:ping>
      <pingback:server>http://www.aniltj.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.aniltj.com/blog/PermaLink,guid,2567d9d4-a889-4b46-bc5a-51c42922bbb4.aspx</pingback:target>
      <dc:creator>Anil John</dc:creator>
      <wfw:comment>http://www.aniltj.com/blog/CommentView,guid,2567d9d4-a889-4b46-bc5a-51c42922bbb4.aspx</wfw:comment>
      <wfw:commentRss>http://www.aniltj.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=2567d9d4-a889-4b46-bc5a-51c42922bbb4</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
From the announcement:
</p>
        <blockquote>
          <p>
Apache Axis2 is a complete re-design and re-write of the widely used Apache Axis engine
and is a more efficient, more scalable, more modular and more XML-oriented Web services
framework. It is carefully designed to support the easy addition of plug-in "modules"
that extend its functionality for features such as security and reliability.
</p>
          <p>
Major Changes Since 1.0:<br />
- - Significantly improved documentation<br />
- - Significantly improved support for POJO services and clients<br />
- - Significantly improved support for Spring services<br />
- - Significantly improved Axis Data Binding (ADB) to increase schema coverage and
overall stability<br />
- - Improved service lifecycle model<br />
- - Improved JMS support<br />
- - Improved handler and module interfaces<br />
- - Improved Eclipse and Idea plugins<br />
- - New Attachments API for sending &amp; receiving MTOM and SwA attachments<br />
- - Built in support for WS-Policy via Apache Neethi<br />
- - Added support for unwrapping Web service requests<br />
- - Fixed tons of small and not-so-small bugs<br />
- - Major refactoring of release structure to make usage easy 
</p>
          <p>
Known Issues and Limitations in 1.1 Release:<br />
- - Unwrapping of response messages (coming in 1.2)<br />
- - JSR 181/183 Annotation support (coming in 1.2)<br />
- - JaxMe and JAXBRI data binding support is experimental
</p>
        </blockquote>
        <p>
I have updated my "<a href="http://www.aniltj.com/blog/2006/02/06/InstallAndConfigureApacheTomcatAxisForWebServiceDevelopmentOnWindowsXPSP2.aspx">Install
and configure Apache Tomcat/Axis for web service development on Windows XP SP2</a>"
post for Axis2 1.1.
</p>
        <img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=2567d9d4-a889-4b46-bc5a-51c42922bbb4" />
        <br />
        <hr />
These are solely my opinions and do not represent the thoughts, intentions, plans
or strategies of any third party, including my employer, except where explicitly stated.
This work is licensed under a Creative Commons Attribution 3.0 License.</body>
      <title>Apache Axis2 1.1 Released</title>
      <guid isPermaLink="false">http://www.aniltj.com/blog/PermaLink,guid,2567d9d4-a889-4b46-bc5a-51c42922bbb4.aspx</guid>
      <link>http://www.aniltj.com/blog/2006/11/15/ApacheAxis211Released.aspx</link>
      <pubDate>Wed, 15 Nov 2006 02:09:41 GMT</pubDate>
      <description>&lt;p&gt;
From the announcement:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
Apache Axis2 is a complete re-design and re-write of the widely used Apache Axis engine
and is a more efficient, more scalable, more modular and more XML-oriented Web services
framework. It is carefully designed to support the easy addition of plug-in "modules"
that extend its functionality for features such as security and reliability.
&lt;/p&gt;
&lt;p&gt;
Major Changes Since 1.0:&lt;br&gt;
- - Significantly improved documentation&lt;br&gt;
- - Significantly improved support for POJO services and clients&lt;br&gt;
- - Significantly improved support for Spring services&lt;br&gt;
- - Significantly improved Axis Data Binding (ADB) to increase schema coverage and
overall stability&lt;br&gt;
- - Improved service lifecycle model&lt;br&gt;
- - Improved JMS support&lt;br&gt;
- - Improved handler and module interfaces&lt;br&gt;
- - Improved Eclipse and Idea plugins&lt;br&gt;
- - New Attachments API for sending &amp;amp; receiving MTOM and SwA attachments&lt;br&gt;
- - Built in support for WS-Policy via Apache Neethi&lt;br&gt;
- - Added support for unwrapping Web service requests&lt;br&gt;
- - Fixed tons of small and not-so-small bugs&lt;br&gt;
- - Major refactoring of release structure to make usage easy 
&lt;/p&gt;
&lt;p&gt;
Known Issues and Limitations in 1.1 Release:&lt;br&gt;
- - Unwrapping of response messages (coming in 1.2)&lt;br&gt;
- - JSR 181/183 Annotation support (coming in 1.2)&lt;br&gt;
- - JaxMe and JAXBRI data binding support is experimental
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
I have updated my "&lt;a href="http://www.aniltj.com/blog/2006/02/06/InstallAndConfigureApacheTomcatAxisForWebServiceDevelopmentOnWindowsXPSP2.aspx"&gt;Install
and configure Apache Tomcat/Axis for web service development on Windows XP SP2&lt;/a&gt;"
post for Axis2&amp;nbsp;1.1.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aniltj.com/blog/aggbug.ashx?id=2567d9d4-a889-4b46-bc5a-51c42922bbb4" /&gt;
&lt;br /&gt;
&lt;hr /&gt;These are solely my opinions and do not represent the thoughts, intentions, plans or strategies of any third party, including my employer, except where explicitly stated. This work is licensed under a Creative Commons Attribution 3.0 License.</description>
      <comments>http://www.aniltj.com/blog/CommentView,guid,2567d9d4-a889-4b46-bc5a-51c42922bbb4.aspx</comments>
      <category>Service Orientation</category>
    </item>
  </channel>
</rss>