The notifications operations are
* subscribe,
* unsubscribe.
They correspond to WS-Notification operations definition.
The subscription mechanism launches, according to filters defined in the subscribe request, notifications intents adding on workflow nodes. Filters are:
* The ServiceEndpoint exposed by the workflow (BPEL process). A list of names can be set and will be involved in notification.
* The topic (QName) that select in a workflow, onto which nodes (SCA components) will be positioned notification intents.
The subscribe request also contains informations on the consumer address, in order for the producer (EasyVIPER) to know where to send potential notifications. This information is to set in the {{ConsumerReference}} tag.
Here is an example of subscription request:
{code:xml|width=800}
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:b="http://docs.oasis-open.org/wsn/b-2"
xmlns:add="http://www.w3.org/2005/08/addressing">
<soapenv:Header/>
<soapenv:Body>
<wsn:Subscribe xmlns:wsn="http://docs.oasis-open.org/wsn/b-2"
xmlns:add="http://www.w3.org/2005/08/addressing"
targetnamespace="http://docs.oasis-open.org/wsn/b-2">
<wsn:ConsumerReference xmlns:wsn="http://docs.oasis-open.org/wsn/b-2"
xmlns:add="http://www.w3.org/2005/08/addressing">
<add:Address>
{http://test.com}notifConsumerService::NotificationConsumerEndpoint
</add:Address>
</wsn:ConsumerReference>
<wsn:Filter>
<wsn:TopicExpression Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116"
xmlns:vipertopic="http://ebmwebsourcing.com/easyviper/topic">
vipertopic:ActivityChanged
</wsn:TopicExpression>
<wsn:MessageContent Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116">
<wsnebm:NotifyContent
xmlns:wsnebm="http://www.ebmwebsourcing.com/WS-BaseNotification/NotifyContent"
processType="1">
<wsnebm:params>
<wsnebm:param>{http://ebmwebsourcing.com/sample}process::processEndpoint</wsnebm:param>
</wsnebm:params>
</wsnebm:NotifyContent>
</wsn:MessageContent>
</wsn:Filter>
</wsn:Subscribe>
</soapenv:Body>
</soapenv:Envelope>
{code}
In this example, the consumer address is the NotificationConsumerEndpoint ServiceEndpoint.
The subscriber wants to launch notifications reception about {{ActivityChanged}} topic for the workflow exposing the processEndpoint workflow.
To Subscribe response will be as the following message:
{code:xml|width=800}
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<wsnt:SubscribeResponse xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2">
<wsnt:SubscriptionReference>
<wsa:Address xmlns:wsa="http://www.w3.org/2005/08/addressing">
{http://test.com}testNotificationConsumerService::testNotificationConsumerEndpoint
</wsa:Address>
<wsa:ReferenceParameters xmlns:wsa="http://www.w3.org/2005/08/addressing">
<ebm:SOAParameter xmlns:ebm="http://www.ebmwebsourcing.com/wsnotification/specificTypes">
<ebm:InterfaceName xmlns="http://www.ebmwebsourcing.com/default">SubscriptionManager</ebm:InterfaceName>
<ebm:ServiceName xmlns="http://www.ebmwebsourcing.com/default">SubscriptionManagerService</ebm:ServiceName>
<ebm:Endpoint>[http://www.ebmwebsourcing.com/subscriptionManager/default]</ebm:Endpoint>
</ebm:SOAParameter>
<ebm:ResourceUuidList xmlns:ebm="http://www.ebmwebsourcing.com/wsnotification/specificTypes">
<ebm:Uuid>f95192f9-bc60-4318-9ae1-25bb03dfe8b2</ebm:Uuid>
</ebm:ResourceUuidList>
</wsa:ReferenceParameters>
</wsnt:SubscriptionReference>
<wsnt:TerminationTime xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
</wsnt:SubscribeResponse>
</soapenv:Body>
</soapenv:Envelope>
{code}
The Uuid {{f95192f9-bc60-4318-9ae1-25bb03dfe8b2}} will be used when invoking the un-subscription.
Here is an example of unsubscribe request:
{code:xml}
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:b="http://docs.oasis-open.org/wsn/b-2">
<soapenv:Header/>
<soapenv:Body>
<b:Unsubscribe>
<ebm:ResourceUuidList xmlns:ebm="http://www.ebmwebsourcing.com/wsnotification/specificTypes">
<ebm:Uuid>f95192f9-bc60-4318-9ae1-25bb03dfe8b2</ebm:Uuid>
</ebm:ResourceUuidList>
</b:Unsubscribe>
</soapenv:Body>
</soapenv:Envelope>
{code}