Changes between Initial Version and Version 1 of technicalGuideAndManual

Show
Ignore:
Timestamp:
01/16/12 11:40:14 (12 years ago)
Author:
bartek
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • technicalGuideAndManual

    v1 v1  
     1{{{ 
     2#!html 
     3<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. 1.4.4 Technical Guide and 
     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:kikas@man.poznan.pl">kikas@man.poznan.pl</a>&gt;</code></div></div></div><div><p class="releaseinfo">2.4.4</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="#d0e80">2. Terminology and WS-Notification Concept</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e88">2.1. WS-Notification Concept</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e91">2.1.1. WS-Notification Fundamentals</a></span></dt><dt><span class="sect3"><a href="#d0e134">2.1.2. WS-BaseNotification</a></span></dt><dt><span class="sect3"><a href="#d0e196">2.1.3. WS-BrokeredNotification</a></span></dt><dt><span class="sect3"><a href="#d0e274">2.1.4. WS-Topics</a></span></dt><dt><span class="sect3"><a href="#d0e328">2.1.5. Base of QCG Notification</a></span></dt></dl></dd><dt><span class="sect2"><a href="#d0e420">2.2. UML-style Diagrams</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e461">2.2.1. `Main Use Cases</a></span></dt><dt><span class="sect3"><a href="#d0e494">2.2.2. Main Sequence Diagrams</a></span></dt></dl></dd></dl></dd><dt><span class="sect1"><a href="#d0e503">3. User Guide for a Publisher, Subscriber and 
     5    NotificationConsumer </a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e508">3.1. Prefixes and Namespaces</a></span></dt><dt><span class="sect2"><a href="#d0e586">3.2. Interaction with QCG Notification</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e596">3.2.1. Publisher Interaction</a></span></dt><dt><span class="sect3"><a href="#d0e610">3.2.2. Subscriber interaction</a></span></dt><dt><span class="sect3"><a href="#d0e635">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="#d0e689">3.4. Extensions</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e697">3.4.1. TopicExpression</a></span></dt><dt><span class="sect3"><a href="#d0e708">3.4.2. QCG Notification Extensions</a></span></dt></dl></dd><dt><span class="sect2"><a href="#d0e719">3.5. Methods Description</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e753">3.5.1. SubscribeRequest</a></span></dt><dt><span class="sect3"><a href="#d0e850">3.5.2. SubscribeResponse</a></span></dt><dt><span class="sect3"><a href="#d0e898">3.5.3. RenewRequest</a></span></dt><dt><span class="sect3"><a href="#d0e939">3.5.4. RenewResponse</a></span></dt><dt><span class="sect3"><a href="#d0e983">3.5.5. UnsubscribeRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1016">3.5.6. UnsubscribeResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1037">3.5.7. RegisterPublisherRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1090">3.5.8. RegisterPublisherResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1135">3.5.9. Notify</a></span></dt><dt><span class="sect3"><a href="#d0e1219">3.5.10. DestroyRegistrationRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1252">3.5.11. DestroyRegistrationResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1273">3.5.12. CreatePullPointRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1297">3.5.13. CreatePullPointResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1327">3.5.14. GetMessages</a></span></dt><dt><span class="sect3"><a href="#d0e1360">3.5.15. GetMessagesResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1437">3.5.16. DestroyPullPointRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1458">3.5.17. DestroyPullPointResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1479">3.5.18. GetCurrentMessageRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1526">3.5.19. GetCurrentMessageResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1592">3.5.20. ListSubscriptions</a></span></dt><dt><span class="sect3"><a href="#d0e1694">3.5.21. ListSubscriptionsResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1791">3.5.22. ListPublishersRegistrations</a></span></dt><dt><span class="sect3"><a href="#d0e1872">3.5.23. ListPublisherRegistrationsResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1946">3.5.24. ListPullPoints</a></span></dt><dt><span class="sect3"><a href="#d0e2027">3.5.25. ListPullPointsResponse</a></span></dt><dt><span class="sect3"><a href="#d0e2101">3.5.26. ListTopicNamespaces</a></span></dt><dt><span class="sect3"><a href="#d0e2141">3.5.27. ListTopicNamespacesResponse</a></span></dt><dt><span class="sect3"><a href="#d0e2200">3.5.28. AddTopicNamespace</a></span></dt><dt><span class="sect3"><a href="#d0e2237">3.5.29. AddTopicNamespaceResponse</a></span></dt><dt><span class="sect3"><a href="#d0e2262">3.5.30. RemoveTopicNamespace</a></span></dt><dt><span class="sect3"><a href="#d0e2296">3.5.31. RemoveTopicNamespaceResponse</a></span></dt></dl></dd></dl></dd><dt><span class="sect1"><a href="#d0e2318">4. Administration Guide of QCG 
     6    Notification</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e2323">4.1. Prerequisites</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e2331">4.1.1. QCG Core library</a></span></dt></dl></dd><dt><span class="sect2"><a href="#d0e2349">4.2. Building</a></span></dt><dt><span class="sect2"><a href="#d0e2410">4.3. Creating database for QCG Notification - the 
     7      PostgreSQL example</a></span></dt></dl></dd><dt><span class="sect1"><a href="#d0e2495">5. Configuration of QCG Notification</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e2500">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="#d0e2817">5.2.1. Publisher modules</a></span></dt></dl></dd><dt><span class="sect2"><a href="#d0e2973">5.3. WS-Topics management</a></span></dt><dt><span class="sect2"><a href="#d0e3001">5.4. Starting QCG Notification</a></span></dt><dt><span class="sect2"><a href="#d0e3024">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><p>Latest version: <span class="bold"><strong>2.4.4</strong></span></p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e80"></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="d0e88"></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="d0e91"></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="d0e134"></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="./diagrams/general/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="d0e196"></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="d0e202"></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="./diagrams/general/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 as a result of a Subscription and later 
     113              redistributed by a NotificationBroker.</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="d0e274"></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="d0e322"></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="./diagrams/general/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="d0e328"></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. It is possible to 
     166        variously mix channels of communication, for example a notification 
     167        sent by a Publisher being WS-Client as a HTTP message can be 
     168        distributed over XMPP to Jabber consumers.</p><p>Below we present a set of Web Service notification use cases 
     169        demonstrating capabilities offered by <span class="emphasis"><em>QCG 
     170        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 
     171          NotificationConsumers</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="./diagrams/general/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 
     172        one of the basic notification flows supported by <span class="emphasis"><em>QCG 
     173        Notification</em></span>. Depending on records, Notifications produced 
     174        by a Publisher and received by the <span class="emphasis"><em>QCG 
     175        Notification</em></span> may or may not be dispatched to concrete 
     176        NotificationConsumer. Note, that Subscriptions represent relationships 
     177        between Topics and NotificationConsumers in this scenario. Before any 
     178        Notification is delivered to a NotificationConsumer, a Subscriber has 
     179        to send first a SubscribeRequest message to <span class="emphasis"><em>QCG 
     180        Notification</em></span> in which all parameters of a Subscription are 
     181        specified. Main parameters of a SubscribeRequest message are 
     182        ConsumerReference and TopicExpression defined according to the 
     183        specific Dialect type. On the other hand, before a Publisher starts 
     184        sending Notifications it may be obligated to register himself in 
     185        <span class="emphasis"><em>QCG Notification</em></span>. The diagram below shows a 
     186        sequence of events in order to initialize an asynchronous process of 
     187        notifications between a Publisher and a NotificationConsumer.</p><div class="figure"><a name="d0e382"></a><p class="title"><b>Figure&nbsp;5.&nbsp;Message flows: creating a Subscription, notifying 
     188          NotificationConsumers</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="./diagrams/general/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 
     189            NotificationConsumer location and TopicExpression parameters to 
     190            <span class="emphasis"><em>QCG Notification</em></span>.</p></li><li><p><span class="emphasis"><em>QCG Notification</em></span> prepares appropriate 
     191            records for a Subscription.</p></li><li><p>A Publisher register himself in <span class="emphasis"><em>QCG 
     192            Notification</em></span> by sending the RegisterPublisher 
     193            message.</p></li><li><p>A registered Publisher sends the Notify message on a 
     194            specified Topic to a <span class="emphasis"><em>QCG Notification 
     195            </em></span>service.</p></li><li><p><span class="emphasis"><em>QCG Notification</em></span> checks if there are 
     196            NotificationConsumers subscribed on a specified Topic. If so, 
     197            <span class="emphasis"><em>QCG Notification</em></span> sends asynchronous 
     198            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="d0e420"></a>2.2.&nbsp;UML-style Diagrams</h3></div></div></div><p>The document uses UML-style use-case diagrams to illustrate 
     199      high-level use cases. The following list is probably sufficient for this 
     200      version of the document:</p><div class="itemizedlist"><ul type="disc"><li><p>Stick figures represents actors or roles in a scenario. These 
     201          can be human beings or software systems.</p></li><li><p>Ellipses represent use cases, i.e. actions or units of 
     202          functionality in a system.</p></li><li><p>Lines between actors and use cases indicate a participation of 
     203          the actor in the use case. At this level, no direction or payload of 
     204          data flow is expressed by the lines between actors and use 
     205          cases.</p></li></ul></div><p>The document uses UML-style sequence diagrams to illustrate 
     206      detailed use case scenarios and later in the next sections. Meanings of 
     207      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 
     208          scenario.</p></li><li><p>Arrows with a solid head represent a message sent from one 
     209          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 
     210          message. The arrow points from the receiver of the earlier message 
     211          to the sender.</p></li><li><p>A dotted line running down the diagram from a box indicates 
     212          that arrows whose endpoints (tail or head) is on the line apply to 
     213          that actor.</p></li><li><p>Intersections between arrows and dotted lines are 
     214          meaningless.</p></li><li><p>Vertical layout represents time. Messages (arrows) farther 
     215          down on the page happen after messages higher on the page.</p></li><li><p>Horizontal layout has no formal meaning. Since right-pointing 
     216          arrows look better, actors that initiate a scenario tend to appear 
     217          leftward of actors they send messages to.</p></li></ul></div><p>Sequence diagrams are used in this document for more concrete 
     218      design, and that actors and messages are often objects and object 
     219      methods. They provide value for this document in that they give a 
     220      clearly ordered message layout and connections among functional units. 
     221      The actors and messages in the sequence diagrams are more properly roles 
     222      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="d0e461"></a>2.2.1.&nbsp;`Main Use Cases</h4></div></div></div><div class="figure"><a name="d0e464"></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="./diagrams/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="d0e470"></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="./diagrams/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="d0e476"></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="./diagrams/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="d0e482"></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="./diagrams/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="d0e488"></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="./diagrams/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="d0e494"></a>2.2.2.&nbsp;Main Sequence Diagrams</h4></div></div></div><div class="figure"><a name="d0e497"></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="./diagrams/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="d0e503"></a>3.&nbsp;User Guide for a Publisher, Subscriber and 
     223    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="d0e508"></a>3.1.&nbsp;Prefixes and Namespaces</h3></div></div></div><p>The following table presents namespaces tied with prefixes. The 
     224      prefixes are used in example SOAP messages presented in the further 
     225      sections.</p><div class="table"><a name="d0e513"></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="d0e586"></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 
     226      Notification</em></span> is presented independently for a Publisher, 
     227      Subscriber and NotificationConsumer. Although a conceptual style of 
     228      interaction is described here in details, technical particularities of 
     229      constructing messages are presented later.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e596"></a>3.2.1.&nbsp;Publisher Interaction</h4></div></div></div><div class="figure"><a name="d0e599"></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="./diagrams/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 
     230        has to be registered before it starts sending Notifications. In this 
     231        situation, a Publisher sends the RegisterPublisherRequest message to 
     232        <span class="emphasis"><em>QCG Notification</em></span>. If everything goes well it 
     233        receives the RegisterPublisherResponse message with a session ID. From 
     234        this time a Publisher is entitled for sending Notify messages - the 
     235        Notify message has to include received session ID in its content. The 
     236        notifications can be forwarded to remote Notification Consumers or 
     237        buffered locally in PullPoints. Moreover, every new notification 
     238        replaces the old one in CurrentMessages. After work, a Publisher 
     239        should unregister himself by sending DestroyRegistration. This message 
     240        has to include a session ID likewise.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e610"></a>3.2.2.&nbsp;Subscriber interaction</h4></div></div></div><div class="figure"><a name="d0e613"></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="./diagrams/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 
     241        SubscribeRequest message to <span class="emphasis"><em>QCG Notification</em></span>. 
     242        This message should contain an address of NotificationConsumer and a 
     243        TopicExpression that specifies a Topic or a set of Topics on which 
     244        NotificationConsumer should receive Notifications. Additionally a 
     245        Subscriber can define a boolean XPath expression that will be 
     246        evaluated over Notification Messages for more sophisticated filtering. 
     247        After creation of a Subscription <span class="emphasis"><em>QCG Notification</em></span> 
     248        sends the SubscribeResponse message with a created Subscription ID. 
     249        This ID should be attached to the UnsubscribeRequest message when a 
     250        Subscription is not wanted and the Renew message when a Subscription 
     251        should be refreshed. A Subscriber is allowed to create many equal 
     252        Subscriptions.</p><p>If a scenario requires pull-style of notifications, a Subscriber 
     253        can create a set of PullPoints. In a such situation, it has to invoke 
     254        the CreatePullPoint method offered by <span class="emphasis"><em>QCG Notification. 
     255        <span class="emphasis"><em>The response parameter of this method will be an address to 
     256        the newly created <span class="emphasis"><em>PullPoint resource (Subscribers can assign 
     257        this resources as NotificationConsumers in theirs Subscriptions). A 
     258        PullPoint resource can be destroyed by the DestroyPullPoint message 
     259        sent directly to this resource. 
     260        </em></span></em></span></em></span></p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e635"></a>3.2.3.&nbsp;NotificationConsumer Interaction</h4></div></div></div><div class="figure"><a name="d0e639"></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="./diagrams/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 
     261        receiving of Notify messages. A NotificationConsumer can implement an 
     262        interface for receiving Notify messages sending by <span class="emphasis"><em>QCG 
     263        Notification</em></span> or can be a client of a PullPoint. In the 
     264        second case, a NotificationConsumer can invoke GetMessages method 
     265        offered by a certain PullPoint. Messages buffered in the PullPoint 
     266        will be removed from the buffer and delivered in GetMessagesResponse 
     267        to the consumer.</p><p>On the other hand, when a NotificationConsumer wants to receive 
     268        the last Notification message sent on a specific Topic, it can do this 
     269        by sending GetCurrentMessageRequest to <span class="emphasis"><em>QCG 
     270        Notification</em></span>. Requested Notification will be supplied in 
     271        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> 
     272      service, there should be defined Topic Namespaces in a system. Topic 
     273      Namespaces should be created (usually by Publishers) and delivered to 
     274      a<span class="emphasis"><em> QCG Notification</em></span> administrator in a form of XML 
     275      documents. A following record presents a sample Topic Namespace 
     276      identified by 
     277      <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics.</em></span></p><pre class="programlisting">&lt;wstop:TopicNamespace                                                                                                                                                                    
     278    xmlns:wstop="http://docs.oasis-open.org/wsn/t-1"                                                                                                                                 
     279    targetNamespace="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics"&gt;                                                                                               
     280    &lt;wstop:Topic name="House"&gt; 
     281        &lt;wstop:Topic name="Kitchen"&gt; 
     282            &lt;wstop:Topic name="Friedge"/&gt; 
     283            &lt;wstop:Topic name="Cook"/&gt; 
     284            &lt;wstop:Topic name="Light"/&gt; 
     285        &lt;/wstop:Topic&gt; 
     286        &lt;wstop:Topic name="Toilet"&gt; 
     287            &lt;wstop:Topic name="Light"/&gt; 
     288        &lt;/wstop:Topic&gt; 
     289        &lt;wstop:Topic name="Room1"&gt; 
     290            &lt;wstop:Topic name="Light"/&gt; 
     291        &lt;/wstop:Topic&gt; 
     292        &lt;wstop:Topic name="Room2"&gt; 
     293            &lt;wstop:Topic name="Light"/&gt; 
     294        &lt;/wstop:Topic&gt; 
     295    &lt;/wstop:Topic&gt;                                                                                                                                                               
     296&lt;/wstop:TopicNamespace&gt;</pre><p><span class="emphasis"><em>QCG Notification </em></span>supports three types of 
     297      dialects: <span class="emphasis"><em>Simple</em></span>, <span class="emphasis"><em>Concrete</em></span> and 
     298      <span class="emphasis"><em>Full</em></span>. If a message refer to Topics, it has to 
     299      define TopicExpression that identifies one or more Topics (note there 
     300      are situations when TopicExpression has to refer to exactly one Topic). 
     301      TopicExpression has to be written in a supported Dialect. Further more 
     302      TopicExpression has to define Topics from supported Topic Namespaces. To 
     303      select an appropriate Topic Namespace, the first part of TopicExpression 
     304      should be presented in a form of a prefix that refers to this 
     305      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> 
     306      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="d0e689"></a>3.4.&nbsp;Extensions</h3></div></div></div><p>The Oasis standard for notifications doesn't define details for 
     307      lower Levels of functionality so an architect of system is obligated to 
     308      introduce some extensions and clarifications. In the <span class="emphasis"><em>QCG 
     309      Notification </em></span>scenario there are several messages that have to 
     310      be expanded with additional information written as embedded XML. Some of 
     311      these extensions are related with other Oasis standards but some are 
     312      quite new. Technical details are described in the successive 
     313      subsections.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e697"></a>3.4.1.&nbsp;TopicExpression</h4></div></div></div><p><span class="emphasis"><em>QCG Notification </em></span>remote peers have to use 
     314        an appropriate TopicExpression XML element. The schema of this element 
     315        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"> 
     316        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 
     317        here that the Nofity and GetCurrentMessageRequest messages contain a 
     318        Topic element which contains a required @Dialect attribute. Also 
     319        TopicExpression has to define a @Dialect attribute. For conformity 
     320        with the WSDL document, a @Dialect from the Topic element is 
     321        significant. It is not necessary but preferred to attach the same 
     322        @Dialect in the TopicExpression element against.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e708"></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 
     323        to WSDL as well as schema documents related to the Oasis standard. The 
     324        following schema defines these extensions. The first three elements 
     325        named RegisterPublisherID, SubscriptionID and PullPointID are IDs for 
     326        Publisher Registrations, created Subscriptions and PullPoints. 
     327        CurrentMessage is used for supplementation of 
     328        GetCurrentMessageResponse. The rest of the elements is utilized in the 
     329        managing methods, the elements are used in order to: listing 
     330        Subscriptions, listing PublisherRegistrations and listing 
     331        PullPoints.</p><pre class="programlisting">&lt;?xml version="1.0" encoding="UTF-8"?&gt; 
     332&lt;xsd:schema 
     333  xmlns="http://schemas.qoscosgrid.org/ntf/2011/04/extensions" 
     334  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
     335  xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" 
     336  targetNamespace="http://schemas.qoscosgrid.org/ntf/2011/04/extensions" 
     337  elementFormDefault="qualified"&gt; 
     338 
     339  &lt;xsd:import namespace="http://docs.oasis-open.org/wsn/b-2"  
     340   schemaLocation="http://docs.oasis-open.org/wsn/b-2.xsd"/&gt; 
     341    
     342   &lt;xsd:element name="RegisterPublisherID" type="ID"/&gt; 
     343   &lt;xsd:element name="SubscriptionID" type="ID"/&gt; 
     344   &lt;xsd:element name="PullPointID" type="ID"/&gt; 
     345   &lt;xsd:element name="CurrentMessage" type="CM"/&gt; 
     346   
     347   &lt;xsd:simpleType name="ID"&gt; 
     348    &lt;xsd:restriction base="xsd:string"&gt; 
     349     &lt;xsd:maxLength value="32"/&gt; 
     350    &lt;/xsd:restriction&gt; 
     351   &lt;/xsd:simpleType&gt; 
     352 
     353   &lt;xsd:complexType name="CM"&gt; 
     354    &lt;xsd:all&gt; 
     355     &lt;xsd:element name="NotifyTime" type="xsd:dateTime" minOccurs="0"/&gt; 
     356     &lt;xsd:element ref="wsnt:ProducerReference" minOccurs="0" maxOccurs="1"/&gt; 
     357     &lt;xsd:element name="Message" type="MSG" minOccurs="1"/&gt; 
     358    &lt;/xsd:all&gt; 
     359   &lt;/xsd:complexType&gt; 
     360 
     361   &lt;xsd:complexType name="MSG"&gt; 
     362    &lt;xsd:sequence&gt; 
     363     &lt;xsd:any minOccurs="0" maxOccurs="1" processContents="lax"/&gt; 
     364    &lt;/xsd:sequence&gt; 
     365   &lt;/xsd:complexType&gt; 
     366 
     367&lt;!-- ================= QCG Notification manager : ListPullPoints ================== --&gt; 
     368 
     369   &lt;xsd:complexType name="ListSubscriptionsFilter"&gt; 
     370    &lt;xsd:sequence&gt; 
     371     &lt;xsd:element name="SubscriptionID" type="ID" minOccurs="0" maxOccurs="1"/&gt; 
     372     &lt;xsd:element name="ConsumerReference" type="wsa:EndpointReferenceType"  
     373      minOccurs="0" maxOccurs="1"/&gt; 
     374     &lt;xsd:element name="CreationTimeMin" type="wsnt:AbsoluteOrRelativeTimeType"  
     375      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     376     &lt;xsd:element name="CreationTimeMax" type="wsnt:AbsoluteOrRelativeTimeType"  
     377      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     378     &lt;xsd:element name="TerminationTimeMin" type="wsnt:AbsoluteOrRelativeTimeType"  
     379      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     380     &lt;xsd:element name="TerminationTimeMax" type="wsnt:AbsoluteOrRelativeTimeType"  
     381      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     382     &lt;xsd:element ref="wsnt:Filter" minOccurs="0" maxOccurs="1"/&gt;  
     383     &lt;xsd:any namespace="##other" processContents="lax"  
     384      minOccurs="0" maxOccurs="unbounded"/&gt; 
     385    &lt;/xsd:sequence&gt; 
     386   &lt;/xsd:complexType&gt; 
     387 
     388   &lt;xsd:element name="ListSubscriptions"&gt; 
     389    &lt;xsd:complexType&gt; 
     390     &lt;xsd:sequence&gt; 
     391      &lt;xsd:element name="Filter" type="ListSubscriptionsFilter"  
     392       minOccurs="0" maxOccurs="1"/&gt; 
     393      &lt;xsd:element name="MaxNumber" type="xsd:integer"  
     394       minOccurs="0" maxOccurs="1"/&gt; 
     395      &lt;xsd:any namespace="##other" processContents="lax"  
     396       minOccurs="0" maxOccurs="unbounded"/&gt; 
     397     &lt;/xsd:sequence&gt; 
     398    &lt;/xsd:complexType&gt; 
     399   &lt;/xsd:element&gt; 
     400     
     401   &lt;xsd:complexType name="Subscription"&gt; 
     402    &lt;xsd:sequence&gt; 
     403     &lt;xsd:element name="SubscriptionID" type="ID"/&gt; 
     404     &lt;xsd:element name="ConsumerReference" type="wsa:EndpointReferenceType"  
     405      minOccurs="0" maxOccurs="1" /&gt; 
     406     &lt;xsd:element name="CreationTime" type="wsnt:AbsoluteOrRelativeTimeType"  
     407      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     408     &lt;xsd:element name="TerminationTime" type="wsnt:AbsoluteOrRelativeTimeType"  
     409      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     410     &lt;xsd:element ref="wsnt:Filter" minOccurs="0" maxOccurs="1"/&gt;                                           
     411     &lt;xsd:any namespace="##other" processContents="lax"  
     412      minOccurs="0" maxOccurs="unbounded"/&gt; 
     413    &lt;/xsd:sequence&gt; 
     414   &lt;/xsd:complexType&gt; 
     415     
     416   &lt;xsd:element name="ListSubscriptionsResponse"&gt; 
     417    &lt;xsd:complexType&gt; 
     418     &lt;xsd:sequence&gt; 
     419      &lt;xsd:element name="Subscription" type="Subscription"  
     420       minOccurs="0" maxOccurs="unbounded"/&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   &lt;/xsd:element&gt; 
     426 
     427&lt;!-- ================= QCG Notification manager : ListPublishersRegistrations ================== --&gt; 
     428 
     429   &lt;xsd:complexType name="ListPublishersRegistrationsFilter"&gt; 
     430    &lt;xsd:sequence&gt; 
     431     &lt;xsd:element name="PublisherRegistrationID" type="ID"  
     432      minOccurs="0" maxOccurs="1"/&gt; 
     433     &lt;xsd:element name="PublisherReference" type="wsa:EndpointReferenceType"  
     434      minOccurs="0" maxOccurs="1"/&gt; 
     435     &lt;xsd:element name="CreationTimeMin" type="wsnt:AbsoluteOrRelativeTimeType"  
     436      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     437     &lt;xsd:element name="CreationTimeMax" type="wsnt:AbsoluteOrRelativeTimeType"  
     438      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     439     &lt;xsd:element name="TerminationTimeMin" type="wsnt:AbsoluteOrRelativeTimeType"  
     440      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     441     &lt;xsd:element name="TerminationTimeMax" type="wsnt:AbsoluteOrRelativeTimeType"  
     442      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     443     &lt;xsd:any namespace="##other" processContents="lax"  
     444      minOccurs="0" maxOccurs="unbounded"/&gt; 
     445    &lt;/xsd:sequence&gt; 
     446   &lt;/xsd:complexType&gt; 
     447 
     448   &lt;xsd:element name="ListPublishersRegistrations"&gt; 
     449    &lt;xsd:complexType&gt; 
     450     &lt;xsd:sequence&gt; 
     451      &lt;xsd:element name="Filter" type="ListPublishersRegistrationsFilter"  
     452       minOccurs="0" maxOccurs="1"/&gt; 
     453      &lt;xsd:element name="MaxNumber" type="xsd:integer"  
     454       minOccurs="0" maxOccurs="1"/&gt; 
     455      &lt;xsd:any namespace="##other" processContents="lax"  
     456       minOccurs="0" maxOccurs="unbounded"/&gt; 
     457     &lt;/xsd:sequence&gt; 
     458    &lt;/xsd:complexType&gt; 
     459   &lt;/xsd:element&gt; 
     460     
     461   &lt;xsd:complexType name="PublisherRegistration"&gt; 
     462    &lt;xsd:sequence&gt; 
     463     &lt;xsd:element name="PublisherRegistrationID" type="ID"/&gt; 
     464     &lt;xsd:element name="PublisherReference" type="wsa:EndpointReferenceType"  
     465      minOccurs="0" maxOccurs="1"/&gt; 
     466     &lt;xsd:element name="CreationTime" type="wsnt:AbsoluteOrRelativeTimeType"  
     467      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     468     &lt;xsd:element name="TerminationTime" type="wsnt:AbsoluteOrRelativeTimeType"  
     469      nillable="true" minOccurs="0" maxOccurs="1"/&gt;                      
     470     &lt;xsd:any namespace="##other" processContents="lax"  
     471      minOccurs="0" maxOccurs="unbounded"/&gt; 
     472    &lt;/xsd:sequence&gt; 
     473   &lt;/xsd:complexType&gt; 
     474     
     475   &lt;xsd:element name="ListPublishersRegistrationsResponse"&gt; 
     476    &lt;xsd:complexType&gt; 
     477     &lt;xsd:sequence&gt; 
     478      &lt;xsd:element name="PublisherRegistration" type="PublisherRegistration"  
     479       minOccurs="0" maxOccurs="unbounded"/&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   &lt;/xsd:element&gt; 
     485 
     486&lt;!-- ================= QCG Notification manager : ListPullPoints ================== --&gt; 
     487 
     488   &lt;xsd:complexType name="ListPullPointsFilter"&gt; 
     489    &lt;xsd:sequence&gt; 
     490     &lt;xsd:element name="PullPointID" type="ID"  
     491      minOccurs="0" maxOccurs="1"/&gt;         
     492     &lt;xsd:element name="PullPointReference" type="wsa:EndpointReferenceType"  
     493      minOccurs="0" maxOccurs="1"/&gt; 
     494     &lt;xsd:element name="CreationTimeMin" type="wsnt:AbsoluteOrRelativeTimeType"  
     495      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     496     &lt;xsd:element name="CreationTimeMax" type="wsnt:AbsoluteOrRelativeTimeType"  
     497      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     498     &lt;xsd:element name="TerminationTimeMin" type="wsnt:AbsoluteOrRelativeTimeType"  
     499      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     500     &lt;xsd:element name="TerminationTimeMax" type="wsnt:AbsoluteOrRelativeTimeType"  
     501      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     502     &lt;xsd:any namespace="##other" processContents="lax"  
     503      minOccurs="0" maxOccurs="unbounded"/&gt; 
     504    &lt;/xsd:sequence&gt; 
     505   &lt;/xsd:complexType&gt; 
     506 
     507   &lt;xsd:element name="ListPullPoints"&gt; 
     508    &lt;xsd:complexType&gt; 
     509     &lt;xsd:sequence&gt; 
     510      &lt;xsd:element name="Filter" type="ListPullPointsFilter"  
     511       minOccurs="0" maxOccurs="1"/&gt; 
     512      &lt;xsd:element name="MaxNumber" type="xsd:integer"  
     513       minOccurs="0" maxOccurs="1"/&gt; 
     514      &lt;xsd:any namespace="##other" processContents="lax"  
     515       minOccurs="0" maxOccurs="unbounded"/&gt; 
     516     &lt;/xsd:sequence&gt; 
     517    &lt;/xsd:complexType&gt; 
     518   &lt;/xsd:element&gt; 
     519     
     520   &lt;xsd:complexType name="PullPoint"&gt; 
     521    &lt;xsd:sequence&gt; 
     522     &lt;xsd:element name="PullPointID" type="ID"  
     523      minOccurs="0" maxOccurs="1"/&gt;    
     524     &lt;xsd:element name="PullPointReference" type="wsa:EndpointReferenceType"  
     525      minOccurs="0" maxOccurs="1"/&gt; 
     526     &lt;xsd:element name="CreationTime" type="wsnt:AbsoluteOrRelativeTimeType"  
     527      nillable="true" minOccurs="0" maxOccurs="1"/&gt; 
     528     &lt;xsd:element name="TerminationTime" type="wsnt:AbsoluteOrRelativeTimeType"  
     529      nillable="true" minOccurs="0" maxOccurs="1"/&gt;                      
     530     &lt;xsd:any namespace="##other" processContents="lax"  
     531      minOccurs="0" maxOccurs="unbounded"/&gt; 
     532    &lt;/xsd:sequence&gt; 
     533   &lt;/xsd:complexType&gt; 
     534     
     535   &lt;xsd:element name="ListPullPointsResponse"&gt; 
     536    &lt;xsd:complexType&gt; 
     537     &lt;xsd:sequence&gt; 
     538      &lt;xsd:element name="PullPoint" type="PullPoint"  
     539       minOccurs="0" maxOccurs="unbounded"/&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   &lt;/xsd:element&gt; 
     545 
     546&lt;!-- ================= QCG Notification manager : ListTopicNamespaces ================== --&gt; 
     547     
     548   &lt;xsd:complexType name="ListTopicNamespacesFilter"&gt; 
     549    &lt;xsd:sequence&gt; 
     550     &lt;xsd:element name="targetNamespace" type="xsd:anyURI"  
     551      minOccurs="0" maxOccurs="1"/&gt; 
     552    &lt;/xsd:sequence&gt; 
     553   &lt;/xsd:complexType&gt; 
     554 
     555   &lt;xsd:element name="ListTopicNamespaces"&gt; 
     556    &lt;xsd:complexType&gt; 
     557     &lt;xsd:sequence&gt; 
     558      &lt;xsd:element name="Filter" type="ListTopicNamespacesFilter"  
     559       minOccurs="0" maxOccurs="1"/&gt; 
     560      &lt;xsd:element name="MaxNumber" type="xsd:integer"  
     561       minOccurs="0" maxOccurs="1"/&gt; 
     562      &lt;xsd:any namespace="##other" processContents="lax" 
     563       minOccurs="0" maxOccurs="unbounded"/&gt; 
     564     &lt;/xsd:sequence&gt; 
     565    &lt;/xsd:complexType&gt; 
     566   &lt;/xsd:element&gt; 
     567     
     568   &lt;xsd:complexType name="TopicNamespace"&gt; 
     569    &lt;xsd:sequence&gt; 
     570     &lt;xsd:element name="targetNamespace" type="xsd:anyURI" use="required"/&gt; 
     571     &lt;xsd:element name="Topics" type="xsd:anyURI" minOccurs="0" maxOccurs="unbounded"/&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     
     577   &lt;xsd:element name="ListTopicNamespacesResponse"&gt; 
     578    &lt;xsd:complexType&gt; 
     579     &lt;xsd:sequence&gt; 
     580      &lt;xsd:element name="TopicNamespace" type="TopicNamespace" 
     581       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   &lt;/xsd:element&gt; 
     587 
     588&lt;!-- ================= QCG Notification manager : AddTopicNamespace ================== --&gt; 
     589 
     590   &lt;xsd:element name="AddTopicNamespace"&gt; 
     591    &lt;xsd:complexType&gt; 
     592     &lt;xsd:sequence&gt; 
     593      &lt;xsd:element ref="wstop:TopicNamespace"/&gt; 
     594       &lt;xsd:any namespace="##other" processContents="lax" 
     595        minOccurs="0" maxOccurs="unbounded"/&gt; 
     596     &lt;/xsd:sequence&gt; 
     597    &lt;/xsd:complexType&gt; 
     598   &lt;/xsd:element&gt; 
     599    
     600   &lt;xsd:element name="AddTopicNamespaceResponse"&gt; 
     601    &lt;xsd:complexType&gt; 
     602     &lt;xsd:sequence&gt; 
     603      &lt;xsd:any namespace="##other" processContents="lax" 
     604       minOccurs="0" maxOccurs="unbounded"/&gt; 
     605     &lt;/xsd:sequence&gt; 
     606    &lt;/xsd:complexType&gt; 
     607   &lt;/xsd:element&gt; 
     608 
     609&lt;!-- ================= QCG Notification manager : RemoveTopicNamespace ================== --&gt; 
     610 
     611   &lt;xsd:element name="RemoveTopicNamespace"&gt; 
     612    &lt;xsd:complexType&gt; 
     613     &lt;xsd:sequence&gt; 
     614      &lt;xsd:element name="targetNamespace" type="xsd:anyURI"  
     615       use="required"/&gt; 
     616      &lt;xsd:any namespace="##other" processContents="lax" 
     617       minOccurs="0" maxOccurs="unbounded"/&gt; 
     618     &lt;/xsd:sequence&gt; 
     619    &lt;/xsd:complexType&gt; 
     620   &lt;/xsd:element&gt; 
     621     
     622   &lt;xsd:element name="RemoveTopicNamespaceResponse"&gt; 
     623    &lt;xsd:complexType&gt; 
     624     &lt;xsd:sequence&gt; 
     625      &lt;xsd:any namespace="##other" processContents="lax" 
     626       minOccurs="0" maxOccurs="unbounded"/&gt; 
     627     &lt;/xsd:sequence&gt; 
     628    &lt;/xsd:complexType&gt; 
     629   &lt;/xsd:element&gt; 
     630 
     631&lt;/xsd:schema&gt;</pre></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e719"></a>3.5.&nbsp;Methods Description</h3></div></div></div><p>The main idea of this chapter is to present the types of messages 
     632      used in the <span class="emphasis"><em>QCG Notification</em></span> scenario as well as 
     633      introduce how to construct and interpret these messages. The majority of 
     634      them is two-way style and initiated by <span class="emphasis"><em>QCG 
     635      Notification</em></span> clients. Exception is the Notify message that is 
     636      one-way style. In the first phase it is transported from a Publisher to 
     637      <span class="emphasis"><em>QCG Notification</em></span> and in the second it is 
     638      transported from <span class="emphasis"><em>QCG Notification</em></span> to subscribed 
     639      NotificationConsumers.</p><p>All supported by <span class="emphasis"><em>QCG Notification</em></span> message 
     640      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, 
     641              however there are also extensions;</p></li><li><p>For all messages it is important to set a correct 
     642              WS-Addressing Action property which should be the same as SOAP 
     643              Action.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e753"></a>3.5.1.&nbsp;SubscribeRequest</h4></div></div></div><p>SubscribeRequest is sent by a Subscriber to <span class="emphasis"><em>QCG 
     644        Notification</em></span>. The message should contain information about 
     645        a NotificationConsumer and an expression defining Topic or Topics that 
     646        the Subscription will affect. If a message processing is successful, a 
     647        Subscription is created. It is possible to create many equal 
     648        Subscriptions by sending numerously the same SubscribeRequest 
     649        message.</p><pre class="programlisting">SOAP-ENV:Envelope ... &gt; 
     650   &lt;SOAP-ENV:Header&gt; 
     651    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     652     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     653      NotificationProducer/SubscribeRequest</strong></span> 
     654    &lt;/wsa:Action&gt; 
     655    ... 
     656   &lt;/SOAP-ENV:Header&gt; 
     657   &lt;SOAP-ENV:Body&gt; 
     658    &lt;wsnt:Subscribe&gt; 
     659     &lt;wsnt:ConsumerReference&gt; 
     660      &lt;wsa:Address&gt; 
     661         <span class="bold"><strong>https://localhost:2233</strong></span> 
     662      &lt;/wsa:Address&gt; 
     663     &lt;/wsnt:ConsumerReference&gt; 
     664     &lt;wsnt:Filter&gt; 
     665      &lt;wsnt:TopicExpression   
     666        <span class="bold"><strong>xmlns:tns="<span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span>"</strong></span>  
     667        Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>&gt; 
     668           <span class="bold"><strong>tns://*</strong></span> 
     669      &lt;/wsnt:TopicExpression&gt; 
     670      &lt;wsnt:MessageContent 
     671        <span class="bold"><strong>xmlns:smnex=http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage</strong></span>  
     672        Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116"&gt; 
     673           <span class="bold"><strong>boolean(//smnex:State[text()="on"])</strong></span> 
     674      &lt;/wsnt:MessageContent&gt; 
     675     &lt;/wsnt:Filter&gt; 
     676     &lt;wsnt:InitialTerminationTime&gt; 
     677      <span class="bold"><strong>2007-07-23T10:24:14+02:00</strong></span> 
     678     &lt;/wsnt:InitialTerminationTime&gt; 
     679    &lt;/wsnt:Subscribe&gt; 
     680   &lt;/SOAP-ENV:Body&gt; 
     681&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: 
     682            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ 
     683            NotificationProducer/SubscribeRequest. <span class="emphasis"><em>If differ, a 
     684            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 
     685            prefix (http, https, xmpp). The prefix should be adequate to the 
     686            expected type of connection between <span class="emphasis"><em>QCG 
     687            Notification</em></span> and NotificationConsumer(s): http for 
     688            anonymous, https for ssl-based and xmpp for sending notifications 
     689            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 
     690            to the Subscription being created. In other words, it identifies a 
     691            type of Notifications that should be forwarded to the selected 
     692            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 
     693            that Subscription should affect. Topics should come from supported 
     694            Topic Namespaces that are also defined for the element. 
     695            TopicExpression may be defined in two ways: (1) using prefixed 
     696            form (e.g. tns://*) - the topicNamespace is defined in a 
     697            TopicExpression element and assigned to some prefix (e.g. tns) or 
     698            (2) using inline form (e.g. 
     699            {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 
     700            Dialects types are as follows: 
     701            <span class="emphasis"><em>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple", 
     702            "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete", 
     703            "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 
     704            define an XPath boolean expression that will be evaluated over 
     705            redistributed Notificatiom Messages to true or false. If such an 
     706            evaluation returns true, the message is forwarded, otherwise it is 
     707            not. The namespaces used in the expression may be defined inside 
     708            the MessageContent element as additional attributes or using 
     709            in-line form e.g. 
     710            boolean(//{http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage}State[text()="on"].The 
     711            Dialect should always be: 
     712            <span class="emphasis"><em>http://www.w3.org/TR/1999/REC-xpath-19991116</em></span></p></li><li><p>//wsnt:Subscribe/wsnt:InitialTerminationTime</p><p>An optional element. If present, must contain a Subscriber 
     713            suggestion for the termination time of the Subscription being 
     714            created (expressed as a local time with timezone). If not present, 
     715            the termination time is determined automatically - <span class="emphasis"><em>QCG 
     716            Notification <span class="emphasis"><em>specify a default time 
     717            period</em></span></em></span> for the Subscription to be 
     718            valid.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e850"></a>3.5.2.&nbsp;SubscribeResponse</h4></div></div></div><p>In answer on SubscribeRequest there is sent the 
     719        SubscribeResponse message. <span class="emphasis"><em>QCG Notification</em></span> 
     720        deliver in this message a reference to the created Subscription. This 
     721        ID can be used for manipulation and to remove the Subscription.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     722   &lt;SOAP-ENV:Header&gt; 
     723    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     724     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     725      NotificationProducer/SubscribeResponse</strong></span> 
     726    &lt;/wsa:Action&gt; 
     727    ... 
     728   &lt;/SOAP-ENV:Header&gt; 
     729   &lt;SOAP-ENV:Body&gt; 
     730    &lt;wsnt:SubscribeResponse&gt; 
     731     &lt;wsnt:SubscriptionReference&gt; 
     732      &lt;wsa:Address&gt; 
     733         <span class="bold"><strong>http://some.address</strong></span> 
     734      &lt;/wsa:Address&gt; 
     735      &lt;wsa:ReferenceParameters&gt; 
     736         <span class="bold"><strong>&lt;SubscriptionID  
     737          xmlns="http://schemas.qoscosgrid.org/ntf/2011/04/extensions"&gt; 
     738          506435877 
     739         &lt;/SubscriptionID&gt;</strong></span> 
     740      &lt;/wsa:ReferenceParameters&gt; 
     741     &lt;/wsnt:SubscriptionReference&gt; 
     742    &lt;/wsnt:SubscribeResponse&gt; 
     743   &lt;/SOAP-ENV:Body&gt; 
     744&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: 
     745            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ 
     746            NotificationProducer/SubscribeResponse. <span class="emphasis"><em>If differ, a 
     747            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 
     748            current solution it is the <span class="emphasis"><em>QCG Notification</em></span> 
     749            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 
     750            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="d0e898"></a>3.5.3.&nbsp;RenewRequest</h4></div></div></div><p>When a Subscriber wants to renew a Subscription, it can send the 
     751        RenewRequest message to <span class="emphasis"><em>QCG Notification</em></span>. The 
     752        message should contain the Subscription ID element and a new 
     753        termination time suggesation.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     754   &lt;SOAP-ENV:Header&gt; 
     755    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     756     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     757      SubscriptionManager/RenewRequest</strong></span> 
     758    &lt;/wsa:Action&gt; 
     759    ... 
     760   &lt;/SOAP-ENV:Header&gt; 
     761   &lt;SOAP-ENV:Body&gt; 
     762    &lt;wsnt:Renew&gt; 
     763     &lt;wsnt:TerminationTime&gt; 
     764      <span class="bold"><strong>2007-07-25T12:24:14+02:00</strong></span> 
     765     &lt;/wsnt:TerminationTime&gt; 
     766     &lt;smn-ext:SubscriptionID&gt; 
     767      <span class="bold"><strong>506435877</strong></span> 
     768     &lt;/smn-ext:SubscriptionID&gt; 
     769    &lt;/wsnt:Renew&gt; 
     770   &lt;/SOAP-ENV:Body&gt; 
     771&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: 
     772            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ 
     773            SubscriptionManager/RenewRequest. <span class="emphasis"><em>If differ, a fault 
     774            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 
     775            Subscription being renewed (expressed as a local time with 
     776            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 
     777            message.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e939"></a>3.5.4.&nbsp;RenewResponse</h4></div></div></div><p>An answer to the RenewRequest message is RenewResponse. The 
     778        message contains a termination time for the renewed 
     779        Subscription.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     780   &lt;SOAP-ENV:Header&gt; 
     781    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     782    <span class="bold"><strong> http://docs.oasis-open.org/wsn/bw-2/ 
     783      SubscriptionManager/RenewResponse</strong></span> 
     784    &lt;/wsa:Action&gt; 
     785    ... 
     786   &lt;/SOAP-ENV:Header&gt; 
     787   &lt;SOAP-ENV:Body&gt; 
     788    &lt;wsnt:RenewResponse&gt; 
     789     &lt;wsnt:TerminationTime&gt; 
     790      <span class="bold"><strong>2007-07-25T10:24:14Z</strong></span> 
     791     &lt;/wsnt:TerminationTime&gt; 
     792     &lt;wsnt:CurrentTime&gt; 
     793      <span class="bold"><strong>2007-07-24T10:24:14Z</strong></span> 
     794     &lt;/wsnt:CurrentTime&gt; 
     795    &lt;/wsnt:RenewResponse&gt; 
     796   &lt;/SOAP-ENV:Body&gt; 
     797&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: 
     798            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ 
     799            SubscriptionManager/RenewResponse. <span class="emphasis"><em>If differ, a fault 
     800            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 
     801            (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 
     802            Notification's</em></span> time when the Subscription was renewing 
     803            (expressed as UTC Time).</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e983"></a>3.5.5.&nbsp;UnsubscribeRequest</h4></div></div></div><p>When a Subscriber wants to terminate a Subscription, it has to 
     804        send the UnsubscribeRequest message to <span class="emphasis"><em>QCG 
     805        Notification</em></span>. The parameter attached to this request is a 
     806        Subscription ID.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     807   &lt;SOAP-ENV:Header&gt; 
     808    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     809     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     810      SubscriptionManager/UnsubscribeRequest</strong></span> 
     811    &lt;/wsa:Action&gt; 
     812    ... 
     813   &lt;/SOAP-ENV:Header&gt; 
     814   &lt;SOAP-ENV:Body&gt; 
     815    &lt;wsnt:Unsubscribe&gt; 
     816     &lt;smn-ext:SubscriptionID&gt; 
     817      <span class="bold"><strong>506435877</strong></span> 
     818     &lt;/smn-ext:SubscriptionID&gt; 
     819    &lt;/wsnt:Unsubscribe&gt; 
     820   &lt;/SOAP-ENV:Body&gt; 
     821&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: 
     822            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ 
     823            SubscriptionManager/UnsubscribeRequest. <span class="emphasis"><em>If differ, a 
     824            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 
     825            message.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1016"></a>3.5.6.&nbsp;UnsubscribeResponse</h4></div></div></div><p>UnsubscribeResponse is returned to a Subscriber after 
     826        successfully processing the UnsubscribeRequest message.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     827   &lt;SOAP-ENV:Header&gt; 
     828    &lt;wsa:Action SOAP-ENV:mustUnderstAand="1"&gt; 
     829    <span class="bold"><strong> http://docs.oasis-open.org/wsn/bw-2/ 
     830      SubscriptionManager/UnsubscribeResponse</strong></span> 
     831    &lt;/wsa:Action&gt; 
     832    ... 
     833   &lt;/SOAP-ENV:Header&gt; 
     834   &lt;SOAP-ENV:Body&gt; 
     835    &lt;wsnt:UnsubscribeResponse&gt; 
     836    &lt;/wsnt:UnsubscribeResponse&gt; 
     837   &lt;/SOAP-ENV:Body&gt; 
     838&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: 
     839            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ 
     840            SubscriptionManager/UnsubscribeResponse. <span class="emphasis"><em>If differ, a 
     841            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="d0e1037"></a>3.5.7.&nbsp;RegisterPublisherRequest</h4></div></div></div><p>In order to sending Notifications, a Publisher can be obligated 
     842        to register himself previosly in <span class="emphasis"><em>QCG 
     843        Notification</em></span>. For this purpose, it sends the 
     844        RegisterPublisherRequest message to <span class="emphasis"><em>QCG 
     845        Notification</em></span>.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     846   &lt;SOAP-ENV:Header&gt; 
     847    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     848     <span class="bold"><strong>http://docs.oasis-open.org/wsn/brw-2/ 
     849      RegisterPublisher/RegisterPublisherRequest</strong></span> 
     850    &lt;/wsa:Action&gt; 
     851    ... 
     852   &lt;/SOAP-ENV:Header&gt; 
     853   &lt;SOAP-ENV:Body&gt; 
     854    &lt;wsnbr:RegisterPublisher&gt; 
     855     &lt;wsnbr:Demand&gt; 
     856      <span class="bold"><strong>false</strong></span> 
     857     &lt;/wsnbr:Demand&gt; 
     858     &lt;wsnbr:InitialTerminationTime&gt; 
     859      <span class="bold"><strong>2007-07-23T10:24:14+02:00</strong></span> 
     860     &lt;/wsnbr:InitialTerminationTime&gt; 
     861    &lt;/wsnbr:RegisterPublisher&gt; 
     862   &lt;/SOAP-ENV:Body&gt; 
     863&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: 
     864            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/brw-2/ 
     865            RegisterPublisher/RegisterPublisherRequest. <span class="emphasis"><em>If differ, a 
     866            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 
     867            isn't supported so default <span class="emphasis"><em>false</em></span> is the sole 
     868            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 
     869            suggestion for the termination time of the Registration being 
     870            created (expressed as a local time with timezone). If not present, 
     871            the termination time is determined automatically - <span class="emphasis"><em>QCG 
     872            Notification <span class="emphasis"><em>specify the default time 
     873            period</em></span></em></span> for the Registration to be valid. 
     874            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="d0e1090"></a>3.5.8.&nbsp;RegisterPublisherResponse</h4></div></div></div><p>In a response to a successful registration process, 
     875        <span class="emphasis"><em>QCG Notification</em></span> sends RegisterPublisherResponse. 
     876        This message contains a reference to the created Registration. The 
     877        attached ID is necessary to send any Notification message.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     878   &lt;SOAP-ENV:Header&gt; 
     879    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     880     <span class="bold"><strong>http://docs.oasis-open.org/wsn/brw-2/ 
     881      RegisterPublisher/RegisterPublisherResponse</strong></span> 
     882    &lt;/wsa:Action&gt; 
     883   &lt;/SOAP-ENV:Header&gt; 
     884   &lt;SOAP-ENV:Body&gt; 
     885    &lt;wsnbr:RegisterPublisherResponse&gt; 
     886     &lt;wsnbr:PublisherRegistrationReference&gt; 
     887      &lt;wsa:Address&gt; 
     888         <span class="bold"><strong>http://some.address</strong></span> 
     889      &lt;/wsa:Address&gt; 
     890      &lt;wsa:ReferenceParameters&gt; 
     891         <span class="bold"><strong>&lt;RegisterPublisherID  
     892        xmlns="http://schemas.qoscosgrid.org/ntf/2011/04/extensions"&gt; 
     893          1207382668 
     894         &lt;/RegisterPublisherID&gt;</strong></span> 
     895      &lt;/wsa:ReferenceParameters&gt; 
     896     &lt;/wsnbr:PublisherRegistrationReference&gt; 
     897    &lt;/wsnbr:RegisterPublisherResponse&gt; 
     898   &lt;/SOAP-ENV:Body&gt; 
     899&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: 
     900            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/brw-2/RegisterPublisher/RegisterPublisherResponse. 
     901            <span class="emphasis"><em>If differ, a fault will be 
     902            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 
     903            the current solution it is the <span class="emphasis"><em>QCG 
     904            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 
     905            Registration ID. It defines a session that is created after 
     906            registration and removed by sending the DestroyRegistration 
     907            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="d0e1135"></a>3.5.9.&nbsp;Notify</h4></div></div></div><p>Notify consists of one or many NotificationMessages. Any of them 
     908        is a separate Notification message and is processed independently. 
     909        NotificationMessage should define a single Topic it concerns. 
     910        TopicExpression should be written in the same Dialect that the 
     911        Subscription was created in. The Publisher Registration ID has to be 
     912        attached to Notify messages.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     913   &lt;SOAP-ENV:Header&gt; 
     914    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     915     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     916      NotificationConsumer/Notify</strong></span> 
     917    &lt;/wsa:Action&gt; 
     918   &lt;/SOAP-ENV:Header&gt; 
     919   &lt;SOAP-ENV:Body&gt; 
     920    &lt;wsnt:Notify&gt; 
     921     &lt;wsnt:NotificationMessage&gt; 
     922      &lt;wsnt:Topic  
     923       Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span><span class="bold"><strong>  
     924       xmlns:tns="<span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span>"&gt; 
     925          tns:House/Kitchen/Light</strong></span> 
     926      &lt;/wsnt:Topic&gt; 
     927      &lt;wsnt:ProducerReference&gt; 
     928       &lt;wsa:Address&gt; 
     929        <span class="bold"><strong>http://some.address 
     930       </strong></span>&lt;wsa:Address&gt; 
     931      &lt;wsnt:ProducerReference&gt; 
     932      &lt;wsnt:Message&gt; 
     933         <span class="bold"><strong>&lt;smnex:State  
     934          xmlns:smnex="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"&gt; 
     935             on 
     936         &lt;/smnex:State&gt;</strong></span> 
     937      &lt;/wsnt:Message&gt; 
     938     &lt;/wsnt:NotificationMessage&gt; 
     939     &lt;smn-ext:RegisterPublisherID&gt; 
     940      <span class="bold"><strong>1207382668</strong></span> 
     941     &lt;/smn-ext:RegisterPublisherID&gt; 
     942    &lt;/wsnt:Notify&gt; 
     943   &lt;/SOAP-ENV:Body&gt; 
     944&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: 
     945            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/NotificationConsumer/Notify. 
     946            <span class="emphasis"><em>If differ, a fault will be 
     947            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 
     948            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 
     949            exactly one Topic in a specified Dialect type. The Topic should be 
     950            supported. The Topic may be defined in two ways: (1) using 
     951            prefixed form (e.g. tns:House/Kithchen/Light) - the topicNamespace 
     952            is defined in a Topic element and assigned to some prefix (e.g. 
     953            tns) or (2) using inline form (e.g. 
     954            {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 
     955            Dialect types are as follows: 
     956            <span class="emphasis"><em>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple", 
     957            "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete", 
     958            "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 
     959            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 
     960            RegisterPublisherResponse message.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1219"></a>3.5.10.&nbsp;DestroyRegistrationRequest</h4></div></div></div><p>A Publisher can terminate a Registration by sending the 
     961        DestroyRegistrationRequest message to <span class="emphasis"><em>QCG 
     962        Notification</em></span>. The parameter attached to this request is a 
     963        Publisher Registration ID.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     964   &lt;SOAP-ENV:Header&gt; 
     965    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     966     <span class="bold"><strong>http://docs.oasis-open-org/wsn/brw-2/ 
     967      PublisherRegistrationManager/DestroyRegistrationRequest</strong></span> 
     968    &lt;/wsa:Action&gt; 
     969   &lt;/SOAP-ENV:Header&gt; 
     970   &lt;SOAP-ENV:Body&gt; 
     971    &lt;wsnbr:DestroyRegistration&gt; 
     972     &lt;smn-ext:RegisterPublisherID&gt; 
     973      <span class="bold"><strong>387837036</strong></span> 
     974     &lt;/smn-ext:RegisterPublisherID&gt; 
     975    &lt;/wsnbr:DestroyRegistration&gt; 
     976   &lt;/SOAP-ENV:Body&gt; 
     977&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: 
     978            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/brw-2/ 
     979            PublisherRegistrationManager/DestroyRegistrationRequest. 
     980            <span class="emphasis"><em>If differ, a fault will be 
     981            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 
     982            RegisterPublisherResponse message.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1252"></a>3.5.11.&nbsp;DestroyRegistrationResponse</h4></div></div></div><p>DestroyRegistrationResponse is returned to a Publisher after a 
     983        successful process of destroying a Publisher Registration, in a 
     984        response to the DestroyRegistration message.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     985   &lt;SOAP-ENV:Header&gt; 
     986    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     987     <span class="bold"><strong>http://docs.oasis-open-org/wsn/brw-2/ 
     988      PublisherRegistrationManager/DestroyRegistrationResponse</strong></span> 
     989    &lt;/wsa:Action&gt; 
     990   &lt;/SOAP-ENV:Header&gt; 
     991   &lt;SOAP-ENV:Body&gt; 
     992    &lt;wsn-br:DestroyRegistrationResponse&gt; 
     993    &lt;/wsn-br:DestroyRegistrationResponse&gt; 
     994   &lt;/SOAP-ENV:Body&gt; 
     995&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: 
     996            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/brw-2/ 
     997            PublisherRegistrationManager/DestroyRegistrationResponse. 
     998            <span class="emphasis"><em>If differ, a fault will be 
     999            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="d0e1273"></a>3.5.12.&nbsp;CreatePullPointRequest</h4></div></div></div><p>In scenarios where the pull-style of notifications delivery is 
     1000        needed, Subscribers can create PullPoints. To do this, a Subscriber 
     1001        sends the CreatePullPointRequest message to <span class="emphasis"><em>QCG Notification 
     1002        PullPoint</em></span>.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1003   &lt;SOAP-ENV:Header&gt; 
     1004    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1005     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     1006      CreatePullPoint/CreatePullPointRequest</strong></span> 
     1007    &lt;/wsa:Action&gt; 
     1008    ... 
     1009   &lt;/SOAP-ENV:Header&gt; 
     1010   &lt;SOAP-ENV:Body&gt; 
     1011    &lt;wsnt:CreatePullPoint&gt; 
     1012    &lt;/wsnt:CreatePullPoint&gt; 
     1013   &lt;/SOAP-ENV:Body&gt; 
     1014&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: 
     1015            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/CreatePullPoint/CreatePullPointRequest. 
     1016            <span class="emphasis"><em>If differ, a fault will be 
     1017            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="d0e1297"></a>3.5.13.&nbsp;CreatePullPointResponse</h4></div></div></div><p>The CreatePullPointResponse message is returned in a response to 
     1018        the request of PullPoint creation. This message contains a reference 
     1019        to the just created PullPoint. </p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1020   &lt;SOAP-ENV:Header&gt; 
     1021    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1022     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     1023      CreatePullPoint/CreatePullPointResponse</strong></span> 
     1024    &lt;/wsa:Action&gt; 
     1025    ... 
     1026   &lt;/SOAP-ENV:Header&gt; 
     1027   &lt;SOAP-ENV:Body&gt; 
     1028    &lt;wsnt:CreatePullPointResponse&gt; 
     1029      &lt;wsa:Address xmlns:wsa="http://www.w3.org/2005/08/addressing"&gt; 
     1030      <span class="bold"><strong> http://some.address:2211?ppID=1100992448</strong></span> 
     1031      &lt;/wsa:Address&gt; 
     1032    &lt;/wsnt:CreatePullPointResponse&gt; 
     1033   &lt;/SOAP-ENV:Body&gt; 
     1034&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: 
     1035            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/CreatePullPoint/CreatePullPointResponse. 
     1036            <span class="emphasis"><em>If differ, a fault will be 
     1037            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="d0e1327"></a>3.5.14.&nbsp;GetMessages</h4></div></div></div><p>A Pull-style NotificationConsumer can get messages buffered in a 
     1038        PullPoint by invoking the GetMessages method. It sends the 
     1039        GetMessagesRequest message directly to the specified PullPoint. The 
     1040        message can contain a specification of a maximal number of 
     1041        Notification messages that NotificationConsumer wants to receive in 
     1042        the response.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1043   &lt;SOAP-ENV:Header&gt; 
     1044    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1045     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     1046      PullPoint/GetMessagesRequest</strong></span> 
     1047    &lt;/wsa:Action&gt; 
     1048    ... 
     1049   &lt;/SOAP-ENV:Header&gt; 
     1050   &lt;SOAP-ENV:Body&gt; 
     1051    &lt;wsnt:GetMessages&gt; 
     1052      &lt;wsnt:MaximumNumber&gt;<span class="bold"><strong>10</strong></span>&lt;/wsnt:MaximumNumber&gt; 
     1053    &lt;/wsnt:GetMessages&gt; 
     1054   &lt;/SOAP-ENV:Body&gt; 
     1055&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: 
     1056            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/PullPoint/GetMessagesRequest. 
     1057            <span class="emphasis"><em>If differ, a fault will be 
     1058            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 
     1059            maximal number of messages that will be gotten from the 
     1060            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="d0e1360"></a>3.5.15.&nbsp;GetMessagesResponse</h4></div></div></div><p>GetMessagesResponse, a response message to GetMessages, consists 
     1061        of a set of Notifications received from the PullPoint. 
     1062        </p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1063   &lt;SOAP-ENV:Header&gt; 
     1064    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1065     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     1066      PullPoint/GetMessagesResponse</strong></span> 
     1067    &lt;/wsa:Action&gt; 
     1068    ... 
     1069   &lt;/SOAP-ENV:Header&gt; 
     1070   &lt;SOAP-ENV:Body&gt; 
     1071    &lt;wsnt:GetMessagesResponse&gt; 
     1072     &lt;wsnt:NotificationMessage&gt; 
     1073      &lt;wsnt:Topic  
     1074       Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>&gt; 
     1075       <span class="bold"><strong>xmlns:tns="<span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span>"</strong></span>&gt; 
     1076          <span class="bold"><strong>tns:House/Kitchen/Light</strong></span> 
     1077      &lt;/wsnt:Topic&gt; 
     1078      &lt;wsnt:ProducerReference&gt; 
     1079       &lt;wsa:Address&gt; 
     1080        <span class="bold"><strong>http://some.address 
     1081       </strong></span>&lt;wsa:Address&gt; 
     1082      &lt;wsnt:ProducerReference&gt; 
     1083      &lt;wsnt:Message&gt; 
     1084         <span class="bold"><strong><span class="bold"><strong>&lt;smnex:State  
     1085          xmlns:smnex="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"&gt; 
     1086             on 
     1087         &lt;/smnex:State&gt;</strong></span></strong></span> 
     1088      &lt;/wsnt:Message&gt; 
     1089     &lt;/wsnt:NotificationMessage&gt; 
     1090     &lt;wsnt:NotificationMessage&gt; 
     1091      ...  
     1092     &lt;/wsnt:NotificationMessage&gt; 
     1093     ... 
     1094    &lt;/wsnt:GetMessagesResponse&gt; 
     1095   &lt;/SOAP-ENV:Body&gt; 
     1096&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: 
     1097              <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/PullPoint/GetMessagesResponse. 
     1098              <span class="emphasis"><em>If differ, a fault will be 
     1099              returned.</em></span></em></span></p></li><li><p>//wsnt:GetMessagesResponse</p><p>A set of Notification messages. The number of messages is 
     1100              restricted by the wsnt:MaximumNumber parameter defined in the 
     1101              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 
     1102              exactly one Topic in a specified Dialect type. The Topic should 
     1103              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 
     1104              Dialect types are as follows: 
     1105              <span class="emphasis"><em>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple", 
     1106              "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete", 
     1107              "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 
     1108              shorter than 4096 bytes.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1437"></a>3.5.16.&nbsp;DestroyPullPointRequest</h4></div></div></div><p>A PullPoint can be destroyed by invoking a DestroyPullPoint 
     1109        method. An empty request message should be sent directly to the 
     1110        PullPoint.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1111   &lt;SOAP-ENV:Header&gt; 
     1112    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1113     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     1114      PullPoint/DestroyPullPointRequest</strong></span> 
     1115    &lt;/wsa:Action&gt; 
     1116    ... 
     1117   &lt;/SOAP-ENV:Header&gt; 
     1118   &lt;SOAP-ENV:Body&gt; 
     1119    &lt;wsnt:DestroyPullPoint&gt; 
     1120    &lt;/wsnt:DestroyPullPoint&gt; 
     1121   &lt;/SOAP-ENV:Body&gt; 
     1122&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: 
     1123            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/PullPoint/DestroyPullPointRequest. 
     1124            <span class="emphasis"><em>If differ, a fault will be 
     1125            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="d0e1458"></a>3.5.17.&nbsp;DestroyPullPointResponse</h4></div></div></div><p>A response to a DestroyPullPointRequest message is an empty 
     1126        DestroyPullPointResponse message.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1127   &lt;SOAP-ENV:Header&gt; 
     1128    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1129     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     1130      PullPoint/DestroyPullPointResponse</strong></span> 
     1131    &lt;/wsa:Action&gt; 
     1132    ... 
     1133   &lt;/SOAP-ENV:Header&gt; 
     1134   &lt;SOAP-ENV:Body&gt; 
     1135    &lt;wsnt:DestroyPullPointResponse&gt; 
     1136    &lt;/wsnt:DestroyPullPointResponse&gt; 
     1137   &lt;/SOAP-ENV:Body&gt; 
     1138&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: 
     1139            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/PullPoint/DestroyPullPointResponse. 
     1140            <span class="emphasis"><em>If differ, a fault will be 
     1141            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="d0e1479"></a>3.5.18.&nbsp;GetCurrentMessageRequest</h4></div></div></div><p>GetCurrentMessageRequest is useful especially when a new 
     1142        NotificationConsumer is connecting and want to get the last published 
     1143        Notification Message on a specified Topic. Single GetCurrentMessage 
     1144        should refer exactly one Topic and has to be expressed in a supported 
     1145        Dialect type.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1146   &lt;SOAP-ENV:Header&gt; 
     1147    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1148     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     1149      NotificationProducer/GetCurrentMessageRequest</strong></span> 
     1150    &lt;/wsa:Action&gt; 
     1151   &lt;/SOAP-ENV:Header&gt; 
     1152   &lt;SOAP-ENV:Body&gt; 
     1153    &lt;wsnt:GetCurrentMessage&gt; 
     1154     &lt;wsnt:Topic  
     1155      Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>&gt; 
     1156        <span class="bold"><strong>xmlns:tns="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics"</strong></span>&gt; 
     1157         <span class="bold"><strong>tns:</strong></span><span class="bold"><strong>House/Kitchen/Light</strong></span> 
     1158     &lt;/wsnt:Topic&gt; 
     1159    &lt;/wsnt:GetCurrentMessage&gt; 
     1160   &lt;/SOAP-ENV:Body&gt; 
     1161&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: 
     1162            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ 
     1163            NotificationProducer/GetCurrentMessageRequest. <span class="emphasis"><em>If 
     1164            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 
     1165            exactly one Topic in a specified Dialect type. The topic should be 
     1166            supported. The Topic may be defined in two ways: (1) using 
     1167            prefixed form (e.g. tns:House/Kithchen/Light) - the topicNamespace 
     1168            is defined in a Topic element and assigned to some prefix (e.g. 
     1169            tns) or (2) using inline form (e.g. 
     1170            {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 
     1171            dialect's types are as follows: 
     1172            <span class="emphasis"><em>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple", 
     1173            "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete", 
     1174            "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full". 
     1175            </em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1526"></a>3.5.19.&nbsp;GetCurrentMessageResponse</h4></div></div></div><p>In a response to GetCurrentMessageRequest <span class="emphasis"><em>QCG 
     1176        Notification</em></span> prepares GetCurrentMessageResponse. This 
     1177        message includes the content of the last Notification 
     1178        GetCurrentMessageRequest refers to.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1179   &lt;SOAP-ENV:Header&gt; 
     1180    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1181     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     1182      NotificationProducer/GetCurrentMessageResponse</strong></span> 
     1183    &lt;/wsa:Action&gt; 
     1184   &lt;/SOAP-ENV:Header&gt; 
     1185   &lt;SOAP-ENV:Body&gt; 
     1186    &lt;wsnt:GetCurrentMessageResponse&gt; 
     1187     &lt;smn-ext:CurrentMessage&gt; 
     1188      &lt;smn-ext:NotifyTime&gt; 
     1189         <span class="bold"><strong>2007-07-23T10:43:14Z</strong></span> 
     1190      &lt;/smn-ext:NotifyTime&gt; 
     1191      &lt;wsnt:ProducerReference&gt; 
     1192       &lt;wsa:Address&gt; 
     1193        <span class="bold"><strong>http://some.address 
     1194       </strong></span>&lt;wsa:Address&gt; 
     1195      &lt;wsnt:ProducerReference&gt;  
     1196      &lt;smn-ext:Message&gt; 
     1197         <span class="bold"><strong><span class="bold"><strong>&lt;smnex:State  
     1198          xmlns:smnex="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"&gt; 
     1199             on 
     1200         &lt;/smnex:State&gt;</strong></span></strong></span> 
     1201      &lt;/smn-ext:Message&gt; 
     1202     &lt;/smn-ext:CurrentMessage&gt; 
     1203    &lt;/wsnt:GetCurrentMessageResponse&gt; 
     1204   &lt;/SOAP-ENV:Body&gt; 
     1205&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: 
     1206            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ 
     1207            NotificationProducer/GetCurrentMessageResponse. <span class="emphasis"><em>If 
     1208            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 
     1209            Notification and information related to this 
     1210            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 
     1211            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 
     1212            this element is the last Notification message published to the 
     1213            Topic specified in GetCurrentMessageRequest. Currently supported 
     1214            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="d0e1592"></a>3.5.20.&nbsp;ListSubscriptions</h4></div></div></div><p>The first method from the the group of administrative methods. 
     1215        It may be invoked to get an information about available subscriptions 
     1216        in the <span class="emphasis"><em>QCG Notification</em></span> service. The method 
     1217        consists of various filtering parameters.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1218   &lt;SOAP-ENV:Header&gt; 
     1219    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1220     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ 
     1221     QCGNotificationManager/ListSubscriptionsRequest</strong></span> 
     1222    &lt;/wsa:Action&gt; 
     1223    ... 
     1224   &lt;/SOAP-ENV:Header&gt; 
     1225   &lt;SOAP-ENV:Body&gt; 
     1226    &lt;smn-ext:ListSubscriptions&gt; 
     1227     &lt;smn-ext:Filter&gt; 
     1228      &lt;smn-ext:SubscriptionID&gt; 
     1229       <span class="bold"><strong>1568334</strong></span> 
     1230      &lt;/smn-ext:SubscriptionID&gt; 
     1231      &lt;smn-ext:ConsumerReference&gt; 
     1232       &lt;wsa:Address&gt; 
     1233        <span class="bold"><strong>http://localhost:2233</strong></span> 
     1234       &lt;/wsa:Address&gt; 
     1235      &lt;/smn-ext:ConsumerReference&gt; 
     1236      &lt;smn-ext:CreationTimeMin&gt; 
     1237       <span class="bold"><strong>2010-07-09T08:21:58Z</strong></span> 
     1238      &lt;/smn-ext:CreationTimeMin&gt; 
     1239      &lt;smn-ext:CreationTimeMax&gt; 
     1240       <span class="bold"><strong>2010-07-09T10:21:58Z</strong></span> 
     1241      &lt;/smn-ext:CreationTimeMax&gt; 
     1242      &lt;smn-ext:TerminationTimeMin&gt; 
     1243       <span class="bold"><strong>2010-07-09T08:21:58Z</strong></span> 
     1244      &lt;/smn-ext:TerminationTimeMin&gt; 
     1245      &lt;smn-ext:TerminationTimeMax&gt; 
     1246       <span class="bold"><strong>2010-07-09T10:21:58Z</strong></span> 
     1247      &lt;/smn-ext:TerminationTimeMax&gt; 
     1248      &lt;wsnt:Filter&gt; 
     1249       &lt;wsnt:MessageContent  
     1250        <span class="bold"><strong>xmlns:smnex="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"</strong></span>  
     1251        Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116"&gt; 
     1252         <span class="bold"><strong>boolean(//smnex:State[text()="on"])</strong></span> 
     1253       &lt;/wsnt:MessageContent&gt; 
     1254       &lt;wsnt:TopicExpression  
     1255        <span class="bold"><strong>xmlns:tns="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics"</strong></span>  
     1256        Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>&gt; 
     1257         <span class="bold"><strong>tns://*</strong></span> 
     1258       &lt;/wsnt:TopicExpression&gt; 
     1259      &lt;/wsnt:Filter&gt; 
     1260     &lt;/smn-ext:Filter&gt; 
     1261    &lt;/smn-ext:ListSubscriptions&gt; 
     1262   &lt;/SOAP-ENV:Body&gt; 
     1263&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: 
     1264            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListSubscriptionsRequest. 
     1265            <span class="emphasis"><em>If differ, a fault will be 
     1266            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 
     1267            Notification</em></span> schema. It consists of a number of 
     1268            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 
     1269            Subscriptions may be simply filtered on the basis of Subscription 
     1270            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 
     1271            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 
     1272            </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 
     1273            parameters related to lifetime of a Subscription, respectively: 
     1274            minimal creation time, maximal creation time, minimal termination 
     1275            time and maximal termination time. The content of these elements 
     1276            is a time expressed as a local time with a 
     1277            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 
     1278            Subscribe message. In this method it is utilized to filter 
     1279            Subscriptions on the basis of notification filtering 
     1280            parameters.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1694"></a>3.5.21.&nbsp;ListSubscriptionsResponse</h4></div></div></div><p>The message is sent in the response to ListSubscriptions. It 
     1281        includes a list of information sets about available and propably 
     1282        filtered Subscriptions.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1283   &lt;SOAP-ENV:Header&gt; 
     1284    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1285     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ 
     1286     QCGNotificationManager/ListSubscriptionsResponse 
     1287    </strong></span>&lt;/wsa:Action&gt; 
     1288    ... 
     1289   &lt;/SOAP-ENV:Header&gt; 
     1290   &lt;SOAP-ENV:Body&gt; 
     1291    &lt;smn-ext:ListSubscriptionsResponse&gt; 
     1292     &lt;smn-ext:Subscription&gt; 
     1293      &lt;smn-ext:SubscriptionID&gt; 
     1294       <span class="bold"><strong>16807 
     1295      </strong></span>&lt;/smn-ext:SubscriptionID&gt; 
     1296      &lt;smn-ext:ConsumerReference&gt; 
     1297       &lt;wsa:Address&gt; 
     1298        <span class="bold"><strong>http://localhost:2233</strong></span> 
     1299       &lt;/wsa:Address&gt; 
     1300      &lt;/smn-ext:ConsumerReference&gt; 
     1301      &lt;smn-ext:CreationTime&gt; 
     1302       <span class="bold"><strong>2010-07-09T09:21:48Z 
     1303      </strong></span>&lt;/smn-ext:CreationTime&gt; 
     1304      &lt;smn-ext:TerminationTime&gt; 
     1305       <span class="bold"><strong>2010-07-09T09:21:48Z</strong></span> 
     1306      &lt;/smn-ext:TerminationTime&gt; 
     1307      &lt;wsnt:Filter&gt; 
     1308       &lt;wsnt:MessageContent  
     1309        <span class="bold"><strong>xmlns:smnex="</strong></span><span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"</strong></span>  
     1310        Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116"&gt; 
     1311        <span class="bold"><strong>boolean(//smnex:State[text()="on"])</strong></span> 
     1312       &lt;/wsnt:MessageContent&gt; 
     1313       &lt;wsnt:TopicExpression <span class="bold"><strong> 
     1314        xmlns:tns="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics"</strong></span>  
     1315        Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>&gt; 
     1316         <span class="bold"><strong>tns://* 
     1317       </strong></span>&lt;/wsnt:TopicExpression&gt; 
     1318      &lt;/wsnt:Filter&gt; 
     1319     &lt;/smn-ext:Subscription&gt; 
     1320     &lt;smn-ext:Subscription&gt; 
     1321      ... 
     1322     &lt;/smn-ext:Subscription&gt; 
     1323    ... 
     1324    &lt;/smn-ext:ListSubscriptionsResponse&gt; 
     1325   &lt;/SOAP-ENV:Body&gt; 
     1326&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: 
     1327            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListSubscriptionsResponse. 
     1328            <span class="emphasis"><em>If differ, a fault will be 
     1329            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 
     1330            <span class="emphasis"><em>QCG Notification</em></span> (propably also filtered on 
     1331            the basis of the smn-ext:Filter element sent in 
     1332            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 
     1333            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 
     1334            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 
     1335            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 
     1336            Subscription. The content of these elements is a time expressed as 
     1337            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 
     1338            Subscribe message. It specifies Notification filtering parameters 
     1339            of a Subscription.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1791"></a>3.5.22.&nbsp;ListPublishersRegistrations</h4></div></div></div><p>The next method from the the group of administrative methods. It 
     1340        may be utilized to list Publishers Registrations. The method consists 
     1341        of several filtering parameters.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1342   &lt;SOAP-ENV:Header&gt; 
     1343    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1344     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ 
     1345     QCGNotificationManager/ListPublishersRegistrationsRequest</strong></span> 
     1346    &lt;/wsa:Action&gt; 
     1347    ... 
     1348   &lt;/SOAP-ENV:Header&gt; 
     1349   &lt;SOAP-ENV:Body&gt; 
     1350    &lt;smn-ext:ListPublishersRegistrations&gt; 
     1351     &lt;smn-ext:Filter&gt; 
     1352      &lt;smn-ext:PublisherRegistrationID&gt; 
     1353       <span class="bold"><strong>984943658</strong></span> 
     1354      &lt;/smn-ext:PublisherRegistrationID&gt; 
     1355      &lt;smn-ext:PublisherReference&gt; 
     1356       &lt;wsa:Address&gt; 
     1357        <span class="bold"><strong>127.0.0.1</strong></span> 
     1358       &lt;/wsa5:Address&gt; 
     1359      &lt;/smn-ext:PublisherReference&gt; 
     1360      &lt;smn-ext:CreationTimeMin&gt; 
     1361       <span class="bold"><strong>2010-07-08T09:37:04Z</strong></span> 
     1362      &lt;/smn-ext:CreationTimeMin&gt; 
     1363      &lt;smn-ext:CreationTimeMax&gt; 
     1364       <span class="bold"><strong>2010-07-08T11:37:04Z</strong></span> 
     1365      &lt;/smn-ext:CreationTimeMax&gt; 
     1366      &lt;smn-ext:TerminationTimeMin&gt; 
     1367       <span class="bold"><strong>2010-07-08T09:37:04Z</strong></span> 
     1368      &lt;/smn-ext:TerminationTimeMin&gt; 
     1369      &lt;smn-ext:TerminationTimeMax&gt; 
     1370       <span class="bold"><strong>2010-07-08T11:37:04Z</strong></span> 
     1371      &lt;/smn-ext:TerminationTimeMax&gt; 
     1372     &lt;/smn-ext:Filter&gt; 
     1373    &lt;/smn-ext:ListPublishersRegistrations&gt; 
     1374   &lt;/SOAP-ENV:Body&gt; 
     1375&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: 
     1376            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListPublishersRegistrationsRequest. 
     1377            <span class="emphasis"><em>If differ, a fault will be 
     1378            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> 
     1379            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 
     1380            filtering of Publisher Registrations based on Publishers 
     1381            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 
     1382            Publishers. Depending on configuration, this address may be held 
     1383            in the <span class="emphasis"><em>QCG Notification</em></span> service as an address 
     1384            sent in the From element of WSA Header of RegisterPublisher 
     1385            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 
     1386            </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 
     1387            related to lifetime of a Publisher Registration, respectively: 
     1388            minimal creation time, maximal creation time, minimal termination 
     1389            time and maximal termination time. The content of these elements 
     1390            is a time expressed as a local time with a 
     1391            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="d0e1872"></a>3.5.23.&nbsp;ListPublisherRegistrationsResponse</h4></div></div></div><p>The response message to ListPublishersRegistrations. It includes 
     1392        a list of information sets about Publishers Registrations.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1393   &lt;SOAP-ENV:Header&gt; 
     1394    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1395     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ 
     1396     QCGNotificationManager/ListPublishersRegistrationsResponse 
     1397    </strong></span>&lt;/wsa:Action&gt; 
     1398    ... 
     1399   &lt;/SOAP-ENV:Header&gt; 
     1400   &lt;SOAP-ENV:Body&gt; 
     1401    &lt;smn-ext:ListPublishersRegistrationsResponse&gt; 
     1402     &lt;smn-ext:PublisherRegistration&gt; 
     1403      &lt;smn-ext:PublisherRegistrationID&gt; 
     1404       <span class="bold"><strong>16807 
     1405      </strong></span>&lt;/smn-ext:PublisherRegistrationID&gt; 
     1406      &lt;smn-ext:PublisherReference&gt; 
     1407       &lt;wsa:Address&gt; 
     1408        <span class="bold"><strong>http://localhost:2233</strong></span> 
     1409       &lt;/wsa:Address&gt; 
     1410      &lt;/smn-ext:PublisherReference&gt; 
     1411      &lt;smn-ext:CreationTime&gt; 
     1412       <span class="bold"><strong>2010-07-09T09:21:48Z 
     1413      </strong></span>&lt;/smn-ext:CreationTime&gt; 
     1414      &lt;smn-ext:TerminationTime&gt; 
     1415       <span class="bold"><strong>2010-07-09T09:21:48Z</strong></span> 
     1416      &lt;/smn-ext:TerminationTime&gt; 
     1417     &lt;/smn-ext:PublisherRegistration&gt; 
     1418     &lt;smn-ext:PublisherRegistration&gt; 
     1419      ... 
     1420     &lt;/smn-ext:PublisherRegistration&gt; 
     1421    ... 
     1422    &lt;/smn-ext:ListPublishersRegistrationsResponse&gt; 
     1423   &lt;/SOAP-ENV:Body&gt; 
     1424&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: 
     1425            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListPublishersRegistrationsResponse. 
     1426            <span class="emphasis"><em>If differ, a fault will be 
     1427            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 
     1428            received from <span class="emphasis"><em>QCG Notification</em></span> (propably also 
     1429            filtered on the basis of the smn-ext:Filter element sent in a 
     1430            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 
     1431            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 
     1432            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 
     1433            From element of WSA Header of a RegisterPublisher message or an IP 
     1434            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 
     1435            Publisher Registration. The content of these elements is a time 
     1436            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="d0e1946"></a>3.5.24.&nbsp;ListPullPoints</h4></div></div></div><p>The next administrative method. It enables listing of available 
     1437        PullPoints. The method consists of several optional filtering 
     1438        parameters.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1439   &lt;SOAP-ENV:Header&gt; 
     1440    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1441     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ 
     1442     QCGNotificationManager/ListPullPointsRequest</strong></span> 
     1443    &lt;/wsa:Action&gt; 
     1444    ... 
     1445   &lt;/SOAP-ENV:Header&gt; 
     1446   &lt;SOAP-ENV:Body&gt; 
     1447    &lt;smn-ext:ListPullPoints&gt; 
     1448     &lt;smn-ext:Filter&gt; 
     1449      &lt;smn-ext:PullPointID&gt; 
     1450       <span class="bold"><strong>9342232</strong></span> 
     1451      &lt;/smn-ext:PullPointID&gt; 
     1452      &lt;smn-ext:PullPointReference&gt; 
     1453       &lt;wsa:Address&gt; 
     1454        <span class="bold"><strong>http://localhost:2211?ppID=9342232</strong></span> 
     1455       &lt;/wsa5:Address&gt; 
     1456      &lt;/smn-ext:PullPointReference&gt; 
     1457      &lt;smn-ext:CreationTimeMin&gt; 
     1458       <span class="bold"><strong>2010-07-08T09:38:03Z</strong></span> 
     1459      &lt;/smn-ext:CreationTimeMin&gt; 
     1460      &lt;smn-ext:CreationTimeMax&gt; 
     1461       <span class="bold"><strong>2010-07-08T11:38:03Z</strong></span> 
     1462      &lt;/smn-ext:CreationTimeMax&gt; 
     1463      &lt;smn-ext:TerminationTimeMin&gt; 
     1464       <span class="bold"><strong>2010-07-08T09:38:03Z</strong></span> 
     1465      &lt;/smn-ext:TerminationTimeMin&gt; 
     1466      &lt;smn-ext:TerminationTimeMax&gt; 
     1467       <span class="bold"><strong>2010-07-08T11:38:03Z</strong></span> 
     1468      &lt;/smn-ext:TerminationTimeMax&gt; 
     1469     &lt;/smn-ext:Filter&gt; 
     1470    &lt;/smn-ext:ListPullPoints&gt; 
     1471   &lt;/SOAP-ENV:Body&gt; 
     1472&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: 
     1473            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListPullPointsRequest. 
     1474            <span class="emphasis"><em>If differ, a fault will be 
     1475            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> 
     1476            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 
     1477            PullPoints based on PullPoint ID. The value is at most 32 char 
     1478            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 
     1479            PullPoint. The PullPoint address is assigned after creation of a 
     1480            PullPoint in <span class="emphasis"><em>QCG Notification</em></span> and returned 
     1481            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 
     1482            </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 
     1483            related to PullPoint lifetime, respectively: minimal creation 
     1484            time, maximal creation time, minimal termination time and maximal 
     1485            termination time. The content of these elements is a time 
     1486            expressed as a local time with a 
     1487            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="d0e2027"></a>3.5.25.&nbsp;ListPullPointsResponse</h4></div></div></div><p>The response message to ListPullPoints. It includes a list of 
     1488        information sets about filtered Pullpoints.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1489   &lt;SOAP-ENV:Header&gt; 
     1490    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1491     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ 
     1492     QCGNotificationManager/ListPullPointsResponse 
     1493    </strong></span>&lt;/wsa:Action&gt; 
     1494    ... 
     1495   &lt;/SOAP-ENV:Header&gt; 
     1496   &lt;SOAP-ENV:Body&gt; 
     1497    &lt;smn-ext:ListPullPointsResponse&gt; 
     1498     &lt;smn-ext:PullPoint&gt; 
     1499      &lt;smn-ext:PullPointID&gt; 
     1500       <span class="bold"><strong>9342232 
     1501      </strong></span>&lt;/smn-ext:PullPointID&gt; 
     1502      &lt;smn-ext:PullPointReference&gt; 
     1503       &lt;wsa:Address&gt; 
     1504        <span class="bold"><strong>http://localhost:2211?ppID=9342232</strong></span> 
     1505       &lt;/wsa:Address&gt; 
     1506      &lt;/smn-ext:PullPointReference&gt; 
     1507      &lt;smn-ext:CreationTime&gt; 
     1508       <span class="bold"><strong>2010-07-09T09:31:28Z 
     1509      </strong></span>&lt;/smn-ext:CreationTime&gt; 
     1510      &lt;smn-ext:TerminationTime&gt; 
     1511       <span class="bold"><strong>2010-07-09T09:31:28Z</strong></span> 
     1512      &lt;/smn-ext:TerminationTime&gt; 
     1513     &lt;/smn-ext:PullPoint&gt; 
     1514     &lt;smn-ext:PullPoint&gt; 
     1515      ... 
     1516     &lt;/smn-ext:PullPoint&gt; 
     1517    ... 
     1518    &lt;/smn-ext:ListPullPointsResponse&gt; 
     1519   &lt;/SOAP-ENV:Body&gt; 
     1520&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: 
     1521            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListPullPointsResponse. 
     1522            <span class="emphasis"><em>If differ, a fault will be 
     1523            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 
     1524            <span class="emphasis"><em>QCG Notification</em></span> (propably also previously 
     1525            filtered on the basis of the smn-ext:Filter element sent in a 
     1526            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 
     1527            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 
     1528            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 
     1529            same adress as the address from a corresponding 
     1530            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 
     1531            PullPoint. The content of these elements is a time expressed as 
     1532            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="d0e2101"></a>3.5.26.&nbsp;ListTopicNamespaces</h4></div></div></div><p>An administrative method. It is designed to listing available 
     1533        Topic Namespaces and Topics assigned to this namespaces.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1534   &lt;SOAP-ENV:Header&gt; 
     1535    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1536     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ 
     1537     QCGNotificationManager/ListTopicNamespacesRequest</strong></span> 
     1538    &lt;/wsa:Action&gt; 
     1539    ... 
     1540   &lt;/SOAP-ENV:Header&gt; 
     1541   &lt;SOAP-ENV:Body&gt; 
     1542    &lt;smn-ext:ListTopicNamespaces&gt; 
     1543     &lt;smn-ext:Filter&gt; 
     1544      &lt;smn-ext:targetNamespace&gt; 
     1545       <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span> 
     1546      &lt;/smn-ext:targetNamespace&gt; 
     1547     &lt;/smn-ext:Filter&gt; 
     1548    &lt;/smn-ext:ListTopicNamespaces&gt; 
     1549   &lt;/SOAP-ENV:Body&gt; 
     1550&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: 
     1551            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListTopicNamespacesRequest. 
     1552            <span class="emphasis"><em>If differ, a fault will be 
     1553            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> 
     1554            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 
     1555            enables filtering of TopicNamespaces based on their 
     1556            targetNamespace names.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2141"></a>3.5.27.&nbsp;ListTopicNamespacesResponse</h4></div></div></div><p>The response message to ListTopicNamespaces. The message 
     1557        consists of information sets for each filtered TopicNamespace. A 
     1558        single set includes targetNamespaces and a list of topics.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1559   &lt;SOAP-ENV:Header&gt; 
     1560    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1561     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ 
     1562     QCGNotificationManager/ListPullPointsResponse 
     1563    </strong></span>&lt;/wsa:Action&gt; 
     1564    ... 
     1565   &lt;/SOAP-ENV:Header&gt; 
     1566   &lt;SOAP-ENV:Body&gt; 
     1567    &lt;smn-ext:ListTopicNamespacesResponse&gt; 
     1568     &lt;smn-ext:TopicNamespace&gt; 
     1569      &lt;smn-ext:targetNamespace&gt; 
     1570       <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span><span class="bold"><strong> 
     1571      </strong></span>&lt;/smn-ext:targetNamespace&gt; 
     1572      &lt;smn-ext:Topic&gt; 
     1573       <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics/House</strong></span> 
     1574      &lt;/smn-ext:Topic&gt; 
     1575      &lt;smn-ext:Topic&gt; 
     1576       ... 
     1577      &lt;smn-ext:Topic&gt; 
     1578      ... 
     1579     &lt;/smn-ext:TopicNamespace&gt; 
     1580     &lt;smn-ext:TopicNamespace&gt; 
     1581      ... 
     1582     &lt;/smn-ext:TopicNamespace&gt; 
     1583    ... 
     1584    &lt;/smn-ext:ListTopicNamespacesResponse&gt; 
     1585   &lt;/SOAP-ENV:Body&gt; 
     1586&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: 
     1587            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListTopicNamespacesResponse. 
     1588            <span class="emphasis"><em>If differ, a fault will be 
     1589            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 
     1590            TopicNamespaces received from <span class="emphasis"><em>QCG 
     1591            Notification</em></span> (optionally filtered on the basis of the 
     1592            smn-ext:Filter element sent in a ListTopicNamespaces 
     1593            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 
     1594            information about a single 
     1595            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 
     1596            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 
     1597            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="d0e2200"></a>3.5.28.&nbsp;AddTopicNamespace</h4></div></div></div><p>An administrative method. The method may be invoked to add a new 
     1598        TopicNamespace to the <span class="emphasis"><em>IQCG Notification</em></span>.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1599   &lt;SOAP-ENV:Header&gt; 
     1600    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1601     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ 
     1602     QCGNotificationManager/AddTopicNamespaceRequest</strong></span> 
     1603    &lt;/wsa:Action&gt; 
     1604    ... 
     1605   &lt;/SOAP-ENV:Header&gt; 
     1606   &lt;SOAP-ENV:Body&gt; 
     1607    &lt;smn-ext:AddTopicNamespace&gt; 
     1608     &lt;wstop:TopicNamespace  
     1609      targetNamespace="<span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics2</strong></span>"&gt; 
     1610      &lt;wstop:Topic final="false" name="<span class="bold"><strong>House</strong></span>"&gt; 
     1611       &lt;wstop:Topic ...&gt; 
     1612        ... 
     1613       &lt;/wstop:Topic&gt; 
     1614       ... 
     1615      &lt;/wstop:Topic&gt; 
     1616      ... 
     1617     &lt;/wstop:TopicNamespace&gt; 
     1618    &lt;/smn-ext:AddTopicNamespace&gt; 
     1619   &lt;/SOAP-ENV:Body&gt; 
     1620&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: 
     1621            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/AddTopicNamespaceRequest. 
     1622            <span class="emphasis"><em>If differ, a fault will be 
     1623            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 
     1624            WS-Topics schema.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2237"></a>3.5.29.&nbsp;AddTopicNamespaceResponse</h4></div></div></div><p>A response message to a AddTopicNamespaceRequest. It is empty 
     1625        and only confirms successfull addition of a TopicNamespace to the 
     1626        <span class="emphasis"><em>QCG Notification</em></span> service. </p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1627   &lt;SOAP-ENV:Header&gt; 
     1628    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1629     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     1630      PullPoint/AddTopicNamespaceResponse</strong></span> 
     1631    &lt;/wsa:Action&gt; 
     1632    ... 
     1633   &lt;/SOAP-ENV:Header&gt; 
     1634   &lt;SOAP-ENV:Body&gt; 
     1635    &lt;smn-ext:AddTopicNamespaceResponse&gt; 
     1636    &lt;/smn-ext:AddTopicNamespaceResponse&gt; 
     1637   &lt;/SOAP-ENV:Body&gt; 
     1638&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: 
     1639            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/AddTopicNamespaceResponse.</em></span><span class="emphasis"><em><span class="emphasis"><em> 
     1640            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="d0e2262"></a>3.5.30.&nbsp;RemoveTopicNamespace</h4></div></div></div><p>The next administrative method. It is used to remove a 
     1641        TopicNamespace from the <span class="emphasis"><em>QCG Notification</em></span> system. 
     1642        Note that the removing may be only temporary (active to the restart of 
     1643        the system) if the TopicNamespace file is protected by disabling write 
     1644        permission.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1645   &lt;SOAP-ENV:Header&gt; 
     1646    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1647     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ 
     1648     QCGNotificationManager/RemoveTopicNamespaceRequest</strong></span> 
     1649    &lt;/wsa:Action&gt; 
     1650    ... 
     1651   &lt;/SOAP-ENV:Header&gt; 
     1652   &lt;SOAP-ENV:Body&gt; 
     1653    &lt;smn-ext:RemoveTopicNamespace&gt; 
     1654     &lt;smn-ext:targetNamespace&gt; 
     1655      <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics2/House</strong></span> 
     1656     &lt;/smn-ext:targetNamespace&gt; 
     1657    &lt;/smn-ext:RemoveTopicNamespace&gt; 
     1658   &lt;/SOAP-ENV:Body&gt; 
     1659&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: 
     1660            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/RemoveTopicNamespaceRequest. 
     1661            <span class="emphasis"><em>If differ, a fault will be 
     1662            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 
     1663            remove - anyURI.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2296"></a>3.5.31.&nbsp;RemoveTopicNamespaceResponse</h4></div></div></div><p>A response message to a RemoveTopicNamespaceRequest. It is empty 
     1664        and confirms the successfull deletion of a TopicNamespace. 
     1665        </p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     1666   &lt;SOAP-ENV:Header&gt; 
     1667    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt; 
     1668     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ 
     1669      PullPoint/RemoveTopicNamespaceResponse</strong></span> 
     1670    &lt;/wsa:Action&gt; 
     1671    ... 
     1672   &lt;/SOAP-ENV:Header&gt; 
     1673   &lt;SOAP-ENV:Body&gt; 
     1674    &lt;smn-ext:RemoveTopicNamespaceResponse&gt; 
     1675    &lt;/smn-ext:RemoveTopicNamespaceResponse&gt; 
     1676   &lt;/SOAP-ENV:Body&gt; 
     1677&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: 
     1678            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/RemoveTopicNamespaceResponse.</em></span><span class="emphasis"><em><span class="emphasis"><em> 
     1679            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="d0e2318"></a>4.&nbsp;Administration Guide of <span class="emphasis"><em>QCG 
     1680    Notification</em></span></h2></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2323"></a>4.1.&nbsp;Prerequisites</h3></div></div></div><p>In order to build and install <span class="emphasis"><em>QCG 
     1681      Notification</em></span>, an administrator has to appropriately configure 
     1682      operating system. There is some dependencies to external software that 
     1683      should be satisfied.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2331"></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 
     1684        <span class="emphasis"><em>QCG Core</em></span> library developed by the 
     1685        <span class="emphasis"><em>QCG</em></span> team. QCG Core is a common utility library 
     1686        providing set of basic modules used by other components within QCG 
     1687        Project. For more information see QCG Core documentation.</p><p>The QCG Core library should be properly configured in prior to 
     1688        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="d0e2349"></a>4.2.&nbsp;Building</h3></div></div></div><p>Before you compile <span class="emphasis"><em>QCG Notification</em></span>, you need 
     1689      to run the configuration script first. It will try to check if all the 
     1690      requirements are met and whether needed third party software is 
     1691      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 
     1692      type the --help parameter you will see all available options. These are 
     1693      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 
     1694            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 
     1695            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 
     1696            build</p></li><li><p>--with-addressing-handler</p><p>Determine if the test Web Services Addressing handler 
     1697            service should be build</p></li></ul></div><p>After successful configuration step, compiling and 
     1698      installing of <span class="emphasis"><em>QCG Notification</em></span> should be a 
     1699      straightforward process:</p><pre class="programlisting">$ make 
     1700$ 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 
     1701        <code class="filename">root</code> or the user that will execute <span class="emphasis"><em>QCG 
     1702        Notification</em></span> service, assuming he has necessary privileges 
     1703        to do this.</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2410"></a>4.3.&nbsp;Creating database for <span class="emphasis"><em>QCG Notification</em></span> - the 
     1704      PostgreSQL example</h3></div></div></div><p><span class="emphasis"><em>QCG Notification</em></span> can be run in two basic 
     1705      modes related to the database connection: without database or with 
     1706      database. Although the first option is sufficient for simple scenarios, 
     1707      it reduces the overall functionality of the <span class="emphasis"><em>QCG 
     1708      Notification</em></span> (e.g. disable PullPoints). Therefore using the 
     1709      database is recomended and can be often essential.</p><p>You will find more detailed description of administrative tasks in 
     1710      PostgreSQL tutorial. However, the following basic steps are needed to 
     1711      set up a database and appropriate tables for <span class="emphasis"><em>QCG 
     1712      Notification</em></span> assuming that you have already setup a 
     1713      PostgreSQL database:</p><p>By default, the first database user created will also be named 
     1714      <code class="filename">postgres</code>. In order to create a user for 
     1715      <span class="emphasis"><em>QCG Notification</em></span> usage, for instance 
     1716      <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 
     1717      <code class="filename">qcg-ntfd.xml</code> configuration file. Create a database, 
     1718      for example <code class="filename">qcg-ntf</code>, by typing the following 
     1719      command:</p><pre class="programlisting">$ createdb qcg-ntf</pre><p>and set up a table structure using the 
     1720      <code class="filename">qcg-ntf-psql.sql</code> file from <span class="emphasis"><em>QCG 
     1721      Notification</em></span> distribution - it can be found in 
     1722      <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 
     1723      Name. You can do this by editing system-wide configuration file (e.g. 
     1724      <code class="filename">/etc/odbc.ini)</code> or <code class="filename">.odbc.ini</code> in 
     1725      home directory of the user that will be used to start <span class="emphasis"><em>QCG 
     1726      Notification</em></span>.</p><p>Assuming that ODBC are installed in /usr/local/lib and the choosed 
     1727      name for <span class="emphasis"><em>QCG Notification</em></span> is 
     1728      <code class="filename">qcg-ntf</code> the configuration file should looks 
     1729      simmilar to the following:</p><pre class="programlisting">[qcg-ntf] 
     1730Description     = QCG Notification database 
     1731Driver        = /usr/local/lib/libodbcpsql.so 
     1732Setup         = /usr/local/lib/libodbcpsqlS.so 
     1733Database      = qcg-ntf 
     1734Servername      = localhost 
     1735Port        = 5432 
     1736ReadOnly      = No 
     1737Trace         = 0 
     1738TraceFile       = odbc.trace 
     1739Debug         = 0 
     1740DebugFile       = odbc.debug</pre><p>You can also try some GUI tools to set up and manage ODBC and 
     1741      databases. Check out if the following tools are available on your 
     1742      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="d0e2495"></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="d0e2500"></a>5.1.&nbsp;Configuration File: <code class="filename">qcg-ntfd.xml</code></h3></div></div></div><pre class="programlisting">&lt;sm:QCGCore 
     1743  xmlns:sm="http://schemas.qoscosgrid.org/core/2011/04/config" 
     1744  xmlns="http://schemas.qoscosgrid.org/ntf/2011/04/config" 
     1745  xmlns:smn="http://schemas.qoscosgrid.org/ntf/2011/04/config"  
     1746  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt; 
     1747 
     1748  &lt;Configuration&gt; 
     1749    &lt;sm:ModuleManager&gt; 
     1750      &lt;sm:Directory&gt;/opt/qcg/lib/qcg-core/modules&lt;/sm:Directory&gt; 
     1751      &lt;sm:Directory&gt;/opt/qcg/lib/modules&lt;/sm:Directory&gt; 
     1752    &lt;/sm:ModuleManager&gt; 
     1753 
     1754    &lt;sm:Service xsi:type="ntfd" description="QCG Notification"&gt; 
     1755      &lt;sm:Logger&gt; 
     1756        &lt;sm:Filename&gt;/opt/qcg/var/log/qcg-ntf/qcg-ntfd.log&lt;/sm:Filename&gt; 
     1757        &lt;sm:Level&gt;DEBUG&lt;/sm:Level&gt; 
     1758      &lt;/sm:Logger&gt; 
     1759 
     1760      &lt;sm:Transport&gt;     
     1761        &lt;sm:Module xsi:type="sm:ecm_gsoap.service"&gt; 
     1762          &lt;sm:Host&gt;localhost&lt;/sm:Host&gt; 
     1763          &lt;sm:Port&gt;2211&lt;/sm:Port&gt; 
     1764          &lt;sm:UseWSA&gt;true&lt;/sm:UseWSA&gt; 
     1765        &lt;/sm:Module&gt; 
     1766        &lt;sm:Module xsi:type="smn:ntf-service-gsoap"/&gt; 
     1767      &lt;/sm:Transport&gt; 
     1768 
     1769      &lt;sm:Authentication&gt; 
     1770        &lt;sm:Module xsi:type="sm:atc_transport_http"/&gt; 
     1771      &lt;/sm:Authentication&gt; 
     1772       
     1773      &lt;sm:Module xsi:type="smn:ntf-publisher-gsoap-anonymous"&gt; 
     1774        &lt;UseWSA&gt;true&lt;/UseWSA&gt; 
     1775        &lt;RecvTimeout&gt;10&lt;/RecvTimeout&gt; 
     1776        &lt;SendTimeout&gt;10&lt;/SendTimeout&gt; 
     1777      &lt;/sm:Module&gt; 
     1778       
     1779      &lt;sm:Module xsi:type="smn:ntf-publisher-gsoap-ssl"&gt; 
     1780        &lt;UseWSA&gt;true&lt;/UseWSA&gt; 
     1781        &lt;RecvTimeout&gt;10&lt;/RecvTimeout&gt; 
     1782        &lt;SendTimeout&gt;10&lt;/SendTimeout&gt; 
     1783        &lt;X509CertKeyFile&gt;/opt/qcg/etc/ssl/broker.pem&lt;/X509CertKeyFile&gt; 
     1784        &lt;X509KeyPass&gt;somepass&lt;/X509KeyPass&gt; 
     1785        &lt;sm:TrustedCAFile&gt;/opt/qcg/etc/ssl/certs/qcg-ntf/ca.pem&lt;/sm:TrustedCAFile&gt; 
     1786      &lt;/sm:Module&gt; 
     1787       
     1788      &lt;Core&gt; 
     1789        &lt;NotificationsVar&gt; 
     1790          &lt;TopicNsDir&gt;/opt/qcg/etc/topicns&lt;/TopicNsDir&gt; 
     1791          &lt;StrictCorrectnessCheckingEnabled&gt;false&lt;/StrictCorrectnessCheckingEnabled&gt; 
     1792          &lt;SubscriptionManager&gt; 
     1793             &lt;ContentFilteringEnabled&gt;true&lt;/ContentFilteringEnabled&gt; 
     1794             &lt;SubscriptionPolicy&gt;DUPLICATE&lt;/SubscriptionPolicy&gt; 
     1795             &lt;DialectConsistencyRequired&gt;true&lt;/DialectConsistencyRequired&gt; 
     1796             &lt;SubscriptionPeriod&gt;10&lt;/SubscriptionPeriod&gt; 
     1797             &lt;RefreshRate&gt;3600&lt;/RefreshRate&gt; 
     1798          &lt;/SubscriptionManager&gt; 
     1799          &lt;PublisherManager&gt; 
     1800             &lt;RegistrationRequired&gt;false&lt;/RegistrationRequired&gt; 
     1801             &lt;RegistrationPeriod&gt;10&lt;/RegistrationPeriod&gt; 
     1802             &lt;RefreshRate&gt;3600&lt;/RefreshRate&gt; 
     1803          &lt;/PublisherManager&gt; 
     1804          &lt;PullPointManager&gt; 
     1805             &lt;PullPointsEnabled&gt;true&lt;/PullPointsEnabled&gt; 
     1806             &lt;PullPointSize&gt;100&lt;/PullPointSize&gt; 
     1807             &lt;PullPointPeriod&gt;10&lt;/PullPointPeriod&gt; 
     1808             &lt;RefreshRate&gt;3600&lt;/RefreshRate&gt; 
     1809          &lt;/PullPointManager&gt; 
     1810          &lt;Publishing&gt; 
     1811             &lt;NotificationsBufferEnabled&gt;true&lt;/NotificationsBufferEnabled&gt; 
     1812             &lt;NotificationsBufferSize&gt;1000&lt;/NotificationsBufferSize&gt; 
     1813             &lt;NotificationsResendingRate&gt;60&lt;/NotificationsResendingRate&gt; 
     1814             &lt;MaxSendTries&gt;5&lt;/MaxSendTries&gt; 
     1815          &lt;/Publishing&gt; 
     1816        &lt;/NotificationsVar&gt; 
     1817         
     1818        &lt;Database&gt; 
     1819          &lt;DatabaseEnabled&gt;true&lt;/DatabaseEnabled&gt; 
     1820          &lt;DSN&gt;qcg-ntf&lt;/DSN&gt; 
     1821          &lt;User&gt;qcg-ntf&lt;/User&gt; 
     1822          &lt;Password&gt;qcg-ntf&lt;/Password&gt; 
     1823          &lt;CleanAtStart&gt;false&lt;/CleanAtStart&gt; 
     1824        &lt;/Database&gt; 
     1825      &lt;/Core&gt;   
     1826     
     1827    &lt;/sm:Service&gt; 
     1828     
     1829  &lt;/Configuration&gt; 
     1830&lt;/sm:QCGCore&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//sm:ModuleManager/sm:Directory 
     1831          <span class="emphasis"><em>[string]</em></span></em></span></p><p>Directories with modules that will be used in the 
     1832          service.</p></li><li><p><span class="emphasis"><em>//sm:Service 
     1833          <span class="emphasis"><em>[sm:QCGBaseServiceType]</em></span></em></span></p><p>Configuration of the services. It is possible to configure 
     1834          many instances of the service in the one configuration file.</p></li><li><p><span class="emphasis"><em>//sm:Service/sm:Logger</em></span> 
     1835          [sm:LoggerType]</p><p>Configuration of the logging.</p></li><li><p><span class="emphasis"><em>//sm:Service/sm:Logger/sm:FileName 
     1836          <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 
     1837          <span class="emphasis"><em>[enumeration]</em></span></em></span></p><p>DEBUG, INFO, NOTICE, WARNING, ERROR, CRIT, EMERG - filter less 
     1838          important messages.</p></li><li><p><span class="emphasis"><em>//sm:Service/sm:Transport</em></span> 
     1839          [sm:TransportType]</p><p>This element aggregates configuration of transport modules. At 
     1840          least one module of type ecm* should by specified in this place. For 
     1841          full list of supported ecm* modules see the QCG Core 
     1842          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 
     1843          important configuration covers such aspects as host and port where 
     1844          the service will be listening. The instruction of using other 
     1845          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 
     1846          service. This option shouldn't be changed.</p></li><li><p><span class="emphasis"><em>//sm:Service/sm:Authentication</em></span> 
     1847          [sm:AuthenticationType]</p><p>Configuration of authentication modules for the service. For 
     1848          full list of supported authentication modules see the QCG Core 
     1849          documentation (the most basic are: sm:atc_transport_http for 
     1850          anonymous communication and sm:atc_transport_https for SSL based 
     1851          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 
     1852          Publisher side of <span class="emphasis"><em>QCG Notification</em></span>. The 
     1853          following modules are currently supported:</p><div class="itemizedlist"><ul type="circle"><li><p>smn:ntf-publisher-gsoap-anonymous for anonymous SOAP 
     1854              communication;</p></li><li><p>smn:ntf-publisher-gsoap-ssl for SSL based SOAP 
     1855              communication;</p></li><li><p>smn:ntf-publisher-xmpp for XMPP based SOAP 
     1856              communication;</p></li></ul></div><p>For details see the <a class="link" href="#moduleoptions" title="5.2.&nbsp;Module configuration">Section 
     1857          5.2</a>.</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar 
     1858          </em></span>[smn:NotificationsVarType]</p><p>Various notification settings closely related to QCG 
     1859          Notification service implementation.</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:TopicNsDir 
     1860          <span class="emphasis"><em>[string]</em></span></em></span></p><p>Location of the directory with files containing Topic 
     1861          definitions.</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:StrictCorrectnessCheckingEnabled</em></span> 
     1862          [boolean]</p><p>true, false - determines a strict validation of incoming 
     1863          messages; if true, it allows receiving detailed information about 
     1864          faults but it causes greatest delays; if false, then faults 
     1865          processing is minimal and delays are smaller. Default: false</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:SubscriptionManager/ 
     1866          </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> 
     1867          [boolean]</p><p>true, false - determines if a content filtering of 
     1868          notification messages can be used; if true, Subscribers can specify 
     1869          content filters in their Subscriptions, if false, it is dissallowed. 
     1870          Default: true</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:SubscriptionManager/smn:SubscriptionPolicy</em></span> 
     1871          [enumeration]</p><p>DUPLICATE, DELETE_OLD, RETURN_FAULT - parameter defines an 
     1872          action which should be taken when a Subscriber wants to create a 
     1873          Subscription with the same parameters as the parameters of already 
     1874          existing Subscription. Default: DUPLICATE</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:SubscriptionManager/smn:DialectConsistencyRequired</em></span> 
     1875          [boolean]</p><p>true, false - determines if a Subscription covers the Notify 
     1876          messages with a different Topics Dialect than the Topic Dialect of 
     1877          the Subscription; if true, the Subscription covers only Notify 
     1878          messages with the same Dialect; if false, the Subscription covers 
     1879          Notify messages with simpler Dialects (i.e. Subscription with Full 
     1880          type of Dialect covers notifications sent with Concrete or Simple 
     1881          type). Default: true</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:SubscriptionManager/smn:SubscriptionPeriod</em></span> 
     1882          [integer]</p><p>A default time period for a Subscription to be valid; in 
     1883          minutes; if negative the Subscription time checking will be 
     1884          disabled. Default: 10</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:SubscriptionManager/smn:RefreshRate</em></span> 
     1885          [integer]</p><p>A time period between successive Subscription Manager 
     1886          refreshing events (events when outdated Subscriptions are deleted); 
     1887          the time period is measured in seconds; if value is set to 0 or 
     1888          negative then the periodical refreshing is disabled. Default: 
     1889          3600</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:PublisherManager/ 
     1890          </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> 
     1891          [boolean]</p><p>true, false - determines a requirement of Publishers 
     1892          Registrations; if true, a Publisher has to register himself before 
     1893          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> 
     1894          [integer]</p><p>A default time period for a Publisher Registration to be 
     1895          valid; in minutes; if negative the Registration time checking will 
     1896          be disabled. Default: 10</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:PublisherManager/smn:RefreshRate</em></span> 
     1897          [integer]</p><p>A time period between successive Publisher Manager refreshing 
     1898          events (events when outdated Publishers are deleted); the time 
     1899          period is measured in seconds; if value is set to 0 or negative then 
     1900          the periodical refreshing is disabled. Default: 3600</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:PullPointManager/ 
     1901          </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 
     1902          <span class="emphasis"><em>[boolean]</em></span></em></span></p><p>true, false - determines if PullPoints for pull style of 
     1903          notifications can be used. Default: true</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:PullPointManager/smn:PullPointSize</em></span> 
     1904          [integer]</p><p>A maximal number of messages that can be buffered in a single 
     1905          PullPoint; if negative then the number of messages is unbounded. 
     1906          Default: 100</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:PullPointManager/smn:PullPointPeriod</em></span> 
     1907          [integer]</p><p>A default time period for a PullPoint to be valid; in minutes; 
     1908          if negative the PullPoint time checking will be disabled. Default: 
     1909          10</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:PullPointManager/smn:RefreshRate</em></span> 
     1910          [integer]</p><p>A time period between successive PullPoint Manager refreshing 
     1911          events (events when outdated PullPoints are deleted); the time 
     1912          period is measured in seconds; if value is set to 0 or negative then 
     1913          the periodical refreshing is disabled. Default: 3600</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:Publishing/ 
     1914          </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 
     1915          </em></span>[boolean]</p><p>true, false - determines if Notifications Buffer should be 
     1916          enabled; Notifications Buffer is used for resending Notifications if 
     1917          those weren't sent successfully at the first attempt. Default: 
     1918          true</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:Publishing/smn:NotificationsBufferSize 
     1919          </em></span>[integer]</p><p>A maximal number of Notifications that can be buffered in 
     1920          Notifications Buffer. Default: 1000</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:Publishing/smn:NotificationsResendingRate 
     1921          </em></span>[integer]</p><p>A time period between successive notification resending 
     1922          procedures; in seconds; if 0 or negative then the resending will be 
     1923          disabled. Default: 60</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:Publishing/smn:MaxSendTries</em></span> 
     1924          [integer]</p><p>A maximal number of consecutive unsuccessfull tries of sending 
     1925          notification; unsuccessful tries of sending notifications are 
     1926          counted independently for every Subscription; a certain Subscription 
     1927          will be delated if its counter become equal to 
     1928          <span class="emphasis"><em>MaxSendTries</em></span>; if value is set to 0 or negative 
     1929          then this option is disabled. Default: 5</p></li><li><p><span class="emphasis"><em>//smn:Core/Database/DatabaseEnabled 
     1930          <span class="emphasis"><em>[boolean]</em></span></em></span></p><p>true, false - determines if a database should be enabled; in 
     1931          the simplest configuration, <span class="emphasis"><em>QCG Notification</em></span> 
     1932          can be used also without a database connection, however many options 
     1933          will be then unavailable. Default: true</p></li><li><p><span class="emphasis"><em>//smn:Core/Database/DSN 
     1934          <span class="emphasis"><em>[string]</em></span></em></span></p><p>Data Source Name of a database. Note, that you should use ODBC 
     1935          DSN <span class="bold"><strong>not</strong></span> the database name.</p></li><li><p><span class="emphasis"><em>//smn:Core/Database/User 
     1936          <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 
     1937          <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 
     1938          <span class="emphasis"><em>[boolean]</em></span></em></span></p><p>true, false - determines whether all information stored in a 
     1939          database should be cleaned at starting of the QCG Notification 
     1940          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 
     1941      are loaded during the<span class="emphasis"><em> QCG Notification</em></span> run time. 
     1942      Module definitions are specified in appropriate sections of the 
     1943      configuration file.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2817"></a>5.2.1.&nbsp;Publisher modules</h4></div></div></div><p>As it was discussed in the previous sections, in a typical 
     1944        brokered notification scenario there are two types of communication 
     1945        and notification channels that need to be setup. The first one is a 
     1946        communication channel between Subscriber/Publisher clients and 
     1947        <span class="emphasis"><em>QCG Notification. </em></span>This type of communication is 
     1948        currently completely based on QCG Core library.</p><p>The second type is an outgoing communication between 
     1949        <span class="emphasis"><em>QCG Notification</em></span> and NotificationConsumers and it 
     1950        is particular for <span class="emphasis"><em>QCG Notification</em></span>. In this 
     1951        situation <span class="emphasis"><em>QCG Notification</em></span> plays a role of a 
     1952        Notification Publisher. At this time, supported modules for this 
     1953        channel utilize a Web Service interface and XMPP interface.</p><div class="itemizedlist"><ul type="disc"><li><p><span class="bold"><strong>Publisher Anonymous WS 
     1954            transport</strong></span></p><p><span class="emphasis"><em><span class="emphasis"><em>This type of transport is recommended 
     1955            only for internal, secure network environments or 
     1956            testing.</em></span></em></span></p><pre class="programlisting">&lt;Module xsi:type="smn:ntf-publisher-gsoap-anonymous"&gt; 
     1957  &lt;smn:UseWSA&gt;true&lt;/smn:UseWSA&gt; 
     1958  &lt;smn:RecvTimeout&gt;10&lt;/smn:RecvTimeout&gt; 
     1959  &lt;smn:SendTimeout&gt;10&lt;/smn:SendTimeout&gt; 
     1960&lt;/Module&gt;</pre></li><li><p><span class="bold"><strong>Publisher SSL WS transport and 
     1961            authentication</strong></span></p><pre class="programlisting">&lt;Module xsi:type="smn:ntf-publisher-gsoap-ssl"&gt; 
     1962  &lt;smn:UseWSA&gt;true&lt;/smn:UseWSA&gt; 
     1963  &lt;smn:RecvTimeout&gt;10&lt;/smn:RecvTimeout&gt; 
     1964  &lt;smn:SendTimeout&gt;10&lt;/smn:SendTimeout&gt; 
     1965  &lt;smn:X509CertKeyFile&gt;/opt/qcg/etc/ssl/qcg-ntf/qcg-ntfd.pem&lt;/smn:X509CertKeyFile&gt; 
     1966  &lt;smn:X509KeyPass&gt;qcgpass&lt;/smn:X509KeyPass&gt; 
     1967  &lt;smn:TrustedCAFile&gt;/opt/qcg/etc/ssl/certs/qcg-ntf/ca.pem&lt;/smn:TrustedCAPath&gt; 
     1968&lt;/Module&gt;</pre><div class="itemizedlist"><ul type="circle"><li><p dir="lro"><span class="emphasis"><em>//smn:UseWSA 
     1969                  <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 
     1970                  <span class="emphasis"><em>[positiveInteger]</em></span></em></span></p><p>The timeout in seconds for stall on the recv function. 
     1971                  If negative, time is measured in microseconds.</p></li><li><p dir="lro"><span class="emphasis"><em>//smn:SendTimeout 
     1972                  <span class="emphasis"><em>[positiveInteger]</em></span></em></span></p><p>The timeout in seconds for stall on the send function. 
     1973                  If negative, time is measured in microseconds.</p></li><li><p dir="lro"><span class="emphasis"><em>//smn:X509CertKeyFile 
     1974                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>A path to the file with both X509 certificate and 
     1975                  private key. Mandatory argument.</p></li><li><p><span class="emphasis"><em>//smn:X509KeyPass 
     1976                  <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 
     1977                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>A path to the file with trusted CAs certificates. 
     1978                  Either TrustedCAFile or TrustedCAPath must be 
     1979                  specified.</p></li></ul></div></li><li><p><span class="bold"><strong>Publisher SOAP over XMPP WS transport 
     1980            (experimental)</strong></span></p><pre class="programlisting">&lt;sm:Module xsi:type="smn:ntf-publisher-xmpp"&gt;                                                 
     1981    &lt;smn:Server&gt;xmppserver.qcg.com&lt;/smn:Server&gt; 
     1982    &lt;smn:Port&gt;5222&lt;/smn:Port&gt; 
     1983    &lt;smn:Username&gt;qcgaccount&lt;/smn:Username&gt; 
     1984    &lt;smn:Password&gt;qcgpass&lt;/smn:Password&gt; 
     1985    &lt;smn:Jid&gt;qcgaccount@xmppserver.qcg.com&lt;/smn:Jid&gt; 
     1986    &lt;smn:ResourceName&gt;QCGNtfXmppPublisher&lt;/smn:ResourceName&gt; 
     1987    &lt;smn:Encryption&gt;TLS&lt;/smn:Encryption&gt; 
     1988    &lt;smn:CertFingerprint&gt;00112233445566778899AABBCCDDEE&lt;/smn:CertFingerprint&gt; 
     1989&lt;/sm:Module&gt;</pre><div class="itemizedlist"><ul type="circle"><li><p dir="lro"><span class="emphasis"><em>//smn:Server 
     1990                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>Hostname of the XMPP server on which the XMPP account 
     1991                  is set up.</p></li><li><p dir="lro"><span class="emphasis"><em>//smn<span class="emphasis"><em>:Port 
     1992                  [positiveInteger]</em></span></em></span></p><p>Port number of the XMPP server. Default is 
     1993                  5222.</p></li><li><p dir="lro"><span class="emphasis"><em>//smn:Username<span class="emphasis"><em>[string]</em></span></em></span></p><p>Username used for the XMPP account.</p></li><li><p dir="lro"><span class="emphasis"><em>//smn:Password<span class="emphasis"><em>[string]</em></span></em></span></p><p>The secret key for the XMPP account.</p></li><li><p><span class="emphasis"><em>//smn:Jid 
     1994                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>JID of the XMPP account</p></li><li><p><span class="emphasis"><em>//smn:ResourceName 
     1995                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>Resource name used by publisher's client 
     1996                  connection.</p></li><li><p><span class="emphasis"><em>//smn:Encryption 
     1997                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>Encryption to use. By default it's "none". Use "TLS" 
     1998                  for STARTTLS connection encryption. Use "SSL" for old-style 
     1999                  SSL encryption (typically port 5223).</p></li><li><p><span class="emphasis"><em>//smn:CertFingerprint 
     2000                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>MD5 fingerprint of the encryption certificate used by 
     2001                  the XMPP server. Upon mismatch, the connection will fail. 
     2002                  Use empty string to accept any certificate.</p></li></ul></div></li></ul></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2973"></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 
     2003      Notification</em></span> is relatively simple. The first step is a 
     2004      preparation of an XML document with a Topic Namespace definition. This 
     2005      step can be done by one of the peers cooperating with <span class="emphasis"><em>QCG 
     2006      Notification</em></span>. Then the document should be delivered to the 
     2007      computer where <span class="emphasis"><em>QCG Notification</em></span> is installed. It 
     2008      can be done in two ways: the document may be copied manually by QCG 
     2009      Notification administrator to TopicNamespaces directory in prior to 
     2010      <span class="emphasis"><em>a QCG Notification</em></span> startup or it can be send 
     2011      through the <span class="emphasis"><em>QCG Notification</em></span> interface when 
     2012      <span class="emphasis"><em>QCG Notification</em></span> is already runing. In the last 
     2013      case, the TopicNamespaces are stored also in a files in TopicNamespace 
     2014      directory so they can be automatically loaded after restart of the 
     2015      service. The TopicNamespaces loaded from files may be protected from 
     2016      unwanted removal by unseting write permissions for a certain 
     2017      file.</p><p>An XML document describing a sample topic namespace is presented 
     2018      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="d0e3001"></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 
     2019      type:</p><pre class="programlisting">$ ./qcg-ntfd</pre><p>If you start <span class="emphasis"><em>QCG Notification</em></span> with parameter 
     2020      -h you will get an optional parameters list:</p><pre class="programlisting">$ ./qcg-ntfd -h 
     2021usage: ./qcg-ntfd [-d] [-z config_file] 
     2022 
     2023  -d              do not detach and log to stderr 
     2024  -D              do not detach and force logging at debug level to stderr 
     2025  -z config_file  configuration file, default is /opt/qcg/etc/qcg-ntfd.xml 
     2026  -v              print version information 
     2027  -h              print this help</pre><p>Once you run <span class="emphasis"><em>QCG 
     2028      Notification</em></span> as a daemon, a log file is created. Using 
     2029      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="d0e3024"></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 
     2030      <code class="filename">SIGINT</code> signal to the service, e.g.:</p><pre class="programlisting">$ kill -SIGINT `pidof qcg-ntfd`</pre></div></div></div> 
     2031}}}