ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From liming liu <andyliulim...@gmail.com>
Subject Re: Can anybody kindly help to send this example to my email
Date Wed, 25 Nov 2009 04:44:30 GMT
     Desperate developers <http://diazdeveloper.blogspot.com/>

For those developers that only want to learn how to run a "Hello World"
example.
   Friday, September 18, 2009
Correlation with
BPEL<http://diazdeveloper.blogspot.com/2009/09/correlation-with-bpel.html>
An application must maintain data integrity when messages are exchanged
between services. A manufacturer that receives orders, for example, must not
mix data for one order with the data for another.

A BPEL process addresses this issue with correlation sets, each of which is
a list of properties whose values are expected to remain constant throughout
a process or throughout a specific scope, even as data is transmitted to and
from partner services.
For purposes of an example, here is a process that records the purchase
orders of custumers, so it needs to identify each specific custumer-order.
This is the diagram of the whole process:



The following steps describe how to identify a process using correlation
sets:


   1. First, the following namespace into your WSDL file:
             xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/varprop"

   2. Create the property to be used to identify your process. In this
   example we will use 2 values to identify the process or the PO of the
   customer, so add the following at the end of your WSDL.
                   <bpws:property name="customerID" type="p:string" />
                   <bpws:property name="orderNumber" type="p:string" />

   3. The process will start after answer the first request, for example,
   when the customer puts a new Purchase Order, the process will return the PO
   number, then the BPEL process will identify an specific process using the
   CustomerID and the OrderNumer. To do the previous logic, add the following
   to your WSDL. This is telling that the CID and Order will be used as a
   combined key.

               <!-- sendResponse -->
               <bpws:propertyAlias propertyName="tns:customerID" messageType
   ="tns:sendPOResponse" part="confirmation">
                   <bpws:query><![CDATA[/tns:CID]]></bpws:query>
               </bpws:propertyAlias>
               <bpws:propertyAlias propertyName="tns:orderNumber"
   messageType="tns:sendPOResponse" part="confirmation">
                       <bpws:query><![CDATA[/tns:Order]]></bpws:query>
               </bpws:propertyAlias>

   4. Also, for each subsequent message sent to the BPEL process we will
   require that the user sends the CID and Order, to do that, define that while
   requesting a operation those values must be sent. Example:
               <!-- QUERY Request -->
               <bpws:propertyAlias propertyName="tns:customerID" messageType
   ="tns:queryPORequest" part="query">
                   <bpws:query><![CDATA[/tns:CID]]></bpws:query>
               </bpws:propertyAlias>
               <bpws:propertyAlias propertyName="tns:orderNumber"messageType
   ="tns:queryPORequest" part="query">
                   <bpws:query><![CDATA[/tns:Order]]></bpws:query>
               </bpws:propertyAlias>

   5. Now, define the correlationSets into your BPEL process
              <bpws:correlationSets>
                   <bpws:correlationSet name="PurchaseOrder"
properties="tns:customerID
   tns:orderNumber"/>
               </bpws:correlationSets>

   6. As previously mentioned, the process will start when answering to the
   first request, so we define that inside the first reply activity:
               <bpws:reply name="replyOutput" operation="sendPO" partnerLink
   ="POLink" portType="tns:purchaseOrderProcess" variable="output">
                   <bpws:correlations>
                       <bpws:correlation initiate="yes" set="PurchaseOrder
   "/>
                   </bpws:correlations>
               </bpws:reply>

   7. And in subsequent requests, the correlation only will be used, not
   initiated again. For example, while querying the process:


           <bpws:onMessage operation="queryPO" partnerLink="POLink" portType
="tns:purchaseOrderProcess" variable="queryInput">
               <bpws:correlations>
                        <bpws:correlation initiate="no" set="PurchaseOrder
"/>
                </bpws:correlations>




Download the example from
here<http://code.google.com/p/augustoproject/source/browse/trunk/source/Store.zip>
.

 Posted by Augusto Diaz at 8:12
AM<http://diazdeveloper.blogspot.com/2009/09/correlation-with-bpel.html>
<http://www.blogger.com/post-edit.g?blogID=3308607845750296303&postID=7042806208907602573>
  1 comments:
 <http://www.blogger.com/profile/01571815551026602413>
Esse.Ti. <http://www.blogger.com/profile/01571815551026602413> said...

Hi
did u write all the code by hand or u used the tool?
because i've some problem using the eclipse editor to put the correlation, i
can't specify the property for each message.
November 3, 2009 6:53 AM
<http://diazdeveloper.blogspot.com/2009/09/correlation-with-bpel.html?showComment=1257260006167#c1197757976010378474>
<http://www.blogger.com/delete-comment.g?blogID=3308607845750296303&postID=1197757976010378474>

Post a Comment<https://www.blogger.com/comment.g?blogID=3308607845750296303&postID=7042806208907602573>
   Older Post<http://diazdeveloper.blogspot.com/2009/09/consuming-external-web-services.html>
Home <http://diazdeveloper.blogspot.com/>
 Subscribe to: Post Comments
(Atom)<http://diazdeveloper.blogspot.com/feeds/7042806208907602573/comments/default>
  Blog Archive

   - ▼  <javascript:void(0)>2009<http://diazdeveloper.blogspot.com/search?updated-min=2009-01-01T00%3A00%3A00-08%3A00&updated-max=2010-01-01T00%3A00%3A00-08%3A00&max-results=5>
   (5)
      - ▼  <javascript:void(0)>September<http://diazdeveloper.blogspot.com/2009_09_01_archive.html>
      (2)
         - Correlation with
BPEL<http://diazdeveloper.blogspot.com/2009/09/correlation-with-bpel.html>
         - Consuming external web
services<http://diazdeveloper.blogspot.com/2009/09/consuming-external-web-services.html>
       - ►  <javascript:void(0)>August<http://diazdeveloper.blogspot.com/2009_08_01_archive.html>
      (1)
         - BPEL fault
handling<http://diazdeveloper.blogspot.com/2009/08/bpel-fault-handling.html>
       - ►  <javascript:void(0)>July<http://diazdeveloper.blogspot.com/2009_07_01_archive.html>
      (2)
         - Calling custom Java classes from
BPEL<http://diazdeveloper.blogspot.com/2009/07/calling-custom-java-classes.html>
         - Apache ODE with JBoss and
Oracle<http://diazdeveloper.blogspot.com/2009/07/apache-ode-with-jboss-and-oracle.html>


<http://www.blogger.com/rearrange?blogID=3308607845750296303&widgetType=BlogArchive&widgetId=BlogArchive1&action=editWidget>
 Who is Augusto
[image: My Photo] <http://www.blogger.com/profile/08731001958069970194> Augusto
DiazView my complete
profile<http://www.blogger.com/profile/08731001958069970194>
<http://www.blogger.com/rearrange?blogID=3308607845750296303&widgetType=Profile&widgetId=Profile1&action=editWidget>
  visitors
[image: blog counter] <http://guestscounter.com/>

<http://www.blogger.com/rearrange?blogID=3308607845750296303&widgetType=HTML&widgetId=HTML1&action=editWidget>


2009/11/24 fangjintao <fangjintao@gmail.com>

>
> Because blogspot has been blocked by Chinese Fucking Great Wall.
>
> http://diazdeveloper.blogspot.com/2009/09/correlation-with-bpel.html
>
> my email: fangjintao@gmail.com
>
> Thanks a lot
>
> --
> View this message in context:
> http://old.nabble.com/Can-anybody-kindly-help-to-send-this-example-to-my-email-tp26491411p26491411.html
> Sent from the Apache Ode User mailing list archive at Nabble.com.
>
>


-- 
Liu Liming(Andy)
Tel: +86-134-7253-4429
MSN:javamanllm@hotmail.com <MSN%3Ajavamanllm@hotmail.com>
SE@SJTU

Mime
View raw message