Changes between Version 11 and Version 12 of technicalGuideAndManual

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

--

Legend:

Unmodified
Added
Removed
Modified
  • technicalGuideAndManual

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