Skip to content

Instantly share code, notes, and snippets.

@faridasabry
Created September 16, 2013 01:59
Show Gist options
  • Save faridasabry/6575935 to your computer and use it in GitHub Desktop.
Save faridasabry/6575935 to your computer and use it in GitHub Desktop.
WSDL for Asynchronous Process
<?xml version="1.0"?>
<definitions name="AsynchProcess"
targetNamespace="http://async.com"
xmlns:tns="http://async.com"
xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPE DEFINITION - List of services participating in this BPEL process
The default output of the BPEL designer uses strings as input and
output to the BPEL Process. But you can define or import any XML
Schema type and us them as part of the message types.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<types>
<schema attributeFormDefault="unqualified"
elementFormDefault="qualified"
targetNamespace="http://async.com"
xmlns="http://www.w3.org/2001/XMLSchema"
>
<element name="AsynchProcessRequest">
<complexType>
<sequence>
<element name="input" type="string" />
<element name="flow_number" type="string"></element>
</sequence>
</complexType>
</element>
<element name="AsynchProcessResponse">
<complexType>
<sequence>
<element name="result" type="string" />
<element name="flow_number" type="string"></element>
</sequence>
</complexType>
</element>
</schema>
</types>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MESSAGE TYPE DEFINITION - Definition of the message types used as
part of the port type defintions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<message name="AsynchProcessRequestMessage">
<part name="payload" element="tns:AsynchProcessRequest"/>
</message>
<message name="AsynchProcessResponseMessage">
<part name="payload" element="tns:AsynchProcessResponse"/>
</message>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PORT TYPE DEFINITION - A port type groups a set of operations into
a logical service unit.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- portType implemented by the AsynchProcess BPEL process -->
<portType name="AsynchProcess">
<operation name="initiate">
<input message="tns:AsynchProcessRequestMessage"/>
</operation>
</portType>
<!-- portType implemented by the requester of AsynchProcess BPEL process
for asynchronous callback purposes
-->
<portType name="AsynchProcessCallback">
<operation name="onResult">
<input message="tns:AsynchProcessResponseMessage"/>
</operation>
</portType>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PARTNER LINK TYPE DEFINITION
the AsynchProcess partnerLinkType binds the provider and
requester portType into an asynchronous conversation.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<plnk:partnerLinkType name="AsynchProcess">
<plnk:role name="AsynchProcessProvider" portType="tns:AsynchProcess"/>
<plnk:role name="AsynchProcessRequester" portType="tns:AsynchProcessCallback"/>
</plnk:partnerLinkType>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BINDING DEFINITION - Defines the message format and protocol details
for a web service.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<binding name="AsynchProcessBinding" type="tns:AsynchProcess">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="initiate">
<soap:operation
soapAction="http://async.com/initiate"/>
<input>
<soap:body use="literal"/>
</input>
</operation>
</binding>
<binding name="AsynchProcessCallbackBinding" type="tns:AsynchProcessCallback">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="onResult">
<soap:operation
soapAction="http://async.com/onResult"/>
<input>
<soap:body use="literal"/>
</input>
</operation>
</binding>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SERVICE DEFINITION - A service groups a set of ports into
a service unit.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<service name="AsynchProcessService">
<port name="AsynchProcessPort" binding="tns:AsynchProcessBinding">
<soap:address location="http://localhost:8080/ode/processes/AsynchProcess"/>
</port>
</service>
<service name="AsynchProcessServiceCallback">
<port name="AsynchProcessPortCallbackPort" binding="tns:AsynchProcessCallbackBinding">
<soap:address location="http://localhost:8080/ode/processes/AsynchProcessCallback"/>
</port>
</service>
</definitions>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment