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:
|
Table of contents
Referral Developer(s) Thierry De Contributors
No contributors found for: authors on selected page(s)
|
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.
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:
|
- | 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.
"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.
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</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</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 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
- Step 2: Install petals-se-notification component (copy the "petals-se-notification" zip archive in "install/" folder)
- 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.
- 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
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.
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:
Then to interact with petals-se-notification component, go to "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.
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 webconsoleUse 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</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>
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" 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>
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</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>
Comments (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?