
h2. Requirements
Basic WS-Notification usecases require that you download and deploy additionnal components :
* *petals-se-WsnConsumer* : service engine component that acts as a Notification Consumer. As soon as its related service assembly is deployed and started, it sends a "Subscribe" request to the Broker (the petas-se-notification that must have been previously deployed). An "unsusbcribe" request is sent when its service assembly is stopped.
* *petals-se-WsnProducer* : service engine component that acts as a Notification Producer. As soon as its related service assembly is deployed and started, it sends a "RegisterPublisher" request to the Broker (the petals-se-notification that must have been previously deployed). An "DestroyRegistration" request is sent when its service assembly is stopped. When the component is registred, it can recieve "Subscribe" request from the "Broker" as described in the "demand-based" publishing pattern (see page 13/43 of the "WS-Brokerednotification" specification)
* *petals-se-rmi* : service engine component use to send notification requests from The webconsole (test page). This component is only required if you expect to test directly the petals-se-notification from the Petals ESB webconsole.These service engines components do not required any specific configuration. You just have to set, in its jbi.xml config file, the parameter "petalsCDK:notifications" to "false" (see the "Petals CDK documentation" for more details)
h2. Service units configuration details
h3. Service unit of petals-se-WsnConsumer service engine component
In the jbi.xml file only one parameter is ws-notification specific : the "ws-cons:requestPayloadPath" field that specifies the Subscribe request payload to use
The content of the "jbi.xml" file :
<\!-\- JBI descriptor for the PEtALS' "petals-se-WsnConsumer" component (WS-Notification).
Originally created for the version 1.0-SNAPSHOT of the component.-->
{code}
<jbi:jbi version="1.0"
xmlns:notification="http://petals.ow2.org/petals-se-notification"
xmlns:wsn-br="http://docs.oasis-open.org/wsn/br-2"
xmlns:wsn-cons="http://petals.ow2.org/petals-se-wsnconsumer"
xmlns:jbi="http://java.sun.com/xml/ns/jbi"
xmlns:petalsCDK="http://petals.ow2.org/components/extensions/version-5"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- Import a Service into PEtALS or Expose a PEtALS Service => use a BC. -->
<jbi:services binding-component="false">
<!-- Expose a PEtALS Service => consumes a Service. -->
<jbi:consumes
interface-name="wsn-br:NotificationBroker"
service-name="notification:NotificationBrokerService">
<!-- endpoint-name="NotificationBrokerServiceEndpoint">-->
<!-- CDK specific fields -->
<petalsCDK:operation>Subscribe</petalsCDK:operation>
<petalsCDK:mep>InOut</petalsCDK:mep>
<!-- Component specific elements -->
<!-- Subscription to process on init : -->
<wsn-cons:requestPayloadPath>subscribe-payload.xml</wsn-cons:requestPayloadPath>
</jbi:consumes>
</jbi:services>
</jbi:jbi>
{code}
A xml representation of a "Subscribe" request payload is provided by the service unit. This file is named
"subscribe-payload.xml"
The content of the "subscribe-payload.xml" file :
{code}
<?xml version="1.0" encoding="UTF-8"?>
<wsnt:Subscribe xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:ebm="http://www.ebmwebsourcing.com/wsnotification/specificTypes"
targetnamespace ="http://docs.oasis-open.org/wsn/b-2">
<wsnt:ConsumerReference>
<wsa:Address>[http://petals.ow2.org/cdk</wsa:Addres>
<wsa:ReferenceParameters>
<ebm:SOAParameter>
<ebm:ServiceName xmlns:ns8="http://www.ebmwebsourcing.com/WS-BaseNotification">ns8:SeWsnConsumerNotificationConsumerService</ebm:ServiceName>
<ebm:InterfaceName xmlns:ns8="http://docs.oasis-open.org/wsn/bw-2">ns8:NotificationConsumer</ebm:InterfaceName>
<ebm:Endpoint>SeWsnConsumerNotificationConsumerEndpoint</ebm:Endpoint>
</ebm:SOAParameter>
</wsa:ReferenceParameters>
</wsnt:ConsumerReference>
<wsnt:Filter>
<wsnt:TopicExpression Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"
xmlns:internalns="http://petals.ow2.org/topicNamespace/sample/Internal">internalns:rootTopic1/childTopic2//*\[@wstop:topic='true'\]</wsnt:TopicExpression>
</wsnt:Filter>
<wsnt:InitialTerminationTime>PT1H</wsnt:InitialTerminationTime>
<wsnt:SubscriptionPolicy/>
</wsnt:Subscribe>
{code}
h3. Service unit of petals-se-WsnProducer service engine component
In the jbi.xml file, two parameters are ws-notification specific : "ws-cons:requestPayloadPath" and fields that specify respectively the Subscribe request payload and the "SupportedTopicsSet.xml" file path to use.
The content of the "jbi.xml" file :
{code}<?xml version="1.0" encoding="UTF-8"?>
<!--JBI descriptor for the PEtALS' "petals-se-WsnProducer" component (WS-Notification).
Originally created for the version 1.0-SNAPSHOT of the component.-->
<jbi:jbi version="1.0"
xmlns:notification="http://petals.ow2.org/petals-se-notification"
xmlns:wsn-br="http://docs.oasis-open.org/wsn/br-2"
xmlns:wsn-prod="http://petals.ow2.org/petals-se-wsnproducer"
xmlns:jbi="http://java.sun.com/xml/ns/jbi"
xmlns:petalsCDK="http://petals.ow2.org/components/extensions/version-5"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- Import a Service into PEtALS or Expose a PEtALS Service => use a BC. -->
<jbi:services binding-component="false">
<!-- Expose a PEtALS Service => consumes a Service. -->
<jbi:consumes
interface-name="wsn-br:NotificationBroker"
service-name="notification:NotificationBrokerService">
<!-- endpoint-name="NotificationBrokerServiceEndpoint">-->
<!-- CDK specific fields -->
<petalsCDK:operation>RegisterPublisher</petalsCDK:operation>
<petalsCDK:mep>InOut</petalsCDK:mep>
<!-- Component specific elements -->
<!-- Subscription to process on init : -->
<wsn-prod:requestPayload>/registerOnStart.xml</wsn-prod:requestPayload>
<wsn-prod:supportedTopicsSet>/SupportedTopicsSet.xml</wsn-prod:supportedTopicsSet>
</jbi:consumes>
</jbi:services>
</jbi:jbi>
{code}
An xml representation of a "RegisterPublisher" request payload is provided by the service unit. This file is named "registerOnStart.xml"
The content of the "registerOnStart.xml" file :
{code}
<?xml version="1.0" encoding="UTF-8"?>
<wsn-br:RegisterPublisher xmlns:wsn-br="http://docs.oasis-open.org/wsn/br-2"
xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:ebm="http://www.ebmwebsourcing.com/wsnotification/specificTypes"
targetnamespace ="http://docs.oasis-open.org/wsn/br-2">
<wsn-br:PublisherReference>
<wsa:Address>[http://petals.ow2.org/ws-addressing/cdk</wsa:Address>];
<wsa:ReferenceParameters>
<ebm:SOAParameter>
<ebm:ServiceName xmlns:ns8="http://www.ebmwebsourcing.com/WS-BaseNotification">ns8:SeWsnProducerNotificationProducerService</ebm:ServiceName>
<ebm:InterfaceName xmlns:ns8="http://docs.oasis-open.org/wsn/bw-2">ns8:NotificationProducer</ebm:InterfaceName>
<ebm:Endpoint>SeWsnProducerNotificationProducerEndpoint</ebm:Endpoint>
</ebm:SOAParameter>
</wsa:ReferenceParameters>
</wsn-br:PublisherReference>
<wsn-br:Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full>
xmlns:internalns="http://petals.ow2.org/topicNamespace/sample/Internal">internalns:rootTopic1//*\[@wstop:topic='true'\]</wsn-br:Topic>
<wsn-br:Demand>true</wsn-br:Demand>
<wsn-br:InitialTerminationTime>2009-12-25T00:00:00.00000Z</wsn-br:InitialTerminationTime>
</wsn-br:RegisterPublisher>
{code}
And an xml representation of topics supported by the producer is also provided by the service unit. This file is "SupportedTopicsSet.xml" and its content :
{code}
<?xml version="1.0" encoding="UTF-8"?>
<wstop:TopicSet xmlns:wstop="http://docs.oasis-open.org/wsn/t-1"
xmlns:internalns="http://petals.ow2.org/topicNamespace/sample/Internal"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<internalns:rootTopic1 wstop:topic="true">
<childTopic1 wstop:topic="true"/>
<childTopic2>
<grandChildTopic21 wstop:topic="true"/>
</childTopic2>
<childTopic3 wstop:topic="true"/>
</internalns:rootTopic1>
</wstop:TopicSet>
{code}
h2. Running WS-Notification usecases
You can test Petals ESB WS-Notification features using the webconsole test section or you can deploy and start petals-se-Wsn Producer/Consumer components that will automatically process Notification Requests("Subscribe" and "RegisterPublisher requests on start;"Notify" request each 30 seconds) when their services assemblies are deployed and started.
h3. using petals-se-WsnProducer, petals-se-WsnConsumer components
Installing petals-se-WsnProducer and petals-se-WsnConsumer components and their service assemblies will automatically launch usecases. No interactions are needed. On Service assembly start, the petals-se-WsnProducer sends a RegisterPublisher request to the petals-se-notification and the petals-se-WsnConsumer do the same by sending a "Subscribe" request to the petals-se-notification component. Its Subscribe request is then forwarded to the petals-se-WsnProducer as soon as the petals-se-WsnProducer is registered.
To run the usecase you must :
* *{_}Step 1{_}* : Start petals ESB platform. Under Unix like env use command
{code}
$./startup.sh -C
{code}
!start_petals_esb.png|align=center|border=1!
picture-3 : Petals ESB started \!
* *{_}Step 2{_}* : Install petals-se-notification component (copy the "petals-se-notification" zip archive in "install/" folder)
!start_petals_se_notif.png|align=cente|border=1!
picture-4 : petals-se-notification started
* *{_}Step 3{_}* : Install petals-se-WsnConsumer component and its service assembly "sa-se-wsnconsumer" (copy related zip archives in "install/" folder). As soon as the service assembly is started, a "Subscribe" request is sent.
!start_notif_consumer.png|align=center|border=1!
picture-5 : petals-se-WsnConsumer started
* *{_}Step 4{_}* : Install petals-se-WsnProducer component and its service assembly "sa-se-wsnproducer" (copy related zip archives in "install/" folder). As soon as the service assembly is started, a "RegisterPublisher" request is sent
!start_notif_consumer.png|align=center|border=1!
picture-6 : petals-se-WsnProducer started
Until the petals-se-WsnConsumer send "Unsubscribe" request, the petals-se-WsnProducer will send a Notification message - Notify request - each 30 second to the petals-se-notification.
!generate_notif.png|align=center|border=1!
picture-7 : petals-se-WsnProducer generate notifications
h3. using "test section" of the webconsole
You can also test Petals ESB features using the webconsole. To do that you must install petals-se-notification and petals-se-rmi component
!rmi_and_notif_on_webconsole.png|align=center|border=1!
picture-8 : webconsole admin show installed components
Than to interact with petals-se-notification component, go to "Test" page :
!webconsole_test_page.png|align=center|border=1!
picture-9 : webconsole test page
Select the endpoint respect to what Request you want to perform :
* *{_}NotificationBrokerServiceEndpoint{_}* : Select this endpoint if you want to perform "RegisterPublisher", "Subscribe" or "Notify" requests.
{note}Set the MEP field value to "InOut" unless if you intend to perforn a Notify request that requires InOnly MEP value. Some Notification Payload templates are provided in the annexes chapeter to complete the content Test field of the Page test. To see Notify result in petals console, you must change petals logger configuration - uncomment the line {logger.Petals.Container.Components.level DEBUG} in loggers.properties file of petals "conf/" folder{note}
* *{_}SubscriptionManagerServiceEndpoint{_}* : Select this endpoint if you want to perform "Unsubscribe" requests.
!webconsole_subscribeResponse.png|align=center|border=1!
picture-10 : subscribeResponse on webconsole
{note}
Use Notification Payload templates provided in the annexes chapeter and the uuid returned in the previous SubscribeResponse message to complete the content Test field of the Page test.{note}
* *{_}PublisherRegistrationManagerServiceEndpoint{_}* : Select this endpoint if you want to perform "DestroyRegistration" requests.
!webconsole_registerPublisherResponse.png|align=center|border=1!
picture-11 : registerPublisherResponse on webconsole
{note}
Use Notification Payload templates provided in the annexes chapeter and the uuid returned in the previous RegisterPublisherResponse message to complete the content Test field of the Page test.{note}
* *{_}SupportedTopicsServiceEndpoint{_}* : Select this endpoint if you want to perform "GetSupportedTopics"
!webconsole_registerPublisherResponse.png|align=center,border=1!
picture-12 : getSupportedTopicsResponse on webconsole
{note}Use an empty root xml node such "<empty/> complete the content Test field of the Page test; and set \"InOut\" MEP value{note}
h1. Annexes
h2. Petals-se-notification associated wsdl file
{code}
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://petals.ow2.org/petals-se-notification" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsn-bw="http://docs.oasis-open.org/wsn/bw-2"
xmlns:wsn-brw="http://docs.oasis-open.org/wsn/brw-2" xmlns:wsn-br="http://docs.oasis-open.org/wsn/br-2"
xmlns:wstop="http://docs.oasis-open.org/wsn/t-1"
name="WS-BrokeredNotification" targetNamespace="http://petals.ow2.org/petals-se-notification">
<!-- ================================================== -->
<!-- ================== imports ======================= -->
<!-- ================================================== -->
<wsdl:import location="brw-2.wsdl"
namespace="http://docs.oasis-open.org/wsn/brw-2" />
<wsdl:import location="bw-2.wsdl" namespace="http://docs.oasis-open.org/wsn/bw-2" />
<!-- ========================================================= -->
<!-- ========= Extended or Custom Types Definitions ========== -->
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- this section describes some custom types used in child -->
<!-- nodes where allowed element type - see associated -->
<!-- XML schema - is "anyType". For example "QueryExpressionType" -->
<!-- defined in the "b-2.xsd" XML schema file - which is a part of -->
<!-- "WS-BaseNotification" specification - allowed "anyType" child -->
<!-- node. In this specific case a simple "string" child -->
<!-- called "xpath" is used. Of course, this choice is not -->
<!-- restrictive and "any other type" child node can still be used instead -->
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- ========================================================= -->
<wsdl:types>
<xsd:schema targetNamespace="http://petals.ow2.org/petals-se-notification">
<xsd:import namespace="http://www.ebmwebsourcing.com/wsnotification/specificTypes"
schemaLocation="specificTypesForNotification.xsd" />
<xsd:import namespace="http://docs.oasis-open.org/wsn/t-1"
schemaLocation="t-1.xsd"/>
<xsd:element name="SupportedTopicsMsgResponse" type="wstop:TopicSetType"/>
</xsd:schema>
</wsdl:types>
<!-- ================================================== -->
<!-- ========= Message part definition ================ -->
<!-- ================================================== -->
<wsdl:message name="EmptyMessage"/>
<wsdl:message name="SupportedTopicsMessage">
<wsdl:part name="body" element="tns:SupportedTopicsMsgResponse"/>
</wsdl:message>
<!-- =============================================== -->
<!-- ========== PortType definition ================ -->
<!-- =============================================== -->
<wsdl:portType name="SupportedTopicsSet">
<wsdl:documentation>
This port type defines a Web service that provides
information about Topics currently supported by the Broker.
</wsdl:documentation>
<wsdl:operation name="GetSupportedTopics">
<wsdl:input message="tns:EmptyMessage"/>
<wsdl:output message="tns:SupportedTopicsMessage"/>
</wsdl:operation>
</wsdl:portType>
<!-- ============================================= -->
<!-- ========== Binding definition =============== -->
<!-- ============================================= -->
<!-- NotificationBroker binding definition -->
<wsdl:binding name="NotificationBrokerBinding" type="wsn-brw:NotificationBroker">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="Notify">
<soap:operation soapAction="http://docs.oasis-open.org/wsn/b-2/Notify" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
</wsdl:operation>
<wsdl:operation name="Subscribe">
<soap:operation
soapAction="http://docs.oasis-open.org/wsn/b-2/Subscribe" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="ResourceUnknownFault">
<soap:fault use="literal" name="ResourceUnknownFault" />
</wsdl:fault>
<wsdl:fault name="InvalidFilterFault">
<soap:fault use="literal" name="InvalidFilterFault" />
</wsdl:fault>
<wsdl:fault name="TopicExpressionDialectUnknownFault">
<soap:fault use="literal" name="TopicExpressionDialectUnknownFault" />
</wsdl:fault>
<wsdl:fault name="InvalidTopicExpressionFault">
<soap:fault use="literal" name="InvalidTopicExpressionFault" />
</wsdl:fault>
<wsdl:fault name="TopicNotSupportedFault">
<soap:fault use="literal" name="TopicNotSupportedFault" />
</wsdl:fault>
<wsdl:fault name="InvalidProducerPropertiesExpressionFault">
<soap:fault use="literal"
name="InvalidProducerPropertiesExpressionFault" />
</wsdl:fault>
<wsdl:fault name="InvalidMessageContentExpressionFault">
<soap:fault use="literal" name="InvalidMessageContentExpressionFault" />
</wsdl:fault>
<wsdl:fault name="UnacceptableInitialTerminationTimeFault">
<soap:fault use="literal" name="UnacceptableInitialTerminationTimeFault" />
</wsdl:fault>
<wsdl:fault name="UnrecognizedPolicyRequestFault">
<soap:fault use="literal" name="UnrecognizedPolicyRequestFault" />
</wsdl:fault>
<wsdl:fault name="UnsupportedPolicyRequestFault">
<soap:fault use="literal" name="UnsupportedPolicyRequestFault" />
</wsdl:fault>
<wsdl:fault name="NotifyMessageNotSupportedFault">
<soap:fault use="literal" name="NotifyMessageNotSupportedFault" />
</wsdl:fault>
<wsdl:fault name="SubscribeCreationFailedFault">
<soap:fault use="literal" name="SubscribeCreationFailedFault" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="GetCurrentMessage">
<soap:operation
soapAction="http://docs.oasis-open.org/wsn/b-2/GetCurrentMessage" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="ResourceUnknownFault">
<soap:fault use="literal" name="ResourceUnknownFault" />
</wsdl:fault>
<wsdl:fault name="TopicExpressionDialectUnknownFault">
<soap:fault use="literal" name="TopicExpressionDialectUnknownFault" />
</wsdl:fault>
<wsdl:fault name="InvalidTopicExpressionFault">
<soap:fault use="literal" name="InvalidTopicExpressionFault" />
</wsdl:fault>
<wsdl:fault name="TopicNotSupportedFault">
<soap:fault use="literal" name="TopicNotSupportedFault" />
</wsdl:fault>
<wsdl:fault name="NoCurrentMessageOnTopicFault">
<soap:fault use="literal" name="NoCurrentMessageOnTopicFault" />
</wsdl:fault>
<wsdl:fault name="MultipleTopicsSpecifiedFault">
<soap:fault use="literal" name="MultipleTopicsSpecifiedFault" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="RegisterPublisher">
<soap:operation
soapAction="http://docs.oasis-open.org/wsn/br-2/RegisterPublisher" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="ResourceUnknownFault">
<soap:fault use="literal" name="ResourceUnknownFault" />
</wsdl:fault>
<wsdl:fault name="InvalidTopicExpressionFault">
<soap:fault use="literal" name="InvalidTopicExpressionFault" />
</wsdl:fault>
<wsdl:fault name="TopicNotSupportedFault">
<soap:fault use="literal" name="TopicNotSupportedFault" />
</wsdl:fault>
<wsdl:fault name="PublisherRegistrationRejectedFault">
<soap:fault use="literal" name="PublisherRegistrationRejectedFault" />
</wsdl:fault>
<wsdl:fault name="PublisherRegistrationFailedFault">
<soap:fault use="literal" name="PublisherRegistrationFailedFault" />
</wsdl:fault>
<wsdl:fault name="UnacceptableInitialTerminationTimeFault">
<soap:fault use="literal" name="UnacceptableInitialTerminationTimeFault" />
</wsdl:fault>
<wsdl:operation>
</wsdl:binding>
<!-- PublisherRegistrationManager binding definition -->
<wsdl:binding name="PublisherRegistrationManagerBinding" type="wsn-brw:PublisherRegistrationManager">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="DestroyRegistration">
<soap:operation
soapAction="http://docs.oasis-open.org/wsn/br-2/DestroyRegistration" />
<wsdl:input name="DestroyRegistrationRequest">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="DestroyRegistrationResponse">
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="ResourceUnknownFault">
<soap:fault use="literal" name="ResourceUnknownFault" />
</wsdl:fault>
<wsdl:fault name="ResourceNotDestroyedFault">
<soap:fault use="literal" name="ResourceNotDestroyedFault" />
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<!-- SubscriptionManager binding definition -->
<wsdl:binding name="SubscriptionManagerBinding" type="wsn-bw:SubscriptionManager">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="Renew">
<soap:operation soapAction="http://docs.oasis-open.org/wsn/b-2/Renew" />
<wsdl:input name="RenewRequest">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="RenewResponse">
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="ResourceUnknownFault">
<soap:fault use="literal" name="ResourceUnknownFault" />
</wsdl:fault>
<wsdl:fault name="UnacceptableTerminationTimeFault">
<soap:fault use="literal" name="UnacceptableTerminationTimeFault" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="Unsubscribe">
<soap:operation
soapAction="http://docs.oasis-open.org/wsn/b-2/Unsubscribe" />
<wsdl:input name="UnsubscribeRequest">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="UnsubscribeResponse">
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="ResourceUnknownFault">
<soap:fault use="literal" name="ResourceUnknownFault" />
</wsdl:fault>
<wsdl:fault name="UnableToDestroySubscriptionFault">
<soap:fault use="literal" name="UnableToDestroySubscriptionFault" />
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<!-- SupportedTopicsSet portType Service binding definition -->
<wsdl:binding name="SupportedTopicsSetBinding"
type="tns:SupportedTopicsSet">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="GetSupportedTopics">
<soap:operation
soapAction="http://www.ebmwebsourcing.com/WS-BrokeredNotification/GetSupportedTopics" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<!-- ============================================= -->
<!-- =========== Service part definition ========= -->
<!-- ============================================= -->
<wsdl:service name="NotificationBrokerService">
<wsdl:port name="NotificationBrokerServiceEndpoint" binding="tns:NotificationBrokerBinding">
<soap:address location="petals:autogenerate" />
</wsdl:port>
</wsdl:service>
<wsdl:service name="PublisherRegistrationManagerService">
<wsdl:port name="PublisherRegistrationManagerServiceEndpoint" binding="tns:PublisherRegistrationManagerBinding">
<soap:address location="petals:autogenerate" />
</wsdl:port>
</wsdl:service>
<wsdl:service name="SubscriptionManagerService">
<wsdl:port name="SubscriptionManagerServiceEndpoint" binding="tns:SubscriptionManagerBinding">
<soap:address location="petals:autogenerate" />
</wsdl:port>
</wsdl:service>
<wsdl:service name="SupportedTopicsService">
<wsdl:port name="SupportedTopicsServiceEndpoint" binding="tns:SupportedTopicsSetBinding">
<soap:address location="petals:autogenerate" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>{code}
h2. Ws-Notification requests templates
Subscribe Request Payload template :