<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-3890053383555163357</atom:id><lastBuildDate>Thu, 03 Dec 2009 00:27:23 +0000</lastBuildDate><title>Architecture, EAI, SOA  &amp; BPM</title><description></description><link>http://architecturebpm.blogspot.com/</link><managingEditor>noreply@blogger.com (tusjain)</managingEditor><generator>Blogger</generator><openSearch:totalResults>28</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-9112354960366791409</guid><pubDate>Mon, 10 Nov 2008 14:26:00 +0000</pubDate><atom:updated>2008-11-11T06:53:15.760+05:30</atom:updated><category domain='http://www.blogger.com/atom/ns#'>SOA</category><category domain='http://www.blogger.com/atom/ns#'>Enterprise Architecture</category><category domain='http://www.blogger.com/atom/ns#'>SOA Thoughts</category><category domain='http://www.blogger.com/atom/ns#'>Application Architecture</category><category domain='http://www.blogger.com/atom/ns#'>SOA Reference Architecture</category><category domain='http://www.blogger.com/atom/ns#'>Reference Architecture</category><title>Relationship -1</title><description>In SOA ecosystem Security, Governance, Operations, Quality are closely related. Each face of SOA ecosystem affect other.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_C_T7tzfO8sg/SRhE-fHnIJI/AAAAAAAAAC0/aYRD6v7pAqU/s1600-h/Relationship.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 298px; height: 320px;" src="http://3.bp.blogspot.com/_C_T7tzfO8sg/SRhE-fHnIJI/AAAAAAAAAC0/aYRD6v7pAqU/s320/Relationship.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5267035604505796754" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-9112354960366791409?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/11/relationship-1.html</link><author>noreply@blogger.com (tusjain)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_C_T7tzfO8sg/SRhE-fHnIJI/AAAAAAAAAC0/aYRD6v7pAqU/s72-c/Relationship.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-5632661847247000314</guid><pubDate>Mon, 10 Nov 2008 14:06:00 +0000</pubDate><atom:updated>2008-11-10T19:51:01.084+05:30</atom:updated><category domain='http://www.blogger.com/atom/ns#'>SOA</category><category domain='http://www.blogger.com/atom/ns#'>Enterprise Architecture</category><category domain='http://www.blogger.com/atom/ns#'>SOA Thoughts</category><category domain='http://www.blogger.com/atom/ns#'>Application Architecture</category><category domain='http://www.blogger.com/atom/ns#'>SOA Reference Architecture</category><category domain='http://www.blogger.com/atom/ns#'>Reference Architecture</category><title>Remediation Framework</title><description>Remediation framework plays very important role in any SOA ecosystem. It can be though of extension of Error &amp; Exception Management and Transaction Management frameworks.  Remediation framework leverages Error &amp; Exception Management Framework by utilizing logged error &amp; exceptions. It also supplement Transaction Management Framework via helping to implement relaxed ACID where human intervention might be needed. Remediation framework also makes whole of SOA ecosystem robust via utilizing compensatory services.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_C_T7tzfO8sg/SRhDNzypNFI/AAAAAAAAACs/Rx8fsq8k8p8/s1600-h/remediation.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 210px;" src="http://3.bp.blogspot.com/_C_T7tzfO8sg/SRhDNzypNFI/AAAAAAAAACs/Rx8fsq8k8p8/s320/remediation.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5267033668729779282" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-5632661847247000314?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/11/remediation-framework.html</link><author>noreply@blogger.com (tusjain)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_C_T7tzfO8sg/SRhDNzypNFI/AAAAAAAAACs/Rx8fsq8k8p8/s72-c/remediation.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-3207398025991531972</guid><pubDate>Tue, 04 Nov 2008 14:45:00 +0000</pubDate><atom:updated>2008-11-04T20:26:34.302+05:30</atom:updated><category domain='http://www.blogger.com/atom/ns#'>SOA</category><category domain='http://www.blogger.com/atom/ns#'>Enterprise Architecture</category><category domain='http://www.blogger.com/atom/ns#'>SOA Thoughts</category><category domain='http://www.blogger.com/atom/ns#'>Application Architecture</category><category domain='http://www.blogger.com/atom/ns#'>SOA Reference Architecture</category><category domain='http://www.blogger.com/atom/ns#'>Reference Architecture</category><title>Exception &amp; Error Management</title><description>Exception &amp; Error Management is consist of&lt;br /&gt; Exception &amp; Error Handling&lt;br /&gt; Exception &amp; Error Logging&lt;br /&gt; Exception &amp; Error Notification&lt;br /&gt;In any enterprise under SOA ecosystem Exception &amp; Error Management poses following challenges:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Exception &amp; Error Handling&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;No predefined format for passing exception information among participating services&lt;br /&gt;Webservices do not have capability of maintaining stack trace&lt;br /&gt;Lack of common exception vocabulary across enterprise&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Exception &amp; Error Logging&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Scattered logs across services/applications&lt;br /&gt;Varying formats of logs across services/applications&lt;br /&gt;Toggling logs at run time is service/application dependent&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Exception &amp; Error Notification&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Every enterprise/LOB has its own unique notification requirement&lt;br /&gt;Toggling Notification at run time is necessity&lt;br /&gt;SLA and exceptions are coupled&lt;br /&gt;To counter these challenges there must be a comprehensive Exception and Error Management framework which can manage at enterprise level and form the foundation for Remediation framework.&lt;br /&gt;&lt;br /&gt;On the high level, Exception and Error Management framework’s architecture can be depicted as follows:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_C_T7tzfO8sg/SRBgxKPX59I/AAAAAAAAACA/MGirltYtBf8/s1600-h/ErrorExceptionManagement.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 136px;" src="http://2.bp.blogspot.com/_C_T7tzfO8sg/SRBgxKPX59I/AAAAAAAAACA/MGirltYtBf8/s320/ErrorExceptionManagement.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5264814362074802130" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-3207398025991531972?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/11/exception-error-management.html</link><author>noreply@blogger.com (tusjain)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_C_T7tzfO8sg/SRBgxKPX59I/AAAAAAAAACA/MGirltYtBf8/s72-c/ErrorExceptionManagement.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-3787148523197040391</guid><pubDate>Mon, 03 Nov 2008 16:35:00 +0000</pubDate><atom:updated>2008-11-03T22:07:28.619+05:30</atom:updated><category domain='http://www.blogger.com/atom/ns#'>SOA</category><category domain='http://www.blogger.com/atom/ns#'>Enterprise Architecture</category><category domain='http://www.blogger.com/atom/ns#'>SOA Thoughts</category><category domain='http://www.blogger.com/atom/ns#'>Application Architecture</category><category domain='http://www.blogger.com/atom/ns#'>SOA Reference Architecture</category><category domain='http://www.blogger.com/atom/ns#'>Reference Architecture</category><title>Transaction Management</title><description>Transaction Management is one of the most difficult aspects of any enterprise architecture due to varying level of understanding among stakeholders, various technological platforms involvement and spread of transactions – intra &amp; inter enterprise.&lt;br /&gt;&lt;br /&gt;In general any enterprise grade transaction framework follows ACID but due to presence of long running business processes and involvement of asynchronous communication traditional ACID becomes irrelevant. To accommodate long running business processes and asynchronous communication relaxed ACID is used which allows violation of ACID but with capability of correcting the violations in reasonable time period and with little business impact.&lt;br /&gt;&lt;br /&gt;SOA capable enterprise grade Transaction Framework should have following features:&lt;br /&gt;&lt;br /&gt;·  Multi level undo/redo&lt;br /&gt;· Coalescing of transactions&lt;br /&gt;· Automatic aggregation of nested transactions&lt;br /&gt;· Supports batching of transactions (Aggregation)&lt;br /&gt;· Rollback of aggregated transactions for error recovery&lt;br /&gt;· Listener support&lt;br /&gt;· Synchronous and Asynchronous Transaction&lt;br /&gt;· Compensatory Service&lt;br /&gt;· Transaction Propagation&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-3787148523197040391?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/11/transaction-management.html</link><author>noreply@blogger.com (tusjain)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-8906427535573369103</guid><pubDate>Fri, 31 Oct 2008 01:11:00 +0000</pubDate><atom:updated>2008-10-31T06:55:35.981+05:30</atom:updated><category domain='http://www.blogger.com/atom/ns#'>SOA</category><category domain='http://www.blogger.com/atom/ns#'>Enterprise Architecture</category><category domain='http://www.blogger.com/atom/ns#'>SOA Thoughts</category><category domain='http://www.blogger.com/atom/ns#'>Application Architecture</category><category domain='http://www.blogger.com/atom/ns#'>SOA Reference Architecture</category><category domain='http://www.blogger.com/atom/ns#'>Reference Architecture</category><title>Event Management</title><description>To exploit SOA to its full extent event handling plays crucial role. In SOA environment Events can be classified into three categories&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. Generic Event&lt;br /&gt;Event fired/raised in response of event or interaction with other service/s.&lt;br /&gt;&lt;br /&gt;2. Time Based Event&lt;br /&gt;Event fired/raised at particular moment of time to perform certain task&lt;br /&gt;&lt;br /&gt;3. Heart Beat Event&lt;br /&gt;Event fired/raised by services at regular interval to announce its existence and may be level of throughput it is working.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Generic Event Handling&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;These are events which fire/raise other events or results due to interaction of services in ecosystem.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_C_T7tzfO8sg/SQpdH4e5mTI/AAAAAAAAABo/TCGRLV71O4A/s1600-h/GenericEventHandling.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 219px;" src="http://1.bp.blogspot.com/_C_T7tzfO8sg/SQpdH4e5mTI/AAAAAAAAABo/TCGRLV71O4A/s320/GenericEventHandling.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5263121504538302770" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;1. Event Generator generates events with minimal data set.&lt;br /&gt;&lt;br /&gt;2. These events should be formatted as per the event protocol defined in ecosystem, so that theses event are available to entire ecosystem for further processing.&lt;br /&gt;&lt;br /&gt;Ø Event Pre-processing: Check that mandatory attributes are present in the incoming events&lt;br /&gt;Ø Event Refinement: Introduce the other system-generated attributes like start time etc.&lt;br /&gt;Ø Situation Refinement: Check the target status on which action would be performed&lt;br /&gt;Ø Impact assessment: Required result assessment after that impact applies on the target&lt;br /&gt;&lt;br /&gt;3. Event factory determine the specific type of action, which the given event have.&lt;br /&gt;&lt;br /&gt;4. Event listener executes the specific action, which stated at the specific action code. There we have some general action apply to all type of system is present in generic action code and specific to specific action is present in the specific action listener&lt;br /&gt;&lt;br /&gt;5. Event listener executes the action and calls the required system to complete it.&lt;br /&gt;&lt;br /&gt;6. Some event, which completed their actions, and no further support needed from any other services are terminated&lt;br /&gt;&lt;br /&gt;7. Some events which need further processing from some other services or may be generate other event in response of event is send back to the event engine&lt;br /&gt;&lt;br /&gt;8. Event in response of event is again run as a new event and again it initiates its processing cycle in the event engine&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Time Based Event Handling&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Scheduled event delivered to a service at specific time in the future. Event deliveries can be deferred for short periods of time (such as seconds or minutes) or for long stretches of time (for example, hours later for batch processing). Until that delivery time, the Event is essentially invisible until it is delivered, allowing you to schedule work at a particular time in the future.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_C_T7tzfO8sg/SQpdtSpbGSI/AAAAAAAAABw/gNd4vcvEXqQ/s1600-h/TimeBasedEventHandling.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 186px;" src="http://1.bp.blogspot.com/_C_T7tzfO8sg/SQpdtSpbGSI/AAAAAAAAABw/gNd4vcvEXqQ/s320/TimeBasedEventHandling.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5263122147216922914" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Heart Beat Event Handling&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Heartbeats, a common software construct, verify the continual operation of a specific service. With heartbeats, a targeted service continually broadcasts a signal across its environment. System works normally when client services can detect a targeted service's heartbeat signals&lt;br /&gt;&lt;br /&gt;There is number of interdependent services in SOA ecosystem such that, if one failed, others will also fail.&lt;br /&gt;&lt;br /&gt;Heartbeat generally propagated across SOA ecosystem using publish/subscribe paradigm.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_C_T7tzfO8sg/SQpeOouUcCI/AAAAAAAAAB4/VdeofH8e4g8/s1600-h/HeartBeatEventHandling.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 286px; height: 320px;" src="http://3.bp.blogspot.com/_C_T7tzfO8sg/SQpeOouUcCI/AAAAAAAAAB4/VdeofH8e4g8/s320/HeartBeatEventHandling.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5263122720078721058" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-8906427535573369103?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/10/event-management.html</link><author>noreply@blogger.com (tusjain)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_C_T7tzfO8sg/SQpdH4e5mTI/AAAAAAAAABo/TCGRLV71O4A/s72-c/GenericEventHandling.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-8630386065445567392</guid><pubDate>Fri, 31 Oct 2008 01:10:00 +0000</pubDate><atom:updated>2008-10-31T06:41:54.845+05:30</atom:updated><category domain='http://www.blogger.com/atom/ns#'>SOA</category><category domain='http://www.blogger.com/atom/ns#'>Enterprise Architecture</category><category domain='http://www.blogger.com/atom/ns#'>SOA Thoughts</category><category domain='http://www.blogger.com/atom/ns#'>Application Architecture</category><category domain='http://www.blogger.com/atom/ns#'>SOA Reference Architecture</category><category domain='http://www.blogger.com/atom/ns#'>Reference Architecture</category><title>Service Life Cycle Management</title><description>Service Life Cycle Management essentially help in managing service life cycle from its conception to decommission. This is one of the vital component which determine the success of SOA initiative in any enterprise and also its long term viability.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-8630386065445567392?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/10/service-life-cycle-management.html</link><author>noreply@blogger.com (tusjain)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-2664398121896342208</guid><pubDate>Fri, 31 Oct 2008 01:09:00 +0000</pubDate><atom:updated>2008-10-31T06:40:38.180+05:30</atom:updated><category domain='http://www.blogger.com/atom/ns#'>SOA</category><category domain='http://www.blogger.com/atom/ns#'>SOA Thoughts</category><category domain='http://www.blogger.com/atom/ns#'>Application Architecture</category><category domain='http://www.blogger.com/atom/ns#'>SOA Reference Architecture</category><category domain='http://www.blogger.com/atom/ns#'>Reference Architecture</category><title>Rule/Policy Repository &amp; Engine</title><description>Rule/Policy Repository contain various Business Rules and Governance &amp; Security Policies. The engine part of the same will help in execution of Rules ans Policies as and when demanded.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-2664398121896342208?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/10/rulepolicy-repository-engine.html</link><author>noreply@blogger.com (tusjain)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-1327464546173659380</guid><pubDate>Fri, 31 Oct 2008 01:08:00 +0000</pubDate><atom:updated>2008-10-31T06:39:51.266+05:30</atom:updated><category domain='http://www.blogger.com/atom/ns#'>SOA</category><category domain='http://www.blogger.com/atom/ns#'>SOA Thoughts</category><category domain='http://www.blogger.com/atom/ns#'>Application Architecture</category><category domain='http://www.blogger.com/atom/ns#'>SOA Reference Architecture</category><category domain='http://www.blogger.com/atom/ns#'>Reference Architecture</category><title>Service Directory</title><description>Service directory essentially consists of UDDI which facilitates consolidated listing of services.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-1327464546173659380?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/10/service-directory.html</link><author>noreply@blogger.com (tusjain)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-4008838843252754229</guid><pubDate>Tue, 28 Oct 2008 00:29:00 +0000</pubDate><atom:updated>2008-10-28T06:03:51.119+05:30</atom:updated><category domain='http://www.blogger.com/atom/ns#'>SOA</category><category domain='http://www.blogger.com/atom/ns#'>SOA Thoughts</category><category domain='http://www.blogger.com/atom/ns#'>Application Architecture</category><category domain='http://www.blogger.com/atom/ns#'>SOA Reference Architecture</category><category domain='http://www.blogger.com/atom/ns#'>Reference Architecture</category><title>Governance</title><description>Governance is one of the burning issue in SOA environment. To discuss SOA Governance's Technical architecture, it is necessary to understand SOA Governance model.&lt;br /&gt;&lt;br /&gt;Following figure depicts the SOA Governance Model. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_C_T7tzfO8sg/SQZdjyFwPEI/AAAAAAAAABY/sMdUrVgaDtU/s1600-h/SOA+Governance+Model.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 178px;" src="http://4.bp.blogspot.com/_C_T7tzfO8sg/SQZdjyFwPEI/AAAAAAAAABY/sMdUrVgaDtU/s320/SOA+Governance+Model.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5261996083951713346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The picture below intend to depict SOA Governance Technical Architecture. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_C_T7tzfO8sg/SQZdzlMmLGI/AAAAAAAAABg/cDnrFX7yHqw/s1600-h/SOAGovernance.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 118px;" src="http://1.bp.blogspot.com/_C_T7tzfO8sg/SQZdzlMmLGI/AAAAAAAAABg/cDnrFX7yHqw/s320/SOAGovernance.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5261996355368660066" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-4008838843252754229?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/10/governance.html</link><author>noreply@blogger.com (tusjain)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_C_T7tzfO8sg/SQZdjyFwPEI/AAAAAAAAABY/sMdUrVgaDtU/s72-c/SOA+Governance+Model.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-3948929098435673741</guid><pubDate>Sun, 28 Sep 2008 15:17:00 +0000</pubDate><atom:updated>2008-09-28T20:56:58.811+05:30</atom:updated><category domain='http://www.blogger.com/atom/ns#'>SOA</category><category domain='http://www.blogger.com/atom/ns#'>SOA Thoughts</category><category domain='http://www.blogger.com/atom/ns#'>Application Architecture</category><category domain='http://www.blogger.com/atom/ns#'>SOA Reference Architecture</category><category domain='http://www.blogger.com/atom/ns#'>Reference Architecture</category><title>Security</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_C_T7tzfO8sg/SN-iLgPj68I/AAAAAAAAAA8/Nw2wHfh1-eI/s1600-h/untitled.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_C_T7tzfO8sg/SN-iLgPj68I/AAAAAAAAAA8/Nw2wHfh1-eI/s320/untitled.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5251094009054751682" /&gt;&lt;/a&gt;&lt;br /&gt;Security in SOA is one of the biggest concern due to distributed &amp; heterogeneous systems interacting with each other. The security related aspects should be handled at each level of enterprise. In the proposed model security is considered from physical and virtual perspective. It also take into account security from network and application view.&lt;br /&gt;&lt;br /&gt;At monitoring front it take care of Technical - For support staff, Process &amp; Managerial - For business process owners &amp; managers and Executive - for top rung of business leadership requirements.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-3948929098435673741?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/09/security.html</link><author>noreply@blogger.com (tusjain)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_C_T7tzfO8sg/SN-iLgPj68I/AAAAAAAAAA8/Nw2wHfh1-eI/s72-c/untitled.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-7457424558325866630</guid><pubDate>Tue, 23 Sep 2008 02:57:00 +0000</pubDate><atom:updated>2008-11-11T06:53:55.055+05:30</atom:updated><category domain='http://www.blogger.com/atom/ns#'>SOA</category><category domain='http://www.blogger.com/atom/ns#'>Enterprise Architecture</category><category domain='http://www.blogger.com/atom/ns#'>SOA Thoughts</category><category domain='http://www.blogger.com/atom/ns#'>Application Architecture</category><category domain='http://www.blogger.com/atom/ns#'>SOA Reference Architecture</category><category domain='http://www.blogger.com/atom/ns#'>Reference Architecture</category><title>SOA Reference Architecture - v 2</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_C_T7tzfO8sg/SNhbd9C7qmI/AAAAAAAAAA0/_HSwBZVPamM/s1600-h/SOA+Reference+Arch.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_C_T7tzfO8sg/SNhbd9C7qmI/AAAAAAAAAA0/_HSwBZVPamM/s320/SOA+Reference+Arch.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5249045935861508706" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-7457424558325866630?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/09/soa-reference-architecture-v-2.html</link><author>noreply@blogger.com (tusjain)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_C_T7tzfO8sg/SNhbd9C7qmI/AAAAAAAAAA0/_HSwBZVPamM/s72-c/SOA+Reference+Arch.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-5030668037602923153</guid><pubDate>Tue, 23 Sep 2008 02:54:00 +0000</pubDate><atom:updated>2008-09-23T08:26:51.487+05:30</atom:updated><category domain='http://www.blogger.com/atom/ns#'>SOA</category><category domain='http://www.blogger.com/atom/ns#'>SOA Thoughts</category><category domain='http://www.blogger.com/atom/ns#'>Application Architecture</category><category domain='http://www.blogger.com/atom/ns#'>SOA Reference Architecture</category><category domain='http://www.blogger.com/atom/ns#'>Reference Architecture</category><title>Integration with Outer World</title><description>Most of the large enterprises also get integrated with external world. This integration is both way - information flow is in both direction. To further complicate the scenario, enterprises increasingly using SAAS. This situation requires special attention and tools. In case of integration with business partners B2B Engine plays major role in conjunction with Partner services. SAAS services may be consumed directly or via B2B engine. In case of Human interaction (CRM - Salesforce.com) B2B Engine should be bypassed but for m/c interaction or substantial data transfer ( Document management for insurance companies) B2B engine should be engaged.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-5030668037602923153?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/09/integration-with-outer-world.html</link><author>noreply@blogger.com (tusjain)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-5801263041661140014</guid><pubDate>Wed, 10 Sep 2008 01:05:00 +0000</pubDate><atom:updated>2008-09-10T06:46:25.650+05:30</atom:updated><category domain='http://www.blogger.com/atom/ns#'>SOA</category><category domain='http://www.blogger.com/atom/ns#'>SOA Thoughts</category><category domain='http://www.blogger.com/atom/ns#'>Application Architecture</category><category domain='http://www.blogger.com/atom/ns#'>SOA Reference Architecture</category><category domain='http://www.blogger.com/atom/ns#'>Reference Architecture</category><title>Presentation Services</title><description>These services support various user interfaces ( human or machine centric) and let outer world (intra &amp; inter enterprise) interact with enterprises IT assets. The consumers of presentation services are&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Human&lt;/b&gt; &lt;br /&gt;        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;U&gt;Thin Client&lt;/U&gt; &lt;br /&gt;&lt;br /&gt;                &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Browser clients: May be based on traditional HTML based or AJAX based &lt;br /&gt;&lt;br /&gt;                &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Portable devices: May be based on open standards (WAP) or propitiatory ( device or carrier specific) &lt;br /&gt;&lt;br /&gt;        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;u&gt;Thick Client&lt;/U&gt; &lt;br /&gt;&lt;br /&gt;                &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Alway Connected: These clients connect to service providers and consume the services in real time. Traditional think client falls in this category&lt;br /&gt;&lt;br /&gt;                &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Offline Clients: These clients does not connect to service providers in Always On fashion but an actor can work in offline mode and when ever connectivity available, services consumed. Java WebStart and Adobe AIR are two most widely used technologies in this field.&lt;br /&gt;&lt;br /&gt;        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;u&gt;Voice Based Client&lt;/u&gt; &lt;br /&gt;                Voice based clients are gaining popularly to reduce load on contact center. To facilitate this type of user interface, IVR plays great role.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Machine&lt;/b&gt; &lt;br /&gt;        This type of interfaces are not very obvious but very prevent at enterprise level.  Application level interaction ( Software to software) and interaction with various devices like RFID tags, Bar code readers, etc ( Hardware to Software or vice versa) are part of this type of interfaces.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-5801263041661140014?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/09/presentation-services.html</link><author>noreply@blogger.com (tusjain)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-2903882125125676676</guid><pubDate>Fri, 05 Sep 2008 01:07:00 +0000</pubDate><atom:updated>2008-09-05T06:38:54.659+05:30</atom:updated><category domain='http://www.blogger.com/atom/ns#'>SOA</category><category domain='http://www.blogger.com/atom/ns#'>SOA Thoughts</category><category domain='http://www.blogger.com/atom/ns#'>Application Architecture</category><category domain='http://www.blogger.com/atom/ns#'>SOA Reference Architecture</category><category domain='http://www.blogger.com/atom/ns#'>Reference Architecture</category><title>Enterprise Service Bus</title><description>ESB provides four functionalities: &lt;br /&gt;&lt;br /&gt;Orchestration &lt;br /&gt;Routing &lt;br /&gt;Mediation &lt;br /&gt;Enrichment &lt;br /&gt;&lt;br /&gt;Some ESBs may provide one more functionality - Choreography. This functionality is associated with BPM systems and currently none of Commercially available ESB provide the same.&lt;br /&gt;&lt;br /&gt;Enrichment may be of two types: Data Transformation and Channel Transformation. Most of the analysts keep Data Transformation &amp; Channel Transformation separate functionality.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-2903882125125676676?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/09/enterprise-service-bus.html</link><author>noreply@blogger.com (tusjain)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-8086785906240715620</guid><pubDate>Fri, 20 Jun 2008 19:52:00 +0000</pubDate><atom:updated>2008-06-21T01:23:54.863+05:30</atom:updated><title>Services Layer Contd....</title><description>1. Connectivity services primarily cater to accessing system level functionalities, any adapter &amp; connector services and partner (B2B) integration services.&lt;br /&gt;&lt;br /&gt;2. Data services comprises of services which caters to Business, Technical and Meta data related services.&lt;br /&gt;&lt;br /&gt;3. Business Activity Services consist of Atomic business/functionalities and any custom business logic developed by combing one or more Data &amp; Connectivity services.&lt;br /&gt;&lt;br /&gt;4. Business Process Services primarily consist of Process integration, Machine and Human centric services. These services primarily comprise of Business Activity services.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-8086785906240715620?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/06/services-layer-contd.html</link><author>noreply@blogger.com (tusjain)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-917407338316786809</guid><pubDate>Mon, 09 Jun 2008 15:10:00 +0000</pubDate><atom:updated>2008-06-09T20:50:16.803+05:30</atom:updated><category domain='http://www.blogger.com/atom/ns#'>SOA</category><category domain='http://www.blogger.com/atom/ns#'>SOA Thoughts</category><category domain='http://www.blogger.com/atom/ns#'>Application Architecture</category><category domain='http://www.blogger.com/atom/ns#'>SOA Reference Architecture</category><category domain='http://www.blogger.com/atom/ns#'>Reference Architecture</category><title>Services Layer</title><description>This layer is consists of multiple sub layers which encapsulate different class of services. It encompasses Connectivity Services, Data Services, Business Activity Services and Business Process Services. Each layer in turn consists of other sub-types of services. &lt;br /&gt;&lt;br /&gt;This layer exposes different aspects of business - functional and infrastructural aspects. Connectivity and Data services are consist of Infrastructural services while Business Activity and Process services exposes functional Services.&lt;br /&gt;&lt;br /&gt;These services though in layers but still breach layered architecture to expose these services independent of layers and for better performance.  These services can also be exposed to multiple ESBs if situation warrants.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-917407338316786809?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/06/services-layer.html</link><author>noreply@blogger.com (tusjain)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-6946047362222028897</guid><pubDate>Mon, 26 May 2008 00:27:00 +0000</pubDate><atom:updated>2008-05-26T06:04:28.392+05:30</atom:updated><category domain='http://www.blogger.com/atom/ns#'>SOA</category><category domain='http://www.blogger.com/atom/ns#'>SOA Thoughts</category><category domain='http://www.blogger.com/atom/ns#'>SOA Reference Architecture</category><category domain='http://www.blogger.com/atom/ns#'>Reference Architecture</category><title>Service Providers</title><description>&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;This Layer consists of different business applications. These applications may be packaged (e.g. SAP, Reteck, etc) or may be custom developed in various technologies (e.g. Java, .Net, etc). Again application in this layer may be service enabled or legacy once, which do not expose their functionalities as service.&lt;br /&gt;&lt;br /&gt;At this layer EAI exist. Some may argue that SOA is one form of integration then how EAI can exist at this layer. I will discuss this argument in one of my future posting but not now.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-6946047362222028897?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/05/service-providers.html</link><author>noreply@blogger.com (tusjain)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-495379946701974424</guid><pubDate>Tue, 20 May 2008 16:11:00 +0000</pubDate><atom:updated>2008-05-20T22:10:22.543+05:30</atom:updated><title>Data Persistent Layer</title><description>Data Persistent Layer is primarily consists of Enterprise Data - Master, Transaction and Meta. It may also include Datamart and Data driven reporting infrastructure.&lt;br /&gt;&lt;br /&gt;In most of the large enterprises Data Persistent Layer consists of relational (RDBMS), hierarchical (LDAP, IMS), unstructured ( Emails, chat sessions, file systems, etc) and any other type. This variation in data characteristics warrant unique data handling and treatment technologies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-495379946701974424?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/05/data-persistent-layer.html</link><author>noreply@blogger.com (tusjain)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-5907070543895316535</guid><pubDate>Mon, 19 May 2008 16:52:00 +0000</pubDate><atom:updated>2008-05-19T22:26:18.241+05:30</atom:updated><category domain='http://www.blogger.com/atom/ns#'>SOA Thoughts</category><category domain='http://www.blogger.com/atom/ns#'>SOA Reference Architecture</category><title>SOA Reference Architecture</title><description>&lt;p class="mobile-photo"&gt;&lt;a href="http://2.bp.blogspot.com/_C_T7tzfO8sg/SDGwbabFR0I/AAAAAAAAAAs/2TKGyBDnLQQ/s1600-h/SOA+Reference+Arch-781384.jpg"&gt;&lt;img src="http://2.bp.blogspot.com/_C_T7tzfO8sg/SDGwbabFR0I/AAAAAAAAAAs/2TKGyBDnLQQ/s320/SOA+Reference+Arch-781384.jpg" alt="" id="BLOGGER_PHOTO_ID_5202133029585504066" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-5907070543895316535?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/05/soa-reference-architecture_19.html</link><author>noreply@blogger.com (tusjain)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_C_T7tzfO8sg/SDGwbabFR0I/AAAAAAAAAAs/2TKGyBDnLQQ/s72-c/SOA+Reference+Arch-781384.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-5284484678137356002</guid><pubDate>Fri, 16 May 2008 01:49:00 +0000</pubDate><atom:updated>2008-05-18T08:24:13.478+05:30</atom:updated><category domain='http://www.blogger.com/atom/ns#'>SOA</category><category domain='http://www.blogger.com/atom/ns#'>SOA Reference Architecture</category><category domain='http://www.blogger.com/atom/ns#'>Reference Architecture</category><title>SOA Reference Architecture</title><description>&lt;p class="mobile-photo"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="mobile-photo"&gt;Here I propose SOA Enterprise Reference Architecture. I will discuss the details of this reference architecture in detail with my subsequent posts.&lt;br /&gt;&lt;/p&gt;Reference Architecture is independent of platforms offered by various vendors. It is also possible that none of the vendors in market provide complete solution to realize this reference architecture.&lt;br /&gt;&lt;br /&gt;&lt;p class="mobile-photo"&gt;&lt;a href="http://1.bp.blogspot.com/_C_T7tzfO8sg/SCzoIabFRzI/AAAAAAAAAAk/PCI3hcfZkz0/s1600-h/SOA+Reference+Arch-760645.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-5284484678137356002?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/05/soa-reference-architecture.html</link><author>noreply@blogger.com (tusjain)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-7985531751887992841</guid><pubDate>Wed, 14 May 2008 04:08:00 +0000</pubDate><atom:updated>2008-05-14T09:46:47.381+05:30</atom:updated><title>eGovernment SOA</title><description>&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Definition:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Service can be defined as system or organization that provides stakeholders with some thing that they need/ask for or and consequence of execution of it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Stakeholders involved may be people, organizations or systems.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Stakeholders:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ol style="margin-top: 0in;" start="1" type="1"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Client&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;ol style="margin-top: 0in;" start="1" type="a"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Citizen&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Business&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Public       Administration Organization&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Service      Organization&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;ol style="margin-top: 0in;" start="1" type="a"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Service       Provider&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Evidence       Verifier&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Evidence       Provider&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;  &lt;p class="MsoNormal" style="margin-left: 1.5in; text-indent: -1.5in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;                                                              &lt;/span&gt;i.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Primary&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1.5in; text-indent: -1.5in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;                                                             &lt;/span&gt;ii.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Auxiliary&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ol style="margin-top: 0in;" start="2" type="1"&gt;&lt;ol style="margin-top: 0in;" start="4" type="a"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Consequence       (Auxiliary Outputs) Receiver&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Primary       Output Receiver&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Service      Broker&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;ol style="margin-top: 0in;" start="1" type="a"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Service       Repository&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Interoperability       Agent&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Service Interaction: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;The Client contacts a Service Provider (Public Administration Organization) and asks for a service that requires for its execution input from organizations located in national/states/municipalities across India. The Service Provider, after gathering from these countries all evidences needed for Service execution, executes the Service based on predefined Rules and provides Client with an output &lt;i&gt;(Primary Output) &lt;/i&gt;and all organizations with the consequences &lt;i&gt;(Auxiliary Outputs) &lt;/i&gt;of the Service.&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Preconditions:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;A client identifies service organization and ensures that potential service exists. Client provides minimum set of evidences (primary inputs) needed for initiating the service identification. Client may also supply Auxiliary inputs ( in form of evidences and references to evidences) as required by service contract.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Post conditions:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoBodyText"&gt;Client receives the Output (primary output) of service execution and participatory organizations receive consequences (Auxiliary Outputs).&lt;/p&gt;&lt;!--[if !supportEmptyParas]--&gt;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;    &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Interaction Model:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="mobile-photo"&gt;&lt;a href="http://4.bp.blogspot.com/_C_T7tzfO8sg/SCplvqbFRyI/AAAAAAAAAAc/LDWFxjuihhg/s1600-h/ServiceExecution-710744.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_C_T7tzfO8sg/SCplvqbFRyI/AAAAAAAAAAc/LDWFxjuihhg/s320/ServiceExecution-710744.jpg" alt="" id="BLOGGER_PHOTO_ID_5200080589268797218" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Description:&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h1&gt;Participating Roles&lt;/h1&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Client&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Primary Output Receiver&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Service Provider&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Broker (Service Repository, Interoperability Agent)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Evidence Provider&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Evidence Verifier&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Consequence Receiver &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h1&gt;Description of Steps&lt;/h1&gt;  &lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Step 1. A client requests for service. He/she supplies some evidences and some references to evidences. Evidence supplied by client may be categorized as:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Evidence required for identification purpose&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Evidences needed to fetch more evidences from evidence providers&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;         3.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;Evidences needed to execute service &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Less evidences supplied by client to Service Provider, transparent is the service. Of course number and type of evidences required are service specific.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Step 2. Service provider supplies the evidences/credentials of client Broker that in turn passes the same to Evidence Verifier. Evidence Verifier verifies credentials of Client and accordingly supplies the results to Service provider via Broker. Now Client has an Identity.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Step 3. Service Provider looks up for more evidences on the based of identity established for client and references provided by client with the help of Evidence Providers via Broker. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Step 4. Evidences collected from Client, Evidence Suppliers are passed to Evidence Verifiers via Broker.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Step 5. On positive out come of Evidence Verifiers, Service is executed. The outcomes of service are passed to Primary and Auxiliary Output Receivers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Class Model:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;The interaction model can be depicted in class model in two parts&lt;/span&gt;&lt;/a&gt;&lt;a class="msocomanchor" id="_anchor_1" onmouseover="msoCommentShow('_anchor_1','_com_1')" onmouseout="msoCommentHide('_com_1')" href="#_msocom_1" language="JavaScript" name="_msoanchor_1"&gt;&lt;/a&gt;&lt;!--[endif]--&gt;&lt;span class="MsoCommentReference"&gt;&lt;span style="font-size: 8pt; display: none;"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;   &lt;/span&gt;&lt;br /&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;The Operational (Transactional) Part&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;The Knowledge (Planning) Part&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style=""&gt;&lt;!--[if !supportAnnotations]--&gt;  &lt;hr class="msocomoff" align="left" size="1" width="33%"&gt;  &lt;!--[endif]--&gt;  &lt;div style=""&gt;&lt;!--[if !supportAnnotations]--&gt;  &lt;div id="_com_1" class="msocomtxt" language="JavaScript" onmouseover="msoCommentShow('_anchor_1','_com_1')" onmouseout="msoCommentHide('_com_1')"&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;&lt;!--[if !supportAnnotations]--&gt;&lt;a name="_msocom_1"&gt;&lt;/a&gt;&lt;!--[endif]--&gt;&lt;/span&gt;  &lt;p class="MsoCommentText"&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-begin'"&gt;&lt;/span&gt;PAGE \# &amp;quot;'Page: '#'&lt;br /&gt;'&amp;quot;&lt;span class="MsoCommentReference"&gt;&lt;span style="'font-size:8.0pt'"&gt;&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-end'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span class="MsoCommentReference"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;!--[if !supportAnnotations]--&gt;&lt;/div&gt;  &lt;!--[endif]--&gt;&lt;/div&gt;  &lt;/div&gt;  &lt;p class="mobile-photo"&gt;&lt;a href="http://4.bp.blogspot.com/_C_T7tzfO8sg/SCplvqbFRxI/AAAAAAAAAAU/o4RXWkj5eHo/s1600-h/ServiceClassDiagram-Planning-710302.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_C_T7tzfO8sg/SCplvqbFRxI/AAAAAAAAAAU/o4RXWkj5eHo/s320/ServiceClassDiagram-Planning-710302.jpg" alt="" id="BLOGGER_PHOTO_ID_5200080589268797202" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="mobile-photo"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="mobile-photo"&gt;&lt;a href="http://4.bp.blogspot.com/_C_T7tzfO8sg/SCplvqbFRwI/AAAAAAAAAAM/lK9ysgf170w/s1600-h/ServiceClassDiagram-Operational-705795.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_C_T7tzfO8sg/SCplvqbFRwI/AAAAAAAAAAM/lK9ysgf170w/s320/ServiceClassDiagram-Operational-705795.jpg" alt="" id="BLOGGER_PHOTO_ID_5200080589268797186" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-7985531751887992841?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/05/egovernment-soa.html</link><author>noreply@blogger.com (tusjain)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_C_T7tzfO8sg/SCplvqbFRyI/AAAAAAAAAAc/LDWFxjuihhg/s72-c/ServiceExecution-710744.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-8871387503588049524</guid><pubDate>Mon, 12 May 2008 15:57:00 +0000</pubDate><atom:updated>2008-05-12T22:38:36.841+05:30</atom:updated><title>Service Versioning</title><description>&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Verdana;"&gt;Versioning assumes simultaneous existence of multiple (different) implementation of an artifact (code, document, etc). In the case of SOA, service versioning equates to coexistence of multiple versions of the same service, which allows each consumer to use the version that it is designed and tested for. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Verdana;"&gt;Multiple coexisting versions of the same service in the system allows for the independent life cycles of services and their consumers and minimizes the overall impact of the introduction of changes. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Verdana;"&gt;The basic idea of service versioning is fairly simple and straightforward, but its implementation requires definition of the following: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Verdana;"&gt;1. Units of versioning &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Verdana;"&gt;2. Version Definition &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Verdana;"&gt;3. Version Deployment/Access Approaches &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-family:Verdana;"&gt;Units of Versioning&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;span style="font-family:Verdana;"&gt;: Assuming WebService is implementation technology, Service as whole is versioned or individual methods in a service. Both approaches have their own drawbacks and benefits. The first approach is consistent with current Object Oriented and Component Based development paradigm but poses challenges when the service contain various methods and various users while change affects only few methods. The second approach has following advantages:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ol start="1" type="1"&gt;&lt;ol start="1" type="a"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-family:Verdana;"&gt;It allows for immutable services. The service       can provide additional methods (versions of methods), some of which can       be deprecated over time, but the service itself, its name and       classification, seldom changes. This scheme resembles versioning       approaches in popular programming languages, such as Java or C#, where       methods on classes are added and deprecated quite often while existing       classes that are widely used rarely change.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ol start="1" type="1"&gt;&lt;ol start="2" type="a"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-family:Verdana;"&gt;It minimizes the impact of the service       changes to consumers. Only consumers using a particular method are       affected by a change, instead of all service consumers. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ol start="1" type="1"&gt;&lt;ol start="3" type="a"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-family:Verdana;"&gt;It minimizes the overall amount of deployed       code. Only methods with a new version get redeployed in the process of       introduction of the new version. The code implementing methods that have       not changed remains unchanged. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Verdana;"&gt;The disadvantages are: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ol start="1" type="a"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-family:Verdana;"&gt;It calls for deploying each method independently with its own      endpoint address (es). (Although such a deployment approach is not      mainstream today, it has some advantages, such as providing different      service-level agreements (SLA) for different methods within the same service.)      &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ol start="2" type="a"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-family:Verdana;"&gt;It requires a different, slightly more complex, service      invocation-addressing schema. Instead of specifying a service that it      needs to invoke, the service consumer, in this case, needs to explicitly      specify the service, the operation, and the version of the operation that      it requires. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-family:Verdana;"&gt;Version Definition:&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;span style="font-family:Verdana;"&gt; The major components of a service are interface and message. All changes in interface and message definitions does not constitute a newer version, only those result in changes in consumer are marked as candidate for new version. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;b&gt;&lt;span style="font-family:Verdana;"&gt;Service-Interface Changes&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Verdana;"&gt;: The service's method signature (interface) in case of semantic messaging is: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre style=""&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;          &lt;/span&gt;serviceMethod(XML in, XML out)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style="font-family:Verdana;"&gt;Due to very definition of interface, it never changes, so no question of version. If each method is deployed and addressed individually, so new methods introduced will not impact existing consumers. If a method is deprecated, some sort of warning can be incorporated in returned message. In case of elimination, major impact in consumer and may require revamp of consumer. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;b&gt;&lt;span style="font-family:Verdana;"&gt;Service-Message Changes&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Verdana;"&gt;: Message change will be covered by XML schema versioning technique. The changes in XML schema can categorized under three categories: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre style="margin-left: 0.5in;"&gt;&lt;b&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;Revisions&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;: It represents schema changes, which have no semantic meaning e.g. comments, formatting, white spaces, etc. So, no versioning effect.&lt;br /&gt;&lt;br /&gt;&lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt;&lt;br /&gt;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.5in;"&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;In addition of this, initial incremental development of schema before publishing can be considered as revision.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=""&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=""&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=""&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;&lt;span style=""&gt;             &lt;/span&gt;&lt;b&gt;Minor Changes&lt;/b&gt;: It represents backward compatible changes. e.g.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;&lt;span style=""&gt;          &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 63.8pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Georgia;font-size:12;"  &gt;a.&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;      &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;Changing optionality of a local element or element reference&lt;span style=""&gt;      &lt;/span&gt;from required to optional&lt;br /&gt;&lt;br /&gt;&lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt;&lt;br /&gt;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 63.8pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Georgia;font-size:12;"  &gt;b.&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;      &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;Adding a global element or type&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 63.8pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Georgia;font-size:12;"  &gt;c.&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;       &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;Adding optional elements to the existing type&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 45.8pt;"&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 63.8pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Georgia;font-size:12;"  &gt;d.&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;      &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;Changing type of a global or local element to the new type, derived from the original by adding/restricting optional elements.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=""&gt;&lt;b&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;&lt;pre style="margin-left: 45.8pt;"&gt;&lt;b&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;Major Changes&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;: It represents non-backward-compatible changes to the document schema. e.g.&lt;br /&gt;&lt;br /&gt;&lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt;&lt;br /&gt;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 63.8pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;a.&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;Changing the type of a local or global element to the new type,&lt;span style=""&gt;  &lt;/span&gt;derived from the original by adding/restricting optional elements&lt;br /&gt;&lt;br /&gt;&lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt;&lt;br /&gt;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 63.8pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;b.&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;Changing the optionality of a local element or element reference from&lt;span style=""&gt;   &lt;/span&gt;optional to required&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 45.8pt;"&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 63.8pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;c.&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;     &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;Adding or removing an enumeration value&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=""&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 63.8pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;d.&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Verdana;font-size:12;"  &gt;Removing or renaming a global type or element.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Verdana;"&gt;Only major change in XML schema will constitute the versioning in service. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-family:Verdana;"&gt;Implementation Changes&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Verdana;"&gt;: In Utopian world change in implementation of service will not constitute version but we are not. In reality, adherence to the interface does not constitute replace-ability of implementations. Replace-ability is not defined by interface alone, but instead by the contract—which includes interface, pre- and post-conditions, Quality of Service and certain SLAs—on which the service consumer relies. e.g.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 63.8pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Verdana;"&gt;a.&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-family:Verdana;"&gt;New service implementation supports exactly the same interface (functionality), but changes timing (SLA). If a service consumer is invoking this service (method) synchronously, such change can significantly impact service consumer execution. As a result, service versioning might be required. (Interestingly enough, even redeployment of existing service, with changes to its implementation, can lead to the same results). &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 63.8pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Verdana;"&gt;b.&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-family:Verdana;"&gt;New service implementation supports the same interface, but changes incoming parameters validations (preconditions). In this case, some requests that had been processed successfully will now be rejected, requiring introduction of a new service. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 63.8pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Verdana;"&gt;c.&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;     &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-family:Verdana;"&gt;New service implementation introduces a new security implementation (precondition), which often is not reflected in service interface, but done through the configuration settings. In this case, existing consumers will require sending security credentials; implementation change and creation of the new version is required.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-family:Verdana;"&gt;3. Version Deployment/Access Approaches&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;span style="font-family:Verdana;"&gt;: There are two approaches for deploying versions of a service.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 63.8pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Verdana;"&gt;a.&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-family:Verdana;"&gt;Covenant or Version Parameter: "if-then-else" like agreement where a single endpoint address for all versions of service (methods) but based on context based routing, incoming request is routed to appropriate version depending upon message embedded version information. This approach simplifies the addressing challenge but packaging multiple versions of same service in same packet is a challenge in itself. This approach is further abstracted using Mediator pattern where an external mediator will rout the incoming message as per embedded version information in message. The version details can be embedded either in namespace or as parameter in message.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;i&gt;&lt;span style="font-family:Verdana;"&gt;Namespace example (Followed by Amazon): &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Verdana;"&gt;Pros: Takes advantage of XML namespaces, works well with backwards incompatible schema changes. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Verdana;"&gt;Cons: Doesn't take advantage of XML schema extensibility. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;span style=";font-family:Verdana;font-size:12;"  &gt;Old Version&lt;br /&gt;&lt;/span&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;&amp;lt;soap:Envelope xmlns:soap="&lt;a href="http://schemas.xmlsoap.org/soap/envelope/" target="_blank"&gt;http://schemas.xmlsoap.org/soap/envelope/&lt;/a&gt;" &amp;gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre style=""&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;&lt;span style=""&gt;  &lt;/span&gt;&amp;lt; soap:Body&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=""&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;b&gt;&amp;lt;  xmlns="urn:company:service:v1" &amp;gt; &lt;/b&gt;3.333333 &amp;lt; /Price &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=""&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;&lt;span style=""&gt;  &lt;/span&gt;&amp;lt; /soap:Body &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;&amp;lt; /soap:Envelope &amp;gt;&lt;span style=""&gt;  &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;  &lt;h1&gt;&lt;span style="font-family: Verdana;"&gt;New Version &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;&amp;lt; soap:Envelope xmlns:soap="&lt;a href="http://schemas.xmlsoap.org/soap/envelope/" target="_blank"&gt;http://schemas.xmlsoap.org/soap/envelope/&lt;/a&gt;" &amp;gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre style=""&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;&lt;span style=""&gt;  &lt;/span&gt;&amp;lt; soap:Body &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=""&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&amp;lt; Price xmlns="urn:company:service:v2" &amp;gt; 3.33 &amp;lt; /Price &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=""&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;&lt;span style=""&gt;  &lt;/span&gt;&amp;lt; /soap:Body &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;&amp;lt; /soap:Envelope &amp;gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre style=""&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;i&gt;&lt;span style="font-family: Verdana;"&gt;Parameter example (in Header) --&amp;gt; &lt;span style=""&gt; &lt;/span&gt;Followed by eBay: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;Pros: Uses XML schema extensibility. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;Cons: Does not work well with incompatabile schema changes, doesn't take advantage of XML namespaces, requires users to pass the parameter in ever request. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;&amp;lt; soap:Envelope xmlns:soap="&lt;a href="http://schemas.xmlsoap.org/soap/envelope/" target="_blank"&gt;http://schemas.xmlsoap.org/soap/envelope/&lt;/a&gt;" &lt;span style=""&gt; &lt;/span&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre style=""&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;&amp;lt; soap:Header &amp;gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=""&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&amp;lt; Version xmlns="urn:company:service" &amp;gt; 340 &amp;lt; /Version &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=""&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;&lt;span style=""&gt;  &lt;/span&gt;&amp;lt; /soap:Header &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=""&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;&lt;span style=""&gt;  &lt;/span&gt;&amp;lt; soap:Body &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=""&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;&lt;span style=""&gt;    &lt;/span&gt;....&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=""&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;&lt;span style=""&gt;  &lt;/span&gt;&amp;lt; /soap:Body &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;&amp;lt; /soap:Envelope &amp;gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre style=""&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;Parameter example (in Body): &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;&amp;lt; soap:Envelope xmlns:soap="&lt;a href="http://schemas.xmlsoap.org/soap/envelope/" target="_blank"&gt;http://schemas.xmlsoap.org/soap/envelope/&lt;/a&gt;" &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre style=""&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;&lt;span style=""&gt;  &lt;/span&gt;&amp;lt; soap:Body &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=""&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&amp;lt; SomeRequest xmlns="urn:company:service" &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=""&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;&lt;span style=""&gt;      &lt;/span&gt;&amp;lt; Version &amp;gt; 340 &amp;lt; /Version &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=""&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;&lt;span style=""&gt;      &lt;/span&gt;....&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=""&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&amp;lt; /SomeRequest &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=""&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;&lt;span style=""&gt;  &lt;/span&gt;&amp;lt; /soap:Body &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=""&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;&amp;lt; /soap:Envelope &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p class="MsoNormal" style="margin-left: 63.8pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Verdana;"&gt;a.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-family: Verdana;"&gt;Multiple End-point addresses: Every version is deployed separately and exposed to potential customer at different URI and port. This approach assumes that consumers will resolve the address of provider with help of some registry service (UDDI). This approach completely separate each version from each other and provide better scalability but requires complex addressing paradigm, and creates n number of services. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;Example: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;&lt;a href="http://example.com/service/v1" target="_blank"&gt;http://example.com/service/v1&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;&lt;a href="http://example.com/service/v2" target="_blank"&gt;http://example.com/service/v2&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;Services following this pattern: JIRA &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;Pros: Uses XML schema extensibility. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;Cons: Requires users to update their invocation url each you update versions, Does not work well with incompatible schema changes, doesn't take advantage of XML namespaces. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;As services get versioned, so the underlying infrastructure. It constitutes:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Wingdings;"&gt;Ø&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-family: Verdana;"&gt;Transport changes — e.g., switching transport from HTTP to HTTPS &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Wingdings;"&gt;Ø&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-family: Verdana;"&gt;Message encoding changes — e.g., upgrading proprietary enveloping with SOAP. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Wingdings;"&gt;Ø&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-family: Verdana;"&gt;Changes in addressing schema— e.g., introduction of the WS-Addressing for reply-address specification&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;It is desirable to maintain backward compatibility but it might be technically not feasible or expensive. Facade pattern is one of the possible solutions.&lt;br /&gt; &lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-family: Verdana;"&gt;Version Identification Strategies&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;span style="font-family: Verdana;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;Defining a schema is as good as defining a language for a special purpose. Version identification is done with a dot (.) separating major and minor versions ( major.minor). Traditionally major version refer to "incompatible" change while minor refers to "compatible" change. This is idealistic approach, in real life you will find several examples which are not in sync with this approach. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;There are numerous variety of version identification strategy but following are few of the popular one. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;b style=""&gt;&lt;span style="font-family: Verdana;"&gt;A.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;b&gt;&lt;span style="font-family: Verdana;"&gt;All components in new namespace(s) for each version&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Verdana;"&gt; : version 1.0 consists of name space "a" and version 1.1 is of "b". &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;b style=""&gt;&lt;span style="font-family: Verdana;"&gt;B.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;b&gt;&lt;span style="font-family: Verdana;"&gt;All new components in new namespace(s) for each compatible version&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Verdana;"&gt; : version 1.0 consists of namespaces "a " &amp;amp; "b"; version 1.1 consists of namespaces "a", "b" &amp;amp; "c"; version 2.0 consists of "d" &amp;amp; "e".&lt;span style=""&gt;  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;b style=""&gt;&lt;span style="font-family: Verdana;"&gt;C.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;b&gt;&lt;span style="font-family: Verdana;"&gt;All new components in existing or new namespace(s) for each compatible version&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Verdana;"&gt; : version 1.0 consists of namespace(s) "a"; version 1.1 consists of namespaces "a"; version 2.0 and 2.1 consists of namespace "b".&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;b style=""&gt;&lt;span style="font-family: Verdana;"&gt;D.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;b&gt;&lt;span style="font-family: Verdana;"&gt;All new components in existing or new namespaces(s) for each version and a version identifier&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Verdana;"&gt; : version 1.0 consists of namespace "a" and version attribute "x"; version 1.1 consists of namespace "b" and version attribute "y". &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;While deciding version strategy pay attention to: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ol start="1" type="a"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;Supporting compatible evolution; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;Namespaces for identifying compatible components. Changing      namespace names is typically is very invasive change; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;Tool limitation; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;Future direction. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-family: Verdana;"&gt;Support for versioning in XML Schema&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;span style="font-family: Verdana;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;The simplest way of denoting versions in XML Schema is usage of an (optional) attribute at the xs:schema element - version. The content model permits Dewey notation of major.minor version numbers. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;Since XML parsers are not required to validate instances using version, it is possible to implement custom representation of version, enabling the parser to include it in the validation process. This technique typically requires introduction of a versioning attribute as a fixed, required value for identifying a specific schema version. However, this approach for schema versioning is not very practical. There are several disadvantages:&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style=""&gt;&lt;/p&gt;  &lt;ol start="1" type="A"&gt;&lt;ol start="1" type="A"&gt;&lt;ol start="1" type="A"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;An XML instance will be unable to use        multiple versions of a schema representation because versioning occurs        at the schema's root. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;/ol&gt;  &lt;p class="MsoNormal" style="margin-left: 1.25in;"&gt;&lt;span style="font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ol start="1" type="A"&gt;&lt;ol start="1" type="A"&gt;&lt;ol start="2" type="A"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;XML schema validation tools are not required        to validate instances using the version attribute; the attribute is        provided purely for documentation purposes and is not enforceable by XML        parsers. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;/ol&gt;  &lt;p class="MsoNormal" style="margin-left: 1.25in;"&gt;&lt;span style="font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ol start="1" type="A"&gt;&lt;ol start="1" type="A"&gt;&lt;ol start="3" type="A"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;Because XML parsers are not required to        validate using the version attribute, additional custom processing (over        and above parsing and validation) is required to ensure that the        expected schema version(s) are being referenced by the instance. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;/ol&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ol start="1" type="A"&gt;&lt;ol start="1" type="A"&gt;&lt;ol start="4" type="A"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;Marshaling/unmarshaling of XML document is        very rarely done using direct manipulation of the DOM tree. The        prevalent approach to marshaling is generation of the classes,        supporting "automatic" marshaling, using tools like WSDL2Java,        Castor, EMF, SDO, XSD, XSDObjectGenerator, and so on. In this case, classes are        generated in the packages in Java or namespaces in C#, based on the        schema namespaces, not the schema version. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;/ol&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Verdana;"&gt;Another option for denoting schema version is usage of XML Namespaces. In this approach, a new XML Namespace is used for all major version releases. This approach is well aligned with generation of marshaling/unmarshaling code by allowing generating code in different packages (namespaces), thus enabling a single service consumer to work with several major releases of schema simultaneously. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Verdana;"&gt;Yet another option is to keep XML Namespace values constant and add a special element for grouping custom extensions. This approach wraps extensions to the underlying vocabulary within a special extension element. Several industry-standard schemas favor this technique. For example, the Open Application Group's Business Object Documents (OAG BODs) include a &lt;userarea&gt; element defining custom information that may not be part of the base vocabulary. This approach maximizes the extensibility of the schema constructs (schemas can be both forward- and backward-compatible) without introduction of new namespaces. There are two disadvantages to this approach: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ol start="1" type="A"&gt;&lt;ol start="1" type="A"&gt;&lt;ol start="1" type="A"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;It introduces significantly higher levels of        complexity into the schema. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;/ol&gt;  &lt;p class="MsoNormal" style="margin-left: 1.25in;"&gt;&lt;span style="font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ol start="1" type="A"&gt;&lt;ol start="1" type="A"&gt;&lt;ol start="2" type="A"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;It does not allow implementation of multiple        extensions across different portions of the XML instance, because all        extensions must be grouped within the extension "wrapper." &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;/ol&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Verdana;"&gt;The most scalable approach to versioning of schemas is as follows: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ol start="1" type="A"&gt;&lt;ol start="1" type="A"&gt;&lt;ol start="1" type="A"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;Componentization of the overall schema in        logical partitions using multiple namespaces, thus containing changes. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;/ol&gt;  &lt;p class="MsoNormal" style="margin-left: 1.25in;"&gt;&lt;span style="font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ol start="1" type="A"&gt;&lt;ol start="1" type="A"&gt;&lt;ol start="2" type="A"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;Defining a new namespace (reflecting the        major version information) for every major version of each schema. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;/ol&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ol start="1" type="A"&gt;&lt;ol start="1" type="A"&gt;&lt;ol start="3" type="A"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-family: Verdana;"&gt;Denoting every minor version as a schema        version in a major version namespace. Because minor versions are        backward compatible, generated marshaling/unmarshaling code also will be        backward compatible. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-8871387503588049524?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/05/service-versioning.html</link><author>noreply@blogger.com (tusjain)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-8792656802831768675</guid><pubDate>Fri, 09 May 2008 04:15:00 +0000</pubDate><atom:updated>2008-05-09T09:46:38.674+05:30</atom:updated><title>Advantages of SOA</title><description>There are only two advantages of SOA:&lt;br /&gt;&lt;br /&gt;1. Re usability&lt;br /&gt;2. Agility&lt;br /&gt;    2.1 Business&lt;br /&gt;    2.2 Technical&lt;br /&gt;&lt;br /&gt;All other advantages can be derived from these two.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-8792656802831768675?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/05/advantages-of-soa.html</link><author>noreply@blogger.com (tusjain)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-7895663155680505966</guid><pubDate>Fri, 09 May 2008 04:12:00 +0000</pubDate><atom:updated>2008-05-09T09:44:46.183+05:30</atom:updated><category domain='http://www.blogger.com/atom/ns#'>SOA</category><title>When to say no to SOA</title><description>Every is shouting for SOA. But there must be some scenarios when not to use SOA. I have listed few:&lt;br /&gt;&lt;br /&gt;1. In Homogeneous IT environment&lt;br /&gt;2. When real time performance is critical&lt;br /&gt;3. When Business and IT environment is static&lt;br /&gt;4. When tight coupling is advantageous not a con.&lt;br /&gt;5. When huge amount of data transfer is happening.&lt;br /&gt;6. When data sharing is in batch mode.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-7895663155680505966?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/05/when-to-say-no-to-soa.html</link><author>noreply@blogger.com (tusjain)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3890053383555163357.post-4869902653002153568</guid><pubDate>Thu, 08 May 2008 00:47:00 +0000</pubDate><atom:updated>2008-05-08T06:18:38.700+05:30</atom:updated><title>Service Contract</title><description>&lt;p class="MsoNormal"&gt;Service contract is a contract, which must be understood by calling service and service repository, so appropriate decisions can be made at their end. But what should be the content of such contract? &lt;/p&gt;  &lt;p class="MsoNormal"&gt;1. Functional Requirements &lt;/p&gt;  &lt;pre&gt;&lt;span style=""&gt;   &lt;/span&gt;1.1. Service Operations&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;   &lt;/span&gt;1.2. Infrastructure&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;   &lt;/span&gt;1.3. URI &amp;amp; Port&lt;/pre&gt;  &lt;p class="MsoNormal"&gt;2. Non Functional Requirements &lt;/p&gt;  &lt;pre&gt;&lt;span style=""&gt;   &lt;/span&gt;2.1. Security&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;   &lt;/span&gt;2.2. Quality of Service (QoS)&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;        &lt;/span&gt;2.2.1. Reliability&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;        &lt;/span&gt;2.2.2. Availability&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;        &lt;/span&gt;2.2.3. Synchronicity - Synchronous/Asynchronous&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;   &lt;/span&gt;2.3. Transactions&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;   &lt;/span&gt;2.4. Business Rule&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;   &lt;/span&gt;2.5. Semantics&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;   &lt;/span&gt;2.6. Context&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;   &lt;/span&gt;2.7. Metering&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;   &lt;/span&gt;2.8. Protocol (TCP, UDP, HTTP/HTTPS, SMTP, SOAP, RMI, IIOP, etc)&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3890053383555163357-4869902653002153568?l=architecturebpm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://architecturebpm.blogspot.com/2008/05/service-contract.html</link><author>noreply@blogger.com (tusjain)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item></channel></rss>