Version 16 (modified by bartek, 12 years ago) (diff)

--

<div class="article" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="d0e1"></a><span class="emphasis"><em>QCG-Notification</em></span> v. 2.6 Technical Guide and
    Manual</h2></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname">Bartosz</span> <span class="surname">Bosak</span></h3><code class="email">&lt;<a class="email" href="mailto:bbosak@man.poznan.pl">bbosak@man.poznan.pl</a>&gt;</code></div><div class="author"><h3 class="author"><span class="firstname">Krzysztof</span> <span class="surname">Kurowski</span></h3><code class="email">&lt;<a class="email" href="mailto:krzysztof.kurowski@man.poznan.pl">krzysztof.kurowski@man.poznan.pl</a>&gt;</code></div></div></div><div><p class="releaseinfo">2.6.3</p></div><div><p class="copyright">Copyright &copy; 2008-2012 Poznan Supercomputing and Networking Center</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#d0e37">1. Introduction</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e48">1.1. Motivations</a></span></dt><dt><span class="sect2"><a href="#d0e56">1.2. Purpose of the Document</a></span></dt><dt><span class="sect2"><a href="#d0e71">1.3. Status</a></span></dt></dl></dd><dt><span class="sect1"><a href="#d0e76">2. Terminology and WS-Notification Concept</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e84">2.1. WS-Notification Concept</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e87">2.1.1. WS-Notification Fundamentals</a></span></dt><dt><span class="sect3"><a href="#d0e130">2.1.2. WS-BaseNotification</a></span></dt><dt><span class="sect3"><a href="#d0e192">2.1.3. WS-BrokeredNotification</a></span></dt><dt><span class="sect3"><a href="#d0e270">2.1.4. WS-Topics</a></span></dt><dt><span class="sect3"><a href="#d0e324">2.1.5. Base of QCG-Notification</a></span></dt></dl></dd><dt><span class="sect2"><a href="#d0e416">2.2. UML-style Diagrams</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e457">2.2.1. `Main Use Cases</a></span></dt><dt><span class="sect3"><a href="#d0e490">2.2.2. Main Sequence Diagrams</a></span></dt></dl></dd></dl></dd><dt><span class="sect1"><a href="#d0e499">3. User Guide for a Publisher, Subscriber and
    NotificationConsumer </a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e504">3.1. Prefixes and Namespaces</a></span></dt><dt><span class="sect2"><a href="#d0e582">3.2. Interaction with QCG-Notification</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e592">3.2.1. Publisher Interaction</a></span></dt><dt><span class="sect3"><a href="#d0e606">3.2.2. Subscriber interaction</a></span></dt><dt><span class="sect3"><a href="#d0e631">3.2.3. NotificationConsumer Interaction</a></span></dt></dl></dd><dt><span class="sect2"><a href="#ted">3.3. Topics, TopicExpressions and Dialects</a></span></dt><dt><span class="sect2"><a href="#d0e685">3.4. Extensions</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e693">3.4.1. TopicExpression</a></span></dt><dt><span class="sect3"><a href="#d0e704">3.4.2. QCG-Notification Extensions</a></span></dt></dl></dd><dt><span class="sect2"><a href="#d0e715">3.5. Methods Description</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e749">3.5.1. SubscribeRequest</a></span></dt><dt><span class="sect3"><a href="#d0e856">3.5.2. SubscribeResponse</a></span></dt><dt><span class="sect3"><a href="#d0e904">3.5.3. RenewRequest</a></span></dt><dt><span class="sect3"><a href="#d0e945">3.5.4. RenewResponse</a></span></dt><dt><span class="sect3"><a href="#d0e989">3.5.5. UnsubscribeRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1022">3.5.6. UnsubscribeResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1043">3.5.7. RegisterPublisherRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1096">3.5.8. RegisterPublisherResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1141">3.5.9. Notify</a></span></dt><dt><span class="sect3"><a href="#d0e1225">3.5.10. DestroyRegistrationRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1258">3.5.11. DestroyRegistrationResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1279">3.5.12. CreatePullPointRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1303">3.5.13. CreatePullPointResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1333">3.5.14. GetMessages</a></span></dt><dt><span class="sect3"><a href="#d0e1366">3.5.15. GetMessagesResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1443">3.5.16. DestroyPullPointRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1464">3.5.17. DestroyPullPointResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1485">3.5.18. GetCurrentMessageRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1532">3.5.19. GetCurrentMessageResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1598">3.5.20. ListSubscriptions</a></span></dt><dt><span class="sect3"><a href="#d0e1700">3.5.21. ListSubscriptionsResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1797">3.5.22. ListPublishersRegistrations</a></span></dt><dt><span class="sect3"><a href="#d0e1878">3.5.23. ListPublisherRegistrationsResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1952">3.5.24. ListPullPoints</a></span></dt><dt><span class="sect3"><a href="#d0e2033">3.5.25. ListPullPointsResponse</a></span></dt><dt><span class="sect3"><a href="#d0e2107">3.5.26. ListTopicNamespaces</a></span></dt><dt><span class="sect3"><a href="#d0e2147">3.5.27. ListTopicNamespacesResponse</a></span></dt><dt><span class="sect3"><a href="#d0e2206">3.5.28. AddTopicNamespace</a></span></dt><dt><span class="sect3"><a href="#d0e2243">3.5.29. AddTopicNamespaceResponse</a></span></dt><dt><span class="sect3"><a href="#d0e2268">3.5.30. RemoveTopicNamespace</a></span></dt><dt><span class="sect3"><a href="#d0e2302">3.5.31. RemoveTopicNamespaceResponse</a></span></dt></dl></dd></dl></dd><dt><span class="sect1"><a href="#d0e2324">4. Administration Guide of
    QCG-Notification</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e2329">4.1. Prerequisites</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e2337">4.1.1. QCG Core library</a></span></dt></dl></dd><dt><span class="sect2"><a href="#d0e2355">4.2. Building</a></span></dt><dt><span class="sect2"><a href="#d0e2416">4.3. Creating database for QCG-Notification - the
      PostgreSQL example</a></span></dt></dl></dd><dt><span class="sect1"><a href="#configuration">5. Configuration of QCG-Notification</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e2506">5.1. Configuration File: qcg-ntfd.xml</a></span></dt><dt><span class="sect2"><a href="#moduleoptions">5.2. Module configuration</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e2838">5.2.1. Publisher modules</a></span></dt></dl></dd><dt><span class="sect2"><a href="#d0e3097">5.3. WS-Topics management</a></span></dt><dt><span class="sect2"><a href="#d0e3125">5.4. Starting QCG-Notification</a></span></dt><dt><span class="sect2"><a href="#d0e3148">5.5. Stopping QCG-Notification</a></span></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e37"></a>1.&nbsp;Introduction</h2></div></div></div><p><span class="bold"><strong>QCG-Notification</strong></span> is a reference
    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
    OASIS standard)</a><a class="link" href="#WS-Notification"></a> for message push/pull-style notification,
    using a topic-based publish/subscribe pattern. It supports standard
    message exchanges to be implemented by any Web Service providers
    (including also services within QCG Service Bus), that wish to participate
    in notifications, standard message exchanges for a notification-broker
    service provider (allowing publication of messages from entities that are
    not themselves service providers), operational requirements expected of
    service providers and requesters that participate in notifications, and an
    XML model that describes topics (i.e., items of interest for
    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
      service-oriented architectures (SOA) and distributed computing. However,
      early Web Services, such as those for getting stock or whether daily
      reports, were seemingly all remote procedure calls (RPC) oriented. In
      RPC systems, the receiver typically performs the requested Web Service
      and sends a response back to the consumer over the same connection on
      which the request arrived. Communication in this case is fully
      synchronous, and often also called a pull-style message exchange. Today,
      many existing SOA environments are based on synchronous message
      exchange, but in the future we expect more and more needs for
      asynchronous push Web Services. Moreover, existing approaches in a
      relatively simple and often non standard based way provide notification
      capabilities for distributed Web Services. Available reference
      implementations of industry standards, e.g. defined by OASIS
      standardization body, either implement only partially notification
      standards or do not meet high performance requirements. Therefore, our
      main motivation was to design and implement
      <span class="emphasis"><em>QCG-Notification</em></span> to offer more advanced push/pull
      (synchronous/asynchronous) standard notification routines for QCG
      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
      cases, scenarios and specify software requirements for
      <span class="emphasis"><em>QCG-Notification</em></span>, its programming application
      interface, functional units and the integration with both internal and
      external modules.</p><p>The document is aimed at software architects and programmers who
      will be developing software components based on this document. Many
      requirements and <span class="emphasis"><em>QCG-Notification </em></span>concept itself
      might be interesting for developers and end users of any Web
      Services.</p><p>This document assumes that the reader has at least a basic
      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
      schedule.</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e76"></a>2.&nbsp;Terminology and WS-Notification Concept</h2></div></div></div><p>The aim of this section is to capture high-level functionality of
    <span class="emphasis"><em>QCG-Notification</em></span> and/or interaction without providing
    excessive implementation or technical details of the system.</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e84"></a>2.1.&nbsp;WS-Notification Concept</h3></div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e87"></a>2.1.1.&nbsp;WS-Notification Fundamentals</h4></div></div></div><p>Notification-based pattern is commonly used for
        interaction between distributed objects. WS-Notification is a family
        of related specifications that standardizes notification concept and
        topic-based information distribution in SOA and Web Service based
        systems. There are three normative OASIS specifications:
        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
              and XML needed to express the basic roles involved in Web
              services publish and subscribe for notification message
              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
              notification messages exchange with indirect NotificationBroker
              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
              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
        defined in the mentioned specifications.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e130"></a>2.1.2.&nbsp;WS-BaseNotification</h4></div></div></div><p>The WS-BaseNotification document is a basic reference on which
        all the other specifications in the standard WS-Notification family
        depend. In fact, it defines precisely two important notification
        roles/actors called respectively NotificationProducer and
        NotificationConsumer. An example system architecture based on
        WS-BaseNotification is presented below.</p><div class="figure"><a name="BaseEntities"></a><p class="title"><b>Figure&nbsp;1.&nbsp;Web Services BaseNotification entities</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/smn_baseentities.png" align="middle" width="324" alt="Web Services BaseNotification entities"></div></div></div><p><br class="figure-break">The basic terminology related to the WS-BaseNotification is
        following:</p><div class="variablelist"><dl><dt><span class="term">Situation</span></dt><dd><p>Some occurrence known by a NotificationProducer. A
                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
                about that Situation. A Notification is represented as an XML
                element and dispatched by a NotificationProducer.</p></dd><dt><span class="term">Subscription</span></dt><dd><p>Represents relations between a NotificationProducer and
                a NotificationConsumer. A Subscription is created by a
                Subscriber and is consisted with filtering parameters such as
                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
                SubscribeRequest message to a NotificationProducer
                service.</p></dd><dt><span class="term">NotificationProducer</span></dt><dd><p>Produces Notifications. In other words
                NotificationProducer detects Situation(s) and translates it to
                Notification message(s). It is also a Web Service responsible
                for creating Subscriptions by the SubscribeRequest
                message.</p></dd><dt><span class="term">NotificationConsumer</span></dt><dd><p>An endpoint designated to receive Notifications produced
                by a NotificationProducer as a result of a
                Subscription.</p></dd><dt><span class="term">PullPoint</span></dt><dd><p>The purpose of PullPoints is enabling pull-style
                notifications. In general, PullPoints accumulate notifications
                and offer an interface for retrieving these notifications by
                remote consumers. Since a PullPoint implements a
                NotificationConsumer interface it can be selected in a
                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 produced on each topic. A new notification replaces
                the previous related to the same topic and currently buffered
                in CurrentMessages.</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e192"></a>2.1.3.&nbsp;WS-BrokeredNotification</h4></div></div></div><p>In a nutshell, the WS-BrokeredNotification specification is an
        extension of described above the WS-BaseNotification concept. However,
        it introduces a new important notification role called
        NotificationBroker and defines more advanced notification scenarios.
        The figure below shows an example scenario and notification message
        flow where NotificationBroker is present.</p><div class="figure"><a name="d0e198"></a><p class="title"><b>Figure&nbsp;2.&nbsp;Web Services BrokeredNotification entities -
            QCG-Notification entities</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/smn_brokeredentities.png" align="middle" width="324" alt="Web Services BrokeredNotification entities - QCG-Notification entities"></div></div></div><p><br class="figure-break">Note, that there are some important enlargements and
        modifications in the WS-BrokeredNotificatison terminology. Below the
        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
              reason of dispatching a Notification.</p></dd><dt><span class="term">Notification</span></dt><dd><p>An artifact of a Situation containing information about
              that Situation. A Notification is represented as an XML element,
              dispatched by a Publisher and redistributed by a
              NotificationBroker.</p></dd><dt><span class="term">Publisher</span></dt><dd><p>An unit that creates Notification(s) - detects
              Situation(s) and translates it to Notification message(s). It
              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
              NotificationConsumer. A Subscription is created by a Subscriber
              and is consisted with filtering parameters such as a Topic,
              policies or a context information.</p></dd><dt><span class="term">Subscriber</span></dt><dd><p>An unit that creates Subscriptions. It sends the
              SubscribeRequest message to a SubscriptionManager
              interface.</p></dd><dt><span class="term">NotificationBroker</span></dt><dd><p>An intermediary Web service that decouples Publishers and
              NotificationConsumers. It redistributes Notifications received
              from Publishers to NotificationConsumers on the basis of
              Subscriptions' parameters.</p></dd><dt><span class="term">NotificationConsumer</span></dt><dd><p>An endpoint designated to receive Notifications produced
              by a Publisher and later redistributed by a NotificationBroker
              as a result of a Subscription.</p></dd><dt><span class="term">PullPoint</span></dt><dd><p>The purpose of PullPoints is enabling pull-style
              notifications. In general, PullPoints accumulate notifications
              and offer an interface for retrieving these notifications by
              remote consumers. Since a PullPoint implements a
              NotificationConsumer interface it can be selected in a
              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
              published on each topic. A new notification replaces the
              previous related to the same topic and currently buffered in
              CurrentMessages.</p></dd></dl></div><p>The main difference between WS-Base and WS-Brokered Notification
        specifications is that in the second case NotificationProducers do not
        have to be implemented as a Web Services. Publishers do not have to
        implement and be compliant with defined NotificationProducer
        interfaces. Finally, having a NotificationBroker as a mediator between
        different actors in a notification flow, NotificationConsumers are
        fully separated and do not have to know details about
        NotificationProducers.</p><p>Depending on distributed system requirements and use cases
        various notification routines, objects, and roles are usually
        involved. For instance, in the simplest case where an asynchronous
        communication is required, there is no need to use a notification
        mechanisms defined by WS-BrokeredNotification and basic notification
        routines defined by WS-BaseNotification are good enough to satisfy
        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
        scenarios in service oriented systems we recommend to use notification
        capabilities defined in WS-BrokeredNotification. One of the main
        scenario defined by WS-BrokeredNotification is presented on <a class="link" href="#BrokeredEntities">Figure 2</a> .</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e270"></a>2.1.4.&nbsp;WS-Topics</h4></div></div></div><p>The third important notification specification document called
        WS-Topics is strictly associated with WS-BaseNotification and
        precisely defines a "topics" mechanism. Important definitions used in
        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
              related Notification schemes. Topics are used to determine which
              subscribing NotificationConsumers should receive a specific
              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
              Namespace</p></dd><dt><span class="term">Dialect</span></dt><dd><p>Identifies the type of a grammar used in a
              TopicExpression. The specification defines four Dialects:
              <span class="emphasis"><em>Simple</em></span>, <span class="emphasis"><em>Concrete</em></span>,
              <span class="emphasis"><em>Full</em></span> and <span class="emphasis"><em>XPath</em></span>.</p></dd></dl></div><div class="figure"><a name="d0e318"></a><p class="title"><b>Figure&nbsp;3.&nbsp;Example Topic Namespace</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/smn_topicnamespace.png" align="middle" width="324" alt="Example Topic Namespace"></div></div></div><br class="figure-break"></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e324"></a>2.1.5.&nbsp;Base of <span class="emphasis"><em>QCG-Notification</em></span></h4></div></div></div><p><span class="emphasis"><em>QCG-Notification</em></span> is a reference
        implementation of WS-BaseNotification, WS-BrokeredNotification and
        WS-Topics OASIS industry standards. As a consistent and highly
        efficient notification system it supports advanced brokered Web
        Service notification push/pull scenarios described in the <a class="link" href="#brokerednotifications">Section 2.1.3</a>. It has been
        designed to satisfy notification requirements and demands of large
        scale Web Service based systems, SOA environments and it acts as a
        core component in QCG Service Bus. To meet security requirements,
        <span class="emphasis"><em>QCG-Notification</em></span> (or <span class="emphasis"><em>QCG-Notification
        Provider</em></span>) exposes well defined Web Service and programming
        interfaces over QCG security mechanisms for dynamic notification,
        subscription, registration, forwarding, etc. As it was explained in
        the previous sections it can be used and integrated with various
        external third party Web Services playing roles of a notification
        Publisher, Subscriber or Consumer.</p><p>A flexible plug-in architecture of <span class="emphasis"><em>QCG-Notification
        </em></span>enables using different communication protocols for
        messages transmission. Currently messages can be transported between
        <span class="emphasis"><em>QCG-Notification</em></span> and third party entities not
        only through HTTP protocol, but also through XMPP (jabber) as well as
        SMTP (e-mail) protocols. It is possible to variously mix channels of
        communication, for example a notification sent by a Publisher being
        WS-Client as a HTTP message can be distributed over XMPP to jabber
        consumers.</p><p>Below we present a set of Web Service notification use cases
        demonstrating capabilities offered by
        <span class="emphasis"><em>QCG-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
          NotificationConsumers</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/smn_example1.png" align="middle" width="324" alt="Notification with multiple Publishers and multiple NotificationConsumers"></div></div></div><br class="figure-break"><p>The <a class="link" href="#notificationConsumers" title="Figure&nbsp;4.&nbsp;Notification with multiple Publishers and multiple NotificationConsumers">diagram 4</a> shows
        one of the basic notification flows supported by
        <span class="emphasis"><em>QCG-Notification</em></span>. Depending on records,
        Notifications produced by a Publisher and received by the
        <span class="emphasis"><em>QCG-Notification</em></span> may or may not be dispatched to
        concrete NotificationConsumer. Note, that Subscriptions represent
        relationships between Topics and NotificationConsumers in this
        scenario. Before any Notification is delivered to a
        NotificationConsumer, a Subscriber has to send first a
        SubscribeRequest message to <span class="emphasis"><em>QCG-Notification</em></span> in
        which all parameters of a Subscription are specified. Main parameters
        of a SubscribeRequest message are ConsumerReference and
        TopicExpression defined according to the specific Dialect type. On the
        other hand, before a Publisher starts sending Notifications it may be
        obligated to register himself in
        <span class="emphasis"><em>QCG-Notification</em></span>. The diagram below shows a
        sequence of events in order to initialize an asynchronous process of
        notifications between a Publisher and a NotificationConsumer.</p><div class="figure"><a name="d0e378"></a><p class="title"><b>Figure&nbsp;5.&nbsp;Message flows: creating a Subscription, notifying
          NotificationConsumers</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/smn_example2.png" align="middle" width="324" alt="Message flows: creating a Subscription, notifying NotificationConsumers"></div></div></div><br class="figure-break"><div class="orderedlist"><ol type="1"><li><p>A Subscriber sends the SubscribeRequest message with a
            NotificationConsumer location and TopicExpression parameters to
            <span class="emphasis"><em>QCG-Notification</em></span>.</p></li><li><p><span class="emphasis"><em>QCG-Notification</em></span> prepares appropriate
            records for a Subscription.</p></li><li><p>A Publisher register himself in
            <span class="emphasis"><em>QCG-Notification</em></span> by sending the
            RegisterPublisher message.</p></li><li><p>A registered Publisher sends the Notify message on a
            specified Topic to a <span class="emphasis"><em>QCG-Notification
            </em></span>service.</p></li><li><p><span class="emphasis"><em>QCG-Notification</em></span> checks if there are
            NotificationConsumers subscribed on a specified Topic. If so,
            <span class="emphasis"><em>QCG-Notification</em></span> sends asynchronous
            Notifications to these NotifcationConsumers.</p></li></ol></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e416"></a>2.2.&nbsp;UML-style Diagrams</h3></div></div></div><p>The document uses UML-style use-case diagrams to illustrate
      high-level use cases. The following list is probably sufficient for this
      version of the document:</p><div class="itemizedlist"><ul type="disc"><li><p>Stick figures represents actors or roles in a scenario. These
          can be human beings or software systems.</p></li><li><p>Ellipses represent use cases, i.e. actions or units of
          functionality in a system.</p></li><li><p>Lines between actors and use cases indicate a participation of
          the actor in the use case. At this level, no direction or payload of
          data flow is expressed by the lines between actors and use
          cases.</p></li></ul></div><p>The document uses UML-style sequence diagrams to illustrate
      detailed use case scenarios and later in the next sections. Meanings of
      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
          scenario.</p></li><li><p>Arrows with a solid head represent a message sent from one
          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
          message. The arrow points from the receiver of the earlier message
          to the sender.</p></li><li><p>A dotted line running down the diagram from a box indicates
          that arrows whose endpoints (tail or head) is on the line apply to
          that actor.</p></li><li><p>Intersections between arrows and dotted lines are
          meaningless.</p></li><li><p>Vertical layout represents time. Messages (arrows) farther
          down on the page happen after messages higher on the page.</p></li><li><p>Horizontal layout has no formal meaning. Since right-pointing
          arrows look better, actors that initiate a scenario tend to appear
          leftward of actors they send messages to.</p></li></ul></div><p>Sequence diagrams are used in this document for more concrete
      design, and that actors and messages are often objects and object
      methods. They provide value for this document in that they give a
      clearly ordered message layout and connections among functional units.
      The actors and messages in the sequence diagrams are more properly roles
      in a scenario and actions associated with that scenario.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e457"></a>2.2.1.&nbsp;`Main Use Cases</h4></div></div></div><div class="figure"><a name="d0e460"></a><p class="title"><b>Figure&nbsp;6.&nbsp;Use case diagram for a Publisher</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/use_publisher.png" align="middle" width="432" alt="Use case diagram for a Publisher"></div></div></div><br class="figure-break"><div class="figure"><a name="d0e466"></a><p class="title"><b>Figure&nbsp;7.&nbsp;Use case diagram for a Subscriber</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/use_subscriber.png" align="middle" width="432" alt="Use case diagram for a Subscriber"></div></div></div><br class="figure-break"><div class="figure"><a name="d0e472"></a><p class="title"><b>Figure&nbsp;8.&nbsp;Use case diagram for a NotificationConsumer</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/use_consumer.png" align="middle" width="432" alt="Use case diagram for a NotificationConsumer"></div></div></div><br class="figure-break"><div class="figure"><a name="d0e478"></a><p class="title"><b>Figure&nbsp;9.&nbsp;Use case diagram for QCG-Notification</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/use_qcgnotification.png" align="middle" width="432" alt="Use case diagram for QCG-Notification"></div></div></div><br class="figure-break"><div class="figure"><a name="d0e484"></a><p class="title"><b>Figure&nbsp;10.&nbsp;Use case diagram for a QCG-Notification Administrator</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/use_administrator.png" align="middle" width="432" alt="Use case diagram for a QCG-Notification Administrator"></div></div></div><br class="figure-break"></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e490"></a>2.2.2.&nbsp;Main Sequence Diagrams</h4></div></div></div><div class="figure"><a name="d0e493"></a><p class="title"><b>Figure&nbsp;11.&nbsp;General sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/seq_all.png" align="middle" width="432" alt="General sequence diagram"></div></div></div><br class="figure-break"></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e499"></a>3.&nbsp;User Guide for a Publisher, Subscriber and
    NotificationConsumer<span class="emphasis"><em> </em></span></h2></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e504"></a>3.1.&nbsp;Prefixes and Namespaces</h3></div></div></div><p>The following table presents namespaces tied with prefixes. The
      prefixes are used in example SOAP messages presented in the further
      sections.</p><div class="table"><a name="d0e509"></a><p class="title"><b>Table&nbsp;1.&nbsp;Prefixes and Namespaces</b></p><div class="table-contents"><table summary="Prefixes and Namespaces" border="1"><colgroup><col width="12%" align="left"><col width="88%"></colgroup><tbody><tr><td align="left"><span class="bold"><strong>Prefix</strong></span></td><td><span class="bold"><strong>Namespace</strong></span></td></tr><tr><td align="left">SOAP-ENV</td><td>http://schemas.xmlsoap.org/soap/envelope/</td></tr><tr><td align="left">SOAP-ENC</td><td>http://schemas.xmlsoap.org/soap/encoding/</td></tr><tr><td align="left">xsi</td><td>http://www.w3.org/2001/XMLSchema-instance</td></tr><tr><td align="left">xsd</td><td>http://www.w3.org/2001/XMLSchema</td></tr><tr><td align="left">wsa</td><td>http://www.w3.org/2005/08/addressing</td></tr><tr><td align="left">wsbf</td><td>http://docs.oasis-open.org/wsrf/bf-2</td></tr><tr><td align="left">wstop</td><td>http://docs.oasis-open.org/wsn/t-1</td></tr><tr><td align="left">wsr</td><td>http://docs.oasis-open.org/wsrf/r-2</td></tr><tr><td align="left">wsnt</td><td>http://docs.oasis-open.org/wsn/b-2</td></tr><tr><td align="left">wsntw</td><td>http://docs.oasis-open.org/wsn/bw-2</td></tr><tr><td align="left">wsnbr</td><td>http://docs.oasis-open.org/wsn/br-2</td></tr><tr><td align="left">smn-ext</td><td>http://schemas.qoscosgrid.org/ntf/2011/04/extensions</td></tr></tbody></table></div></div><br class="table-break"></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e582"></a>3.2.&nbsp;Interaction with <span class="emphasis"><em>QCG-Notification</em></span></h3></div></div></div><p>In the next subsections an issue of cooperation with
      <span class="emphasis"><em>QCG-Notification</em></span> is presented independently for a
      Publisher, Subscriber and NotificationConsumer. Although a conceptual
      style of interaction is described here in details, technical
      particularities of constructing messages are presented later.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e592"></a>3.2.1.&nbsp;Publisher Interaction</h4></div></div></div><div class="figure"><a name="d0e595"></a><p class="title"><b>Figure&nbsp;12.&nbsp;Publisher interaction sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/seq_publisher.png" align="middle" width="432" alt="Publisher interaction sequence diagram"></div></div></div><br class="figure-break"><p>In the most general configuration of the service, a Publisher
        has to be registered before it starts sending Notifications. In this
        situation, a Publisher sends the RegisterPublisherRequest message to
        <span class="emphasis"><em>QCG-Notification</em></span>. If everything goes well it
        receives the RegisterPublisherResponse message with a session ID. From
        this time a Publisher is entitled for sending Notify messages - the
        Notify message has to include received session ID in its content. The
        notifications can be forwarded to remote Notification Consumers or
        buffered locally in PullPoints. Moreover, every new notification
        replaces the old one in CurrentMessages. After work, a Publisher
        should unregister himself by sending DestroyRegistration. This message
        has to include a session ID likewise.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e606"></a>3.2.2.&nbsp;Subscriber interaction</h4></div></div></div><div class="figure"><a name="d0e609"></a><p class="title"><b>Figure&nbsp;13.&nbsp;Subscriber interaction sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/seq_subscriber.png" align="middle" width="432" alt="Subscriber interaction sequence diagram"></div></div></div><br class="figure-break"><p>When a Subscriber wants to create a Subscription, it sends the
        SubscribeRequest message to <span class="emphasis"><em>QCG-Notification</em></span>.
        This message should contain an address of NotificationConsumer and a
        TopicExpression that specifies a Topic or a set of Topics on which
        NotificationConsumer should receive Notifications. Additionally a
        Subscriber can define a boolean XPath expression that will be
        evaluated over Notification Messages for more sophisticated filtering.
        From the version 2.5.0 of the system, the Subscriber may specify XSLT
        document that will be used to transform message content by certain
        publishing modules. After creation of a Subscription
        <span class="emphasis"><em>QCG-Notification</em></span> sends the SubscribeResponse
        message with a created Subscription ID. This ID should be attached to
        the UnsubscribeRequest message when a Subscription is not wanted and
        the Renew message when a Subscription should be refreshed. A
        Subscriber is allowed to create many equal Subscriptions.</p><p>If a scenario requires pull-style of notifications, a Subscriber
        can create a set of PullPoints. In a such situation, it has to invoke
        the CreatePullPoint method offered by <span class="emphasis"><em>QCG-Notification.
        <span class="emphasis"><em>The response parameter of this method will be an address to
        the newly created <span class="emphasis"><em>PullPoint resource (Subscribers can assign
        this resources as NotificationConsumers in theirs Subscriptions). A
        PullPoint resource can be destroyed by the DestroyPullPoint message
        sent directly to this resource.
        </em></span></em></span></em></span></p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e631"></a>3.2.3.&nbsp;NotificationConsumer Interaction</h4></div></div></div><div class="figure"><a name="d0e635"></a><p class="title"><b>Figure&nbsp;14.&nbsp;NotificationConsumer interaction sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/seq_consumer.png" align="middle" width="432" alt="NotificationConsumer interaction sequence diagram"></div></div></div><p><br class="figure-break">The main capability of a NotificationConsumer is a
        receiving of Notify messages. A NotificationConsumer can implement an
        interface for receiving Notify messages sending by
        <span class="emphasis"><em>QCG-Notification</em></span> or can be a client of a
        PullPoint. In the second case, a NotificationConsumer can invoke
        GetMessages method offered by a certain PullPoint. Messages buffered
        in the PullPoint will be removed from the buffer and delivered in
        GetMessagesResponse to the consumer.</p><p>On the other hand, when a NotificationConsumer wants to receive
        the last Notification message sent on a specific Topic, it can do this
        by sending GetCurrentMessageRequest to
        <span class="emphasis"><em>QCG-Notification</em></span>. Requested Notification will be
        supplied in 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>
      service, there should be defined Topic Namespaces in a system. Topic
      Namespaces should be created (usually by Publishers) and delivered to
      a<span class="emphasis"><em> QCG-Notification</em></span> administrator in a form of XML
      documents. A following record presents a sample Topic Namespace
      identified by
      <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics.</em></span></p><pre class="programlisting">&lt;wstop:TopicNamespace                                                                                                                                                                   
    xmlns:wstop="http://docs.oasis-open.org/wsn/t-1"                                                                                                                                
    targetNamespace="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics"&gt;                                                                                              
    &lt;wstop:Topic name="House"&gt;
        &lt;wstop:Topic name="Kitchen"&gt;
            &lt;wstop:Topic name="Friedge"/&gt;
            &lt;wstop:Topic name="Cook"/&gt;
            &lt;wstop:Topic name="Light"/&gt;
        &lt;/wstop:Topic&gt;
        &lt;wstop:Topic name="Toilet"&gt;
            &lt;wstop:Topic name="Light"/&gt;
        &lt;/wstop:Topic&gt;
        &lt;wstop:Topic name="Room1"&gt;
            &lt;wstop:Topic name="Light"/&gt;
        &lt;/wstop:Topic&gt;
        &lt;wstop:Topic name="Room2"&gt;
            &lt;wstop:Topic name="Light"/&gt;
        &lt;/wstop:Topic&gt;
    &lt;/wstop:Topic&gt;                                                                                                                                                              
&lt;/wstop:TopicNamespace&gt;</pre><p><span class="emphasis"><em>QCG-Notification </em></span>supports three types of
      dialects: <span class="emphasis"><em>Simple</em></span>, <span class="emphasis"><em>Concrete</em></span> and
      <span class="emphasis"><em>Full</em></span>. If a message refer to Topics, it has to
      define TopicExpression that identifies one or more Topics (note there
      are situations when TopicExpression has to refer to exactly one Topic).
      TopicExpression has to be written in a supported Dialect. Further more
      TopicExpression has to define Topics from supported Topic Namespaces. To
      select an appropriate Topic Namespace, the first part of TopicExpression
      should be presented in a form of a prefix that refers to this
      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>
      and check out examples of methods in the <a class="link" href="#methodsdescription">section 3.4.</a></p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e685"></a>3.4.&nbsp;Extensions</h3></div></div></div><p>The Oasis standard for notifications doesn't define details for
      lower Levels of functionality so an architect of system is obligated to
      introduce some extensions and clarifications. In the
      <span class="emphasis"><em>QCG-Notification </em></span>scenario there are several
      messages that have to be expanded with additional information written as
      embedded XML. Some of these extensions are related with other Oasis
      standards but some are quite new. Technical details are described in the
      successive subsections.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e693"></a>3.4.1.&nbsp;TopicExpression</h4></div></div></div><p><span class="emphasis"><em>QCG-Notification </em></span>remote peers have to use
        an appropriate TopicExpression XML element. The schema of this element
        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">
        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
        here that the Nofity and GetCurrentMessageRequest messages contain a
        Topic element which contains a required @Dialect attribute. Also
        TopicExpression has to define a @Dialect attribute. For conformity
        with the WSDL document, a @Dialect from the Topic element is
        significant. It is not necessary but preferred to attach the same
        @Dialect in the TopicExpression element against.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e704"></a>3.4.2.&nbsp;<span class="emphasis"><em>QCG-Notification</em></span> Extensions</h4></div></div></div><p><span class="emphasis"><em>QCG-Notification</em></span> introduces some extensions
        to WSDL as well as schema documents related to the Oasis standard. The
        following schema defines these extensions. The first three elements
        named RegisterPublisherID, SubscriptionID and PullPointID are IDs for
        Publisher Registrations, created Subscriptions and PullPoints.
        CurrentMessage is used for supplementation of
        GetCurrentMessageResponse. The rest of the elements is utilized in the
        managing methods, the elements are used in order to: listing
        Subscriptions, listing PublisherRegistrations and listing
        PullPoints.</p><pre class="programlisting">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;xsd:schema
  xmlns="http://schemas.qoscosgrid.org/ntf/2011/04/extensions"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
  targetNamespace="http://schemas.qoscosgrid.org/ntf/2011/04/extensions"
  elementFormDefault="qualified"&gt;

  &lt;xsd:import namespace="http://docs.oasis-open.org/wsn/b-2" 
   schemaLocation="http://docs.oasis-open.org/wsn/b-2.xsd"/&gt;
   
   &lt;xsd:element name="RegisterPublisherID" type="ID"/&gt;
   &lt;xsd:element name="SubscriptionID" type="ID"/&gt;
   &lt;xsd:element name="PullPointID" type="ID"/&gt;
   &lt;xsd:element name="CurrentMessage" type="CM"/&gt;
   &lt;xsd:element name="XSLTTranslation" type="XSLTTrans"/&gt;
  
   &lt;xsd:simpleType name="ID"&gt;
    &lt;xsd:restriction base="xsd:string"&gt;
     &lt;xsd:maxLength value="32"/&gt;
    &lt;/xsd:restriction&gt;
   &lt;/xsd:simpleType&gt;

   &lt;xsd:complexType name="CM"&gt;
    &lt;xsd:all&gt;
     &lt;xsd:element name="NotifyTime" type="xsd:dateTime" minOccurs="0"/&gt;
     &lt;xsd:element ref="wsnt:ProducerReference" minOccurs="0" maxOccurs="1"/&gt;
     &lt;xsd:element name="Message" type="MSG" minOccurs="1"/&gt;
    &lt;/xsd:all&gt;
   &lt;/xsd:complexType&gt;

   &lt;xsd:complexType name="MSG"&gt;
    &lt;xsd:sequence&gt;
     &lt;xsd:any minOccurs="0" maxOccurs="1" processContents="lax"/&gt;
    &lt;/xsd:sequence&gt;
   &lt;/xsd:complexType&gt;

   &lt;xsd:simpleType name="XSLTTrans"&gt;
    &lt;xsd:restriction base="xsd:string"&gt;
     &lt;xsd:maxLength value="4096"/&gt;
    &lt;/xsd:restriction&gt;
   &lt;/xsd:simpleType&gt;  

&lt;!-- ================= QCG-Notification manager : ListPullPoints ================== --&gt;

   &lt;xsd:complexType name="ListSubscriptionsFilter"&gt;
    &lt;xsd:sequence&gt;
     &lt;xsd:element name="SubscriptionID" type="ID" minOccurs="0" maxOccurs="1"/&gt;
     &lt;xsd:element name="ConsumerReference" type="wsa:EndpointReferenceType" 
      minOccurs="0" maxOccurs="1"/&gt;
     &lt;xsd:element name="CreationTimeMin" type="wsnt:AbsoluteOrRelativeTimeType" 
      nillable="true" minOccurs="0" maxOccurs="1"/&gt;
     &lt;xsd:element name="CreationTimeMax" type="wsnt:AbsoluteOrRelativeTimeType" 
      nillable="true" minOccurs="0" maxOccurs="1"/&gt;
     &lt;xsd:element name="TerminationTimeMin" type="wsnt:AbsoluteOrRelativeTimeType" 
      nillable="true" minOccurs="0" maxOccurs="1"/&gt;
     &lt;xsd:element name="TerminationTimeMax" type="wsnt:AbsoluteOrRelativeTimeType" 
      nillable="true" minOccurs="0" maxOccurs="1"/&gt;
     &lt;xsd:element ref="wsnt:Filter" minOccurs="0" maxOccurs="1"/&gt; 
     &lt;xsd:any namespace="##other" processContents="lax" 
      minOccurs="0" maxOccurs="unbounded"/&gt;
    &lt;/xsd:sequence&gt;
   &lt;/xsd:complexType&gt;

   &lt;xsd:element name="ListSubscriptions"&gt;
    &lt;xsd:complexType&gt;
     &lt;xsd:sequence&gt;
      &lt;xsd:element name="Filter" type="ListSubscriptionsFilter" 
       minOccurs="0" maxOccurs="1"/&gt;
      &lt;xsd:element name="MaxNumber" type="xsd:integer" 
       minOccurs="0" maxOccurs="1"/&gt;
      &lt;xsd:any namespace="##other" processContents="lax" 
       minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xsd:sequence&gt;
    &lt;/xsd:complexType&gt;
   &lt;/xsd:element&gt;
    
   &lt;xsd:complexType name="Subscription"&gt;
    &lt;xsd:sequence&gt;
     &lt;xsd:element name="SubscriptionID" type="ID"/&gt;
     &lt;xsd:element name="ConsumerReference" type="wsa:EndpointReferenceType" 
      minOccurs="0" maxOccurs="1" /&gt;
     &lt;xsd:element name="CreationTime" type="wsnt:AbsoluteOrRelativeTimeType" 
      nillable="true" minOccurs="0" maxOccurs="1"/&gt;
     &lt;xsd:element name="TerminationTime" type="wsnt:AbsoluteOrRelativeTimeType" 
      nillable="true" minOccurs="0" maxOccurs="1"/&gt;
     &lt;xsd:element ref="wsnt:Filter" minOccurs="0" maxOccurs="1"/&gt;                                          
     &lt;xsd:any namespace="##other" processContents="lax" 
      minOccurs="0" maxOccurs="unbounded"/&gt;
    &lt;/xsd:sequence&gt;
   &lt;/xsd:complexType&gt;
    
   &lt;xsd:element name="ListSubscriptionsResponse"&gt;
    &lt;xsd:complexType&gt;
     &lt;xsd:sequence&gt;
      &lt;xsd:element name="Subscription" type="Subscription" 
       minOccurs="0" maxOccurs="unbounded"/&gt;
      &lt;xsd:any namespace="##other" processContents="lax" 
       minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xsd:sequence&gt;
    &lt;/xsd:complexType&gt;
   &lt;/xsd:element&gt;

&lt;!-- ================= QCG-Notification manager : ListPublishersRegistrations ================== --&gt;

   &lt;xsd:complexType name="ListPublishersRegistrationsFilter"&gt;
    &lt;xsd:sequence&gt;
     &lt;xsd:element name="PublisherRegistrationID" type="ID" 
      minOccurs="0" maxOccurs="1"/&gt;
     &lt;xsd:element name="PublisherReference" type="wsa:EndpointReferenceType" 
      minOccurs="0" maxOccurs="1"/&gt;
     &lt;xsd:element name="CreationTimeMin" type="wsnt:AbsoluteOrRelativeTimeType" 
      nillable="true" minOccurs="0" maxOccurs="1"/&gt;
     &lt;xsd:element name="CreationTimeMax" type="wsnt:AbsoluteOrRelativeTimeType" 
      nillable="true" minOccurs="0" maxOccurs="1"/&gt;
     &lt;xsd:element name="TerminationTimeMin" type="wsnt:AbsoluteOrRelativeTimeType" 
      nillable="true" minOccurs="0" maxOccurs="1"/&gt;
     &lt;xsd:element name="TerminationTimeMax" type="wsnt:AbsoluteOrRelativeTimeType" 
      nillable="true" minOccurs="0" maxOccurs="1"/&gt;
     &lt;xsd:any namespace="##other" processContents="lax" 
      minOccurs="0" maxOccurs="unbounded"/&gt;
    &lt;/xsd:sequence&gt;
   &lt;/xsd:complexType&gt;

   &lt;xsd:element name="ListPublishersRegistrations"&gt;
    &lt;xsd:complexType&gt;
     &lt;xsd:sequence&gt;
      &lt;xsd:element name="Filter" type="ListPublishersRegistrationsFilter" 
       minOccurs="0" maxOccurs="1"/&gt;
      &lt;xsd:element name="MaxNumber" type="xsd:integer" 
       minOccurs="0" maxOccurs="1"/&gt;
      &lt;xsd:any namespace="##other" processContents="lax" 
       minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xsd:sequence&gt;
    &lt;/xsd:complexType&gt;
   &lt;/xsd:element&gt;
    
   &lt;xsd:complexType name="PublisherRegistration"&gt;
    &lt;xsd:sequence&gt;
     &lt;xsd:element name="PublisherRegistrationID" type="ID"/&gt;
     &lt;xsd:element name="PublisherReference" type="wsa:EndpointReferenceType" 
      minOccurs="0" maxOccurs="1"/&gt;
     &lt;xsd:element name="CreationTime" type="wsnt:AbsoluteOrRelativeTimeType" 
      nillable="true" minOccurs="0" maxOccurs="1"/&gt;
     &lt;xsd:element name="TerminationTime" type="wsnt:AbsoluteOrRelativeTimeType" 
      nillable="true" minOccurs="0" maxOccurs="1"/&gt;                     
     &lt;xsd:any namespace="##other" processContents="lax" 
      minOccurs="0" maxOccurs="unbounded"/&gt;
    &lt;/xsd:sequence&gt;
   &lt;/xsd:complexType&gt;
    
   &lt;xsd:element name="ListPublishersRegistrationsResponse"&gt;
    &lt;xsd:complexType&gt;
     &lt;xsd:sequence&gt;
      &lt;xsd:element name="PublisherRegistration" type="PublisherRegistration" 
       minOccurs="0" maxOccurs="unbounded"/&gt;
      &lt;xsd:any namespace="##other" processContents="lax" 
       minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xsd:sequence&gt;
    &lt;/xsd:complexType&gt;
   &lt;/xsd:element&gt;

&lt;!-- ================= QCG-Notification manager : ListPullPoints ================== --&gt;

   &lt;xsd:complexType name="ListPullPointsFilter"&gt;
    &lt;xsd:sequence&gt;
     &lt;xsd:element name="PullPointID" type="ID" 
      minOccurs="0" maxOccurs="1"/&gt;        
     &lt;xsd:element name="PullPointReference" type="wsa:EndpointReferenceType" 
      minOccurs="0" maxOccurs="1"/&gt;
     &lt;xsd:element name="CreationTimeMin" type="wsnt:AbsoluteOrRelativeTimeType" 
      nillable="true" minOccurs="0" maxOccurs="1"/&gt;
     &lt;xsd:element name="CreationTimeMax" type="wsnt:AbsoluteOrRelativeTimeType" 
      nillable="true" minOccurs="0" maxOccurs="1"/&gt;
     &lt;xsd:element name="TerminationTimeMin" type="wsnt:AbsoluteOrRelativeTimeType" 
      nillable="true" minOccurs="0" maxOccurs="1"/&gt;
     &lt;xsd:element name="TerminationTimeMax" type="wsnt:AbsoluteOrRelativeTimeType" 
      nillable="true" minOccurs="0" maxOccurs="1"/&gt;
     &lt;xsd:any namespace="##other" processContents="lax" 
      minOccurs="0" maxOccurs="unbounded"/&gt;
    &lt;/xsd:sequence&gt;
   &lt;/xsd:complexType&gt;

   &lt;xsd:element name="ListPullPoints"&gt;
    &lt;xsd:complexType&gt;
     &lt;xsd:sequence&gt;
      &lt;xsd:element name="Filter" type="ListPullPointsFilter" 
       minOccurs="0" maxOccurs="1"/&gt;
      &lt;xsd:element name="MaxNumber" type="xsd:integer" 
       minOccurs="0" maxOccurs="1"/&gt;
      &lt;xsd:any namespace="##other" processContents="lax" 
       minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xsd:sequence&gt;
    &lt;/xsd:complexType&gt;
   &lt;/xsd:element&gt;
    
   &lt;xsd:complexType name="PullPoint"&gt;
    &lt;xsd:sequence&gt;
     &lt;xsd:element name="PullPointID" type="ID" 
      minOccurs="0" maxOccurs="1"/&gt;   
     &lt;xsd:element name="PullPointReference" type="wsa:EndpointReferenceType" 
      minOccurs="0" maxOccurs="1"/&gt;
     &lt;xsd:element name="CreationTime" type="wsnt:AbsoluteOrRelativeTimeType" 
      nillable="true" minOccurs="0" maxOccurs="1"/&gt;
     &lt;xsd:element name="TerminationTime" type="wsnt:AbsoluteOrRelativeTimeType" 
      nillable="true" minOccurs="0" maxOccurs="1"/&gt;                     
     &lt;xsd:any namespace="##other" processContents="lax" 
      minOccurs="0" maxOccurs="unbounded"/&gt;
    &lt;/xsd:sequence&gt;
   &lt;/xsd:complexType&gt;
    
   &lt;xsd:element name="ListPullPointsResponse"&gt;
    &lt;xsd:complexType&gt;
     &lt;xsd:sequence&gt;
      &lt;xsd:element name="PullPoint" type="PullPoint" 
       minOccurs="0" maxOccurs="unbounded"/&gt;
      &lt;xsd:any namespace="##other" processContents="lax" 
       minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xsd:sequence&gt;
    &lt;/xsd:complexType&gt;
   &lt;/xsd:element&gt;

&lt;!-- ================= QCG-Notification manager : ListTopicNamespaces ================== --&gt;
    
   &lt;xsd:complexType name="ListTopicNamespacesFilter"&gt;
    &lt;xsd:sequence&gt;
     &lt;xsd:element name="targetNamespace" type="xsd:anyURI" 
      minOccurs="0" maxOccurs="1"/&gt;
    &lt;/xsd:sequence&gt;
   &lt;/xsd:complexType&gt;

   &lt;xsd:element name="ListTopicNamespaces"&gt;
    &lt;xsd:complexType&gt;
     &lt;xsd:sequence&gt;
      &lt;xsd:element name="Filter" type="ListTopicNamespacesFilter" 
       minOccurs="0" maxOccurs="1"/&gt;
      &lt;xsd:element name="MaxNumber" type="xsd:integer" 
       minOccurs="0" maxOccurs="1"/&gt;
      &lt;xsd:any namespace="##other" processContents="lax"
       minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xsd:sequence&gt;
    &lt;/xsd:complexType&gt;
   &lt;/xsd:element&gt;
    
   &lt;xsd:complexType name="TopicNamespace"&gt;
    &lt;xsd:sequence&gt;
     &lt;xsd:element name="targetNamespace" type="xsd:anyURI" use="required"/&gt;
     &lt;xsd:element name="Topics" type="xsd:anyURI" minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;xsd:any namespace="##other" processContents="lax"
      minOccurs="0" maxOccurs="unbounded"/&gt;
    &lt;/xsd:sequence&gt;
   &lt;/xsd:complexType&gt;
    
   &lt;xsd:element name="ListTopicNamespacesResponse"&gt;
    &lt;xsd:complexType&gt;
     &lt;xsd:sequence&gt;
      &lt;xsd:element name="TopicNamespace" type="TopicNamespace"
       minOccurs="0" maxOccurs="unbounded"/&gt;
      &lt;xsd:any namespace="##other" processContents="lax"
       minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xsd:sequence&gt;
    &lt;/xsd:complexType&gt;
   &lt;/xsd:element&gt;

&lt;!-- ================= QCG-Notification manager : AddTopicNamespace ================== --&gt;

   &lt;xsd:element name="AddTopicNamespace"&gt;
    &lt;xsd:complexType&gt;
     &lt;xsd:sequence&gt;
      &lt;xsd:element ref="wstop:TopicNamespace"/&gt;
       &lt;xsd:any namespace="##other" processContents="lax"
        minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xsd:sequence&gt;
    &lt;/xsd:complexType&gt;
   &lt;/xsd:element&gt;
   
   &lt;xsd:element name="AddTopicNamespaceResponse"&gt;
    &lt;xsd:complexType&gt;
     &lt;xsd:sequence&gt;
      &lt;xsd:any namespace="##other" processContents="lax"
       minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xsd:sequence&gt;
    &lt;/xsd:complexType&gt;
   &lt;/xsd:element&gt;

&lt;!-- ================= QCG-Notification manager : RemoveTopicNamespace ================== --&gt;

   &lt;xsd:element name="RemoveTopicNamespace"&gt;
    &lt;xsd:complexType&gt;
     &lt;xsd:sequence&gt;
      &lt;xsd:element name="targetNamespace" type="xsd:anyURI" 
       use="required"/&gt;
      &lt;xsd:any namespace="##other" processContents="lax"
       minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xsd:sequence&gt;
    &lt;/xsd:complexType&gt;
   &lt;/xsd:element&gt;
    
   &lt;xsd:element name="RemoveTopicNamespaceResponse"&gt;
    &lt;xsd:complexType&gt;
     &lt;xsd:sequence&gt;
      &lt;xsd:any namespace="##other" processContents="lax"
       minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xsd:sequence&gt;
    &lt;/xsd:complexType&gt;
   &lt;/xsd:element&gt;

&lt;/xsd:schema&gt;</pre></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e715"></a>3.5.&nbsp;Methods Description</h3></div></div></div><p>The main idea of this chapter is to present the types of messages
      used in the <span class="emphasis"><em>QCG-Notification</em></span> scenario as well as
      introduce how to construct and interpret these messages. The majority of
      them is two-way style and initiated by
      <span class="emphasis"><em>QCG-Notification</em></span> clients. Exception is the Notify
      message that is one-way style. In the first phase it is transported from
      a Publisher to <span class="emphasis"><em>QCG-Notification</em></span> and in the second
      it is transported from <span class="emphasis"><em>QCG-Notification</em></span> to
      subscribed NotificationConsumers.</p><p>All supported by <span class="emphasis"><em>QCG-Notification</em></span> message
      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,
              however there are also extensions;</p></li><li><p>For all messages it is important to set a correct
              WS-Addressing Action property which should be the same as SOAP
              Action.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e749"></a>3.5.1.&nbsp;SubscribeRequest</h4></div></div></div><p>SubscribeRequest is sent by a Subscriber to
        <span class="emphasis"><em>QCG-Notification</em></span>. The message should contain
        information about a NotificationConsumer and an expression defining
        Topic or Topics that the Subscription will affect. If a message
        processing is successful, a Subscription is created. It is possible to
        create many equal Subscriptions by sending numerously the same
        SubscribeRequest message.</p><pre class="programlisting">SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/
      NotificationProducer/SubscribeRequest</strong></span>
    &lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;wsnt:Subscribe&gt;
     &lt;wsnt:ConsumerReference&gt;
      &lt;wsa:Address&gt;
         <span class="bold"><strong>https://localhost:2233</strong></span>
      &lt;/wsa:Address&gt;
     &lt;/wsnt:ConsumerReference&gt;
     &lt;wsnt:Filter&gt;
      &lt;wsnt:TopicExpression  
        <span class="bold"><strong>xmlns:tns="<span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span>"</strong></span> 
        Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>&gt;
           <span class="bold"><strong>tns://*</strong></span>
      &lt;/wsnt:TopicExpression&gt;
      &lt;wsnt:MessageContent
        <span class="bold"><strong>xmlns:smnex=http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage</strong></span> 
        Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116"&gt;
           <span class="bold"><strong>boolean(//smnex:State[text()="on"])</strong></span>
      &lt;/wsnt:MessageContent&gt;
     &lt;/wsnt:Filter&gt;
     &lt;wsnt:InitialTerminationTime&gt;
      <span class="bold"><strong>2007-07-23T10:24:14+02:00</strong></span>
     &lt;/wsnt:InitialTerminationTime&gt;
     &lt;smn-ext:XSLTTranslation&gt;
      &lt;![CDATA[<span class="bold"><strong>
      &lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
       &lt;xsl:stylesheet version 1.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmln:s=http://schemas.qoscosgrid.org/ntf/1011/04/sample/myhousemessage"&gt;
        &lt;xsl:output method="text"/&gt;
        &lt;xsl:template match="/"&gt;
         ### Sample QCG-Notification message ###
         &lt;xsl:apply-templates/&gt;
        &lt;/xsl:template&gt;
        &lt;xsl:template match="s:State"&gt;
          Value of State is: &lt;xsl:value-of select="."/&gt;
        &lt;/xsl:template&gt;
       &lt;/xsl:stylesheet&gt;</strong></span>
      ]]&gt;
     &lt;/smn-ext:XSLTTranslation&gt;
    &lt;/wsnt:Subscribe&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/
            NotificationProducer/SubscribeRequest. <span class="emphasis"><em>If differ, a
            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
            prefix (http, https, xmpp). The prefix should be adequate to the
            expected type of connection between
            <span class="emphasis"><em>QCG-Notification</em></span> and NotificationConsumer(s):
            http for anonymous, https for ssl-based and xmpp for sending
            notifications 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
            to the Subscription being created. In other words, it identifies a
            type of Notifications that should be forwarded to the selected
            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
            that Subscription should affect. Topics should come from supported
            Topic Namespaces that are also defined for the element.
            TopicExpression may be defined in two ways: (1) using prefixed
            form (e.g. tns://*) - the topicNamespace is defined in a
            TopicExpression element and assigned to some prefix (e.g. tns) or
            (2) using inline form (e.g.
            {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
            Dialects types are as follows:
            <span class="emphasis"><em>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple",
            "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete",
            "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
            define an XPath boolean expression that will be evaluated over
            redistributed Notificatiom Messages to true or false. If such an
            evaluation returns true, the message is forwarded, otherwise it is
            not. The namespaces used in the expression may be defined inside
            the MessageContent element as additional attributes or using
            in-line form e.g.
            boolean(//{http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage}State[text()="on"].The
            Dialect should always be:
            <span class="emphasis"><em>http://www.w3.org/TR/1999/REC-xpath-19991116</em></span></p></li><li><p><span class="emphasis"><em>//wsnt:Subscribe/wsnt:InitialTerminationTime</em></span></p><p>An optional element. If present, must contain a Subscriber
            suggestion for the termination time of the Subscription being
            created (expressed as a local time with timezone). If not present,
            the termination time is determined automatically -
            <span class="emphasis"><em>QCG-Notification <span class="emphasis"><em>specify a default time
            period</em></span></em></span> for the Subscription to be
            valid.</p></li><li><p><span class="emphasis"><em>//wsnt:Subscribe/smn-ext:XSLTTranslation</em></span></p><p>An optional element. Inside the XSLTTranslation a Subscriber
            may deliver an XSLT document that will be used by some publishing
            modules to transform notification messages to a different form
            (for example user readable). Note that an actual XSLT document
            should be enclosed in &lt;![CDATA[ and ]]&gt; markers.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e856"></a>3.5.2.&nbsp;SubscribeResponse</h4></div></div></div><p>In answer on SubscribeRequest there is sent the
        SubscribeResponse message. <span class="emphasis"><em>QCG-Notification</em></span>
        deliver in this message a reference to the created Subscription. This
        ID can be used for manipulation and to remove the Subscription.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/
      NotificationProducer/SubscribeResponse</strong></span>
    &lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;wsnt:SubscribeResponse&gt;
     &lt;wsnt:SubscriptionReference&gt;
      &lt;wsa:Address&gt;
         <span class="bold"><strong>http://some.address</strong></span>
      &lt;/wsa:Address&gt;
      &lt;wsa:ReferenceParameters&gt;
         <span class="bold"><strong>&lt;SubscriptionID 
          xmlns="http://schemas.qoscosgrid.org/ntf/2011/04/extensions"&gt;
          506435877
         &lt;/SubscriptionID&gt;</strong></span>
      &lt;/wsa:ReferenceParameters&gt;
     &lt;/wsnt:SubscriptionReference&gt;
    &lt;/wsnt:SubscribeResponse&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/
            NotificationProducer/SubscribeResponse. <span class="emphasis"><em>If differ, a
            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
            current solution it is the <span class="emphasis"><em>QCG-Notification</em></span>
            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
            ID. At this time it is at most 32 char long string.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e904"></a>3.5.3.&nbsp;RenewRequest</h4></div></div></div><p>When a Subscriber wants to renew a Subscription, it can send the
        RenewRequest message to <span class="emphasis"><em>QCG-Notification</em></span>. The
        message should contain the Subscription ID element and a new
        termination time suggesation.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/
      SubscriptionManager/RenewRequest</strong></span>
    &lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;wsnt:Renew&gt;
     &lt;wsnt:TerminationTime&gt;
      <span class="bold"><strong>2007-07-25T12:24:14+02:00</strong></span>
     &lt;/wsnt:TerminationTime&gt;
     &lt;smn-ext:SubscriptionID&gt;
      <span class="bold"><strong>506435877</strong></span>
     &lt;/smn-ext:SubscriptionID&gt;
    &lt;/wsnt:Renew&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/
            SubscriptionManager/RenewRequest. <span class="emphasis"><em>If differ, a fault
            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
            Subscription being renewed (expressed as a local time with
            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
            message.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e945"></a>3.5.4.&nbsp;RenewResponse</h4></div></div></div><p>An answer to the RenewRequest message is RenewResponse. The
        message contains a termination time for the renewed
        Subscription.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
    <span class="bold"><strong> http://docs.oasis-open.org/wsn/bw-2/
      SubscriptionManager/RenewResponse</strong></span>
    &lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;wsnt:RenewResponse&gt;
     &lt;wsnt:TerminationTime&gt;
      <span class="bold"><strong>2007-07-25T10:24:14Z</strong></span>
     &lt;/wsnt:TerminationTime&gt;
     &lt;wsnt:CurrentTime&gt;
      <span class="bold"><strong>2007-07-24T10:24:14Z</strong></span>
     &lt;/wsnt:CurrentTime&gt;
    &lt;/wsnt:RenewResponse&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/
            SubscriptionManager/RenewResponse. <span class="emphasis"><em>If differ, a fault
            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
            (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-Notification's</em></span> time when the
            Subscription was renewing (expressed as UTC Time).</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e989"></a>3.5.5.&nbsp;UnsubscribeRequest</h4></div></div></div><p>When a Subscriber wants to terminate a Subscription, it has to
        send the UnsubscribeRequest message to
        <span class="emphasis"><em>QCG-Notification</em></span>. The parameter attached to this
        request is a Subscription ID.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/
      SubscriptionManager/UnsubscribeRequest</strong></span>
    &lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;wsnt:Unsubscribe&gt;
     &lt;smn-ext:SubscriptionID&gt;
      <span class="bold"><strong>506435877</strong></span>
     &lt;/smn-ext:SubscriptionID&gt;
    &lt;/wsnt:Unsubscribe&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/
            SubscriptionManager/UnsubscribeRequest. <span class="emphasis"><em>If differ, a
            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
            message.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1022"></a>3.5.6.&nbsp;UnsubscribeResponse</h4></div></div></div><p>UnsubscribeResponse is returned to a Subscriber after
        successfully processing the UnsubscribeRequest message.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstAand="1"&gt;
    <span class="bold"><strong> http://docs.oasis-open.org/wsn/bw-2/
      SubscriptionManager/UnsubscribeResponse</strong></span>
    &lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;wsnt:UnsubscribeResponse&gt;
    &lt;/wsnt:UnsubscribeResponse&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/
            SubscriptionManager/UnsubscribeResponse. <span class="emphasis"><em>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="d0e1043"></a>3.5.7.&nbsp;RegisterPublisherRequest</h4></div></div></div><p>In order to sending Notifications, a Publisher can be obligated
        to register himself previosly in
        <span class="emphasis"><em>QCG-Notification</em></span>. For this purpose, it sends the
        RegisterPublisherRequest message to
        <span class="emphasis"><em>QCG-Notification</em></span>.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://docs.oasis-open.org/wsn/brw-2/
      RegisterPublisher/RegisterPublisherRequest</strong></span>
    &lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;wsnbr:RegisterPublisher&gt;
     &lt;wsnbr:Demand&gt;
      <span class="bold"><strong>false</strong></span>
     &lt;/wsnbr:Demand&gt;
     &lt;wsnbr:InitialTerminationTime&gt;
      <span class="bold"><strong>2007-07-23T10:24:14+02:00</strong></span>
     &lt;/wsnbr:InitialTerminationTime&gt;
    &lt;/wsnbr:RegisterPublisher&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/brw-2/
            RegisterPublisher/RegisterPublisherRequest. <span class="emphasis"><em>If differ, a
            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
            isn't supported so default <span class="emphasis"><em>false</em></span> is the sole
            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
            suggestion for the termination time of the Registration being
            created (expressed as a local time with timezone). If not present,
            the termination time is determined automatically -
            <span class="emphasis"><em>QCG-Notification <span class="emphasis"><em>specify the default time
            period</em></span></em></span> for the Registration to be valid.
            Every Notify message renews the termination time.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1096"></a>3.5.8.&nbsp;RegisterPublisherResponse</h4></div></div></div><p>In a response to a successful registration process,
        <span class="emphasis"><em>QCG-Notification</em></span> sends RegisterPublisherResponse.
        This message contains a reference to the created Registration. The
        attached ID is necessary to send any Notification message.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://docs.oasis-open.org/wsn/brw-2/
      RegisterPublisher/RegisterPublisherResponse</strong></span>
    &lt;/wsa:Action&gt;
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;wsnbr:RegisterPublisherResponse&gt;
     &lt;wsnbr:PublisherRegistrationReference&gt;
      &lt;wsa:Address&gt;
         <span class="bold"><strong>http://some.address</strong></span>
      &lt;/wsa:Address&gt;
      &lt;wsa:ReferenceParameters&gt;
         <span class="bold"><strong>&lt;RegisterPublisherID 
        xmlns="http://schemas.qoscosgrid.org/ntf/2011/04/extensions"&gt;
          1207382668
         &lt;/RegisterPublisherID&gt;</strong></span>
      &lt;/wsa:ReferenceParameters&gt;
     &lt;/wsnbr:PublisherRegistrationReference&gt;
    &lt;/wsnbr:RegisterPublisherResponse&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/brw-2/RegisterPublisher/RegisterPublisherResponse.
            <span class="emphasis"><em>If differ, a fault will be
            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
            the current solution it is the
            <span class="emphasis"><em>QCG-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
            Registration ID. It defines a session that is created after
            registration and removed by sending the DestroyRegistration
            message. At this time it is at most 32 char long string.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1141"></a>3.5.9.&nbsp;Notify</h4></div></div></div><p>Notify consists of one or many NotificationMessages. Any of them
        is a separate Notification message and is processed independently.
        NotificationMessage should define a single Topic it concerns.
        TopicExpression should be written in the same Dialect that the
        Subscription was created in. The Publisher Registration ID has to be
        attached to Notify messages.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/
      NotificationConsumer/Notify</strong></span>
    &lt;/wsa:Action&gt;
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;wsnt:Notify&gt;
     &lt;wsnt:NotificationMessage&gt;
      &lt;wsnt:Topic 
       Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span><span class="bold"><strong> 
       xmlns:tns="<span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span>"&gt;
          tns:House/Kitchen/Light</strong></span>
      &lt;/wsnt:Topic&gt;
      &lt;wsnt:ProducerReference&gt;
       &lt;wsa:Address&gt;
        <span class="bold"><strong>http://some.address
       </strong></span>&lt;wsa:Address&gt;
      &lt;wsnt:ProducerReference&gt;
      &lt;wsnt:Message&gt;
         <span class="bold"><strong>&lt;smnex:State 
          xmlns:smnex="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"&gt;
             on
         &lt;/smnex:State&gt;</strong></span>
      &lt;/wsnt:Message&gt;
     &lt;/wsnt:NotificationMessage&gt;
     &lt;smn-ext:RegisterPublisherID&gt;
      <span class="bold"><strong>1207382668</strong></span>
     &lt;/smn-ext:RegisterPublisherID&gt;
    &lt;/wsnt:Notify&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/NotificationConsumer/Notify.
            <span class="emphasis"><em>If differ, a fault will be
            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
            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
            exactly one Topic in a specified Dialect type. The Topic should be
            supported. The Topic may be defined in two ways: (1) using
            prefixed form (e.g. tns:House/Kithchen/Light) - the topicNamespace
            is defined in a Topic element and assigned to some prefix (e.g.
            tns) or (2) using inline form (e.g.
            {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
            Dialect types are as follows:
            <span class="emphasis"><em>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple",
            "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete",
            "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
            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
            RegisterPublisherResponse message.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1225"></a>3.5.10.&nbsp;DestroyRegistrationRequest</h4></div></div></div><p>A Publisher can terminate a Registration by sending the
        DestroyRegistrationRequest message to
        <span class="emphasis"><em>QCG-Notification</em></span>. The parameter attached to this
        request is a Publisher Registration ID.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://docs.oasis-open-org/wsn/brw-2/
      PublisherRegistrationManager/DestroyRegistrationRequest</strong></span>
    &lt;/wsa:Action&gt;
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;wsnbr:DestroyRegistration&gt;
     &lt;smn-ext:RegisterPublisherID&gt;
      <span class="bold"><strong>387837036</strong></span>
     &lt;/smn-ext:RegisterPublisherID&gt;
    &lt;/wsnbr:DestroyRegistration&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/brw-2/
            PublisherRegistrationManager/DestroyRegistrationRequest.
            <span class="emphasis"><em>If differ, a fault will be
            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
            RegisterPublisherResponse message.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1258"></a>3.5.11.&nbsp;DestroyRegistrationResponse</h4></div></div></div><p>DestroyRegistrationResponse is returned to a Publisher after a
        successful process of destroying a Publisher Registration, in a
        response to the DestroyRegistration message.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://docs.oasis-open-org/wsn/brw-2/
      PublisherRegistrationManager/DestroyRegistrationResponse</strong></span>
    &lt;/wsa:Action&gt;
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;wsn-br:DestroyRegistrationResponse&gt;
    &lt;/wsn-br:DestroyRegistrationResponse&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/brw-2/
            PublisherRegistrationManager/DestroyRegistrationResponse.
            <span class="emphasis"><em>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="d0e1279"></a>3.5.12.&nbsp;CreatePullPointRequest</h4></div></div></div><p>In scenarios where the pull-style of notifications delivery is
        needed, Subscribers can create PullPoints. To do this, a Subscriber
        sends the CreatePullPointRequest message to <span class="emphasis"><em>QCG-Notification
        PullPoint</em></span>.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/
      CreatePullPoint/CreatePullPointRequest</strong></span>
    &lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;wsnt:CreatePullPoint&gt;
    &lt;/wsnt:CreatePullPoint&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/CreatePullPoint/CreatePullPointRequest.
            <span class="emphasis"><em>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="d0e1303"></a>3.5.13.&nbsp;CreatePullPointResponse</h4></div></div></div><p>The CreatePullPointResponse message is returned in a response to
        the request of PullPoint creation. This message contains a reference
        to the just created PullPoint. </p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/
      CreatePullPoint/CreatePullPointResponse</strong></span>
    &lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;wsnt:CreatePullPointResponse&gt;
      &lt;wsa:Address xmlns:wsa="http://www.w3.org/2005/08/addressing"&gt;
      <span class="bold"><strong> http://some.address:2211?ppID=1100992448</strong></span>
      &lt;/wsa:Address&gt;
    &lt;/wsnt:CreatePullPointResponse&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/CreatePullPoint/CreatePullPointResponse.
            <span class="emphasis"><em>If differ, a fault will be
            returned.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnt:CreatePullPointResponse/wsa:Address</em></span></p><p>An logical address of the created PullPoint.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1333"></a>3.5.14.&nbsp;GetMessages</h4></div></div></div><p>A Pull-style NotificationConsumer can get messages buffered in a
        PullPoint by invoking the GetMessages method. It sends the
        GetMessagesRequest message directly to the specified PullPoint. The
        message can contain a specification of a maximal number of
        Notification messages that NotificationConsumer wants to receive in
        the response.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/
      PullPoint/GetMessagesRequest</strong></span>
    &lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;wsnt:GetMessages&gt;
      &lt;wsnt:MaximumNumber&gt;<span class="bold"><strong>10</strong></span>&lt;/wsnt:MaximumNumber&gt;
    &lt;/wsnt:GetMessages&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/PullPoint/GetMessagesRequest.
            <span class="emphasis"><em>If differ, a fault will be
            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
            maximal number of messages that will be gotten from the
            PullPoint.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1366"></a>3.5.15.&nbsp;GetMessagesResponse</h4></div></div></div><p>GetMessagesResponse, a response message to GetMessages, consists
        of a set of Notifications received from the PullPoint.
        </p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/
      PullPoint/GetMessagesResponse</strong></span>
    &lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;wsnt:GetMessagesResponse&gt;
     &lt;wsnt:NotificationMessage&gt;
      &lt;wsnt:Topic 
       Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>&gt;
       <span class="bold"><strong>xmlns:tns="<span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span>"</strong></span>&gt;
          <span class="bold"><strong>tns:House/Kitchen/Light</strong></span>
      &lt;/wsnt:Topic&gt;
      &lt;wsnt:ProducerReference&gt;
       &lt;wsa:Address&gt;
        <span class="bold"><strong>http://some.address
       </strong></span>&lt;wsa:Address&gt;
      &lt;wsnt:ProducerReference&gt;
      &lt;wsnt:Message&gt;
         <span class="bold"><strong><span class="bold"><strong>&lt;smnex:State 
          xmlns:smnex="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"&gt;
             on
         &lt;/smnex:State&gt;</strong></span></strong></span>
      &lt;/wsnt:Message&gt;
     &lt;/wsnt:NotificationMessage&gt;
     &lt;wsnt:NotificationMessage&gt;
      ... 
     &lt;/wsnt:NotificationMessage&gt;
     ...
    &lt;/wsnt:GetMessagesResponse&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
              <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/PullPoint/GetMessagesResponse.
              <span class="emphasis"><em>If differ, a fault will be
              returned.</em></span></em></span></p></li><li><p>//wsnt:GetMessagesResponse</p><p>A set of Notification messages. The number of messages is
              restricted by the wsnt:MaximumNumber parameter defined in the
              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
              exactly one Topic in a specified Dialect type. The Topic should
              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
              Dialect types are as follows:
              <span class="emphasis"><em>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple",
              "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete",
              "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
              shorter than 4096 bytes.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1443"></a>3.5.16.&nbsp;DestroyPullPointRequest</h4></div></div></div><p>A PullPoint can be destroyed by invoking a DestroyPullPoint
        method. An empty request message should be sent directly to the
        PullPoint.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/
      PullPoint/DestroyPullPointRequest</strong></span>
    &lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;wsnt:DestroyPullPoint&gt;
    &lt;/wsnt:DestroyPullPoint&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/PullPoint/DestroyPullPointRequest.
            <span class="emphasis"><em>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="d0e1464"></a>3.5.17.&nbsp;DestroyPullPointResponse</h4></div></div></div><p>A response to a DestroyPullPointRequest message is an empty
        DestroyPullPointResponse message.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/
      PullPoint/DestroyPullPointResponse</strong></span>
    &lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;wsnt:DestroyPullPointResponse&gt;
    &lt;/wsnt:DestroyPullPointResponse&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/PullPoint/DestroyPullPointResponse.
            <span class="emphasis"><em>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="d0e1485"></a>3.5.18.&nbsp;GetCurrentMessageRequest</h4></div></div></div><p>GetCurrentMessageRequest is useful especially when a new
        NotificationConsumer is connecting and want to get the last published
        Notification Message on a specified Topic. Single GetCurrentMessage
        should refer exactly one Topic and has to be expressed in a supported
        Dialect type.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/
      NotificationProducer/GetCurrentMessageRequest</strong></span>
    &lt;/wsa:Action&gt;
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;wsnt:GetCurrentMessage&gt;
     &lt;wsnt:Topic 
      Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>&gt;
        <span class="bold"><strong>xmlns:tns="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics"</strong></span>&gt;
         <span class="bold"><strong>tns:</strong></span><span class="bold"><strong>House/Kitchen/Light</strong></span>
     &lt;/wsnt:Topic&gt;
    &lt;/wsnt:GetCurrentMessage&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/
            NotificationProducer/GetCurrentMessageRequest. <span class="emphasis"><em>If
            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
            exactly one Topic in a specified Dialect type. The topic should be
            supported. The Topic may be defined in two ways: (1) using
            prefixed form (e.g. tns:House/Kithchen/Light) - the topicNamespace
            is defined in a Topic element and assigned to some prefix (e.g.
            tns) or (2) using inline form (e.g.
            {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
            dialect's types are as follows:
            <span class="emphasis"><em>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple",
            "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete",
            "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full".
            </em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1532"></a>3.5.19.&nbsp;GetCurrentMessageResponse</h4></div></div></div><p>In a response to GetCurrentMessageRequest
        <span class="emphasis"><em>QCG-Notification</em></span> prepares
        GetCurrentMessageResponse. This message includes the content of the
        last Notification GetCurrentMessageRequest refers to.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/
      NotificationProducer/GetCurrentMessageResponse</strong></span>
    &lt;/wsa:Action&gt;
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;wsnt:GetCurrentMessageResponse&gt;
     &lt;smn-ext:CurrentMessage&gt;
      &lt;smn-ext:NotifyTime&gt;
         <span class="bold"><strong>2007-07-23T10:43:14Z</strong></span>
      &lt;/smn-ext:NotifyTime&gt;
      &lt;wsnt:ProducerReference&gt;
       &lt;wsa:Address&gt;
        <span class="bold"><strong>http://some.address
       </strong></span>&lt;wsa:Address&gt;
      &lt;wsnt:ProducerReference&gt; 
      &lt;smn-ext:Message&gt;
         <span class="bold"><strong><span class="bold"><strong>&lt;smnex:State 
          xmlns:smnex="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"&gt;
             on
         &lt;/smnex:State&gt;</strong></span></strong></span>
      &lt;/smn-ext:Message&gt;
     &lt;/smn-ext:CurrentMessage&gt;
    &lt;/wsnt:GetCurrentMessageResponse&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/
            NotificationProducer/GetCurrentMessageResponse. <span class="emphasis"><em>If
            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
            Notification and information related to this
            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-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
            this element is the last Notification message published to the
            Topic specified in GetCurrentMessageRequest. Currently supported
            are messages shorter than 4096 bytes.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1598"></a>3.5.20.&nbsp;ListSubscriptions</h4></div></div></div><p>The first method from the the group of administrative methods.
        It may be invoked to get an information about available subscriptions
        in the <span class="emphasis"><em>QCG-Notification</em></span> service. The method
        consists of various filtering parameters.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/
     QCGNotificationManager/ListSubscriptionsRequest</strong></span>
    &lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;smn-ext:ListSubscriptions&gt;
     &lt;smn-ext:Filter&gt;
      &lt;smn-ext:SubscriptionID&gt;
       <span class="bold"><strong>1568334</strong></span>
      &lt;/smn-ext:SubscriptionID&gt;
      &lt;smn-ext:ConsumerReference&gt;
       &lt;wsa:Address&gt;
        <span class="bold"><strong>http://localhost:2233</strong></span>
       &lt;/wsa:Address&gt;
      &lt;/smn-ext:ConsumerReference&gt;
      &lt;smn-ext:CreationTimeMin&gt;
       <span class="bold"><strong>2010-07-09T08:21:58Z</strong></span>
      &lt;/smn-ext:CreationTimeMin&gt;
      &lt;smn-ext:CreationTimeMax&gt;
       <span class="bold"><strong>2010-07-09T10:21:58Z</strong></span>
      &lt;/smn-ext:CreationTimeMax&gt;
      &lt;smn-ext:TerminationTimeMin&gt;
       <span class="bold"><strong>2010-07-09T08:21:58Z</strong></span>
      &lt;/smn-ext:TerminationTimeMin&gt;
      &lt;smn-ext:TerminationTimeMax&gt;
       <span class="bold"><strong>2010-07-09T10:21:58Z</strong></span>
      &lt;/smn-ext:TerminationTimeMax&gt;
      &lt;wsnt:Filter&gt;
       &lt;wsnt:MessageContent 
        <span class="bold"><strong>xmlns:smnex="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"</strong></span> 
        Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116"&gt;
         <span class="bold"><strong>boolean(//smnex:State[text()="on"])</strong></span>
       &lt;/wsnt:MessageContent&gt;
       &lt;wsnt:TopicExpression 
        <span class="bold"><strong>xmlns:tns="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics"</strong></span> 
        Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>&gt;
         <span class="bold"><strong>tns://*</strong></span>
       &lt;/wsnt:TopicExpression&gt;
      &lt;/wsnt:Filter&gt;
     &lt;/smn-ext:Filter&gt;
    &lt;/smn-ext:ListSubscriptions&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListSubscriptionsRequest.
            <span class="emphasis"><em>If differ, a fault will be
            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-Notification</em></span> schema. It consists of a
            number of 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
            Subscriptions may be simply filtered on the basis of Subscription
            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
            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
            </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
            parameters related to lifetime of a Subscription, respectively:
            minimal creation time, maximal creation time, minimal termination
            time and maximal termination time. The content of these elements
            is a time expressed as a local time with a
            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
            Subscribe message. In this method it is utilized to filter
            Subscriptions on the basis of notification filtering
            parameters.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1700"></a>3.5.21.&nbsp;ListSubscriptionsResponse</h4></div></div></div><p>The message is sent in the response to ListSubscriptions. It
        includes a list of information sets about available and propably
        filtered Subscriptions.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/
     QCGNotificationManager/ListSubscriptionsResponse
    </strong></span>&lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;smn-ext:ListSubscriptionsResponse&gt;
     &lt;smn-ext:Subscription&gt;
      &lt;smn-ext:SubscriptionID&gt;
       <span class="bold"><strong>16807
      </strong></span>&lt;/smn-ext:SubscriptionID&gt;
      &lt;smn-ext:ConsumerReference&gt;
       &lt;wsa:Address&gt;
        <span class="bold"><strong>http://localhost:2233</strong></span>
       &lt;/wsa:Address&gt;
      &lt;/smn-ext:ConsumerReference&gt;
      &lt;smn-ext:CreationTime&gt;
       <span class="bold"><strong>2010-07-09T09:21:48Z
      </strong></span>&lt;/smn-ext:CreationTime&gt;
      &lt;smn-ext:TerminationTime&gt;
       <span class="bold"><strong>2010-07-09T09:21:48Z</strong></span>
      &lt;/smn-ext:TerminationTime&gt;
      &lt;wsnt:Filter&gt;
       &lt;wsnt:MessageContent 
        <span class="bold"><strong>xmlns:smnex="</strong></span><span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"</strong></span> 
        Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116"&gt;
        <span class="bold"><strong>boolean(//smnex:State[text()="on"])</strong></span>
       &lt;/wsnt:MessageContent&gt;
       &lt;wsnt:TopicExpression <span class="bold"><strong>
        xmlns:tns="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics"</strong></span> 
        Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>&gt;
         <span class="bold"><strong>tns://*
       </strong></span>&lt;/wsnt:TopicExpression&gt;
      &lt;/wsnt:Filter&gt;
     &lt;/smn-ext:Subscription&gt;
     &lt;smn-ext:Subscription&gt;
      ...
     &lt;/smn-ext:Subscription&gt;
    ...
    &lt;/smn-ext:ListSubscriptionsResponse&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListSubscriptionsResponse.
            <span class="emphasis"><em>If differ, a fault will be
            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
            <span class="emphasis"><em>QCG-Notification</em></span> (propably also filtered on
            the basis of the smn-ext:Filter element sent in
            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
            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
            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
            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
            Subscription. The content of these elements is a time expressed as
            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
            Subscribe message. It specifies Notification filtering parameters
            of a Subscription.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1797"></a>3.5.22.&nbsp;ListPublishersRegistrations</h4></div></div></div><p>The next method from the the group of administrative methods. It
        may be utilized to list Publishers Registrations. The method consists
        of several filtering parameters.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/
     QCGNotificationManager/ListPublishersRegistrationsRequest</strong></span>
    &lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;smn-ext:ListPublishersRegistrations&gt;
     &lt;smn-ext:Filter&gt;
      &lt;smn-ext:PublisherRegistrationID&gt;
       <span class="bold"><strong>984943658</strong></span>
      &lt;/smn-ext:PublisherRegistrationID&gt;
      &lt;smn-ext:PublisherReference&gt;
       &lt;wsa:Address&gt;
        <span class="bold"><strong>127.0.0.1</strong></span>
       &lt;/wsa5:Address&gt;
      &lt;/smn-ext:PublisherReference&gt;
      &lt;smn-ext:CreationTimeMin&gt;
       <span class="bold"><strong>2010-07-08T09:37:04Z</strong></span>
      &lt;/smn-ext:CreationTimeMin&gt;
      &lt;smn-ext:CreationTimeMax&gt;
       <span class="bold"><strong>2010-07-08T11:37:04Z</strong></span>
      &lt;/smn-ext:CreationTimeMax&gt;
      &lt;smn-ext:TerminationTimeMin&gt;
       <span class="bold"><strong>2010-07-08T09:37:04Z</strong></span>
      &lt;/smn-ext:TerminationTimeMin&gt;
      &lt;smn-ext:TerminationTimeMax&gt;
       <span class="bold"><strong>2010-07-08T11:37:04Z</strong></span>
      &lt;/smn-ext:TerminationTimeMax&gt;
     &lt;/smn-ext:Filter&gt;
    &lt;/smn-ext:ListPublishersRegistrations&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListPublishersRegistrationsRequest.
            <span class="emphasis"><em>If differ, a fault will be
            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>
            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
            filtering of Publisher Registrations based on Publishers
            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
            Publishers. Depending on configuration, this address may be held
            in the <span class="emphasis"><em>QCG-Notification</em></span> service as an address
            sent in the From element of WSA Header of RegisterPublisher
            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
            </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
            related to lifetime of a Publisher Registration, respectively:
            minimal creation time, maximal creation time, minimal termination
            time and maximal termination time. The content of these elements
            is a time expressed as a local time with a
            timezone.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1878"></a>3.5.23.&nbsp;ListPublisherRegistrationsResponse</h4></div></div></div><p>The response message to ListPublishersRegistrations. It includes
        a list of information sets about Publishers Registrations.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/
     QCGNotificationManager/ListPublishersRegistrationsResponse
    </strong></span>&lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;smn-ext:ListPublishersRegistrationsResponse&gt;
     &lt;smn-ext:PublisherRegistration&gt;
      &lt;smn-ext:PublisherRegistrationID&gt;
       <span class="bold"><strong>16807
      </strong></span>&lt;/smn-ext:PublisherRegistrationID&gt;
      &lt;smn-ext:PublisherReference&gt;
       &lt;wsa:Address&gt;
        <span class="bold"><strong>http://localhost:2233</strong></span>
       &lt;/wsa:Address&gt;
      &lt;/smn-ext:PublisherReference&gt;
      &lt;smn-ext:CreationTime&gt;
       <span class="bold"><strong>2010-07-09T09:21:48Z
      </strong></span>&lt;/smn-ext:CreationTime&gt;
      &lt;smn-ext:TerminationTime&gt;
       <span class="bold"><strong>2010-07-09T09:21:48Z</strong></span>
      &lt;/smn-ext:TerminationTime&gt;
     &lt;/smn-ext:PublisherRegistration&gt;
     &lt;smn-ext:PublisherRegistration&gt;
      ...
     &lt;/smn-ext:PublisherRegistration&gt;
    ...
    &lt;/smn-ext:ListPublishersRegistrationsResponse&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListPublishersRegistrationsResponse.
            <span class="emphasis"><em>If differ, a fault will be
            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
            received from <span class="emphasis"><em>QCG-Notification</em></span> (propably also
            filtered on the basis of the smn-ext:Filter element sent in a
            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
            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
            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
            From element of WSA Header of a RegisterPublisher message or an IP
            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
            Publisher Registration. The content of these elements is a time
            expressed as UTC time.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1952"></a>3.5.24.&nbsp;ListPullPoints</h4></div></div></div><p>The next administrative method. It enables listing of available
        PullPoints. The method consists of several optional filtering
        parameters.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/
     QCGNotificationManager/ListPullPointsRequest</strong></span>
    &lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;smn-ext:ListPullPoints&gt;
     &lt;smn-ext:Filter&gt;
      &lt;smn-ext:PullPointID&gt;
       <span class="bold"><strong>9342232</strong></span>
      &lt;/smn-ext:PullPointID&gt;
      &lt;smn-ext:PullPointReference&gt;
       &lt;wsa:Address&gt;
        <span class="bold"><strong>http://localhost:2211?ppID=9342232</strong></span>
       &lt;/wsa5:Address&gt;
      &lt;/smn-ext:PullPointReference&gt;
      &lt;smn-ext:CreationTimeMin&gt;
       <span class="bold"><strong>2010-07-08T09:38:03Z</strong></span>
      &lt;/smn-ext:CreationTimeMin&gt;
      &lt;smn-ext:CreationTimeMax&gt;
       <span class="bold"><strong>2010-07-08T11:38:03Z</strong></span>
      &lt;/smn-ext:CreationTimeMax&gt;
      &lt;smn-ext:TerminationTimeMin&gt;
       <span class="bold"><strong>2010-07-08T09:38:03Z</strong></span>
      &lt;/smn-ext:TerminationTimeMin&gt;
      &lt;smn-ext:TerminationTimeMax&gt;
       <span class="bold"><strong>2010-07-08T11:38:03Z</strong></span>
      &lt;/smn-ext:TerminationTimeMax&gt;
     &lt;/smn-ext:Filter&gt;
    &lt;/smn-ext:ListPullPoints&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListPullPointsRequest.
            <span class="emphasis"><em>If differ, a fault will be
            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>
            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
            PullPoints based on PullPoint ID. The value is at most 32 char
            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
            PullPoint. The PullPoint address is assigned after creation of a
            PullPoint in <span class="emphasis"><em>QCG-Notification</em></span> and returned
            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
            </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
            related to PullPoint lifetime, respectively: minimal creation
            time, maximal creation time, minimal termination time and maximal
            termination time. The content of these elements is a time
            expressed as a local time with a
            timezone.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2033"></a>3.5.25.&nbsp;ListPullPointsResponse</h4></div></div></div><p>The response message to ListPullPoints. It includes a list of
        information sets about filtered Pullpoints.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/
     QCGNotificationManager/ListPullPointsResponse
    </strong></span>&lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;smn-ext:ListPullPointsResponse&gt;
     &lt;smn-ext:PullPoint&gt;
      &lt;smn-ext:PullPointID&gt;
       <span class="bold"><strong>9342232
      </strong></span>&lt;/smn-ext:PullPointID&gt;
      &lt;smn-ext:PullPointReference&gt;
       &lt;wsa:Address&gt;
        <span class="bold"><strong>http://localhost:2211?ppID=9342232</strong></span>
       &lt;/wsa:Address&gt;
      &lt;/smn-ext:PullPointReference&gt;
      &lt;smn-ext:CreationTime&gt;
       <span class="bold"><strong>2010-07-09T09:31:28Z
      </strong></span>&lt;/smn-ext:CreationTime&gt;
      &lt;smn-ext:TerminationTime&gt;
       <span class="bold"><strong>2010-07-09T09:31:28Z</strong></span>
      &lt;/smn-ext:TerminationTime&gt;
     &lt;/smn-ext:PullPoint&gt;
     &lt;smn-ext:PullPoint&gt;
      ...
     &lt;/smn-ext:PullPoint&gt;
    ...
    &lt;/smn-ext:ListPullPointsResponse&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListPullPointsResponse.
            <span class="emphasis"><em>If differ, a fault will be
            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
            <span class="emphasis"><em>QCG-Notification</em></span> (propably also previously
            filtered on the basis of the smn-ext:Filter element sent in a
            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
            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
            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
            same adress as the address from a corresponding
            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
            PullPoint. The content of these elements is a time 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="d0e2107"></a>3.5.26.&nbsp;ListTopicNamespaces</h4></div></div></div><p>An administrative method. It is designed to listing available
        Topic Namespaces and Topics assigned to this namespaces.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/
     QCGNotificationManager/ListTopicNamespacesRequest</strong></span>
    &lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;smn-ext:ListTopicNamespaces&gt;
     &lt;smn-ext:Filter&gt;
      &lt;smn-ext:targetNamespace&gt;
       <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span>
      &lt;/smn-ext:targetNamespace&gt;
     &lt;/smn-ext:Filter&gt;
    &lt;/smn-ext:ListTopicNamespaces&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListTopicNamespacesRequest.
            <span class="emphasis"><em>If differ, a fault will be
            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>
            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
            enables filtering of TopicNamespaces based on their
            targetNamespace names.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2147"></a>3.5.27.&nbsp;ListTopicNamespacesResponse</h4></div></div></div><p>The response message to ListTopicNamespaces. The message
        consists of information sets for each filtered TopicNamespace. A
        single set includes targetNamespaces and a list of topics.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/
     QCGNotificationManager/ListPullPointsResponse
    </strong></span>&lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;smn-ext:ListTopicNamespacesResponse&gt;
     &lt;smn-ext:TopicNamespace&gt;
      &lt;smn-ext:targetNamespace&gt;
       <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span><span class="bold"><strong>
      </strong></span>&lt;/smn-ext:targetNamespace&gt;
      &lt;smn-ext:Topic&gt;
       <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics/House</strong></span>
      &lt;/smn-ext:Topic&gt;
      &lt;smn-ext:Topic&gt;
       ...
      &lt;smn-ext:Topic&gt;
      ...
     &lt;/smn-ext:TopicNamespace&gt;
     &lt;smn-ext:TopicNamespace&gt;
      ...
     &lt;/smn-ext:TopicNamespace&gt;
    ...
    &lt;/smn-ext:ListTopicNamespacesResponse&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListTopicNamespacesResponse.
            <span class="emphasis"><em>If differ, a fault will be
            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
            TopicNamespaces received from
            <span class="emphasis"><em>QCG-Notification</em></span> (optionally filtered on the
            basis of the smn-ext:Filter element sent in a ListTopicNamespaces
            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
            information about a single
            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
            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
            topic is proceded by a targetNamespace so it is uniq.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2206"></a>3.5.28.&nbsp;AddTopicNamespace</h4></div></div></div><p>An administrative method. The method may be invoked to add a new
        TopicNamespace to the <span class="emphasis"><em>IQCG-Notification</em></span>.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/
     QCGNotificationManager/AddTopicNamespaceRequest</strong></span>
    &lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;smn-ext:AddTopicNamespace&gt;
     &lt;wstop:TopicNamespace 
      targetNamespace="<span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics2</strong></span>"&gt;
      &lt;wstop:Topic final="false" name="<span class="bold"><strong>House</strong></span>"&gt;
       &lt;wstop:Topic ...&gt;
        ...
       &lt;/wstop:Topic&gt;
       ...
      &lt;/wstop:Topic&gt;
      ...
     &lt;/wstop:TopicNamespace&gt;
    &lt;/smn-ext:AddTopicNamespace&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/AddTopicNamespaceRequest.
            <span class="emphasis"><em>If differ, a fault will be
            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
            WS-Topics schema.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2243"></a>3.5.29.&nbsp;AddTopicNamespaceResponse</h4></div></div></div><p>A response message to a AddTopicNamespaceRequest. It is empty
        and only confirms successfull addition of a TopicNamespace to the
        <span class="emphasis"><em>QCG-Notification</em></span> service. </p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/
      PullPoint/AddTopicNamespaceResponse</strong></span>
    &lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;smn-ext:AddTopicNamespaceResponse&gt;
    &lt;/smn-ext:AddTopicNamespaceResponse&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/AddTopicNamespaceResponse.</em></span><span class="emphasis"><em><span class="emphasis"><em>
            If differ, a fault will be returned.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2268"></a>3.5.30.&nbsp;RemoveTopicNamespace</h4></div></div></div><p>The next administrative method. It is used to remove a
        TopicNamespace from the <span class="emphasis"><em>QCG-Notification</em></span> system.
        Note that the removing may be only temporary (active to the restart of
        the system) if the TopicNamespace file is protected by disabling write
        permission.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/
     QCGNotificationManager/RemoveTopicNamespaceRequest</strong></span>
    &lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;smn-ext:RemoveTopicNamespace&gt;
     &lt;smn-ext:targetNamespace&gt;
      <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics2/House</strong></span>
     &lt;/smn-ext:targetNamespace&gt;
    &lt;/smn-ext:RemoveTopicNamespace&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/RemoveTopicNamespaceRequest.
            <span class="emphasis"><em>If differ, a fault will be
            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
            remove - anyURI.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2302"></a>3.5.31.&nbsp;RemoveTopicNamespaceResponse</h4></div></div></div><p>A response message to a RemoveTopicNamespaceRequest. It is empty
        and confirms the successfull deletion of a TopicNamespace.
        </p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt;
   &lt;SOAP-ENV:Header&gt;
    &lt;wsa:Action SOAP-ENV:mustUnderstand="1"&gt;
     <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/
      PullPoint/RemoveTopicNamespaceResponse</strong></span>
    &lt;/wsa:Action&gt;
    ...
   &lt;/SOAP-ENV:Header&gt;
   &lt;SOAP-ENV:Body&gt;
    &lt;smn-ext:RemoveTopicNamespaceResponse&gt;
    &lt;/smn-ext:RemoveTopicNamespaceResponse&gt;
   &lt;/SOAP-ENV:Body&gt;
&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:
            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/RemoveTopicNamespaceResponse.</em></span><span class="emphasis"><em><span class="emphasis"><em>
            If differ, a fault will be returned.</em></span></em></span></p></li></ul></div></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e2324"></a>4.&nbsp;Administration Guide of
    <span class="emphasis"><em>QCG-Notification</em></span></h2></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2329"></a>4.1.&nbsp;Prerequisites</h3></div></div></div><p>In order to build and install
      <span class="emphasis"><em>QCG-Notification</em></span>, an administrator has to
      appropriately configure operating system. There is some dependencies to
      external software that should be satisfied.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2337"></a>4.1.1.&nbsp;QCG Core library</h4></div></div></div><p><span class="emphasis"><em>QCG-Notification</em></span> is based on the
        <span class="emphasis"><em>QCG Core</em></span> library developed by the
        <span class="emphasis"><em>QCG</em></span> team. QCG Core is a common utility library
        providing set of basic modules used by other components within QCG
        Project. For more information see QCG Core documentation.</p><p>The QCG Core library should be properly configured prior to the
        preparation of <span class="emphasis"><em>QCG-Notification</em></span>.</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2355"></a>4.2.&nbsp;Building</h3></div></div></div><p>Before you compile <span class="emphasis"><em>QCG-Notification</em></span>, you need
      to run the configuration script first. It will try to check if all the
      requirements are met and whether needed third party software is
      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
      type the --help parameter you will see all available options. These are
      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-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
            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
            build</p></li><li><p>--with-addressing-handler</p><p>Determine if the test Web Services Addressing handler
            service should be build</p></li></ul></div><p>After successful configuration step, compiling and
      installing of <span class="emphasis"><em>QCG-Notification</em></span> should be a
      straightforward process:</p><pre class="programlisting">$ make
$ 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
        <code class="filename">root</code> or the user that will execute
        <span class="emphasis"><em>QCG-Notification</em></span> service, assuming he has
        necessary privileges to do this.</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2416"></a>4.3.&nbsp;Creating database for <span class="emphasis"><em>QCG-Notification</em></span> - the
      PostgreSQL example</h3></div></div></div><p><span class="emphasis"><em>QCG-Notification</em></span> can be run in two basic
      modes related to the database connection: without database or with
      database. Although the first option is sufficient for simple scenarios,
      it reduces the overall functionality of the
      <span class="emphasis"><em>QCG-Notification</em></span> (e.g. disable PullPoints).
      Therefore using the database is recomended and can be often
      essential.</p><p>You will find more detailed description of administrative tasks in
      PostgreSQL tutorial. However, the following basic steps are needed to
      set up a database and appropriate tables for
      <span class="emphasis"><em>QCG-Notification</em></span> assuming that you have already
      setup a PostgreSQL database:</p><p>By default, the first database user created will also be named
      <code class="filename">postgres</code>. In order to create a user for
      <span class="emphasis"><em>QCG-Notification</em></span> usage, for instance
      <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
      <code class="filename">qcg-ntfd.xml</code> configuration file. Create a database,
      for example <code class="filename">qcg-ntf</code>, by typing the following
      command:</p><pre class="programlisting">$ createdb qcg-ntf</pre><p>and set up a table structure using the
      <code class="filename">qcg-ntf-psql.sql</code> file from
      <span class="emphasis"><em>QCG-Notification</em></span> distribution - it can be found in
      <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
      Name. You can do this by editing system-wide configuration file (e.g.
      <code class="filename">/etc/odbc.ini)</code> or <code class="filename">.odbc.ini</code> in
      home directory of the user that will be used to start
      <span class="emphasis"><em>QCG-Notification</em></span>.</p><p>Assuming that ODBC are installed in /usr/local/lib and the choosed
      name for <span class="emphasis"><em>QCG-Notification</em></span> is
      <code class="filename">qcg-ntf</code> the configuration file should looks
      simmilar to the following:</p><pre class="programlisting">[qcg-ntf]
Description     = QCG-Notification database
Driver        = /usr/local/lib/libodbcpsql.so
Setup         = /usr/local/lib/libodbcpsqlS.so
Database      = qcg-ntf
Servername      = localhost
Port        = 5432
ReadOnly      = No
Trace         = 0
TraceFile       = odbc.trace
Debug         = 0
DebugFile       = odbc.debug</pre><p>You can also try some GUI tools to set up and manage ODBC and
      databases. Check out if the following tools are available on your
      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="configuration"></a>5.&nbsp;Configuration of <span class="emphasis"><em>QCG-Notification</em></span></h2></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2506"></a>5.1.&nbsp;Configuration File: <code class="filename">qcg-ntfd.xml</code></h3></div></div></div><pre class="programlisting">&lt;sm:QCGCore
  xmlns:sm="http://schemas.qoscosgrid.org/core/2011/04/config"
  xmlns="http://schemas.qoscosgrid.org/ntf/2011/04/config"
  xmlns:smn="http://schemas.qoscosgrid.org/ntf/2011/04/config" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;

  &lt;Configuration&gt;
    &lt;sm:ModuleManager&gt;
      &lt;sm:Directory&gt;/opt/qcg/lib/qcg-core/modules&lt;/sm:Directory&gt;
      &lt;sm:Directory&gt;/opt/qcg/lib/modules&lt;/sm:Directory&gt;
    &lt;/sm:ModuleManager&gt;

    &lt;sm:Service xsi:type="ntfd" description="QCG-Notification"&gt;
      &lt;sm:Logger&gt;
        &lt;sm:Filename&gt;/opt/qcg/var/log/qcg-ntf/qcg-ntfd.log&lt;/sm:Filename&gt;
        &lt;sm:Level&gt;DEBUG&lt;/sm:Level&gt;
      &lt;/sm:Logger&gt;

      &lt;sm:Transport&gt;    
        &lt;sm:Module xsi:type="sm:ecm_gsoap.service"&gt;
          &lt;sm:Host&gt;localhost&lt;/sm:Host&gt;
          &lt;sm:Port&gt;2211&lt;/sm:Port&gt;
          &lt;sm:UseWSA&gt;true&lt;/sm:UseWSA&gt;
        &lt;/sm:Module&gt;
        &lt;sm:Module xsi:type="smn:ntf-service-gsoap"/&gt;
      &lt;/sm:Transport&gt;

      &lt;sm:Authentication&gt;
        &lt;sm:Module xsi:type="sm:atc_transport_http"/&gt;
      &lt;/sm:Authentication&gt;
      
      &lt;sm:Module xsi:type="smn:ntf-publisher-gsoap-anonymous"&gt;
        &lt;UseWSA&gt;true&lt;/UseWSA&gt;
        &lt;RecvTimeout&gt;10&lt;/RecvTimeout&gt;
        &lt;SendTimeout&gt;10&lt;/SendTimeout&gt;
      &lt;/sm:Module&gt;
      
      &lt;sm:Module xsi:type="smn:ntf-publisher-gsoap-ssl"&gt;
        &lt;UseWSA&gt;true&lt;/UseWSA&gt;
        &lt;RecvTimeout&gt;10&lt;/RecvTimeout&gt;
        &lt;SendTimeout&gt;10&lt;/SendTimeout&gt;
        &lt;X509CertKeyFile&gt;/opt/qcg/etc/ssl/broker.pem&lt;/X509CertKeyFile&gt;
        &lt;X509KeyPass&gt;somepass&lt;/X509KeyPass&gt;
        &lt;sm:TrustedCAFile&gt;/opt/qcg/etc/ssl/certs/qcg-ntf/ca.pem&lt;/sm:TrustedCAFile&gt;
      &lt;/sm:Module&gt;
      
      &lt;Core&gt;
        &lt;NotificationsVar&gt;
          &lt;TopicNsDir&gt;/opt/qcg/etc/topicns&lt;/TopicNsDir&gt;
          &lt;StrictCorrectnessCheckingEnabled&gt;false&lt;/StrictCorrectnessCheckingEnabled&gt;
          &lt;SubscriptionManager&gt;
             &lt;ContentFilteringEnabled&gt;true&lt;/ContentFilteringEnabled&gt;
             &lt;SubscriptionPolicy&gt;DUPLICATE&lt;/SubscriptionPolicy&gt;
             &lt;DialectConsistencyRequired&gt;true&lt;/DialectConsistencyRequired&gt;
             &lt;SubscriptionPeriod&gt;10&lt;/SubscriptionPeriod&gt;
             &lt;RefreshRate&gt;3600&lt;/RefreshRate&gt;
          &lt;/SubscriptionManager&gt;
          &lt;PublisherManager&gt;
             &lt;RegistrationRequired&gt;false&lt;/RegistrationRequired&gt;
             &lt;RegistrationPeriod&gt;10&lt;/RegistrationPeriod&gt;
             &lt;RefreshRate&gt;3600&lt;/RefreshRate&gt;
          &lt;/PublisherManager&gt;
          &lt;PullPointManager&gt;
             &lt;PullPointsEnabled&gt;true&lt;/PullPointsEnabled&gt;
             &lt;PullPointSize&gt;100&lt;/PullPointSize&gt;
             &lt;PullPointPeriod&gt;10&lt;/PullPointPeriod&gt;
             &lt;RefreshRate&gt;3600&lt;/RefreshRate&gt;
          &lt;/PullPointManager&gt;
          &lt;Publishing&gt;
             &lt;NotificationsBufferEnabled&gt;true&lt;/NotificationsBufferEnabled&gt;
             &lt;NotificationsBufferSize&gt;1000&lt;/NotificationsBufferSize&gt;
             &lt;NotificationsResendingRate&gt;60&lt;/NotificationsResendingRate&gt;
             &lt;MaxSendTries&gt;5&lt;/MaxSendTries&gt;
          &lt;/Publishing&gt;
        &lt;/NotificationsVar&gt;
        
        &lt;Database&gt;
          &lt;DatabaseEnabled&gt;true&lt;/DatabaseEnabled&gt;
          &lt;DSN&gt;qcg-ntf&lt;/DSN&gt;
          &lt;User&gt;qcg-ntf&lt;/User&gt;
          &lt;Password&gt;qcg-ntf&lt;/Password&gt;
          &lt;CleanAtStart&gt;false&lt;/CleanAtStart&gt;
        &lt;/Database&gt;
      &lt;/Core&gt;  
    
    &lt;/sm:Service&gt;
    
  &lt;/Configuration&gt;
&lt;/sm:QCGCore&gt;</pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//sm:ModuleManager/sm:Directory
          <span class="emphasis"><em>[string]</em></span></em></span></p><p>Directories with modules that will be used in the
          service.</p></li><li><p><span class="emphasis"><em>//sm:Service
          <span class="emphasis"><em>[sm:QCGBaseServiceType]</em></span></em></span></p><p>Configuration of the services. It is possible to configure
          many instances of the service in the one configuration file.</p></li><li><p><span class="emphasis"><em>//sm:Service/sm:Logger</em></span>
          [sm:LoggerType]</p><p>Configuration of the logging.</p></li><li><p><span class="emphasis"><em>//sm:Service/sm:Logger/sm:FileName
          <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
          <span class="emphasis"><em>[enumeration]</em></span></em></span></p><p>DEBUG, INFO, NOTICE, WARNING, ERROR, CRIT, EMERG - filter less
          important messages.</p></li><li><p><span class="emphasis"><em>//sm:Service/sm:Transport</em></span>
          [sm:TransportType]</p><p>This element aggregates configuration of transport modules. At
          least one module of type ecm* should by specified in this place. For
          full list of supported ecm* modules see the QCG Core
          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
          important configuration covers such aspects as host and port where
          the service will be listening. The instruction of using other
          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
          service. This option shouldn't be changed.</p></li><li><p><span class="emphasis"><em>//sm:Service/sm:Authentication</em></span>
          [sm:AuthenticationType]</p><p>Configuration of authentication modules for the service. For
          full list of supported authentication modules see the QCG Core
          documentation (the most basic are: sm:atc_transport_http for
          anonymous communication and sm:atc_transport_https for SSL based
          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
          Publisher side of <span class="emphasis"><em>QCG-Notification</em></span>. The
          following modules are currently supported:</p><div class="itemizedlist"><ul type="circle"><li><p>smn:ntf-publisher-gsoap-anonymous for anonymous SOAP
              communication;</p></li><li><p>smn:ntf-publisher-gsoap-ssl for SSL based SOAP
              communication;</p></li><li><p>smn:ntf-publisher-xmpp for XMPP communication;</p></li><li><p>smn:ntf-publisher-smtp for SMTP communication;</p></li></ul></div><p>For details see the <a class="link" href="#moduleoptions" title="5.2.&nbsp;Module configuration">Section
          5.2</a>.</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar
          </em></span>[smn:NotificationsVarType]</p><p>Various notification settings closely related to
          QCG-Notification service implementation.</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:TopicNsDir
          <span class="emphasis"><em>[string]</em></span></em></span></p><p>Location of the directory with files containing Topic
          definitions.</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:StrictCorrectnessCheckingEnabled</em></span>
          [boolean]</p><p>true, false - determines a strict validation of incoming
          messages; if true, it allows receiving detailed information about
          faults but it causes greatest delays; if false, then faults
          processing is minimal and delays are smaller. Default: false</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:SubscriptionManager/
          </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>
          [boolean]</p><p>true, false - determines if a content filtering of
          notification messages can be used; if true, Subscribers can specify
          content filters in their Subscriptions, if false, it is dissallowed.
          Default: true</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:SubscriptionManager/smn:SubscriptionPolicy</em></span>
          [enumeration]</p><p>DUPLICATE, DELETE_OLD, RETURN_FAULT - parameter defines an
          action which should be taken when a Subscriber wants to create a
          Subscription with the same parameters as the parameters of already
          existing Subscription. Default: <span class="bold"><strong>DELETE_OLD
          (before the version 2.6.2 it was DUPLICATE)</strong></span></p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:SubscriptionManager/smn:DialectConsistencyRequired</em></span>
          [boolean]</p><p>true, false - determines if a Subscription covers the Notify
          messages with a different Topics Dialect than the Topic Dialect of
          the Subscription; if true, the Subscription covers only Notify
          messages with the same Dialect; if false, the Subscription covers
          Notify messages with simpler Dialects (i.e. Subscription with Full
          type of Dialect covers notifications sent with Concrete or Simple
          type). Default: true</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:SubscriptionManager/smn:SubscriptionPeriod</em></span>
          [integer]</p><p>A default time period for a Subscription to be valid; in
          minutes; if negative the Subscription time checking will be
          disabled. Default: <span class="bold"><strong>43200 (before the version
          2.6.2 it was 10)</strong></span></p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:SubscriptionManager/smn:RefreshRate</em></span>
          [integer]</p><p>A time period between successive Subscription Manager
          refreshing events (events when outdated Subscriptions are deleted);
          the time period is measured in seconds; if value is set to 0 or
          negative then the periodical refreshing is disabled. Default:
          3600</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:PublisherManager/
          </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>
          [boolean]</p><p>true, false - determines a requirement of Publishers
          Registrations; if true, a Publisher has to register himself before
          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>
          [integer]</p><p>A default time period for a Publisher Registration to be
          valid; in minutes; if negative the Registration time checking will
          be disabled. <span class="bold"><strong>Default: 43200 (before the
          version 2.6.2 it was 10)</strong></span></p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:PublisherManager/smn:RefreshRate</em></span>
          [integer]</p><p>A time period between successive Publisher Manager refreshing
          events (events when outdated Publishers are deleted); the time
          period is measured in seconds; if value is set to 0 or negative then
          the periodical refreshing is disabled. Default: 3600</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:PullPointManager/
          </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
          <span class="emphasis"><em>[boolean]</em></span></em></span></p><p>true, false - determines if PullPoints for pull style of
          notifications can be used. Default: true</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:PullPointManager/smn:PullPointSize</em></span>
          [integer]</p><p>A maximal number of messages that can be buffered in a single
          PullPoint; if negative then the number of messages is unbounded.
          Default: <span class="bold"><strong>1000 (before the version 2.6.2 it was
          100)</strong></span></p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:PullPointManager/smn:PullPointPeriod</em></span>
          [integer]</p><p>A default time period for a PullPoint to be valid; in minutes;
          if negative the PullPoint time checking will be disabled. Default:
          <span class="bold"><strong>43200 (before the version 2.6.2 it was
          10)</strong></span></p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:PullPointManager/smn:RefreshRate</em></span>
          [integer]</p><p>A time period between successive PullPoint Manager refreshing
          events (events when outdated PullPoints are deleted); the time
          period is measured in seconds; if value is set to 0 or negative then
          the periodical refreshing is disabled. Default: 3600</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:Publishing/
          </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
          </em></span>[boolean]</p><p>true, false - determines if Notifications Buffer should be
          enabled; Notifications Buffer is used for resending Notifications if
          those weren't sent successfully at the first attempt. Default:
          true</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:Publishing/smn:NotificationsBufferSize
          </em></span>[integer]</p><p>A maximal number of Notifications that can be buffered in
          Notifications Buffer. Default: <span class="bold"><strong>10000 (before
          the version 2.6.2 it was 1000)</strong></span></p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:Publishing/smn:NotificationsResendingRate
          </em></span>[integer]</p><p>A time period between successive notification resending
          procedures; in seconds; if 0 or negative then the resending will be
          disabled. Default: 60</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:Publishing/smn:MaxSendTries</em></span>
          [integer]</p><p>A maximal number of consecutive unsuccessfull tries of sending
          notification; unsuccessful tries of sending notifications are
          counted independently for every Subscription; a certain Subscription
          will be delated if its counter become equal to
          <span class="emphasis"><em>MaxSendTries</em></span>; if value is set to 0 or negative
          then this option is disabled. Default: 5</p></li><li><p><span class="emphasis"><em>//smn:Core/Database/DatabaseEnabled
          <span class="emphasis"><em>[boolean]</em></span></em></span></p><p>true, false - determines if a database should be enabled; in
          the simplest configuration, <span class="emphasis"><em>QCG-Notification</em></span>
          can be used also without a database connection, however many options
          will be then unavailable. Default: true</p></li><li><p><span class="emphasis"><em>//smn:Core/Database/DSN
          <span class="emphasis"><em>[string]</em></span></em></span></p><p>Data Source Name of a database. Note, that you should use ODBC
          DSN <span class="bold"><strong>not</strong></span> the database name.</p></li><li><p><span class="emphasis"><em>//smn:Core/Database/User
          <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
          <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
          <span class="emphasis"><em>[boolean]</em></span></em></span></p><p>true, false - determines whether all information stored in a
          database should be cleaned at starting of the QCG-Notification
          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
      are loaded during the<span class="emphasis"><em> QCG-Notification</em></span> run time.
      Module definitions are specified in appropriate sections of the
      configuration file.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2838"></a>5.2.1.&nbsp;Publisher modules</h4></div></div></div><p>As it was discussed in the previous sections, in a typical
        brokered notification scenario there are two types of communication
        and notification channels that need to be setup. The first one is a
        communication channel between Subscriber/Publisher clients and
        <span class="emphasis"><em>QCG-Notification. </em></span>This type of communication is
        currently completely based on QCG Core library.</p><p>The second type is an outgoing communication between
        <span class="emphasis"><em>QCG-Notification</em></span> and NotificationConsumers and it
        is particular for <span class="emphasis"><em>QCG-Notification</em></span>. In this
        situation <span class="emphasis"><em>QCG-Notification</em></span> plays a role of a
        Notification Publisher. At this time, supported modules for this
        channel utilize a Web Service interface, XMPP interface and SMTP
        interface.</p><div class="itemizedlist"><ul type="disc"><li><p><span class="bold"><strong>Publisher Anonymous WS
            transport</strong></span></p><p><span class="emphasis"><em><span class="emphasis"><em>This type of transport is recommended
            only for internal, secure network environments or
            testing.</em></span></em></span></p><pre class="programlisting">&lt;Module xsi:type="smn:ntf-publisher-gsoap-anonymous"&gt;
  &lt;smn:UseWSA&gt;true&lt;/smn:UseWSA&gt;
  &lt;smn:RecvTimeout&gt;10&lt;/smn:RecvTimeout&gt;
  &lt;smn:SendTimeout&gt;10&lt;/smn:SendTimeout&gt;
  &lt;smn:NotifyTopicConversion&gt;WSN&lt;/smn:NotifyTopicConversion&gt;
&lt;/Module&gt;</pre></li><li><p><span class="bold"><strong>Publisher SSL WS transport and
            authentication</strong></span></p><pre class="programlisting">&lt;Module xsi:type="smn:ntf-publisher-gsoap-ssl"&gt;
  &lt;smn:UseWSA&gt;true&lt;/smn:UseWSA&gt;
  &lt;smn:RecvTimeout&gt;10&lt;/smn:RecvTimeout&gt;
  &lt;smn:SendTimeout&gt;10&lt;/smn:SendTimeout&gt;
  &lt;smn:X509CertKeyFile&gt;/opt/qcg/etc/ssl/qcg-ntf/qcg-ntfd.pem&lt;/smn:X509CertKeyFile&gt;
  &lt;smn:X509KeyPass&gt;qcgpass&lt;/smn:X509KeyPass&gt;
  &lt;smn:TrustedCAFile&gt;/opt/qcg/etc/ssl/certs/qcg-ntf/ca.pem&lt;/smn:TrustedCAFile&gt;
  &lt;smn:TrustedCAPath&gt;/opt/qcg/etc/ssl/certs/qcg-ntf/ca.pem&lt;/smn:TrustedCAPath&gt;
  &lt;smn:NotifyTopicConversion&gt;WSN&lt;/smn:NotifyTopicConversion&gt;
&lt;/Module&gt;</pre><div class="itemizedlist"><ul type="circle"><li><p dir="lro"><span class="emphasis"><em>//smn:UseWSA
                  <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
                  <span class="emphasis"><em>[positiveInteger]</em></span></em></span></p><p>The timeout in seconds for stall on the recv function.
                  If negative, time is measured in microseconds.</p></li><li><p dir="lro"><span class="emphasis"><em>//smn:SendTimeout
                  <span class="emphasis"><em>[positiveInteger]</em></span></em></span></p><p>The timeout in seconds for stall on the send function.
                  If negative, time is measured in microseconds.</p></li><li><p dir="lro"><span class="emphasis"><em>//smn:X509CertKeyFile
                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>A path to the file with both X509 certificate and
                  private key. Mandatory argument.</p></li><li><p><span class="emphasis"><em>//smn:X509KeyPass
                  <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
                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>A path to the file with trusted CAs certificates.
                  Either TrustedCAFile or TrustedCAPath must be
                  specified.</p></li><li><p><span class="emphasis"><em>//smn:TrutedCAPath
                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>A path to the directory with the files with trusted
                  CAs certificates. Either TrustedCAFile or TrustedCAPath must
                  be specified.</p></li><li><p><span class="emphasis"><em>//smn:NotifyTopicConversion
                  <span class="emphasis"><em>[enumeration]</em></span></em></span></p><p>WSN, WSN_WITH_ADDITIONAL_NS, INLINE, LACK - defines a
                  type of conversion that will be applied (if needed) to the
                  Topic element of Notify messages.</p></li></ul></div></li><li><p><span class="bold"><strong>Publisher XMPP
            transport</strong></span></p><p><span class="bold"><strong><span class="emphasis"><em>The XMPP publisher module
            can send two versions of notifications via XMPP. The first version
            are notifications expressed as SOAP messages, the second are
            notifications sent as a typical "chat" messages. The second
            version of notifications is selected automatically when the XSLT
            document was provided in Subscribe message: the XSLT document will
            be used to transform the message to the apropriate
            form.</em></span></strong></span></p><pre class="programlisting">&lt;sm:Module xsi:type="smn:ntf-publisher-xmpp"&gt;
    &lt;smn:Jid&gt;qcgaccount@xmppserver.qcg.com/qcg-resource&lt;/smn:Jid&gt;
    &lt;smn:Password&gt;qcgpass&lt;/smn:Password&gt;
    &lt;smn:Server&gt;xmppserver.qcg.com&lt;/smn:Server&gt;
    &lt;smn:Port&gt;5222&lt;/smn:Port&gt;
    &lt;smn:Encryption&gt;TLS&lt;/smn:Encryption&gt;
    &lt;smn:CertFingerprint&gt;00112233445566778899AABBCCDDEE&lt;/smn:CertFingerprint&gt;
    &lt;smn:NotifyTopicConversion&gt;WSN&lt;/smn:NotifyTopicConversion&gt;
&lt;/sm:Module&gt;</pre><div class="itemizedlist"><ul type="circle"><li><p><span class="emphasis"><em>//smn:Jid
                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>JID of the XMPP account consisting of account name,
                  domain and resource.</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 dir="lro"><span class="emphasis"><em>//smn:Server
                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>Hostname of the XMPP server on which the XMPP account
                  is set up. Optional element, if not set, the connection will
                  be established basing on Jid.</p></li><li><p dir="lro"><span class="emphasis"><em>//smn<span class="emphasis"><em>:Port
                  [positiveInteger]</em></span></em></span></p><p>Port number of the XMPP server. Default is
                  5222.</p></li><li><p><span class="emphasis"><em>//smn:Encryption
                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>Encryption to use. By default it's "none". Use "TLS"
                  for STARTTLS connection encryption. Use "SSL" for old-style
                  SSL encryption (typically port 5223).</p></li><li><p><span class="emphasis"><em>//smn:CertFingerprint
                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>MD5 fingerprint of the encryption certificate used by
                  the XMPP server. Upon mismatch, the connection will fail.
                  Use empty string to accept any certificate.</p></li><li><p><span class="emphasis"><em>//smn:NotifyTopicConversion
                  <span class="emphasis"><em>[enumeration]</em></span></em></span></p><p>WSN, WSN_WITH_ADDITIONAL_NS, INLINE, LACK - defines a
                  type of conversion that will be applied (only if needed) to
                  the Topic element of Notify messages. Default is WSN.</p></li></ul></div></li><li><p><span class="bold"><strong>Publisher SMTP
            transport</strong></span></p><p><span class="bold"><strong><span class="emphasis"><em>Simillarly to the XMPP
            publisher module, the SMTP module utilizes the XSLT documents to
            transform the content of the notification to the human-friendly
            form. </em></span></strong></span></p><pre class="programlisting">&lt;sm:Module xsi:type="smn:ntf-publisher-smtp"&gt;
    &lt;smn:ServerURL&gt;smtp://localhost:25&lt;/smn:ServerURL&gt;
    &lt;smn:User&gt;someuser&lt;/smn:User&gt;
    &lt;smn:Password&gt;somepassword&lt;/smn:Password&gt;
    &lt;smn:Encryption&gt;TLS&lt;/smn:Encryption&gt;
    &lt;smn:TrustedCAFile&gt;somefile&lt;/smn:TrustedCAFile&gt;
    &lt;smn:TrustedCAPath&gt;somedir&lt;/smn:TrustedCAPath&gt;
    &lt;smn:From&gt;some@from&lt;/smn:From&gt;
    &lt;smn:Subject&gt;Some subject&lt;/smn:Subject&gt;
    &lt;smn:Trace&gt;false&lt;/smn:Trace&gt;
    &lt;smn:SendTimeout&gt;10&lt;/smn:SendTimeout&gt;
&lt;/sm:Module&gt;     </pre><div class="itemizedlist"><ul type="circle"><li><p dir="lro"><span class="emphasis"><em>//smn:Server
                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>URL of the SMTP server. Mandatory element.</p></li><li><p dir="lro"><span class="emphasis"><em>//smn:User
                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>Name of the account on SMTP server. Optional
                  element.</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 account. Optional
                  element.</p></li><li><p><span class="emphasis"><em>//smn:Encryption
                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>Used to enable encryption. The only supported type of
                  encryption is "TLS". Optional element, if not present,
                  encryption will be switched off.</p></li><li><p><span class="emphasis"><em>//smn:TrutedCAFile
                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>A path to the file with trusted CAs certificates.
                  Optional element.</p></li><li><p><span class="emphasis"><em>//smn:TrutedCAPath
                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>A path to the directory with the files with trusted
                  CAs certificates. Optional element.</p></li><li><p><span class="emphasis"><em>//smn:From
                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>Defines a name that will be placed in From field of
                  the e-mail message. Optional element. Default is
                  "QCG-Notification".</p></li><li><p><span class="emphasis"><em>//smn:Subject
                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>Defines a Subject of the e-mail message. Optional
                  element. Default is "QCG-Notification message".</p></li><li><p><span class="emphasis"><em>//smn:Trace
                  <span class="emphasis"><em>[boolean]</em></span></em></span></p><p>Switches trace logging. Optional element, default is
                  false.</p></li><li><p><span class="emphasis"><em>//smn:SendTimeout
                  <span class="emphasis"><em>[int]</em></span></em></span></p><p>The timeout in seconds for stall on the send function.
                  Optional element, default is 10.</p></li></ul></div></li></ul></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e3097"></a>5.3.&nbsp;WS-Topics management</h3></div></div></div><p>In the current release, a topics management in
      <span class="emphasis"><em>QCG-Notification</em></span> is relatively simple. The first
      step is a preparation of an XML document with a Topic Namespace
      definition. This step can be done by one of the peers cooperating with
      <span class="emphasis"><em>QCG-Notification</em></span>. Then the document should be
      delivered to the computer where <span class="emphasis"><em>QCG-Notification</em></span> is
      installed. It can be done in two ways: the document may be copied
      manually by QCG-Notification administrator to TopicNamespaces directory
      in prior to <span class="emphasis"><em>a QCG-Notification</em></span> startup or it can be
      send through the <span class="emphasis"><em>QCG-Notification</em></span> interface when
      <span class="emphasis"><em>QCG-Notification</em></span> is already runing. In the last
      case, the TopicNamespaces are stored also in a files in TopicNamespace
      directory so they can be automatically loaded after restart of the
      service. The TopicNamespaces loaded from files may be protected from
      unwanted removal by unseting write permissions for a certain
      file.</p><p>An XML document describing a sample topic namespace is presented
      in the <a class="link" href="#ted" title="3.3.&nbsp;Topics, TopicExpressions and Dialects">Section 3.3</a>.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e3125"></a>5.4.&nbsp;Starting <span class="emphasis"><em>QCG-Notification</em></span></h3></div></div></div><p>To start <span class="emphasis"><em>QCG-Notification</em></span> as a daemon
      type:</p><pre class="programlisting">$ ./qcg-ntfd</pre><p>If you start <span class="emphasis"><em>QCG-Notification</em></span> with parameter
      -h you will get an optional parameters list:</p><pre class="programlisting">$ ./qcg-ntfd -h
usage: ./qcg-ntfd [-d] [-z config_file]

  -d              do not detach and log to stderr
  -D              do not detach and force logging at debug level to stderr
  -z config_file  configuration file, default is /opt/qcg/etc/qcg-ntfd.xml
  -v              print version information
  -h              print this help</pre><p>Once you run
      <span class="emphasis"><em>QCG-Notification</em></span> as a daemon, a log file is
      created. Using various log levels, you can log less or more
      details.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e3148"></a>5.5.&nbsp;Stopping <span class="emphasis"><em>QCG-Notification</em></span></h3></div></div></div><p>At the moment, shutdown is performed simply by sending
      <code class="filename">SIGINT</code> signal to the service, e.g.:</p><pre class="programlisting">$ kill -SIGINT `pidof qcg-ntfd`</pre></div></div></div>

Attachments