<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Web Cornucopia</title>
	<atom:link href="http://gopalan.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://gopalan.wordpress.com</link>
	<description>Gopalan Suresh Raj</description>
	<lastBuildDate>Thu, 05 Jan 2012 08:05:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='gopalan.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Web Cornucopia</title>
		<link>http://gopalan.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://gopalan.wordpress.com/osd.xml" title="Web Cornucopia" />
	<atom:link rel='hub' href='http://gopalan.wordpress.com/?pushpress=hub'/>
		<item>
		<title>SOA Tips: For Asynchronous, Peer-to-Peer Collaborations Use Multiple MEPs</title>
		<link>http://gopalan.wordpress.com/2007/05/29/soa-tips-for-asynchronous-peer-to-peer-collaborations-use-multiple-meps/</link>
		<comments>http://gopalan.wordpress.com/2007/05/29/soa-tips-for-asynchronous-peer-to-peer-collaborations-use-multiple-meps/#comments</comments>
		<pubDate>Tue, 29 May 2007 07:15:36 +0000</pubDate>
		<dc:creator>gopalan</dc:creator>
				<category><![CDATA[The Web of Services]]></category>

		<guid isPermaLink="false">http://gopalan.wordpress.com/2007/05/29/soa-tips-for-asynchronous-peer-to-peer-collaborations-use-multiple-meps/</guid>
		<description><![CDATA[The ‘Wire’ Is Global Whether you are going to directly base your &#8216;wire&#8217; design on the internet, or you are going to limit it to some particular set of users, you want to make sure that every &#8216;wire&#8217; design you do, works globally. You have to get outside of the confines of the internet. The [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gopalan.wordpress.com&amp;blog=1015973&amp;post=49&amp;subd=gopalan&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em><strong>The ‘Wire’ Is Global</strong></em><br />
Whether you are going to directly base your &#8216;wire&#8217; design on the internet, or you are going to limit it to some particular set of users, you want to make sure that every &#8216;wire&#8217; design you do, works globally. You have to get outside of the confines of the internet. The whole point is you do not control the technologies that your consumers or your providers are using. The only way to get eBusiness to integrate is to make sure that each &#8216;wire&#8217; is, by definition, Global. And the truth is, for the most part, the only global communication stack that works today is the HTTP stack &#8211; modulo, email, FTP, etc. and a few others. So you need to be suspicious of folks who tell you that you could do an abstract design and somehow you can disconnect it from HTTP &#8211; specifically, like some people who say the SOAP Envelope is independent of the underlying protocol &#8211; don&#8217;t believe it.</p>
<p><em><strong>The ‘Wire’ Is Peer-to-Peer</strong></em><br />
A lot of <a href="http://blogs.sun.com/gopalan/entry/jbi_soa_tips_what_is1" target="_blank" title="JBI/SOA Tips: What is a Conversation in a collaboration wire-design">conversations </a>involve you being both a consumer and a provider. In a typical situation, when you are exchanging messages asynchronously, you are typically shipping messages to each other, and are sharing these messages through HTTP resources. In such a situation, <em><strong>the only thing that allows you to <a href="http://blogs.sun.com/gopalan/entry/jbi_soa_tips_use_correlation" target="_blank" title="JBI/SOA Tips: Use Correlation Values to Reference Shared State">correlate </a>these messages is the content in the messages themselves</strong></em>. You cannot rely on this shared data to be in the context of a session, or some kind of pseudo-conversational mode where you can send somebody a cookie as a systems-level cookie and somehow they return the <a href="http://blogs.sun.com/gopalan/entry/identify_shared_conversational_state_upfront" title="JBI/SOA Tips: Identify Shared Conversational State Upfront" target="_blank">shared state</a> because you don&#8217;t store systems-level cookies in the database so you can associate your response with that cookie.</p>
<p><em><strong>The ‘Wire’ Is Asynchronous</strong></em><br />
The wire is asynchronous when you are dealing with it from an infrastructure integration level. When you are doing this asynchronous integration, the <em><strong>exchange of messages have to be correlated to the business functionality itself</strong></em>. The wire is more ad-hoc than conventional integration in the sense that the <em><strong>messages that you are exchanging are going across business process boundaries</strong></em>. Each side of the business process has its own objectives that it is trying to accomplish. The wire is a network resource. We are continuously evolving what we think of as a network resource. Technical elements are continuously being added  to what we think of as the wire. At the business integration layer, we are just beginning to learn what it actually takes to make these eBusiness compositions. We need to think of this composition mechanism as something  <em><strong>fundamentally different to code composition</strong></em>. <em><strong>What we do inside of our applications to create the stream of bits which is the network resource is secondary to what the actual resource is</strong></em>.</p>
<p><em><strong>Difference between Web-site Interaction and eBusiness Integration</strong></em><br />
There is a core difference between website interaction and eBusiness Integration. If you force the people who are communicating with you to reply immediately, with a business response in the same Message Exchange Pattern (MEP), you are <em><strong>severely constricting </strong></em>how they use you. By separating the business response into a separate Message Exchange Pattern (MEP) interaction, you are <em><strong>freeing up both sides to interact asynchronously</strong></em>. That is the core issue of why eBusiness Integration is very much peer-to-peer rather than client/server. If you are kind of stuck in the client/server mode of thinking, it is very difficult to architect eBusiness Integration since client/server is not the model for eBusiness Integration. <em><strong>The core idea in eBusiness Integration is that businesses are off on their own, doing their thing, and they communicate only when they want to and on their own schedule</strong></em>.</p>
<p><em><strong>Design Focus</strong></em></p>
<p>Message Exchange Patterns (MEPs) are <a href="http://blogs.sun.com/gopalan/entry/jbi_soa_tips_message_exchange" title="JBI/SOA Tips: Message Exchange Patterns (MEPs) are the units of 'wire' collaboration" target="_blank"><em><strong>transient message exchange elements</strong></em></a>. If there is work that can be accomplished in a single, one-shot, stateless, self-contained collaboration, <em><strong>use a single MEP. </strong></em>For <em><strong>long-running, <a href="http://blogs.sun.com/gopalan/entry/jbi_soa_tips_what_is1" title="JBI/SOA Tips: What is a Conversation in a collaboration wire-design" target="_blank">conversational</a>, peer-to-peer collaborations</strong></em>, where there is an <strong><em>asynchronous lag</em> between a request and a response with <a href="http://blogs.sun.com/gopalan/entry/identify_shared_conversational_state_upfront" title="JBI/SOA Tips: Identify Shared Conversational State Upfront" target="_blank">shared state</a> use multiple MEPs with <a href="http://blogs.sun.com/gopalan/entry/jbi_soa_tips_use_correlation" title="JBI/SOA Tips: Use Correlation Values to Reference Shared State" target="_blank">correlations</a></strong>.</p>
<p><em><strong>You cannot have an asynchronous collaboration without having peer-to-peer message exchanges</strong></em>.</p>
<p><em><strong>Related Blog Entries:</strong></em></p>
<ul>
<li><em><strong><a href="http://blogs.sun.com/gopalan/entry/jbi_soa_tips_message_exchange" target="_blank" title="JBI/SOA Tips: Message Exchange Patterns (MEPs) are the units of 'wire' collaboration">JBI/SOA Tips: Message Exchange Patterns (MEPs) are the units of &#8216;wire&#8217; collaboration</a></strong></em></li>
<li><em><strong><a href="http://blogs.sun.com/gopalan/entry/jbi_soa_tips_use_separate" target="_blank" title="JBI/SOA Tips: Use Separate MEPs for Business Responses">JBI/SOA Tips: Use Separate MEPs for Business Responses</a></strong></em></li>
<li><em><strong><a href="http://blogs.sun.com/gopalan/entry/jbi_soa_tips_what_is1" target="_blank" title="JBI/SOA Tips: What is a Conversation in a collaboration wire-design">JBI/SOA Tips: What is a Conversation in a collaboration wire-design</a></strong></em></li>
<li><em><strong><a href="http://blogs.sun.com/gopalan/entry/identify_shared_conversational_state_upfront" target="_blank" title="JBI/SOA Tips: Identify Shared Conversational State Upfront">JBI/SOA Tips: Identify Shared Conversational State Upfront</a></strong></em></li>
<li><em><strong><a href="http://blogs.sun.com/gopalan/entry/jbi_soa_tips_use_correlation" target="_blank" title="JBI/SOA Tips: Use Correlation Values to Reference Shared State">JBI/SOA Tips: Use Correlation Values to Reference Shared State</a></strong></em></li>
</ul>
<p><strong>Tags:</strong> <a href="http://technorati.com/tag/bpel" title="bpel" target="_blank">bpel</a> <a href="http://technorati.com/tag/choreography" title="choreography" target="_blank">choreography</a>  <a href="http://technorati.com/tag/ejb" title="ejb" target="_blank">ejb</a> <a href="http://technorati.com/tag/esb" title="esb" target="_blank">esb</a> <a href="http://technorati.com/tag/http" title="http" target="_blank">http</a> <a href="http://technorati.com/tag/integration" title="integration" target="_blank">integration</a> <a href="http://technorati.com/tag/javacaps" title="javacaps" target="_blank">javacaps</a> <a href="http://technorati.com/tag/javaee" title="javaee" target="_blank">javaee</a> <a href="http://technorati.com/tag/jax-ws" title="jax-ws" target="_blank">jax-ws</a> <a href="http://technorati.com/tag/jbi" title="jbi" target="_blank">jbi</a> <a href="http://technorati.com/tag/management" title="management" target="_blank">management</a> <a href="http://technorati.com/tag/orchestration" title="orchestration" target="_blank">orchestration</a> <a href="http://technorati.com/tag/process-oriented" title="process-oriented" target="_blank">process-oriented</a> <a href="http://technorati.com/tag/rest" title="rest" target="_blank">rest</a> <a href="http://technorati.com/tag/sca" title="sca" target="_blank">sca</a> <a href="http://technorati.com/tag/service-oriented" title="service-oriented" target="_blank">service-oriented</a> <a href="http://technorati.com/tag/soa" title="soa" target="_blank">soa</a> <a href="http://technorati.com/tag/soap" title="soap" target="_blank">soap</a> <a href="http://technorati.com/tag/wsdl" title="wsdl" target="_blank">wsdl</a> <a href="http://technorati.com/tag/xml" title="xml" target="_blank">xml</a> <a href="http://technorati.com/tag/xsd" title="xsd" target="_blank">xsd</a> <a href="http://technorati.com/tag/roa" title="roa" target="_blank">roa</a> <a href="http://technorati.com/tag/xml%20schema" title="xml schema" target="_blank">xml schema</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gopalan.wordpress.com/49/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gopalan.wordpress.com/49/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gopalan.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gopalan.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gopalan.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gopalan.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gopalan.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gopalan.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gopalan.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gopalan.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gopalan.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gopalan.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gopalan.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gopalan.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gopalan.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gopalan.wordpress.com/49/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gopalan.wordpress.com&amp;blog=1015973&amp;post=49&amp;subd=gopalan&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gopalan.wordpress.com/2007/05/29/soa-tips-for-asynchronous-peer-to-peer-collaborations-use-multiple-meps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d9dd2b68e518fb25f8c70be7820ee83e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gopalan</media:title>
		</media:content>
	</item>
		<item>
		<title>SOA Tips: Prefer Use of Document/Literal Rather than RPC</title>
		<link>http://gopalan.wordpress.com/2007/05/28/soa-tips-prefer-use-of-documentliteral-rather-than-rpc/</link>
		<comments>http://gopalan.wordpress.com/2007/05/28/soa-tips-prefer-use-of-documentliteral-rather-than-rpc/#comments</comments>
		<pubDate>Mon, 28 May 2007 07:39:09 +0000</pubDate>
		<dc:creator>gopalan</dc:creator>
				<category><![CDATA[The Web of Services]]></category>

		<guid isPermaLink="false">http://gopalan.wordpress.com/2007/05/28/soa-tips-prefer-use-of-documentliteral-rather-than-rpc/</guid>
		<description><![CDATA[Prefer ‘document’ encoding and ‘literal’ use over other types for interoperability. Services exposed using Document style encoding with Literal use are better-suited for coarse-grained interactions and better represent the data exchanged. They provide the ability to validate the XML data if the XML Schema is available. You could specify XSL transforms to Transform messages using [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gopalan.wordpress.com&amp;blog=1015973&amp;post=48&amp;subd=gopalan&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Prefer ‘document’ encoding and ‘literal’ use over other types for <strong><em>interoperability</em></strong>. Services exposed using Document style encoding with Literal use are <em><strong>better-suited for coarse-grained interaction</strong></em>s and <em><strong>better represent the data exchanged</strong></em>. They provide the ability to <em><strong>validate the XML data</strong></em> if the XML Schema is available. You could specify XSL transforms to <em><strong>Transform messages using XSLT</strong></em> easily. Document style encoding with Literal use <em><strong>provides better performance</strong></em> than other encoding/use styles. Since the service interface in the WSDL clearly defines the types of documents expected, it makes it <em><strong>easy for the consumer to develop clients</strong></em> for the service.</p>
<p><a href="http://gopalan.files.wordpress.com/2007/05/documentliteral.gif" title="Document Style with Literal Use"><img src="http://gopalan.files.wordpress.com/2007/05/documentliteral.gif?w=500" alt="Document Style with Literal Use" /></a></p>
<p><strong>Service-Orientation is totally different from either Object-Orientation or Component-Orientation</strong></p>
<p>When we think about setting up a web community through a web-site, we do not think of it as exposing a Java class. We have some important business/organizational goal. We have a community of users we are trying to approach through the web-site. We work hard to conceptually get the idea of the web-site exposed in a way that is very practical for a broad range of users. We try to make it very simple and painless so that the user community we are trying to grow is able to approach it and get some value out of it. We hope that a user community materializes to make our investment practical. That is exactly what we need to think about from a <em><strong>service perspective</strong></em> when we are trying to expose services.</p>
<p><strong>What is a Service</strong><br />
A Service <em><strong>is NOT</strong></em> some plumbing to put up a Java class with some getters and setters on the net. A Service <em><strong>IS</strong></em> a 24&#215;7 commitment to expose some<strong><em> core business functionality up as a network resource</em></strong> that we are trying to share either inside of the business, or across the business boundary. That is the reason d&#8217; etre for the service and the reason we are making the investment &#8211; it is not cheap, and it is not about exposing a Java class on the net &#8211; its a <em>significant business functionality commitment</em>. The fact that there might be an EJB under the covers that happens to be the entry point with some annotations on it is secondary, just as a servlet might be behind the web-site. When thinking about services, if you are thinking of putting up a Java class on the net then boy you have the wrong model in your head! A Service <em><strong>is NOT</strong></em> a Java class or a new way to share libraries.</p>
<p><strong>Business-documents are the core building-blocks of a Service<br />
</strong></p>
<p>You can think of business-documents as the core building blocks for building a Service for any e-Business vertical like Finance, Retail, Banking, Insurance, Health-Care, or Telecommunications, etc. When you are constructing the <em>content for the business document</em>, often, you have a <em><a href="http://blogs.sun.com/gopalan/entry/jbi_soa_tips_use_unique" title="JBI/SOA Tips: Use Unique Element to ‘Wrap’ Each Business Message" target="_blank">wrapper which describes the business purpose</a></em>, followed by the <em>business data</em> that&#8217;s embedded in the document that supports that purpose. So for e.g., if you have an Employee (a noun) creation/update (i.e., verbs) document, you have a <em><a href="http://blogs.sun.com/gopalan/entry/jbi_soa_tips_use_unique" title="JBI/SOA Tips: Use Unique Element to ‘Wrap’ Each Business Message" target="_blank">wrapper</a></em> around that data describing the <em>business action</em> (a verb) you are taking, and based on the data you may be able to surmise if its a new (creation) or update entry or you may have to mark that explicitly in the data itself. You can compose this up and you are doing this <em>independent of this somewhat goofy procedure name  idea that is in WSDL</em>. You just get into the document and create it like you would any other business document while <em>capturing in a reasonably self-describing way</em> what it is your trying to accomplish &#8211; <em><strong>not from a procedural perspective, but from a business document perspective</strong></em>. That is the way to reason about what it is you are doing. If you do that, the reason you use Document style encoding with Literal use is so that you don&#8217;t get <em>yet more crap into the message</em> that is putting this weird operation name element into your perfectly valid business document. Therefore <em><strong>other forms of encoding &#8211; like RPC &#8211; just gets in the way`</strong><strong>of creating perfectly legal business-documents</strong></em> . You have a self-defining business document that contains nouns and verbs. Each verb can be quite complicated &#8211; it isn&#8217;t a procedure name or an operation name &#8211; it is some description of a core business action.</p>
<p><em><strong>RPC based services are stumbling-blocks rather than building-blocks</strong></em></p>
<p>It is only when you start looking at at it from a kind of <em><a href="http://blogs.sun.com/gopalan/entry/jbi_soa_blueprints_beware_of" title="JBI/SOA Blueprints: Beware of the issues when doing Implementation-First (Bottom-up) Development" target="_blank">Java code-first perspective</a></em> that you get confused. You do not think of business documents in Java. In Java, you&#8217;re thinking of function names and so forth and <em>it has nothing to do with business integration</em>. However, unfortunately, it is only when the people who are dreaming this up start thinking about the remote procedure call thing, they get all confused and we have to deal with the resulting kind of mish-mash of stuff.</p>
<p>So <strong>if you stick with the <em>business document perspective</em>, then you&#8217;ve got it</strong>. <strong>People know how to evolve business documents, they do not know how to evolve some weird operation name element inside their perfectly legal business documents.</strong></p>
<p><strong>Related Blog Entries</strong>:</p>
<ul>
<li><em><strong><a href="http://blogs.sun.com/gopalan/entry/wsdl_the_wsdl_model" target="_blank" title="Exploring the Service Description Model">WSDL &amp; SOAP: Exploring the Service Description Model</a></strong></em></li>
<li><em><strong><a href="http://blogs.sun.com/gopalan/entry/wsdl_soap_binding_style_to" target="_blank" title="Binding Style to use - Document or RPC">WSDL &amp; SOAP: Binding Style to use &#8211; Document or RPC?</a></strong></em></li>
<li><em><strong><a href="http://blogs.sun.com/gopalan/entry/jbi_soa_tips_do_not" target="_blank" title="JBI/SOA Tips: Do not mix style/use in the same service">JBI/SOA Tips: Do not mix style/use in the same service</a></strong></em></li>
<li><em><strong><a href="http://blogs.sun.com/gopalan/entry/jbi_soa_tips_beware_of" target="_blank" title="JBI/SOA Tips: Be aware of SOAP Verbosity">JBI/SOA Tips: Be aware of SOAP Verbosity (Message size overhead)</a></strong></em></li>
<li><em><strong><a href="http://blogs.sun.com/gopalan/entry/jbi_soa_tips_avoid_use%20" target="_blank" title="JBI/SOA Tips: Avoid use of xsd;string to represent the entire message body">JBI/SOA Tips: Use strongly typed messages &#8211; Avoid use of xsd:string to represent the entire message Body</a></strong></em></li>
</ul>
<p><strong>Tags:</strong> <a href="http://technorati.com/tag/bpel" title="bpel" target="_blank">bpel</a> <a href="http://technorati.com/tag/choreography" title="choreography" target="_blank">choreography</a>  <a href="http://technorati.com/tag/ejb" title="ejb" target="_blank">ejb</a> <a href="http://technorati.com/tag/esb" title="esb" target="_blank">esb</a> <a href="http://technorati.com/tag/http" title="http" target="_blank">http</a> <a href="http://technorati.com/tag/integration" title="integration" target="_blank">integration</a> <a href="http://technorati.com/tag/javacaps" title="javacaps" target="_blank">javacaps</a> <a href="http://technorati.com/tag/javaee" title="javaee" target="_blank">javaee</a> <a href="http://technorati.com/tag/jax-ws" title="jax-ws" target="_blank">jax-ws</a> <a href="http://technorati.com/tag/jbi" title="jbi" target="_blank">jbi</a> <a href="http://technorati.com/tag/management" title="management" target="_blank">management</a> <a href="http://technorati.com/tag/orchestration" title="orchestration" target="_blank">orchestration</a> <a href="http://technorati.com/tag/process-oriented" title="process-oriented" target="_blank">process-oriented</a> <a href="http://technorati.com/tag/rest" title="rest" target="_blank">rest</a> <a href="http://technorati.com/tag/sca" title="sca" target="_blank">sca</a> <a href="http://technorati.com/tag/service-oriented" title="service-oriented" target="_blank">service-oriented</a> <a href="http://technorati.com/tag/soa" title="soa" target="_blank">soa</a> <a href="http://technorati.com/tag/soap" title="soap" target="_blank">soap</a> <a href="http://technorati.com/tag/wsdl" title="wsdl" target="_blank">wsdl</a> <a href="http://technorati.com/tag/xml" title="xml" target="_blank">xml</a> <a href="http://technorati.com/tag/xsd" title="xsd" target="_blank">xsd</a> <a href="http://technorati.com/tag/roa" title="roa" target="_blank">roa</a> <a href="http://technorati.com/tag/xml%20schema" title="xml schema" target="_blank">xml schema</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gopalan.wordpress.com/48/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gopalan.wordpress.com/48/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gopalan.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gopalan.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gopalan.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gopalan.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gopalan.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gopalan.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gopalan.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gopalan.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gopalan.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gopalan.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gopalan.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gopalan.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gopalan.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gopalan.wordpress.com/48/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gopalan.wordpress.com&amp;blog=1015973&amp;post=48&amp;subd=gopalan&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gopalan.wordpress.com/2007/05/28/soa-tips-prefer-use-of-documentliteral-rather-than-rpc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d9dd2b68e518fb25f8c70be7820ee83e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gopalan</media:title>
		</media:content>

		<media:content url="http://gopalan.files.wordpress.com/2007/05/documentliteral.gif" medium="image">
			<media:title type="html">Document Style with Literal Use</media:title>
		</media:content>
	</item>
		<item>
		<title>My Article Nominated for JDJ Annual Readers&#8217; Choice 2007 Awards</title>
		<link>http://gopalan.wordpress.com/2007/05/26/my-article-nominated-for-jdj-annual-readers-choice-2007-awards/</link>
		<comments>http://gopalan.wordpress.com/2007/05/26/my-article-nominated-for-jdj-annual-readers-choice-2007-awards/#comments</comments>
		<pubDate>Sun, 27 May 2007 06:53:18 +0000</pubDate>
		<dc:creator>gopalan</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://gopalan.wordpress.com/2007/05/26/my-article-nominated-for-jdj-annual-readers-choice-2007-awards/</guid>
		<description><![CDATA[A couple of days back, my co-worker Prakash Aradhya pointed me to the JDJ Annual Readers&#8217; Choice Awards 2007 poll indicating that my favorite Open ESB open-source project, that I&#8217;d been a committer for, has been nominated in the Best Java Enterprise Service Bus category. He also mentioned that Project Glassfish and NetBeans have also [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gopalan.wordpress.com&amp;blog=1015973&amp;post=46&amp;subd=gopalan&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://gopalan.files.wordpress.com/2007/05/votenow-regular.gif" title="JDJ Readers Choice Awards 2007"><img src="http://gopalan.files.wordpress.com/2007/05/votenow-regular.gif?w=500" alt="JDJ Readers Choice Awards 2007" /> </a></p>
<p>A couple of days back, my co-worker <a href="http://blogs.sun.com/prakash/" title="Prakash Aradhya" target="_blank">Prakash Aradhya</a> pointed me to the <a href="http://java.sys-con.com/general/readerschoice.htm" title="JDJ Readers Choice 2007 awards" target="_blank">JDJ Annual Readers&#8217; Choice Awards 2007 poll</a> indicating that my favorite <a href="http://open-esb.org/" title="Open ESB" target="_blank"><em><strong>Open ESB</strong></em></a> open-source project, that I&#8217;d been a committer for, has been nominated in the <a href="http://www2.sys-con.com/java/readerschoice2004/frameliveupdate.cfm?BType=26" title="Best Java ESB" target="_blank"><em><strong>Best Java Enterprise Service Bus</strong></em></a> category. He also mentioned that <a href="https://glassfish.dev.java.net/" title="GlassFish" target="_blank"><em><strong>Project Glassfish</strong></em></a> and <a href="http://netbeans.org/" title="NetBeans" target="_blank"><em><strong>NetBeans </strong></em></a>have also been nominated in the <a href="http://www2.sys-con.com/java/readerschoice2004/frameliveupdate.cfm?BType=7" title="Best Java Application Server (Free)" target="_blank"><em><strong>Best Java Application Server</strong></em></a> and the <a href="http://www2.sys-con.com/java/readerschoice2004/frameliveupdate.cfm?BType=15" title="Best Java IDE Environment" target="_blank"><em><strong>Best Java IDE Environment</strong></em> </a>categories respectively. Since I am an active committer to all of these projects, I went to the <em>JDJ website</em> to peruse the information, and lo and behold, I realized that one of my articles entitled <a href="http://blogs.sun.com/gopalan/entry/implementing_service_oriented_architectures_soa" title="Implementing Service Oriented Architectures (SOA) with the Java EE SDK" target="_blank"><em><strong>Implementing Service Oriented Architectures (SOA) with the Java EE SDK</strong></em></a> that I had authored a while back had also been nominated for the <a href="http://www2.sys-con.com/java/readerschoice2004/frameliveupdate.cfm?BType=25" title="Best Java Technical Article" target="_blank"><em><strong>Best Java Technical Article</strong></em></a> category.</p>
<p>If you did like <a href="http://blogs.sun.com/gopalan/entry/implementing_service_oriented_architectures_soa" title="Implementing Service Oriented Architectures (SOA) with the Java EE SDK" target="_blank"><em><strong>my article</strong></em></a>, or you love project <em><strong><a href="http://open-esb.org/" title="Open ESB" target="_blank"><em><strong>Open ESB</strong></em></a></strong></em>, or <a href="https://glassfish.dev.java.net/" title="GlassFish" target="_blank"><em><strong>Project Glassfish</strong></em></a>, or <a href="http://netbeans.org/" title="NetBeans" target="_blank"><em><strong>NetBeans</strong></em></a>, <a href="http://www2.sys-con.com/java/readerschoice2004/framevote.cfm" title="Vote Now" target="_blank"><strong>please do vote for these</strong></a>. If you chose to vote for other projects in the category, I would be grateful for your inputs in this blog indicating the features that you currently lack in these projects, or the enhancements that you would want made to these projects.</p>
<p><em><strong>Call to Action</strong></em></p>
<p>If you would like to see any enhancements to these projects, please tell us how we could improve it. Better still, since these are <em><strong>open-source projects</strong></em>, <em><strong>please </strong><strong>get involved and influence the direction of these open source projects</strong></em>. We from the open-source community will forever value your invaluable inputs and contributions to make these projects the best ones in their respective categories on the planet.</p>
<p><strong>Tags:</strong> <a href="http://technorati.com/tag/bpel" title="bpel" target="_blank">bpel</a> <a href="http://technorati.com/tag/choreography" title="choreography" target="_blank">choreography</a>  <a href="http://technorati.com/tag/ejb" title="ejb" target="_blank">ejb</a> <a href="http://technorati.com/tag/esb" title="esb" target="_blank">esb</a> <a href="http://technorati.com/tag/http" title="http" target="_blank">http</a> <a href="http://technorati.com/tag/integration" title="integration" target="_blank">integration</a> <a href="http://technorati.com/tag/javacaps" title="javacaps" target="_blank">javacaps</a> <a href="http://technorati.com/tag/javaee" title="javaee" target="_blank">javaee</a> <a href="http://technorati.com/tag/jax-ws" title="jax-ws" target="_blank">jax-ws</a> <a href="http://technorati.com/tag/jbi" title="jbi" target="_blank">jbi</a> <a href="http://technorati.com/tag/management" title="management" target="_blank">management</a> <a href="http://technorati.com/tag/orchestration" title="orchestration" target="_blank">orchestration</a> <a href="http://technorati.com/tag/process-oriented" title="process-oriented" target="_blank">process-oriented</a> <a href="http://technorati.com/tag/rest" title="rest" target="_blank">rest</a> <a href="http://technorati.com/tag/sca" title="sca" target="_blank">sca</a> <a href="http://technorati.com/tag/service-oriented" title="service-oriented" target="_blank">service-oriented</a> <a href="http://technorati.com/tag/soa" title="soa" target="_blank">soa</a> <a href="http://technorati.com/tag/soap" title="soap" target="_blank">soap</a> <a href="http://technorati.com/tag/wsdl" title="wsdl" target="_blank">wsdl</a> <a href="http://technorati.com/tag/xml" title="xml" target="_blank">xml</a> <a href="http://technorati.com/tag/xsd" title="xsd" target="_blank">xsd</a> <a href="http://technorati.com/tag/roa" title="roa" target="_blank">roa</a> <a href="http://technorati.com/tag/xml%20schema" title="xml schema" target="_blank">xml schema</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gopalan.wordpress.com/46/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gopalan.wordpress.com/46/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gopalan.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gopalan.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gopalan.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gopalan.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gopalan.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gopalan.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gopalan.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gopalan.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gopalan.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gopalan.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gopalan.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gopalan.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gopalan.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gopalan.wordpress.com/46/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gopalan.wordpress.com&amp;blog=1015973&amp;post=46&amp;subd=gopalan&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gopalan.wordpress.com/2007/05/26/my-article-nominated-for-jdj-annual-readers-choice-2007-awards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d9dd2b68e518fb25f8c70be7820ee83e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gopalan</media:title>
		</media:content>

		<media:content url="http://gopalan.files.wordpress.com/2007/05/votenow-regular.gif" medium="image">
			<media:title type="html">JDJ Readers Choice Awards 2007</media:title>
		</media:content>
	</item>
		<item>
		<title>SOA Tips: Favor Contract First Development (a.k.a. Top-Down approach)</title>
		<link>http://gopalan.wordpress.com/2007/05/26/soa-tips-favor-contract-first-development-aka-top-down-approach/</link>
		<comments>http://gopalan.wordpress.com/2007/05/26/soa-tips-favor-contract-first-development-aka-top-down-approach/#comments</comments>
		<pubDate>Sat, 26 May 2007 12:32:05 +0000</pubDate>
		<dc:creator>gopalan</dc:creator>
				<category><![CDATA[The Web of Services]]></category>

		<guid isPermaLink="false">http://gopalan.wordpress.com/2007/05/26/44/</guid>
		<description><![CDATA[Contract First Development is also called Design By Contract. Create the data contract in XSD and the behavioral contract in WSDL upfront. Use the XSD and WSDL editors provided by the NetBeans Software SOA Pack to do this. This approach forces the designer to focus on messages and contracts as the key concepts in designing [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gopalan.wordpress.com&amp;blog=1015973&amp;post=44&amp;subd=gopalan&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://gopalan.files.wordpress.com/2007/05/designbycontract.gif" title="Design By Contract"><img src="http://gopalan.files.wordpress.com/2007/05/designbycontract.gif?w=500" alt="Design By Contract" /></a></p>
<p><a href="http://blogs.sun.com/gopalan/entry/jbi_soa_blueprints_contract_first" target="_blank" title="Contract First Development">Contract First Development</a> is also called <a href="http://blogs.sun.com/gopalan/entry/jbi_soa_blueprints_contract_first" title="Design By Contract" target="_blank"><em><strong>Design By Contract</strong></em></a>. Create the data contract in XSD and the behavioral contract in WSDL upfront. Use the XSD and WSDL editors provided by the NetBeans Software SOA Pack to do this. This approach forces the designer to focus on messages and contracts as the key concepts in designing a service contract.</p>
<p><strong>Related blog entries and videos:</strong></p>
<ul>
<li><strong><a href="http://blogs.sun.com/gopalan/entry/jbi_soa_blueprints_contract_first" title="Contract First Development" target="_blank"><em>JBI/SOA Blueprints: Contract-First Development</em></a></strong></li>
<li><a href="http://blogs.sun.com/gopalan/entry/jbi_soa_blueprints_beware_of" title="Beware of the issues with Implementation-First Development" target="_blank"><strong><em>JBI/SOA Blueprints: Beware of the issues when doing Implementation-First (Bottom-up) Development</em></strong></a></li>
</ul>
<p><strong>Tags:</strong> <a href="http://technorati.com/tag/bpel" title="bpel" target="_blank">bpel</a> <a href="http://technorati.com/tag/choreography" title="choreography" target="_blank">choreography</a>  <a href="http://technorati.com/tag/ejb" title="ejb" target="_blank">ejb</a> <a href="http://technorati.com/tag/esb" title="esb" target="_blank">esb</a> <a href="http://technorati.com/tag/http" title="http" target="_blank">http</a> <a href="http://technorati.com/tag/integration" title="integration" target="_blank">integration</a> <a href="http://technorati.com/tag/javacaps" title="javacaps" target="_blank">javacaps</a> <a href="http://technorati.com/tag/javaee" title="javaee" target="_blank">javaee</a> <a href="http://technorati.com/tag/jax-ws" title="jax-ws" target="_blank">jax-ws</a> <a href="http://technorati.com/tag/jbi" title="jbi" target="_blank">jbi</a> <a href="http://technorati.com/tag/management" title="management" target="_blank">management</a> <a href="http://technorati.com/tag/orchestration" title="orchestration" target="_blank">orchestration</a> <a href="http://technorati.com/tag/process-oriented" title="process-oriented" target="_blank">process-oriented</a> <a href="http://technorati.com/tag/rest" title="rest" target="_blank">rest</a> <a href="http://technorati.com/tag/sca" title="sca" target="_blank">sca</a> <a href="http://technorati.com/tag/service-oriented" title="service-oriented" target="_blank">service-oriented</a> <a href="http://technorati.com/tag/soa" title="soa" target="_blank">soa</a> <a href="http://technorati.com/tag/soap" title="soap" target="_blank">soap</a> <a href="http://technorati.com/tag/wsdl" title="wsdl" target="_blank">wsdl</a> <a href="http://technorati.com/tag/xml" title="xml" target="_blank">xml</a> <a href="http://technorati.com/tag/xsd" title="xsd" target="_blank">xsd</a> <a href="http://technorati.com/tag/roa" title="roa" target="_blank">roa</a> <a href="http://technorati.com/tag/xml%20schema" title="xml schema" target="_blank">xml schema</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gopalan.wordpress.com/44/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gopalan.wordpress.com/44/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gopalan.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gopalan.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gopalan.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gopalan.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gopalan.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gopalan.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gopalan.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gopalan.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gopalan.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gopalan.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gopalan.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gopalan.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gopalan.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gopalan.wordpress.com/44/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gopalan.wordpress.com&amp;blog=1015973&amp;post=44&amp;subd=gopalan&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gopalan.wordpress.com/2007/05/26/soa-tips-favor-contract-first-development-aka-top-down-approach/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d9dd2b68e518fb25f8c70be7820ee83e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gopalan</media:title>
		</media:content>

		<media:content url="http://gopalan.files.wordpress.com/2007/05/designbycontract.gif" medium="image">
			<media:title type="html">Design By Contract</media:title>
		</media:content>
	</item>
		<item>
		<title>SOA Tips: The Wire Always Goes Forward never Back</title>
		<link>http://gopalan.wordpress.com/2007/05/25/soa-tips-the-wire-always-goes-forward-never-back/</link>
		<comments>http://gopalan.wordpress.com/2007/05/25/soa-tips-the-wire-always-goes-forward-never-back/#comments</comments>
		<pubDate>Fri, 25 May 2007 11:41:44 +0000</pubDate>
		<dc:creator>gopalan</dc:creator>
				<category><![CDATA[The Web of Services]]></category>

		<guid isPermaLink="false">http://gopalan.wordpress.com/2007/05/25/42/</guid>
		<description><![CDATA[If something goes wrong in a long-running transaction, you need to able to re-synchronize. The simplest way to re-synchronize is to do whatever you have to do and start over again. In some cases it may be some smaller fall-back in which case you can define the message to fall back to some intermediate restart [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gopalan.wordpress.com&amp;blog=1015973&amp;post=42&amp;subd=gopalan&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://gopalan.files.wordpress.com/2007/05/compensation.gif" title="Compensation in Business Processes"><img src="http://gopalan.files.wordpress.com/2007/05/compensation.gif?w=491&#038;h=262" alt="Compensation in Business Processes" height="262" width="491" /></a></p>
<p>If something goes wrong in a long-running transaction, you need to able to re-synchronize. The simplest way to re-synchronize is to do whatever you have to do and start over again. In some cases it may be some smaller fall-back in which case you can define the message to fall back to some intermediate restart point that you agree on in the collaboration design. However you look at it, it can get complicated. These collaborations do not happen in an atomic transaction, since these are transactions whose life cycle spans multiple partners and happens over a time of hours, or days, or weeks, or months. For example, in booking a reservation for travel you have your travel agent and your business process for booking a flight, a car, and a hotel. What happens when you get the flight, the car, and no hotel? Either you can choose to live with it and solve the hotel problem externally, or you could cancel the whole thing and try again with some other combination.</p>
<p>Certain run times or frameworks provide a previous snap-shot in time to figure out how to incrementally re-work the problem. This is more confusing than it is helpful. The very fact that you are looking at a state of the business process that does not represent the current state it is in, is more confusing than it is helpful. By giving you a view back in time where you think you are in a consistent state to make a decision, you have to understand where you currently are because you are somewhere else in time. How do you relate the previous state in time with where you currently are? So, do not rely on some generic  automated runtime or framework to solve your business problem for you. It is better for you to handle this within your business logic.</p>
<p><em><strong>Compensation </strong></em>is an application level function that defines the semantics for resolving issues that come up with in-flight instances. It is better handled by <em><strong>providing application level ‘cancellation’ functions</strong></em>. <em><strong>Think of the Collaboration as an entity that relentlessly pushes forward &#8211; it may change but it never ‘goes back’ to a previous state</strong></em>. <em><strong>If things get hopelessly stuck, then cancel and take whatever business hit cancellation costs </strong></em>(such as canceling a nonrefundable flight reservation).</p>
<p><strong>Tags:</strong> <a href="http://technorati.com/tag/bpel" title="bpel" target="_blank">bpel</a> <a href="http://technorati.com/tag/choreography" title="choreography" target="_blank">choreography</a>  <a href="http://technorati.com/tag/ejb" title="ejb" target="_blank">ejb</a> <a href="http://technorati.com/tag/esb" title="esb" target="_blank">esb</a> <a href="http://technorati.com/tag/http" title="http" target="_blank">http</a> <a href="http://technorati.com/tag/integration" title="integration" target="_blank">integration</a> <a href="http://technorati.com/tag/javacaps" title="javacaps" target="_blank">javacaps</a> <a href="http://technorati.com/tag/javaee" title="javaee" target="_blank">javaee</a> <a href="http://technorati.com/tag/jax-ws" title="jax-ws" target="_blank">jax-ws</a> <a href="http://technorati.com/tag/jbi" title="jbi" target="_blank">jbi</a> <a href="http://technorati.com/tag/management" title="management" target="_blank">management</a> <a href="http://technorati.com/tag/orchestration" title="orchestration" target="_blank">orchestration</a> <a href="http://technorati.com/tag/process-oriented" title="process-oriented" target="_blank">process-oriented</a> <a href="http://technorati.com/tag/rest" title="rest" target="_blank">rest</a> <a href="http://technorati.com/tag/sca" title="sca" target="_blank">sca</a> <a href="http://technorati.com/tag/service-oriented" title="service-oriented" target="_blank">service-oriented</a> <a href="http://technorati.com/tag/soa" title="soa" target="_blank">soa</a> <a href="http://technorati.com/tag/soap" title="soap" target="_blank">soap</a> <a href="http://technorati.com/tag/wsdl" title="wsdl" target="_blank">wsdl</a> <a href="http://technorati.com/tag/xml" title="xml" target="_blank">xml</a> <a href="http://technorati.com/tag/xsd" title="xsd" target="_blank">xsd</a> <a href="http://technorati.com/tag/roa" title="roa" target="_blank">roa</a> <a href="http://technorati.com/tag/xml%20schema" title="xml schema" target="_blank">xml schema</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gopalan.wordpress.com/42/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gopalan.wordpress.com/42/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gopalan.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gopalan.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gopalan.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gopalan.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gopalan.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gopalan.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gopalan.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gopalan.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gopalan.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gopalan.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gopalan.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gopalan.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gopalan.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gopalan.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gopalan.wordpress.com&amp;blog=1015973&amp;post=42&amp;subd=gopalan&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gopalan.wordpress.com/2007/05/25/soa-tips-the-wire-always-goes-forward-never-back/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d9dd2b68e518fb25f8c70be7820ee83e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gopalan</media:title>
		</media:content>

		<media:content url="http://gopalan.files.wordpress.com/2007/05/compensation.gif" medium="image">
			<media:title type="html">Compensation in Business Processes</media:title>
		</media:content>
	</item>
		<item>
		<title>SOA Tips: Use Separate MEPs for Business Responses</title>
		<link>http://gopalan.wordpress.com/2007/05/24/soa-tips-use-separate-meps-for-business-responses/</link>
		<comments>http://gopalan.wordpress.com/2007/05/24/soa-tips-use-separate-meps-for-business-responses/#comments</comments>
		<pubDate>Thu, 24 May 2007 09:20:47 +0000</pubDate>
		<dc:creator>gopalan</dc:creator>
				<category><![CDATA[The Web of Services]]></category>

		<guid isPermaLink="false">http://gopalan.wordpress.com/2007/05/24/soa-tips-use-separate-meps-for-business-responses/</guid>
		<description><![CDATA[The wire is peer-to-peer meaning that in most cases the individual collaborating parties are interacting in a peer-to-peer way. They are not restricted to some kind of limited client/server functionality where you got the big guy and a small guy and the small guy has different concerns than the big guy. Each element in the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gopalan.wordpress.com&amp;blog=1015973&amp;post=39&amp;subd=gopalan&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em><strong>The wire is peer-to-peer</strong></em> meaning that in most cases the individual collaborating parties are interacting in a peer-to-peer way. They are not restricted to some kind of limited client/server functionality where you got the big guy and a small guy and the small guy has different concerns than the big guy. Each element in the infrastructure has to deal pretty much with the same set of wire-design concerns. Simple things in a client/server world do not work the same way in the wire-design world &#8211; like HTTP session cookies, pseudo-conversational modes, and so forth &#8211; because that implies that there is this hierarchical relationship elements that are collaborating with wire design. <em>The wire is not hierarchical, its peer-to-peer</em>. That means that any kind of <a href="http://blogs.sun.com/gopalan/entry/jbi_soa_tips_use_correlation" target="_blank" title="That is Correlation in wire-design">correlation </a>between interactions is in effect up to the business logic to resolve. You are moving information back and forth and you really cannot rely on simple things like HTTP sessions to keep correlations between messages sorted out. You are pushing that to the edge to keep these <a href="http://blogs.sun.com/gopalan/entry/jbi_soa_tips_use_correlation" target="_blank" title="That is Correlation in wire-design">correlations</a> resolved.<br />
When dealing with stateful interactions, mandating a business response as part of a single request/response message exchange pattern (MEP) overly restricts the asynchronous collaboration that is required. <em>Often the business response is not available quick enough to place the acknowledgment into the response</em>. <em><strong>The only way the business response can fully be decoupled from messages that produce them is to place the acknowledgment in a separate message exchange pattern.</strong></em></p>
<p><strong>Tags:</strong> <a href="http://technorati.com/tag/bpel" title="bpel" target="_blank">bpel</a> <a href="http://technorati.com/tag/choreography" title="choreography" target="_blank">choreography</a>  <a href="http://technorati.com/tag/ejb" title="ejb" target="_blank">ejb</a> <a href="http://technorati.com/tag/esb" title="esb" target="_blank">esb</a> <a href="http://technorati.com/tag/http" title="http" target="_blank">http</a> <a href="http://technorati.com/tag/integration" title="integration" target="_blank">integration</a> <a href="http://technorati.com/tag/javacaps" title="javacaps" target="_blank">javacaps</a> <a href="http://technorati.com/tag/javaee" title="javaee" target="_blank">javaee</a> <a href="http://technorati.com/tag/jax-ws" title="jax-ws" target="_blank">jax-ws</a> <a href="http://technorati.com/tag/jbi" title="jbi" target="_blank">jbi</a> <a href="http://technorati.com/tag/management" title="management" target="_blank">management</a> <a href="http://technorati.com/tag/orchestration" title="orchestration" target="_blank">orchestration</a> <a href="http://technorati.com/tag/process-oriented" title="process-oriented" target="_blank">process-oriented</a> <a href="http://technorati.com/tag/rest" title="rest" target="_blank">rest</a> <a href="http://technorati.com/tag/sca" title="sca" target="_blank">sca</a> <a href="http://technorati.com/tag/service-oriented" title="service-oriented" target="_blank">service-oriented</a> <a href="http://technorati.com/tag/soa" title="soa" target="_blank">soa</a> <a href="http://technorati.com/tag/soap" title="soap" target="_blank">soap</a> <a href="http://technorati.com/tag/wsdl" title="wsdl" target="_blank">wsdl</a> <a href="http://technorati.com/tag/xml" title="xml" target="_blank">xml</a> <a href="http://technorati.com/tag/xsd" title="xsd" target="_blank">xsd</a> <a href="http://technorati.com/tag/roa" title="roa" target="_blank">roa</a> <a href="http://technorati.com/tag/xml%20schema" title="xml schema" target="_blank">xml schema</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gopalan.wordpress.com/39/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gopalan.wordpress.com/39/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gopalan.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gopalan.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gopalan.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gopalan.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gopalan.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gopalan.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gopalan.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gopalan.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gopalan.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gopalan.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gopalan.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gopalan.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gopalan.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gopalan.wordpress.com/39/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gopalan.wordpress.com&amp;blog=1015973&amp;post=39&amp;subd=gopalan&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gopalan.wordpress.com/2007/05/24/soa-tips-use-separate-meps-for-business-responses/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d9dd2b68e518fb25f8c70be7820ee83e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gopalan</media:title>
		</media:content>
	</item>
		<item>
		<title>SOA Tips: Message Exchange Patterns (MEPs) are the units of &#8216;wire&#8217; collaboration</title>
		<link>http://gopalan.wordpress.com/2007/05/23/soa-tips-message-exchange-patterns-meps-are-the-units-of-wire-collaboration/</link>
		<comments>http://gopalan.wordpress.com/2007/05/23/soa-tips-message-exchange-patterns-meps-are-the-units-of-wire-collaboration/#comments</comments>
		<pubDate>Wed, 23 May 2007 08:25:44 +0000</pubDate>
		<dc:creator>gopalan</dc:creator>
				<category><![CDATA[The Web of Services]]></category>

		<guid isPermaLink="false">http://gopalan.wordpress.com/2007/05/23/soa-tips-message-exchange-patterns-meps-are-the-units-of-wire-collaboration/</guid>
		<description><![CDATA[The units of ‘wire’ collaboration are the Message Exchange Patterns (MEPs) The most important thing to understand is that wire-design from an application perspective is made up of Message Exchange Patterns (MEPs) . These message exchange patterns are just units of simple message exchanges and are a way of incrementally shipping messages back and forth [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gopalan.wordpress.com&amp;blog=1015973&amp;post=38&amp;subd=gopalan&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em><strong>The units of ‘wire’ collaboration</strong><strong> are the Message Exchange Patterns (MEPs)</strong></em></p>
<p>The most important thing to understand is that <em>wire-design from an application perspective</em> is made up of Message Exchange Patterns (MEPs) . These message exchange patterns are just units of simple message exchanges and are a way of incrementally shipping messages back and forth between different consumers and providers &#8211; whether it is with HTTP itself using Put, Post, Get, Delete, or WSDL 2.0 MEPs, or AS 2.0 MEPs. These are the <em>incremental building-blocks</em> of how data flows on the wire. These message exchange patterns are transient primitives that allow us to send a message and get back some immediate response to that message interchange.</p>
<p><em><strong>Transient message exchanges</strong></em></p>
<p>Message Exchange Patterns are <em>transient message exchanges</em> in the sense that they are <em>simple synchronous interactions</em>, typically <em>end-to-end</em>, that causes the message to be transported with some <em>simple acknowledgment</em> that it reached the other end. This is one of the things that distinguishes this <em>infrastructure integration</em> from the<em> web-site interaction over the net</em> because typically you are expecting a kind of <em>full-fledged response coming back</em> on the HTTP request and at the integration level often it is just a simple acknowledgment. Out of these simple Message Exchange building blocks we build larger practical <a href="http://blogs.sun.com/gopalan/entry/jbi_soa_tips_what_is1" title="What are Conversations" target="_blank"><strong><em>conversations</em></strong></a>.</p>
<p><em><strong>Design focus</strong></em></p>
<p>The first consideration in building up a wire design is to determine which MEPs you are going to be using for what and define which particular transports you are going to be transporting these messages over. The <em>first building-block</em> that you have to think about in doing wire-design are which specific <em>message exchange patterns</em> you are going to use. It is perfectly fine to use HTTP directly. You don&#8217;t have to use a SOAP based message exchange pattern in order to do wire-design. That is a design choice you can make and it is not something that you have to feel bad about in the sense that you&#8217;re not &#8216;puffing up&#8217; your wire design with the complexities of SOAP.<a href="http://gopalan.files.wordpress.com/2007/05/meps.gif" title="meps.gif"><img src="http://gopalan.files.wordpress.com/2007/05/meps.gif?w=521&#038;h=390" alt="meps.gif" height="390" width="521" /></a></p>
<p>As we saw in previous entries, <a href="http://blogs.sun.com/gopalan/entry/jbi_soa_tips_what_is1" title="What are Conversations" target="_blank"><strong><em>conversations </em></strong></a>are longer running contexts across which we are trying to collaborate. These conversations are built up of <a href="http://blogs.sun.com/gopalan/entry/jbi_soa_tips_use_correlation" title="What is message correlation" target="_blank"><strong><em>correlated messages</em></strong></a>. <em><strong>Message exchange patterns are not conversations</strong></em> &#8211; they are just a way of shipping the messages over the wire. From a network perspective, the network does not understand what a conversation is. <em>Conversation is part of the wire design that is <strong>interpreted at the endpoints</strong> based on the correlations between these messages</em> that have been described in the wire design architecture. Clearly, these <strong><em>conversations are peer-to-peer</em></strong>. Each side has some objective they are trying to achieve. <em>Each side correlates these messages in different ways</em> and they are just using the network to interchange these messages. <strong><em>So it is really important as part of the wire design to define the roles and correlations, the overall life cycle of the conversation, and the <a href="http://blogs.sun.com/gopalan/entry/identify_shared_conversational_state_upfront" title="Identify Shared State" target="_blank">shared state</a> that these conversations describe</em></strong>.</p>
<p>If you do not have a clear design for these, you cannot achieve a practical collaboration wire design.</p>
<p><strong>Tags:</strong> <a href="http://technorati.com/tag/bpel" title="bpel" target="_blank">bpel</a> <a href="http://technorati.com/tag/choreography" title="choreography" target="_blank">choreography</a>  <a href="http://technorati.com/tag/ejb" title="ejb" target="_blank">ejb</a> <a href="http://technorati.com/tag/esb" title="esb" target="_blank">esb</a> <a href="http://technorati.com/tag/http" title="http" target="_blank">http</a> <a href="http://technorati.com/tag/integration" title="integration" target="_blank">integration</a> <a href="http://technorati.com/tag/javacaps" title="javacaps" target="_blank">javacaps</a> <a href="http://technorati.com/tag/javaee" title="javaee" target="_blank">javaee</a> <a href="http://technorati.com/tag/jax-ws" title="jax-ws" target="_blank">jax-ws</a> <a href="http://technorati.com/tag/jbi" title="jbi" target="_blank">jbi</a> <a href="http://technorati.com/tag/management" title="management" target="_blank">management</a> <a href="http://technorati.com/tag/orchestration" title="orchestration" target="_blank">orchestration</a> <a href="http://technorati.com/tag/process-oriented" title="process-oriented" target="_blank">process-oriented</a> <a href="http://technorati.com/tag/rest" title="rest" target="_blank">rest</a> <a href="http://technorati.com/tag/sca" title="sca" target="_blank">sca</a> <a href="http://technorati.com/tag/service-oriented" title="service-oriented" target="_blank">service-oriented</a> <a href="http://technorati.com/tag/soa" title="soa" target="_blank">soa</a> <a href="http://technorati.com/tag/soap" title="soap" target="_blank">soap</a> <a href="http://technorati.com/tag/wsdl" title="wsdl" target="_blank">wsdl</a> <a href="http://technorati.com/tag/xml" title="xml" target="_blank">xml</a> <a href="http://technorati.com/tag/xsd" title="xsd" target="_blank">xsd</a> <a href="http://technorati.com/tag/roa" title="roa" target="_blank">roa</a> <a href="http://technorati.com/tag/xml%20schema" title="xml schema" target="_blank">xml schema</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gopalan.wordpress.com/38/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gopalan.wordpress.com/38/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gopalan.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gopalan.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gopalan.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gopalan.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gopalan.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gopalan.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gopalan.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gopalan.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gopalan.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gopalan.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gopalan.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gopalan.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gopalan.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gopalan.wordpress.com/38/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gopalan.wordpress.com&amp;blog=1015973&amp;post=38&amp;subd=gopalan&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gopalan.wordpress.com/2007/05/23/soa-tips-message-exchange-patterns-meps-are-the-units-of-wire-collaboration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d9dd2b68e518fb25f8c70be7820ee83e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gopalan</media:title>
		</media:content>

		<media:content url="http://gopalan.files.wordpress.com/2007/05/meps.gif" medium="image">
			<media:title type="html">meps.gif</media:title>
		</media:content>
	</item>
		<item>
		<title>SOA Tips: Use Correlation Values to Reference Shared State</title>
		<link>http://gopalan.wordpress.com/2007/05/22/soa-tips-use-correlation-values-to-reference-shared-state/</link>
		<comments>http://gopalan.wordpress.com/2007/05/22/soa-tips-use-correlation-values-to-reference-shared-state/#comments</comments>
		<pubDate>Tue, 22 May 2007 09:07:23 +0000</pubDate>
		<dc:creator>gopalan</dc:creator>
				<category><![CDATA[The Web of Services]]></category>

		<guid isPermaLink="false">http://gopalan.wordpress.com/2007/05/22/soa-tips-use-correlation-values-to-reference-shared-state/</guid>
		<description><![CDATA[Share conversational state on the wire using self-defined correlations in the message. This ensures that subsequent processes in the collaboration tail can correlate the response to a specific request. The identifier(s) placed in the Message Property of the WSDL can serve as correlation identifier(s) that tie together message instances with a particular conversation. To learn [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gopalan.wordpress.com&amp;blog=1015973&amp;post=36&amp;subd=gopalan&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://gopalan.files.wordpress.com/2007/05/msgproperty.gif" title="Use Identifiers in Message Property of WSDL"><img src="http://gopalan.files.wordpress.com/2007/05/msgproperty.gif?w=542&#038;h=248" alt="Use Identifiers in Message Property of WSDL" height="248" width="542" /></a></p>
<p>Share conversational state on the wire using self-defined correlations in the message. This ensures that subsequent processes in the collaboration tail can correlate the response to a specific request. The identifier(s) placed in the Message Property of the WSDL can serve as correlation identifier(s) that tie together message instances with a particular conversation.</p>
<p>To learn more about this, read this blog entry of mine entitled <a href="http://blogs.sun.com/gopalan/entry/bpel_what_is_correlation_message" target="_blank" title="What is Correlation, message Property, Property Alias, and Correlation Set"><em><strong>What is Correlation, message Property, Property Alias, and Correlation Set</strong></em></a></p>
<p><strong>Tags:</strong> <a href="http://technorati.com/tag/bpel" title="bpel" target="_blank">bpel</a> <a href="http://technorati.com/tag/choreography" title="choreography" target="_blank">choreography</a>  <a href="http://technorati.com/tag/ejb" title="ejb" target="_blank">ejb</a> <a href="http://technorati.com/tag/esb" title="esb" target="_blank">esb</a> <a href="http://technorati.com/tag/http" title="http" target="_blank">http</a> <a href="http://technorati.com/tag/integration" title="integration" target="_blank">integration</a> <a href="http://technorati.com/tag/javacaps" title="javacaps" target="_blank">javacaps</a> <a href="http://technorati.com/tag/javaee" title="javaee" target="_blank">javaee</a> <a href="http://technorati.com/tag/jax-ws" title="jax-ws" target="_blank">jax-ws</a> <a href="http://technorati.com/tag/jbi" title="jbi" target="_blank">jbi</a> <a href="http://technorati.com/tag/management" title="management" target="_blank">management</a> <a href="http://technorati.com/tag/orchestration" title="orchestration" target="_blank">orchestration</a> <a href="http://technorati.com/tag/process-oriented" title="process-oriented" target="_blank">process-oriented</a> <a href="http://technorati.com/tag/rest" title="rest" target="_blank">rest</a> <a href="http://technorati.com/tag/sca" title="sca" target="_blank">sca</a> <a href="http://technorati.com/tag/service-oriented" title="service-oriented" target="_blank">service-oriented</a> <a href="http://technorati.com/tag/soa" title="soa" target="_blank">soa</a> <a href="http://technorati.com/tag/soap" title="soap" target="_blank">soap</a> <a href="http://technorati.com/tag/wsdl" title="wsdl" target="_blank">wsdl</a> <a href="http://technorati.com/tag/xml" title="xml" target="_blank">xml</a> <a href="http://technorati.com/tag/xsd" title="xsd" target="_blank">xsd</a> <a href="http://technorati.com/tag/roa" title="roa" target="_blank">roa</a> <a href="http://technorati.com/tag/xml%20schema" title="xml schema" target="_blank">xml schema</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gopalan.wordpress.com/36/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gopalan.wordpress.com/36/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gopalan.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gopalan.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gopalan.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gopalan.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gopalan.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gopalan.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gopalan.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gopalan.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gopalan.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gopalan.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gopalan.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gopalan.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gopalan.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gopalan.wordpress.com/36/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gopalan.wordpress.com&amp;blog=1015973&amp;post=36&amp;subd=gopalan&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gopalan.wordpress.com/2007/05/22/soa-tips-use-correlation-values-to-reference-shared-state/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d9dd2b68e518fb25f8c70be7820ee83e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gopalan</media:title>
		</media:content>

		<media:content url="http://gopalan.files.wordpress.com/2007/05/msgproperty.gif" medium="image">
			<media:title type="html">Use Identifiers in Message Property of WSDL</media:title>
		</media:content>
	</item>
		<item>
		<title>SOA Tips: Identify Shared Conversational State Upfront</title>
		<link>http://gopalan.wordpress.com/2007/05/21/soa-tips-identify-shared-conversational-state-upfront/</link>
		<comments>http://gopalan.wordpress.com/2007/05/21/soa-tips-identify-shared-conversational-state-upfront/#comments</comments>
		<pubDate>Mon, 21 May 2007 09:12:01 +0000</pubDate>
		<dc:creator>gopalan</dc:creator>
				<category><![CDATA[The Web of Services]]></category>

		<guid isPermaLink="false">http://gopalan.wordpress.com/2007/05/21/soa-tips-identify-shared-conversational-state-upfront/</guid>
		<description><![CDATA[We like to think of the net as a RESTful environment that is stateless, but in reality, when doing eBusiness Collaborations we have to understand how to deal with shared state. The fundamental mechanism for referring to shared state is the conversational context and the business correlation that ties the messages together. In fact, business [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gopalan.wordpress.com&amp;blog=1015973&amp;post=34&amp;subd=gopalan&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We like to think of the net as a RESTful environment that is stateless, but in  reality, when doing eBusiness Collaborations we have to understand how to deal  with <em><strong>shared state</strong></em>.  The fundamental mechanism for referring to  shared state is the <a href="http://blogs.sun.com/gopalan/entry/jbi_soa_tips_what_is1" title="JBI/SOA Tips: What is a Conversation in a collaboration wire-design" target="_blank"><em>conversational context</em></a> and the <em>business  correlation</em> that ties the messages together. In fact, <em>business  correlation</em> is the way we link to the implied shared state that the roles in  the collaboration assume exist, and is being consistently moved forward through  message exchanges.<br />
It is important that this <em>conversational shared state</em> is something  that is made visible through your wire design. The transitions that the shared  state goes through is well defined by the semantics of the conversation.The more  visible the transitions are, the easier it is to synchronize the <em>shared  state</em> between the collaborations whatever that shared state may be &#8211; whether  it is some book purchase activity that you&#8217;re trying to collaborate over, or its  a Purchase Order that you are trying to push, through some eBusiness purchasing  system.</p>
<p>Conversations always have an implied semantic <em>shared state</em> that  participants can share and refer to in the message body to keep track of message  relationships. Identify element(s) in the message that can serve as a shared  state-holder, for e.g., unique business specific identifiers that are customer  specific, like Social Security Numbers, Insurance Claim Numbers, Purchase Order  identifiers, etc. Ensure that these values are easy to find in the message body  by clearly defining XPath queries to extract the identifier(s) from within each  message.</p>
<p><a href="http://gopalan.files.wordpress.com/2007/05/identify_sharedconversationalstate.gif" title="Identify Shared Conversational State Upfront"><img src="http://gopalan.files.wordpress.com/2007/05/identify_sharedconversationalstate.gif?w=524&#038;h=297" alt="Identify Shared Conversational State Upfront" height="297" width="524" /></a></p>
<p>The figure above shows a new Purchase Order activity. As you already know, a  Purchase Order is a business document that defines a service level  agreement  (SLA) between a buyer and a seller. The buyer agrees to buy a certain set of  items at a particular price, and the seller agrees to provide these items at a  particular price, and ship it to the specified address by a given date, so on,  and so forth.</p>
<p>Normally, the buyer creates a new Purchase Order, assigns a Purchase Order  Identifier to the document and sends it across the wire to the Seller. The  Seller receives the new Purchase Order, assigns his own Purchase Order  Identifier to it and returns it back to the Buyer as an agreement that he is  willing to fulfill the order. In this message exchange, the shared state is the  Purchase Order Identifiers that each of them assigned to the document. In any  further conversations between them, if they have to refer to this Purchase Order  document, they have to exchange both the Order IDs that each of them assigned to  the document. This is the <em>shared state</em> that uniquely identifies that  document in both their systems.</p>
<p><strong>Tags:</strong> <a href="http://technorati.com/tag/bpel" title="bpel" target="_blank">bpel</a> <a href="http://technorati.com/tag/choreography" title="choreography" target="_blank">choreography</a>  <a href="http://technorati.com/tag/ejb" title="ejb" target="_blank">ejb</a> <a href="http://technorati.com/tag/esb" title="esb" target="_blank">esb</a> <a href="http://technorati.com/tag/http" title="http" target="_blank">http</a> <a href="http://technorati.com/tag/integration" title="integration" target="_blank">integration</a> <a href="http://technorati.com/tag/javacaps" title="javacaps" target="_blank">javacaps</a> <a href="http://technorati.com/tag/javaee" title="javaee" target="_blank">javaee</a> <a href="http://technorati.com/tag/jax-ws" title="jax-ws" target="_blank">jax-ws</a> <a href="http://technorati.com/tag/jbi" title="jbi" target="_blank">jbi</a> <a href="http://technorati.com/tag/management" title="management" target="_blank">management</a> <a href="http://technorati.com/tag/orchestration" title="orchestration" target="_blank">orchestration</a> <a href="http://technorati.com/tag/process-oriented" title="process-oriented" target="_blank">process-oriented</a> <a href="http://technorati.com/tag/rest" title="rest" target="_blank">rest</a> <a href="http://technorati.com/tag/sca" title="sca" target="_blank">sca</a> <a href="http://technorati.com/tag/service-oriented" title="service-oriented" target="_blank">service-oriented</a> <a href="http://technorati.com/tag/soa" title="soa" target="_blank">soa</a> <a href="http://technorati.com/tag/soap" title="soap" target="_blank">soap</a> <a href="http://technorati.com/tag/wsdl" title="wsdl" target="_blank">wsdl</a> <a href="http://technorati.com/tag/xml" title="xml" target="_blank">xml</a> <a href="http://technorati.com/tag/xsd" title="xsd" target="_blank">xsd</a> <a href="http://technorati.com/tag/roa" title="roa" target="_blank">roa</a> <a href="http://technorati.com/tag/xml%20schema" title="xml schema" target="_blank">xml schema</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gopalan.wordpress.com/34/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gopalan.wordpress.com/34/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gopalan.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gopalan.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gopalan.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gopalan.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gopalan.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gopalan.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gopalan.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gopalan.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gopalan.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gopalan.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gopalan.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gopalan.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gopalan.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gopalan.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gopalan.wordpress.com&amp;blog=1015973&amp;post=34&amp;subd=gopalan&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gopalan.wordpress.com/2007/05/21/soa-tips-identify-shared-conversational-state-upfront/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d9dd2b68e518fb25f8c70be7820ee83e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gopalan</media:title>
		</media:content>

		<media:content url="http://gopalan.files.wordpress.com/2007/05/identify_sharedconversationalstate.gif" medium="image">
			<media:title type="html">Identify Shared Conversational State Upfront</media:title>
		</media:content>
	</item>
		<item>
		<title>SOA Tips: What is a Conversation in a collaboration wire-design</title>
		<link>http://gopalan.wordpress.com/2007/05/21/soa-tips-what-is-a-conversation-in-a-collaboration-wire-design/</link>
		<comments>http://gopalan.wordpress.com/2007/05/21/soa-tips-what-is-a-conversation-in-a-collaboration-wire-design/#comments</comments>
		<pubDate>Mon, 21 May 2007 09:10:00 +0000</pubDate>
		<dc:creator>gopalan</dc:creator>
				<category><![CDATA[The Web of Services]]></category>

		<guid isPermaLink="false">http://gopalan.wordpress.com/2007/05/21/soa-tips-what-is-a-conversation-in-a-collaboration-wire-design/</guid>
		<description><![CDATA[When doing wire-design for global collaborations, you have to think about how to establish Conversation. Typically in a eBusiness context, a single delivery of the message is not enough to achieve the business purpose. There is some interaction of messages involved between collaborating partners that ends up resulting in some unit of activity. These interactions [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gopalan.wordpress.com&amp;blog=1015973&amp;post=32&amp;subd=gopalan&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When doing wire-design for global collaborations, you have to think about how  to establish <strong><em>Conversation</em></strong>. Typically in a eBusiness context, a  single delivery of the message is not enough to achieve the business purpose.  There is some interaction of messages involved between collaborating partners  that ends up resulting in some unit of activity. These interactions of messages  can therefore span multiple HTTP sessions that require a <em>business-level  correlation</em> and are essentially peer-to-peer message exchanges.</p>
<p>So when designing global collaborations for wire-centric integration, you  have to think about:</p>
<ol>
<li>the <em>roles </em>of the participants,</li>
<li>what <em>correlations </em>you are trying to establish between them,</li>
<li>what is the <em>lifecycle </em>of this conversation &#8211; what starts the  conversation, what maintains the conversation, what completes the conversation,  and</li>
<li>the <em>shared state</em> that is implied to exist within the context of the  conversation.</li>
</ol>
<p>The <em><strong>conversation</strong></em> is a new computing context that you will have  to think of in wire design.</p>
<p><strong>Tags:</strong> <a href="http://technorati.com/tag/bpel" title="bpel" target="_blank">bpel</a> <a href="http://technorati.com/tag/choreography" title="choreography" target="_blank">choreography</a>  <a href="http://technorati.com/tag/ejb" title="ejb" target="_blank">ejb</a> <a href="http://technorati.com/tag/esb" title="esb" target="_blank">esb</a> <a href="http://technorati.com/tag/http" title="http" target="_blank">http</a> <a href="http://technorati.com/tag/integration" title="integration" target="_blank">integration</a> <a href="http://technorati.com/tag/javacaps" title="javacaps" target="_blank">javacaps</a> <a href="http://technorati.com/tag/javaee" title="javaee" target="_blank">javaee</a> <a href="http://technorati.com/tag/jax-ws" title="jax-ws" target="_blank">jax-ws</a> <a href="http://technorati.com/tag/jbi" title="jbi" target="_blank">jbi</a> <a href="http://technorati.com/tag/management" title="management" target="_blank">management</a> <a href="http://technorati.com/tag/orchestration" title="orchestration" target="_blank">orchestration</a> <a href="http://technorati.com/tag/process-oriented" title="process-oriented" target="_blank">process-oriented</a> <a href="http://technorati.com/tag/rest" title="rest" target="_blank">rest</a> <a href="http://technorati.com/tag/sca" title="sca" target="_blank">sca</a> <a href="http://technorati.com/tag/service-oriented" title="service-oriented" target="_blank">service-oriented</a> <a href="http://technorati.com/tag/soa" title="soa" target="_blank">soa</a> <a href="http://technorati.com/tag/soap" title="soap" target="_blank">soap</a> <a href="http://technorati.com/tag/wsdl" title="wsdl" target="_blank">wsdl</a> <a href="http://technorati.com/tag/xml" title="xml" target="_blank">xml</a> <a href="http://technorati.com/tag/xsd" title="xsd" target="_blank">xsd</a> <a href="http://technorati.com/tag/roa" title="roa" target="_blank">roa</a> <a href="http://technorati.com/tag/xml%20schema" title="xml schema" target="_blank">xml schema</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gopalan.wordpress.com/32/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gopalan.wordpress.com/32/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gopalan.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gopalan.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gopalan.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gopalan.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gopalan.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gopalan.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gopalan.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gopalan.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gopalan.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gopalan.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gopalan.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gopalan.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gopalan.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gopalan.wordpress.com/32/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gopalan.wordpress.com&amp;blog=1015973&amp;post=32&amp;subd=gopalan&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gopalan.wordpress.com/2007/05/21/soa-tips-what-is-a-conversation-in-a-collaboration-wire-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d9dd2b68e518fb25f8c70be7820ee83e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gopalan</media:title>
		</media:content>
	</item>
	</channel>
</rss>
