[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