Petals-SE-Notification

Abstract

This 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
in "WS-BorkeredNotification" specification.It receives "Subscribe" requests respect to defined topics from Notification Consumer and it receives also "RegisterPublisher" requests on some topics from notification Publisher/Producer. Then it receives some "Notify" request from registred Notification producers and forwards these requests to Notification consumers that have previously subscribed on related topics.

Features

The "WS-Notification" features currently available are:

  • Processing of "RegisterPublisher" requests (as described in "WS-BrokeredNotification")
  • Processing of "DestroyRegistration" requests (as described in "WS-BrokeredNotification")
  • Processing of "Subscribe" requests (as described in "WS-BaseNotification")
  • Processing of "Unsubscribe" requests (as described in "WS-BaseNotification")
  • Processing of "Notify" requests (as described in "WS-BaseNotification")
  • Processing of "Renew" requests (as described in "WS-BaseNotification" - Not fully implemented)
  • Processing of "GetCurrentMessage" requests (as described in "WS-BaseNotification")
  • Processing of "GetSupportedTopics" requests. This operation is not described in WS-Notification specification even if these specifications introduce the need for a service that provides a full description of Topics currently supported by a "WS-Notification producer".
Referral Developer(s)

Thierry De

Contributors
No contributors found for: authors on selected page(s)
Referral Developper: Thierry Dejean

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 Configuration

The 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.

keep in mind that topics name and topics namespace are buisness logic dependent

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 [petalsesb: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"

   
  As shortly described in the previous chapter, an operation called "getSupportedTopics" has been implmented to know which topics any "WS-Notification" concumer can subscribe on and/or "WS-Notification producer" can register to. Have a look the component.wsdl file provided in the annexes of this document for more details.

Configuration of the component (CDK)

Parameter Description Default Required Required
acceptor-pool-size The size of the thread pool used to accept Message Exchanges from the NMR. Once a message is accepted, its processing is delegated to the processor pool thread. 3 Yes Runtime
processor-pool-size The size of the thread pool used to process Message Exchanges. Once a message is accepted, its processing is delegated to one of the thread of this pool. 10 Yes Runtime
processor-max-pool-size The maximum size of the thread pool used to process Message Exchanges. The difference between this size and the processorpool-size represents the dynamic threads that can be created and destroyed during overhead processing time. 50 No Runtime
properties-file Name of the file containing properties used as reference by other parameters. Parameters reference the property name in the following pattern ${myPropertyName}. At runtime, the expression is replaced by the value of the property.
The value of this parameter is:
  • an URL
  • a file relative to the PEtALS installation path
  • an empty value to stipulate a non-using file
- No Installation

Component installation

Actually, 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 Webconsole

If 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.

1. Webconsole Component administration page of Petals ESB

"By hand" installation process

If 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.

2. Petals ESB folder details
Note: To remove "by hand" an installed petals ESB component and/or its service assembly, you simply have to remove the related archive from the "Installed/" folder

Petals ESB "WS-Notification" usecases

Desciption

A 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

Note: these two components are only "template component" and can help you to implement your own ones.

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)

Service units configuration details

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.-->

<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
"subscribe-payload.xml"

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&lt;/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 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:

<?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&lt;/wsa:Address&gt];
  <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 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.

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
    $./startup.sh -C
    

picture-3: Petals ESB started !
  • Step 2: Install petals-se-notification component (copy the "petals-se-notification" zip archive in "install/" folder)

4. Component 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.

5. Component 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

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.

7. petals-se-WsnProducer generate notifications

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:

8. Web console admin shows installed components

Then to interact with petals-se-notification component, go to "Test" page:

9. Web console testing 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.
    Set the MEP field value to "InOut", unless you intend to perforn a Notify request that requires InOnly MEP value. Some Notification Payload templates are provided in the annexes chapter 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
  • SubscriptionManagerServiceEndpoint: Select this endpoint if you want to perform "Unsubscribe" requests.
    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.
    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"
    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

<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>

Ws-Notification requests templates

  Subscribe Request Payload template:

<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&lt;/wsa:Address&gt];
  <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>

Unsubscribe Request Payload template:

<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>

RegisterPublisher Request Payload template:

<wsn-br:RegisterPublisher
 xmlns:wsn-br="http://docs.oasis-open.org/wsn/br-2" &nbsp;
 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&lt;/wsa:Address&gt];
  <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>

DestroyRegistration Request Payload template:

<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>

 Notify Request Payload template:

<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&lt;/wsa:Address&gt];
       <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&lt;/wsa:Address&gt];
    <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>

Labels

components-se-family components-se-family Delete
component component Delete
se se Delete
notifications notifications Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Oct 25, 2010

    Anonymous says:

    could you tell me where I can find the petals-se-WsnConsumer and petals-se-WsnPr...

    could you tell me where I can find the petals-se-WsnConsumer and petals-se-WsnProducer?