[esb-java-dev] Adding the BPEL support in the ESB

indika indika at wso2.com
Mon Aug 20 05:40:21 PDT 2007


hi all


I need to figure out the some of issues regarding BPEL 
implementations.(Running a BPEL script with in the ESB)

Each BPEL process should have a wsdl document because BPEL process it 
self is a web service. So, if the service of the BPEL process is 
different(when we use multiple BPEL mediators with different BPEL 
documents ) , then wsdl document also have to changed for each BPEL 
script . To overcome this, I have to define an one wsdl which has a 
Service “Synapse” ,Operation “mediate” and input and output for the 
operation xsd:anyType. Then ,every BPEL document should have following 
*must* attribute.

<partnerLinks>

<partnerLink name="SynapsePartnerLink"

partnerLinkType="SynapseBpelPartnerLinkType"

myRole="SynapsePortTypeRole" />

</partnerLinks>

<variables>

<variable name=”inVar" messageType="synapseNS:MediateRequest"/>

</variables>

(MediateRequest – The incoming message which is defined in the wsdl)

<receive partnerLink="SynapsePartnerLink" operation="mediate" 
portType="SynapsePortType" />

...............

<reply partnerLink="SynapsePartnerLink" operation="mediate" 
portType="SynapsePortType" />

The payload of the current message can be accessed using 
$inVar.SynapseMessagePart (SynapseMessagePart is WSDL message part name 
) or the part attribute with the variable inVar.(The standard way for 
accessing the incoming message payload inside the BPEL script )


In this way we can use any BPEL scrips with only one WSDL which is 
provided as a static one.Only thing need to do before forwarding 
incoming the message payload into the BPEL engine , wrapping it with 
<mediate><SynapseMessagePart>{massage payload} 
</SynapseMessagePart></mediate>.

As a test I had already implemented the BPEL mediator and had run a BPEL 
script inside the ESB


thanks

indika









More information about the Esb-java-dev mailing list