<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3319007245393111479</id><updated>2012-01-11T03:42:14.755-05:00</updated><category term='JDeveloper'/><category term='OWSM'/><category term='WebService'/><category term='OER'/><category term='Governance'/><category term='Oracle SOA Suite'/><category term='SOA Suite Installation'/><category term='BPEL Process'/><category term='Releases'/><category term='SOA : Analysis and Design'/><category term='Miscellaneous'/><category term='Rules'/><category term='BPEL'/><category term='Best Practices'/><category term='Testing'/><title type='text'>Oracle BPEL 11g</title><subtitle type='html'>Oracle SOA 11gR1, BPEL, BAM, OSB, OWSM</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>52</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-2838801667436710909</id><published>2010-07-23T12:40:00.000-04:00</published><updated>2010-07-23T12:40:17.675-04:00</updated><title type='text'>Sensors in BPEL</title><content type='html'>This is an excellent article by Peter Ebell on the usage of Sensors in BPEL.&lt;br /&gt;&lt;a href="http://technology.amis.nl/blog/3326/debug-logging-in-bpel-using-sensors-part-1"&gt;http://technology.amis.nl/blog/3326/debug-logging-in-bpel-using-sensors-part-1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I could not find the Part2 of this article.&lt;br /&gt;&lt;br /&gt;I intend to update this with more information.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-2838801667436710909?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/2838801667436710909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/07/sensors-in-bpel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/2838801667436710909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/2838801667436710909'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/07/sensors-in-bpel.html' title='Sensors in BPEL'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-4449188395594509966</id><published>2010-06-18T14:18:00.000-04:00</published><updated>2010-06-18T14:18:04.644-04:00</updated><title type='text'>Passing Userid and Password Credentials as SOAP Header in BPEL</title><content type='html'>&lt;b&gt;Problem&lt;/b&gt;&lt;br /&gt;There may be Services that have policies enforced to receive the userid/password as part of the requests. If you do not have a Service Bus then this informaton has to be passed from the BPEL.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Solution&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Right click on the Web Service in Composite Design view&lt;/li&gt;&lt;li&gt;Select "Configue WS Policies"&lt;/li&gt;&lt;li&gt;Add Client Security Policy as applies to your case. I had to us "oracle/wss_http_token_client_policy"&lt;/li&gt;&lt;li&gt;Add the following Binding Properties from the Property Inspector&lt;/li&gt;&lt;ol&gt;&lt;li&gt;"oracle.webservices.auth.username" : admin&lt;/li&gt;&lt;li&gt;"oracle.webservices.auth.password" : admin&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;div&gt;If you look at the source generated in the composite .xml, you would see the following&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;reference name="...Service" ui:wsdlLocation="....wsdl"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;interface.wsdl &amp;nbsp;...../&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;binding.ws port="....."&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name="oracle.webservices.auth.username" type="xs:string"&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;many="false" override="may"&amp;gt;admin&amp;lt;/property&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name="oracle.webservices.auth.password" type="xs:string"&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;many="false" override="may"&amp;gt;admin&amp;lt;/property&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/binding.ws&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/reference&amp;gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-4449188395594509966?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/4449188395594509966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/06/passing-userid-and-password-credentials.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/4449188395594509966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/4449188395594509966'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/06/passing-userid-and-password-credentials.html' title='Passing Userid and Password Credentials as SOAP Header in BPEL'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-3858279142159081363</id><published>2010-06-17T14:19:00.000-04:00</published><updated>2010-06-17T14:19:46.892-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JDeveloper'/><title type='text'>Increasing memory of JDeveloper IDE</title><content type='html'>&lt;b&gt;Problem&lt;/b&gt;&lt;br /&gt;JDeveloper 11.1.1.3 by default comes with 768M of Max memory. When you have lot of files or objects in memory(I noticed this during XSLT of a large structure) JDeveloper runs out of memory and cannot open the file.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Solution&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Go to&amp;nbsp;C:\JDeveloperStudio11113\jdeveloper\ide\bin&lt;/li&gt;&lt;li&gt;Open ide.conf&lt;/li&gt;&lt;li&gt;And increase the memory to 1024 :&amp;nbsp;AddVMOption &amp;nbsp;-Xmx1024M&lt;/li&gt;&lt;li&gt;Restart the Jdeveloper and this should not cause any poblem.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-3858279142159081363?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/3858279142159081363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/06/increasing-memory-of-jdeveloper-ide.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/3858279142159081363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/3858279142159081363'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/06/increasing-memory-of-jdeveloper-ide.html' title='Increasing memory of JDeveloper IDE'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-6352597278999837533</id><published>2010-06-17T13:12:00.001-04:00</published><updated>2010-07-06T19:15:10.895-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BPEL Process'/><title type='text'>Disabling WS Addressing in BPEL</title><content type='html'>&lt;b&gt;Background and Problem&lt;/b&gt;&lt;br /&gt;In BPEL, the WS Addressing seems to be enabled by default. The external Web Service that is invoked from BPEL Service receives the WS Addressing and first verifies the end point. For some reason this end point that was generated by BPEL is incorrect and so throws an error. The only way the communication can be successful is to disable the WS Addressing.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Solution&lt;/b&gt;&lt;br /&gt;In SOA 11.1.1.3, this can be achieved by adding a binding property in the BPEL.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Select the WebService and you will see the Property Inspector.&lt;/li&gt;&lt;li&gt;Add the Property "oracle.soa.ws.outbound.omitWSA" and set it to true. As of this version this property is not available in the dropdown. So you need to add this.&lt;/li&gt;&lt;li&gt;Save it and deploy the new Service to test it out.&lt;/li&gt;&lt;li&gt;The Steps are shown below as an image&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_xH-xH_XieLM/TBpXE80mpwI/AAAAAAAAJXo/AhMUQRZLX0s/s1600/omitwsa.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="504" src="http://2.bp.blogspot.com/_xH-xH_XieLM/TBpXE80mpwI/AAAAAAAAJXo/AhMUQRZLX0s/s640/omitwsa.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-6352597278999837533?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/6352597278999837533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/06/disabling-ws-addressing-in-bpel.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/6352597278999837533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/6352597278999837533'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/06/disabling-ws-addressing-in-bpel.html' title='Disabling WS Addressing in BPEL'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_xH-xH_XieLM/TBpXE80mpwI/AAAAAAAAJXo/AhMUQRZLX0s/s72-c/omitwsa.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-1031869583431192842</id><published>2010-05-11T17:46:00.000-04:00</published><updated>2010-05-11T17:46:15.031-04:00</updated><title type='text'>Oracle BPMN2.0 : Important Things To Know</title><content type='html'>Oracle 11gR1Ps2(11.1.1.3) was released on April 27, &amp;nbsp;and supports BPMN2.0.&lt;br /&gt;&lt;br /&gt;The Oracle documentation for BPMN is available at&amp;nbsp;&lt;a href="http://oracle-bpel.blogspot.com/2009/09/oracle-bpel-informative-web-sites.html"&gt;http://oracle-bpel.blogspot.com/2009/09/oracle-bpel-informative-web-sites.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Following are the important points worth remembering&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A BPM Process can be converted to BPEL process&lt;/li&gt;&lt;li&gt;BPM Process is a Composite Application&lt;/li&gt;&lt;li&gt;Different Types of Business process are&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Synchronous&lt;/li&gt;&lt;li&gt;Asynchronous&lt;/li&gt;&lt;li&gt;Manual&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;/li&gt;&lt;li&gt;To expose a process as a service, your process must&amp;nbsp;begin with a message start event&lt;/li&gt;&lt;li&gt;&lt;/li&gt;&lt;li&gt;The message start event enables you to specify input and output arguments to a&amp;nbsp;process.&lt;/li&gt;&lt;li&gt;It supports Timer Start Event which can be scheduled to kickoff at a certain time&lt;/li&gt;&lt;li&gt;&lt;/li&gt;&lt;li&gt;If you are invoking a process or service&amp;nbsp;synchronously, use the service task.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-1031869583431192842?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/1031869583431192842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/05/oracle-bpmn20-important-things-to-know.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/1031869583431192842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/1031869583431192842'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/05/oracle-bpmn20-important-things-to-know.html' title='Oracle BPMN2.0 : Important Things To Know'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-4605873860193043556</id><published>2010-04-23T18:55:00.000-04:00</published><updated>2010-04-26T19:17:57.352-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA : Analysis and Design'/><title type='text'>SOA : Design Patterns : Foundational Service Design Patterns</title><content type='html'>&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Note : These are Design Patterns from "SOA Design Patterns" by Thomas Earl. The intent here is to simplify the patterns to a few lines so that they can be referred for a quick glance and also to document my experiences over time. This is by no means an effort to explain these patterns and I believe that the book has done an excellent job at that.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Functional Decomposition (Service Identification Pattern)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;Decomposes the business processes/tasks/problems to smaller ones&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;Applies the separation of concerns&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;Helps greatly in Service Analysis and Service Modelling&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Service Encapsulation&amp;nbsp;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;(Service Identification Pattern)&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;If Service oriented design principles (&lt;a href="http://oracle-bpel.blogspot.com/2010/04/soa-design-principles.html"&gt;http://oracle-bpel.blogspot.com/2010/04/soa-design-principles.html&lt;/a&gt;)&amp;nbsp;can be applied to a meaningful extent then the logic can be encapsulated as a Service.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Agnostic Context&amp;nbsp;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;(Service Definition Pattern)&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Non Agnostic Context&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;(Service Definition Pattern)&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Agnostic Capability&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;(Service Definition Pattern)&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-4605873860193043556?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/4605873860193043556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/04/soa-design-patterns-foundational.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/4605873860193043556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/4605873860193043556'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/04/soa-design-patterns-foundational.html' title='SOA : Design Patterns : Foundational Service Design Patterns'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-8602212178840042677</id><published>2010-04-23T10:24:00.000-04:00</published><updated>2010-04-26T19:17:57.353-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA : Analysis and Design'/><title type='text'>SOA : Design Patterns : Inventory Centralization Design Patterns</title><content type='html'>&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Note : These are Design Patterns from "SOA Design Patterns" by Thomas Earl. The intent here is to simplify the patterns to a few lines so that they can be referred for a quick glance and also to document my experiences over time. This is by no means an effort to explain these patterns and I believe that the book has done an excellent job at that.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Process Centralization&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Schema&amp;nbsp;&lt;/b&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Centralization&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Policy&amp;nbsp;&lt;/b&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Centralization&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Rules&amp;nbsp;&lt;/b&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Centralization&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-8602212178840042677?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/8602212178840042677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/04/soa-design-patterns-inventory.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/8602212178840042677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/8602212178840042677'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/04/soa-design-patterns-inventory.html' title='SOA : Design Patterns : Inventory Centralization Design Patterns'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-5934290513546099174</id><published>2010-04-23T09:58:00.028-04:00</published><updated>2010-07-13T20:04:07.184-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA : Analysis and Design'/><title type='text'>SOA : Design Patterns : Service Governance Design Patterns</title><content type='html'>&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Note : These are Design Patterns from "SOA Design Patterns" by Thomas Earl. The intent here is to simplify the patterns to a few lines so that they can be referred for a quick glance and also to document my experiences over time. This is by no means an effort to explain these patterns and I believe that the book has done an excellent job at that.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Compatible Change&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;This is the most frequently applied pattern once the Service is in maintenance phase.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;The intent should be to make the change backward compatible to the existing Service Consumers.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;Addition of new optional elements in the Schema is a Compatible change&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;Similarly any new operations, renaming, adding more messages, policy changes have to be reviewed to make the changes compatible.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Version Identification&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;Design the versioning of the service contract in such a way that the compatible and non compatible changes are expressed clearly to the service consumers.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;The typical convention is the decimal format with major and minor versions.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Termination Notification&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;The scheduled expiry of service or operations can be expressed through Termination Notification.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;This can be expressed through WS Policy language through ignorable assertions&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Service Refactoring&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Service Decomposition&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Proxy Capability&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;When an existing Service has to be decomposed to multiple fine grained services then the original contract is still used as a Proxy so that the existing service Consumers can still be serviced while the new Service Consumers will start using the new decomposed Services. &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Decomposed Capability&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Distributed Capability&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-5934290513546099174?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/5934290513546099174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/04/soa-design-patterns-service-governance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/5934290513546099174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/5934290513546099174'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/04/soa-design-patterns-service-governance.html' title='SOA : Design Patterns : Service Governance Design Patterns'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-7349697240741955793</id><published>2010-04-23T09:43:00.000-04:00</published><updated>2010-04-26T19:17:57.355-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA : Analysis and Design'/><title type='text'>SOA : Design Patterns : Service Messaging Design Patterns</title><content type='html'>&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Note : These are Design Patterns from "SOA Design Patterns" by Thomas Earl. The intent here is to simplify the patterns to a few lines so that they can be referred for a quick glance and also to document my experiences over time. This is by no means an effort to explain these patterns and I believe that the book has done an excellent job at that.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;i&gt;Since all the below patterns are incorporated by the SOAP Web Service and current Enterprise Service Buses they are not being elaborated here.&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Service Messaging&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Messaging Metadata&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Service Agent&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;Intermediate Routing&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;State Messaging&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Service Callback&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Service Instance Routing&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Asynchronous Queuing&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Reliable Messaging&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Event Driven Messaging&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-7349697240741955793?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/7349697240741955793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/04/soa-design-patterns-service-messaging.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/7349697240741955793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/7349697240741955793'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/04/soa-design-patterns-service-messaging.html' title='SOA : Design Patterns : Service Messaging Design Patterns'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-1480279488834831581</id><published>2010-04-23T09:31:00.000-04:00</published><updated>2010-04-26T19:17:57.355-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA : Analysis and Design'/><title type='text'>SOA : Design Patterns : Inventory Design Patterns</title><content type='html'>&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Note : These are Design Patterns from "SOA Design Patterns" by Thomas Earl. The intent here is to simplify the patterns to a few lines so that they can be referred for a quick glance and also to document my experiences over time. This is by no means an effort to explain these patterns and I believe that the book has done an excellent job at that.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Enterprise Inventory&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;Services developed in an enterprise are maintained in an Enterprise Service Inventory.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;This helps in standardized contracts, avoids creation of redundant services and easy governance.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Domain Inventory&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;When Enterprise Inventory is not possible, then multiple Domain Inventories are created.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;The boundary of domain inventory needs to be carefully established. The boundary could be functional.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;Governance is established at the domain inventory level.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Service Normalization&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;This pattern normalizes the existing Services that have overlapping functional boundaries.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;This is done by applying Logic Centralization and Service Abstraction&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Logic Centralization&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;This pattern targets the creation of Agnostic Service that have a clearly defined boundary.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;Helps in reuse and composability of these Services&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Service Layers&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;Same as Service Modelling.&amp;nbsp;&lt;a href="http://oracle-bpel.blogspot.com/2010/04/soa-service-modelling.html"&gt;http://oracle-bpel.blogspot.com/2010/04/soa-service-modelling.html&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Canonical Protocol&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;Standardizes the transport and communication protocols for all services in the inventory.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;This is to enable reusability and composability (avoiding the costly protocol bridging)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;Example: WSDL, Schema, Policy, Transport(HTTP), Communication(SOAP) versions.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Canonical Schema&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;Standardizes the schema definitions in a service inventory.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;This avoids data model transformation, redundant data definitions and helps in governance&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-1480279488834831581?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/1480279488834831581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/04/soa-design-patterns-inventory-design.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/1480279488834831581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/1480279488834831581'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/04/soa-design-patterns-inventory-design.html' title='SOA : Design Patterns : Inventory Design Patterns'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-8264613354890841792</id><published>2010-04-23T08:09:00.000-04:00</published><updated>2010-04-23T08:09:53.661-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA : Analysis and Design'/><title type='text'>SOA : Design Patterns : Legacy Encapsulation Design Patterns</title><content type='html'>&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Note : These are Design Patterns from "SOA Design Patterns" by Thomas Earl. The intent here is to simplify the patterns to a few lines so that they can be referred for a quick glance and also to document my experiences over time. This is by no means an effort to explain these patterns and I believe that the book has done an excellent job at that.&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Legacy Wrapper&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;Legacy systems expose the access through wrapper services which do not have a standardized contract and have tight contract to logic coupling and little abstraction.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;This is fixed by wrapping the legacy system with a new legacy wrapper service that has a standardized contract, loose coupling and abstraction.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Multi-Channel Endpoint&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;File Gateway&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-8264613354890841792?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/8264613354890841792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/04/soa-design-patterns-legacy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/8264613354890841792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/8264613354890841792'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/04/soa-design-patterns-legacy.html' title='SOA : Design Patterns : Legacy Encapsulation Design Patterns'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-2113334667553405754</id><published>2010-04-22T22:38:00.000-04:00</published><updated>2010-04-26T19:17:57.356-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA : Analysis and Design'/><title type='text'>SOA : Design Patterns : Service Contract Design Patterns</title><content type='html'>&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Note : These are Design Patterns from "SOA Design Patterns" by Thomas Earl. The intent here is to simplify the patterns to a few lines so that they can be referred for a quick glance and also to document my experiences over time. This is by no means an effort to explain these patterns and I believe that the book has done an excellent job at that.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Decoupled Contract&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;A contract created by "contract first" approach decouples the Service Contract from the Service Logic.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Contract Centralization&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;Service Contract has to be the sole point to access the Service Logic&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Contract Denormalization&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Concurrent Contracts&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Validation Abstraction&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-2113334667553405754?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/2113334667553405754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/04/soa-design-patterns-service-contract.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/2113334667553405754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/2113334667553405754'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/04/soa-design-patterns-service-contract.html' title='SOA : Design Patterns : Service Contract Design Patterns'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-3371309961049591221</id><published>2010-04-22T22:23:00.000-04:00</published><updated>2010-04-26T19:17:57.357-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA : Analysis and Design'/><title type='text'>SOA : Design Patterns : Service Implementation Patterns</title><content type='html'>Note : These are Design Patterns from "SOA Design Patterns" by Thomas Earl. The intent here is to simplify the patterns to a few lines so that they can be referred for a quick glance and also to document my experiences over time. This is by no means an effort to explain these patterns and I believe that the book has done an excellent job at that.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Service Facade&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If a Service Logic supports multiple Service Contracts then a Service Facade Logic helps to reduce the coupling between the Service Contracts and the Service Logic. This will help in the evolution of the Service Logic without affecting the Service Contracts as the Service Facade accommodates any changes.&lt;/li&gt;&lt;li&gt;The Service Facade Logic is primarily responsible for providing intermediate processing logic in support of the core Service Logic.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Redundant Implementation&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Making multiple instances of the Service available so that it does not become a single point of failure.&lt;/li&gt;&lt;li&gt;Clustering of nodes and routing through ESB solves this issue&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Service Data Replication&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Requires replication of data so that it improves the Autonomy of the Service and improves the performance of the Service&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Partial State Deferral&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Partial Validation&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;UI Mediator&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-3371309961049591221?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/3371309961049591221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/04/soa-design-patterns-service.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/3371309961049591221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/3371309961049591221'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/04/soa-design-patterns-service.html' title='SOA : Design Patterns : Service Implementation Patterns'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-6508658078926103163</id><published>2010-04-22T19:16:00.001-04:00</published><updated>2010-04-22T19:17:25.796-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA : Analysis and Design'/><title type='text'>SOA :  Design Principles</title><content type='html'>The following service oriented principles should be applied to the extent possible so that the benefits of SOA can be realized.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Standardized Service Contracts&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A SOAP Web Service has the following as part of the contract&lt;/li&gt;&lt;ul&gt;&lt;li&gt;WSDL&lt;/li&gt;&lt;li&gt;XSD&lt;/li&gt;&lt;li&gt;WS Policy&lt;/li&gt;&lt;li&gt;SLA (Service Level Agreement)&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Service Contract is standardized through the application of design standards(contract first approach)&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Standardized naming conventions(expressive)&lt;/li&gt;&lt;li&gt;Standardized data types(reduces the transformations between data types)&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;2. Loose Coupling&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;The different types of coupling are&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Logic-to-Contract Coupling&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Created when the "contract first" approach is followed&lt;/li&gt;&lt;li&gt;Tight coupling of Service Logic on the Service Contract&lt;/li&gt;&lt;li&gt;Positive&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Contract-to-Logic&amp;nbsp;Coupling&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Created when the Service Contract is auto generated from the Service Logic&lt;/li&gt;&lt;li&gt;The Service Contract is dependent on the underlying Service Logic&lt;/li&gt;&lt;li&gt;Also, auto generation of schemas from the database tables&lt;/li&gt;&lt;li&gt;Negative&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;3. Service Abstraction&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Hides the implementation details from the Service Consumers(to be hidden - includes technology, functional, programmatic logic and quality of service information)&lt;/li&gt;&lt;li&gt;This provides the freedom to evolve the service implementation as required.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;4. Service Reusability&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Services should contain and express agnostic logic so that they can be reused across the enterprise.&lt;/li&gt;&lt;li&gt;Achieving this is &lt;b&gt;very important&lt;/b&gt; as the ROI is highly dependent on the degree of reuse achieved&lt;/li&gt;&lt;li&gt;Some of the design characteristics are&lt;/li&gt;&lt;ul&gt;&lt;li&gt;The Service is defined by an agnostic functional context&lt;/li&gt;&lt;li&gt;The Service Logic is highly generic&lt;/li&gt;&lt;li&gt;The Service Contract is generic and extensible&lt;/li&gt;&lt;li&gt;The Service Logic can be accessed concurrently&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;5. Service Autonomy&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;The level of control over the underlying runtime execution environment.&lt;/li&gt;&lt;li&gt;Task Services have less autonomy as they compose other services over which they have less control.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;6. Service Statelessness&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Stateless Services&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Increase Service Scalability&lt;/li&gt;&lt;li&gt;Increase Service Reusability&lt;/li&gt;&lt;li&gt;Consume less computing resources&lt;/li&gt;&lt;li&gt;Orchestrated Task Services are expected to be stateful&lt;/li&gt;&lt;li&gt;Entity and Utility Services are generally stateless&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;7. Service Discoverability&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Services are supplemented with meta data by which they can be effectively discovered&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;8. Service Composability&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Services should be composable&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-6508658078926103163?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/6508658078926103163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/04/soa-design-principles.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/6508658078926103163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/6508658078926103163'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/04/soa-design-principles.html' title='SOA :  Design Principles'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-8184800060135354903</id><published>2010-04-22T14:00:00.000-04:00</published><updated>2010-04-22T14:00:17.908-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA : Analysis and Design'/><title type='text'>SOA :  Service Oriented Design</title><content type='html'>This is a gist of Service Oriented Design from the "SOA : Principles of Service Design" by Thomas Earl.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Design Phase&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The Service Oriented Design takes the service candidates and converts them to actual services by creating actual physical contracts.&lt;/li&gt;&lt;li&gt;It is highly recommended that a high level service inventory be defined prior to creating physical contracts.&amp;nbsp;&lt;/li&gt;&lt;li&gt;It is better to follow the waterfall approach in doing the upfront service analysis and service modelling to be followed by agile approach in implementing the services.&lt;/li&gt;&lt;li&gt;"Contract First Design" is the ideal form of design where the service contract is created before developing the service logic.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-8184800060135354903?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/8184800060135354903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/04/soa-service-oriented-design.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/8184800060135354903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/8184800060135354903'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/04/soa-service-oriented-design.html' title='SOA :  Service Oriented Design'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-1987431959751230261</id><published>2010-04-22T13:15:00.001-04:00</published><updated>2010-04-22T13:40:12.276-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA : Analysis and Design'/><title type='text'>SOA :  Service Modelling</title><content type='html'>This is a gist from the "SOA : Principles of Service Design" by Thomas Earl.&lt;br /&gt;&lt;br /&gt;Service Modeling, which is a sub process of service oriented analysis &amp;nbsp;produces conceptual service definitions called &lt;b&gt;service candidates&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;During Service Modelling, Services can be primarily classified as follows(Service Models)&lt;br /&gt;1. Entity Services&lt;br /&gt;2. Task Services&lt;br /&gt;3. Utility Services&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Entity Services&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Also called as business entity services&amp;nbsp;&lt;/li&gt;&lt;li&gt;Represents a business centric service that models a business entity&lt;/li&gt;&lt;li&gt;Considered to be a highly reusable service that can be composed by the business processes&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;Task Services&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Models the business process&amp;nbsp;&lt;/li&gt;&lt;li&gt;Typically this composes the entity services to accomplish the business process&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;Utility Services&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Non business centric services&amp;nbsp;&lt;/li&gt;&lt;li&gt;Provides reusable services that do not have business logic&lt;/li&gt;&lt;li&gt;Examples could be logging, notification, authorization, authentication, etc.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-1987431959751230261?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/1987431959751230261/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/04/soa-service-modelling.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/1987431959751230261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/1987431959751230261'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/04/soa-service-modelling.html' title='SOA :  Service Modelling'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-6379183194685055756</id><published>2010-03-26T11:07:00.001-04:00</published><updated>2011-03-03T11:30:08.766-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Best Practices'/><category scheme='http://www.blogger.com/atom/ns#' term='BPEL Process'/><title type='text'>Oracle BPEL 11g Best Practices</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;ol&gt;&lt;li&gt;BPEL has to be primarily used for orchestrating the services.&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Do not add complex business logic here. It should belong to the service layer.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Create scopes for each step of the flow in the process so as to make it modular. &amp;nbsp;This will help in creating local variables within that scope. Use Global variables when required(just like your java or C++ programming style). This will help in maintainability. &lt;b&gt;Note :&lt;/b&gt;&amp;nbsp;Adding too many scopes may affect the performance. In that case you may want top consider creating sequences.&lt;/li&gt;&lt;li&gt;Adopt naming standards and comply to it. This should be part of the governance strategy. This looks trivial but is important if you want someone else to understand the code and make changes.&lt;/li&gt;&lt;li&gt;It is good practice to have a Mediator in the Composite. Try to get most of the transformations done by the Mediator.&lt;/li&gt;&lt;li&gt;Have all the business rules implemented by the Oracle Business Rules&lt;/li&gt;&lt;li&gt;Handle all the exceptions&lt;/li&gt;&lt;li&gt;Adopt test driven development. Create test cases with a tool like SoapUI for each process and make this part of your governance strategy.&lt;/li&gt;&lt;li&gt;Instead of BPEL, you should consider implementing the process in BPM. This has the advantage of modeling it in BPMN so that it can be easily understood by the Business and also helps the model and implementation to be synchronized at all times. If you haven't considered it so far then it is time you take a look at&amp;nbsp;&lt;/li&gt;&lt;li&gt;The flow of the BPEL process should be very intuitive.&lt;/li&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;The reason enterprises are investing heavily in this to be agile to change. So, to make this happen , make the steps in the flow linear as much as possible so that a new step can be added/reordered easily by just drag and drop. I have seen very complex nested creation of the following flow which after refactoring looks as below.&lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_xH-xH_XieLM/S6zJXko9n0I/AAAAAAAAJWA/sQ7dMQUC-e0/s1600/AddOrderProcess.jpg" imageanchor="1"&gt;&lt;img border="0" height="640" src="http://2.bp.blogspot.com/_xH-xH_XieLM/S6zJXko9n0I/AAAAAAAAJWA/sQ7dMQUC-e0/s320/AddOrderProcess.jpg" width="576" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-6379183194685055756?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/6379183194685055756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/03/oracle-bpel-11g-best-practices.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/6379183194685055756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/6379183194685055756'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/03/oracle-bpel-11g-best-practices.html' title='Oracle BPEL 11g Best Practices'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_xH-xH_XieLM/S6zJXko9n0I/AAAAAAAAJWA/sQ7dMQUC-e0/s72-c/AddOrderProcess.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-3821655112637286853</id><published>2010-03-26T09:59:00.000-04:00</published><updated>2010-03-26T10:00:55.214-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Governance'/><title type='text'>Oracle Service Registry OSR 11g Installation</title><content type='html'>Oracle Service Registry(OSR) is part of the Oracle SOA Governance strategy but comes as a separate download. The installation is 2 steps&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Installation of OSR files into registry111 folder under oracle middleware home&lt;/li&gt;&lt;li&gt;Creation/Extension of a Weblogic 11g domain with the OSR server&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;b&gt;Installation Steps&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Execute java -jar oracle-service-registry-11.1.1.jar. This will launch the installation wizard.&lt;/li&gt;&lt;li&gt;I found it easier to create the tablespace and the schema user before hand. I had to do this as for some reason the installation failed to create the tablespace for me.&lt;/li&gt;&lt;li&gt;Once the registry111 folder is create then create or extend the existing weblogic11g domain&lt;/li&gt;&lt;li&gt;If you face any problem during the domain process then cleanup and create the tablespace again.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-3821655112637286853?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/3821655112637286853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/03/oracle-service-registry-osr-11g.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/3821655112637286853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/3821655112637286853'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/03/oracle-service-registry-osr-11g.html' title='Oracle Service Registry OSR 11g Installation'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-1419137933722916423</id><published>2010-03-26T09:53:00.000-04:00</published><updated>2010-03-26T10:00:55.215-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Governance'/><title type='text'>OER 11g Thoughts</title><content type='html'>IMHO, the Oracle Enterprise Repository looks like a piece of work from interns(no disrespect to interns). It lacks the enterprise and professional quality that is expected from Oracle, BEA or any other enterprise vendor. This probably is a result of the acquisition and the need to have an extra check in the checklist.&lt;br /&gt;&lt;br /&gt;The OER is deployed in the BEA domain. It has 2 parts. One is the the ability to search and view the assets and the second is the ability to manage the assets. The search can be done through the web while the asset management is through a Java Webstart application. Both the applications fall way short of usability.&lt;br /&gt;&lt;br /&gt;I am not convinced that both OER and OSR(Oracle Service Registry) are required as they add to the clutter. The OER functionality could be built into the OSR so that the intra enterprise view could be the OER functionality while the extra enterprise view could be the OSR. This will reduce the amount of applications to be purchased, managed and maintained by the enterprises. This will also help in easier adoption of the Governance and in better governance by managing the assets well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-1419137933722916423?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/1419137933722916423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/03/oer-11g-thoughts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/1419137933722916423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/1419137933722916423'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/03/oer-11g-thoughts.html' title='OER 11g Thoughts'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-7526271594825304295</id><published>2010-03-23T16:26:00.002-04:00</published><updated>2010-03-26T10:00:55.215-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OER'/><category scheme='http://www.blogger.com/atom/ns#' term='Governance'/><title type='text'>Oracle Enterprise Repository 11g Installation</title><content type='html'>&lt;b&gt;Installation&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;OER11g comes as a separate installation. It can be installed on an existing SOA/WL 11g.&lt;/li&gt;&lt;li&gt;Download OER 11g as&amp;nbsp;OER111120_generic.jar&lt;/li&gt;&lt;li&gt;Execute the following DB scripts&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;CREATE TABLESPACE OER_SOA1_DATA&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;DATAFILE '/opt/oracle/oradata/oer/oer_&lt;wbr&gt;&lt;/wbr&gt;soa1_data.dbf' SIZE 300M&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;EXTENT MANAGEMENT LOCAL AUTOALLOCATE&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;LOGGING&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;ONLINE&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;SEGMENT SPACE MANAGEMENT AUTO;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;CREATE TABLESPACE OER_SOA1_INDEX&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;DATAFILE '/opt/oracle/oradata/oer/oer_&lt;wbr&gt;&lt;/wbr&gt;soa1_index.dbf' SIZE 300M&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;EXTENT MANAGEMENT LOCAL AUTOALLOCATE&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;LOGGING&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;ONLINE&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;SEGMENT SPACE MANAGEMENT AUTO;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;CREATE USER OER_SOA1 IDENTIFIED BY password&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;DEFAULT TABLESPACE OER_SOA1_DATA&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;TEMPORARY TABLESPACE TEMP&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;PROFILE DEFAULT&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;ACCOUNT UNLOCK;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;GRANT "CONNECT" TO OER_SOA1;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;ALTER USER OER_SOA1 DEFAULT ROLE "CONNECT", "RESOURCE";&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;GRANT CREATE MATERIALIZED VIEW TO OER_SOA1;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;GRANT CREATE SEQUENCE TO OER_SOA1;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;GRANT CREATE SESSION TO OER_SOA1;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;GRANT CREATE SYNONYM TO OER_SOA1;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;GRANT CREATE SNAPSHOT TO OER_SOA1;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;GRANT CREATE TABLE TO OER_SOA1;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;GRANT CREATE TRIGGER TO OER_SOA1;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;GRANT CREATE VIEW TO OER_SOA1;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;GRANT UNLIMITED TABLESPACE TO OER_SOA1;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;There are 2 steps involved. First is to install the OER in the middleware/repository111 folder. The second is to create a new domain or extend an existing one with the OER. See below for the steps.&lt;/li&gt;&lt;li&gt;Run java -jar OER111120_generic.jar This will launch the installation screen. Enter the DB information.&lt;/li&gt;&lt;li&gt;After installation, create a weblogic domain with OER&lt;/li&gt;&lt;li&gt;The default port is 7101.&lt;/li&gt;&lt;li&gt;Note : I could not install this on a SOA Suite. I tried to create a new domain and the installation wizard displays the status of 90% and hangs over there. So I installed a vanilla Weblogic11g and then installed OER on that. This works fine.&lt;/li&gt;&lt;li&gt;The URL is http://localhost:7101/oer&amp;nbsp;&lt;/li&gt;&lt;li&gt;The login is "admin" and "admin"&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;i&gt;Note: If you have face an error during the installation you have to clean the tablespace and redo the domain creation/extension process.&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-7526271594825304295?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/7526271594825304295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/03/oracle-enterprise-repository-11g.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/7526271594825304295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/7526271594825304295'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/03/oracle-enterprise-repository-11g.html' title='Oracle Enterprise Repository 11g Installation'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-1411110571852259390</id><published>2010-03-22T09:33:00.001-04:00</published><updated>2010-07-06T19:09:29.374-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><title type='text'>Testing strategy for Oracle SOA applications</title><content type='html'>Following is what I felt to be working well as a testing strategy for Oracle SOA&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Automated Unit Testing&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The built in Oracle SOA Test Suite works well for testing BPEL processes. The test cases can be generated from JDeveloper. External Services can be emulated and the response can be asserted. This will help in testing the flow of the process.&lt;/li&gt;&lt;li&gt;The tests can be deployed and tested on the Enterprise Manager&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Integration Testing&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;SoapUI, an open source test tool is very robust for doing integration testing&lt;/li&gt;&lt;li&gt;Provide a WSDL URL and it generates the test stubs for all the operations&lt;/li&gt;&lt;li&gt;The response can be asserted.&lt;/li&gt;&lt;li&gt;The test data can be generated through static "Parameters" or can be randomized.&lt;/li&gt;&lt;li&gt;WS-Security, WS-Addressing and WS-Reliability is supported&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;Performance Testing&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Soap UI can be used for performance testing as well.&amp;nbsp;&lt;/li&gt;&lt;li&gt;This will help the team to get used to one testing tool.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Supports spawning multiple threads, delay between requests.&lt;/li&gt;&lt;li&gt;JMeter is the other tool that you may want to use.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-1411110571852259390?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/1411110571852259390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/03/testing-strategy-for-oracle-soa.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/1411110571852259390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/1411110571852259390'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/03/testing-strategy-for-oracle-soa.html' title='Testing strategy for Oracle SOA applications'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-410119921861335066</id><published>2010-03-19T15:39:00.014-04:00</published><updated>2010-03-26T11:14:53.630-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><category scheme='http://www.blogger.com/atom/ns#' term='Best Practices'/><title type='text'>Oracle Business Rules 11g Best Practices</title><content type='html'>Oracle Business Rules underwent a lot of changes since 10g and looks more sophisticated now. The Rules designer is very elegant(bug free, nice user experience, fast) and so is the Composer.(though I would like to see the Composer and Designer have a single user experience)&lt;br /&gt;&lt;br /&gt;Oracle has made available a very exhaustive guide on Oracle rules which is available at&amp;nbsp;&lt;a href="http://download.oracle.com/docs/cd/E15523_01/integration.1111/e10228.pdf"&gt;http://download.oracle.com/docs/cd/E15523_01/integration.1111/e10228.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Best Practices&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Try to model the rules as a "Decision Component".&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Each decision function in the component can be exposed as a Web Service with both stateless and stateful operations(I think that there should be an option to make it a separate webservice or to expose it as an operation).&amp;nbsp;&lt;/li&gt;&lt;li&gt;You may want to &lt;b&gt;cleanup the stateful operations&lt;/b&gt; if you think that they should not be used. This will force the developers not to invoke the stateful operation accidentally as the unintended usage can create havoc.&lt;/li&gt;&lt;li&gt;This Decision Component then has multiple interfaces which can be used by the BPEL process. This will &lt;b&gt;encapsulate &lt;/b&gt;all the rules in a single component and still be &lt;b&gt;modular &lt;/b&gt;through Decision functions.&amp;nbsp;&lt;/li&gt;&lt;li&gt;This will greatly help in &lt;b&gt;resuse &lt;/b&gt;of this component.&lt;/li&gt;&lt;li&gt;The Decision Component is also easily testable.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Try to use "Decision Table" as much as possible&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;As it is very intuitive for the business analysts&amp;nbsp;&lt;/li&gt;&lt;li&gt;All the rules can be viewed in a single readable view.&amp;nbsp;&lt;/li&gt;&lt;li&gt;It also has the built in Gap analysis that will uncover any gaps or conflicts.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;Tips&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;When you want to invoke the Rules Service, you should set the name of the Rules Service explicitly If not the rules service is not invoked. This seems to be a strange requirement.&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;The Oracle Rules Composer is available at http://host:[soa port]/soa/composer.&amp;nbsp;I could not open this is IE7 and Chrome but could open in Mozilla Firefox.&lt;/li&gt;&lt;li&gt;The rules dictionary is stored in .rules file. This should be checked in the repository(CVS, etc) as a binary file. Please see the FAQ for the explanation.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-410119921861335066?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/410119921861335066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/03/oracle-business-rules.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/410119921861335066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/410119921861335066'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/03/oracle-business-rules.html' title='Oracle Business Rules 11g Best Practices'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-2312594355332043304</id><published>2010-03-19T10:03:00.003-04:00</published><updated>2010-03-19T15:46:57.843-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Releases'/><title type='text'>Oracle SOA 11gR1 PS2 also called 11.1.1.3</title><content type='html'>If you are one of those eagerly waiting for the next release/patch on Oracle SOA 11gR1 then the good news is here, though the release date is not yet known&lt;br /&gt;&lt;a href="http://blogs.oracle.com/soabpm/2010/03/11gr1_patchset_2_111130_soa_fe.html"&gt;http://blogs.oracle.com/soabpm/2010/03/11gr1_patchset_2_111130_soa_fe.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.oracle.com/soabpm/2010/03/soa_for_the_java_developer_a_f.html"&gt;http://blogs.oracle.com/soabpm/2010/03/soa_for_the_java_developer_a_f.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The important features are below.(as collected from the above site)&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Oracle OSB is to be part of the suite (currently it is a separate installation)&lt;/li&gt;&lt;li&gt;Support for WSIF (this was supported in 10 g and seems to be restored now). Support for EJB 2 and 3&lt;/li&gt;&lt;li&gt;Support for BPEL2.0(I believe the current supported version is 1.1. Not sure what are the new features in 2.0)&lt;/li&gt;&lt;li&gt;BPMN 2.0 design time and runtime support&lt;/li&gt;&lt;li&gt;Seamless Upgrade from 11gR1PS1!!!!&lt;/li&gt;&lt;li&gt;Domains for BPEL. Not sure how this compares to the regular WL domains.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-2312594355332043304?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/2312594355332043304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/03/oracle-soa-11gr1-ps2-also-called-11113.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/2312594355332043304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/2312594355332043304'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/03/oracle-soa-11gr1-ps2-also-called-11113.html' title='Oracle SOA 11gR1 PS2 also called 11.1.1.3'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-865815879135533376</id><published>2010-03-12T17:38:00.002-05:00</published><updated>2010-03-17T16:55:45.128-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OWSM'/><title type='text'>X509 Certificate Testing</title><content type='html'>&lt;strong&gt;Strategy&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Generate a keystore for the "Service Provider"&lt;/li&gt;&lt;li&gt;Extract the "service provider's" certificate&amp;nbsp;&lt;/li&gt;&lt;li&gt;Generate a separate keystore for the "Service Consumer"&lt;/li&gt;&lt;li&gt;Import the&amp;nbsp;"service provider's" certificate into the service consumer's keystore&lt;/li&gt;&lt;li&gt;Configure the SOAP UI to perform Encryption, Signature, Password, DateTime as shown below.&lt;/li&gt;&lt;li&gt;Create a policy at the OWSM(copy from the system provided ones)&lt;/li&gt;&lt;li&gt;Add Assertions. Enforce logging as one of the assertions&lt;/li&gt;&lt;li&gt;Register the webservice and attach this policy with the web service.&lt;/li&gt;&lt;li&gt;Test the request with the SOAP UI.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;b&gt;Concepts&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;It is important to understand what happens during an outbound request&lt;/li&gt;&lt;li&gt;For Authentication - the consumer provides the "userid" and "password" which is used by the Provider to authenticate through the Security provider(by connecting to the LDAP or custom repository)&lt;/li&gt;&lt;li&gt;For Authorization - the consumer provides the "userid" and "password"&amp;nbsp;which is used by the Provider to authenticate through the Security provider(by connecting to the LDAP or custom repository)&lt;/li&gt;&lt;li&gt;For Confidentiality - the message is encrypted by the &lt;b&gt;public key of the Provider. &lt;/b&gt;Due to this reason you need to select the provider's certificate that has been imported by providing the alias&lt;/li&gt;&lt;li&gt;Based on the policy that is being enforced at the provider's OWSM, provide the corresponding "Key Identifier Type", "Encoding Algorithm", "Key Encryption Algorithm"&lt;/li&gt;&lt;li&gt;For Integrity - the message should be signed with the private key of the consumer. So provide the corresponding alias.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;Generate a Keystore&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Execute the following command in a single line&lt;br /&gt;&lt;br /&gt;&lt;span style="color: magenta; font-family: Georgia, 'Times New Roman', serif;"&gt;keytool -genkey -dname "cn=Chandu Sankuratri, ou=soa, o=CrystalTrain, c=US" -alias dssoa -keypass iag12345 -keystore C:\chandu\Keystore -storepass iag12345 -validity 365 -keyalg "RSA"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: magenta; font-family: Georgia;"&gt;Note : Enusre that the Key Algorithm is "RSA" as SOAP UI expects this. If you do not provide this, the default is DSA and you will see an exception &lt;span style="color: red;"&gt;&lt;em&gt;java.lang.IllegalArgumentException: not an RSA key&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: magenta; font-family: Georgia;"&gt;You should verify the certificate by executing the following commands&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: magenta; font-family: Georgia, 'Times New Roman', serif;"&gt;keytool -export -alias dssoa -file dssoa.cer -keystore C:\chandu\Keys\keystore -storepass iag12345&lt;/span&gt;&lt;br /&gt;&lt;span style="color: magenta; font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: magenta; font-family: Georgia, 'Times New Roman', serif;"&gt;keytool -printcert -file C:\chandu\Keys\dssoa.cer&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: magenta; font-family: Georgia;"&gt;This should print out&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;em&gt;Serial number: 4b9abe40&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;em&gt;Valid from: Fri Mar 12 17:20:48 EST 2010 until: Sat Mar 12 17:20:48 EST 2011&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;em&gt;Certificate fingerprints:&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;em&gt;MD5: 53:DB:0B:86:71:2E:5D:95:E8:EA:8C:D6:89:B2:D2:06&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;em&gt;SHA1: EA:B0:90:F5:A9:12:FF:E9:A0:7A:96:F9:77:79:71:6B:18:62:86:3F&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;em&gt;Signature algorithm name: &lt;strong&gt;SHA1withRSA&lt;/strong&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;em&gt;Version: 3&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Add the generated keystore to SoapUI&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_xH-xH_XieLM/S5qPVN45LTI/AAAAAAAAJUw/0o3KayR7tp0/s1600-h/AddingKeyStore.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_xH-xH_XieLM/S5qPVN45LTI/AAAAAAAAJUw/0o3KayR7tp0/s320/AddingKeyStore.bmp" vt="true" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Configure the outgoing SOAP request for encryption with X509 certificate. Similarly, you can also add "user Name"&amp;nbsp;,"Password" and the Signature.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_xH-xH_XieLM/S5qPijczBJI/AAAAAAAAJU4/2aXJdA40YZk/s1600-h/Outgoing+Request+Configuration.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_xH-xH_XieLM/S5qPijczBJI/AAAAAAAAJU4/2aXJdA40YZk/s320/Outgoing+Request+Configuration.bmp" vt="true" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Associate the configured security to the request&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_xH-xH_XieLM/S5rCDDzUE2I/AAAAAAAAJVA/aR2-i7JHx4A/s1600-h/Associate+Secuirty+to+Request.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_xH-xH_XieLM/S5rCDDzUE2I/AAAAAAAAJVA/aR2-i7JHx4A/s320/Associate+Secuirty+to+Request.bmp" vt="true" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-865815879135533376?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/865815879135533376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/03/x509-certificate-testing.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/865815879135533376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/865815879135533376'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/03/x509-certificate-testing.html' title='X509 Certificate Testing'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_xH-xH_XieLM/S5qPVN45LTI/AAAAAAAAJUw/0o3KayR7tp0/s72-c/AddingKeyStore.bmp' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-4711186726282893484</id><published>2010-03-12T11:45:00.001-05:00</published><updated>2010-03-12T11:51:04.863-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OWSM'/><title type='text'>SOAP Request with WS-Security</title><content type='html'>&lt;span style="color: black; font-family: Times, &amp;quot;Times New Roman&amp;quot;, serif; font-size: x-small;"&gt;Add the following to your SOAP request. Note the userid and Password. The Security Provider is the default Weblogic authentication Provider. This requires the weblogic userid and password that you login to Console. Use this to start your testing and build upon this by changing the security providers, encryption and signature.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: magenta; font-size: x-small;"&gt;&amp;lt;soap:Header&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: magenta; font-size: x-small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: magenta; font-size: x-small;"&gt;&amp;lt;wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: magenta; font-size: x-small;"&gt;&amp;lt;wsse:UsernameToken&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: magenta; font-size: x-small;"&gt;&amp;lt;wsse:Username&amp;gt;weblogic&amp;lt;/wsse:Username&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: magenta; font-size: x-small;"&gt;&amp;lt;wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"&amp;gt;iag123456&amp;lt;/wsse:Password&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: magenta; font-size: x-small;"&gt;&amp;lt;wsse:Nonce&amp;gt;71srki+B97R3XIoA7amwbA==&amp;lt;/wsse:Nonce&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: magenta; font-size: x-small;"&gt;&amp;lt;/wsse:UsernameToken&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: magenta; font-size: x-small;"&gt;&amp;lt;/wsse:Security&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: magenta; font-size: x-small;"&gt;&amp;lt;/soap:Header&amp;gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-4711186726282893484?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/4711186726282893484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/03/soap-request-with-ws-security.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/4711186726282893484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/4711186726282893484'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/03/soap-request-with-ws-security.html' title='SOAP Request with WS-Security'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-1463308958580709140</id><published>2010-03-12T10:48:00.002-05:00</published><updated>2010-03-17T16:38:01.017-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OWSM'/><title type='text'>Generating a WSIL file from WSDL</title><content type='html'>The OWSM11gR1 requires a WSIL file to register a service. &lt;br /&gt;&lt;br /&gt;Following are the steps to generate a WSIL from WSDL&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;WSIL can be easily generated from a WSDL through Eclipse Galileo. At the time of writing this is not supported by JDeveloper.&lt;/li&gt;&lt;li&gt;Copy the WSDL file to your Eclispe project. Right click on it and follow the below instructions&lt;/li&gt;&lt;li&gt;The following is taken from Eclipse Help &lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: blue; font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;&lt;em&gt;To generate a WSIL file through the import utility:&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;div style="text-align: left;"&gt;&lt;div style="text-align: auto;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: blue; font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;&lt;em&gt;From the File menu, select Import &amp;gt; WSIL &amp;gt; Next. The WSIL Import window opens. &lt;/em&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: blue; font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;&lt;em&gt;If you have selected to perform step 1, the WSIL URI field should be prefilled with the name of your WSDL file, where the extension has been changed from .wsdl to .wsil. The WSDL section should contain the URLs to the selected WSDL files. You can also enter additional WSDL URLs. Alternately, you can browse to the location of a WSIL file, or manually enter the location of the WSIL and WSDL files in the appropriate locations. &lt;/em&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;&lt;em&gt;&lt;span style="color: blue;"&gt;Click Finish. A WSIL file will be generated in the specified location.&lt;/span&gt; &lt;/em&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-1463308958580709140?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/1463308958580709140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/03/generating-wsil-file-from-wsdl.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/1463308958580709140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/1463308958580709140'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/03/generating-wsil-file-from-wsdl.html' title='Generating a WSIL file from WSDL'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-1107303657827821103</id><published>2010-03-12T10:43:00.003-05:00</published><updated>2010-03-26T10:38:28.335-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OWSM'/><title type='text'>Oracle Web Services Manager (OWSM) 11g</title><content type='html'>The official Developers Guide for OWSM 11gR1 from Oracle is available &lt;a href="http://download.oracle.com/docs/cd/E12839_01/web.1111/b32511.pdf"&gt;here&lt;/a&gt;&lt;br /&gt;The FAQ on OWSM 11gR1 is available &lt;a href="http://wiki.oracle.com/page/OWSM+11gR1+FAQ"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;OWSM11gR1 is part of the Oracle SOA Suite11gR1. It does not need any separate installation if you are working with Oracle SOA. Enforcing the policy is&amp;nbsp;straight forward&amp;nbsp;as can be seen below.&lt;br /&gt;&lt;br /&gt;Following are the steps to enforce a policy. Steps that need elaboration are entered as a separate blog&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create a Policy&lt;/li&gt;&lt;li&gt;&lt;a href="http://oracle-bpel.blogspot.com/2010/03/generating-wsil-file-from-wsdl.html"&gt;Generate a WSIL for the Web Service&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Register the Service&lt;/li&gt;&lt;li&gt;Associate the Service with the Policy&lt;/li&gt;&lt;li&gt;&lt;a href="http://oracle-bpel.blogspot.com/2010/03/soap-request-with-ws-security.html"&gt;Generate SOAP requests through&amp;nbsp;the SOAP UI to test the security&amp;nbsp;&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-1107303657827821103?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/1107303657827821103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/03/all-about-owsm-11g.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/1107303657827821103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/1107303657827821103'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/03/all-about-owsm-11g.html' title='Oracle Web Services Manager (OWSM) 11g'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-6427009554861623019</id><published>2010-01-30T13:31:00.000-05:00</published><updated>2010-03-17T16:38:18.391-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BPEL Process'/><title type='text'>Using Java Embedding Task</title><content type='html'>Peter Ebell has written an excellent article "&lt;a href="http://technology.amis.nl/blog/2387/embedding-java-in-bpel-process"&gt;Embedding Java in BPEL process&lt;/a&gt;" which&amp;nbsp;explains the inner details of how BPEL engine invokes&amp;nbsp;the java classes.&lt;br /&gt;&lt;br /&gt;Another article "&lt;a href="http://soa-howto.blogspot.com/2008_07_01_archive.html"&gt;How to deploy Java classes with BPEL process&lt;/a&gt;" goes through the deployment process.&lt;br /&gt;&lt;br /&gt;The System.out.println output can be found in the console.&lt;br /&gt;&lt;br /&gt;Here is&amp;nbsp;a sample code that outputs the request of type Element to an XML String.&lt;br /&gt;&lt;br /&gt;Note : Debugging the problem is a time consuming activity.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;try{ &lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;System.out.println("IN JAVA EMBEDDING*******************:"); &lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;org.w3c.dom.Element inputElement = (org.w3c.dom.Element)getVariableData("inputVariable","payload","/client:process"); &lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;System.out.println("*******************GOT THE ELEMENT:*******************"); &lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;String inputElementXML = com.collaxa.cube.xml.dom.DOMUtil.toXML(inputElement);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;System.out.println("inputElementXML :" + inputElementXML);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;setVariableData("outputVariable", "payload", &lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;"/client:processResponse/client:result", inputElementXML); &lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;}catch(Exception e){ &lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;System.out.println("Exception in Embedded Java:" + e.toString()); &lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-6427009554861623019?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/6427009554861623019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/01/using-java-embedding-task.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/6427009554861623019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/6427009554861623019'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/01/using-java-embedding-task.html' title='Using Java Embedding Task'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-4617569483024538849</id><published>2010-01-29T19:15:00.000-05:00</published><updated>2010-03-17T16:38:18.391-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BPEL Process'/><title type='text'>Processing request or response as String but with XML structure in BPEL</title><content type='html'>When the process has been designed(bad design as&amp;nbsp;it is not bound to&amp;nbsp;schema)&amp;nbsp;to accept the request as a String which is in&amp;nbsp;XML format, then development becomes difficult. Oracle BPEL has been developed to deal with request and responses that are bound to schemas and so offer rich XML data manipulation.&lt;br /&gt;&lt;br /&gt;Let us see what needs to be done when the request is receved as a Strng in XML format. The string needs to be mapped to an XML element to simplify the processing of payload&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Use oraext:parseEscapedXML() to read the XML to an Element. If you encounter any problem in this please check the namespace as suggested &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=999102"&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;If the request to another webservice needs to be in a String format(again bad design) then let us see the available&amp;nbsp;options&lt;br /&gt;&lt;ul&gt;&lt;li&gt;getContentAsString() converts the XML to string but escapes the '&amp;lt;' but leaves the '&amp;gt;' intact.&lt;/li&gt;&lt;li&gt;oraext:get-content-as-string() converts to XML but escapes both '&amp;lt;' and '&amp;gt;'. In&amp;nbsp;em console, view the raw xml. If you&amp;nbsp;view in the HTML&amp;nbsp;it looks fine.&amp;nbsp; &lt;/li&gt;&lt;li&gt;Use Java Embedding(this&amp;nbsp;is&amp;nbsp;covered&amp;nbsp;in a separate blog)&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-4617569483024538849?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/4617569483024538849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/01/processing-request-or-response-as.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/4617569483024538849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/4617569483024538849'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/01/processing-request-or-response-as.html' title='Processing request or response as String but with XML structure in BPEL'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-4391689096457371606</id><published>2010-01-22T16:19:00.000-05:00</published><updated>2010-03-26T10:02:34.795-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebService'/><title type='text'>Java Web Services : Metro vs Axis</title><content type='html'>IBM has an excellent article covering the performance of Metro and Axis2 frameworks &lt;a href="http://www.ibm.com/developerworks/java/library/j-jws11/index.html"&gt;here&lt;/a&gt;. See how Axis2 slows when the payload is encrypted or signed. It looks like this performance hit is beyond the binding and could happen even if JAXB binding is used. &lt;br /&gt;&lt;br /&gt;Following are excellent articles written in this series about Metro&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.ibm.com/developerworks/java/library/j-jws9.html"&gt;Introducing&lt;/a&gt; Metro&amp;nbsp; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ibm.com/developerworks/java/library/j-jws10.html"&gt;WS-Security with Metro&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-4391689096457371606?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/4391689096457371606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/01/java-web-services-metro-vs-axis.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/4391689096457371606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/4391689096457371606'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/01/java-web-services-metro-vs-axis.html' title='Java Web Services : Metro vs Axis'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-3903769797705427160</id><published>2010-01-14T14:09:00.000-05:00</published><updated>2010-01-14T14:09:02.433-05:00</updated><title type='text'>Top 10 reasons to move to Oracle SOA Suite 11g</title><content type='html'>Ths &lt;a href="http://blogs.oracle.com/enterprisearchitecture/2009/08/why_move_to_soa_suite_11g_pats.html"&gt;article&lt;/a&gt;&amp;nbsp;summarizes the top 10 reasons why one should move to Oracle SOA Suite 11g. Please note that this comes from an Oracle insider.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-3903769797705427160?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/3903769797705427160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/01/top-10-reasons-to-move-to-oracle-soa.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/3903769797705427160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/3903769797705427160'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/01/top-10-reasons-to-move-to-oracle-soa.html' title='Top 10 reasons to move to Oracle SOA Suite 11g'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-2597926405017127268</id><published>2010-01-14T12:56:00.002-05:00</published><updated>2010-03-17T16:38:30.545-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BPEL Process'/><title type='text'>SOA BPEL 11g examples</title><content type='html'>Some BPEL examples based on SOA Suite 11g developed by the SOA/BPM development team are available &lt;a href="http://blogs.oracle.com/soabpm/2009/12/soa_suite_11g_-_some_long_awai.html"&gt;here&lt;/a&gt;. Download the zip, extract the files and open&amp;nbsp;the example in JDeveloper11g. Deploy and test them.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;Note: The documentaton is minimal but the examples&amp;nbsp;can be understood by going through the code and running them.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The &lt;a href="http://www.oracle.com/technology/sample_code/products/soa/index.html"&gt;official examples from the&amp;nbsp;Oracle&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle.com/technology/products/integration/bam/collateral/Samples11g.html"&gt;BAM&amp;nbsp;examples from Oracle&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-2597926405017127268?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/2597926405017127268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/01/soa-bpel-11g-examples.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/2597926405017127268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/2597926405017127268'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/01/soa-bpel-11g-examples.html' title='SOA BPEL 11g examples'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-409044494514526336</id><published>2010-01-12T19:41:00.002-05:00</published><updated>2010-03-17T16:38:44.004-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><title type='text'>Career Survival Kit : What every developer needs to know?</title><content type='html'>This is a must read for every developer. I shall call this as a Survival Kit for IT Developer in&amp;nbsp;any economy.&lt;br /&gt;&lt;br /&gt;The video from Jared Richardson is available at &lt;a href="http://qik.com/video/1009098"&gt;http://qik.com/video/1009098&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This has been condensed as an article by a gentleman and is available as &lt;a href="http://www.suryasuravarapu.com/2009/02/career-20-take-control-of-your-life.html"&gt;Career 2.0: Take control of Your Life&amp;nbsp;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-409044494514526336?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/409044494514526336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/01/career-20-what-every-developer-needs-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/409044494514526336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/409044494514526336'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/01/career-20-what-every-developer-needs-to.html' title='Career Survival Kit : What every developer needs to know?'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-2803900719751553276</id><published>2010-01-06T10:06:00.004-05:00</published><updated>2010-03-26T10:02:56.449-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BPEL Process'/><title type='text'>Performance Tuning of Oracle BPEL</title><content type='html'>Following are the list of articles that are worth going through to improve the performance of BPEL&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.oracle.com/technology/products/ias/bpel/pdf/bpel-performance-webinar.pdf"&gt;BPEL Performance Tuning&lt;/a&gt; : Excellent document from Oracle. &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.mandsconsulting.com/oracle-soa-environment-performance-tuning-options-quick-notes"&gt;Article1&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://sqltech.cl/doc/oas10gR31/core.1013/b28942/tuning_bpel.htm"&gt;Article2&lt;/a&gt;. Though this is on OAS 10 g, this gives a very good overview.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.scribd.com/doc/8574486/Performance-Tuning"&gt;Article3&lt;/a&gt;. This goes through the lower level configuration details that can improve the performance.&lt;/li&gt;&lt;li&gt;&lt;a href="http://orasoa.blogspot.com/2007/01/tuning-bpel-in-nutshell.html"&gt;Article4&lt;/a&gt;. This is on 10g but is pretty good.&lt;/li&gt;&lt;li&gt;&lt;a href="http://download.oracle.com/docs/cd/E12839_01/integration.1111/e10226.pdf"&gt;Oracle SOA Suite 11g Administrator's Guide&lt;/a&gt;&amp;nbsp;. This explains where the parameters can be modified and what they mean.&lt;/li&gt;&lt;/ul&gt;The primary areas to look for performance tuning are below. Sometimes, it is a tradeoff between performance, reliability and security and the decision has to be made after carefully weighing the pros and cons.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Oracle Weblogic JVM Memory&lt;/li&gt;&lt;li&gt;&lt;a href="http://sqltech.cl/doc/oas10gR31/core.1013/b28942/tuning_bpel.htm#BCGIGFCB"&gt;Dehydration Store Database Performance Tuning&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Should the process be stored in the dehydration store? By default&amp;nbsp;the value&amp;nbsp;is set to true so that there is no dehydration done. Set the idempotent flag to&amp;nbsp;false if you need the process instance to be dehydrated. &lt;/li&gt;&lt;li&gt;DB Connection Pooling&lt;/li&gt;&lt;li&gt;InvokerBean thread value. By default it is 1 thread per process. But, if there are multiple branches/flows in the process this could be increased so that the processing is faster. Check the 'Dispatcher Invoke Threads' and 'Dispatcher Engine Threads' values.&lt;/li&gt;&lt;li&gt;Logging &lt;/li&gt;&lt;li&gt;Set Audit Level to 'Production'. Payload is not stored.&lt;/li&gt;&lt;li&gt;Feasibility for the usage of&amp;nbsp;REST service as it is lightweight.&lt;/li&gt;&lt;li&gt;Security : Overhead increases as the level of security gets higher. The overhead directly affects the performance.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-2803900719751553276?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/2803900719751553276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/01/performance-tuning-of-oracle-bpel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/2803900719751553276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/2803900719751553276'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/01/performance-tuning-of-oracle-bpel.html' title='Performance Tuning of Oracle BPEL'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-5882161733917897284</id><published>2010-01-05T17:16:00.001-05:00</published><updated>2010-01-05T17:17:06.400-05:00</updated><title type='text'>Unit Testing and Integration Testing with Oracle SOA Suite 11g</title><content type='html'>&lt;a href="http://www.slideshare.net/gschmutz/best-practices-for-the-testing-of-soabased-systems?src=related_normal&amp;amp;rel=1607895"&gt;This&lt;/a&gt; is an excellent presentation on testing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-5882161733917897284?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/5882161733917897284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/01/unt-testing-and-integration-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/5882161733917897284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/5882161733917897284'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/01/unt-testing-and-integration-testing.html' title='Unit Testing and Integration Testing with Oracle SOA Suite 11g'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-5012850921267214271</id><published>2010-01-05T12:15:00.001-05:00</published><updated>2010-03-26T10:02:34.795-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebService'/><title type='text'>SOAP vs REST</title><content type='html'>&lt;a href="http://proceedings.esri.com/library/userconf/devsummit09/papers/keynote_chappell.pdf"&gt;This&lt;/a&gt; is an excellent article by David Chappell.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=060ca7c3-b03f-41aa-937b-c8cba5b7f986"&gt;This&lt;/a&gt; article helps&amp;nbsp;to understand why REST ful services are required and how the JSON format&amp;nbsp;is useful&amp;nbsp;for data exchange especially Ajax apps.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-5012850921267214271?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/5012850921267214271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/01/soap-vs-rest.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/5012850921267214271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/5012850921267214271'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/01/soap-vs-rest.html' title='SOAP vs REST'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-1503227307534527131</id><published>2010-01-05T12:04:00.000-05:00</published><updated>2010-03-17T16:39:23.072-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BPEL'/><title type='text'>BPEL vs Workflow</title><content type='html'>I liked this &lt;a href="http://www.theenterprisearchitect.eu/archive/2007/04/11/SOA_and_Human_Interaction"&gt;article&lt;/a&gt;&amp;nbsp;which explains how&amp;nbsp;a BPEL process can utilize a Workflow service. &lt;br /&gt;&lt;br /&gt;BPEL Process Manager automates a business process. The part of business process that involves human interaction can be achieved through Workflow. So, BPEL PM being an ochestrator of services can invoke a Workflow Service to accomplish this part.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-1503227307534527131?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/1503227307534527131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/01/bpel-vs-workflow.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/1503227307534527131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/1503227307534527131'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/01/bpel-vs-workflow.html' title='BPEL vs Workflow'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-389555192893209794</id><published>2010-01-05T10:27:00.000-05:00</published><updated>2010-03-17T16:39:23.073-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BPEL'/><title type='text'>BPM vs Workflow</title><content type='html'>There are conflicting articles on the difference between the two. Of all, the one that makes more sense to me is &lt;a href="http://bpmjournal.com/pfpc/42/the-difference-between-bpm-and-workflow/"&gt;this&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-389555192893209794?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/389555192893209794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2010/01/bpm-vs-workflow.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/389555192893209794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/389555192893209794'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2010/01/bpm-vs-workflow.html' title='BPM vs Workflow'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-857072605884066003</id><published>2009-12-16T12:16:00.000-05:00</published><updated>2010-03-17T16:39:23.073-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BPEL'/><title type='text'>Scheduling BPEL Service</title><content type='html'>If you would like to schedule a BPEL service every few hours then there is no direct support provided by the BPEL engine or Oracle Application Server to do this. This may be required when the service/process has to run as a batch process.&lt;br /&gt;&lt;br /&gt;I have read about solutions using File Adapter, Database Adapter, process running in loop, etc.&lt;br /&gt;&lt;br /&gt;The most elegant solution(in my view) is to develop&amp;nbsp;a Java&amp;nbsp;solution using Quartz Scheduler(open source) and deploy it as a&amp;nbsp;war application in the Oracle Weblogc Server.&amp;nbsp;You may want to externalize(from war)&amp;nbsp;the jobs.xml&amp;nbsp;so that the schedule time can be altered. You may also want to externalize the end&amp;nbsp;points so that they can be&amp;nbsp;modified as suited.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-857072605884066003?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/857072605884066003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2009/12/scheduling-bpel-service.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/857072605884066003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/857072605884066003'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2009/12/scheduling-bpel-service.html' title='Scheduling BPEL Service'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-1431849597370736332</id><published>2009-12-16T11:05:00.031-05:00</published><updated>2010-01-24T20:13:11.724-05:00</updated><title type='text'>WS-Addressing</title><content type='html'>Typically,&amp;nbsp; Web Services communicate over SOAP through Http. Since Http is stateless in nature, there can be a maximum of 1 complete conversation at a time. This suits well for&amp;nbsp;short request-response&amp;nbsp;messages where the conversation is complete. But for conversations that span&amp;nbsp;multiple asynchronous or&amp;nbsp; synchronous&amp;nbsp;message exchanges&amp;nbsp;, there&amp;nbsp;should be more information packed so that there&amp;nbsp;is a callback&amp;nbsp;information and a context for the message. This is standardized by the WS-Addressing specification&amp;nbsp;by w3 which is available &lt;a href="http://www.w3.org/Submission/ws-addressing/"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;When an asynchronous process is invoked, the BPEL engine either invokes a new process or resumes a running process. It does this by looking at the Address information in the header of the SOAP message. A sample header can be seen below (it is taken from the w3 spec referred above).&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;strong&gt;Request&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;lt;S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope" &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;lt;S:Header&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: lime; font-size: x-small;"&gt;&amp;lt;wsa:MessageID&amp;gt;uuid:6B29FC40-CA47-1067-B31D-00DD010662DA &amp;lt;/wsa:MessageID&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: lime; font-size: x-small;"&gt;&amp;lt;wsa:ReplyTo&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: lime; font-size: x-small;"&gt;&amp;lt;wsa:Address&amp;gt;http://business456.example/client1&amp;lt;/wsa:Address&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: lime; font-size: x-small;"&gt;&amp;lt;/wsa:ReplyTo&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;lt;wsa:To&amp;gt;http://fabrikam123.example/Purchasing&amp;lt;/wsa:To&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;lt;wsa:Action&amp;gt;http://fabrikam123.example/SubmitPO&amp;lt;/wsa:Action&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;lt;/S:Header&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;lt;S:Body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;lt;/S:Body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;lt;/S:Envelope&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;Note that the request has ReplyTo as the response end point and the context for the conversation as MessageID.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;strong&gt;Response&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;lt;S:Envelope xmlns:f123="http://www.fabrikam123.example/svc53"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;lt;S:Header&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;lt;wsa:MessageID&amp;gt;uuid:aaaabbbb-cccc-dddd-eeee-wwwwwwwwwww&amp;lt;/wsa:MessageID&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: lime; font-size: x-small;"&gt;&amp;lt;wsa:RelatesTo&amp;gt;uuid:6B29FC40-CA47-1067-B31D-00DD010662DA &amp;lt;/wsa:RelatesTo&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;lt;wsa:To S:mustUnderstand="1"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;http://business456.example/client1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;lt;/wsa:To&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;lt;wsa:Action&amp;gt;http://fabrikam123.example/mail/DeleteAck&amp;lt;/wsa:Action&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;lt;/S:Header&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;lt;S:Body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;lt;f123:DeleteAck/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;lt;/S:Body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;lt;/S:Envelope&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;Note that the response has RelatesTo as the context for the conversation. &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;All additional message exchanges in this conversations only require the RelatesTo element as the BPEL engine can invoke the process instance with this information.&lt;br /&gt;&lt;br /&gt;Other informative artciles &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.javapassion.com/webservices/wsaddressing.pdf"&gt;http://www.javapassion.com/webservices/wsaddressing.pdf&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-1431849597370736332?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/1431849597370736332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2009/12/ws-addressing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/1431849597370736332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/1431849597370736332'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2009/12/ws-addressing.html' title='WS-Addressing'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-3682874498291918423</id><published>2009-12-15T11:34:00.000-05:00</published><updated>2010-03-17T16:39:48.381-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><title type='text'>Service Specification Template</title><content type='html'>If you are looking for a Service defnition template then the following should be&amp;nbsp;a good place to start with and customize it accordingly&lt;br /&gt;&lt;ol&gt;&lt;li&gt;This is available from &lt;a href="http://cbdi.wikispaces.com/file/view/CBDI-Service+Specification+Template.pdf"&gt;CBDI&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-3682874498291918423?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/3682874498291918423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2009/12/service-specification-template.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/3682874498291918423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/3682874498291918423'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2009/12/service-specification-template.html' title='Service Specification Template'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-1007292532590239049</id><published>2009-11-16T19:33:00.001-05:00</published><updated>2009-11-16T19:36:17.277-05:00</updated><title type='text'>Web Services Security</title><content type='html'>A common question that is asked is how security is implemented in Web Services.&lt;br /&gt;&lt;br /&gt;I am copying the overview from &lt;a href="http://java.sun.com/developer/technicalArticles/WebServices/security/"&gt;this&lt;/a&gt; article&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;em&gt;&lt;span style="color: #38761d;"&gt;&lt;strong&gt;Overview of Information Security&lt;/strong&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color: #38761d;"&gt;It is important to have a general understanding of information security prior to addressing elements of web services security. There are six general security services that encompass the various functions required of a security facility. These can also be considered as requirements that define information security:&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;br /&gt;&lt;span style="color: #38761d;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;em&gt;&lt;span style="color: #38761d;"&gt;Authentication: Ensures that the sender and receiver are who they claim to be. Mechanisms such as username/password, smart cards, and Public Key Infrastructure (PKI) can be used to assure authentication.&lt;/span&gt;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&lt;span style="color: #38761d;"&gt;Authorization or Access Control: Ensures that an authenticated entity can access only those services they are allowed to access. Access control lists are used to implement this.&lt;/span&gt;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&lt;span style="color: #38761d;"&gt;Availability: Requires that uninterrupted services are provided to authenticated and authorized users.&lt;/span&gt;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&lt;span style="color: #38761d;"&gt;Confidentiality: This assures that information in storage and in-transit are accessible only for reading by authorized parties. Encryption is used to assure message confidentiality.&lt;/span&gt;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&lt;span style="color: #38761d;"&gt;Integrity: Ensures that information, either in storage or in-transit cannot be modified intentionally or unintentionally. Digital signatures are used to assure message integrity.&lt;/span&gt;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&lt;span style="color: #38761d;"&gt;Nonrepudiation: Requires that neither the sender nor the receiver of a message be able to legitimately claim they didn't send/receive the message.&lt;/span&gt;&lt;/em&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/blockquote&gt;I am listing some of the other interesting articles that I found on&amp;nbsp; this subject&lt;br /&gt;&lt;ul&gt;&lt;li&gt;This &lt;a href="http://www.xml.com/pub/a/ws/2003/03/04/security.html?page=1"&gt;article&lt;/a&gt;&amp;nbsp;is a good place to start at. &lt;/li&gt;&lt;li&gt;This &lt;a href="http://ws.apache.org/axis/java/security.html"&gt;one&lt;/a&gt; by Axis covers the different types of attacks.&lt;/li&gt;&lt;li&gt;This &lt;a href="http://www.codeproject.com/KB/webservices/WS-Security.aspx"&gt;one&lt;/a&gt; shows the solution in code.&lt;/li&gt;&lt;/ul&gt;&amp;nbsp;Some important excerpts from this article are copied below&lt;br /&gt;&lt;blockquote&gt;&lt;em&gt;&lt;span style="color: blue;"&gt;WS-Security from OASIS defines the mechanism for including integrity, confidentiality, and single message authentication features within a SOAP message. WS-Security makes use of the XML Signature and XML Encryption specifications and defines how to include digital signatures, message digests, and encrypted data in a SOAP message.&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color: blue;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color: blue;"&gt;Security Assertion Markup Language (SAML) from OASIS provides a means for partner applications to share user authentication and authorization information. This is essentially the single sign-on (SSO) feature being offered by all major vendors in their e-commerce products. In the absence of any standard protocol on sharing authentication information, vendors normally use cookies in HTTP communication to implement SSO. With the advent of SAML, this same data can be wrapped inside XML in a standard way, so that cookies are not needed and interoperable SSO can be achieved.&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-1007292532590239049?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/1007292532590239049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2009/11/web-services-security.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/1007292532590239049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/1007292532590239049'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2009/11/web-services-security.html' title='Web Services Security'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-1391790831990121214</id><published>2009-11-14T17:36:00.002-05:00</published><updated>2009-12-12T03:11:07.590-05:00</updated><title type='text'>Adapters - Database and File Adapters</title><content type='html'>Oracle SOA Suite comes along with some adapters that adapt the underlying Component and wraps it as a Service. Some of the Adapters that are shipped with the application are Database Adapter, File Adapter, JMS Adapter, etc.&lt;br /&gt;Oracle makes the access to the underlying Services easy by wrapping them as Web Services.(There is a WSDL created for each operation you make). It is very tempting to use these adapters. But,thought should be applied&amp;nbsp;if this&amp;nbsp;is the best design. For example, in the case of Database&amp;nbsp;Adapters, it is always better to use the existing Web Services to retrieve the&amp;nbsp;required data. If the Web Service does not exist and if it is in our control then&amp;nbsp;it would be&amp;nbsp;better to write the business logic and expose that as&amp;nbsp;a Web Service. This will&amp;nbsp;increase the maintainablity and reusability of this Service. I think the Database Adapter should&amp;nbsp;be used&amp;nbsp;when all the above options are&amp;nbsp;not feasible.&amp;nbsp;Even&amp;nbsp;when used, it may be a better practice to create this a Web Service and assign them a suitable namespace&amp;nbsp;so that&amp;nbsp;they can be&amp;nbsp;categorised properly.&lt;br /&gt;&lt;br /&gt;I was recently asked if a Database Adapter can be used to poll for Orders in the Order table. My solution would be to first see if a trigger can be written on&amp;nbsp;the table&amp;nbsp;to&amp;nbsp;publish a JMS message&amp;nbsp;on the receipt of a new order.&amp;nbsp;I heard that this was possible and found&amp;nbsp;some information&amp;nbsp;&lt;a href="http://download.oracle.com/docs/cd/B19306_01/server.102/b14257/jm_create.htm#i1005706"&gt;here&lt;/a&gt;. (Haven't tried it yet though).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-1391790831990121214?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/1391790831990121214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2009/11/adapters-database-and-file-adapters.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/1391790831990121214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/1391790831990121214'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2009/11/adapters-database-and-file-adapters.html' title='Adapters - Database and File Adapters'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-5539605812064763987</id><published>2009-11-09T18:56:00.000-05:00</published><updated>2009-11-14T17:00:43.138-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle SOA Suite'/><title type='text'>SOA Suite 11g Components</title><content type='html'>The SOA Suite primarily comprises of BEA Application Server(J2EE) where the following Service Engines are embedded&lt;br /&gt;&lt;ul&gt;&lt;li&gt;BPEL&lt;/li&gt;&lt;li&gt;Mediator&lt;/li&gt;&lt;li&gt;Business Rules&lt;/li&gt;&lt;li&gt;Human Workflow&lt;/li&gt;&lt;/ul&gt;Oracle Service Bus is another important part of the SOA Suite but comes as a&amp;nbsp;separate application.&lt;br /&gt;&lt;br /&gt;The other helpful components/frameworks&amp;nbsp;are&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Web Service Manager - where policies are defined and enforced&lt;/li&gt;&lt;li&gt;B2B - A protocol engine that provides Business to Business communicaton over a variety of protocols like EDI, HL7, etc.&lt;/li&gt;&lt;li&gt;Adapters&amp;nbsp;- Adapts non service based components as services. Examples are Database Adapter, File Adapter, JMS Adapter, eBusiness Suite Adapter.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Managing/Monitoring Tools&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Enterprise Manager - A web based console to manage all fusion mddleware components&lt;/li&gt;&lt;li&gt;Business Activity Monitoring(BAM) - activity monitoring tool&lt;/li&gt;&lt;/ul&gt;The IDE to develop the SOA application is Java Developer. There is also an Eclipse plugin.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-5539605812064763987?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/5539605812064763987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2009/11/soa-suite-11g-components.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/5539605812064763987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/5539605812064763987'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2009/11/soa-suite-11g-components.html' title='SOA Suite 11g Components'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-2414926451004583332</id><published>2009-11-09T17:47:00.005-05:00</published><updated>2010-07-06T19:06:33.018-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle SOA Suite'/><title type='text'>Mediator</title><content type='html'>Mediator is a new component(originally Oracle Service Bus&amp;nbsp;before it was replaced by the AcquaLogic Bus)that has been added to Oracle SOA Suite 11g.&lt;br /&gt;&lt;br /&gt;This &lt;a href="http://www.slideshare.net/gschmutz/oracle-soa-suite-11g-mediator-vs-oracle-service-bus-osb"&gt;article&lt;/a&gt; explains the difference between Mediator and OSB.&lt;br /&gt;The "&lt;a href="http://www.biske.com/blog/?p=711"&gt;The Big BPEL-ESB-OSB cook-off&lt;/a&gt;" by ToddBiske analyses the role of each one.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What does the Mediator do? &lt;br /&gt;&lt;ul&gt;&lt;li&gt;It mediates components/services &lt;strong&gt;within&lt;/strong&gt; an SOA Composite Application.&lt;/li&gt;&lt;li&gt;Routes the requests to the Services&lt;/li&gt;&lt;li&gt;Data Transformation between formats and protocols&lt;/li&gt;&lt;li&gt;It DOES NOT do service localisation and it cannot act as a Gateway to the Services.&lt;/li&gt;&lt;/ul&gt;How is it different from Oracle Service Bus?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The main difference is in the &lt;strong&gt;scope&lt;/strong&gt;. Mediator performs &lt;strong&gt;intra-composite mediation&lt;/strong&gt; while Oracle Service Bus performs &lt;strong&gt;inter-composite mediation&lt;/strong&gt; which means that it mediates different composites together.&lt;/li&gt;&lt;/ul&gt;What should be done by a Mediator? &lt;br /&gt;&lt;ul&gt;&lt;li&gt;In Oracle, every BPELProcess is a Composite Service. This Composite could be invoking multiple BPEL Processes or Components. The Contract is defined at the Composite Service and the Mediator plays the role of mediation between this Contract and the various contracts for other components within the Composite.&amp;nbsp;&lt;/li&gt;&lt;li&gt;I think that it is a good practice to create a Mediator in all Composites even if the Composite has a single BPEL Process. The Mediator will help take care of additional operations that could be added to this Service in future.&lt;/li&gt;&lt;li&gt;I think that it is a good practice to do all data transformations at the Mediator.&lt;/li&gt;&lt;li&gt;Mediator can also perform routing of requests to different Services. But, I think that one should explore if this can be delegated to&amp;nbsp;BPEL as&amp;nbsp;its core stength is to orchestrate the services.&lt;/li&gt;&lt;li&gt;Anything that does not belong to a process has to be extracted out and put in the Mediator. For example, if the process needs the data in a certain format then that transformation can be done at the Mediator or the OSB but not in the BPEL. &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-2414926451004583332?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/2414926451004583332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2009/11/mediator.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/2414926451004583332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/2414926451004583332'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2009/11/mediator.html' title='Mediator'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-2028200541377315287</id><published>2009-10-08T15:16:00.000-04:00</published><updated>2009-10-08T17:07:11.910-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><title type='text'>Fresh Air over Oracle Fusion Middleware</title><content type='html'>There is a lot of confusion over what Oracle Fusion Middleware is and what it comprises of. Google it and a few Oracle websites come up that are targeted for the CEOs and the CTOs which makes less sense for&amp;nbsp; technical folks. Here are some helpful podcasts &lt;a href="http://streaming.oracle.com/ebn/podcasts/middleware/6637516_Thomas_Kurian_1_070108.mp3"&gt;Fusion Podcast1&lt;/a&gt;, &lt;a href="http://streaming.oracle.com/ebn/podcasts/middleware/6645093_Thomas_Kurian_2_070108.mp3"&gt;Fusion Podcast2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;To keep it simple, my interpretation is that&amp;nbsp;Oracle Fusion&amp;nbsp;Middleware&amp;nbsp;is a collection of technologies&amp;nbsp;that are based on&amp;nbsp;SOA technology platform&amp;nbsp;that help the Customer develop,&amp;nbsp;integrate, manage and monitor applications.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Oracle Fusion Middleware 11g&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The Oracle Fusion Middleware11g&amp;nbsp;is a fusion of technologies between Oracle and BEA products. I am listing the primary technologies that form the crux of this middleware and am also listing the origin of the technology which can help in understanding better. The SOA products of BEA were once called AcquaLogic Service Bus, etc.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Application Server from BEA which is called Oracle Weblogic Server. The Oracle Application Server based on oc4j does not seem to have found a place here.&lt;/li&gt;&lt;li&gt;Content Server from Oracle&lt;/li&gt;&lt;li&gt;Identity Manager from Oracle&lt;/li&gt;&lt;li&gt;Business Intelligence from Oracle&lt;/li&gt;&lt;li&gt;Transaction Processing from BEA which is Tuxedo &lt;/li&gt;&lt;li&gt;SOA Suite&lt;/li&gt;&lt;ul&gt;&lt;li&gt;BPEL Process Manager from BEA&lt;/li&gt;&lt;li&gt;Enterprise Service Bus from BEA&lt;/li&gt;&lt;li&gt;BAM from Oracle&lt;/li&gt;&lt;li&gt;Web Services Manager from Oracle&lt;/li&gt;&lt;li&gt;Business Rules from Oracle&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;strong&gt;Oracle Fusion Applications&lt;/strong&gt;&lt;br /&gt;It is the re implementation of Oracle's EBusiness Suite, Siebel, PeopleSoft and JDEdwards Enterprise as a single application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-2028200541377315287?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/2028200541377315287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2009/10/fresh-air-over-oracle-fusion-middleware.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/2028200541377315287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/2028200541377315287'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2009/10/fresh-air-over-oracle-fusion-middleware.html' title='Fresh Air over Oracle Fusion Middleware'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-6992019504713413626</id><published>2009-09-19T23:48:00.000-04:00</published><updated>2009-10-09T09:37:58.122-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BPEL Process'/><title type='text'>Creation of a Synchronous BPEL Process</title><content type='html'>This will&amp;nbsp;cover the&amp;nbsp;concepts, design, testing and deployment of Synchronous BPEL Process.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: purple;"&gt;What this blog helps to understand&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Using&amp;nbsp;WebService PartnerLink&lt;/li&gt;&lt;li&gt;Using&amp;nbsp;Invoke BPEL Activtiy&lt;/li&gt;&lt;li&gt;Using&amp;nbsp;the webservice. &lt;/li&gt;&lt;li&gt;How to create a Synchronized BPEL Process&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;&lt;span style="color: purple;"&gt;Note&lt;/span&gt;&lt;/strong&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;We will utilize the &lt;a href="http://oracle-bpel.blogspot.com/2009/08/creation-of-simple-web-service.html"&gt;webservice&lt;/a&gt;&amp;nbsp;that was created earlier. This will help&amp;nbsp;in understanding how the webservice that you created before&amp;nbsp;is being orchestrated by the BPEL Process.&lt;/li&gt;&lt;li&gt;We shall not do the data transformation between different data types. Fortunately, int to string and string to double conversion seems to be done out of the box.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&amp;nbsp;&lt;strong&gt;&lt;span style="color: purple;"&gt;Intent&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;To create a Synchronous BPEL Process that takes a FICO score(input) and determines the APR(output). Let us call this a MortgageProcess.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;strong&gt;&lt;span style="color: purple;"&gt;Prerequisite&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Creation of &lt;a href="http://oracle-bpel.blogspot.com/2009/08/creation-of-simple-web-service.html"&gt;webservice&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;&lt;span style="color: purple;"&gt;Concepts of Synchronous Service&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: black;"&gt;This &lt;a href="http://java.sun.com/blueprints/webservices/using/webservbp3.html"&gt;article&lt;/a&gt;&amp;nbsp;explains the Synchronous and Asynchronous webservices&lt;/span&gt;&lt;/li&gt;&lt;li&gt;The difference between Synchronous and Asynchronous BPEL Process is excellently defined &lt;a href="http://suryaveer-chauhan.blogspot.com/2009/06/asynchronous-process-vs.html"&gt;here&lt;/a&gt;&amp;nbsp;and I shall not duplicate this below.&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;&lt;span style="color: purple;"&gt;Design&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: black;"&gt;Choose&amp;nbsp;"New Project ..."&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: black;"&gt;In the "New Gallery" window,&amp;nbsp;select "SOA Project" &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: black;"&gt;In the "Create SOA Project Step1 of 2",&amp;nbsp;enter Project Name as&amp;nbsp;"SynchronousMortgage"&lt;/span&gt;&lt;/li&gt;&lt;li&gt;In the "Create SOA Project Step2 of 2", select the Composite Template "Composite with BPEL" and click on "Finish" button.&lt;/li&gt;&lt;li&gt;This will launch the "Create BPEL Process" window as seen below&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://1.bp.blogspot.com/_xH-xH_XieLM/SrUTxps7bMI/AAAAAAAAIj8/yATGiX19g_4/s1600-h/CreateBPELProcess.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" iq="true" src="http://1.bp.blogspot.com/_xH-xH_XieLM/SrUTxps7bMI/AAAAAAAAIj8/yATGiX19g_4/s400/CreateBPELProcess.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;After creation, the default design view of the MortgageProcess looks like below&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://3.bp.blogspot.com/_xH-xH_XieLM/SrUU2Wv2N6I/AAAAAAAAIkE/8qDV1HHj9RI/s1600-h/DefaultSynchronousProcess.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" iq="true" src="http://3.bp.blogspot.com/_xH-xH_XieLM/SrUU2Wv2N6I/AAAAAAAAIkE/8qDV1HHj9RI/s400/DefaultSynchronousProcess.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Now,&amp;nbsp;invoke the CreditService webservice. You can do this by&amp;nbsp;dragging and dropping the "Partner Link (WebService/Adapter)" from the "BPEL Sevices" section in the Resource Palette(as shown below) to the Partner Links swim lane on the right&amp;nbsp;side.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_xH-xH_XieLM/SrUlkDt9xnI/AAAAAAAAIkM/DI8OeUc1iq8/s1600-h/SelectWebServicePartnerLink.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" iq="true" src="http://1.bp.blogspot.com/_xH-xH_XieLM/SrUlkDt9xnI/AAAAAAAAIkM/DI8OeUc1iq8/s400/SelectWebServicePartnerLink.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: black;"&gt;Once it is dropped, the "Create Partner Link" dialog appears where the partner link needs to be configured to invoke the CreditService.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_xH-xH_XieLM/SrUzIaGBDKI/AAAAAAAAIkU/2l3JYNVgVjc/s1600-h/ConfigurePartnerLink.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" iq="true" src="http://2.bp.blogspot.com/_xH-xH_XieLM/SrUzIaGBDKI/AAAAAAAAIkU/2l3JYNVgVjc/s400/ConfigurePartnerLink.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Now,&amp;nbsp;there should be a BPEL Activity to&amp;nbsp;invoke the WebService through the Partner Link we configured&amp;nbsp;in the previous step. For that,&amp;nbsp;drag the "Invoke" BPEL Activity from Component Palette&amp;gt;BPEL Activities and Components and drop it into the middle lane and configure it as shown below.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_xH-xH_XieLM/SrU2GKO3yII/AAAAAAAAIkk/FAM6F8-8dpQ/s1600-h/InvokeActivityPosition.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" iq="true" src="http://3.bp.blogspot.com/_xH-xH_XieLM/SrU2GKO3yII/AAAAAAAAIkk/FAM6F8-8dpQ/s400/InvokeActivityPosition.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Connect the InvokeActivity with the&amp;nbsp;"SyncCreditProcess" PartnerLink&amp;nbsp; and configure it as shown below.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://1.bp.blogspot.com/_xH-xH_XieLM/SrU4-8q-U_I/AAAAAAAAIks/Zj5bSkeDYNI/s1600-h/ConfgureInvoke.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" iq="true" src="http://1.bp.blogspot.com/_xH-xH_XieLM/SrU4-8q-U_I/AAAAAAAAIks/Zj5bSkeDYNI/s400/ConfgureInvoke.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Now, assign the "Invoke_CreditProcess_process_InputVariable" with the&amp;nbsp;input received from the client which is the FICO score. When the process runs, the web service operation is invoked and this&amp;nbsp;input value is passed to it.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;&lt;a href="http://1.bp.blogspot.com/_xH-xH_XieLM/SrU8WZu83gI/AAAAAAAAIk0/cSbVnxW0pt8/s1600-h/AssgnInputLocation.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" iq="true" src="http://1.bp.blogspot.com/_xH-xH_XieLM/SrU8WZu83gI/AAAAAAAAIk0/cSbVnxW0pt8/s400/AssgnInputLocation.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Double click on the Assign Activity &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In "General" tab, change the name to a meaningful one like "Assign_FICO"&lt;/li&gt;&lt;li&gt;Go to "Copy Operation" tab &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click on green + arrow to select the "Copy Operation..." &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;In the "Create Copy Operation" screen&amp;nbsp;do the following&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://4.bp.blogspot.com/_xH-xH_XieLM/SrU_TrJ2bnI/AAAAAAAAIk8/R5g4dztdbS4/s1600-h/CopyAssignInputVariable.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" iq="true" src="http://4.bp.blogspot.com/_xH-xH_XieLM/SrU_TrJ2bnI/AAAAAAAAIk8/R5g4dztdbS4/s400/CopyAssignInputVariable.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;When the process runs, the web service operation returns the response instantaneously(synchronized). Since this value has to be returned to the client,&amp;nbsp;assign&amp;nbsp;"Invoke_CreditProcess_process_OutputVariable" to the response (output which is the APR)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Drag and drop the Assign Activity in between Receive and Reply activities as seen below&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_xH-xH_XieLM/SrVA3XqeunI/AAAAAAAAIlE/pcUYWJka9nY/s1600-h/AssgnOutputLocation.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" iq="true" src="http://3.bp.blogspot.com/_xH-xH_XieLM/SrVA3XqeunI/AAAAAAAAIlE/pcUYWJka9nY/s400/AssgnOutputLocation.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp;&lt;span style="color: black;"&gt;Double click on the Assign Activity &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: black;"&gt;In "General" tab, change the name to a meaningful one like "Assign_APR"&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: black;"&gt;Go to "Copy Operation" tab &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: black;"&gt;Click on green + arrow to select the "Copy Operation..." &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: black;"&gt;In the "Create Copy Operation" screen do the following&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_xH-xH_XieLM/SrWmLh9P-DI/AAAAAAAAIlM/RGM3mujBBUQ/s1600-h/CopyAssignOutputVariable.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" iq="true" src="http://1.bp.blogspot.com/_xH-xH_XieLM/SrWmLh9P-DI/AAAAAAAAIlM/RGM3mujBBUQ/s400/CopyAssignOutputVariable.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;strong&gt;&lt;span style="color: purple;"&gt;Deployment&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="color: black;"&gt;Now save the .bpel file&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Make the project&lt;/li&gt;&lt;li&gt;See the compiler log. You will see warning messages on assigning incompatible types. This is true since the FICO score should be integer and APR is returned as double. Since we wanted to focus only on the creation of synchronous process we shall ignore such wrong programming practice for this example.&lt;/li&gt;&lt;li&gt;Deploy to Crystal Domain&lt;/li&gt;&lt;li&gt;Check the Deployment log to see if the dployment is successull.&lt;/li&gt;&lt;/ol&gt;&lt;strong&gt;&lt;span style="color: purple;"&gt;Testing&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Go to Oracle Enterprise Manager&amp;nbsp;&lt;/li&gt;&lt;li&gt;Under SOA&amp;gt;soa infro, you can see SynchronousMortgage deployed.&lt;/li&gt;&lt;li&gt;On the right side, clck on Test button&lt;/li&gt;&lt;li&gt;Enter the InputValue 500 and the system outputs 20.&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;&lt;span style="color: purple;"&gt;Note&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp;Note &lt;span style="background-color: white; color: black;"&gt;that&amp;nbsp;it is the&lt;/span&gt;&amp;nbsp;type of response(immediate or callback)&amp;nbsp;that decides if the BPEL Process&amp;nbsp;is Synchronous&amp;nbsp;or Asynchronous.&lt;/li&gt;&lt;li&gt;Each domain has the attribute &lt;span style="color: blue;"&gt;&lt;em&gt;syncMaxWaitTime&lt;/em&gt;&lt;/span&gt;&amp;nbsp;that by default is set to 60 seconds and can be&amp;nbsp;reconfigured by the doman administrator. The Invoke Activity cannot wait for more than&amp;nbsp;this time&amp;nbsp;and&amp;nbsp;will time out. &lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;&lt;span style="color: purple;"&gt;Real World Scenarios&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: black;"&gt;A Credit Card Authorization during an online purchase is good case for a Synchronous Process as an authorizaton&amp;nbsp;response is expected by the CardHolder immediately.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-6992019504713413626?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/6992019504713413626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2009/09/creation-of-synchronous-bpel-process.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/6992019504713413626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/6992019504713413626'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2009/09/creation-of-synchronous-bpel-process.html' title='Creation of a Synchronous BPEL Process'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_xH-xH_XieLM/SrUTxps7bMI/AAAAAAAAIj8/yATGiX19g_4/s72-c/CreateBPELProcess.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-7859342097051433583</id><published>2009-09-10T23:48:00.007-04:00</published><updated>2010-05-11T15:35:26.504-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><title type='text'>Oracle SOA Suite 11g Reference Documentation</title><content type='html'>Here are some of the useful links I found on the Oracle SOA 11g.&amp;nbsp; I shall keep updating them. Please drop a comment if you know of any.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Oracle Developers Guide for SOA Suite&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;a href="https://docs.google.com/viewer?url=http%3A%2F%2Fdownload.oracle.com%2Fdocs%2Fcd%2FE14571_01%2Fintegration.1111%2Fe10224.pdf"&gt;http://download.oracle.com/docs/cd/E14571_01/integration.1111/e10224.pdf&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="display: inline !important;"&gt;&lt;div style="display: inline !important;"&gt;&lt;strong&gt;Oracle BPEL Documentation&amp;nbsp;&lt;/strong&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/strong&gt;&lt;strong&gt;&lt;div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="display: inline !important;"&gt;&lt;strong&gt;&lt;a href="https://docs.google.com/viewer?url=http%3A%2F%2Fdownload.oracle.com%2Fdocs%2Fcd%2FE12839_01%2Fintegration.1111%2Fe10224.pdf"&gt;http://download.oracle.com/docs/cd/E12839_01/integration.1111/e10224.pdf&lt;/a&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/div&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;strong&gt;&lt;div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;strong&gt;&lt;div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="display: inline !important;"&gt;&lt;div style="display: inline !important;"&gt;&lt;strong&gt;Oracle Business Rules Documentation&lt;/strong&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;strong&gt;&lt;div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;a href="https://docs.google.com/viewer?url=http%3A%2F%2Fdownload.oracle.com%2Fdocs%2Fcd%2FE15523_01%2Fintegration.1111%2Fe10228.pdf"&gt;http://download.oracle.com/docs/cd/E15523_01/integration.1111/e10228.pdf&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;strong&gt;&lt;div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="display: inline !important;"&gt;&lt;div style="display: inline !important;"&gt;Oracle BPMN 2.0 Documentation&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;strong&gt;&lt;div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="display: inline !important;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;strong&gt;&lt;div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="display: inline !important;"&gt;&lt;a href="https://docs.google.com/viewer?url=http%3A%2F%2Fdownload.oracle.com%2Fdocs%2Fcd%2FE14571_01%2Fdoc.1111%2Fe15176.pdf"&gt;http://download.oracle.com/docs/cd/E14571_01/doc.1111/e15176.pdf&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="display: inline !important;"&gt;Oracle User Guide for BAM&lt;/div&gt;&lt;/div&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/viewer?url=http%3A%2F%2Fdownload.oracle.com%2Fdocs%2Fcd%2FE14571_01%2Fintegration.1111%2Fe10230.pdf"&gt;http://download.oracle.com/docs/cd/E14571_01/integration.1111/e10230.pdf&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="display: inline !important;"&gt;Oracle User Guide For Technology Adapters(File, DB, JMS, etc)&lt;/div&gt;&lt;/div&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/viewer?url=http%3A%2F%2Fdownload.oracle.com%2Fdocs%2Fcd%2FE14571_01%2Fintegration.1111%2Fe10231.pdf"&gt;http://download.oracle.com/docs/cd/E14571_01/integration.1111/e10231.pdf&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;strong&gt;&lt;div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Oracle Fusion Middleware List Of Books&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;strong&gt;&lt;div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="display: inline !important;"&gt;&lt;a href="http://download.oracle.com/docs/cd/E14571_01/nav/portal_booklist.htm"&gt;http://download.oracle.com/docs/cd/E14571_01/nav/portal_booklist.htm&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;/strong&gt;Oracle TN Podcasts&lt;br /&gt;&lt;a href="http://www.oracle.com/technology/syndication/arch2arch-podcasts/index.html"&gt;http://www.oracle.com/technology/syndication/arch2arch-podcasts/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;BPEL Blogs&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://orasoa.blogspot.com/2007/05/getting-started-with-oracle-soa-bpel.html"&gt;http://orasoa.blogspot.com/2007/05/getting-started-with-oracle-soa-bpel.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dietrichschroff.blogspot.com/search/label/BPEL"&gt;http://dietrichschroff.blogspot.com/search/label/BPEL&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-7859342097051433583?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/7859342097051433583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2009/09/oracle-bpel-informative-web-sites.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/7859342097051433583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/7859342097051433583'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2009/09/oracle-bpel-informative-web-sites.html' title='Oracle SOA Suite 11g Reference Documentation'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-9135205923948004709</id><published>2009-09-10T23:44:00.000-04:00</published><updated>2009-09-20T18:55:07.266-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><title type='text'>Oracle SOA 11g Memory Requirements</title><content type='html'>For folks interested in installing Oracle SOA Suite 11g, please read this to check if your desktop/laptop is suitable.&lt;br /&gt;&lt;br /&gt;I installed the Oracle SOA Suite 11g on my new laptop which has Windows Vista on a 4GB RAM. I profiled the memory hike on the start of each service. Here it is&lt;br /&gt;&lt;ul&gt;&lt;li&gt;When windows started up(only basic services)&amp;nbsp; with OracleXE as Service: 39%&lt;/li&gt;&lt;li&gt;Started Oracle JDeveloper 11g : 47%&lt;/li&gt;&lt;li&gt;Started Oracle Weblogic Console : 66%&lt;/li&gt;&lt;li&gt;Started Node Manager : 69%&lt;/li&gt;&lt;li&gt;Started SOA Serve : 87%&lt;/li&gt;&lt;/ul&gt;If you plan to open a&amp;nbsp;Office software or run other SOA Services like BAM then this machine crawls. You may want to plan for at least 6GB RAM. If not, you will end up&amp;nbsp;watching the TaskManager&amp;nbsp;every minutes to see f you can&amp;nbsp;kill any process&amp;nbsp;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-9135205923948004709?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/9135205923948004709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2009/09/oracle-soa-11g-memory-requirements.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/9135205923948004709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/9135205923948004709'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2009/09/oracle-soa-11g-memory-requirements.html' title='Oracle SOA 11g Memory Requirements'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-8162241358979584062</id><published>2009-09-04T01:50:00.000-04:00</published><updated>2009-09-08T23:44:58.089-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BPEL Process'/><title type='text'>Creation of a Simple BPEL Process - Hello</title><content type='html'>We shall create a very simple BPEL process. The intent is to learn the following&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Overview of this exercise&lt;/li&gt;&lt;li&gt;BPEL Designer in JDeveloper&lt;/li&gt;&lt;li&gt;Partner Link&lt;/li&gt;&lt;li&gt;Process Activities - Receive, Invoke, Assign&lt;/li&gt;&lt;li&gt;Data Transformation&lt;/li&gt;&lt;li&gt;Compilation&lt;/li&gt;&lt;li&gt;Deployment&lt;/li&gt;&lt;li&gt;Accessing Enterprise Manager&lt;/li&gt;&lt;li&gt;Creation of Test Suite&lt;/li&gt;&lt;/ol&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;br /&gt;We will create a very simple BPEL process. The process does not orchestrate any services. It just takes an input from the client and transforms it and sends it back as a response.&lt;br /&gt;Example &lt;br /&gt;Input = "Hello"&lt;br /&gt;Output = "Hello CrystalTrain"&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Creation of BPEL Process&lt;/strong&gt;&lt;br /&gt;This involves the following steps&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Creation of Application&lt;/li&gt;&lt;li&gt;Creation of Project&lt;/li&gt;&lt;li&gt;Data Transformation&lt;/li&gt;&lt;li&gt;Compilation, Deployment and Testing&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_xH-xH_XieLM/SqB9mvkW8RI/AAAAAAAAIf0/N9Ogu2HXY4Y/s1600-h/ApplicationStep1of3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" lk="true" src="http://3.bp.blogspot.com/_xH-xH_XieLM/SqB9mvkW8RI/AAAAAAAAIf0/N9Ogu2HXY4Y/s400/ApplicationStep1of3.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_xH-xH_XieLM/SqB-k20mh4I/AAAAAAAAIf8/tu88gM7PdXs/s1600-h/ApplicationStep2of3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" lk="true" src="http://4.bp.blogspot.com/_xH-xH_XieLM/SqB-k20mh4I/AAAAAAAAIf8/tu88gM7PdXs/s400/ApplicationStep2of3.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_xH-xH_XieLM/SqB_zRYEyyI/AAAAAAAAIgE/jO0PHQR2QLU/s1600-h/ApplicationStep3of3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" lk="true" src="http://4.bp.blogspot.com/_xH-xH_XieLM/SqB_zRYEyyI/AAAAAAAAIgE/jO0PHQR2QLU/s400/ApplicationStep3of3.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;This prompts you to create a BPEL Process&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;a href="http://2.bp.blogspot.com/_xH-xH_XieLM/SqCCAbN2SII/AAAAAAAAIgM/4P2catYQTHw/s1600-h/CreateBPELProcess.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" lk="true" src="http://2.bp.blogspot.com/_xH-xH_XieLM/SqCCAbN2SII/AAAAAAAAIgM/4P2catYQTHw/s400/CreateBPELProcess.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The default process comprises of the following&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://3.bp.blogspot.com/_xH-xH_XieLM/SqCI_2jlPpI/AAAAAAAAIgU/83IBPgT0CUU/s1600-h/AnatomyOfProcess.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" lk="true" src="http://3.bp.blogspot.com/_xH-xH_XieLM/SqCI_2jlPpI/AAAAAAAAIgU/83IBPgT0CUU/s400/AnatomyOfProcess.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Below is the design view of the process&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://1.bp.blogspot.com/_xH-xH_XieLM/SqCJsJLOgCI/AAAAAAAAIgc/GK1IsxSmozk/s1600-h/DesignViewOfProcess.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" lk="true" src="http://1.bp.blogspot.com/_xH-xH_XieLM/SqCJsJLOgCI/AAAAAAAAIgc/GK1IsxSmozk/s400/DesignViewOfProcess.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Let us take a look at the Receive BPEL Activity. It receives the request from the client and holds the payload of the request in the inputVariable.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://2.bp.blogspot.com/_xH-xH_XieLM/SqCdpV-KtpI/AAAAAAAAIgk/0sEdtQi4sbQ/s1600-h/ReceiveInput.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" lk="true" src="http://2.bp.blogspot.com/_xH-xH_XieLM/SqCdpV-KtpI/AAAAAAAAIgk/0sEdtQi4sbQ/s400/ReceiveInput.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Let us take a look at the Reply BPEL Activity. It sends a response back to the client with the data stored in outputVariable.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://1.bp.blogspot.com/_xH-xH_XieLM/SqCfQNFez9I/AAAAAAAAIgs/-1i_FCp4JM4/s1600-h/ReplyOutput.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" lk="true" src="http://1.bp.blogspot.com/_xH-xH_XieLM/SqCfQNFez9I/AAAAAAAAIgs/-1i_FCp4JM4/s400/ReplyOutput.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Our intent is to modify the message received from the client. This is stored in inputVariable.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;This can be done in Assign BPEL Activity as can be seen below.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Drag the Assign BPEL Activity that is avalable in the&amp;nbsp;ComponentPalette&amp;gt;BPEL Activities and Components&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://4.bp.blogspot.com/_xH-xH_XieLM/SqCgVVGk23I/AAAAAAAAIg0/PfQwoHxT67I/s1600-h/AssignBPELActivity.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" lk="true" src="http://4.bp.blogspot.com/_xH-xH_XieLM/SqCgVVGk23I/AAAAAAAAIg0/PfQwoHxT67I/s400/AssignBPELActivity.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Drag and Drop the Assign BPEL Activity in the highlighted circle in between Receive and Reply Activities&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://3.bp.blogspot.com/_xH-xH_XieLM/SqCg-KpI5bI/AAAAAAAAIg8/WmtKqeSCbXc/s1600-h/AssignDropped.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" lk="true" src="http://3.bp.blogspot.com/_xH-xH_XieLM/SqCg-KpI5bI/AAAAAAAAIg8/WmtKqeSCbXc/s400/AssignDropped.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Now edit the Assign Operation.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In General Tab, Rename it to "TransformMessage"&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In Copy tab,&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;You will see "Create Insert-After Operation" window&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In the left hand side pane, select "Expression" as the Type &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://2.bp.blogspot.com/_xH-xH_XieLM/SqcZNakjmuI/AAAAAAAAIiM/ww05xWls8YM/s1600-h/EditAssign.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" mq="true" src="http://2.bp.blogspot.com/_xH-xH_XieLM/SqcZNakjmuI/AAAAAAAAIiM/ww05xWls8YM/s400/EditAssign.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://1.bp.blogspot.com/_xH-xH_XieLM/SqCjw-JjWsI/AAAAAAAAIhM/NSmPLFb-uto/s1600-h/CreateInsertAfterOperation.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" lk="true" src="http://1.bp.blogspot.com/_xH-xH_XieLM/SqCjw-JjWsI/AAAAAAAAIhM/NSmPLFb-uto/s400/CreateInsertAfterOperation.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Now using "XPath Expression Builder", modify the inputVariable&amp;nbsp;as seen below.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://2.bp.blogspot.com/_xH-xH_XieLM/SqClQ5ZEl5I/AAAAAAAAIhU/r9Fdi3JMxyk/s1600-h/CreatedExpression.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" lk="true" src="http://2.bp.blogspot.com/_xH-xH_XieLM/SqClQ5ZEl5I/AAAAAAAAIhU/r9Fdi3JMxyk/s400/CreatedExpression.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Assign the transformed value to the outputVariable&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://2.bp.blogspot.com/_xH-xH_XieLM/SqCmOMRfEwI/AAAAAAAAIhc/JJegcUuftno/s1600-h/AssignToOutputVariable.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" lk="true" src="http://2.bp.blogspot.com/_xH-xH_XieLM/SqCmOMRfEwI/AAAAAAAAIhc/JJegcUuftno/s400/AssignToOutputVariable.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;strong&gt;Build and Deploy&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Save the project.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Right click on the project and make "HelloWorld.jpr". This will compile the project and output any errors to the log window.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://3.bp.blogspot.com/_xH-xH_XieLM/SqCnIsKW10I/AAAAAAAAIhk/6tpCAlc7b4Q/s1600-h/CompilationSuccessfull.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" lk="true" src="http://3.bp.blogspot.com/_xH-xH_XieLM/SqCnIsKW10I/AAAAAAAAIhk/6tpCAlc7b4Q/s400/CompilationSuccessfull.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Now right click on the project and select Deploy&amp;gt;HelloWorld&amp;gt;to Crystal&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Note : Your ApplicationServer connection in the IDE should be up.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Accept the default values in "SOA Deployment Configuration Dialog".&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Enter the domain credentials when asked.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Check the Deployment log to see that the status of the deployment.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://3.bp.blogspot.com/_xH-xH_XieLM/SqCpHO4YNFI/AAAAAAAAIhs/eUsFqvFKCdM/s1600-h/DeploymentFinished.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" lk="true" src="http://3.bp.blogspot.com/_xH-xH_XieLM/SqCpHO4YNFI/AAAAAAAAIhs/eUsFqvFKCdM/s400/DeploymentFinished.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;strong&gt;Testing the BPEL Process&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Go to EnterpriseManager at &lt;a href="http://localhost:7001/"&gt;http://localhost:7001/&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;After entering your credentials you will be taken to the Home page (The login takes a looooong time)&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;To the left side, you will see&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://4.bp.blogspot.com/_xH-xH_XieLM/SqEjPmiqfDI/AAAAAAAAIh0/102-oMk5S1Q/s1600-h/SelectionOfHelloWorldProcess.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" lk="true" src="http://4.bp.blogspot.com/_xH-xH_XieLM/SqEjPmiqfDI/AAAAAAAAIh0/102-oMk5S1Q/s400/SelectionOfHelloWorldProcess.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Click on the "Test" button&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://1.bp.blogspot.com/_xH-xH_XieLM/SqEoZ2gaOHI/AAAAAAAAIh8/lvzIgh4QZyg/s1600-h/TestButton.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" lk="true" src="http://1.bp.blogspot.com/_xH-xH_XieLM/SqEoZ2gaOHI/AAAAAAAAIh8/lvzIgh4QZyg/s400/TestButton.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Enter the Input now&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_xH-xH_XieLM/Sqcac-nTeSI/AAAAAAAAIiU/K4b_87GSwe8/s1600-h/TestEnterInput.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" mq="true" src="http://4.bp.blogspot.com/_xH-xH_XieLM/Sqcac-nTeSI/AAAAAAAAIiU/K4b_87GSwe8/s400/TestEnterInput.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The response looks as follows&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_xH-xH_XieLM/SqccD79zZbI/AAAAAAAAIik/LjM5jfvKomo/s1600-h/TestResponse.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" mq="true" src="http://4.bp.blogspot.com/_xH-xH_XieLM/SqccD79zZbI/AAAAAAAAIik/LjM5jfvKomo/s400/TestResponse.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;As show above, click on "Launch Message Flow Trace" to see the Audt Trail, Flow, XML from the request till the response.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_xH-xH_XieLM/SqcdEJZsXII/AAAAAAAAIis/Gig_Mh9u76c/s1600-h/TestFlowTrace.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" mq="true" src="http://2.bp.blogspot.com/_xH-xH_XieLM/SqcdEJZsXII/AAAAAAAAIis/Gig_Mh9u76c/s400/TestFlowTrace.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;Click on "Simple Process" to view the Flow Trace.&lt;br /&gt;&lt;br /&gt;See below for the Audit Trail of this instance of the process.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_xH-xH_XieLM/SqcefZPsTTI/AAAAAAAAIi0/YUfBnA_XikU/s1600-h/TestAuditTrail.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" mq="true" src="http://3.bp.blogspot.com/_xH-xH_XieLM/SqcefZPsTTI/AAAAAAAAIi0/YUfBnA_XikU/s400/TestAuditTrail.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Select the "Flow" tab to see the flow of request throgh the process actvities&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_xH-xH_XieLM/Sqcf1hPKqzI/AAAAAAAAIi8/QBqP7z4H6WE/s1600-h/TestFlow.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" mq="true" src="http://2.bp.blogspot.com/_xH-xH_XieLM/Sqcf1hPKqzI/AAAAAAAAIi8/QBqP7z4H6WE/s400/TestFlow.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Now, since you have successfully created your first BPEL process, start playing with the BPEL Designer and the EnterpriseManager. Make as many mistakes as possible and try to figure out the resolution for each. Be BOLD and try out the following. The more mistakes you make now the&amp;nbsp;less you will make in future.&amp;nbsp;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In the BPEL Designer in JDeveloper, view the Source of the .bpel file and see if you can make any sense of it.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Remve the expression from the Assign activity and try to build the project. See the compilation errors.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Open the logs at C:\oraclesoa\user_projects\domains\crystal_domain\servers\soa_server1\logs to familiarise yourselves.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Go to the Design mode and edit the Assign process activity and change the expression value. Save the changes and deploy it. Follow the steps shown in the figure below.&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://2.bp.blogspot.com/_xH-xH_XieLM/SqcjSpauMZI/AAAAAAAAIjE/zNjoGuoDddE/s1600-h/ReviseProcess.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" mq="true" src="http://2.bp.blogspot.com/_xH-xH_XieLM/SqcjSpauMZI/AAAAAAAAIjE/zNjoGuoDddE/s400/ReviseProcess.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-8162241358979584062?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/8162241358979584062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2009/09/creation-of-simple-bpel-process-hello.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/8162241358979584062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/8162241358979584062'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2009/09/creation-of-simple-bpel-process-hello.html' title='Creation of a Simple BPEL Process - Hello'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_xH-xH_XieLM/SqB9mvkW8RI/AAAAAAAAIf0/N9Ogu2HXY4Y/s72-c/ApplicationStep1of3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-3484184795306702006</id><published>2009-08-30T19:04:00.000-04:00</published><updated>2009-08-30T19:05:31.785-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebService'/><title type='text'>Understanding WSDL</title><content type='html'>This is an attempt to explain WSDL in the simplest manner&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;About WSDL&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;WSDL stands for Web Service Definition Language.&lt;/li&gt;&lt;li&gt;It is a contract to the web service&amp;nbsp;that is expressed in XML. To understand better this can be compared to an Interface in Java or a&amp;nbsp;Package&amp;nbsp;in&amp;nbsp;Oracle&amp;nbsp;which acts as a contract between the client and the&amp;nbsp;system.&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;Structure of WSDL&amp;nbsp;(parallels are drawn to Java wherever possible)&lt;/strong&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;What&lt;/strong&gt;&amp;nbsp;are the capabilities of the Service?&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;What are the operations(methods) provided by the Service and what are the messages(parameters) that each&amp;nbsp;operation requires?&lt;/li&gt;&lt;li&gt;The messages can be input(parameters), output(return value)&amp;nbsp;or faults(exception)&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;strong&gt;How&lt;/strong&gt; can the Service be accessed? &lt;/li&gt;&lt;ul&gt;&lt;li&gt;What is the protocol(SOAP) and what is the encoding(document)?&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;strong&gt;Where&lt;/strong&gt; can the Service be accessed?&lt;/li&gt;&lt;ul&gt;&lt;li&gt;What is the endpoint(address) of the Service? &lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;strong&gt;&amp;nbsp;Illustration of the WSDL Structure&lt;/strong&gt;&lt;br /&gt;The CreditService&amp;nbsp;web service developed earlier is used to illustrate&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_xH-xH_XieLM/SpsB5PxFVQI/AAAAAAAAIfc/NssiUDT2Pt4/s1600-h/WebServicePortType.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" lk="true" src="http://3.bp.blogspot.com/_xH-xH_XieLM/SpsB5PxFVQI/AAAAAAAAIfc/NssiUDT2Pt4/s400/WebServicePortType.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_xH-xH_XieLM/SpsET9TbGiI/AAAAAAAAIfk/wWVYTBRqdpE/s1600-h/WebServiceBinding.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" lk="true" src="http://4.bp.blogspot.com/_xH-xH_XieLM/SpsET9TbGiI/AAAAAAAAIfk/wWVYTBRqdpE/s400/WebServiceBinding.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_xH-xH_XieLM/SpsFLQeFvWI/AAAAAAAAIfs/zSYaozLZwFo/s1600-h/WebServiceEndPoint.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" lk="true" src="http://4.bp.blogspot.com/_xH-xH_XieLM/SpsFLQeFvWI/AAAAAAAAIfs/zSYaozLZwFo/s400/WebServiceEndPoint.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-3484184795306702006?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/3484184795306702006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2009/08/understanding-wsdl.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/3484184795306702006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/3484184795306702006'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2009/08/understanding-wsdl.html' title='Understanding WSDL'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_xH-xH_XieLM/SpsB5PxFVQI/AAAAAAAAIfc/NssiUDT2Pt4/s72-c/WebServicePortType.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3319007245393111479.post-7383530110107341261</id><published>2009-08-22T23:06:00.058-04:00</published><updated>2010-06-18T17:10:42.337-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA Suite Installation'/><title type='text'>Installation of Oracle SOA Suite 11.1.1.3.0</title><content type='html'>The instructions to install Oracle SOA Suite 11.1.1.3 is available at&amp;nbsp;&lt;a href="http://crystaltrain.com/training_soa_installation.html"&gt;http://crystaltrain.com/training_soa_installation.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3319007245393111479-7383530110107341261?l=oracle-bpel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracle-bpel.blogspot.com/feeds/7383530110107341261/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oracle-bpel.blogspot.com/2009/08/getting-started-installation-of-oracle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/7383530110107341261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319007245393111479/posts/default/7383530110107341261'/><link rel='alternate' type='text/html' href='http://oracle-bpel.blogspot.com/2009/08/getting-started-installation-of-oracle.html' title='Installation of Oracle SOA Suite 11.1.1.3.0'/><author><name>Chandu Sankuratri</name><uri>http://www.blogger.com/profile/00192645659580885600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
