|
Key
This line was removed.
This word was removed. This word was added.
This line was added.
|
Changes (134)
View Page History{section}
{column}
[petals-se-notification wsdl|^component.wsdl] {column}
h1. Abstract
h1. {color:#000000}Features{color} Features
The "WS-Notification" features currently available are :
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.
{note}keep in mind that topics name and topics namespace are buisness logic dependent{note}
{note}
An exemple of "supported topics set" xml file is provided below :
</externalns:rootTopic2>
<wstop:TopicSet> {code}
<wstop:TopicSet> {code}
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 :
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 :
{code}"export SUPPORTED_TOPICS_SET=path_to_your_supported_topic_set_xml_file"{code}) SUPPORTED_TOPICS_SET=path_to_your_supported_topic_set_xml_file"{code}
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.
<xi:include href="../../../../../../../petals-doc/src/doc/docbook/doc-en/component-framework-tables.xml"
xpointer="element(/1/2/2)"
xmlns:xi="http://www.w3.org/2001/XInclude" />
xpointer="element(/1/2/2)"
xmlns:xi="http://www.w3.org/2001/XInclude" />
{include:0 CDK Component Configuration Table}
<xi:include href="../../../../../../../petals-doc/src/doc/docbook/doc-en/component-framework-tables.xml"
xpointer="element(/1/2/8)"
xmlns:xi="http://www.w3.org/2001/XInclude" />
xpointer="element(/1/2/8)"
xmlns:xi="http://www.w3.org/2001/XInclude" />
h1. Component installation
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.
!install_component_webconsole.png|align=center|border=1,width=1051,height=509!
picture-1 : Webconsole Component administration page of Petals ESB
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.
!petals_folder_details.png|align=center|border=1!
picture-2 : Petals ESB folder details
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|http://petals.ow2.org/download-tools.html]
{note}Note : these two components are only "template component" and can help you to implement your own ones.{note}
h2. Requirements
h2. Service units configuration details
h3. Service unit of petals-se-WsnConsumer service engine component
In the jbi.xml file only one parameter is ws-notification specific : the "ws-cons:requestPayloadPath" field that specifies the Subscribe request payload to use
The content of the "jbi.xml" file :
<screen><?xml version="1.0" encoding="UTF-8"?>
<\!-\-
<\!-\-
<\!-\- JBI descriptor for the PEtALS' "petals-se-WsnConsumer" component (WS-Notification).
Originally created for the version 1.0-SNAPSHOT of the component.-->
-->
{code}
</jbi:services>
</jbi:jbi>
</jbi:jbi>
{code}
<para>A A xml representation of a "Subscribe" request payload is provided by the service unit. This file is named
provided by the service unit. This file is named
<filename>subscribe-payload.xml</filename></para>
<filename>subscribe-payload.xml</filename></para>
"subscribe-payload.xml"
<para>The content of the <filename>subscribe-payload.xml</filename>
file : <screen><?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: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>
</section>
file : <screen><?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: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>
</section>
The content of the "subscribe-payload.xml" file :
<section id="filet-su-wsnproducer">
<title>Service unit of petals-se-WsnProducer service engine
component</title>
<title>Service unit of petals-se-WsnProducer service engine
component</title>
{code}
<?xml version="1.0" encoding="UTF-8"?>
<wsnt:Subscribe xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:ebm="http://www.ebmwebsourcing.com/wsnotification/specificTypes"
targetnamespace ="http://docs.oasis-open.org/wsn/b-2">
<wsnt:ConsumerReference>
<wsa:Address>[http://petals.ow2.org/cdk</wsa:Addres>
<wsa:ReferenceParameters>
<ebm:SOAParameter>
<ebm:ServiceName xmlns:ns8="http://www.ebmwebsourcing.com/WS-BaseNotification">ns8:SeWsnConsumerNotificationConsumerService</ebm:ServiceName>
<ebm:InterfaceName xmlns:ns8="http://docs.oasis-open.org/wsn/bw-2">ns8:NotificationConsumer</ebm:InterfaceName>
<ebm:Endpoint>SeWsnConsumerNotificationConsumerEndpoint</ebm:Endpoint>
</ebm:SOAParameter>
</wsa:ReferenceParameters>
</wsnt:ConsumerReference>
<wsnt:Filter>
<wsnt:TopicExpression Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"
xmlns:internalns="http://petals.ow2.org/topicNamespace/sample/Internal">internalns:rootTopic1/childTopic2//*\[@wstop:topic='true'\]</wsnt:TopicExpression>
</wsnt:Filter>
<wsnt:InitialTerminationTime>PT1H</wsnt:InitialTerminationTime>
<wsnt:SubscriptionPolicy/>
</wsnt:Subscribe>
{code}
<?xml version="1.0" encoding="UTF-8"?>
<wsnt:Subscribe xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:ebm="http://www.ebmwebsourcing.com/wsnotification/specificTypes"
targetnamespace ="http://docs.oasis-open.org/wsn/b-2">
<wsnt:ConsumerReference>
<wsa:Address>[http://petals.ow2.org/cdk</wsa:Addres>
<wsa:ReferenceParameters>
<ebm:SOAParameter>
<ebm:ServiceName xmlns:ns8="http://www.ebmwebsourcing.com/WS-BaseNotification">ns8:SeWsnConsumerNotificationConsumerService</ebm:ServiceName>
<ebm:InterfaceName xmlns:ns8="http://docs.oasis-open.org/wsn/bw-2">ns8:NotificationConsumer</ebm:InterfaceName>
<ebm:Endpoint>SeWsnConsumerNotificationConsumerEndpoint</ebm:Endpoint>
</ebm:SOAParameter>
</wsa:ReferenceParameters>
</wsnt:ConsumerReference>
<wsnt:Filter>
<wsnt:TopicExpression Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"
xmlns:internalns="http://petals.ow2.org/topicNamespace/sample/Internal">internalns:rootTopic1/childTopic2//*\[@wstop:topic='true'\]</wsnt:TopicExpression>
</wsnt:Filter>
<wsnt:InitialTerminationTime>PT1H</wsnt:InitialTerminationTime>
<wsnt:SubscriptionPolicy/>
</wsnt:Subscribe>
{code}
<para>In the jbi.xml file, two parameters are ws-notification specific
: <property>ws-cons:requestPayloadPath</property> and fields that
specify respectively the Subscribe request payload and the
<filename>SupportedTopicsSet.xml</filename> file pathto use.</para>
: <property>ws-cons:requestPayloadPath</property> and fields that
specify respectively the Subscribe request payload and the
<filename>SupportedTopicsSet.xml</filename> file pathto use.</para>
h3. Service unit of petals-se-WsnProducer service engine component
<para>The content of the <filename>jbi.xml</filename> file : <screen><?xml version="1.0" encoding="UTF-8"?>
In the jbi.xml file, two parameters are ws-notification specific : "ws-cons:requestPayloadPath" and fields that specify respectively the Subscribe request payload and the "SupportedTopicsSet.xml" file path to use.
<\!-\-
The content of the "jbi.xml" file :
{code}<?xml version="1.0" encoding="UTF-8"?>
{code}<?xml version="1.0" encoding="UTF-8"?>
<!--JBI descriptor for the PEtALS' "petals-se-WsnProducer" component (WS-Notification).
Originally created for the version 1.0-SNAPSHOT of the component.-->
-->
<jbi:jbi version="1.0"
xmlns:notification="http://petals.ow2.org/petals-se-notification"
xmlns:wsn-br="http://docs.oasis-open.org/wsn/br-2"
xmlns:wsn-prod="http://petals.ow2.org/petals-se-wsnproducer"
xmlns:jbi="http://java.sun.com/xml/ns/jbi"
xmlns:petalsCDK="http://petals.ow2.org/components/extensions/version-5"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<\!-\- Import a Service into PEtALS or Expose a PEtALS Service => use a BC. -->
<jbi:services binding-component="false">
<\!\-- Expose a PEtALS Service => consumes a Service. -->
<jbi:consumes
interface-name="wsn-br:NotificationBroker"
service-name="notification:NotificationBrokerService">
<\!-\- endpoint-name="NotificationBrokerServiceEndpoint">-\->
<\!-\- 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>
<petalsCDK:operation>RegisterPublisher</petalsCDK:operation>
<petalsCDK:mep>InOut</petalsCDK:mep>
<!-- 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>
<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 -->
<!-- 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>
<wsn-prod:supportedTopicsSet>/SupportedTopicsSet.xml</wsn-prod:supportedTopicsSet>
</jbi:consumes>
<wsn-prod:requestPayload>/registerOnStart.xml</wsn-prod:requestPayload>
<wsn-prod:supportedTopicsSet>/SupportedTopicsSet.xml</wsn-prod:supportedTopicsSet>
</jbi:consumes>
</jbi:services>
<wsn-prod:supportedTopicsSet>/SupportedTopicsSet.xml</wsn-prod:supportedTopicsSet>
</jbi:consumes>
</jbi:services>
</jbi:services> </jbi:jbi>
</jbi:jbi></screen>An xml representation of a "RegisterPublisher"
request payload is provided by the service unit. This file is named
"<filename>registerOnStart.xml</filename>"</para>
request payload is provided by the service unit. This file is named
"<filename>registerOnStart.xml</filename>"</para>
{code}
<para>The content of the <filename>registerOnStart.xml</filename> file
: <screen><?xml version="1.0" encoding="UTF-8"?>
: <screen><?xml version="1.0" encoding="UTF-8"?>
An xml representation of a "RegisterPublisher" request payload is provided by the service unit. This file is named "registerOnStart.xml"
<wsn-br:RegisterPublisher
xmlns:wsn-br="http://docs.oasis-open.org/wsn/br-2"
The content of the "registerOnStart.xml" file :
xmlns:wsa="http://www.w3.org/2005/08/addressing" {code}
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>
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>
<?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 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>
{code}
<para>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 :
also provided by the service unit. This file is
"<filename>SupportedTopicsSet.xml</filename>" and its content :
<screen><?xml version="1.0" encoding="UTF-8"?>
"<filename>SupportedTopicsSet.xml</filename>" and its content :
<screen><?xml version="1.0" encoding="UTF-8"?>
{code}
<?xml version="1.0" encoding="UTF-8"?>
<?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>
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>
xmlns:internalns="http://petals.ow2.org/topicNamespace/sample/Internal" </wstop:TopicSet>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> {code}
<internalns:rootTopic1 wstop:topic="true">
<childTopic1 wstop:topic="true"/>
<childTopic2>
<grandChildTopic21 wstop:topic="true"/>
</childTopic2>
<childTopic3 wstop:topic="true"/>
</internalns:rootTopic1>
</wstop:TopicSet> </screen></para>
</section>
</section>
<childTopic1 wstop:topic="true"/>
<childTopic2>
<grandChildTopic21 wstop:topic="true"/>
</childTopic2>
<childTopic3 wstop:topic="true"/>
</internalns:rootTopic1>
</wstop:TopicSet> </screen></para>
</section>
</section>
<section id="filet-Run-usecases">
<title>Running WS-Notification usecases</title>
<title>Running WS-Notification usecases</title>
h2. Running WS-Notification usecases
<para>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.</para>
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.</para>
You can test Petals ESB WS-Notification features using the webconsole test section or you can deploy and start petals-se-Wsn Producer/Consumer components that will automatically process Notification Requests("Subscribe" and "RegisterPublisher requests on start;"Notify" request each 30 seconds) when their services assemblies are deployed and started.
h3. using petals-se-Wsn{Producer/Consumer} componentsInstalling petals-se-Wsn {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.
h3. using petals-se-Wsn{Producer/Consumer} componentsInstalling petals-se-Wsn {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.
<section id="filet-usecase-with-Components">
<title>using petals-se-Wsn{Producer/Consumer} components</title>
<title>using petals-se-Wsn{Producer/Consumer} components</title>
To run the usecase you must :
<para>Installing petals-se-Wsn{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</para>
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</para>
* *{_}Step 1{_}* : Start petals ESB platform. Under Unix like env use command
{code}
$./startup.sh -C
{code}
{code}
$./startup.sh -C
{code}
<para>To run the usecase you must :</para>
!start_petals_esb.png|align=center|border=1!
picture-3 : Petals ESB started \!
picture-3 : Petals ESB started \!
<itemizedlist>
<listitem>
<para><emphasis role="bold">Step 1 </emphasis> : start petals ESB
platform (command "./startup.sh \-C" on Unix like system) <figure>
<title>Petals ESB started</title>
<listitem>
<para><emphasis role="bold">Step 1 </emphasis> : start petals ESB
platform (command "./startup.sh \-C" on Unix like system) <figure>
<title>Petals ESB started</title>
* *{_}Step 2{_}* : Install petals-se-notification component (copy the "petals-se-notification" zip archive in "install/" folder)
<mediaobject>
<imageobject>
<imagedata align="center" contentwidth="60%"
fileref="../../resources/pictures/start_petals_esb.png"
role="" />
</imageobject>
</mediaobject>
</figure></para>
</listitem>
<imageobject>
<imagedata align="center" contentwidth="60%"
fileref="../../resources/pictures/start_petals_esb.png"
role="" />
</imageobject>
</mediaobject>
</figure></para>
</listitem>
!start_petals_se_notif.png|align=cente|border=1!
picture-4 : petals-se-notification started
picture-4 : petals-se-notification started
<listitem>
<para><emphasis role="bold">Step 2 </emphasis> : install
petals-se-notification component (copy the
"petals-se-notification" zip archive in "install/" folder )
<figure>
<title>petals-se-notification started</title>
<para><emphasis role="bold">Step 2 </emphasis> : install
petals-se-notification component (copy the
"petals-se-notification" zip archive in "install/" folder )
<figure>
<title>petals-se-notification started</title>
* *{_}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.
<mediaobject>
<imageobject>
<imagedata align="center" contentwidth="60%"
fileref="../../resources/pictures/start_petals_se_notif.png"
role="" />
</imageobject>
</mediaobject>
</figure></para>
</listitem>
<imageobject>
<imagedata align="center" contentwidth="60%"
fileref="../../resources/pictures/start_petals_se_notif.png"
role="" />
</imageobject>
</mediaobject>
</figure></para>
</listitem>
!start_notif_consumer.png|align=center|border=1!
picture-5 : petals-se-WsnConsumer started
picture-5 : petals-se-WsnConsumer started
<listitem>
<para><emphasis role="bold">Step 3 </emphasis> : install
petals-se-WsnConsumer component and its service assembly
<filename>sa-se-wsnconsumer</filename> (copy related zip archives
in "install/" folder). As soon as the service assembly is started,
a "Subscribe" request is sent <figure>
<title>petals-se-WsnConsumer started</title>
<para><emphasis role="bold">Step 3 </emphasis> : install
petals-se-WsnConsumer component and its service assembly
<filename>sa-se-wsnconsumer</filename> (copy related zip archives
in "install/" folder). As soon as the service assembly is started,
a "Subscribe" request is sent <figure>
<title>petals-se-WsnConsumer started</title>
* *{_}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
<mediaobject>
<imageobject>
<imagedata align="center" contentwidth="60%"
fileref="../../resources/pictures/start_notif_consumer.png"
role="" />
</imageobject>
</mediaobject>
</figure></para>
</listitem>
<imageobject>
<imagedata align="center" contentwidth="60%"
fileref="../../resources/pictures/start_notif_consumer.png"
role="" />
</imageobject>
</mediaobject>
</figure></para>
</listitem>
!start_notif_consumer.png|align=center|border=1!
picture-6 : petals-se-WsnProducer started
picture-6 : petals-se-WsnProducer started
<listitem>
<para><emphasis role="bold">Step 4 </emphasis> : install
petals-se-WsnProducer component and its service assembly
<filename>sa-se-wsnproducer</filename> (copy related zip archives
in "install/" folder). As soon as the service assembly is started,
a "RegisterPublisher" request is sent <figure>
<title>petals-se-WsnProducer started</title>
<para><emphasis role="bold">Step 4 </emphasis> : install
petals-se-WsnProducer component and its service assembly
<filename>sa-se-wsnproducer</filename> (copy related zip archives
in "install/" folder). As soon as the service assembly is started,
a "RegisterPublisher" request is sent <figure>
<title>petals-se-WsnProducer started</title>
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.
<mediaobject>
<imageobject>
<imagedata align="center" contentwidth="60%"
fileref="../../resources/pictures/start_notif_producer.png"
role="" />
</imageobject>
</mediaobject>
</figure></para>
</listitem>
</itemizedlist>
<imageobject>
<imagedata align="center" contentwidth="60%"
fileref="../../resources/pictures/start_notif_producer.png"
role="" />
</imageobject>
</mediaobject>
</figure></para>
</listitem>
</itemizedlist>
!generate_notif.png|align=center|border=1!
picture-7 : petals-se-WsnProducer generate notifications
picture-7 : petals-se-WsnProducer generate notifications
<para>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. <figure>
<title>petals-se-WsnProducer generate notifications</title>
petals-se-WsnProducer will send a Notification message - Notify
request - each 30 second to the petals-se-notification. <figure>
<title>petals-se-WsnProducer generate notifications</title>
h3. using "test section" of the webconsole
<mediaobject>
<imageobject>
<imagedata align="center" contentwidth="60%"
fileref="../../resources/pictures/generate_notif.png"
role="" />
</imageobject>
</mediaobject>
</figure></para>
</section>
<imageobject>
<imagedata align="center" contentwidth="60%"
fileref="../../resources/pictures/generate_notif.png"
role="" />
</imageobject>
</mediaobject>
</figure></para>
</section>
You can also test Petals ESB features using the webconsole. To do that you must install petals-se-notification and petals-se-rmi component
<section id="filet-usecase-with-Webconsole">
<title>using "test section" of the webconsole</title>
<title>using "test section" of the webconsole</title>
!rmi_and_notif_on_webconsole.png|align=center|border=1!
picture-8 : webconsole admin show installed components
picture-8 : webconsole admin show installed components
<para>You can also test Petals ESB features using the webconsole. To
do that you must install petals-se-notification and petals-se-rmi
component <figure>
<title>webconsole admin show installed components</title>
do that you must install petals-se-notification and petals-se-rmi
component <figure>
<title>webconsole admin show installed components</title>
Than to interact with petals-se-notification component, go to "Test" page :
<mediaobject>
<imageobject>
<imagedata align="center" contentwidth="60%"
fileref="../../resources/pictures/rmi_and_notif_on_webconsole.png"
role="" />
</imageobject>
</mediaobject>
</figure></para>
<imageobject>
<imagedata align="center" contentwidth="60%"
fileref="../../resources/pictures/rmi_and_notif_on_webconsole.png"
role="" />
</imageobject>
</mediaobject>
</figure></para>
!webconsole_test_page.png|align=center|border=1!
picture-9 : webconsole test page
picture-9 : webconsole test page
<para>Than to interact with petals-se-notification component, go to
"Test" page : <figure>
<title>webconsole test page</title>
"Test" page : <figure>
<title>webconsole test page</title>
Select the endpoint respect to what Request you want to perform :
<mediaobject>
<imageobject>
<imagedata align="center" contentwidth="60%"
fileref="../../resources/pictures/webconsole_test_page.png"
role="" />
</imageobject>
</mediaobject>
</figure></para>
<imageobject>
<imagedata align="center" contentwidth="60%"
fileref="../../resources/pictures/webconsole_test_page.png"
role="" />
</imageobject>
</mediaobject>
</figure></para>
* *{_}NotificationBrokerServiceEndpoint{_}* : Select this endpoint if you want to perform "RegisterPublisher", "Subscribe" or "Notify" requests.
{note}Set the MEP field value to "InOut" unless if you intend to perforn a Notify request that requires InOnly MEP value. Some Notification Payload templates are provided in the annexes chapeter to complete the content Test field of the Page test. To see Notify result in petals console, you must change petals logger configuration - uncomment the line {logger.Petals.Container.Components.level DEBUG} in loggers.properties file of petals "conf/" folder{note}
{note}Set the MEP field value to "InOut" unless if you intend to perforn a Notify request that requires InOnly MEP value. Some Notification Payload templates are provided in the annexes chapeter to complete the content Test field of the Page test. To see Notify result in petals console, you must change petals logger configuration - uncomment the line {logger.Petals.Container.Components.level DEBUG} in loggers.properties file of petals "conf/" folder{note}
<para>Select the endpoint respect to what Request you want to perform
:</para>
:</para>
* *{_}SubscriptionManagerServiceEndpoint{_}* : Select this endpoint if you want to perform "Unsubscribe" requests.
!webconsole_subscribeResponse.png|align=center|border=1!
picture-10 : subscribeResponse on webconsole
!webconsole_subscribeResponse.png|align=center|border=1!
picture-10 : subscribeResponse on webconsole
<\!-\- <itemizedlist> -->
<\!-\- <listitem> -->
<para><emphasis
role="bold">NotificationBrokerServiceEndpoint</emphasis> : Select
this endpoint if you want to perform "RegisterPublisher" ,
"Subscribe" or "Notify" requests.</para>
<note>Set the MEP field value to "InOut" unless if you intend to perforn a Notify request that requires InOnly MEP value.
Some Notification Payload templates are provided in the annexes chapeter to complete the content Test field of the Page test.
To see Notify result in petals console, you must change petals logger configuration - uncomment the line
<literal>logger.Petals.Container.Components.level DEBUG</literal> in loggers.properties file of petals "conf/" folder</note>
<\!-\- </listitem> -->
<\!-\- <listitem> -->
<para><emphasis
role="bold">NotificationBrokerServiceEndpoint</emphasis> : Select
this endpoint if you want to perform "RegisterPublisher" ,
"Subscribe" or "Notify" requests.</para>
<note>Set the MEP field value to "InOut" unless if you intend to perforn a Notify request that requires InOnly MEP value.
Some Notification Payload templates are provided in the annexes chapeter to complete the content Test field of the Page test.
To see Notify result in petals console, you must change petals logger configuration - uncomment the line
<literal>logger.Petals.Container.Components.level DEBUG</literal> in loggers.properties file of petals "conf/" folder</note>
<\!-\- </listitem> -->
{note}
Use Notification Payload templates provided in the annexes chapeter and the uuid returned in the previous SubscribeResponse message to complete the content Test field of the Page test.{note}
Use Notification Payload templates provided in the annexes chapeter and the uuid returned in the previous SubscribeResponse message to complete the content Test field of the Page test.{note}
<\!-\- <listitem> -->
<para><emphasis
role="bold">SubscriptionManagerServiceEndpoint</emphasis> : Select
this endpoint if you want to perform "Unsubscribe" requests.
<figure>
<title>subscribeResponse on webconsole</title>
<para><emphasis
role="bold">SubscriptionManagerServiceEndpoint</emphasis> : Select
this endpoint if you want to perform "Unsubscribe" requests.
<figure>
<title>subscribeResponse on webconsole</title>
* *{_}PublisherRegistrationManagerServiceEndpoint{_}* : Select this endpoint if you want to perform "DestroyRegistration" requests.
!webconsole_registerPublisherResponse.png|align=center|border=1!
picture-11 : registerPublisherResponse on webconsole
!webconsole_registerPublisherResponse.png|align=center|border=1!
picture-11 : registerPublisherResponse on webconsole
<mediaobject>
<imageobject>
<imagedata align="center" contentwidth="60%"
fileref="../../resources/pictures/webconsole_subscribeResponse.png"
role="" />
</imageobject>
</mediaobject>
</figure></para>
<note>Use Notification Payload templates provided in the annexes chapeter and the uuid returned in the previous SubscribeResponse
message to complete the content Test field of the Page test</note>
<\!-\- </listitem> -->
<imageobject>
<imagedata align="center" contentwidth="60%"
fileref="../../resources/pictures/webconsole_subscribeResponse.png"
role="" />
</imageobject>
</mediaobject>
</figure></para>
<note>Use Notification Payload templates provided in the annexes chapeter and the uuid returned in the previous SubscribeResponse
message to complete the content Test field of the Page test</note>
<\!-\- </listitem> -->
{note}
Use Notification Payload templates provided in the annexes chapeter and the uuid returned in the previous RegisterPublisherResponse message to complete the content Test field of the Page test.{note}
Use Notification Payload templates provided in the annexes chapeter and the uuid returned in the previous RegisterPublisherResponse message to complete the content Test field of the Page test.{note}
<\!-\- <listitem> -->
<para><emphasis
role="bold">PublisherRegistrationManagerServiceEndpoint</emphasis>
<para><emphasis
role="bold">PublisherRegistrationManagerServiceEndpoint</emphasis>
* *{_}SupportedTopicsServiceEndpoint{_}* : Select this endpoint if you want to perform "GetSupportedTopics"
"DestroyRegistration" requests. <figure>
<title>registerPublisherResponse on webconsole</title>
<title>registerPublisherResponse on webconsole</title>
!webconsole_registerPublisherResponse.png|align=center,border=1!
picture-12 : getSupportedTopicsResponse on webconsole
{note}Use an empty root xml node such "<empty/> complete the content Test field of the Page test; and set \"InOut\" MEP value{note}
picture-12 : getSupportedTopicsResponse on webconsole
{note}Use an empty root xml node such "<empty/> complete the content Test field of the Page test; and set \"InOut\" MEP value{note}
<mediaobject>
<imageobject>
<imagedata align="center" contentwidth="60%"
fileref="../../resources/pictures/webconsole_registerPublisherResponse.png"
role="" />
</imageobject>
</mediaobject>
</figure></para>
<note>Use Notification Payload templates provided in the annexes chapeter and the uuid returned in the previous RegisterPublisherResponse
message to complete the content Test field of the Page test</note>
<\!-\- </listitem> -->
<imageobject>
<imagedata align="center" contentwidth="60%"
fileref="../../resources/pictures/webconsole_registerPublisherResponse.png"
role="" />
</imageobject>
</mediaobject>
</figure></para>
<note>Use Notification Payload templates provided in the annexes chapeter and the uuid returned in the previous RegisterPublisherResponse
message to complete the content Test field of the Page test</note>
<\!-\- </listitem> -->
<\!-\- <listitem> -->
<para><emphasis
role="bold">SupportedTopicsServiceEndpoint</emphasis> : Select
this endpoint if you want to perform "GetSupportedTopics"
requests. <figure>
<title>getSupportedTopicsResponse on webconsole</title>
<para><emphasis
role="bold">SupportedTopicsServiceEndpoint</emphasis> : Select
this endpoint if you want to perform "GetSupportedTopics"
requests. <figure>
<title>getSupportedTopicsResponse on webconsole</title>
h1. Annexes
<mediaobject>
<imageobject>
<imagedata align="center" contentwidth="60%"
fileref="../../resources/pictures/webconsole_supportedTopicsResponse.png"
role="" />
</imageobject>
</mediaobject>
</figure></para>
<\!-\- </listitem> -->
<note>Use an empty root xml node such "<empty/> complete the content Test field of the Page test; and set \"InOut\" MEP value</note>
<\!-\- </itemizedlist> -->
<imageobject>
<imagedata align="center" contentwidth="60%"
fileref="../../resources/pictures/webconsole_supportedTopicsResponse.png"
role="" />
</imageobject>
</mediaobject>
</figure></para>
<\!-\- </listitem> -->
<note>Use an empty root xml node such "<empty/> complete the content Test field of the Page test; and set \"InOut\" MEP value</note>
<\!-\- </itemizedlist> -->
h2. Petals-se-notification associated wsdl file
</section>
</section>
</chapter>
</section>
</chapter>
Subscribe Request Payload template :
{code}
{code}
<chapter id="annexes">
<title>Annexes</title>
<section id="filet-component-wsdl">
<title>Petals-se-notification associated wsdl file</title>
<para>Subscribe Request Payload template : <screen> <?xml version="1.0" encoding="UTF-8"?>
<title>Annexes</title>
<section id="filet-component-wsdl">
<title>Petals-se-notification associated wsdl file</title>
<para>Subscribe Request Payload template : <screen> <?xml version="1.0" encoding="UTF-8"?>
{code}
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://petals.ow2.org/petals-se-notification" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsn-bw="http://docs.oasis-open.org/wsn/bw-2"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsn-bw="http://docs.oasis-open.org/wsn/bw-2"
{panel:title=Contributors}{contributors:order=name|mode=list}{panel}
{column}
{column}
{section}h3.