AbstractThis component implements "WS-Notification", as described in the set of OASIS Specifications named "Ws-BrokeredNotification". Services provided by the petals-se-notification component are mainly those described in specification. It means that the petals-se-notification acts a broker - as described FeaturesThe "WS-Notification" features currently available are :
The "WS-Notification" specification does not fully describe all mechanism infered by the ws-notificatio paradigm and lets us some several implmentation choices respect to concernes like "how notification message are "linked" to topics or "how a Broker can know who ar the producer". This last point - aka "publishing" pattern in the "WS-BrokeredNotification" (page 12/43) - needs some words about our implementation of the in petals ESB. In our implementation choice of the "demand-base" pattern, all subscribe requests send to the broker - the petals-se-notification component -, from consumers, will be forwarded by the broker to known producers registered on related topics. That arbitrary choice have been made in order to give to consumers a means to "drive" the "eventing communication" by choising the format of the notification message they want to receive. Component ConfigurationThe component configuration is mainly defined by its "supported topics set". The "supported topics set" is defined in an xml file whose associated xml schema is the "TopicSet" xml type defined in "WS-Topic" Specification.
An exemple of "supported topics set" xml file is provided below : <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:externalns="http://petals.ow2.org/topicNamespace/sample/External" 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> <externalns:rootTopic2> <childTopic1> <grandChildTopic11 wstop:topic="true"> <grandGrandChildTopic111 wstop:topic="true/> <grandGrandChildTopic112 wstop:topic="true/> </grandChildTopic11> </childTopic1> <childTopic2 wstop:topic="true"> <grandChildTopic21 wstop:topic="true"/> <grandChildTopic22 wstop:topic="true"/> </childTopic2> </externalns:rootTopic2> <wstop:TopicSet> A default "supported topics set" xml file is defined and embedded in the component. This file will be used to configure topics supported by the petals-se-component unless you define your own one and set the System Environment variable "SUPPORTED_TOPICS_SET" to [path_to_supported_topics_set_xml_file]. On "Unix like" operating system, in the console window from where you intend to launch petals ESB and before starting it, do something like : "export SUPPORTED_TOPICS_SET=path_to_your_supported_topic_set_xml_file"
Unable to render {include} Couldn't find a page to include called: 0 CDK Component Configuration Table
Component installationActually, the component petals-se-notification does not requiered any service units to be configured. The only rule is that it must be deployed and started before any other component that intends to use petals ESB WS-Notification features. Installation process using Petals ESB WebconsoleIf you use to run the webconsole, you must know how to do to install the service engine component. If not, well have a look to the petals ESB Webconsole documentation and simply follow the instructions. The petals-se-notification component does not require any specific actions. You just have to install it before any other component that would use Ws-notification features.
"By hand" installation processIf you do not want to use the webconsole, you can install a petals ESB component, in "command line mode". To do tahat you simply have to copy and paste the "petals-se-notification-X.X.zip" zip archive of the component in the sub-folder of your petals ESB platform called "install/". Then, few seconds later, the embedded petals ESB autoloader mechanism will deploy and start the component. This mechanism is enabled in the default configuration of the bus.
Petals ESB "WS-Notification" usecasesDesciptionA demonstation of Petals ESB feature is provided through basic use-cases Basic WS-Notification usecases consist on sending "notification" requests - Subscribe, Unsubscribe, RegisterPublisher, DestroyRegistration or Notify requests - to the petals-se-notification component from other components that acts as Notification consumer or Notification Producer. Two components named petals-se-Wsnconsumer and petals-se-WsnProducer are available on Petals website under the Download/tool section
RequirementsBasic WS-Notification usecases require that you download and deploy additionnal components :
Service units configuration detailsService unit of petals-se-WsnConsumer service engine componentIn the jbi.xml file only one parameter is ws-notification specific : the "ws-cons:requestPayloadPath" field that specifies the Subscribe request payload to use <!-- JBI descriptor for the PEtALS' "petals-se-WsnConsumer" component (WS-Notification). <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> A xml representation of a "Subscribe" request payload is provided by the service unit. This file is named The content of the "subscribe-payload.xml" file : <?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> Service unit of petals-se-WsnProducer service engine componentIn 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 : <?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> 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 : <?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> 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 : <?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> Running WS-Notification usecasesYou 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. using petals-se-Wsn
componentsInstalling petals-se-Wsn |
| 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
Unknown macro: {logger.Petals.Container.Components.level DEBUG}
in loggers.properties file of petals "conf/" folder |
- SubscriptionManagerServiceEndpoint : Select this endpoint if you want to perform "Unsubscribe" requests.

picture-10 : subscribeResponse on webconsole
| 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. |
- PublisherRegistrationManagerServiceEndpoint : Select this endpoint if you want to perform "DestroyRegistration" requests.

picture-11 : registerPublisherResponse on webconsole
| 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. |
- SupportedTopicsServiceEndpoint : Select this endpoint if you want to perform "GetSupportedTopics"

picture-12 : getSupportedTopicsResponse on webconsole
Use an empty root xml node such "<empty/> complete the content Test field of the Page test; and set \"InOut\" MEP value
Annexes
Petals-se-notification associated wsdl file
Subscribe Request Payload template :
<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 node -->
<!-- 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>
<!-- ============================================= --v
<!-- =========== 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></screen></para>
</section>
<section id="filet-request-templates">
<title>Ws-Notification requests templates</title>
<para>Subscribe Request Payload template : <screen><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:Address>
<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></screen></para>
<para>Unsubscribe Request Payload template : <screen><wsnt:Unsubscribe 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">
<wsa:EndpointReference>
<wsa:Address>my_mail@ebmwebsourcing.com</wsa:Address>
</wsa:EndpointReference>
<ebm:ResourceUuidList>
<ebm:Uuid>[Copy_and_Paste_Uuid_value_returned_in_SubscribeResponse]</ebm:Uuid>
</ebm:ResourceUuidList>
</wsnt:Unsubscribe></screen></para>
<para>RegisterPublisher Request Payload template : <screen><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></screen></para>
<para>DestroyRegistration Request Payload template : <screen><wsn-br:DestroyRegistration
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">
<ebm:ResourceUuidList>
<ebm:Uuid>[Copy_and_Paste_Uuid_value_returned_in_RegisterPublisherResponse]</ebm:Uuid>
</ebm:ResourceUuidList>
</wsn-br:DestroyRegistration></screen></para>
<para>Notify Request Payload template : <screen><wsnt:Notify 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:NotificationMessage>
<wsnt:SubscriptionReference>
<wsa:Address>http://petals.ow2.org/cdk</wsa:Address>
<wsa:ReferenceParameters>
<ebm:SOAParameter>
<ebm:ServiceName xmlns:ns8="http://petals.ow2.org/petals-se-notification">ns8:SubscriptionManagerService</ebm:ServiceName>
<ebm:InterfaceName xmlns:ns8="http://docs.oasis-open.org/wsn/bw-2">ns8:SubscriptionManager</ebm:InterfaceName>
<ebm:Endpoint>SubscriptionManagerEndpoint</ebm:Endpoint>
</ebm:SOAParameter>
<ebm:ResourceUuidList>
<ebm:Uuid>f6324db3-486e-46b0-a6aa-eecc76a92eb1</ebm:Uuid>
</ebm:ResourceUuidList>
</wsa:ReferenceParameters>
</wsnt:SubscriptionReference>
<wsnt:Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete"
xmlns:internalns="http://petals.ow2.org/topicNamespace/sample/Internal">internalns:rootTopic1/childTopic2/grandChildTopic21</wsnt:Topic>
<wsnt:ProducerReference>
<wsa:Address>http://petals.ow2.org/ws-addressing/default</wsa:Address>
<wsa:ReferenceParameters>
<ebm:SOAParameter>
<ebm:ServiceName xmlns:ns8="http://petals.ow2.org/petals-se-notification">ns8:NotificationProducerService</ebm:ServiceName>
<ebm:InterfaceName xmlns:ns8="http://docs.oasis-open.org/wsn/bw-2">ns8:NotificationProducer</ebm:InterfaceName>
<ebm:Endpoint>NotificationProducerEndpoint</ebm:Endpoint>
</ebm:SOAParameter>
</wsa:ReferenceParameters>
</wsnt:ProducerReference>
<wsnt:Message>
<npex:NotifyContent xmlns:npex="http://petals.ow2.org/aNamespaceSample">This is the content - payload - of the notification</npex:NotifyContent>
</wsnt:Message>
</wsnt:NotificationMessage>
</wsnt:Notify></screen></para>
</section>
</chapter>
</book>
- Abstract
- Features
- Component Configuration
- Component installation
- Petals ESB "WS-Notification" usecases
- Desciption
- Requirements
- Service units configuration details
- Service unit of petals-se-WsnConsumer service engine component
- Service unit of petals-se-WsnProducer service engine component
- Running WS-Notification usecases
- using petals-se-WsnUnknown macro: {Producer/Consumer}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.
componentsInstalling petals-se-Wsn
- using "test section" of the webconsole
- Annexes







