Changes between Version 12 and Version 13 of technicalGuideAndManual

Show
Ignore:
Timestamp:
07/06/12 14:19:55 (12 years ago)
Author:
bartek
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • technicalGuideAndManual

    v12 v13  
    11{{{ 
    22#!html 
    3  
    43<div class="article" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="d0e1"></a><span class="emphasis"><em>QCG Notification</em></span> v. 2.6 Technical Guide and 
    5     Manual</h2></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname">Bartosz</span> <span class="surname">Bosak</span></h3><code class="email">&lt;<a class="email" href="mailto:b 
    6 #!/bin/bash 
    7       command:</p><pre class="programlisting">$ createdb qcg-ntf</pre><p>and set up a table structure using the 
     4    Manual</h2></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname">Bartosz</span> <span class="surname">Bosak</span></h3><code class="email">&lt;<a class="email" href="mailto:bbosak@man.poznan.pl">bbosak@man.poznan.pl</a>&gt;</code></div><div class="author"><h3 class="author"><span class="firstname">Krzysztof</span> <span class="surname">Kurowski</span></h3><code class="email">&lt;<a class="email" href="mailto:krzysztof.kurowski@man.poznan.pl">krzysztof.kurowski@man.poznan.pl</a>&gt;</code></div></div></div><div><p class="releaseinfo">2.6.3</p></div><div><p class="copyright">Copyright &copy; 2008-2012 Poznan Supercomputing and Networking Center</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#d0e37">1. Introduction</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e48">1.1. Motivations</a></span></dt><dt><span class="sect2"><a href="#d0e56">1.2. Purpose of the Document</a></span></dt><dt><span class="sect2"><a href="#d0e71">1.3. Status</a></span></dt></dl></dd><dt><span class="sect1"><a href="#d0e76">2. Terminology and WS-Notification Concept</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e84">2.1. WS-Notification Concept</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e87">2.1.1. WS-Notification Fundamentals</a></span></dt><dt><span class="sect3"><a href="#d0e130">2.1.2. WS-BaseNotification</a></span></dt><dt><span class="sect3"><a href="#d0e192">2.1.3. WS-BrokeredNotification</a></span></dt><dt><span class="sect3"><a href="#d0e270">2.1.4. WS-Topics</a></span></dt><dt><span class="sect3"><a href="#d0e324">2.1.5. Base of QCG Notification</a></span></dt></dl></dd><dt><span class="sect2"><a href="#d0e416">2.2. UML-style Diagrams</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e457">2.2.1. `Main Use Cases</a></span></dt><dt><span class="sect3"><a href="#d0e490">2.2.2. Main Sequence Diagrams</a></span></dt></dl></dd></dl></dd><dt><span class="sect1"><a href="#d0e499">3. User Guide for a Publisher, Subscriber and 
     5    NotificationConsumer </a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e504">3.1. Prefixes and Namespaces</a></span></dt><dt><span class="sect2"><a href="#d0e582">3.2. Interaction with QCG Notification</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e592">3.2.1. Publisher Interaction</a></span></dt><dt><span class="sect3"><a href="#d0e606">3.2.2. Subscriber interaction</a></span></dt><dt><span class="sect3"><a href="#d0e631">3.2.3. NotificationConsumer Interaction</a></span></dt></dl></dd><dt><span class="sect2"><a href="#ted">3.3. Topics, TopicExpressions and Dialects</a></span></dt><dt><span class="sect2"><a href="#d0e685">3.4. Extensions</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e693">3.4.1. TopicExpression</a></span></dt><dt><span class="sect3"><a href="#d0e704">3.4.2. QCG Notification Extensions</a></span></dt></dl></dd><dt><span class="sect2"><a href="#d0e715">3.5. Methods Description</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e749">3.5.1. SubscribeRequest</a></span></dt><dt><span class="sect3"><a href="#d0e856">3.5.2. SubscribeResponse</a></span></dt><dt><span class="sect3"><a href="#d0e904">3.5.3. RenewRequest</a></span></dt><dt><span class="sect3"><a href="#d0e945">3.5.4. RenewResponse</a></span></dt><dt><span class="sect3"><a href="#d0e989">3.5.5. UnsubscribeRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1022">3.5.6. UnsubscribeResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1043">3.5.7. RegisterPublisherRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1096">3.5.8. RegisterPublisherResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1141">3.5.9. Notify</a></span></dt><dt><span class="sect3"><a href="#d0e1225">3.5.10. DestroyRegistrationRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1258">3.5.11. DestroyRegistrationResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1279">3.5.12. CreatePullPointRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1303">3.5.13. CreatePullPointResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1333">3.5.14. GetMessages</a></span></dt><dt><span class="sect3"><a href="#d0e1366">3.5.15. GetMessagesResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1443">3.5.16. DestroyPullPointRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1464">3.5.17. DestroyPullPointResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1485">3.5.18. GetCurrentMessageRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1532">3.5.19. GetCurrentMessageResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1598">3.5.20. ListSubscriptions</a></span></dt><dt><span class="sect3"><a href="#d0e1700">3.5.21. ListSubscriptionsResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1797">3.5.22. ListPublishersRegistrations</a></span></dt><dt><span class="sect3"><a href="#d0e1878">3.5.23. ListPublisherRegistrationsResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1952">3.5.24. ListPullPoints</a></span></dt><dt><span class="sect3"><a href="#d0e2033">3.5.25. ListPullPointsResponse</a></span></dt><dt><span class="sect3"><a href="#d0e2107">3.5.26. ListTopicNamespaces</a></span></dt><dt><span class="sect3"><a href="#d0e2147">3.5.27. ListTopicNamespacesResponse</a></span></dt><dt><span class="sect3"><a href="#d0e2206">3.5.28. AddTopicNamespace</a></span></dt><dt><span class="sect3"><a href="#d0e2243">3.5.29. AddTopicNamespaceResponse</a></span></dt><dt><span class="sect3"><a href="#d0e2268">3.5.30. RemoveTopicNamespace</a></span></dt><dt><span class="sect3"><a href="#d0e2302">3.5.31. RemoveTopicNamespaceResponse</a></span></dt></dl></dd></dl></dd><dt><span class="sect1"><a href="#d0e2324">4. Administration Guide of QCG 
     6    Notification</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e2329">4.1. Prerequisites</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e2337">4.1.1. QCG Core library</a></span></dt></dl></dd><dt><span class="sect2"><a href="#d0e2355">4.2. Building</a></span></dt><dt><span class="sect2"><a href="#d0e2416">4.3. Creating database for QCG Notification - the 
     7      PostgreSQL example</a></span></dt></dl></dd><dt><span class="sect1"><a href="#aaa">5. Configuration of QCG Notification</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e2506">5.1. Configuration File: qcg-ntfd.xml</a></span></dt><dt><span class="sect2"><a href="#moduleoptions">5.2. Module configuration</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e2838">5.2.1. Publisher modules</a></span></dt></dl></dd><dt><span class="sect2"><a href="#d0e3097">5.3. WS-Topics management</a></span></dt><dt><span class="sect2"><a href="#d0e3125">5.4. Starting QCG Notification</a></span></dt><dt><span class="sect2"><a href="#d0e3148">5.5. Stopping QCG Notification</a></span></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e37"></a>1.&nbsp;Introduction</h2></div></div></div><p><span class="bold"><strong>QCG Notification</strong></span> is a reference 
     8    implementation of a set of industry Web Service specifications (<a class="link" href="#WS-Notification"></a><a class="ulink" href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsn" target="_top">WS-Notification 
     9    OASIS standard)</a><a class="link" href="#WS-Notification"></a> for message push/pull-style notification, 
     10    using a topic-based publish/subscribe pattern. It supports standard 
     11    message exchanges to be implemented by any Web Service providers 
     12    (including also services within QCG Service Bus), that wish to participate 
     13    in notifications, standard message exchanges for a notification-broker 
     14    service provider (allowing publication of messages from entities that are 
     15    not themselves service providers), operational requirements expected of 
     16    service providers and requesters that participate in notifications, and an 
     17    XML model that describes topics (i.e., items of interest for 
     18    subscriptions.).</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e48"></a>1.1.&nbsp;Motivations</h3></div></div></div><p>Reliable notification and messaging services are key components in 
     19      service-oriented architectures (SOA) and distributed computing. However, 
     20      early Web Services, such as those for getting stock or whether daily 
     21      reports, were seemingly all remote procedure calls (RPC) oriented. In 
     22      RPC systems, the receiver typically performs the requested Web Service 
     23      and sends a response back to the consumer over the same connection on 
     24      which the request arrived. Communication in this case is fully 
     25      synchronous, and often also called a pull-style message exchange. Today, 
     26      many existing SOA environments are based on synchronous message 
     27      exchange, but in the future we expect more and more needs for 
     28      asynchronous push Web Services. Moreover, existing approaches in a 
     29      relatively simple and often non standard based way provide notification 
     30      capabilities for distributed Web Services. Available reference 
     31      implementations of industry standards, e.g. defined by OASIS 
     32      standardization body, either implement only partially notification 
     33      standards or do not meet high performance requirements. Therefore, our 
     34      main motivation was to design and implement <span class="emphasis"><em>QCG 
     35      Notification</em></span> to offer more advanced push/pull 
     36      (synchronous/asynchronous) standard notification routines for QCG 
     37      Service Bus services as well as any third party Web Services.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e56"></a>1.2.&nbsp;Purpose of the Document</h3></div></div></div><p>The main goal of this document is to define a set of initial use 
     38      cases, scenarios and specify software requirements for <span class="emphasis"><em>QCG 
     39      Notification</em></span>, its programming application interface, 
     40      functional units and the integration with both internal and external 
     41      modules.</p><p>The document is aimed at software architects and programmers who 
     42      will be developing software components based on this document. Many 
     43      requirements and <span class="emphasis"><em>QCG Notification </em></span>concept itself 
     44      might be interesting for developers and end users of any Web 
     45      Services.</p><p>This document assumes that the reader has at least a basic 
     46      background in Web Service and SOA technologies.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e71"></a>1.3.&nbsp;Status</h3></div></div></div><p>This document is updated periodically on no particular 
     47      schedule.</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e76"></a>2.&nbsp;Terminology and WS-Notification Concept</h2></div></div></div><p>The aim of this section is to capture high-level functionality of 
     48    <span class="emphasis"><em>QCG Notification</em></span> and/or interaction without providing 
     49    excessive implementation or technical details of the system.</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e84"></a>2.1.&nbsp;WS-Notification Concept</h3></div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e87"></a>2.1.1.&nbsp;WS-Notification Fundamentals</h4></div></div></div><p>Notification-based pattern is commonly used for 
     50        interaction between distributed objects. WS-Notification is a family 
     51        of related specifications that standardizes notification concept and 
     52        topic-based information distribution in SOA and Web Service based 
     53        systems. There are three normative OASIS specifications: 
     54        WS-BaseNotification, WS-BrokeredNotification and WS-Topics.</p><div class="variablelist"><dl><dt><span class="term">WS-BaseNotification</span></dt><dd><p>Standardizes the terminology, concepts, operations, WSDL 
     55              and XML needed to express the basic roles involved in Web 
     56              services publish and subscribe for notification message 
     57              exchange.</p><p>Specification URL:</p><p><a class="ulink" href="http://docs.oasis-open.org/wsn/wsn-ws_base_notification-1.3-spec-pr-0.2.pdf" target="_top">http://docs.oasis-open.org/wsn/wsn-ws_base_notification-1.3-spec-os.pdf</a></p></dd></dl></div><div class="variablelist"><dl><dt><span class="term">WS-BrokeredNotification</span></dt><dd><p>Describes specific objectives for expanded version of 
     58              notification messages exchange with indirect NotificationBroker 
     59              service.</p><p>Specification URL:</p><p><a class="ulink" href="http://docs.oasis-open.org/wsn/wsn-ws_brokered_notification-1.3-spec-pr-0.2.pdf" target="_top">http://docs.oasis-open.org/wsn/wsn-ws_brokered_notification-1.3-spec-os.pdf</a></p></dd></dl></div><div class="variablelist"><dl><dt><span class="term"><a name="WS-topics"></a>WS-Topics</span></dt><dd><p>Defines mechanism to organize and categorize items of 
     60              interest for subscriptions known as "topics".</p><p>Specification URL:</p><p><a class="ulink" href="http://docs.oasis-open.org/wsn/wsn-ws_topics-1.3-spec-pr-0.2.pdf" target="_top">http://docs.oasis-open.org/wsn/wsn-ws_topics-1.3-spec-os.pdf</a></p></dd></dl></div><p>The next subsections will present main notification concepts 
     61        defined in the mentioned specifications.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e130"></a>2.1.2.&nbsp;WS-BaseNotification</h4></div></div></div><p>The WS-BaseNotification document is a basic reference on which 
     62        all the other specifications in the standard WS-Notification family 
     63        depend. In fact, it defines precisely two important notification 
     64        roles/actors called respectively NotificationProducer and 
     65        NotificationConsumer. An example system architecture based on 
     66        WS-BaseNotification is presented below.</p><div class="figure"><a name="BaseEntities"></a><p class="title"><b>Figure&nbsp;1.&nbsp;Web Services BaseNotification entities</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/smn_baseentities.png" align="middle" width="324" alt="Web Services BaseNotification entities"></div></div></div><p><br class="figure-break">The basic terminology related to the WS-BaseNotification is 
     67        following:</p><div class="variablelist"><dl><dt><span class="term">Situation</span></dt><dd><p>Some occurrence known by a NotificationProducer. A 
     68                Situation is a reason of dispatching a Notification.</p></dd><dt><span class="term">Notification</span></dt><dd><p><a name="a"></a>An artifact of a Situation containing information 
     69                about that Situation. A Notification is represented as an XML 
     70                element and dispatched by a NotificationProducer.</p></dd><dt><span class="term">Subscription</span></dt><dd><p>Represents relations between a NotificationProducer and 
     71                a NotificationConsumer. A Subscription is created by a 
     72                Subscriber and is consisted with filtering parameters such as 
     73                a Topic, policies or context information.</p></dd><dt><span class="term">Subscriber</span></dt><dd><p>An unit that creates Subscriptions. It sends the 
     74                SubscribeRequest message to a NotificationProducer 
     75                service.</p></dd><dt><span class="term">NotificationProducer</span></dt><dd><p>Produces Notifications. In other words 
     76                NotificationProducer detects Situation(s) and translates it to 
     77                Notification message(s). It is also a Web Service responsible 
     78                for creating Subscriptions by the SubscribeRequest 
     79                message.</p></dd><dt><span class="term">NotificationConsumer</span></dt><dd><p>An endpoint designated to receive Notifications produced 
     80                by a NotificationProducer as a result of a 
     81                Subscription.</p></dd><dt><span class="term">PullPoint</span></dt><dd><p>The purpose of PullPoints is enabling pull-style 
     82                notifications. In general, PullPoints accumulate notifications 
     83                and offer an interface for retrieving these notifications by 
     84                remote consumers. Since a PullPoint implements a 
     85                NotificationConsumer interface it can be selected in a 
     86                Subscription as a receiver of notifications.</p></dd><dt><span class="term">CurrentMessages</span></dt><dd><p>CurrentMessages is a buffer that keeps the latest 
     87                messages produced on each topic. A new notification replaces 
     88                the previous related to the same topic and currently buffered 
     89                in CurrentMessages.</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e192"></a>2.1.3.&nbsp;WS-BrokeredNotification</h4></div></div></div><p>In a nutshell, the WS-BrokeredNotification specification is an 
     90        extension of described above the WS-BaseNotification concept. However, 
     91        it introduces a new important notification role called 
     92        NotificationBroker and defines more advanced notification scenarios. 
     93        The figure below shows an example scenario and notification message 
     94        flow where NotificationBroker is present.</p><div class="figure"><a name="d0e198"></a><p class="title"><b>Figure&nbsp;2.&nbsp;Web Services BrokeredNotification entities - QCG 
     95            Notification entities</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/smn_brokeredentities.png" align="middle" width="324" alt="Web Services BrokeredNotification entities - QCG Notification entities"></div></div></div><p><br class="figure-break">Note, that there are some important enlargements and 
     96        modifications in the WS-BrokeredNotificatison terminology. Below the 
     97        most relevant definitions are presented.</p><div class="variablelist"><dl><dt><span class="term">Situation</span></dt><dd><p>Some occurrence, known by a Publisher. A Situation is a 
     98              reason of dispatching a Notification.</p></dd><dt><span class="term">Notification</span></dt><dd><p>An artifact of a Situation containing information about 
     99              that Situation. A Notification is represented as an XML element, 
     100              dispatched by a Publisher and redistributed by a 
     101              NotificationBroker.</p></dd><dt><span class="term">Publisher</span></dt><dd><p>An unit that creates Notification(s) - detects 
     102              Situation(s) and translates it to Notification message(s). It 
     103              doesn't have to be a Web Service.</p></dd><dt><span class="term">Subscription</span></dt><dd><p>Represents relations between a Publisher and a 
     104              NotificationConsumer. A Subscription is created by a Subscriber 
     105              and is consisted with filtering parameters such as a Topic, 
     106              policies or a context information.</p></dd><dt><span class="term">Subscriber</span></dt><dd><p>An unit that creates Subscriptions. It sends the 
     107              SubscribeRequest message to a SubscriptionManager 
     108              interface.</p></dd><dt><span class="term">NotificationBroker</span></dt><dd><p>An intermediary Web service that decouples Publishers and 
     109              NotificationConsumers. It redistributes Notifications received 
     110              from Publishers to NotificationConsumers on the basis of 
     111              Subscriptions' parameters.</p></dd><dt><span class="term">NotificationConsumer</span></dt><dd><p>An endpoint designated to receive Notifications produced 
     112              by a Publisher and later redistributed by a NotificationBroker 
     113              as a result of a Subscription.</p></dd><dt><span class="term">PullPoint</span></dt><dd><p>The purpose of PullPoints is enabling pull-style 
     114              notifications. In general, PullPoints accumulate notifications 
     115              and offer an interface for retrieving these notifications by 
     116              remote consumers. Since a PullPoint implements a 
     117              NotificationConsumer interface it can be selected in a 
     118              Subscription as a receiver of notifications.</p></dd><dt><span class="term">CurrentMessages</span></dt><dd><p>CurrentMessages is a buffer that keeps the latest messages 
     119              published on each topic. A new notification replaces the 
     120              previous related to the same topic and currently buffered in 
     121              CurrentMessages.</p></dd></dl></div><p>The main difference between WS-Base and WS-Brokered Notification 
     122        specifications is that in the second case NotificationProducers do not 
     123        have to be implemented as a Web Services. Publishers do not have to 
     124        implement and be compliant with defined NotificationProducer 
     125        interfaces. Finally, having a NotificationBroker as a mediator between 
     126        different actors in a notification flow, NotificationConsumers are 
     127        fully separated and do not have to know details about 
     128        NotificationProducers.</p><p>Depending on distributed system requirements and use cases 
     129        various notification routines, objects, and roles are usually 
     130        involved. For instance, in the simplest case where an asynchronous 
     131        communication is required, there is no need to use a notification 
     132        mechanisms defined by WS-BrokeredNotification and basic notification 
     133        routines defined by WS-BaseNotification are good enough to satisfy 
     134        distributed system needs. The example scenario is presented on <a class="link" href="#BaseEntities" title="Figure&nbsp;1.&nbsp;Web Services BaseNotification entities">Figure 1</a>. For more advanced notification 
     135        scenarios in service oriented systems we recommend to use notification 
     136        capabilities defined in WS-BrokeredNotification. One of the main 
     137        scenario defined by WS-BrokeredNotification is presented on <a class="link" href="#BrokeredEntities">Figure 2</a> .</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e270"></a>2.1.4.&nbsp;WS-Topics</h4></div></div></div><p>The third important notification specification document called 
     138        WS-Topics is strictly associated with WS-BaseNotification and 
     139        precisely defines a "topics" mechanism. Important definitions used in 
     140        the WS-Topics specification are presented below:</p><div class="variablelist"><dl><dt><span class="term">Topic</span></dt><dd><p>A concept used to categorize Notifications and their 
     141              related Notification schemes. Topics are used to determine which 
     142              subscribing NotificationConsumers should receive a specific 
     143              Notification.</p></dd><dt><span class="term">Topic Tree</span></dt><dd><p>A hierarchical group of Topics.</p></dd><dt><span class="term">Topic Namespace</span></dt><dd><p>A forest of Topic Trees grouped into one namespace</p></dd><dt><span class="term">TopicExpression</span></dt><dd><p>An expression that identifies Topics from a Topic 
     144              Namespace</p></dd><dt><span class="term">Dialect</span></dt><dd><p>Identifies the type of a grammar used in a 
     145              TopicExpression. The specification defines four Dialects: 
     146              <span class="emphasis"><em>Simple</em></span>, <span class="emphasis"><em>Concrete</em></span>, 
     147              <span class="emphasis"><em>Full</em></span> and <span class="emphasis"><em>XPath</em></span>.</p></dd></dl></div><div class="figure"><a name="d0e318"></a><p class="title"><b>Figure&nbsp;3.&nbsp;Example Topic Namespace</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/smn_topicnamespace.png" align="middle" width="324" alt="Example Topic Namespace"></div></div></div><br class="figure-break"></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e324"></a>2.1.5.&nbsp;Base of <span class="emphasis"><em>QCG Notification</em></span></h4></div></div></div><p><span class="emphasis"><em>QCG Notification</em></span> is a reference 
     148        implementation of WS-BaseNotification, WS-BrokeredNotification and 
     149        WS-Topics OASIS industry standards. As a consistent and highly 
     150        efficient notification system it supports advanced brokered Web 
     151        Service notification push/pull scenarios described in the <a class="link" href="#brokerednotifications">Section 2.1.3</a>. It has been 
     152        designed to satisfy notification requirements and demands of large 
     153        scale Web Service based systems, SOA environments and it acts as a 
     154        core component in QCG Service Bus. To meet security requirements, 
     155        <span class="emphasis"><em>QCG Notification</em></span> (or <span class="emphasis"><em>QCG Notification 
     156        Provider</em></span>) exposes well defined Web Service and programming 
     157        interfaces over QCG security mechanisms for dynamic notification, 
     158        subscription, registration, forwarding, etc. As it was explained in 
     159        the previous sections it can be used and integrated with various 
     160        external third party Web Services playing roles of a notification 
     161        Publisher, Subscriber or Consumer.</p><p>A flexible plug-in architecture of <span class="emphasis"><em>QCG Notification 
     162        </em></span>enables using different communication protocols for 
     163        messages transmission. Currently messages can be transported between 
     164        <span class="emphasis"><em>QCG Notification</em></span> and third party entities not 
     165        only through HTTP protocol, but also through XMPP (jabber) as well as 
     166        SMTP (e-mail) protocols. It is possible to variously mix channels of 
     167        communication, for example a notification sent by a Publisher being 
     168        WS-Client as a HTTP message can be distributed over XMPP to jabber 
     169        consumers.</p><p>Below we present a set of Web Service notification use cases 
     170        demonstrating capabilities offered by <span class="emphasis"><em>QCG 
     171        Notification</em></span>.</p><div class="figure"><a name="notificationConsumers"></a><p class="title"><b>Figure&nbsp;4.&nbsp;Notification with multiple Publishers and multiple 
     172          NotificationConsumers</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/smn_example1.png" align="middle" width="324" alt="Notification with multiple Publishers and multiple NotificationConsumers"></div></div></div><br class="figure-break"><p>The <a class="link" href="#notificationConsumers" title="Figure&nbsp;4.&nbsp;Notification with multiple Publishers and multiple NotificationConsumers">diagram 4</a> shows 
     173        one of the basic notification flows supported by <span class="emphasis"><em>QCG 
     174        Notification</em></span>. Depending on records, Notifications produced 
     175        by a Publisher and received by the <span class="emphasis"><em>QCG 
     176        Notification</em></span> may or may not be dispatched to concrete 
     177        NotificationConsumer. Note, that Subscriptions represent relationships 
     178        between Topics and NotificationConsumers in this scenario. Before any 
     179        Notification is delivered to a NotificationConsumer, a Subscriber has 
     180        to send first a SubscribeRequest message to <span class="emphasis"><em>QCG 
     181        Notification</em></span> in which all parameters of a Subscription are 
     182        specified. Main parameters of a SubscribeRequest message are 
     183        ConsumerReference and TopicExpression defined according to the 
     184        specific Dialect type. On the other hand, before a Publisher starts 
     185        sending Notifications it may be obligated to register himself in 
     186        <span class="emphasis"><em>QCG Notification</em></span>. The diagram below shows a 
     187        sequence of events in order to initialize an asynchronous process of 
     188        notifications between a Publisher and a NotificationConsumer.</p><div class="figure"><a name="d0e378"></a><p class="title"><b>Figure&nbsp;5.&nbsp;Message flows: creating a Subscription, notifying 
     189          NotificationConsumers</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/smn_example2.png" align="middle" width="324" alt="Message flows: creating a Subscription, notifying NotificationConsumers"></div></div></div><br class="figure-break"><div class="orderedlist"><ol type="1"><li><p>A Subscriber sends the SubscribeRequest message with a 
     190            NotificationConsumer location and TopicExpression parameters to 
     191            <span class="emphasis"><em>QCG Notification</em></span>.</p></li><li><p><span class="emphasis"><em>QCG Notification</em></span> prepares appropriate 
     192            records for a Subscription.</p></li><li><p>A Publisher register himself in <span class="emphasis"><em>QCG 
     193            Notification</em></span> by sending the RegisterPublisher 
     194            message.</p></li><li><p>A registered Publisher sends the Notify message on a 
     195            specified Topic to a <span class="emphasis"><em>QCG Notification 
     196            </em></span>service.</p></li><li><p><span class="emphasis"><em>QCG Notification</em></span> checks if there are 
     197            NotificationConsumers subscribed on a specified Topic. If so, 
     198            <span class="emphasis"><em>QCG Notification</em></span> sends asynchronous 
     199            Notifications to these NotifcationConsumers.</p></li></ol></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e416"></a>2.2.&nbsp;UML-style Diagrams</h3></div></div></div><p>The document uses UML-style use-case diagrams to illustrate 
     200      high-level use cases. The following list is probably sufficient for this 
     201      version of the document:</p><div class="itemizedlist"><ul type="disc"><li><p>Stick figures represents actors or roles in a scenario. These 
     202          can be human beings or software systems.</p></li><li><p>Ellipses represent use cases, i.e. actions or units of 
     203          functionality in a system.</p></li><li><p>Lines between actors and use cases indicate a participation of 
     204          the actor in the use case. At this level, no direction or payload of 
     205          data flow is expressed by the lines between actors and use 
     206          cases.</p></li></ul></div><p>The document uses UML-style sequence diagrams to illustrate 
     207      detailed use case scenarios and later in the next sections. Meanings of 
     208      graphics in these diagrams are as follows:</p><div class="itemizedlist"><ul type="disc"><li><p>Boxes at the top of the diagram represent an actor in the 
     209          scenario.</p></li><li><p>Arrows with a solid head represent a message sent from one 
     210          actor to another. The arrow points from sender to receiver.</p></li><li><p>Arrows with a line head represent the return value of a 
     211          message. The arrow points from the receiver of the earlier message 
     212          to the sender.</p></li><li><p>A dotted line running down the diagram from a box indicates 
     213          that arrows whose endpoints (tail or head) is on the line apply to 
     214          that actor.</p></li><li><p>Intersections between arrows and dotted lines are 
     215          meaningless.</p></li><li><p>Vertical layout represents time. Messages (arrows) farther 
     216          down on the page happen after messages higher on the page.</p></li><li><p>Horizontal layout has no formal meaning. Since right-pointing 
     217          arrows look better, actors that initiate a scenario tend to appear 
     218          leftward of actors they send messages to.</p></li></ul></div><p>Sequence diagrams are used in this document for more concrete 
     219      design, and that actors and messages are often objects and object 
     220      methods. They provide value for this document in that they give a 
     221      clearly ordered message layout and connections among functional units. 
     222      The actors and messages in the sequence diagrams are more properly roles 
     223      in a scenario and actions associated with that scenario.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e457"></a>2.2.1.&nbsp;`Main Use Cases</h4></div></div></div><div class="figure"><a name="d0e460"></a><p class="title"><b>Figure&nbsp;6.&nbsp;Use case diagram for a Publisher</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/use_publisher.png" align="middle" width="432" alt="Use case diagram for a Publisher"></div></div></div><br class="figure-break"><div class="figure"><a name="d0e466"></a><p class="title"><b>Figure&nbsp;7.&nbsp;Use case diagram for a Subscriber</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/use_subscriber.png" align="middle" width="432" alt="Use case diagram for a Subscriber"></div></div></div><br class="figure-break"><div class="figure"><a name="d0e472"></a><p class="title"><b>Figure&nbsp;8.&nbsp;Use case diagram for a NotificationConsumer</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/use_consumer.png" align="middle" width="432" alt="Use case diagram for a NotificationConsumer"></div></div></div><br class="figure-break"><div class="figure"><a name="d0e478"></a><p class="title"><b>Figure&nbsp;9.&nbsp;Use case diagram for QCG Notification</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/use_qcgnotification.png" align="middle" width="432" alt="Use case diagram for QCG Notification"></div></div></div><br class="figure-break"><div class="figure"><a name="d0e484"></a><p class="title"><b>Figure&nbsp;10.&nbsp;Use case diagram for a QCG Notification Administrator</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/use_administrator.png" align="middle" width="432" alt="Use case diagram for a QCG Notification Administrator"></div></div></div><br class="figure-break"></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e490"></a>2.2.2.&nbsp;Main Sequence Diagrams</h4></div></div></div><div class="figure"><a name="d0e493"></a><p class="title"><b>Figure&nbsp;11.&nbsp;General sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/seq_all.png" align="middle" width="432" alt="General sequence diagram"></div></div></div><br class="figure-break"></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e499"></a>3.&nbsp;User Guide for a Publisher, Subscriber and 
     224    NotificationConsumer<span class="emphasis"><em> </em></span></h2></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e504"></a>3.1.&nbsp;Prefixes and Namespaces</h3></div></div></div><p>The following table presents namespaces tied with prefixes. The 
     225      prefixes are used in example SOAP messages presented in the further 
     226      sections.</p><div class="table"><a name="d0e509"></a><p class="title"><b>Table&nbsp;1.&nbsp;Prefixes and Namespaces</b></p><div class="table-contents"><table summary="Prefixes and Namespaces" border="1"><colgroup><col width="12%" align="left"><col width="88%"></colgroup><tbody><tr><td align="left"><span class="bold"><strong>Prefix</strong></span></td><td><span class="bold"><strong>Namespace</strong></span></td></tr><tr><td align="left">SOAP-ENV</td><td>http://schemas.xmlsoap.org/soap/envelope/</td></tr><tr><td align="left">SOAP-ENC</td><td>http://schemas.xmlsoap.org/soap/encoding/</td></tr><tr><td align="left">xsi</td><td>http://www.w3.org/2001/XMLSchema-instance</td></tr><tr><td align="left">xsd</td><td>http://www.w3.org/2001/XMLSchema</td></tr><tr><td align="left">wsa</td><td>http://www.w3.org/2005/08/addressing</td></tr><tr><td align="left">wsbf</td><td>http://docs.oasis-open.org/wsrf/bf-2</td></tr><tr><td align="left">wstop</td><td>http://docs.oasis-open.org/wsn/t-1</td></tr><tr><td align="left">wsr</td><td>http://docs.oasis-open.org/wsrf/r-2</td></tr><tr><td align="left">wsnt</td><td>http://docs.oasis-open.org/wsn/b-2</td></tr><tr><td align="left">wsntw</td><td>http://docs.oasis-open.org/wsn/bw-2</td></tr><tr><td align="left">wsnbr</td><td>http://docs.oasis-open.org/wsn/br-2</td></tr><tr><td align="left">smn-ext</td><td>http://schemas.qoscosgrid.org/ntf/2011/04/extensions</td></tr></tbody></table></div></div><br class="table-break"></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e582"></a>3.2.&nbsp;Interaction with <span class="emphasis"><em>QCG Notification</em></span></h3></div></div></div><p>In the next subsections an issue of cooperation with <span class="emphasis"><em>QCG 
     227      Notification</em></span> is presented independently for a Publisher, 
     228      Subscriber and NotificationConsumer. Although a conceptual style of 
     229      interaction is described here in details, technical particularities of 
     230      constructing messages are presented later.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e592"></a>3.2.1.&nbsp;Publisher Interaction</h4></div></div></div><div class="figure"><a name="d0e595"></a><p class="title"><b>Figure&nbsp;12.&nbsp;Publisher interaction sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/seq_publisher.png" align="middle" width="432" alt="Publisher interaction sequence diagram"></div></div></div><br class="figure-break"><p>In the most general configuration of the service, a Publisher 
     231        has to be registered before it starts sending Notifications. In this 
     232        situation, a Publisher sends the RegisterPublisherRequest message to 
     233        <span class="emphasis"><em>QCG Notification</em></span>. If everything goes well it 
     234        receives the RegisterPublisherResponse message with a session ID. From 
     235        this time a Publisher is entitled for sending Notify messages - the 
     236        Notify message has to include received session ID in its content. The 
     237        notifications can be forwarded to remote Notification Consumers or 
     238        buffered locally in PullPoints. Moreover, every new notification 
     239        replaces the old one in CurrentMessages. After work, a Publisher 
     240        should unregister himself by sending DestroyRegistration. This message 
     241        has to include a session ID likewise.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e606"></a>3.2.2.&nbsp;Subscriber interaction</h4></div></div></div><div class="figure"><a name="d0e609"></a><p class="title"><b>Figure&nbsp;13.&nbsp;Subscriber interaction sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/seq_subscriber.png" align="middle" width="432" alt="Subscriber interaction sequence diagram"></div></div></div><br class="figure-break"><p>When a Subscriber wants to create a Subscription, it sends the 
     242        SubscribeRequest message to <span class="emphasis"><em>QCG Notification</em></span>. 
     243        This message should contain an address of NotificationConsumer and a 
     244        TopicExpression that specifies a Topic or a set of Topics on which 
     245        NotificationConsumer should receive Notifications. Additionally a 
     246        Subscriber can define a boolean XPath expression that will be 
     247        evaluated over Notification Messages for more sophisticated filtering. 
     248        From the version 2.5.0 of the system, the Subscriber may specify XSLT 
     249        document that will be used to transform message content by certain 
     250        publishing modules. After creation of a Subscription <span class="emphasis"><em>QCG 
     251        Notification</em></span> sends the SubscribeResponse message with a 
     252        created Subscription ID. This ID should be attached to the 
     253        UnsubscribeRequest message when a Subscription is not wanted and the 
     254        Renew message when a Subscription should be refreshed. A Subscriber is 
     255        allowed to create many equal Subscriptions.</p><p>If a scenario requires pull-style of notifications, a Subscriber 
     256        can create a set of PullPoints. In a such situation, it has to invoke 
     257        the CreatePullPoint method offered by <span class="emphasis"><em>QCG Notification. 
     258        <span class="emphasis"><em>The response parameter of this method will be an address to 
     259        the newly created <span class="emphasis"><em>PullPoint resource (Subscribers can assign 
     260        this resources as NotificationConsumers in theirs Subscriptions). A 
     261        PullPoint resource can be destroyed by the DestroyPullPoint message 
     262        sent directly to this resource. 
     263        </em></span></em></span></em></span></p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e631"></a>3.2.3.&nbsp;NotificationConsumer Interaction</h4></div></div></div><div class="figure"><a name="d0e635"></a><p class="title"><b>Figure&nbsp;14.&nbsp;NotificationConsumer interaction sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/seq_consumer.png" align="middle" width="432" alt="NotificationConsumer interaction sequence diagram"></div></div></div><p><br class="figure-break">The main capability of a NotificationConsumer is a 
     264        receiving of Notify messages. A NotificationConsumer can implement an 
     265        interface for receiving Notify messages sending by <span class="emphasis"><em>QCG 
     266        Notification</em></span> or can be a client of a PullPoint. In the 
     267        second case, a NotificationConsumer can invoke GetMessages method 
     268        offered by a certain PullPoint. Messages buffered in the PullPoint 
     269        will be removed from the buffer and delivered in GetMessagesResponse 
     270        to the consumer.</p><p>On the other hand, when a NotificationConsumer wants to receive 
     271        the last Notification message sent on a specific Topic, it can do this 
     272        by sending GetCurrentMessageRequest to <span class="emphasis"><em>QCG 
     273        Notification</em></span>. Requested Notification will be supplied in 
     274        the GetCurrentMessageResponse message.</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ted"></a>3.3.&nbsp;Topics, TopicExpressions and Dialects</h3></div></div></div><p>Before start-up of a <span class="emphasis"><em>QCG Notification</em></span> 
     275      service, there should be defined Topic Namespaces in a system. Topic 
     276      Namespaces should be created (usually by Publishers) and delivered to 
     277      a<span class="emphasis"><em> QCG Notification</em></span> administrator in a form of XML 
     278      documents. A following record presents a sample Topic Namespace 
     279      identified by 
     280      <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics.</em></span></p><pre class="programlisting">&lt;wstop:TopicNamespace                                                                                                                                                                    
     281    xmlns:wstop="http://docs.oasis-open.org/wsn/t-1"                                                                                                                                 
     282    targetNamespace="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics"&gt;                                                                                               
     283    &lt;wstop:Topic name="House"&gt; 
     284        &lt;wstop:Topic name="Kitchen"&gt; 
     285            &lt;wstop:Topic name="Friedge"/&gt; 
     286            &lt;wstop:Topic name="Cook"/&gt; 
     287            &lt;wstop:Topic name="Light"/&gt; 
     288        &lt;/wstop:Topic&gt; 
     289        &lt;wstop:Topic name="Toilet"&gt; 
     290            &lt;wstop:Topic name="Light"/&gt; 
     291        &lt;/wstop:Topic&gt; 
     292        &lt;wstop:Topic name="Room1"&gt; 
     293            &lt;wstop:Topic name="Light"/&gt; 
     294        &lt;/wstop:Topic&gt; 
     295        &lt;wstop:Topic name="Room2"&gt; 
     296            &lt;wstop:Topic name="Light"/&gt; 
     297        &lt;/wstop:Topic&gt; 
     298    &lt;/wstop:Topic&gt;                                                                                                                                                               
     299&lt;/wstop:TopicNamespace&gt;</pre><p><span class="emphasis"><em>QCG Notification </em></span>supports three types of 
     300      dialects: <span class="emphasis"><em>Simple</em></span>, <span class="emphasis"><em>Concrete</em></span> and 
     301      <span class="emphasis"><em>Full</em></span>. If a message refer to Topics, it has to 
     302      define TopicExpression that identifies one or more Topics (note there 
     303      are situations when TopicExpression has to refer to exactly one Topic). 
     304      TopicExpression has to be written in a supported Dialect. Further more 
     305      TopicExpression has to define Topics from supported Topic Namespaces. To 
     306      select an appropriate Topic Namespace, the first part of TopicExpression 
     307      should be presented in a form of a prefix that refers to this 
     308      namespace.</p><p>For more details see: <a class="ulink" href="http://docs.oasis-open.org/wsn/wsn-ws_topics-1.3-spec-pr-0.2.pdf" target="_top">http://docs.oasis-open.org/wsn/wsn-ws_topics-1.3-spec-os.pdf</a> 
     309      and check out examples of methods in the <a class="link" href="#methodsdescription">section 3.4.</a></p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e685"></a>3.4.&nbsp;Extensions</h3></div></div></div><p>The Oasis standard for notifications doesn't define details for 
     310      lower Levels of functionality so an architect of system is obligated to 
     311      introduce some extensions and clarifications. In the <span class="emphasis"><em>QCG 
     312      Notification </em></span>scenario there are several messages that have to 
     313      be expanded with additional information written as embedded XML. Some of 
     314      these extensions are related with other Oasis standards but some are 
     315      quite new. Technical details are described in the successive 
     316      subsections.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e693"></a>3.4.1.&nbsp;TopicExpression</h4></div></div></div><p><span class="emphasis"><em>QCG Notification </em></span>remote peers have to use 
     317        an appropriate TopicExpression XML element. The schema of this element 
     318        is defined according to Oasis standard in<a class="ulink" href="http://docs.oasis-open.org/wsn/b-2.xsd" target="_top"></a><a class="ulink" href="http://docs.oasis-open.org/wsn/b-2.xsd" target="_top"> 
     319        http://docs.oasis-open.org/wsn/b-2.xsd</a><a class="ulink" href="http://docs.oasis-open.org/wsn/b-2.xsd" target="_top"></a>. Please note 
     320        here that the Nofity and GetCurrentMessageRequest messages contain a 
     321        Topic element which contains a required @Dialect attribute. Also 
     322        TopicExpression has to define a @Dialect attribute. For conformity 
     323        with the WSDL document, a @Dialect from the Topic element is 
     324        significant. It is not necessary but preferred to attach the same 
     325        @Dialect in the TopicExpression element against.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e704"></a>3.4.2.&nbsp;<span class="emphasis"><em>QCG Notification</em></span> Extensions</h4></div></div></div><p><span class="emphasis"><em>QCG Notification</em></span> introduces some extensions 
     326        to WSDL as well as schema documents related to the Oasis standard. The 
     327        following schema defines these extensions. The first three elements 
     328        named RegisterPublisherID, SubscriptionID and PullPointID are IDs for 
     329        Publisher Registrations, created Subscriptions and PullPoints. 
     330        CurrentMessage is used for supplementation of 
     331        GetCurrentMessageResponse. The rest of the elements is utilized in the 
     332        managing methods, the elements are used in order to: listing 
     333        Subscriptions, listing PublisherRegistrations and listing 
     334        PullPoints.</p><pre class="programlisting">&lt;?xml version="1.0" encoding="UTF-8"?&gt; 
     335&lt;xsd:schema 
     336  xmlns="http://schemas.qoscosgrid.org/ntf/2011/04/extensions" 
     337  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
     338  xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" 
     339  targetNamespace="http://schemas.qoscosgrid.org/ntf/2011/04/extensions" 
     340  elementFormDefault="qualified"&gt; 
     341 
     342  &lt;xsd:import namespace="http://docs.oasis-open.org/wsn/b-2"  
     343   schemaLocation="http://docs.oasis-open.org/wsn/b-2.xsd"/&gt; 
     344    
     345   &lt;xsd:element name="RegisterPublisherID" type="ID"/&gt; 
     346   &lt;xsd:element name="SubscriptionID" type="ID"/&gt; 
     347   &lt;xsd:element name="PullPointID" type="ID"/&gt; 
     348   &lt;xsd:element name="CurrentMessage" type="CM"/&gt; 
     349   &lt;xsd:element name="XSLTTranslation" type="XSLTTrans"/&gt; 
     350   
     351   &lt;xsd:simpleType name="ID"&gt; 
     352    &lt;xsd:restriction base="xsd:string"&gt; 
     353     &lt;xsd:maxLength value="32"/&gt; 
     354    &lt;/xsd:restriction&gt; 
     355   &lt;/xsd:simpleType&gt; 
     356 
     357   &lt;xsd:complexType name="CM"&gt; 
     358    &lt;xsd:all&gt; 
     359     &lt;xsd:element name="NotifyTime" type="xsd:dateTime" minOccurs="0"/&gt; 
     360     &lt;xsd:element ref="wsnt:ProducerReference" minOccurs="0" maxOccurs="1"/&gt; 
     361     &lt;xsd:element name="Message" type="MSG" minOccurs="1"/&gt; 
     362    &lt;/xsd:all&gt; 
     363   &lt;/xsd:complexType&gt; 
     364 
     365   &lt;xsd:complexType name="MSG"&gt; 
     366    &lt;xsd:sequence&gt; 
     367     &lt;xsd:any minOccurs="0" maxOccurs="1" processContents="lax"/&gt; 
     368    &lt;/xsd:sequence&gt; 
     369   &lt;/xsd:complexType&gt; 
     370 
     371   &lt;xsd:simpleType name="XSLTTrans"&gt; 
     372    &lt;xsd:restriction base="xsd:string"&gt; 
     373     &lt;xsd:maxLength value="4096"/&gt; 
     374    &lt;/xsd:restriction&gt; 
     375   &lt;/xsd:simpleType&gt;   
     376 
     377&lt;!-- ================= QCG Notification manager : ListPullPoints ================== --&gt; 
     378 
     379   &lt;xsd:complexType name="ListSubscriptionsFilter"&gt; 
     380    &lt;xsd:sequence&gt; 
     381     &lt;xsd:element name="SubscriptionID" type="ID" minOccurs="0" maxOccurs="1"/&gt; 
     382     &lt;xsd:element name="ConsumerReference" type="wsa:EndpointReferenceType"  
     383      minOccurs="0" maxOccurs="1"/&gt; 
     384     &lt;xsd:element name="CreationTimeMin" type="wsnt:AbsoluteOrRelativeTimeType"  
     385      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     386     &lt;xsd:element name="CreationTimeMax" type="wsnt:AbsoluteOrRelativeTimeType"  
     387      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     388     &lt;xsd:element name="TerminationTimeMin" type="wsnt:AbsoluteOrRelativeTimeType"  
     389      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     390     &lt;xsd:element name="TerminationTimeMax" type="wsnt:AbsoluteOrRelativeTimeType"  
     391      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     392     &lt;xsd:element ref="wsnt:Filter" minOccurs="0" maxOccurs="1"/&gt;  
     393     &lt;xsd:any namespace="##other" processContents="lax"  
     394      minOccurs="0" maxOccurs="unbounded"/&gt; 
     395    &lt;/xsd:sequence&gt; 
     396   &lt;/xsd:complexType&gt; 
     397 
     398   &lt;xsd:element name="ListSubscriptions"&gt; 
     399    &lt;xsd:complexType&gt; 
     400     &lt;xsd:sequence&gt; 
     401      &lt;xsd:element name="Filter" type="ListSubscriptionsFilter"  
     402       minOccurs="0" maxOccurs="1"/&gt; 
     403      &lt;xsd:element name="MaxNumber" type="xsd:integer"  
     404       minOccurs="0" maxOccurs="1"/&gt; 
     405      &lt;xsd:any namespace="##other" processContents="lax"  
     406       minOccurs="0" maxOccurs="unbounded"/&gt; 
     407     &lt;/xsd:sequence&gt; 
     408    &lt;/xsd:complexType&gt; 
     409   &lt;/xsd:element&gt; 
     410     
     411   &lt;xsd:complexType name="Subscription"&gt; 
     412    &lt;xsd:sequence&gt; 
     413     &lt;xsd:element name="SubscriptionID" type="ID"/&gt; 
     414     &lt;xsd:element name="ConsumerReference" type="wsa:EndpointReferenceType"  
     415      minOccurs="0" maxOccurs="1" /&gt; 
     416     &lt;xsd:element name="CreationTime" type="wsnt:AbsoluteOrRelativeTimeType"  
     417      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     418     &lt;xsd:element name="TerminationTime" type="wsnt:AbsoluteOrRelativeTimeType"  
     419      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     420     &lt;xsd:element ref="wsnt:Filter" minOccurs="0" maxOccurs="1"/&gt;                                           
     421     &lt;xsd:any namespace="##other" processContents="lax"  
     422      minOccurs="0" maxOccurs="unbounded"/&gt; 
     423    &lt;/xsd:sequence&gt; 
     424   &lt;/xsd:complexType&gt; 
     425     
     426   &lt;xsd:element name="ListSubscriptionsResponse"&gt; 
     427    &lt;xsd:complexType&gt; 
     428     &lt;xsd:sequence&gt; 
     429      &lt;xsd:element name="Subscription" type="Subscription"  
     430       minOccurs="0" maxOccurs="unbounded"/&gt; 
     431      &lt;xsd:any namespace="##other" processContents="lax"  
     432       minOccurs="0" maxOccurs="unbounded"/&gt; 
     433     &lt;/xsd:sequence&gt; 
     434    &lt;/xsd:complexType&gt; 
     435   &lt;/xsd:element&gt; 
     436 
     437&lt;!-- ================= QCG Notification manager : ListPublishersRegistrations ================== --&gt; 
     438 
     439   &lt;xsd:complexType name="ListPublishersRegistrationsFilter"&gt; 
     440    &lt;xsd:sequence&gt; 
     441     &lt;xsd:element name="PublisherRegistrationID" type="ID"  
     442      minOccurs="0" maxOccurs="1"/&gt; 
     443     &lt;xsd:element name="PublisherReference" type="wsa:EndpointReferenceType"  
     444      minOccurs="0" maxOccurs="1"/&gt; 
     445     &lt;xsd:element name="CreationTimeMin" type="wsnt:AbsoluteOrRelativeTimeType"  
     446      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     447     &lt;xsd:element name="CreationTimeMax" type="wsnt:AbsoluteOrRelativeTimeType"  
     448      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     449     &lt;xsd:element name="TerminationTimeMin" type="wsnt:AbsoluteOrRelativeTimeType"  
     450      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     451     &lt;xsd:element name="TerminationTimeMax" type="wsnt:AbsoluteOrRelativeTimeType"  
     452      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     453     &lt;xsd:any namespace="##other" processContents="lax"  
     454      minOccurs="0" maxOccurs="unbounded"/&gt; 
     455    &lt;/xsd:sequence&gt; 
     456   &lt;/xsd:complexType&gt; 
     457 
     458   &lt;xsd:element name="ListPublishersRegistrations"&gt; 
     459    &lt;xsd:complexType&gt; 
     460     &lt;xsd:sequence&gt; 
     461      &lt;xsd:element name="Filter" type="ListPublishersRegistrationsFilter"  
     462       minOccurs="0" maxOccurs="1"/&gt; 
     463      &lt;xsd:element name="MaxNumber" type="xsd:integer"  
     464       minOccurs="0" maxOccurs="1"/&gt; 
     465      &lt;xsd:any namespace="##other" processContents="lax"  
     466       minOccurs="0" maxOccurs="unbounded"/&gt; 
     467     &lt;/xsd:sequence&gt; 
     468    &lt;/xsd:complexType&gt; 
     469   &lt;/xsd:element&gt; 
     470     
     471   &lt;xsd:complexType name="PublisherRegistration"&gt; 
     472    &lt;xsd:sequence&gt; 
     473     &lt;xsd:element name="PublisherRegistrationID" type="ID"/&gt; 
     474     &lt;xsd:element name="PublisherReference" type="wsa:EndpointReferenceType"  
     475      minOccurs="0" maxOccurs="1"/&gt; 
     476     &lt;xsd:element name="CreationTime" type="wsnt:AbsoluteOrRelativeTimeType"  
     477      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     478     &lt;xsd:element name="TerminationTime" type="wsnt:AbsoluteOrRelativeTimeType"  
     479      nillable="true" minOccurs="0" maxOccurs="1"/&gt;                      
     480     &lt;xsd:any namespace="##other" processContents="lax"  
     481      minOccurs="0" maxOccurs="unbounded"/&gt; 
     482    &lt;/xsd:sequence&gt; 
     483   &lt;/xsd:complexType&gt; 
     484     
     485   &lt;xsd:element name="ListPublishersRegistrationsResponse"&gt; 
     486    &lt;xsd:complexType&gt; 
     487     &lt;xsd:sequence&gt; 
     488      &lt;xsd:element name="PublisherRegistration" type="PublisherRegistration"  
     489       minOccurs="0" maxOccurs="unbounded"/&gt; 
     490      &lt;xsd:any namespace="##other" processContents="lax"  
     491       minOccurs="0" maxOccurs="unbounded"/&gt; 
     492     &lt;/xsd:sequence&gt; 
     493    &lt;/xsd:complexType&gt; 
     494   &lt;/xsd:element&gt; 
     495 
     496&lt;!-- ================= QCG Notification manager : ListPullPoints ================== --&gt; 
     497 
     498   &lt;xsd:complexType name="ListPullPointsFilter"&gt; 
     499    &lt;xsd:sequence&gt; 
     500     &lt;xsd:element name="PullPointID" type="ID"  
     501      minOccurs="0" maxOccurs="1"/&gt;         
     502     &lt;xsd:element name="PullPointReference" type="wsa:EndpointReferenceType"  
     503      minOccurs="0" maxOccurs="1"/&gt; 
     504     &lt;xsd:element name="CreationTimeMin" type="wsnt:AbsoluteOrRelativeTimeType"  
     505      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     506     &lt;xsd:element name="CreationTimeMax" type="wsnt:AbsoluteOrRelativeTimeType"  
     507      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     508     &lt;xsd:element name="TerminationTimeMin" type="wsnt:AbsoluteOrRelativeTimeType"  
     509      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     510     &lt;xsd:element name="TerminationTimeMax" type="wsnt:AbsoluteOrRelativeTimeType"  
     511      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     512     &lt;xsd:any namespace="##other" processContents="lax"  
     513      minOccurs="0" maxOccurs="unbounded"/&gt; 
     514    &lt;/xsd:sequence&gt; 
     515   &lt;/xsd:complexType&gt; 
     516 
     517   &lt;xsd:element name="ListPullPoints"&gt; 
     518    &lt;xsd:complexType&gt; 
     519     &lt;xsd:sequence&gt; 
     520      &lt;xsd:element name="Filter" type="ListPullPointsFilter"  
     521       minOccurs="0" maxOccurs="1"/&gt; 
     522      &lt;xsd:element name="MaxNumber" type="xsd:integer"  
     523       minOccurs="0" maxOccurs="1"/&gt; 
     524      &lt;xsd:any namespace="##other" processContents="lax"  
     525       minOccurs="0" maxOccurs="unbounded"/&gt; 
     526     &lt;/xsd:sequence&gt; 
     527    &lt;/xsd:complexType&gt; 
     528   &lt;/xsd:element&gt; 
     529     
     530   &lt;xsd:complexType name="PullPoint"&gt; 
     531    &lt;xsd:sequence&gt; 
     532     &lt;xsd:element name="PullPointID" type="ID"  
     533      minOccurs="0" maxOccurs="1"/&gt;    
     534     &lt;xsd:element name="PullPointReference" type="wsa:EndpointReferenceType"  
     535      minOccurs="0" maxOccurs="1"/&gt; 
     536     &lt;xsd:element name="CreationTime" type="wsnt:AbsoluteOrRelativeTimeType"  
     537      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     538     &lt;xsd:element name="TerminationTime" type="wsnt:AbsoluteOrRelativeTimeType"  
     539      nillable="true" minOccurs="0" maxOccurs="1"/&gt;                      
     540     &lt;xsd:any namespace="##other" processContents="lax"  
     541      minOccurs="0" maxOccurs="unbounded"/&gt; 
     542    &lt;/xsd:sequence&gt; 
     543   &lt;/xsd:complexType&gt; 
     544     
     545   &lt;xsd:element name="ListPullPointsResponse"&gt; 
     546    &lt;xsd:complexType&gt; 
     547     &lt;xsd:sequence&gt; 
     548      &lt;xsd:element name="PullPoint" type="PullPoint"  
     549       minOccurs="0" maxOccurs="unbounded"/&gt; 
     550      &lt;xsd:any namespace="##other" processContents="lax"  
     551       minOccurs="0" maxOccurs="unbounded"/&gt; 
     552     &lt;/xsd:sequence&gt; 
     553    &lt;/xsd:complexType&gt; 
     554   &lt;/xsd:element&gt; 
     555 
     556&lt;!-- ================= QCG Notification manager : ListTopicNamespaces ================== --&gt; 
     557     
     558   &lt;xsd:complexType name="ListTopicNamespacesFilter"&gt; 
     559    &lt;xsd:sequence&gt; 
     560     &lt;xsd:element name="targetNamespace" type="xsd:anyURI"  
     561      minOccurs="0" maxOccurs="1"/&gt; 
     562    &lt;/xsd:sequence&gt; 
     563   &lt;/xsd:complexType&gt; 
     564 
     565   &lt;xsd:element name="ListTopicNamespaces"&gt; 
     566    &lt;xsd:complexType&gt; 
     567     &lt;xsd:sequence&gt; 
     568      &lt;xsd:element name="Filter" type="ListTopicNamespacesFilter"  
     569       minOccurs="0" maxOccurs="1"/&gt; 
     570      &lt;xsd:element name="MaxNumber" type="xsd:integer"  
     571       minOccurs="0" maxOccurs="1"/&gt; 
     572      &lt;xsd:any namespace="##other" processContents="lax" 
     573       minOccurs="0" maxOccurs="unbounded"/&gt; 
     574     &lt;/xsd:sequence&gt; 
     575    &lt;/xsd:complexType&gt; 
     576   &lt;/xsd:element&gt; 
     577     
     578   &lt;xsd:complexType name="TopicNamespace"&gt; 
     579    &lt;xsd:sequence&gt; 
     580     &lt;xsd:element name="targetNamespace" type="xsd:anyURI" use="required"/&gt; 
     581     &lt;xsd:element name="Topics" type="xsd:anyURI" minOccurs="0" maxOccurs="unbounded"/&gt; 
     582     &lt;xsd:any namespace="##other" processContents="lax" 
     583      minOccurs="0" maxOccurs="unbounded"/&gt; 
     584    &lt;/xsd:sequence&gt; 
     585   &lt;/xsd:complexType&gt; 
     586     
     587   &lt;xsd:element name="ListTopicNamespacesResponse"&gt; 
     588    &lt;xsd:complexType&gt; 
     589     &lt;xsd:sequence&gt; 
     590      &lt;xsd:element name="TopicNamespace" type="TopicNamespace" 
     591       minOccurs="0" maxOccurs="unbounded"/&gt; 
     592      &lt;xsd:any namespace="##other" processContents="lax" 
     593       minOccurs="0" maxOccurs="unbounded"/&gt; 
     594     &lt;/xsd:sequence&gt; 
     595    &lt;/xsd:complexType&gt; 
     596   &lt;/xsd:element&gt; 
     597 
     598&lt;!-- ================= QCG Notification manager : AddTopicNamespace ================== --&gt; 
     599 
     600   &lt;xsd:element name="AddTopicNamespace"&gt; 
     601    &lt;xsd:complexType&gt; 
     602     &lt;xsd:sequence&gt; 
     603      &lt;xsd:element ref="wstop:TopicNamespace"/&gt; 
     604       &lt;xsd:any namespace="##other" processContents="lax" 
     605        minOccurs="0" maxOccurs="unbounded"/&gt; 
     606     &lt;/xsd:sequence&gt; 
     607    &lt;/xsd:complexType&gt; 
     608   &lt;/xsd:element&gt; 
     609    
     610   &lt;xsd:element name="AddTopicNamespaceResponse"&gt; 
     611    &lt;xsd:complexType&gt; 
     612     &lt;xsd:sequence&gt; 
     613      &lt;xsd:any namespace="##other" processContents="lax" 
     614       minOccurs="0" maxOccurs="unbounded"/&gt; 
     615     &lt;/xsd:sequence&gt; 
     616    &lt;/xsd:complexType&gt; 
     617   &lt;/xsd:element&gt; 
     618 
     619&lt;!-- ================= QCG Notification manager : RemoveTopicNamespace ================== --&gt; 
     620 
     621   &lt;xsd:element name="RemoveTopicNamespace"&gt; 
     622    &lt;xsd:complexType&gt; 
     623     &lt;xsd:sequence&gt; 
     624      &lt;xsd:element name="targetNamespace" type="xsd:anyURI"  
     625       use="required"/&gt; 
     626      &lt;xsd:any namespace="##other" processContents="lax" 
     627       minOccurs="0" maxOccurs="unbounded"/&gt; 
     628     &lt;/xsd:sequence&gt; 
     629    &lt;/xsd:complexType&gt; 
     630   &lt;/xsd:element&gt; 
     631     
     632   &lt;xsd:element name="RemoveTopicNamespaceResponse"&gt; 
     633    &lt;xsd:complexType&gt; 
     634     &lt;xsd:sequence&gt; 
     635      &lt;xsd:any namespace="##other" processContents="lax" 
     636       minOccurs="0" maxOccurs="unbounded"/&gt; 
     637     &lt;/xsd:sequence&gt; 
     638    &lt;/xsd:complexType&gt; 
     639   &lt;/xsd:element&gt; 
     640 
     641&lt;/xsd:schema&gt;</pre></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e715"></a>3.5.&nbsp;Methods Description</h3></div></div></div><p>The main idea of this chapter is to present the types of messages 
     642      used in the <span class="emphasis"><em>QCG Notification</em></span> scenario as well as 
     643      introduce how to construct and interpret these messages. The majority of 
     644      them is two-way style and initiated by <span class="emphasis"><em>QCG 
     645      Notification</em></span> clients. Exception is the Notify message that is 
     646      one-way style. In the first phase it is transported from a Publisher to 
     647      <span class="emphasis"><em>QCG Notification</em></span> and in the second it is 
     648      transported from <span class="emphasis"><em>QCG Notification</em></span> to subscribed 
     649      NotificationConsumers.</p><p>All supported by <span class="emphasis"><em>QCG Notification</em></span> message 
     650      types are presented and explained below.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><div class="itemizedlist"><ul type="disc"><li><p>The key information are thick;</p></li><li><p>A base of the messages structure is a delivered WSDL file, 
     651              however there are also extensions;</p></li><li><p>For all messages it is important to set a correct 
     652              WS-Addressing Action property which should be the same as SOAP 
     653              Action.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e749"></a>3.5.1.&nbsp;SubscribeRequest</h4></div></div></div><p>SubscribeRequest is sent by a Subscriber to <span class="emphasis"><em>QCG 
     654        Notification</em></span>. The message should contain information about 
     655        a NotificationConsumer and an expression defining Topic or Topics that 
     656        the Subscription will affect. If a message processing is successful, a 
     657        Subscription is created. It is possible to create many equal 
     658        Subscriptions by sending numerously the same SubscribeRequest 
     659        message.</p><pre class="programlisting">SOAP-ENV:Envelope ... &gt; 
     660   &lt;SOAP-ENV:Header&gt; 
     661    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     662     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     663      NotificationProducer/SubscribeRequest</strong></span> 
     664    &lt;/wsa:Action&gt; 
     665    ... 
     666   &lt;/SOAP-ENV:Header&gt; 
     667   &lt;SOAP-ENV:Body&gt; 
     668    &lt;wsnt:Subscribe&gt; 
     669     &lt;wsnt:ConsumerReference&gt; 
     670      &lt;wsa:Address&gt; 
     671         <span class="bold"><strong>https://localhost:2233</strong></span> 
     672      &lt;/wsa:Address&gt; 
     673     &lt;/wsnt:ConsumerReference&gt; 
     674     &lt;wsnt:Filter&gt; 
     675      &lt;wsnt:TopicExpression   
     676        <span class="bold"><strong>xmlns:tns="<span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span>"</strong></span>  
     677        Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>&gt; 
     678           <span class="bold"><strong>tns://*</strong></span> 
     679      &lt;/wsnt:TopicExpression&gt; 
     680      &lt;wsnt:MessageContent 
     681        <span class="bold"><strong>xmlns:smnex=http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage</strong></span>  
     682        Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116"&gt; 
     683           <span class="bold"><strong>boolean(//smnex:State[text()="on"])</strong></span> 
     684      &lt;/wsnt:MessageContent&gt; 
     685     &lt;/wsnt:Filter&gt; 
     686     &lt;wsnt:InitialTerminationTime&gt; 
     687      <span class="bold"><strong>2007-07-23T10:24:14+02:00</strong></span> 
     688     &lt;/wsnt:InitialTerminationTime&gt; 
     689     &lt;smn-ext:XSLTTranslation&gt; 
     690      &lt;![[CDATA<span class="bold"><strong> 
     691      &lt;?xml version="1.0" encoding="ISO-8859-1"?&gt; 
     692       &lt;xsl:stylesheet version 1.0" 
     693        xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
     694        xmln:s=http://schemas.qoscosgrid.org/ntf/1011/04/sample/myhousemessage"&gt; 
     695        &lt;xsl:output method="text"/&gt; 
     696        &lt;xsl:template match="/"&gt; 
     697         ### Sample QCG-Notification message ### 
     698         &lt;xsl:apply-templates/&gt; 
     699        &lt;/xsl:template&gt; 
     700        &lt;xsl:template match="s:State"&gt; 
     701          Value of State is: &lt;xsl:value-of select="."/&gt; 
     702        &lt;/xsl:template&gt; 
     703       &lt;/xsl:stylesheet&gt;</strong></span> 
     704      ]]&gt; 
     705     &lt;/smn-ext:XSLTTranslation&gt; 
     706    &lt;/wsnt:Subscribe&gt; 
     707   &lt;/SOAP-ENV:Body&gt; 
     708&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     709            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ 
     710            NotificationProducer/SubscribeRequest. <span class="emphasis"><em>If differ, a 
     711            fault will be returned.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnt:Subscribe/wsnt:ConsumerReference/wsa:Address</em></span></p><p>A Consumer address. It is significant to specify a correct 
     712            prefix (http, https, xmpp). The prefix should be adequate to the 
     713            expected type of connection between <span class="emphasis"><em>QCG 
     714            Notification</em></span> and NotificationConsumer(s): http for 
     715            anonymous, https for ssl-based and xmpp for sending notifications 
     716            to jabber clients.</p></li><li><p><span class="emphasis"><em>//wsnt:Subscribe/wsnt:Filter</em></span></p><p>In this element, a Subscriber defines filtering parameters 
     717            to the Subscription being created. In other words, it identifies a 
     718            type of Notifications that should be forwarded to the selected 
     719            Notification Consumer.</p></li><li><p><span class="emphasis"><em>//wsnt:Subscribe/wsnt:Filter/wsnt:TopicExpression</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>This element defines Topic or Topics 
     720            that Subscription should affect. Topics should come from supported 
     721            Topic Namespaces that are also defined for the element. 
     722            TopicExpression may be defined in two ways: (1) using prefixed 
     723            form (e.g. tns://*) - the topicNamespace is defined in a 
     724            TopicExpression element and assigned to some prefix (e.g. tns) or 
     725            (2) using inline form (e.g. 
     726            {http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics}//*).</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnt:Subscribe/wsnt:Filter/wsnt:TopicExpression/@Dialect</em></span></p><p>URI that specifies a TopicExpression Dialect type. Allowed 
     727            Dialects types are as follows: 
     728            <span class="emphasis"><em>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple", 
     729            "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete", 
     730            "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</em></span></p></li><li><p><span class="emphasis"><em>//wsnt:Subscribe/wsnt:Filter/wsnt:MessageContent</em></span></p><p>An optional element. If present, the MessageContent should 
     731            define an XPath boolean expression that will be evaluated over 
     732            redistributed Notificatiom Messages to true or false. If such an 
     733            evaluation returns true, the message is forwarded, otherwise it is 
     734            not. The namespaces used in the expression may be defined inside 
     735            the MessageContent element as additional attributes or using 
     736            in-line form e.g. 
     737            boolean(//{http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage}State[text()="on"].The 
     738            Dialect should always be: 
     739            <span class="emphasis"><em>http://www.w3.org/TR/1999/REC-xpath-19991116</em></span></p></li><li><p><span class="emphasis"><em>//wsnt:Subscribe/wsnt:InitialTerminationTime</em></span></p><p>An optional element. If present, must contain a Subscriber 
     740            suggestion for the termination time of the Subscription being 
     741            created (expressed as a local time with timezone). If not present, 
     742            the termination time is determined automatically - <span class="emphasis"><em>QCG 
     743            Notification <span class="emphasis"><em>specify a default time 
     744            period</em></span></em></span> for the Subscription to be 
     745            valid.</p></li><li><p><span class="emphasis"><em>//wsnt:Subscribe/smn-ext:XSLTTranslation</em></span></p><p>An optional element. Inside the XSLTTranslation a Subscriber 
     746            may deliver an XSLT document that will be used by some publishing 
     747            modules to transform notification messages to a different form 
     748            (for example user readable). Note that an actual XSLT document 
     749            should be enclosed in &lt;![[CDATA and ]]&gt; markers.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e856"></a>3.5.2.&nbsp;SubscribeResponse</h4></div></div></div><p>In answer on SubscribeRequest there is sent the 
     750        SubscribeResponse message. <span class="emphasis"><em>QCG Notification</em></span> 
     751        deliver in this message a reference to the created Subscription. This 
     752        ID can be used for manipulation and to remove the Subscription.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     753   &lt;SOAP-ENV:Header&gt; 
     754    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     755     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     756      NotificationProducer/SubscribeResponse</strong></span> 
     757    &lt;/wsa:Action&gt; 
     758    ... 
     759   &lt;/SOAP-ENV:Header&gt; 
     760   &lt;SOAP-ENV:Body&gt; 
     761    &lt;wsnt:SubscribeResponse&gt; 
     762     &lt;wsnt:SubscriptionReference&gt; 
     763      &lt;wsa:Address&gt; 
     764         <span class="bold"><strong>http://some.address</strong></span> 
     765      &lt;/wsa:Address&gt; 
     766      &lt;wsa:ReferenceParameters&gt; 
     767         <span class="bold"><strong>&lt;SubscriptionID  
     768          xmlns="http://schemas.qoscosgrid.org/ntf/2011/04/extensions"&gt; 
     769          506435877 
     770         &lt;/SubscriptionID&gt;</strong></span> 
     771      &lt;/wsa:ReferenceParameters&gt; 
     772     &lt;/wsnt:SubscriptionReference&gt; 
     773    &lt;/wsnt:SubscribeResponse&gt; 
     774   &lt;/SOAP-ENV:Body&gt; 
     775&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     776            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ 
     777            NotificationProducer/SubscribeResponse. <span class="emphasis"><em>If differ, a 
     778            fault will be returned.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnt:SubscribeResponse/wsnt:SubscriptionReference/wsa:Address</em></span></p><p>An address of a SubscriptionManager interface. In the 
     779            current solution it is the <span class="emphasis"><em>QCG Notification</em></span> 
     780            service address.</p></li><li><p><span class="emphasis"><em>//wsnt:SubscribeResponse/wsnt:SubscriptionReference/</em></span></p><p><span class="emphasis"><em>wsa:ReferenceParameters/SubscriptionID</em></span></p><p>An extensive element in xsd:any that contains Subscription 
     781            ID. At this time it is at most 32 char long string.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e904"></a>3.5.3.&nbsp;RenewRequest</h4></div></div></div><p>When a Subscriber wants to renew a Subscription, it can send the 
     782        RenewRequest message to <span class="emphasis"><em>QCG Notification</em></span>. The 
     783        message should contain the Subscription ID element and a new 
     784        termination time suggesation.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     785   &lt;SOAP-ENV:Header&gt; 
     786    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     787     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     788      SubscriptionManager/RenewRequest</strong></span> 
     789    &lt;/wsa:Action&gt; 
     790    ... 
     791   &lt;/SOAP-ENV:Header&gt; 
     792   &lt;SOAP-ENV:Body&gt; 
     793    &lt;wsnt:Renew&gt; 
     794     &lt;wsnt:TerminationTime&gt; 
     795      <span class="bold"><strong>2007-07-25T12:24:14+02:00</strong></span> 
     796     &lt;/wsnt:TerminationTime&gt; 
     797     &lt;smn-ext:SubscriptionID&gt; 
     798      <span class="bold"><strong>506435877</strong></span> 
     799     &lt;/smn-ext:SubscriptionID&gt; 
     800    &lt;/wsnt:Renew&gt; 
     801   &lt;/SOAP-ENV:Body&gt; 
     802&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     803            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ 
     804            SubscriptionManager/RenewRequest. <span class="emphasis"><em>If differ, a fault 
     805            will be returned.</em></span></em></span></p></li><li><p>//wsnt:Renew/wsnt:TerminationTime</p><p>A Subscriber suggestion for the new termination time of the 
     806            Subscription being renewed (expressed as a local time with 
     807            timezone).</p></li><li><p><span class="emphasis"><em>//wsnt:Renew/smn-ext:SubscriptionID</em></span></p><p>A Subscription ID that was received in the SubscribeResponse 
     808            message.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e945"></a>3.5.4.&nbsp;RenewResponse</h4></div></div></div><p>An answer to the RenewRequest message is RenewResponse. The 
     809        message contains a termination time for the renewed 
     810        Subscription.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     811   &lt;SOAP-ENV:Header&gt; 
     812    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     813    <span class="bold"><strong> http://docs.oasis-open.org/wsn/bw-2/ 
     814      SubscriptionManager/RenewResponse</strong></span> 
     815    &lt;/wsa:Action&gt; 
     816    ... 
     817   &lt;/SOAP-ENV:Header&gt; 
     818   &lt;SOAP-ENV:Body&gt; 
     819    &lt;wsnt:RenewResponse&gt; 
     820     &lt;wsnt:TerminationTime&gt; 
     821      <span class="bold"><strong>2007-07-25T10:24:14Z</strong></span> 
     822     &lt;/wsnt:TerminationTime&gt; 
     823     &lt;wsnt:CurrentTime&gt; 
     824      <span class="bold"><strong>2007-07-24T10:24:14Z</strong></span> 
     825     &lt;/wsnt:CurrentTime&gt; 
     826    &lt;/wsnt:RenewResponse&gt; 
     827   &lt;/SOAP-ENV:Body&gt; 
     828&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     829            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ 
     830            SubscriptionManager/RenewResponse. <span class="emphasis"><em>If differ, a fault 
     831            will be returned.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnt:RenewResponse/wsnt:TerminationTime</em></span></p><p>A new termination time for the renewed Subscription 
     832            (expressed as UTC Time).</p></li></ul></div><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//wsnt:RenewResponse/wsnt:CurrentTime</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>A </em></span>QCG 
     833            Notification's</em></span> time when the Subscription was renewing 
     834            (expressed as UTC Time).</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e989"></a>3.5.5.&nbsp;UnsubscribeRequest</h4></div></div></div><p>When a Subscriber wants to terminate a Subscription, it has to 
     835        send the UnsubscribeRequest message to <span class="emphasis"><em>QCG 
     836        Notification</em></span>. The parameter attached to this request is a 
     837        Subscription ID.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     838   &lt;SOAP-ENV:Header&gt; 
     839    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     840     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     841      SubscriptionManager/UnsubscribeRequest</strong></span> 
     842    &lt;/wsa:Action&gt; 
     843    ... 
     844   &lt;/SOAP-ENV:Header&gt; 
     845   &lt;SOAP-ENV:Body&gt; 
     846    &lt;wsnt:Unsubscribe&gt; 
     847     &lt;smn-ext:SubscriptionID&gt; 
     848      <span class="bold"><strong>506435877</strong></span> 
     849     &lt;/smn-ext:SubscriptionID&gt; 
     850    &lt;/wsnt:Unsubscribe&gt; 
     851   &lt;/SOAP-ENV:Body&gt; 
     852&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     853            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ 
     854            SubscriptionManager/UnsubscribeRequest. <span class="emphasis"><em>If differ, a 
     855            fault will be returned.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnt:Unsubscribe/smn-ext:SubscriptionID</em></span></p><p>A Subscription ID that was received in the SubscribeResponse 
     856            message.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1022"></a>3.5.6.&nbsp;UnsubscribeResponse</h4></div></div></div><p>UnsubscribeResponse is returned to a Subscriber after 
     857        successfully processing the UnsubscribeRequest message.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     858   &lt;SOAP-ENV:Header&gt; 
     859    &lt;wsa:Action SOAP-ENV:mustUnderstAand="1"&gt; 
     860    <span class="bold"><strong> http://docs.oasis-open.org/wsn/bw-2/ 
     861      SubscriptionManager/UnsubscribeResponse</strong></span> 
     862    &lt;/wsa:Action&gt; 
     863    ... 
     864   &lt;/SOAP-ENV:Header&gt; 
     865   &lt;SOAP-ENV:Body&gt; 
     866    &lt;wsnt:UnsubscribeResponse&gt; 
     867    &lt;/wsnt:UnsubscribeResponse&gt; 
     868   &lt;/SOAP-ENV:Body&gt; 
     869&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     870            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ 
     871            SubscriptionManager/UnsubscribeResponse. <span class="emphasis"><em>If differ, a 
     872            fault will be returned.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1043"></a>3.5.7.&nbsp;RegisterPublisherRequest</h4></div></div></div><p>In order to sending Notifications, a Publisher can be obligated 
     873        to register himself previosly in <span class="emphasis"><em>QCG 
     874        Notification</em></span>. For this purpose, it sends the 
     875        RegisterPublisherRequest message to <span class="emphasis"><em>QCG 
     876        Notification</em></span>.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     877   &lt;SOAP-ENV:Header&gt; 
     878    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     879     <span class="bold"><strong>http://docs.oasis-open.org/wsn/brw-2/ 
     880      RegisterPublisher/RegisterPublisherRequest</strong></span> 
     881    &lt;/wsa:Action&gt; 
     882    ... 
     883   &lt;/SOAP-ENV:Header&gt; 
     884   &lt;SOAP-ENV:Body&gt; 
     885    &lt;wsnbr:RegisterPublisher&gt; 
     886     &lt;wsnbr:Demand&gt; 
     887      <span class="bold"><strong>false</strong></span> 
     888     &lt;/wsnbr:Demand&gt; 
     889     &lt;wsnbr:InitialTerminationTime&gt; 
     890      <span class="bold"><strong>2007-07-23T10:24:14+02:00</strong></span> 
     891     &lt;/wsnbr:InitialTerminationTime&gt; 
     892    &lt;/wsnbr:RegisterPublisher&gt; 
     893   &lt;/SOAP-ENV:Body&gt; 
     894&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     895            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/brw-2/ 
     896            RegisterPublisher/RegisterPublisherRequest. <span class="emphasis"><em>If differ, a 
     897            fault will be returned.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnbr:RegisterPublisher/wsnbr:Demand</em></span></p><p>Determine a demand-based pattern. At this time this pattern 
     898            isn't supported so default <span class="emphasis"><em>false</em></span> is the sole 
     899            accepted value.</p></li><li><p><span class="emphasis"><em>//wsnbr:RegisterPublisher/wsnbr:InitialTerminationTime</em></span></p><p>An optional element. If present, must contain the requester 
     900            suggestion for the termination time of the Registration being 
     901            created (expressed as a local time with timezone). If not present, 
     902            the termination time is determined automatically - <span class="emphasis"><em>QCG 
     903            Notification <span class="emphasis"><em>specify the default time 
     904            period</em></span></em></span> for the Registration to be valid. 
     905            Every Notify message renews the termination time.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1096"></a>3.5.8.&nbsp;RegisterPublisherResponse</h4></div></div></div><p>In a response to a successful registration process, 
     906        <span class="emphasis"><em>QCG Notification</em></span> sends RegisterPublisherResponse. 
     907        This message contains a reference to the created Registration. The 
     908        attached ID is necessary to send any Notification message.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     909   &lt;SOAP-ENV:Header&gt; 
     910    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     911     <span class="bold"><strong>http://docs.oasis-open.org/wsn/brw-2/ 
     912      RegisterPublisher/RegisterPublisherResponse</strong></span> 
     913    &lt;/wsa:Action&gt; 
     914   &lt;/SOAP-ENV:Header&gt; 
     915   &lt;SOAP-ENV:Body&gt; 
     916    &lt;wsnbr:RegisterPublisherResponse&gt; 
     917     &lt;wsnbr:PublisherRegistrationReference&gt; 
     918      &lt;wsa:Address&gt; 
     919         <span class="bold"><strong>http://some.address</strong></span> 
     920      &lt;/wsa:Address&gt; 
     921      &lt;wsa:ReferenceParameters&gt; 
     922         <span class="bold"><strong>&lt;RegisterPublisherID  
     923        xmlns="http://schemas.qoscosgrid.org/ntf/2011/04/extensions"&gt; 
     924          1207382668 
     925         &lt;/RegisterPublisherID&gt;</strong></span> 
     926      &lt;/wsa:ReferenceParameters&gt; 
     927     &lt;/wsnbr:PublisherRegistrationReference&gt; 
     928    &lt;/wsnbr:RegisterPublisherResponse&gt; 
     929   &lt;/SOAP-ENV:Body&gt; 
     930&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     931            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/brw-2/RegisterPublisher/RegisterPublisherResponse. 
     932            <span class="emphasis"><em>If differ, a fault will be 
     933            returned.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnbr:RegisterPublisherResponse/wsnbr:PublisherRegistrationReference/wsa:Address</em></span></p><p>An address of a PublisherRegistration Manager interface. In 
     934            the current solution it is the <span class="emphasis"><em>QCG 
     935            Notification</em></span> service address.</p></li><li><p><span class="emphasis"><em>//wsnbr:RegisterPublisherResponse/wsnbr:PublisherRegistrationReference/wsa:ReferenceParameters/RegisterPublisherID</em></span></p><p>An extensive element in xsd:any that contains a Publisher 
     936            Registration ID. It defines a session that is created after 
     937            registration and removed by sending the DestroyRegistration 
     938            message. At this time it is at most 32 char long string.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1141"></a>3.5.9.&nbsp;Notify</h4></div></div></div><p>Notify consists of one or many NotificationMessages. Any of them 
     939        is a separate Notification message and is processed independently. 
     940        NotificationMessage should define a single Topic it concerns. 
     941        TopicExpression should be written in the same Dialect that the 
     942        Subscription was created in. The Publisher Registration ID has to be 
     943        attached to Notify messages.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     944   &lt;SOAP-ENV:Header&gt; 
     945    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     946     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     947      NotificationConsumer/Notify</strong></span> 
     948    &lt;/wsa:Action&gt; 
     949   &lt;/SOAP-ENV:Header&gt; 
     950   &lt;SOAP-ENV:Body&gt; 
     951    &lt;wsnt:Notify&gt; 
     952     &lt;wsnt:NotificationMessage&gt; 
     953      &lt;wsnt:Topic  
     954       Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span><span class="bold"><strong>  
     955       xmlns:tns="<span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span>"&gt; 
     956          tns:House/Kitchen/Light</strong></span> 
     957      &lt;/wsnt:Topic&gt; 
     958      &lt;wsnt:ProducerReference&gt; 
     959       &lt;wsa:Address&gt; 
     960        <span class="bold"><strong>http://some.address 
     961       </strong></span>&lt;wsa:Address&gt; 
     962      &lt;wsnt:ProducerReference&gt; 
     963      &lt;wsnt:Message&gt; 
     964         <span class="bold"><strong>&lt;smnex:State  
     965          xmlns:smnex="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"&gt; 
     966             on 
     967         &lt;/smnex:State&gt;</strong></span> 
     968      &lt;/wsnt:Message&gt; 
     969     &lt;/wsnt:NotificationMessage&gt; 
     970     &lt;smn-ext:RegisterPublisherID&gt; 
     971      <span class="bold"><strong>1207382668</strong></span> 
     972     &lt;/smn-ext:RegisterPublisherID&gt; 
     973    &lt;/wsnt:Notify&gt; 
     974   &lt;/SOAP-ENV:Body&gt; 
     975&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     976            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/NotificationConsumer/Notify. 
     977            <span class="emphasis"><em>If differ, a fault will be 
     978            returned.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnt:Notify</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>A set of Notification 
     979            messages.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnt:Notify/wsnt:NotificationMessage</em></span></p><p>A single Notification message.</p></li><li><p><span class="emphasis"><em>//wsnt:Notify/wsnt:NotificationMessage/wsnt:Topic</em></span></p><p>The content of this element is an expression that defines 
     980            exactly one Topic in a specified Dialect type. The Topic should be 
     981            supported. The Topic may be defined in two ways: (1) using 
     982            prefixed form (e.g. tns:House/Kithchen/Light) - the topicNamespace 
     983            is defined in a Topic element and assigned to some prefix (e.g. 
     984            tns) or (2) using inline form (e.g. 
     985            {http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics}House/Kitchen/Light).</p></li><li><p><span class="emphasis"><em>//wsnt:Notify/wsnt:NotificationMessage/wsnt:Topic/@Dialect</em></span></p><p>URI that specifies TopicExpression Dialect type. Allowed 
     986            Dialect types are as follows: 
     987            <span class="emphasis"><em>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple", 
     988            "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete", 
     989            "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full".</em></span></p></li><li><p><span class="emphasis"><em>//wsnt:Notify/wsnt:NotificationMessage/wsnt:ProducerReference/wsa:Address</em></span></p><p>A Notification producer (Publisher) address.</p></li><li><p><span class="emphasis"><em>//wsnt:Notify/wsnt:NotificationMessage/wsnt:Message</em></span></p><p>A Notify message content. Currently supported are messages 
     990            shorter than 4096 bytes.</p></li><li><p><span class="emphasis"><em>//wsnt:Notify/smn-ext:RegisterPublisherID</em></span></p><p>A Publisher Registration ID that was received in the 
     991            RegisterPublisherResponse message.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1225"></a>3.5.10.&nbsp;DestroyRegistrationRequest</h4></div></div></div><p>A Publisher can terminate a Registration by sending the 
     992        DestroyRegistrationRequest message to <span class="emphasis"><em>QCG 
     993        Notification</em></span>. The parameter attached to this request is a 
     994        Publisher Registration ID.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     995   &lt;SOAP-ENV:Header&gt; 
     996    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     997     <span class="bold"><strong>http://docs.oasis-open-org/wsn/brw-2/ 
     998      PublisherRegistrationManager/DestroyRegistrationRequest</strong></span> 
     999    &lt;/wsa:Action&gt; 
     1000   &lt;/SOAP-ENV:Header&gt; 
     1001   &lt;SOAP-ENV:Body&gt; 
     1002    &lt;wsnbr:DestroyRegistration&gt; 
     1003     &lt;smn-ext:RegisterPublisherID&gt; 
     1004      <span class="bold"><strong>387837036</strong></span> 
     1005     &lt;/smn-ext:RegisterPublisherID&gt; 
     1006    &lt;/wsnbr:DestroyRegistration&gt; 
     1007   &lt;/SOAP-ENV:Body&gt; 
     1008&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     1009            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/brw-2/ 
     1010            PublisherRegistrationManager/DestroyRegistrationRequest. 
     1011            <span class="emphasis"><em>If differ, a fault will be 
     1012            returned.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnbr:DestroyRegistration/smn-ext:RegisterPublisherID</em></span></p><p>A Publisher Registration ID that was received in a 
     1013            RegisterPublisherResponse message.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1258"></a>3.5.11.&nbsp;DestroyRegistrationResponse</h4></div></div></div><p>DestroyRegistrationResponse is returned to a Publisher after a 
     1014        successful process of destroying a Publisher Registration, in a 
     1015        response to the DestroyRegistration message.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1016   &lt;SOAP-ENV:Header&gt; 
     1017    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1018     <span class="bold"><strong>http://docs.oasis-open-org/wsn/brw-2/ 
     1019      PublisherRegistrationManager/DestroyRegistrationResponse</strong></span> 
     1020    &lt;/wsa:Action&gt; 
     1021   &lt;/SOAP-ENV:Header&gt; 
     1022   &lt;SOAP-ENV:Body&gt; 
     1023    &lt;wsn-br:DestroyRegistrationResponse&gt; 
     1024    &lt;/wsn-br:DestroyRegistrationResponse&gt; 
     1025   &lt;/SOAP-ENV:Body&gt; 
     1026&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     1027            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/brw-2/ 
     1028            PublisherRegistrationManager/DestroyRegistrationResponse. 
     1029            <span class="emphasis"><em>If differ, a fault will be 
     1030            returned.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1279"></a>3.5.12.&nbsp;CreatePullPointRequest</h4></div></div></div><p>In scenarios where the pull-style of notifications delivery is 
     1031        needed, Subscribers can create PullPoints. To do this, a Subscriber 
     1032        sends the CreatePullPointRequest message to <span class="emphasis"><em>QCG Notification 
     1033        PullPoint</em></span>.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1034   &lt;SOAP-ENV:Header&gt; 
     1035    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1036     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     1037      CreatePullPoint/CreatePullPointRequest</strong></span> 
     1038    &lt;/wsa:Action&gt; 
     1039    ... 
     1040   &lt;/SOAP-ENV:Header&gt; 
     1041   &lt;SOAP-ENV:Body&gt; 
     1042    &lt;wsnt:CreatePullPoint&gt; 
     1043    &lt;/wsnt:CreatePullPoint&gt; 
     1044   &lt;/SOAP-ENV:Body&gt; 
     1045&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     1046            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/CreatePullPoint/CreatePullPointRequest. 
     1047            <span class="emphasis"><em>If differ, a fault will be 
     1048            returned.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1303"></a>3.5.13.&nbsp;CreatePullPointResponse</h4></div></div></div><p>The CreatePullPointResponse message is returned in a response to 
     1049        the request of PullPoint creation. This message contains a reference 
     1050        to the just created PullPoint. </p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1051   &lt;SOAP-ENV:Header&gt; 
     1052    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1053     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     1054      CreatePullPoint/CreatePullPointResponse</strong></span> 
     1055    &lt;/wsa:Action&gt; 
     1056    ... 
     1057   &lt;/SOAP-ENV:Header&gt; 
     1058   &lt;SOAP-ENV:Body&gt; 
     1059    &lt;wsnt:CreatePullPointResponse&gt; 
     1060      &lt;wsa:Address xmlns:wsa="http://www.w3.org/2005/08/addressing"&gt; 
     1061      <span class="bold"><strong> http://some.address:2211?ppID=1100992448</strong></span> 
     1062      &lt;/wsa:Address&gt; 
     1063    &lt;/wsnt:CreatePullPointResponse&gt; 
     1064   &lt;/SOAP-ENV:Body&gt; 
     1065&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     1066            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/CreatePullPoint/CreatePullPointResponse. 
     1067            <span class="emphasis"><em>If differ, a fault will be 
     1068            returned.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnt:CreatePullPointResponse/wsa:Address</em></span></p><p>An logical address of the created PullPoint.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1333"></a>3.5.14.&nbsp;GetMessages</h4></div></div></div><p>A Pull-style NotificationConsumer can get messages buffered in a 
     1069        PullPoint by invoking the GetMessages method. It sends the 
     1070        GetMessagesRequest message directly to the specified PullPoint. The 
     1071        message can contain a specification of a maximal number of 
     1072        Notification messages that NotificationConsumer wants to receive in 
     1073        the response.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1074   &lt;SOAP-ENV:Header&gt; 
     1075    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1076     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     1077      PullPoint/GetMessagesRequest</strong></span> 
     1078    &lt;/wsa:Action&gt; 
     1079    ... 
     1080   &lt;/SOAP-ENV:Header&gt; 
     1081   &lt;SOAP-ENV:Body&gt; 
     1082    &lt;wsnt:GetMessages&gt; 
     1083      &lt;wsnt:MaximumNumber&gt;<span class="bold"><strong>10</strong></span>&lt;/wsnt:MaximumNumber&gt; 
     1084    &lt;/wsnt:GetMessages&gt; 
     1085   &lt;/SOAP-ENV:Body&gt; 
     1086&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     1087            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/PullPoint/GetMessagesRequest. 
     1088            <span class="emphasis"><em>If differ, a fault will be 
     1089            returned.</em></span></em></span></p></li></ul></div><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//wsnt:GetMessages/wsnt:MaximumNumber</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>An optional element. It defines a 
     1090            maximal number of messages that will be gotten from the 
     1091            PullPoint.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1366"></a>3.5.15.&nbsp;GetMessagesResponse</h4></div></div></div><p>GetMessagesResponse, a response message to GetMessages, consists 
     1092        of a set of Notifications received from the PullPoint. 
     1093        </p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1094   &lt;SOAP-ENV:Header&gt; 
     1095    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1096     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     1097      PullPoint/GetMessagesResponse</strong></span> 
     1098    &lt;/wsa:Action&gt; 
     1099    ... 
     1100   &lt;/SOAP-ENV:Header&gt; 
     1101   &lt;SOAP-ENV:Body&gt; 
     1102    &lt;wsnt:GetMessagesResponse&gt; 
     1103     &lt;wsnt:NotificationMessage&gt; 
     1104      &lt;wsnt:Topic  
     1105       Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>&gt; 
     1106       <span class="bold"><strong>xmlns:tns="<span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span>"</strong></span>&gt; 
     1107          <span class="bold"><strong>tns:House/Kitchen/Light</strong></span> 
     1108      &lt;/wsnt:Topic&gt; 
     1109      &lt;wsnt:ProducerReference&gt; 
     1110       &lt;wsa:Address&gt; 
     1111        <span class="bold"><strong>http://some.address 
     1112       </strong></span>&lt;wsa:Address&gt; 
     1113      &lt;wsnt:ProducerReference&gt; 
     1114      &lt;wsnt:Message&gt; 
     1115         <span class="bold"><strong><span class="bold"><strong>&lt;smnex:State  
     1116          xmlns:smnex="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"&gt; 
     1117             on 
     1118         &lt;/smnex:State&gt;</strong></span></strong></span> 
     1119      &lt;/wsnt:Message&gt; 
     1120     &lt;/wsnt:NotificationMessage&gt; 
     1121     &lt;wsnt:NotificationMessage&gt; 
     1122      ...  
     1123     &lt;/wsnt:NotificationMessage&gt; 
     1124     ... 
     1125    &lt;/wsnt:GetMessagesResponse&gt; 
     1126   &lt;/SOAP-ENV:Body&gt; 
     1127&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     1128              <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/PullPoint/GetMessagesResponse. 
     1129              <span class="emphasis"><em>If differ, a fault will be 
     1130              returned.</em></span></em></span></p></li><li><p>//wsnt:GetMessagesResponse</p><p>A set of Notification messages. The number of messages is 
     1131              restricted by the wsnt:MaximumNumber parameter defined in the 
     1132              GetMessagesRequest message.</p></li><li><p><span class="emphasis"><em>//wsnt:GetMessagesResponse/wsnt:NotificationMessage</em></span></p><p>A single Notification message.</p></li><li><p><span class="emphasis"><em>//wsnt:GetMessagesResponse/wsnt:NotificationMessage/wsnt:Topic</em></span></p><p>The content of this element is an expression that defines 
     1133              exactly one Topic in a specified Dialect type. The Topic should 
     1134              be supported.</p></li><li><p><span class="emphasis"><em>//wsnt:GetMessagesResponse/wsnt:NotificationMessage/wsnt:Topic/@Dialect</em></span></p><p>URI that specifies a TopicExpression Dialect type. Allowed 
     1135              Dialect types are as follows: 
     1136              <span class="emphasis"><em>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple", 
     1137              "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete", 
     1138              "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full".</em></span></p></li><li><p><span class="emphasis"><em>//wsnt:GetMessagesResponse/wsnt:NotificationMessage/wsnt:ProducerReference/wsa:Address</em></span></p><p>A Notification producer (Publisher) address.</p></li><li><p><span class="emphasis"><em>//wsnt:GetMessagesResponse/wsnt:NotificationMessage/wsnt:Message</em></span></p><p>A Notify message content. Currently supported are messages 
     1139              shorter than 4096 bytes.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1443"></a>3.5.16.&nbsp;DestroyPullPointRequest</h4></div></div></div><p>A PullPoint can be destroyed by invoking a DestroyPullPoint 
     1140        method. An empty request message should be sent directly to the 
     1141        PullPoint.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1142   &lt;SOAP-ENV:Header&gt; 
     1143    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1144     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     1145      PullPoint/DestroyPullPointRequest</strong></span> 
     1146    &lt;/wsa:Action&gt; 
     1147    ... 
     1148   &lt;/SOAP-ENV:Header&gt; 
     1149   &lt;SOAP-ENV:Body&gt; 
     1150    &lt;wsnt:DestroyPullPoint&gt; 
     1151    &lt;/wsnt:DestroyPullPoint&gt; 
     1152   &lt;/SOAP-ENV:Body&gt; 
     1153&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     1154            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/PullPoint/DestroyPullPointRequest. 
     1155            <span class="emphasis"><em>If differ, a fault will be 
     1156            returned.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1464"></a>3.5.17.&nbsp;DestroyPullPointResponse</h4></div></div></div><p>A response to a DestroyPullPointRequest message is an empty 
     1157        DestroyPullPointResponse message.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1158   &lt;SOAP-ENV:Header&gt; 
     1159    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1160     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     1161      PullPoint/DestroyPullPointResponse</strong></span> 
     1162    &lt;/wsa:Action&gt; 
     1163    ... 
     1164   &lt;/SOAP-ENV:Header&gt; 
     1165   &lt;SOAP-ENV:Body&gt; 
     1166    &lt;wsnt:DestroyPullPointResponse&gt; 
     1167    &lt;/wsnt:DestroyPullPointResponse&gt; 
     1168   &lt;/SOAP-ENV:Body&gt; 
     1169&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     1170            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/PullPoint/DestroyPullPointResponse. 
     1171            <span class="emphasis"><em>If differ, a fault will be 
     1172            returned.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1485"></a>3.5.18.&nbsp;GetCurrentMessageRequest</h4></div></div></div><p>GetCurrentMessageRequest is useful especially when a new 
     1173        NotificationConsumer is connecting and want to get the last published 
     1174        Notification Message on a specified Topic. Single GetCurrentMessage 
     1175        should refer exactly one Topic and has to be expressed in a supported 
     1176        Dialect type.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1177   &lt;SOAP-ENV:Header&gt; 
     1178    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1179     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     1180      NotificationProducer/GetCurrentMessageRequest</strong></span> 
     1181    &lt;/wsa:Action&gt; 
     1182   &lt;/SOAP-ENV:Header&gt; 
     1183   &lt;SOAP-ENV:Body&gt; 
     1184    &lt;wsnt:GetCurrentMessage&gt; 
     1185     &lt;wsnt:Topic  
     1186      Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>&gt; 
     1187        <span class="bold"><strong>xmlns:tns="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics"</strong></span>&gt; 
     1188         <span class="bold"><strong>tns:</strong></span><span class="bold"><strong>House/Kitchen/Light</strong></span> 
     1189     &lt;/wsnt:Topic&gt; 
     1190    &lt;/wsnt:GetCurrentMessage&gt; 
     1191   &lt;/SOAP-ENV:Body&gt; 
     1192&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     1193            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ 
     1194            NotificationProducer/GetCurrentMessageRequest. <span class="emphasis"><em>If 
     1195            differ, a fault will be returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//wsnt:GetCurrentMessage/wsnt:Topic</em></span></p><p>The content of this element is an expression that defines 
     1196            exactly one Topic in a specified Dialect type. The topic should be 
     1197            supported. The Topic may be defined in two ways: (1) using 
     1198            prefixed form (e.g. tns:House/Kithchen/Light) - the topicNamespace 
     1199            is defined in a Topic element and assigned to some prefix (e.g. 
     1200            tns) or (2) using inline form (e.g. 
     1201            {http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics}House/Kitchen/Light.</p></li><li><p><span class="emphasis"><em>//wsnt:GetCurrentMessage/wsnt:Topic/@Dialect</em></span></p><p>URI that specifies TopicExpression Dialect's type. Allowed 
     1202            dialect's types are as follows: 
     1203            <span class="emphasis"><em>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple", 
     1204            "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete", 
     1205            "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full". 
     1206            </em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1532"></a>3.5.19.&nbsp;GetCurrentMessageResponse</h4></div></div></div><p>In a response to GetCurrentMessageRequest <span class="emphasis"><em>QCG 
     1207        Notification</em></span> prepares GetCurrentMessageResponse. This 
     1208        message includes the content of the last Notification 
     1209        GetCurrentMessageRequest refers to.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1210   &lt;SOAP-ENV:Header&gt; 
     1211    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1212     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     1213      NotificationProducer/GetCurrentMessageResponse</strong></span> 
     1214    &lt;/wsa:Action&gt; 
     1215   &lt;/SOAP-ENV:Header&gt; 
     1216   &lt;SOAP-ENV:Body&gt; 
     1217    &lt;wsnt:GetCurrentMessageResponse&gt; 
     1218     &lt;smn-ext:CurrentMessage&gt; 
     1219      &lt;smn-ext:NotifyTime&gt; 
     1220         <span class="bold"><strong>2007-07-23T10:43:14Z</strong></span> 
     1221      &lt;/smn-ext:NotifyTime&gt; 
     1222      &lt;wsnt:ProducerReference&gt; 
     1223       &lt;wsa:Address&gt; 
     1224        <span class="bold"><strong>http://some.address 
     1225       </strong></span>&lt;wsa:Address&gt; 
     1226      &lt;wsnt:ProducerReference&gt;  
     1227      &lt;smn-ext:Message&gt; 
     1228         <span class="bold"><strong><span class="bold"><strong>&lt;smnex:State  
     1229          xmlns:smnex="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"&gt; 
     1230             on 
     1231         &lt;/smnex:State&gt;</strong></span></strong></span> 
     1232      &lt;/smn-ext:Message&gt; 
     1233     &lt;/smn-ext:CurrentMessage&gt; 
     1234    &lt;/wsnt:GetCurrentMessageResponse&gt; 
     1235   &lt;/SOAP-ENV:Body&gt; 
     1236&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     1237            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ 
     1238            NotificationProducer/GetCurrentMessageResponse. <span class="emphasis"><em>If 
     1239            differ, a fault will be returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//wsnt:GetCurrentMessageResponse/smn-ext:GetCurrentMessage</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>The element that contains current 
     1240            Notification and information related to this 
     1241            notification.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnt:GetCurrentMessageResponse/smn-ext:GetCurrentMessage/smn-ext:NotifyTime</em></span></p><p>The time when notification was received by <span class="emphasis"><em>QCG 
     1242            Notification</em></span>; expressed as universal time (UTC).</p></li><li><p><span class="emphasis"><em>//wsnt:GetCurrentMessageResponse/wsnt:ProducerReference/wsa:Address</em></span></p><p>A Notification producer (Publisher) address.</p></li><li><p><span class="emphasis"><em>//wsnt:GetCurrentMessageResponse/smn-ext:GetCurrentMessage/smn-ext:Message</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>An extensive element. The content of 
     1243            this element is the last Notification message published to the 
     1244            Topic specified in GetCurrentMessageRequest. Currently supported 
     1245            are messages shorter than 4096 bytes.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1598"></a>3.5.20.&nbsp;ListSubscriptions</h4></div></div></div><p>The first method from the the group of administrative methods. 
     1246        It may be invoked to get an information about available subscriptions 
     1247        in the <span class="emphasis"><em>QCG Notification</em></span> service. The method 
     1248        consists of various filtering parameters.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1249   &lt;SOAP-ENV:Header&gt; 
     1250    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1251     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ 
     1252     QCGNotificationManager/ListSubscriptionsRequest</strong></span> 
     1253    &lt;/wsa:Action&gt; 
     1254    ... 
     1255   &lt;/SOAP-ENV:Header&gt; 
     1256   &lt;SOAP-ENV:Body&gt; 
     1257    &lt;smn-ext:ListSubscriptions&gt; 
     1258     &lt;smn-ext:Filter&gt; 
     1259      &lt;smn-ext:SubscriptionID&gt; 
     1260       <span class="bold"><strong>1568334</strong></span> 
     1261      &lt;/smn-ext:SubscriptionID&gt; 
     1262      &lt;smn-ext:ConsumerReference&gt; 
     1263       &lt;wsa:Address&gt; 
     1264        <span class="bold"><strong>http://localhost:2233</strong></span> 
     1265       &lt;/wsa:Address&gt; 
     1266      &lt;/smn-ext:ConsumerReference&gt; 
     1267      &lt;smn-ext:CreationTimeMin&gt; 
     1268       <span class="bold"><strong>2010-07-09T08:21:58Z</strong></span> 
     1269      &lt;/smn-ext:CreationTimeMin&gt; 
     1270      &lt;smn-ext:CreationTimeMax&gt; 
     1271       <span class="bold"><strong>2010-07-09T10:21:58Z</strong></span> 
     1272      &lt;/smn-ext:CreationTimeMax&gt; 
     1273      &lt;smn-ext:TerminationTimeMin&gt; 
     1274       <span class="bold"><strong>2010-07-09T08:21:58Z</strong></span> 
     1275      &lt;/smn-ext:TerminationTimeMin&gt; 
     1276      &lt;smn-ext:TerminationTimeMax&gt; 
     1277       <span class="bold"><strong>2010-07-09T10:21:58Z</strong></span> 
     1278      &lt;/smn-ext:TerminationTimeMax&gt; 
     1279      &lt;wsnt:Filter&gt; 
     1280       &lt;wsnt:MessageContent  
     1281        <span class="bold"><strong>xmlns:smnex="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"</strong></span>  
     1282        Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116"&gt; 
     1283         <span class="bold"><strong>boolean(//smnex:State[text()="on"])</strong></span> 
     1284       &lt;/wsnt:MessageContent&gt; 
     1285       &lt;wsnt:TopicExpression  
     1286        <span class="bold"><strong>xmlns:tns="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics"</strong></span>  
     1287        Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>&gt; 
     1288         <span class="bold"><strong>tns://*</strong></span> 
     1289       &lt;/wsnt:TopicExpression&gt; 
     1290      &lt;/wsnt:Filter&gt; 
     1291     &lt;/smn-ext:Filter&gt; 
     1292    &lt;/smn-ext:ListSubscriptions&gt; 
     1293   &lt;/SOAP-ENV:Body&gt; 
     1294&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     1295            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListSubscriptionsRequest. 
     1296            <span class="emphasis"><em>If differ, a fault will be 
     1297            returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListSubscriptions/smn-ext:Filter</em></span></p><p>The expanding element from <span class="emphasis"><em>QCG 
     1298            Notification</em></span> schema. It consists of a number of 
     1299            optional filtering parameters.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListSubscriptions/smn-ext:Filter/SubscriptionID</em></span></p><p>A Subscription identifier. Thanks to this parameter 
     1300            Subscriptions may be simply filtered on the basis of Subscription 
     1301            ID. The value is at most 32 char long string.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListSubscriptions/smn-ext:Filter/smn-ext:ConsumerReference/wsa:Address</em></span></p><p>The parameter that enables filtering Subscriptions based on 
     1302            addresses of Notification Consumers.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListSubscriptions/smn-ext:Filter/smn-ext:CreationTimeMin</em></span></p><p><span class="emphasis"><em>/smn-ext:ListSubscriptions/smn-ext:Filter/smn-ext:CreationTimeMax</em></span></p><p><span class="emphasis"><em>/smn-ext:ListSubscriptions/smn-ext:Filter/smn-ext:TerminationTimeMin 
     1303            </em></span></p><p><span class="emphasis"><em>/smn-ext:ListSubscriptions/smn-ext:Filter/smn-ext:TerminationTimeMax</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>All these elements define filtering 
     1304            parameters related to lifetime of a Subscription, respectively: 
     1305            minimal creation time, maximal creation time, minimal termination 
     1306            time and maximal termination time. The content of these elements 
     1307            is a time expressed as a local time with a 
     1308            timezone.</em></span></em></span></p></li><li><p><span class="emphasis"><em>/smn-ext:ListSubscriptions/smn-ext:Filter/wsnt:Filter</em></span></p><p>The same parameter as the parameter specified in the 
     1309            Subscribe message. In this method it is utilized to filter 
     1310            Subscriptions on the basis of notification filtering 
     1311            parameters.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1700"></a>3.5.21.&nbsp;ListSubscriptionsResponse</h4></div></div></div><p>The message is sent in the response to ListSubscriptions. It 
     1312        includes a list of information sets about available and propably 
     1313        filtered Subscriptions.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1314   &lt;SOAP-ENV:Header&gt; 
     1315    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1316     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ 
     1317     QCGNotificationManager/ListSubscriptionsResponse 
     1318    </strong></span>&lt;/wsa:Action&gt; 
     1319    ... 
     1320   &lt;/SOAP-ENV:Header&gt; 
     1321   &lt;SOAP-ENV:Body&gt; 
     1322    &lt;smn-ext:ListSubscriptionsResponse&gt; 
     1323     &lt;smn-ext:Subscription&gt; 
     1324      &lt;smn-ext:SubscriptionID&gt; 
     1325       <span class="bold"><strong>16807 
     1326      </strong></span>&lt;/smn-ext:SubscriptionID&gt; 
     1327      &lt;smn-ext:ConsumerReference&gt; 
     1328       &lt;wsa:Address&gt; 
     1329        <span class="bold"><strong>http://localhost:2233</strong></span> 
     1330       &lt;/wsa:Address&gt; 
     1331      &lt;/smn-ext:ConsumerReference&gt; 
     1332      &lt;smn-ext:CreationTime&gt; 
     1333       <span class="bold"><strong>2010-07-09T09:21:48Z 
     1334      </strong></span>&lt;/smn-ext:CreationTime&gt; 
     1335      &lt;smn-ext:TerminationTime&gt; 
     1336       <span class="bold"><strong>2010-07-09T09:21:48Z</strong></span> 
     1337      &lt;/smn-ext:TerminationTime&gt; 
     1338      &lt;wsnt:Filter&gt; 
     1339       &lt;wsnt:MessageContent  
     1340        <span class="bold"><strong>xmlns:smnex="</strong></span><span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"</strong></span>  
     1341        Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116"&gt; 
     1342        <span class="bold"><strong>boolean(//smnex:State[text()="on"])</strong></span> 
     1343       &lt;/wsnt:MessageContent&gt; 
     1344       &lt;wsnt:TopicExpression <span class="bold"><strong> 
     1345        xmlns:tns="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics"</strong></span>  
     1346        Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>&gt; 
     1347         <span class="bold"><strong>tns://* 
     1348       </strong></span>&lt;/wsnt:TopicExpression&gt; 
     1349      &lt;/wsnt:Filter&gt; 
     1350     &lt;/smn-ext:Subscription&gt; 
     1351     &lt;smn-ext:Subscription&gt; 
     1352      ... 
     1353     &lt;/smn-ext:Subscription&gt; 
     1354    ... 
     1355    &lt;/smn-ext:ListSubscriptionsResponse&gt; 
     1356   &lt;/SOAP-ENV:Body&gt; 
     1357&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     1358            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListSubscriptionsResponse. 
     1359            <span class="emphasis"><em>If differ, a fault will be 
     1360            returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListSubscriptionsResponse</em></span></p><p>This element contains a list of subscriptions received from 
     1361            <span class="emphasis"><em>QCG Notification</em></span> (propably also filtered on 
     1362            the basis of the smn-ext:Filter element sent in 
     1363            ListSubscriptions).</p></li><li><p><span class="emphasis"><em>//smn-ext:ListSubscriptionsResponse/smn-ext:Subscription</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>The element provides information about a 
     1364            single Subscription.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//smn-ext:ListSubscriptionsResponse/smn-ext:Subscription/SubscriptionID</em></span></p><p>A Subscription identifier. The value is at most 32 char long 
     1365            string.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListSubscriptionsResponse/smn-ext:Subscription/smn-ext:ConsumerReference/wsa:Address</em></span></p><p>An address of Notification Consumer declared in a 
     1366            Subscription.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListSubscriptionsResponse/smn-ext:Subscription/smn-ext:CreationTime</em></span></p><p><span class="emphasis"><em>/smn-ext:ListSubscriptionsResponse/smn-ext:Subscription/smn-ext:TerminationTime</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>Creation time and termination time of a 
     1367            Subscription. The content of these elements is a time expressed as 
     1368            UTC time.</em></span></em></span></p></li><li><p><span class="emphasis"><em>/smn-ext:ListSubscriptionsResponse/smn-ext:Subscription/wsnt:Filter</em></span></p><p>The same parameter as the parameter specified in the 
     1369            Subscribe message. It specifies Notification filtering parameters 
     1370            of a Subscription.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1797"></a>3.5.22.&nbsp;ListPublishersRegistrations</h4></div></div></div><p>The next method from the the group of administrative methods. It 
     1371        may be utilized to list Publishers Registrations. The method consists 
     1372        of several filtering parameters.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1373   &lt;SOAP-ENV:Header&gt; 
     1374    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1375     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ 
     1376     QCGNotificationManager/ListPublishersRegistrationsRequest</strong></span> 
     1377    &lt;/wsa:Action&gt; 
     1378    ... 
     1379   &lt;/SOAP-ENV:Header&gt; 
     1380   &lt;SOAP-ENV:Body&gt; 
     1381    &lt;smn-ext:ListPublishersRegistrations&gt; 
     1382     &lt;smn-ext:Filter&gt; 
     1383      &lt;smn-ext:PublisherRegistrationID&gt; 
     1384       <span class="bold"><strong>984943658</strong></span> 
     1385      &lt;/smn-ext:PublisherRegistrationID&gt; 
     1386      &lt;smn-ext:PublisherReference&gt; 
     1387       &lt;wsa:Address&gt; 
     1388        <span class="bold"><strong>127.0.0.1</strong></span> 
     1389       &lt;/wsa5:Address&gt; 
     1390      &lt;/smn-ext:PublisherReference&gt; 
     1391      &lt;smn-ext:CreationTimeMin&gt; 
     1392       <span class="bold"><strong>2010-07-08T09:37:04Z</strong></span> 
     1393      &lt;/smn-ext:CreationTimeMin&gt; 
     1394      &lt;smn-ext:CreationTimeMax&gt; 
     1395       <span class="bold"><strong>2010-07-08T11:37:04Z</strong></span> 
     1396      &lt;/smn-ext:CreationTimeMax&gt; 
     1397      &lt;smn-ext:TerminationTimeMin&gt; 
     1398       <span class="bold"><strong>2010-07-08T09:37:04Z</strong></span> 
     1399      &lt;/smn-ext:TerminationTimeMin&gt; 
     1400      &lt;smn-ext:TerminationTimeMax&gt; 
     1401       <span class="bold"><strong>2010-07-08T11:37:04Z</strong></span> 
     1402      &lt;/smn-ext:TerminationTimeMax&gt; 
     1403     &lt;/smn-ext:Filter&gt; 
     1404    &lt;/smn-ext:ListPublishersRegistrations&gt; 
     1405   &lt;/SOAP-ENV:Body&gt; 
     1406&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     1407            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListPublishersRegistrationsRequest. 
     1408            <span class="emphasis"><em>If differ, a fault will be 
     1409            returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListPublishersRegistrations/smn-ext:Filter</em></span></p><p>The element from <span class="emphasis"><em>QCG Notification</em></span> 
     1410            schema. It consists of optional filtering parameters.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListPublishersRegistrations/smn-ext:Filter/PublisherRegistrationID</em></span></p><p>A Publisher Registration identifier. This parameter enables 
     1411            filtering of Publisher Registrations based on Publishers 
     1412            Registrations ID. The value is at most 32 char long string.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListPublishersRegistrations/smn-ext:Filter/smn-ext:PublisherReference/wsa:Address</em></span></p><p>This element enables filtering based on an addresses of 
     1413            Publishers. Depending on configuration, this address may be held 
     1414            in the <span class="emphasis"><em>QCG Notification</em></span> service as an address 
     1415            sent in the From element of WSA Header of RegisterPublisher 
     1416            message or an IP address of a Publisher.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListPublishersRegistrations/smn-ext:Filter/smn-ext:CreationTimeMin</em></span></p><p><span class="emphasis"><em>/smn-ext:ListPublishersRegistrations/smn-ext:Filter/smn-ext:CreationTimeMax</em></span></p><p><span class="emphasis"><em>/smn-ext:ListPublishersRegistrations/smn-ext:Filter/smn-ext:TerminationTimeMin 
     1417            </em></span></p><p><span class="emphasis"><em>/smn-ext:ListPublishersRegistrations/smn-ext:Filter/smn-ext:TerminationTimeMax</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>The elements define filtering parameters 
     1418            related to lifetime of a Publisher Registration, respectively: 
     1419            minimal creation time, maximal creation time, minimal termination 
     1420            time and maximal termination time. The content of these elements 
     1421            is a time expressed as a local time with a 
     1422            timezone.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1878"></a>3.5.23.&nbsp;ListPublisherRegistrationsResponse</h4></div></div></div><p>The response message to ListPublishersRegistrations. It includes 
     1423        a list of information sets about Publishers Registrations.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1424   &lt;SOAP-ENV:Header&gt; 
     1425    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1426     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ 
     1427     QCGNotificationManager/ListPublishersRegistrationsResponse 
     1428    </strong></span>&lt;/wsa:Action&gt; 
     1429    ... 
     1430   &lt;/SOAP-ENV:Header&gt; 
     1431   &lt;SOAP-ENV:Body&gt; 
     1432    &lt;smn-ext:ListPublishersRegistrationsResponse&gt; 
     1433     &lt;smn-ext:PublisherRegistration&gt; 
     1434      &lt;smn-ext:PublisherRegistrationID&gt; 
     1435       <span class="bold"><strong>16807 
     1436      </strong></span>&lt;/smn-ext:PublisherRegistrationID&gt; 
     1437      &lt;smn-ext:PublisherReference&gt; 
     1438       &lt;wsa:Address&gt; 
     1439        <span class="bold"><strong>http://localhost:2233</strong></span> 
     1440       &lt;/wsa:Address&gt; 
     1441      &lt;/smn-ext:PublisherReference&gt; 
     1442      &lt;smn-ext:CreationTime&gt; 
     1443       <span class="bold"><strong>2010-07-09T09:21:48Z 
     1444      </strong></span>&lt;/smn-ext:CreationTime&gt; 
     1445      &lt;smn-ext:TerminationTime&gt; 
     1446       <span class="bold"><strong>2010-07-09T09:21:48Z</strong></span> 
     1447      &lt;/smn-ext:TerminationTime&gt; 
     1448     &lt;/smn-ext:PublisherRegistration&gt; 
     1449     &lt;smn-ext:PublisherRegistration&gt; 
     1450      ... 
     1451     &lt;/smn-ext:PublisherRegistration&gt; 
     1452    ... 
     1453    &lt;/smn-ext:ListPublishersRegistrationsResponse&gt; 
     1454   &lt;/SOAP-ENV:Body&gt; 
     1455&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     1456            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListPublishersRegistrationsResponse. 
     1457            <span class="emphasis"><em>If differ, a fault will be 
     1458            returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListPublishersRegistrationsResponse</em></span></p><p>The element contains a list of Publishers Registrations 
     1459            received from <span class="emphasis"><em>QCG Notification</em></span> (propably also 
     1460            filtered on the basis of the smn-ext:Filter element sent in a 
     1461            ListPublishersRegistrations message).</p></li><li><p><span class="emphasis"><em>//smn-ext:ListPublishersRegistrationsResponse/smn-ext:PublisherRegistration</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>The element provides information about a 
     1462            single Publisher Registration.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//smn-ext:ListPublishersRegistrationsResponse/smn-ext:PublisherRegistration/PublisherRegistrationID</em></span></p><p>A Publisher Registration identifier. The value is at most 32 
     1463            char long string.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListPublishersRegistrationsResponse/smn-ext:PublisherRegistration/smn-ext:PublisherReference/wsa:Address</em></span></p><p>An address of Publisher. It may be an address defined in a 
     1464            From element of WSA Header of a RegisterPublisher message or an IP 
     1465            address of a publisher.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListPublishersRegistrationsResponse/smn-ext:PublisherRegistration/smn-ext:CreationTime</em></span></p><p><span class="emphasis"><em>/smn-ext:ListPublishersRegistrationsResponse/smn-ext:PublisherRegistration/smn-ext:TerminationTime</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>Creation time and termination time of a 
     1466            Publisher Registration. The content of these elements is a time 
     1467            expressed as UTC time.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1952"></a>3.5.24.&nbsp;ListPullPoints</h4></div></div></div><p>The next administrative method. It enables listing of available 
     1468        PullPoints. The method consists of several optional filtering 
     1469        parameters.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1470   &lt;SOAP-ENV:Header&gt; 
     1471    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1472     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ 
     1473     QCGNotificationManager/ListPullPointsRequest</strong></span> 
     1474    &lt;/wsa:Action&gt; 
     1475    ... 
     1476   &lt;/SOAP-ENV:Header&gt; 
     1477   &lt;SOAP-ENV:Body&gt; 
     1478    &lt;smn-ext:ListPullPoints&gt; 
     1479     &lt;smn-ext:Filter&gt; 
     1480      &lt;smn-ext:PullPointID&gt; 
     1481       <span class="bold"><strong>9342232</strong></span> 
     1482      &lt;/smn-ext:PullPointID&gt; 
     1483      &lt;smn-ext:PullPointReference&gt; 
     1484       &lt;wsa:Address&gt; 
     1485        <span class="bold"><strong>http://localhost:2211?ppID=9342232</strong></span> 
     1486       &lt;/wsa5:Address&gt; 
     1487      &lt;/smn-ext:PullPointReference&gt; 
     1488      &lt;smn-ext:CreationTimeMin&gt; 
     1489       <span class="bold"><strong>2010-07-08T09:38:03Z</strong></span> 
     1490      &lt;/smn-ext:CreationTimeMin&gt; 
     1491      &lt;smn-ext:CreationTimeMax&gt; 
     1492       <span class="bold"><strong>2010-07-08T11:38:03Z</strong></span> 
     1493      &lt;/smn-ext:CreationTimeMax&gt; 
     1494      &lt;smn-ext:TerminationTimeMin&gt; 
     1495       <span class="bold"><strong>2010-07-08T09:38:03Z</strong></span> 
     1496      &lt;/smn-ext:TerminationTimeMin&gt; 
     1497      &lt;smn-ext:TerminationTimeMax&gt; 
     1498       <span class="bold"><strong>2010-07-08T11:38:03Z</strong></span> 
     1499      &lt;/smn-ext:TerminationTimeMax&gt; 
     1500     &lt;/smn-ext:Filter&gt; 
     1501    &lt;/smn-ext:ListPullPoints&gt; 
     1502   &lt;/SOAP-ENV:Body&gt; 
     1503&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     1504            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListPullPointsRequest. 
     1505            <span class="emphasis"><em>If differ, a fault will be 
     1506            returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListPullPoints/smn-ext:Filter</em></span></p><p>The element from <span class="emphasis"><em>QCG Notification</em></span> 
     1507            schema. It consists of optional filtering parameters.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListPullPoints/smn-ext:Filter/smn-ext:PullPointID</em></span></p><p>A PullPoint identifier. This parameter enables filtering of 
     1508            PullPoints based on PullPoint ID. The value is at most 32 char 
     1509            long string.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListPullPoints/smn-ext:Filter/smn-ext:PullPointReference/wsa:Address</em></span></p><p>This element enables filtering based on an addresses of 
     1510            PullPoint. The PullPoint address is assigned after creation of a 
     1511            PullPoint in <span class="emphasis"><em>QCG Notification</em></span> and returned 
     1512            inside CreatePullPointResponse.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListPullPoints/smn-ext:Filter/smn-ext:CreationTimeMin</em></span></p><p><span class="emphasis"><em>/smn-ext:ListPullPoints/smn-ext:Filter/smn-ext:CreationTimeMax</em></span></p><p><span class="emphasis"><em>/smn-ext:ListPullPoints/smn-ext:Filter/smn-ext:TerminationTimeMin 
     1513            </em></span></p><p><span class="emphasis"><em>/smn-ext:ListPullPoints/smn-ext:Filter/smn-ext:TerminationTimeMax</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>The elements define filtering parameters 
     1514            related to PullPoint lifetime, respectively: minimal creation 
     1515            time, maximal creation time, minimal termination time and maximal 
     1516            termination time. The content of these elements is a time 
     1517            expressed as a local time with a 
     1518            timezone.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2033"></a>3.5.25.&nbsp;ListPullPointsResponse</h4></div></div></div><p>The response message to ListPullPoints. It includes a list of 
     1519        information sets about filtered Pullpoints.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1520   &lt;SOAP-ENV:Header&gt; 
     1521    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1522     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ 
     1523     QCGNotificationManager/ListPullPointsResponse 
     1524    </strong></span>&lt;/wsa:Action&gt; 
     1525    ... 
     1526   &lt;/SOAP-ENV:Header&gt; 
     1527   &lt;SOAP-ENV:Body&gt; 
     1528    &lt;smn-ext:ListPullPointsResponse&gt; 
     1529     &lt;smn-ext:PullPoint&gt; 
     1530      &lt;smn-ext:PullPointID&gt; 
     1531       <span class="bold"><strong>9342232 
     1532      </strong></span>&lt;/smn-ext:PullPointID&gt; 
     1533      &lt;smn-ext:PullPointReference&gt; 
     1534       &lt;wsa:Address&gt; 
     1535        <span class="bold"><strong>http://localhost:2211?ppID=9342232</strong></span> 
     1536       &lt;/wsa:Address&gt; 
     1537      &lt;/smn-ext:PullPointReference&gt; 
     1538      &lt;smn-ext:CreationTime&gt; 
     1539       <span class="bold"><strong>2010-07-09T09:31:28Z 
     1540      </strong></span>&lt;/smn-ext:CreationTime&gt; 
     1541      &lt;smn-ext:TerminationTime&gt; 
     1542       <span class="bold"><strong>2010-07-09T09:31:28Z</strong></span> 
     1543      &lt;/smn-ext:TerminationTime&gt; 
     1544     &lt;/smn-ext:PullPoint&gt; 
     1545     &lt;smn-ext:PullPoint&gt; 
     1546      ... 
     1547     &lt;/smn-ext:PullPoint&gt; 
     1548    ... 
     1549    &lt;/smn-ext:ListPullPointsResponse&gt; 
     1550   &lt;/SOAP-ENV:Body&gt; 
     1551&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     1552            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListPullPointsResponse. 
     1553            <span class="emphasis"><em>If differ, a fault will be 
     1554            returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListPullPointsResponse</em></span></p><p>The element contains a list of PullPoints received from 
     1555            <span class="emphasis"><em>QCG Notification</em></span> (propably also previously 
     1556            filtered on the basis of the smn-ext:Filter element sent in a 
     1557            ListPullPoints message).</p></li><li><p><span class="emphasis"><em>//smn-ext:ListPullPointsResponse/smn-ext:PullPoint</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>The element provides particular 
     1558            information about a single PullPoint.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//smn-ext:ListPullPointsResponse/smn-ext:PullPoint/PullPointID</em></span></p><p>A PullPoint identifier. The value is at most 32 char long 
     1559            string.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListPullPointsResponse/smn-ext:PullPoint/smn-ext:PullPointReference/wsa:Address</em></span></p><p>An address of PullPoint. For particular PullPoint it is the 
     1560            same adress as the address from a corresponding 
     1561            CreatePullPointResponse message.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListPullPointsResponse/smn-ext:PullPoint/smn-ext:CreationTime</em></span></p><p><span class="emphasis"><em>/smn-ext:ListPullPointsResponse/smn-ext:PullPoint/smn-ext:TerminationTime</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>Creation time and termination time of a 
     1562            PullPoint. The content of these elements is a time expressed as 
     1563            UTC time.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2107"></a>3.5.26.&nbsp;ListTopicNamespaces</h4></div></div></div><p>An administrative method. It is designed to listing available 
     1564        Topic Namespaces and Topics assigned to this namespaces.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1565   &lt;SOAP-ENV:Header&gt; 
     1566    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1567     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ 
     1568     QCGNotificationManager/ListTopicNamespacesRequest</strong></span> 
     1569    &lt;/wsa:Action&gt; 
     1570    ... 
     1571   &lt;/SOAP-ENV:Header&gt; 
     1572   &lt;SOAP-ENV:Body&gt; 
     1573    &lt;smn-ext:ListTopicNamespaces&gt; 
     1574     &lt;smn-ext:Filter&gt; 
     1575      &lt;smn-ext:targetNamespace&gt; 
     1576       <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span> 
     1577      &lt;/smn-ext:targetNamespace&gt; 
     1578     &lt;/smn-ext:Filter&gt; 
     1579    &lt;/smn-ext:ListTopicNamespaces&gt; 
     1580   &lt;/SOAP-ENV:Body&gt; 
     1581&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     1582            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListTopicNamespacesRequest. 
     1583            <span class="emphasis"><em>If differ, a fault will be 
     1584            returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListTopicNamespaces/smn-ext:Filter</em></span></p><p>The element from <span class="emphasis"><em>QCG Notification</em></span> 
     1585            schema. It consists of optional filtering parameters.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListPullPoints/smn-ext:Filter/smn-ext:targetNamespace</em></span></p><p>A targetNamespace of a TopicNamespace. This parameter 
     1586            enables filtering of TopicNamespaces based on their 
     1587            targetNamespace names.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2147"></a>3.5.27.&nbsp;ListTopicNamespacesResponse</h4></div></div></div><p>The response message to ListTopicNamespaces. The message 
     1588        consists of information sets for each filtered TopicNamespace. A 
     1589        single set includes targetNamespaces and a list of topics.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1590   &lt;SOAP-ENV:Header&gt; 
     1591    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1592     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ 
     1593     QCGNotificationManager/ListPullPointsResponse 
     1594    </strong></span>&lt;/wsa:Action&gt; 
     1595    ... 
     1596   &lt;/SOAP-ENV:Header&gt; 
     1597   &lt;SOAP-ENV:Body&gt; 
     1598    &lt;smn-ext:ListTopicNamespacesResponse&gt; 
     1599     &lt;smn-ext:TopicNamespace&gt; 
     1600      &lt;smn-ext:targetNamespace&gt; 
     1601       <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span><span class="bold"><strong> 
     1602      </strong></span>&lt;/smn-ext:targetNamespace&gt; 
     1603      &lt;smn-ext:Topic&gt; 
     1604       <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics/House</strong></span> 
     1605      &lt;/smn-ext:Topic&gt; 
     1606      &lt;smn-ext:Topic&gt; 
     1607       ... 
     1608      &lt;smn-ext:Topic&gt; 
     1609      ... 
     1610     &lt;/smn-ext:TopicNamespace&gt; 
     1611     &lt;smn-ext:TopicNamespace&gt; 
     1612      ... 
     1613     &lt;/smn-ext:TopicNamespace&gt; 
     1614    ... 
     1615    &lt;/smn-ext:ListTopicNamespacesResponse&gt; 
     1616   &lt;/SOAP-ENV:Body&gt; 
     1617&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     1618            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListTopicNamespacesResponse. 
     1619            <span class="emphasis"><em>If differ, a fault will be 
     1620            returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListTopicNamespacesResponse</em></span></p><p>The element contains a list of information about 
     1621            TopicNamespaces received from <span class="emphasis"><em>QCG 
     1622            Notification</em></span> (optionally filtered on the basis of the 
     1623            smn-ext:Filter element sent in a ListTopicNamespaces 
     1624            message).</p></li><li><p><span class="emphasis"><em>//smn-ext:ListTopicNamespacesResponse/smn-ext:TopicNamespace</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>The element provides particular 
     1625            information about a single 
     1626            TopicNamespace.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//smn-ext:ListTopicNamespacesResponse/smn-ext:TopicNamespace/smn-ext:targetNamespace</em></span></p><p>A targetNamespace identifying single TopicNamespace. The 
     1627            value should be compliant with anyURI.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListTopicNamespacesResponse/smn-ext:TopicNamespace/smn-ext:Topic</em></span></p><p>A list of topics belonging to a TopicNamespace. Each listed 
     1628            topic is proceded by a targetNamespace so it is uniq.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2206"></a>3.5.28.&nbsp;AddTopicNamespace</h4></div></div></div><p>An administrative method. The method may be invoked to add a new 
     1629        TopicNamespace to the <span class="emphasis"><em>IQCG Notification</em></span>.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1630   &lt;SOAP-ENV:Header&gt; 
     1631    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1632     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ 
     1633     QCGNotificationManager/AddTopicNamespaceRequest</strong></span> 
     1634    &lt;/wsa:Action&gt; 
     1635    ... 
     1636   &lt;/SOAP-ENV:Header&gt; 
     1637   &lt;SOAP-ENV:Body&gt; 
     1638    &lt;smn-ext:AddTopicNamespace&gt; 
     1639     &lt;wstop:TopicNamespace  
     1640      targetNamespace="<span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics2</strong></span>"&gt; 
     1641      &lt;wstop:Topic final="false" name="<span class="bold"><strong>House</strong></span>"&gt; 
     1642       &lt;wstop:Topic ...&gt; 
     1643        ... 
     1644       &lt;/wstop:Topic&gt; 
     1645       ... 
     1646      &lt;/wstop:Topic&gt; 
     1647      ... 
     1648     &lt;/wstop:TopicNamespace&gt; 
     1649    &lt;/smn-ext:AddTopicNamespace&gt; 
     1650   &lt;/SOAP-ENV:Body&gt; 
     1651&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     1652            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/AddTopicNamespaceRequest. 
     1653            <span class="emphasis"><em>If differ, a fault will be 
     1654            returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//smn-ext:AddTopicNamespaces/wstop:TopicNamespace</em></span></p><p>The element defining a single Topic Namespace. It cames from 
     1655            WS-Topics schema.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2243"></a>3.5.29.&nbsp;AddTopicNamespaceResponse</h4></div></div></div><p>A response message to a AddTopicNamespaceRequest. It is empty 
     1656        and only confirms successfull addition of a TopicNamespace to the 
     1657        <span class="emphasis"><em>QCG Notification</em></span> service. </p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1658   &lt;SOAP-ENV:Header&gt; 
     1659    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1660     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     1661      PullPoint/AddTopicNamespaceResponse</strong></span> 
     1662    &lt;/wsa:Action&gt; 
     1663    ... 
     1664   &lt;/SOAP-ENV:Header&gt; 
     1665   &lt;SOAP-ENV:Body&gt; 
     1666    &lt;smn-ext:AddTopicNamespaceResponse&gt; 
     1667    &lt;/smn-ext:AddTopicNamespaceResponse&gt; 
     1668   &lt;/SOAP-ENV:Body&gt; 
     1669&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     1670            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/AddTopicNamespaceResponse.</em></span><span class="emphasis"><em><span class="emphasis"><em> 
     1671            If differ, a fault will be returned.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2268"></a>3.5.30.&nbsp;RemoveTopicNamespace</h4></div></div></div><p>The next administrative method. It is used to remove a 
     1672        TopicNamespace from the <span class="emphasis"><em>QCG Notification</em></span> system. 
     1673        Note that the removing may be only temporary (active to the restart of 
     1674        the system) if the TopicNamespace file is protected by disabling write 
     1675        permission.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1676   &lt;SOAP-ENV:Header&gt; 
     1677    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1678     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ 
     1679     QCGNotificationManager/RemoveTopicNamespaceRequest</strong></span> 
     1680    &lt;/wsa:Action&gt; 
     1681    ... 
     1682   &lt;/SOAP-ENV:Header&gt; 
     1683   &lt;SOAP-ENV:Body&gt; 
     1684    &lt;smn-ext:RemoveTopicNamespace&gt; 
     1685     &lt;smn-ext:targetNamespace&gt; 
     1686      <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics2/House</strong></span> 
     1687     &lt;/smn-ext:targetNamespace&gt; 
     1688    &lt;/smn-ext:RemoveTopicNamespace&gt; 
     1689   &lt;/SOAP-ENV:Body&gt; 
     1690&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     1691            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/RemoveTopicNamespaceRequest. 
     1692            <span class="emphasis"><em>If differ, a fault will be 
     1693            returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//smn-ext:RemoveTopicNamespaces/smn-ext:targetNamespace</em></span></p><p>The targetNamespace name of a TopicNamespace dedicated to 
     1694            remove - anyURI.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2302"></a>3.5.31.&nbsp;RemoveTopicNamespaceResponse</h4></div></div></div><p>A response message to a RemoveTopicNamespaceRequest. It is empty 
     1695        and confirms the successfull deletion of a TopicNamespace. 
     1696        </p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1697   &lt;SOAP-ENV:Header&gt; 
     1698    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1699     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     1700      PullPoint/RemoveTopicNamespaceResponse</strong></span> 
     1701    &lt;/wsa:Action&gt; 
     1702    ... 
     1703   &lt;/SOAP-ENV:Header&gt; 
     1704   &lt;SOAP-ENV:Body&gt; 
     1705    &lt;smn-ext:RemoveTopicNamespaceResponse&gt; 
     1706    &lt;/smn-ext:RemoveTopicNamespaceResponse&gt; 
     1707   &lt;/SOAP-ENV:Body&gt; 
     1708&lt;/SOAP-ENV:Envelope&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 
     1709            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/RemoveTopicNamespaceResponse.</em></span><span class="emphasis"><em><span class="emphasis"><em> 
     1710            If differ, a fault will be returned.</em></span></em></span></p></li></ul></div></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e2324"></a>4.&nbsp;Administration Guide of <span class="emphasis"><em>QCG 
     1711    Notification</em></span></h2></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2329"></a>4.1.&nbsp;Prerequisites</h3></div></div></div><p>In order to build and install <span class="emphasis"><em>QCG 
     1712      Notification</em></span>, an administrator has to appropriately configure 
     1713      operating system. There is some dependencies to external software that 
     1714      should be satisfied.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2337"></a>4.1.1.&nbsp;QCG Core library</h4></div></div></div><p><span class="emphasis"><em>QCG Notification</em></span> is based on the 
     1715        <span class="emphasis"><em>QCG Core</em></span> library developed by the 
     1716        <span class="emphasis"><em>QCG</em></span> team. QCG Core is a common utility library 
     1717        providing set of basic modules used by other components within QCG 
     1718        Project. For more information see QCG Core documentation.</p><p>The QCG Core library should be properly configured prior to the 
     1719        preparation of <span class="emphasis"><em>QCG Notification</em></span>.</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2355"></a>4.2.&nbsp;Building</h3></div></div></div><p>Before you compile <span class="emphasis"><em>QCG Notification</em></span>, you need 
     1720      to run the configuration script first. It will try to check if all the 
     1721      requirements are met and whether needed third party software is 
     1722      available. Simply type the following command:</p><pre class="programlisting">$ ./configure</pre><p>There are several options that can be passed to the script. If you 
     1723      type the --help parameter you will see all available options. These are 
     1724      the most important ones:</p><div class="itemizedlist"><ul type="disc"><li><p>--prefix=DIR</p><p>specifies directory where <span class="emphasis"><em>QCG 
     1725            Notification</em></span> will be installed.</p><p>Default: /opt/qcg</p></li><li><p>--with-qcg-core=PFX</p><p>specifies where QCG Core library is installed.</p><p>Default: no default value. qcg-core-config script is used to 
     1726            determine necessary paths</p></li><li><p>--with-client</p><p>Determine if the test client program should be build</p></li><li><p>--with-consumer</p><p>Determine if the test NotificationConsumer service should be 
     1727            build</p></li><li><p>--with-addressing-handler</p><p>Determine if the test Web Services Addressing handler 
     1728            service should be build</p></li></ul></div><p>After successful configuration step, compiling and 
     1729      installing of <span class="emphasis"><em>QCG Notification</em></span> should be a 
     1730      straightforward process:</p><pre class="programlisting">$ make 
     1731$ make install</pre><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>The installation step should be done either as 
     1732        <code class="filename">root</code> or the user that will execute <span class="emphasis"><em>QCG 
     1733        Notification</em></span> service, assuming he has necessary privileges 
     1734        to do this.</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2416"></a>4.3.&nbsp;Creating database for <span class="emphasis"><em>QCG Notification</em></span> - the 
     1735      PostgreSQL example</h3></div></div></div><p><span class="emphasis"><em>QCG Notification</em></span> can be run in two basic 
     1736      modes related to the database connection: without database or with 
     1737      database. Although the first option is sufficient for simple scenarios, 
     1738      it reduces the overall functionality of the <span class="emphasis"><em>QCG 
     1739      Notification</em></span> (e.g. disable PullPoints). Therefore using the 
     1740      database is recomended and can be often essential.</p><p>You will find more detailed description of administrative tasks in 
     1741      PostgreSQL tutorial. However, the following basic steps are needed to 
     1742      set up a database and appropriate tables for <span class="emphasis"><em>QCG 
     1743      Notification</em></span> assuming that you have already setup a 
     1744      PostgreSQL database:</p><p>By default, the first database user created will also be named 
     1745      <code class="filename">postgres</code>. In order to create a user for 
     1746      <span class="emphasis"><em>QCG Notification</em></span> usage, for instance 
     1747      <code class="filename">qcg-ntf</code>, type the following:</p><pre class="programlisting">$ createuser -U postgres -W qcg-ntf -P</pre><p>If you use a password then remember to supply it in 
     1748      <code class="filename">qcg-ntfd.xml</code> configuration file. Create a database, 
     1749      for example <code class="filename">qcg-ntf</code>, by typing the following 
    81750      command:</p><pre class="programlisting">$ createdb qcg-ntf</pre><p>and set up a table structure using the 
    91751      <code class="filename">qcg-ntf-psql.sql</code> file from <span class="emphasis"><em>QCG 
    101752      Notification</em></span> distribution - it can be found in 
    11       <code class="filename">/opt/qcg/share/tools</code> directory by default.</p><pre class="programlisting">$ psql -d qcg-ntf -U qcg-ntf &lt; qcg-ntf-psql.sql</pre><p>Eventually you need to add this database as the ODBC D 
    12 ata Source 
     1753      <code class="filename">/opt/qcg/share/tools</code> directory by default.</p><pre class="programlisting">$ psql -d qcg-ntf -U qcg-ntf &lt; qcg-ntf-psql.sql</pre><p>Eventually you need to add this database as the ODBC Data Source 
    131754      Name. You can do this by editing system-wide configuration file (e.g. 
     1755      <code class="filename">/etc/odbc.ini)</code> or <code class="filename">.odbc.ini</code> in 
     1756      home directory of the user that will be used to start <span class="emphasis"><em>QCG 
     1757      Notification</em></span>.</p><p>Assuming that ODBC are installed in /usr/local/lib and the choosed 
     1758      name for <span class="emphasis"><em>QCG Notification</em></span> is 
     1759      <code class="filename">qcg-ntf</code> the configuration file should looks 
     1760      simmilar to the following:</p><pre class="programlisting">[qcg-ntf] 
     1761Description     = QCG Notification database 
     1762Driver        = /usr/local/lib/libodbcpsql.so 
     1763Setup         = /usr/local/lib/libodbcpsqlS.so 
     1764Database      = qcg-ntf 
     1765Servername      = localhost 
     1766Port        = 5432 
     1767ReadOnly      = No 
     1768Trace         = 0 
     1769TraceFile       = odbc.trace 
     1770Debug         = 0 
     1771DebugFile       = odbc.debug</pre><p>You can also try some GUI tools to set up and manage ODBC and 
     1772      databases. Check out if the following tools are available on your 
     1773      machine:</p><pre class="programlisting">$ DataManager</pre><pre class="programlisting">$ ODBCConfig</pre></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="aaa"></a>5.&nbsp;Configuration of <span class="emphasis"><em>QCG Notification</em></span></h2></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2506"></a>5.1.&nbsp;Configuration File: <code class="filename">qcg-ntfd.xml</code></h3></div></div></div><pre class="programlisting">&lt;sm:QCGCore 
     1774  xmlns:sm="http://schemas.qoscosgrid.org/core/2011/04/config" 
     1775  xmlns="http://schemas.qoscosgrid.org/ntf/2011/04/config" 
     1776  xmlns:smn="http://schemas.qoscosgrid.org/ntf/2011/04/config"  
     1777  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt; 
     1778 
     1779  &lt;Configuration&gt; 
     1780    &lt;sm:ModuleManager&gt; 
     1781      &lt;sm:Directory&gt;/opt/qcg/lib/qcg-core/modules&lt;/sm:Directory&gt; 
     1782      &lt;sm:Directory&gt;/opt/qcg/lib/modules&lt;/sm:Directory&gt; 
     1783    &lt;/sm:ModuleManager&gt; 
     1784 
     1785    &lt;sm:Service xsi:type="ntfd" description="QCG Notification"&gt; 
     1786      &lt;sm:Logger&gt; 
     1787        &lt;sm:Filename&gt;/opt/qcg/var/log/qcg-ntf/qcg-ntfd.log&lt;/sm:Filename&gt; 
     1788        &lt;sm:Level&gt;DEBUG&lt;/sm:Level&gt; 
     1789      &lt;/sm:Logger&gt; 
     1790 
     1791      &lt;sm:Transport&gt;     
     1792        &lt;sm:Module xsi:type="sm:ecm_gsoap.service"&gt; 
     1793          &lt;sm:Host&gt;localhost&lt;/sm:Host&gt; 
     1794          &lt;sm:Port&gt;2211&lt;/sm:Port&gt; 
     1795          &lt;sm:UseWSA&gt;true&lt;/sm:UseWSA&gt; 
     1796        &lt;/sm:Module&gt; 
     1797        &lt;sm:Module xsi:type="smn:ntf-service-gsoap"/&gt; 
     1798      &lt;/sm:Transport&gt; 
     1799 
     1800      &lt;sm:Authentication&gt; 
     1801        &lt;sm:Module xsi:type="sm:atc_transport_http"/&gt; 
     1802      &lt;/sm:Authentication&gt; 
     1803       
     1804      &lt;sm:Module xsi:type="smn:ntf-publisher-gsoap-anonymous"&gt; 
     1805        &lt;UseWSA&gt;true&lt;/UseWSA&gt; 
     1806        &lt;RecvTimeout&gt;10&lt;/RecvTimeout&gt; 
     1807        &lt;SendTimeout&gt;10&lt;/SendTimeout&gt; 
     1808      &lt;/sm:Module&gt; 
     1809       
     1810      &lt;sm:Module xsi:type="smn:ntf-publisher-gsoap-ssl"&gt; 
     1811        &lt;UseWSA&gt;true&lt;/UseWSA&gt; 
     1812        &lt;RecvTimeout&gt;10&lt;/RecvTimeout&gt; 
     1813        &lt;SendTimeout&gt;10&lt;/SendTimeout&gt; 
     1814        &lt;X509CertKeyFile&gt;/opt/qcg/etc/ssl/broker.pem&lt;/X509CertKeyFile&gt; 
     1815        &lt;X509KeyPass&gt;somepass&lt;/X509KeyPass&gt; 
     1816        &lt;sm:TrustedCAFile&gt;/opt/qcg/etc/ssl/certs/qcg-ntf/ca.pem&lt;/sm:TrustedCAFile&gt; 
     1817      &lt;/sm:Module&gt; 
     1818       
     1819      &lt;Core&gt; 
     1820        &lt;NotificationsVar&gt; 
     1821          &lt;TopicNsDir&gt;/opt/qcg/etc/topicns&lt;/TopicNsDir&gt; 
     1822          &lt;StrictCorrectnessCheckingEnabled&gt;false&lt;/StrictCorrectnessCheckingEnabled&gt; 
     1823          &lt;SubscriptionManager&gt; 
     1824             &lt;ContentFilteringEnabled&gt;true&lt;/ContentFilteringEnabled&gt; 
     1825             &lt;SubscriptionPolicy&gt;DUPLICATE&lt;/SubscriptionPolicy&gt; 
     1826             &lt;DialectConsistencyRequired&gt;true&lt;/DialectConsistencyRequired&gt; 
     1827             &lt;SubscriptionPeriod&gt;10&lt;/SubscriptionPeriod&gt; 
     1828             &lt;RefreshRate&gt;3600&lt;/RefreshRate&gt; 
     1829          &lt;/SubscriptionManager&gt; 
     1830          &lt;PublisherManager&gt; 
     1831             &lt;RegistrationRequired&gt;false&lt;/RegistrationRequired&gt; 
     1832             &lt;RegistrationPeriod&gt;10&lt;/RegistrationPeriod&gt; 
     1833             &lt;RefreshRate&gt;3600&lt;/RefreshRate&gt; 
     1834          &lt;/PublisherManager&gt; 
     1835          &lt;PullPointManager&gt; 
     1836             &lt;PullPointsEnabled&gt;true&lt;/PullPointsEnabled&gt; 
     1837             &lt;PullPointSize&gt;100&lt;/PullPointSize&gt; 
     1838             &lt;PullPointPeriod&gt;10&lt;/PullPointPeriod&gt; 
     1839             &lt;RefreshRate&gt;3600&lt;/RefreshRate&gt; 
     1840          &lt;/PullPointManager&gt; 
     1841          &lt;Publishing&gt; 
     1842             &lt;NotificationsBufferEnabled&gt;true&lt;/NotificationsBufferEnabled&gt; 
     1843             &lt;NotificationsBufferSize&gt;1000&lt;/NotificationsBufferSize&gt; 
     1844             &lt;NotificationsResendingRate&gt;60&lt;/NotificationsResendingRate&gt; 
     1845             &lt;MaxSendTries&gt;5&lt;/MaxSendTries&gt; 
     1846          &lt;/Publishing&gt; 
     1847        &lt;/NotificationsVar&gt; 
     1848         
     1849        &lt;Database&gt; 
     1850          &lt;DatabaseEnabled&gt;true&lt;/DatabaseEnabled&gt; 
     1851          &lt;DSN&gt;qcg-ntf&lt;/DSN&gt; 
     1852          &lt;User&gt;qcg-ntf&lt;/User&gt; 
     1853          &lt;Password&gt;qcg-ntf&lt;/Password&gt; 
     1854          &lt;CleanAtStart&gt;false&lt;/CleanAtStart&gt; 
     1855        &lt;/Database&gt; 
     1856      &lt;/Core&gt;   
     1857     
     1858    &lt;/sm:Service&gt; 
     1859     
     1860  &lt;/Configuration&gt; 
     1861&lt;/sm:QCGCore&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//sm:ModuleManager/sm:Directory 
     1862          <span class="emphasis"><em>[string]</em></span></em></span></p><p>Directories with modules that will be used in the 
     1863          service.</p></li><li><p><span class="emphasis"><em>//sm:Service 
     1864          <span class="emphasis"><em>[sm:QCGBaseServiceType]</em></span></em></span></p><p>Configuration of the services. It is possible to configure 
     1865          many instances of the service in the one configuration file.</p></li><li><p><span class="emphasis"><em>//sm:Service/sm:Logger</em></span> 
     1866          [sm:LoggerType]</p><p>Configuration of the logging.</p></li><li><p><span class="emphasis"><em>//sm:Service/sm:Logger/sm:FileName 
     1867          <span class="emphasis"><em>[string]</em></span></em></span></p><p>A log file path.</p></li><li><p><span class="emphasis"><em>//sm:Service/sm:Logger/sm:Level 
     1868          <span class="emphasis"><em>[enumeration]</em></span></em></span></p><p>DEBUG, INFO, NOTICE, WARNING, ERROR, CRIT, EMERG - filter less 
     1869          important messages.</p></li><li><p><span class="emphasis"><em>//sm:Service/sm:Transport</em></span> 
     1870          [sm:TransportType]</p><p>This element aggregates configuration of transport modules. At 
     1871          least one module of type ecm* should by specified in this place. For 
     1872          full list of supported ecm* modules see the QCG Core 
     1873          documentation</p></li><li><p><span class="emphasis"><em>//sm:Service/sm:Transport/sm:Module[@type=sm:ecm_gsoap.service]</em></span></p><p>Basic configuration of the Web Service interface. The most 
     1874          important configuration covers such aspects as host and port where 
     1875          the service will be listening. The instruction of using other 
     1876          options is located in QCG Core documentation.</p></li><li><p><span class="emphasis"><em>//sm:Service/sm:Transport/sm:Module[@type=smn:ntf-service-gsoap]</em></span></p><p>Define ntf-service-gsoap module as a default module for the 
     1877          service. This option shouldn't be changed.</p></li><li><p><span class="emphasis"><em>//sm:Service/sm:Authentication</em></span> 
     1878          [sm:AuthenticationType]</p><p>Configuration of authentication modules for the service. For 
     1879          full list of supported authentication modules see the QCG Core 
     1880          documentation (the most basic are: sm:atc_transport_http for 
     1881          anonymous communication and sm:atc_transport_https for SSL based 
     1882          communication).</p></li><li><p><span class="emphasis"><em>//sm:Service/sm:Module/[@type=smn:ntf-publisher*]</em></span></p><p>Initialization and configuration of the modules for the 
     1883          Publisher side of <span class="emphasis"><em>QCG Notification</em></span>. The 
     1884          following modules are currently supported:</p><div class="itemizedlist"><ul type="circle"><li><p>smn:ntf-publisher-gsoap-anonymous for anonymous SOAP 
     1885              communication;</p></li><li><p>smn:ntf-publisher-gsoap-ssl for SSL based SOAP 
     1886              communication;</p></li><li><p>smn:ntf-publisher-xmpp for XMPP communication;</p></li><li><p>smn:ntf-publisher-smtp for SMTP communication;</p></li></ul></div><p>For details see the <a class="link" href="#moduleoptions" title="5.2.&nbsp;Module configuration">Section 
     1887          5.2</a>.</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar 
     1888          </em></span>[smn:NotificationsVarType]</p><p>Various notification settings closely related to QCG 
     1889          Notification service implementation.</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:TopicNsDir 
     1890          <span class="emphasis"><em>[string]</em></span></em></span></p><p>Location of the directory with files containing Topic 
     1891          definitions.</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:StrictCorrectnessCheckingEnabled</em></span> 
     1892          [boolean]</p><p>true, false - determines a strict validation of incoming 
     1893          messages; if true, it allows receiving detailed information about 
     1894          faults but it causes greatest delays; if false, then faults 
     1895          processing is minimal and delays are smaller. Default: false</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:SubscriptionManager/ 
     1896          </em></span>[smn:SubscriptionManagerType]</p><p>Settings related to Subscriptions management.</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:SubscriptionManager/smn:ContentFilteringEnabled</em></span> 
     1897          [boolean]</p><p>true, false - determines if a content filtering of 
     1898          notification messages can be used; if true, Subscribers can specify 
     1899          content filters in their Subscriptions, if false, it is dissallowed. 
     1900          Default: true</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:SubscriptionManager/smn:SubscriptionPolicy</em></span> 
     1901          [enumeration]</p><p>DUPLICATE, DELETE_OLD, RETURN_FAULT - parameter defines an 
     1902          action which should be taken when a Subscriber wants to create a 
     1903          Subscription with the same parameters as the parameters of already 
     1904          existing Subscription. Default: <span class="bold"><strong>DELETE_OLD 
     1905          (before the version 2.6.2 it was DUPLICATE)</strong></span></p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:SubscriptionManager/smn:DialectConsistencyRequired</em></span> 
     1906          [boolean]</p><p>true, false - determines if a Subscription covers the Notify 
     1907          messages with a different Topics Dialect than the Topic Dialect of 
     1908          the Subscription; if true, the Subscription covers only Notify 
     1909          messages with the same Dialect; if false, the Subscription covers 
     1910          Notify messages with simpler Dialects (i.e. Subscription with Full 
     1911          type of Dialect covers notifications sent with Concrete or Simple 
     1912          type). Default: true</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:SubscriptionManager/smn:SubscriptionPeriod</em></span> 
     1913          [integer]</p><p>A default time period for a Subscription to be valid; in 
     1914          minutes; if negative the Subscription time checking will be 
     1915          disabled. Default: <span class="bold"><strong>43200 (before the version 
     1916          2.6.2 it was 10)</strong></span></p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:SubscriptionManager/smn:RefreshRate</em></span> 
     1917          [integer]</p><p>A time period between successive Subscription Manager 
     1918          refreshing events (events when outdated Subscriptions are deleted); 
     1919          the time period is measured in seconds; if value is set to 0 or 
     1920          negative then the periodical refreshing is disabled. Default: 
     1921          3600</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:PublisherManager/ 
     1922          </em></span>[smn:PublisherManagerType]</p><p>Settings related to Publishers management.</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:PublisherManager/smn:RegistrationRequired</em></span> 
     1923          [boolean]</p><p>true, false - determines a requirement of Publishers 
     1924          Registrations; if true, a Publisher has to register himself before 
     1925          sending notifications; if false, it has not. Default: false</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:PublisherManager/smn:RegistrationPeriod</em></span> 
     1926          [integer]</p><p>A default time period for a Publisher Registration to be 
     1927          valid; in minutes; if negative the Registration time checking will 
     1928          be disabled. <span class="bold"><strong>Default: 43200 (before the 
     1929          version 2.6.2 it was 10)</strong></span></p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:PublisherManager/smn:RefreshRate</em></span> 
     1930          [integer]</p><p>A time period between successive Publisher Manager refreshing 
     1931          events (events when outdated Publishers are deleted); the time 
     1932          period is measured in seconds; if value is set to 0 or negative then 
     1933          the periodical refreshing is disabled. Default: 3600</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:PullPointManager/ 
     1934          </em></span>[smn:PullPointManagerType]</p><p>Settings related to PullPoints management.</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:PullPointManager/smn:PullPointsEnabled 
     1935          <span class="emphasis"><em>[boolean]</em></span></em></span></p><p>true, false - determines if PullPoints for pull style of 
     1936          notifications can be used. Default: true</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:PullPointManager/smn:PullPointSize</em></span> 
     1937          [integer]</p><p>A maximal number of messages that can be buffered in a single 
     1938          PullPoint; if negative then the number of messages is unbounded. 
     1939          Default: <span class="bold"><strong>1000 (before the version 2.6.2 it was 
     1940          100)</strong></span></p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:PullPointManager/smn:PullPointPeriod</em></span> 
     1941          [integer]</p><p>A default time period for a PullPoint to be valid; in minutes; 
     1942          if negative the PullPoint time checking will be disabled. Default: 
     1943          <span class="bold"><strong>43200 (before the version 2.6.2 it was 
     1944          10)</strong></span></p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:PullPointManager/smn:RefreshRate</em></span> 
     1945          [integer]</p><p>A time period between successive PullPoint Manager refreshing 
     1946          events (events when outdated PullPoints are deleted); the time 
     1947          period is measured in seconds; if value is set to 0 or negative then 
     1948          the periodical refreshing is disabled. Default: 3600</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:Publishing/ 
     1949          </em></span>[smn:PublishingType]</p><p>A group of settings related to Publishing procedure.</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:Publishing/smn:NotificationsBufferEnabled 
     1950          </em></span>[boolean]</p><p>true, false - determines if Notifications Buffer should be 
     1951          enabled; Notifications Buffer is used for resending Notifications if 
     1952          those weren't sent successfully at the first attempt. Default: 
     1953          true</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:Publishing/smn:NotificationsBufferSize 
     1954          </em></span>[integer]</p><p>A maximal number of Notifications that can be buffered in 
     1955          Notifications Buffer. Default: <span class="bold"><strong>10000 (before 
     1956          the version 2.6.2 it was 1000)</strong></span></p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:Publishing/smn:NotificationsResendingRate 
     1957          </em></span>[integer]</p><p>A time period between successive notification resending 
     1958          procedures; in seconds; if 0 or negative then the resending will be 
     1959          disabled. Default: 60</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:Publishing/smn:MaxSendTries</em></span> 
     1960          [integer]</p><p>A maximal number of consecutive unsuccessfull tries of sending 
     1961          notification; unsuccessful tries of sending notifications are 
     1962          counted independently for every Subscription; a certain Subscription 
     1963          will be delated if its counter become equal to 
     1964          <span class="emphasis"><em>MaxSendTries</em></span>; if value is set to 0 or negative 
     1965          then this option is disabled. Default: 5</p></li><li><p><span class="emphasis"><em>//smn:Core/Database/DatabaseEnabled 
     1966          <span class="emphasis"><em>[boolean]</em></span></em></span></p><p>true, false - determines if a database should be enabled; in 
     1967          the simplest configuration, <span class="emphasis"><em>QCG Notification</em></span> 
     1968          can be used also without a database connection, however many options 
     1969          will be then unavailable. Default: true</p></li><li><p><span class="emphasis"><em>//smn:Core/Database/DSN 
     1970          <span class="emphasis"><em>[string]</em></span></em></span></p><p>Data Source Name of a database. Note, that you should use ODBC 
     1971          DSN <span class="bold"><strong>not</strong></span> the database name.</p></li><li><p><span class="emphasis"><em>//smn:Core/Database/User 
     1972          <span class="emphasis"><em>[string]</em></span></em></span></p><p>A database user name.</p></li><li><p><span class="emphasis"><em>//smn:Core/Database/Password 
     1973          <span class="emphasis"><em>[string]</em></span></em></span></p><p>A password for a database user.</p></li><li><p><span class="emphasis"><em>//smn:Core/Database/CleanAtStart 
     1974          <span class="emphasis"><em>[boolean]</em></span></em></span></p><p>true, false - determines whether all information stored in a 
     1975          database should be cleaned at starting of the QCG Notification 
     1976          service.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="moduleoptions"></a>5.2.&nbsp;Module configuration</h3></div></div></div><p>Modules are located in the PREFIX/*/lib/modules directories and 
     1977      are loaded during the<span class="emphasis"><em> QCG Notification</em></span> run time. 
     1978      Module definitions are specified in appropriate sections of the 
     1979      configuration file.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2838"></a>5.2.1.&nbsp;Publisher modules</h4></div></div></div><p>As it was discussed in the previous sections, in a typical 
     1980        brokered notification scenario there are two types of communication 
     1981        and notification channels that need to be setup. The first one is a 
     1982        communication channel between Subscriber/Publisher clients and 
     1983        <span class="emphasis"><em>QCG Notification. </em></span>This type of communication is 
     1984        currently completely based on QCG Core library.</p><p>The second type is an outgoing communication between 
     1985        <span class="emphasis"><em>QCG Notification</em></span> and NotificationConsumers and it 
     1986        is particular for <span class="emphasis"><em>QCG Notification</em></span>. In this 
     1987        situation <span class="emphasis"><em>QCG Notification</em></span> plays a role of a 
     1988        Notification Publisher. At this time, supported modules for this 
     1989        channel utilize a Web Service interface, XMPP interface and SMTP 
     1990        interface.</p><div class="itemizedlist"><ul type="disc"><li><p><span class="bold"><strong>Publisher Anonymous WS 
     1991            transport</strong></span></p><p><span class="emphasis"><em><span class="emphasis"><em>This type of transport is recommended 
     1992            only for internal, secure network environments or 
     1993            testing.</em></span></em></span></p><pre class="programlisting">&lt;Module xsi:type="smn:ntf-publisher-gsoap-anonymous"&gt; 
     1994  &lt;smn:UseWSA&gt;true&lt;/smn:UseWSA&gt; 
     1995  &lt;smn:RecvTimeout&gt;10&lt;/smn:RecvTimeout&gt; 
     1996  &lt;smn:SendTimeout&gt;10&lt;/smn:SendTimeout&gt; 
     1997  &lt;smn:NotifyTopicConversion&gt;WSN&lt;/smn:NotifyTopicConversion&gt; 
     1998&lt;/Module&gt;</pre></li><li><p><span class="bold"><strong>Publisher SSL WS transport and 
     1999            authentication</strong></span></p><pre class="programlisting">&lt;Module xsi:type="smn:ntf-publisher-gsoap-ssl"&gt; 
     2000  &lt;smn:UseWSA&gt;true&lt;/smn:UseWSA&gt; 
     2001  &lt;smn:RecvTimeout&gt;10&lt;/smn:RecvTimeout&gt; 
     2002  &lt;smn:SendTimeout&gt;10&lt;/smn:SendTimeout&gt; 
     2003  &lt;smn:X509CertKeyFile&gt;/opt/qcg/etc/ssl/qcg-ntf/qcg-ntfd.pem&lt;/smn:X509CertKeyFile&gt; 
     2004  &lt;smn:X509KeyPass&gt;qcgpass&lt;/smn:X509KeyPass&gt; 
     2005  &lt;smn:TrustedCAFile&gt;/opt/qcg/etc/ssl/certs/qcg-ntf/ca.pem&lt;/smn:TrustedCAFile&gt; 
     2006  &lt;smn:TrustedCAPath&gt;/opt/qcg/etc/ssl/certs/qcg-ntf/ca.pem&lt;/smn:TrustedCAPath&gt; 
     2007  &lt;smn:NotifyTopicConversion&gt;WSN&lt;/smn:NotifyTopicConversion&gt; 
     2008&lt;/Module&gt;</pre><div class="itemizedlist"><ul type="circle"><li><p dir="lro"><span class="emphasis"><em>//smn:UseWSA 
     2009                  <span class="emphasis"><em>[bolean]</em></span></em></span></p><p>Determine if WS-Addressing should be used.</p></li><li><p dir="lro"><span class="emphasis"><em>//smn:RecvTimeout 
     2010                  <span class="emphasis"><em>[positiveInteger]</em></span></em></span></p><p>The timeout in seconds for stall on the recv function. 
     2011                  If negative, time is measured in microseconds.</p></li><li><p dir="lro"><span class="emphasis"><em>//smn:SendTimeout 
     2012                  <span class="emphasis"><em>[positiveInteger]</em></span></em></span></p><p>The timeout in seconds for stall on the send function. 
     2013                  If negative, time is measured in microseconds.</p></li><li><p dir="lro"><span class="emphasis"><em>//smn:X509CertKeyFile 
     2014                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>A path to the file with both X509 certificate and 
     2015                  private key. Mandatory argument.</p></li><li><p><span class="emphasis"><em>//smn:X509KeyPass 
     2016                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>An optional password to X509 private key.</p></li><li><p><span class="emphasis"><em>//smn:TrutedCAFile 
     2017                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>A path to the file with trusted CAs certificates. 
     2018                  Either TrustedCAFile or TrustedCAPath must be 
     2019                  specified.</p></li><li><p><span class="emphasis"><em>//smn:TrutedCAPath 
     2020                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>A path to the directory with the files with trusted 
     2021                  CAs certificates. Either TrustedCAFile or TrustedCAPath must 
     2022                  be specified.</p></li><li><p><span class="emphasis"><em>//smn:NotifyTopicConversion 
     2023                  <span class="emphasis"><em>[enumeration]</em></span></em></span></p><p>WSN, WSN_WITH_ADDITIONAL_NS, INLINE, LACK - defines a 
     2024                  type of conversion that will be applied (if needed) to the 
     2025                  Topic element of Notify messages.</p></li></ul></div></li><li><p><span class="bold"><strong>Publisher XMPP 
     2026            transport</strong></span></p><p><span class="bold"><strong><span class="emphasis"><em>The XMPP publisher module 
     2027            can send two versions of notifications via XMPP. The first version 
     2028            are notifications expressed as SOAP messages, the second are 
     2029            notifications sent as a typical "chat" messages. The second 
     2030            version of notifications is selected automatically when the XSLT 
     2031            document was provided in Subscribe message: the XSLT document will 
     2032            be used to transform the message to the apropriate 
     2033            form.</em></span></strong></span></p><pre class="programlisting">&lt;sm:Module xsi:type="smn:ntf-publisher-xmpp"&gt; 
     2034    &lt;smn:Jid&gt;qcgaccount@xmppserver.qcg.com/qcg-resource&lt;/smn:Jid&gt; 
     2035    &lt;smn:Password&gt;qcgpass&lt;/smn:Password&gt; 
     2036    &lt;smn:Server&gt;xmppserver.qcg.com&lt;/smn:Server&gt; 
     2037    &lt;smn:Port&gt;5222&lt;/smn:Port&gt; 
     2038    &lt;smn:Encryption&gt;TLS&lt;/smn:Encryption&gt; 
     2039    &lt;smn:CertFingerprint&gt;00112233445566778899AABBCCDDEE&lt;/smn:CertFingerprint&gt; 
     2040    &lt;smn:NotifyTopicConversion&gt;WSN&lt;/smn:NotifyTopicConversion&gt; 
     2041&lt;/sm:Module&gt;</pre><div class="itemizedlist"><ul type="circle"><li><p><span class="emphasis"><em>//smn:Jid 
     2042                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>JID of the XMPP account consisting of account name, 
     2043                  domain and resource.</p></li><li><p dir="lro"><span class="emphasis"><em>//smn:Password 
     2044                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>The secret key for the XMPP account.</p></li><li><p dir="lro"><span class="emphasis"><em>//smn:Server 
     2045                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>Hostname of the XMPP server on which the XMPP account 
     2046                  is set up. Optional element, if not set, the connection will 
     2047                  be established basing on Jid.</p></li><li><p dir="lro"><span class="emphasis"><em>//smn<span class="emphasis"><em>:Port 
     2048                  [positiveInteger]</em></span></em></span></p><p>Port number of the XMPP server. Default is 
     2049                  5222.</p></li><li><p><span class="emphasis"><em>//smn:Encryption 
     2050                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>Encryption to use. By default it's "none". Use "TLS" 
     2051                  for STARTTLS connection encryption. Use "SSL" for old-style 
     2052                  SSL encryption (typically port 5223).</p></li><li><p><span class="emphasis"><em>//smn:CertFingerprint 
     2053                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>MD5 fingerprint of the encryption certificate used by 
     2054                  the XMPP server. Upon mismatch, the connection will fail. 
     2055                  Use empty string to accept any certificate.</p></li><li><p><span class="emphasis"><em>//smn:NotifyTopicConversion 
     2056                  <span class="emphasis"><em>[enumeration]</em></span></em></span></p><p>WSN, WSN_WITH_ADDITIONAL_NS, INLINE, LACK - defines a 
     2057                  type of conversion that will be applied (only if needed) to 
     2058                  the Topic element of Notify messages. Default is WSN.</p></li></ul></div></li><li><p><span class="bold"><strong>Publisher SMTP 
     2059            transport</strong></span></p><p><span class="bold"><strong><span class="emphasis"><em>Simillarly to the XMPP 
     2060            publisher module, the SMTP module utilizes the XSLT documents to 
     2061            transform the content of the notification to the human-friendly 
     2062            form. </em></span></strong></span></p><pre class="programlisting">&lt;sm:Module xsi:type="smn:ntf-publisher-smtp"&gt; 
     2063    &lt;smn:ServerURL&gt;smtp://localhost:25&lt;/smn:ServerURL&gt; 
     2064    &lt;smn:User&gt;someuser&lt;/smn:User&gt; 
     2065    &lt;smn:Password&gt;somepassword&lt;/smn:Password&gt; 
     2066    &lt;smn:Encryption&gt;TLS&lt;/smn:Encryption&gt; 
     2067    &lt;smn:TrustedCAFile&gt;somefile&lt;/smn:TrustedCAFile&gt; 
     2068    &lt;smn:TrustedCAPath&gt;somedir&lt;/smn:TrustedCAPath&gt; 
     2069    &lt;smn:From&gt;some@from&lt;/smn:From&gt; 
     2070    &lt;smn:Subject&gt;Some subject&lt;/smn:Subject&gt; 
     2071    &lt;smn:Trace&gt;false&lt;/smn:Trace&gt; 
     2072    &lt;smn:SendTimeout&gt;10&lt;/smn:SendTimeout&gt; 
     2073&lt;/sm:Module&gt;     </pre><div class="itemizedlist"><ul type="circle"><li><p dir="lro"><span class="emphasis"><em>//smn:Server 
    142074                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>URL of the SMTP server. Mandatory element.</p></li><li><p dir="lro"><span class="emphasis"><em>//smn:User 
    152075                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>Name of the account on SMTP server. Optional 
     
    322092                  false.</p></li><li><p><span class="emphasis"><em>//smn:SendTimeout 
    332093                  <span class="emphasis"><em>[int]</em></span></em></span></p><p>The timeout in seconds for stall on the send function. 
    34                   Optional element, default is 10.</p></li></ul></div></li></ul></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e3097"></a>5.3.&nbsp;WS-Topics man 
    35 agement</h3></div></div></div><p>In the current release, a topics management in <span class="emphasis"><em>QCG 
     2094                  Optional element, default is 10.</p></li></ul></div></li></ul></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e3097"></a>5.3.&nbsp;WS-Topics management</h3></div></div></div><p>In the current release, a topics management in <span class="emphasis"><em>QCG 
    362095      Notification</em></span> is relatively simple. The first step is a 
    372096      preparation of an XML document with a Topic Namespace definition. This 
     
    492108      unwanted removal by unseting write permissions for a certain 
    502109      file.</p><p>An XML document describing a sample topic namespace is presented 
    51       in the <a class="link" href="#ted" title="3.3.&nbsp;Topics, TopicExpressions and Dialects">Section 3.3</a>.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e3125"></ 
    52 a>5.4.&nbsp;Starting <span class="emphasis"><em>QCG Notification</em></span></h3></div></div></div><p>To start <span class="emphasis"><em>QCG Notification</em></span> as a daemon 
     2110      in the <a class="link" href="#ted" title="3.3.&nbsp;Topics, TopicExpressions and Dialects">Section 3.3</a>.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e3125"></a>5.4.&nbsp;Starting <span class="emphasis"><em>QCG Notification</em></span></h3></div></div></div><p>To start <span class="emphasis"><em>QCG Notification</em></span> as a daemon 
    532111      type:</p><pre class="programlisting">$ ./qcg-ntfd</pre><p>If you start <span class="emphasis"><em>QCG Notification</em></span> with parameter 
    542112      -h you will get an optional parameters list:</p><pre class="programlisting">$ ./qcg-ntfd -h 
     
    612119  -h              print this help</pre><p>Once you run <span class="emphasis"><em>QCG 
    622120      Notification</em></span> as a daemon, a log file is created. Using 
    63       various log levels, you can log less or more details.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e3148"></a>5.5.&nbsp;Stopping <span class="emphasis"><em>QCG No 
    64 tification</em></span></h3></div></div></div><p>At the moment, shutdown is performed simply by sending 
    65       <code class="filename">SIGINT</code> signal to the service, e.g.:</p><pre class="programlisting">$ kill -SIGINT `pidof qcg-ntfd`</pre></div></div></div> 
    66                                                                                                                                       
     2121      various log levels, you can log less or more details.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e3148"></a>5.5.&nbsp;Stopping <span class="emphasis"><em>QCG Notification</em></span></h3></div></div></div><p>At the moment, shutdown is performed simply by sending 
     2122      <code class="filename">SIGINT</code> signal to the service, e.g.:</p><pre class="programlisting">$ kill -SIGINT `pidof qcg-ntfd`</pre></div></div></div>                                                                                                                                   
    672123}}}