Changes between Version 8 and Version 9 of technicalGuideAndManual

Show
Ignore:
Timestamp:
04/04/12 12:47:21 (12 years ago)
Author:
bartek
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • technicalGuideAndManual

    v8 v9  
    11{{{ 
    22#!html 
    3 <div class="article" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="d0e1"></a><span class="emphasis"><em>QCG Notification</em></span> v. 2.4 Technical Guide and 
    4     Manual</h2></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname">Bartosz</span> <span class="surname">Bosak</span></h3><code class="email">&lt;<a class="email" href="mailto:bbosak@man.poznan.pl">bbosak@man.poznan.pl</a>&gt;</code></div><div class="author"><h3 class="author"><span class="firstname">Krzysztof</span> <span class="surname">Kurowski</span></h3><code class="email">&lt;<a class="email" href="mailto:krzysztof.kurowski@man.poznan.pl">krzysztof.kurowski@man.poznan.pl</a>&gt;</code></div></div></div><div><p class="releaseinfo">2.4.4</p></div><div><p class="copyright">Copyright &copy; 2008-2012 Poznan Supercomputing and Networking Center</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#d0e37">1. Introduction</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e48">1.1. Motivations</a></span></dt><dt><span class="sect2"><a href="#d0e56">1.2. Purpose of the Document</a></span></dt><dt><span class="sect2"><a href="#d0e71">1.3. Status</a></span></dt></dl></dd><dt><span class="sect1"><a href="#d0e80">2. Terminology and WS-Notification Concept</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e88">2.1. WS-Notification Concept</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e91">2.1.1. WS-Notification Fundamentals</a></span></dt><dt><span class="sect3"><a href="#d0e134">2.1.2. WS-BaseNotification</a></span></dt><dt><span class="sect3"><a href="#d0e196">2.1.3. WS-BrokeredNotification</a></span></dt><dt><span class="sect3"><a href="#d0e274">2.1.4. WS-Topics</a></span></dt><dt><span class="sect3"><a href="#d0e328">2.1.5. Base of QCG Notification</a></span></dt></dl></dd><dt><span class="sect2"><a href="#d0e420">2.2. UML-style Diagrams</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e461">2.2.1. `Main Use Cases</a></span></dt><dt><span class="sect3"><a href="#d0e494">2.2.2. Main Sequence Diagrams</a></span></dt></dl></dd></dl></dd><dt><span class="sect1"><a href="#d0e503">3. User Guide for a Publisher, Subscriber and 
    5     NotificationConsumer </a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e508">3.1. Prefixes and Namespaces</a></span></dt><dt><span class="sect2"><a href="#d0e586">3.2. Interaction with QCG Notification</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e596">3.2.1. Publisher Interaction</a></span></dt><dt><span class="sect3"><a href="#d0e610">3.2.2. Subscriber interaction</a></span></dt><dt><span class="sect3"><a href="#d0e635">3.2.3. NotificationConsumer Interaction</a></span></dt></dl></dd><dt><span class="sect2"><a href="#ted">3.3. Topics, TopicExpressions and Dialects</a></span></dt><dt><span class="sect2"><a href="#d0e689">3.4. Extensions</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e697">3.4.1. TopicExpression</a></span></dt><dt><span class="sect3"><a href="#d0e708">3.4.2. QCG Notification Extensions</a></span></dt></dl></dd><dt><span class="sect2"><a href="#d0e719">3.5. Methods Description</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e753">3.5.1. SubscribeRequest</a></span></dt><dt><span class="sect3"><a href="#d0e850">3.5.2. SubscribeResponse</a></span></dt><dt><span class="sect3"><a href="#d0e898">3.5.3. RenewRequest</a></span></dt><dt><span class="sect3"><a href="#d0e939">3.5.4. RenewResponse</a></span></dt><dt><span class="sect3"><a href="#d0e983">3.5.5. UnsubscribeRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1016">3.5.6. UnsubscribeResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1037">3.5.7. RegisterPublisherRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1090">3.5.8. RegisterPublisherResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1135">3.5.9. Notify</a></span></dt><dt><span class="sect3"><a href="#d0e1219">3.5.10. DestroyRegistrationRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1252">3.5.11. DestroyRegistrationResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1273">3.5.12. CreatePullPointRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1297">3.5.13. CreatePullPointResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1327">3.5.14. GetMessages</a></span></dt><dt><span class="sect3"><a href="#d0e1360">3.5.15. GetMessagesResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1437">3.5.16. DestroyPullPointRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1458">3.5.17. DestroyPullPointResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1479">3.5.18. GetCurrentMessageRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1526">3.5.19. GetCurrentMessageResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1592">3.5.20. ListSubscriptions</a></span></dt><dt><span class="sect3"><a href="#d0e1694">3.5.21. ListSubscriptionsResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1791">3.5.22. ListPublishersRegistrations</a></span></dt><dt><span class="sect3"><a href="#d0e1872">3.5.23. ListPublisherRegistrationsResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1946">3.5.24. ListPullPoints</a></span></dt><dt><span class="sect3"><a href="#d0e2027">3.5.25. ListPullPointsResponse</a></span></dt><dt><span class="sect3"><a href="#d0e2101">3.5.26. ListTopicNamespaces</a></span></dt><dt><span class="sect3"><a href="#d0e2141">3.5.27. ListTopicNamespacesResponse</a></span></dt><dt><span class="sect3"><a href="#d0e2200">3.5.28. AddTopicNamespace</a></span></dt><dt><span class="sect3"><a href="#d0e2237">3.5.29. AddTopicNamespaceResponse</a></span></dt><dt><span class="sect3"><a href="#d0e2262">3.5.30. RemoveTopicNamespace</a></span></dt><dt><span class="sect3"><a href="#d0e2296">3.5.31. RemoveTopicNamespaceResponse</a></span></dt></dl></dd></dl></dd><dt><span class="sect1"><a href="#d0e2318">4. Administration Guide of QCG 
    6     Notification</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e2323">4.1. Prerequisites</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e2331">4.1.1. QCG Core library</a></span></dt></dl></dd><dt><span class="sect2"><a href="#d0e2349">4.2. Building</a></span></dt><dt><span class="sect2"><a href="#d0e2410">4.3. Creating database for QCG Notification - the 
    7       PostgreSQL example</a></span></dt></dl></dd><dt><span class="sect1"><a href="#d0e2495">5. Configuration of QCG Notification</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e2500">5.1. Configuration File: qcg-ntfd.xml</a></span></dt><dt><span class="sect2"><a href="#moduleoptions">5.2. Module configuration</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e2817">5.2.1. Publisher modules</a></span></dt></dl></dd><dt><span class="sect2"><a href="#d0e2973">5.3. WS-Topics management</a></span></dt><dt><span class="sect2"><a href="#d0e3001">5.4. Starting QCG Notification</a></span></dt><dt><span class="sect2"><a href="#d0e3024">5.5. Stopping QCG Notification</a></span></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e37"></a>1.&nbsp;Introduction</h2></div></div></div><p><span class="bold"><strong>QCG Notification</strong></span> is a reference 
     3 
     4<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 
    89    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 
    910    OASIS standard)</a><a class="link" href="#WS-Notification"></a> for message push/pull-style notification, 
     
    4546      Services.</p><p>This document assumes that the reader has at least a basic 
    4647      background in Web Service and SOA technologies.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e71"></a>1.3.&nbsp;Status</h3></div></div></div><p>This document is updated periodically on no particular 
    47       schedule.</p><p>Latest version: <span class="bold"><strong>2.4.4</strong></span></p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e80"></a>2.&nbsp;Terminology and WS-Notification Concept</h2></div></div></div><p>The aim of this section is to capture high-level functionality of 
     48      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 
    4849    <span class="emphasis"><em>QCG Notification</em></span> and/or interaction without providing 
    49     excessive implementation or technical details of the system.</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e88"></a>2.1.&nbsp;WS-Notification Concept</h3></div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e91"></a>2.1.1.&nbsp;WS-Notification Fundamentals</h4></div></div></div><p>Notification-based pattern is commonly used for 
     50    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 
    5051        interaction between distributed objects. WS-Notification is a family 
    5152        of related specifications that standardizes notification concept and 
     
    5960              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 
    6061              interest for subscriptions known as "topics".</p><p>Specification URL:</p><p><a class="ulink" href="http://docs.oasis-open.org/wsn/wsn-ws_topics-1.3-spec-pr-0.2.pdf" target="_top">http://docs.oasis-open.org/wsn/wsn-ws_topics-1.3-spec-os.pdf</a></p></dd></dl></div><p>The next subsections will present main notification concepts 
    61         defined in the mentioned specifications.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e134"></a>2.1.2.&nbsp;WS-BaseNotification</h4></div></div></div><p>The WS-BaseNotification document is a basic reference on which 
     62        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 
    6263        all the other specifications in the standard WS-Notification family 
    6364        depend. In fact, it defines precisely two important notification 
    6465        roles/actors called respectively NotificationProducer and 
    6566        NotificationConsumer. An example system architecture based on 
    66         WS-BaseNotification is presented below.</p><div class="figure"><a name="BaseEntities"></a><p class="title"><b>Figure&nbsp;1.&nbsp;Web Services BaseNotification entities</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/smn_baseentities.png" align="middle" width="324" alt="Web Services BaseNotification entities"></div></div></div><p><br class="figure-break">The basic terminology related to the WS-BaseNotification is 
     67        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/WikiStart/./diagrams/general/smn_baseentities.png" align="middle" width="324" alt="Web Services BaseNotification entities"></div></div></div><p><br class="figure-break">The basic terminology related to the WS-BaseNotification is 
    6768        following:</p><div class="variablelist"><dl><dt><span class="term">Situation</span></dt><dd><p>Some occurrence known by a NotificationProducer. A 
    6869                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 
     
    8788                messages produced on each topic. A new notification replaces 
    8889                the previous related to the same topic and currently buffered 
    89                 in CurrentMessages.</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e196"></a>2.1.3.&nbsp;WS-BrokeredNotification</h4></div></div></div><p>In a nutshell, the WS-BrokeredNotification specification is an 
     90                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 
    9091        extension of described above the WS-BaseNotification concept. However, 
    9192        it introduces a new important notification role called 
    9293        NotificationBroker and defines more advanced notification scenarios. 
    9394        The figure below shows an example scenario and notification message 
    94         flow where NotificationBroker is present.</p><div class="figure"><a name="d0e202"></a><p class="title"><b>Figure&nbsp;2.&nbsp;Web Services BrokeredNotification entities - QCG 
    95             Notification entities</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="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 
     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/WikiStart/./diagrams/general/smn_brokeredentities.png" align="middle" width="324" alt="Web Services BrokeredNotification entities - QCG Notification entities"></div></div></div><p><br class="figure-break">Note, that there are some important enlargements and 
    9697        modifications in the WS-BrokeredNotificatison terminology. Below the 
    9798        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 
     
    110111              from Publishers to NotificationConsumers on the basis of 
    111112              Subscriptions' parameters.</p></dd><dt><span class="term">NotificationConsumer</span></dt><dd><p>An endpoint designated to receive Notifications produced 
    112               by a Publisher as a result of a Subscription and later 
    113               redistributed by a NotificationBroker.</p></dd><dt><span class="term">PullPoint</span></dt><dd><p>The purpose of PullPoints is enabling pull-style 
     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 
    114115              notifications. In general, PullPoints accumulate notifications 
    115116              and offer an interface for retrieving these notifications by 
     
    135136        scenarios in service oriented systems we recommend to use notification 
    136137        capabilities defined in WS-BrokeredNotification. One of the main 
    137         scenario defined by WS-BrokeredNotification is presented on <a class="link" href="#BrokeredEntities">Figure 2</a> .</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e274"></a>2.1.4.&nbsp;WS-Topics</h4></div></div></div><p>The third important notification specification document called 
     138        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 
    138139        WS-Topics is strictly associated with WS-BaseNotification and 
    139140        precisely defines a "topics" mechanism. Important definitions used in 
     
    145146              TopicExpression. The specification defines four Dialects: 
    146147              <span class="emphasis"><em>Simple</em></span>, <span class="emphasis"><em>Concrete</em></span>, 
    147               <span class="emphasis"><em>Full</em></span> and <span class="emphasis"><em>XPath</em></span>.</p></dd></dl></div><div class="figure"><a name="d0e322"></a><p class="title"><b>Figure&nbsp;3.&nbsp;Example Topic Namespace</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="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="d0e328"></a>2.1.5.&nbsp;Base of <span class="emphasis"><em>QCG Notification</em></span></h4></div></div></div><p><span class="emphasis"><em>QCG Notification</em></span> is a reference 
     148              <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/WikiStart/./diagrams/general/smn_topicnamespace.png" align="middle" width="324" alt="Example Topic Namespace"></div></div></div><br class="figure-break"></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="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 
    148149        implementation of WS-BaseNotification, WS-BrokeredNotification and 
    149150        WS-Topics OASIS industry standards. As a consistent and highly 
     
    163164        messages transmission. Currently messages can be transported between 
    164165        <span class="emphasis"><em>QCG Notification</em></span> and third party entities not 
    165         only through HTTP protocol, but also through XMPP. It is possible to 
    166         variously mix channels of communication, for example a notification 
    167         sent by a Publisher being WS-Client as a HTTP message can be 
    168         distributed over XMPP to Jabber consumers.</p><p>Below we present a set of Web Service notification use cases 
     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 
    169171        demonstrating capabilities offered by <span class="emphasis"><em>QCG 
    170172        Notification</em></span>.</p><div class="figure"><a name="notificationConsumers"></a><p class="title"><b>Figure&nbsp;4.&nbsp;Notification with multiple Publishers and multiple 
    171           NotificationConsumers</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/smn_example1.png" align="middle" width="324" alt="Notification with multiple Publishers and multiple NotificationConsumers"></div></div></div><br class="figure-break"><p>The <a class="link" href="#notificationConsumers" title="Figure&nbsp;4.&nbsp;Notification with multiple Publishers and multiple NotificationConsumers">diagram 4</a> shows 
     173          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/WikiStart/./diagrams/general/smn_example1.png" align="middle" width="324" alt="Notification with multiple Publishers and multiple NotificationConsumers"></div></div></div><br class="figure-break"><p>The <a class="link" href="#notificationConsumers" title="Figure&nbsp;4.&nbsp;Notification with multiple Publishers and multiple NotificationConsumers">diagram 4</a> shows 
    172174        one of the basic notification flows supported by <span class="emphasis"><em>QCG 
    173175        Notification</em></span>. Depending on records, Notifications produced 
     
    185187        <span class="emphasis"><em>QCG Notification</em></span>. The diagram below shows a 
    186188        sequence of events in order to initialize an asynchronous process of 
    187         notifications between a Publisher and a NotificationConsumer.</p><div class="figure"><a name="d0e382"></a><p class="title"><b>Figure&nbsp;5.&nbsp;Message flows: creating a Subscription, notifying 
    188           NotificationConsumers</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="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 
     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/WikiStart/./diagrams/general/smn_example2.png" align="middle" width="324" alt="Message flows: creating a Subscription, notifying NotificationConsumers"></div></div></div><br class="figure-break"><div class="orderedlist"><ol type="1"><li><p>A Subscriber sends the SubscribeRequest message with a 
    189191            NotificationConsumer location and TopicExpression parameters to 
    190192            <span class="emphasis"><em>QCG Notification</em></span>.</p></li><li><p><span class="emphasis"><em>QCG Notification</em></span> prepares appropriate 
     
    196198            NotificationConsumers subscribed on a specified Topic. If so, 
    197199            <span class="emphasis"><em>QCG Notification</em></span> sends asynchronous 
    198             Notifications to these NotifcationConsumers.</p></li></ol></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e420"></a>2.2.&nbsp;UML-style Diagrams</h3></div></div></div><p>The document uses UML-style use-case diagrams to illustrate 
     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 
    199201      high-level use cases. The following list is probably sufficient for this 
    200202      version of the document:</p><div class="itemizedlist"><ul type="disc"><li><p>Stick figures represents actors or roles in a scenario. These 
     
    220222      clearly ordered message layout and connections among functional units. 
    221223      The actors and messages in the sequence diagrams are more properly roles 
    222       in a scenario and actions associated with that scenario.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e461"></a>2.2.1.&nbsp;`Main Use Cases</h4></div></div></div><div class="figure"><a name="d0e464"></a><p class="title"><b>Figure&nbsp;6.&nbsp;Use case diagram for a Publisher</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="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="d0e470"></a><p class="title"><b>Figure&nbsp;7.&nbsp;Use case diagram for a Subscriber</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="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="d0e476"></a><p class="title"><b>Figure&nbsp;8.&nbsp;Use case diagram for a NotificationConsumer</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="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="d0e482"></a><p class="title"><b>Figure&nbsp;9.&nbsp;Use case diagram for QCG Notification</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="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="d0e488"></a><p class="title"><b>Figure&nbsp;10.&nbsp;Use case diagram for a QCG Notification Administrator</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="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="d0e494"></a>2.2.2.&nbsp;Main Sequence Diagrams</h4></div></div></div><div class="figure"><a name="d0e497"></a><p class="title"><b>Figure&nbsp;11.&nbsp;General sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="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="d0e503"></a>3.&nbsp;User Guide for a Publisher, Subscriber and 
    223     NotificationConsumer<span class="emphasis"><em> </em></span></h2></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e508"></a>3.1.&nbsp;Prefixes and Namespaces</h3></div></div></div><p>The following table presents namespaces tied with prefixes. The 
     224      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/WikiStart/./diagrams/use_publisher.png" align="middle" width="432" alt="Use case diagram for a Publisher"></div></div></div><br class="figure-break"><div class="figure"><a name="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="./diagrams/use_subscriber.png" align="middle" width="432" alt="Use case diagram for a Subscriber"></div></div></div><br class="figure-break"><div class="figure"><a name="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="./diagrams/use_consumer.png" align="middle" width="432" alt="Use case diagram for a NotificationConsumer"></div></div></div><br class="figure-break"><div class="figure"><a name="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="./diagrams/use_qcgnotification.png" align="middle" width="432" alt="Use case diagram for QCG Notification"></div></div></div><br class="figure-break"><div class="figure"><a name="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="./diagrams/use_administrator.png" align="middle" width="432" alt="Use case diagram for a QCG Notification Administrator"></div></div></div><br class="figure-break"></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="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="./diagrams/seq_all.png" align="middle" width="432" alt="General sequence diagram"></div></div></div><br class="figure-break"></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="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 
    224226      prefixes are used in example SOAP messages presented in the further 
    225       sections.</p><div class="table"><a name="d0e513"></a><p class="title"><b>Table&nbsp;1.&nbsp;Prefixes and Namespaces</b></p><div class="table-contents"><table summary="Prefixes and Namespaces" border="1"><colgroup><col width="12%" align="left"><col width="88%"></colgroup><tbody><tr><td align="left"><span class="bold"><strong>Prefix</strong></span></td><td><span class="bold"><strong>Namespace</strong></span></td></tr><tr><td align="left">SOAP-ENV</td><td>http://schemas.xmlsoap.org/soap/envelope/</td></tr><tr><td align="left">SOAP-ENC</td><td>http://schemas.xmlsoap.org/soap/encoding/</td></tr><tr><td align="left">xsi</td><td>http://www.w3.org/2001/XMLSchema-instance</td></tr><tr><td align="left">xsd</td><td>http://www.w3.org/2001/XMLSchema</td></tr><tr><td align="left">wsa</td><td>http://www.w3.org/2005/08/addressing</td></tr><tr><td align="left">wsbf</td><td>http://docs.oasis-open.org/wsrf/bf-2</td></tr><tr><td align="left">wstop</td><td>http://docs.oasis-open.org/wsn/t-1</td></tr><tr><td align="left">wsr</td><td>http://docs.oasis-open.org/wsrf/r-2</td></tr><tr><td align="left">wsnt</td><td>http://docs.oasis-open.org/wsn/b-2</td></tr><tr><td align="left">wsntw</td><td>http://docs.oasis-open.org/wsn/bw-2</td></tr><tr><td align="left">wsnbr</td><td>http://docs.oasis-open.org/wsn/br-2</td></tr><tr><td align="left">smn-ext</td><td>http://schemas.qoscosgrid.org/ntf/2011/04/extensions</td></tr></tbody></table></div></div><br class="table-break"></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e586"></a>3.2.&nbsp;Interaction with <span class="emphasis"><em>QCG Notification</em></span></h3></div></div></div><p>In the next subsections an issue of cooperation with <span class="emphasis"><em>QCG 
     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 
    226228      Notification</em></span> is presented independently for a Publisher, 
    227229      Subscriber and NotificationConsumer. Although a conceptual style of 
    228230      interaction is described here in details, technical particularities of 
    229       constructing messages are presented later.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e596"></a>3.2.1.&nbsp;Publisher Interaction</h4></div></div></div><div class="figure"><a name="d0e599"></a><p class="title"><b>Figure&nbsp;12.&nbsp;Publisher interaction sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/seq_publisher.png" align="middle" width="432" alt="Publisher interaction sequence diagram"></div></div></div><br class="figure-break"><p>In the most general configuration of the service, a Publisher 
     231      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/WikiStart/./diagrams/seq_publisher.png" align="middle" width="432" alt="Publisher interaction sequence diagram"></div></div></div><br class="figure-break"><p>In the most general configuration of the service, a Publisher 
    230232        has to be registered before it starts sending Notifications. In this 
    231233        situation, a Publisher sends the RegisterPublisherRequest message to 
     
    238240        replaces the old one in CurrentMessages. After work, a Publisher 
    239241        should unregister himself by sending DestroyRegistration. This message 
    240         has to include a session ID likewise.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e610"></a>3.2.2.&nbsp;Subscriber interaction</h4></div></div></div><div class="figure"><a name="d0e613"></a><p class="title"><b>Figure&nbsp;13.&nbsp;Subscriber interaction sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/seq_subscriber.png" align="middle" width="432" alt="Subscriber interaction sequence diagram"></div></div></div><br class="figure-break"><p>When a Subscriber wants to create a Subscription, it sends the 
     242        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/WikiStart/./diagrams/seq_subscriber.png" align="middle" width="432" alt="Subscriber interaction sequence diagram"></div></div></div><br class="figure-break"><p>When a Subscriber wants to create a Subscription, it sends the 
    241243        SubscribeRequest message to <span class="emphasis"><em>QCG Notification</em></span>. 
    242244        This message should contain an address of NotificationConsumer and a 
     
    245247        Subscriber can define a boolean XPath expression that will be 
    246248        evaluated over Notification Messages for more sophisticated filtering. 
    247         After creation of a Subscription <span class="emphasis"><em>QCG Notification</em></span> 
    248         sends the SubscribeResponse message with a created Subscription ID. 
    249         This ID should be attached to the UnsubscribeRequest message when a 
    250         Subscription is not wanted and the Renew message when a Subscription 
    251         should be refreshed. A Subscriber is allowed to create many equal 
    252         Subscriptions.</p><p>If a scenario requires pull-style of notifications, a Subscriber 
     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 
    253257        can create a set of PullPoints. In a such situation, it has to invoke 
    254258        the CreatePullPoint method offered by <span class="emphasis"><em>QCG Notification. 
     
    258262        PullPoint resource can be destroyed by the DestroyPullPoint message 
    259263        sent directly to this resource. 
    260         </em></span></em></span></em></span></p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e635"></a>3.2.3.&nbsp;NotificationConsumer Interaction</h4></div></div></div><div class="figure"><a name="d0e639"></a><p class="title"><b>Figure&nbsp;14.&nbsp;NotificationConsumer interaction sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/seq_consumer.png" align="middle" width="432" alt="NotificationConsumer interaction sequence diagram"></div></div></div><p><br class="figure-break">The main capability of a NotificationConsumer is a 
     264        </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/WikiStart/./diagrams/seq_consumer.png" align="middle" width="432" alt="NotificationConsumer interaction sequence diagram"></div></div></div><p><br class="figure-break">The main capability of a NotificationConsumer is a 
    261265        receiving of Notify messages. A NotificationConsumer can implement an 
    262266        interface for receiving Notify messages sending by <span class="emphasis"><em>QCG 
     
    304308      should be presented in a form of a prefix that refers to this 
    305309      namespace.</p><p>For more details see: <a class="ulink" href="http://docs.oasis-open.org/wsn/wsn-ws_topics-1.3-spec-pr-0.2.pdf" target="_top">http://docs.oasis-open.org/wsn/wsn-ws_topics-1.3-spec-os.pdf</a> 
    306       and check out examples of methods in the <a class="link" href="#methodsdescription">section 3.4.</a></p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e689"></a>3.4.&nbsp;Extensions</h3></div></div></div><p>The Oasis standard for notifications doesn't define details for 
     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 
    307311      lower Levels of functionality so an architect of system is obligated to 
    308312      introduce some extensions and clarifications. In the <span class="emphasis"><em>QCG 
     
    311315      these extensions are related with other Oasis standards but some are 
    312316      quite new. Technical details are described in the successive 
    313       subsections.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e697"></a>3.4.1.&nbsp;TopicExpression</h4></div></div></div><p><span class="emphasis"><em>QCG Notification </em></span>remote peers have to use 
     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 
    314318        an appropriate TopicExpression XML element. The schema of this element 
    315319        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"> 
     
    320324        with the WSDL document, a @Dialect from the Topic element is 
    321325        significant. It is not necessary but preferred to attach the same 
    322         @Dialect in the TopicExpression element against.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e708"></a>3.4.2.&nbsp;<span class="emphasis"><em>QCG Notification</em></span> Extensions</h4></div></div></div><p><span class="emphasis"><em>QCG Notification</em></span> introduces some extensions 
     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 
    323327        to WSDL as well as schema documents related to the Oasis standard. The 
    324328        following schema defines these extensions. The first three elements 
     
    344348   &lt;xsd:element name="PullPointID" type="ID"/&gt; 
    345349   &lt;xsd:element name="CurrentMessage" type="CM"/&gt; 
     350   &lt;xsd:element name="XSLTTranslation" type="XSLTTrans"/&gt; 
    346351   
    347352   &lt;xsd:simpleType name="ID"&gt; 
     
    364369    &lt;/xsd:sequence&gt; 
    365370   &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;   
    366377 
    367378&lt;!-- ================= QCG Notification manager : ListPullPoints ================== --&gt; 
     
    629640   &lt;/xsd:element&gt; 
    630641 
    631 &lt;/xsd:schema&gt;</pre></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e719"></a>3.5.&nbsp;Methods Description</h3></div></div></div><p>The main idea of this chapter is to present the types of messages 
     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 
    632643      used in the <span class="emphasis"><em>QCG Notification</em></span> scenario as well as 
    633644      introduce how to construct and interpret these messages. The majority of 
     
    641652              however there are also extensions;</p></li><li><p>For all messages it is important to set a correct 
    642653              WS-Addressing Action property which should be the same as SOAP 
    643               Action.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e753"></a>3.5.1.&nbsp;SubscribeRequest</h4></div></div></div><p>SubscribeRequest is sent by a Subscriber to <span class="emphasis"><em>QCG 
     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 
    644655        Notification</em></span>. The message should contain information about 
    645656        a NotificationConsumer and an expression defining Topic or Topics that 
     
    677688      <span class="bold"><strong>2007-07-23T10:24:14+02:00</strong></span> 
    678689     &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; 
    679707    &lt;/wsnt:Subscribe&gt; 
    680708   &lt;/SOAP-ENV:Body&gt; 
     
    710738            boolean(//{http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage}State[text()="on"].The 
    711739            Dialect should always be: 
    712             <span class="emphasis"><em>http://www.w3.org/TR/1999/REC-xpath-19991116</em></span></p></li><li><p>//wsnt:Subscribe/wsnt:InitialTerminationTime</p><p>An optional element. If present, must contain a Subscriber 
     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 
    713741            suggestion for the termination time of the Subscription being 
    714742            created (expressed as a local time with timezone). If not present, 
     
    716744            Notification <span class="emphasis"><em>specify a default time 
    717745            period</em></span></em></span> for the Subscription to be 
    718             valid.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e850"></a>3.5.2.&nbsp;SubscribeResponse</h4></div></div></div><p>In answer on SubscribeRequest there is sent the 
     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 
    719751        SubscribeResponse message. <span class="emphasis"><em>QCG Notification</em></span> 
    720752        deliver in this message a reference to the created Subscription. This 
     
    748780            current solution it is the <span class="emphasis"><em>QCG Notification</em></span> 
    749781            service address.</p></li><li><p><span class="emphasis"><em>//wsnt:SubscribeResponse/wsnt:SubscriptionReference/</em></span></p><p><span class="emphasis"><em>wsa:ReferenceParameters/SubscriptionID</em></span></p><p>An extensive element in xsd:any that contains Subscription 
    750             ID. At this time it is at most 32 char long string.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e898"></a>3.5.3.&nbsp;RenewRequest</h4></div></div></div><p>When a Subscriber wants to renew a Subscription, it can send the 
     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 
    751783        RenewRequest message to <span class="emphasis"><em>QCG Notification</em></span>. The 
    752784        message should contain the Subscription ID element and a new 
     
    775807            Subscription being renewed (expressed as a local time with 
    776808            timezone).</p></li><li><p><span class="emphasis"><em>//wsnt:Renew/smn-ext:SubscriptionID</em></span></p><p>A Subscription ID that was received in the SubscribeResponse 
    777             message.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e939"></a>3.5.4.&nbsp;RenewResponse</h4></div></div></div><p>An answer to the RenewRequest message is RenewResponse. The 
     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 
    778810        message contains a termination time for the renewed 
    779811        Subscription.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     
    801833            (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 
    802834            Notification's</em></span> time when the Subscription was renewing 
    803             (expressed as UTC Time).</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e983"></a>3.5.5.&nbsp;UnsubscribeRequest</h4></div></div></div><p>When a Subscriber wants to terminate a Subscription, it has to 
     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 
    804836        send the UnsubscribeRequest message to <span class="emphasis"><em>QCG 
    805837        Notification</em></span>. The parameter attached to this request is a 
     
    823855            SubscriptionManager/UnsubscribeRequest. <span class="emphasis"><em>If differ, a 
    824856            fault will be returned.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnt:Unsubscribe/smn-ext:SubscriptionID</em></span></p><p>A Subscription ID that was received in the SubscribeResponse 
    825             message.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1016"></a>3.5.6.&nbsp;UnsubscribeResponse</h4></div></div></div><p>UnsubscribeResponse is returned to a Subscriber after 
     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 
    826858        successfully processing the UnsubscribeRequest message.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
    827859   &lt;SOAP-ENV:Header&gt; 
     
    839871            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ 
    840872            SubscriptionManager/UnsubscribeResponse. <span class="emphasis"><em>If differ, a 
    841             fault will be returned.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1037"></a>3.5.7.&nbsp;RegisterPublisherRequest</h4></div></div></div><p>In order to sending Notifications, a Publisher can be obligated 
     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 
    842874        to register himself previosly in <span class="emphasis"><em>QCG 
    843875        Notification</em></span>. For this purpose, it sends the 
     
    872904            Notification <span class="emphasis"><em>specify the default time 
    873905            period</em></span></em></span> for the Registration to be valid. 
    874             Every Notify message renews the termination time.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1090"></a>3.5.8.&nbsp;RegisterPublisherResponse</h4></div></div></div><p>In a response to a successful registration process, 
     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, 
    875907        <span class="emphasis"><em>QCG Notification</em></span> sends RegisterPublisherResponse. 
    876908        This message contains a reference to the created Registration. The 
     
    905937            Registration ID. It defines a session that is created after 
    906938            registration and removed by sending the DestroyRegistration 
    907             message. At this time it is at most 32 char long string.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1135"></a>3.5.9.&nbsp;Notify</h4></div></div></div><p>Notify consists of one or many NotificationMessages. Any of them 
     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 
    908940        is a separate Notification message and is processed independently. 
    909941        NotificationMessage should define a single Topic it concerns. 
     
    958990            "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 
    959991            shorter than 4096 bytes.</p></li><li><p><span class="emphasis"><em>//wsnt:Notify/smn-ext:RegisterPublisherID</em></span></p><p>A Publisher Registration ID that was received in the 
    960             RegisterPublisherResponse message.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1219"></a>3.5.10.&nbsp;DestroyRegistrationRequest</h4></div></div></div><p>A Publisher can terminate a Registration by sending the 
     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 
    961993        DestroyRegistrationRequest message to <span class="emphasis"><em>QCG 
    962994        Notification</em></span>. The parameter attached to this request is a 
     
    9801012            <span class="emphasis"><em>If differ, a fault will be 
    9811013            returned.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnbr:DestroyRegistration/smn-ext:RegisterPublisherID</em></span></p><p>A Publisher Registration ID that was received in a 
    982             RegisterPublisherResponse message.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1252"></a>3.5.11.&nbsp;DestroyRegistrationResponse</h4></div></div></div><p>DestroyRegistrationResponse is returned to a Publisher after a 
     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 
    9831015        successful process of destroying a Publisher Registration, in a 
    9841016        response to the DestroyRegistration message.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     
    9971029            PublisherRegistrationManager/DestroyRegistrationResponse. 
    9981030            <span class="emphasis"><em>If differ, a fault will be 
    999             returned.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1273"></a>3.5.12.&nbsp;CreatePullPointRequest</h4></div></div></div><p>In scenarios where the pull-style of notifications delivery is 
     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 
    10001032        needed, Subscribers can create PullPoints. To do this, a Subscriber 
    10011033        sends the CreatePullPointRequest message to <span class="emphasis"><em>QCG Notification 
     
    10151047            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/CreatePullPoint/CreatePullPointRequest. 
    10161048            <span class="emphasis"><em>If differ, a fault will be 
    1017             returned.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1297"></a>3.5.13.&nbsp;CreatePullPointResponse</h4></div></div></div><p>The CreatePullPointResponse message is returned in a response to 
     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 
    10181050        the request of PullPoint creation. This message contains a reference 
    10191051        to the just created PullPoint. </p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     
    10351067            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/CreatePullPoint/CreatePullPointResponse. 
    10361068            <span class="emphasis"><em>If differ, a fault will be 
    1037             returned.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnt:CreatePullPointResponse/wsa:Address</em></span></p><p>An logical address of the created PullPoint.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1327"></a>3.5.14.&nbsp;GetMessages</h4></div></div></div><p>A Pull-style NotificationConsumer can get messages buffered in a 
     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 
    10381070        PullPoint by invoking the GetMessages method. It sends the 
    10391071        GetMessagesRequest message directly to the specified PullPoint. The 
     
    10581090            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 
    10591091            maximal number of messages that will be gotten from the 
    1060             PullPoint.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1360"></a>3.5.15.&nbsp;GetMessagesResponse</h4></div></div></div><p>GetMessagesResponse, a response message to GetMessages, consists 
     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 
    10611093        of a set of Notifications received from the PullPoint. 
    10621094        </p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     
    11061138              "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete", 
    11071139              "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full".</em></span></p></li><li><p><span class="emphasis"><em>//wsnt:GetMessagesResponse/wsnt:NotificationMessage/wsnt:ProducerReference/wsa:Address</em></span></p><p>A Notification producer (Publisher) address.</p></li><li><p><span class="emphasis"><em>//wsnt:GetMessagesResponse/wsnt:NotificationMessage/wsnt:Message</em></span></p><p>A Notify message content. Currently supported are messages 
    1108               shorter than 4096 bytes.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1437"></a>3.5.16.&nbsp;DestroyPullPointRequest</h4></div></div></div><p>A PullPoint can be destroyed by invoking a DestroyPullPoint 
     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 
    11091141        method. An empty request message should be sent directly to the 
    11101142        PullPoint.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     
    11231155            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/PullPoint/DestroyPullPointRequest. 
    11241156            <span class="emphasis"><em>If differ, a fault will be 
    1125             returned.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1458"></a>3.5.17.&nbsp;DestroyPullPointResponse</h4></div></div></div><p>A response to a DestroyPullPointRequest message is an empty 
     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 
    11261158        DestroyPullPointResponse message.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
    11271159   &lt;SOAP-ENV:Header&gt; 
     
    11391171            <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/PullPoint/DestroyPullPointResponse. 
    11401172            <span class="emphasis"><em>If differ, a fault will be 
    1141             returned.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1479"></a>3.5.18.&nbsp;GetCurrentMessageRequest</h4></div></div></div><p>GetCurrentMessageRequest is useful especially when a new 
     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 
    11421174        NotificationConsumer is connecting and want to get the last published 
    11431175        Notification Message on a specified Topic. Single GetCurrentMessage 
     
    11731205            "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete", 
    11741206            "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full". 
    1175             </em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1526"></a>3.5.19.&nbsp;GetCurrentMessageResponse</h4></div></div></div><p>In a response to GetCurrentMessageRequest <span class="emphasis"><em>QCG 
     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 
    11761208        Notification</em></span> prepares GetCurrentMessageResponse. This 
    11771209        message includes the content of the last Notification 
     
    12121244            this element is the last Notification message published to the 
    12131245            Topic specified in GetCurrentMessageRequest. Currently supported 
    1214             are messages shorter than 4096 bytes.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1592"></a>3.5.20.&nbsp;ListSubscriptions</h4></div></div></div><p>The first method from the the group of administrative methods. 
     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. 
    12151247        It may be invoked to get an information about available subscriptions 
    12161248        in the <span class="emphasis"><em>QCG Notification</em></span> service. The method 
     
    12781310            Subscribe message. In this method it is utilized to filter 
    12791311            Subscriptions on the basis of notification filtering 
    1280             parameters.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1694"></a>3.5.21.&nbsp;ListSubscriptionsResponse</h4></div></div></div><p>The message is sent in the response to ListSubscriptions. It 
     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 
    12811313        includes a list of information sets about available and propably 
    12821314        filtered Subscriptions.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     
    13371369            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 
    13381370            Subscribe message. It specifies Notification filtering parameters 
    1339             of a Subscription.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1791"></a>3.5.22.&nbsp;ListPublishersRegistrations</h4></div></div></div><p>The next method from the the group of administrative methods. It 
     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 
    13401372        may be utilized to list Publishers Registrations. The method consists 
    13411373        of several filtering parameters.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     
    13891421            time and maximal termination time. The content of these elements 
    13901422            is a time expressed as a local time with a 
    1391             timezone.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1872"></a>3.5.23.&nbsp;ListPublisherRegistrationsResponse</h4></div></div></div><p>The response message to ListPublishersRegistrations. It includes 
     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 
    13921424        a list of information sets about Publishers Registrations.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
    13931425   &lt;SOAP-ENV:Header&gt; 
     
    14341466            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 
    14351467            Publisher Registration. The content of these elements is a time 
    1436             expressed as UTC time.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1946"></a>3.5.24.&nbsp;ListPullPoints</h4></div></div></div><p>The next administrative method. It enables listing of available 
     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 
    14371469        PullPoints. The method consists of several optional filtering 
    14381470        parameters.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     
    14851517            termination time. The content of these elements is a time 
    14861518            expressed as a local time with a 
    1487             timezone.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2027"></a>3.5.25.&nbsp;ListPullPointsResponse</h4></div></div></div><p>The response message to ListPullPoints. It includes a list of 
     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 
    14881520        information sets about filtered Pullpoints.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
    14891521   &lt;SOAP-ENV:Header&gt; 
     
    15301562            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 
    15311563            PullPoint. The content of these elements is a time expressed as 
    1532             UTC time.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2101"></a>3.5.26.&nbsp;ListTopicNamespaces</h4></div></div></div><p>An administrative method. It is designed to listing available 
     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 
    15331565        Topic Namespaces and Topics assigned to this namespaces.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
    15341566   &lt;SOAP-ENV:Header&gt; 
     
    15541586            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 
    15551587            enables filtering of TopicNamespaces based on their 
    1556             targetNamespace names.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2141"></a>3.5.27.&nbsp;ListTopicNamespacesResponse</h4></div></div></div><p>The response message to ListTopicNamespaces. The message 
     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 
    15571589        consists of information sets for each filtered TopicNamespace. A 
    15581590        single set includes targetNamespaces and a list of topics.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     
    15951627            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 
    15961628            value should be compliant with anyURI.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListTopicNamespacesResponse/smn-ext:TopicNamespace/smn-ext:Topic</em></span></p><p>A list of topics belonging to a TopicNamespace. Each listed 
    1597             topic is proceded by a targetNamespace so it is uniq.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2200"></a>3.5.28.&nbsp;AddTopicNamespace</h4></div></div></div><p>An administrative method. The method may be invoked to add a new 
     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 
    15981630        TopicNamespace to the <span class="emphasis"><em>IQCG Notification</em></span>.</p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
    15991631   &lt;SOAP-ENV:Header&gt; 
     
    16221654            <span class="emphasis"><em>If differ, a fault will be 
    16231655            returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//smn-ext:AddTopicNamespaces/wstop:TopicNamespace</em></span></p><p>The element defining a single Topic Namespace. It cames from 
    1624             WS-Topics schema.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2237"></a>3.5.29.&nbsp;AddTopicNamespaceResponse</h4></div></div></div><p>A response message to a AddTopicNamespaceRequest. It is empty 
     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 
    16251657        and only confirms successfull addition of a TopicNamespace to the 
    16261658        <span class="emphasis"><em>QCG Notification</em></span> service. </p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     
    16381670&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: 
    16391671            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/AddTopicNamespaceResponse.</em></span><span class="emphasis"><em><span class="emphasis"><em> 
    1640             If differ, a fault will be returned.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2262"></a>3.5.30.&nbsp;RemoveTopicNamespace</h4></div></div></div><p>The next administrative method. It is used to remove a 
     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 
    16411673        TopicNamespace from the <span class="emphasis"><em>QCG Notification</em></span> system. 
    16421674        Note that the removing may be only temporary (active to the restart of 
     
    16611693            <span class="emphasis"><em>If differ, a fault will be 
    16621694            returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//smn-ext:RemoveTopicNamespaces/smn-ext:targetNamespace</em></span></p><p>The targetNamespace name of a TopicNamespace dedicated to 
    1663             remove - anyURI.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2296"></a>3.5.31.&nbsp;RemoveTopicNamespaceResponse</h4></div></div></div><p>A response message to a RemoveTopicNamespaceRequest. It is empty 
     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 
    16641696        and confirms the successfull deletion of a TopicNamespace. 
    16651697        </p><pre class="programlisting">&lt;SOAP-ENV:Envelope ... &gt; 
     
    16771709&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: 
    16781710            <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/RemoveTopicNamespaceResponse.</em></span><span class="emphasis"><em><span class="emphasis"><em> 
    1679             If differ, a fault will be returned.</em></span></em></span></p></li></ul></div></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e2318"></a>4.&nbsp;Administration Guide of <span class="emphasis"><em>QCG 
    1680     Notification</em></span></h2></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2323"></a>4.1.&nbsp;Prerequisites</h3></div></div></div><p>In order to build and install <span class="emphasis"><em>QCG 
     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 
    16811713      Notification</em></span>, an administrator has to appropriately configure 
    16821714      operating system. There is some dependencies to external software that 
    1683       should be satisfied.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2331"></a>4.1.1.&nbsp;QCG Core library</h4></div></div></div><p><span class="emphasis"><em>QCG Notification</em></span> is based on the 
     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 
    16841716        <span class="emphasis"><em>QCG Core</em></span> library developed by the 
    16851717        <span class="emphasis"><em>QCG</em></span> team. QCG Core is a common utility library 
    16861718        providing set of basic modules used by other components within QCG 
    16871719        Project. For more information see QCG Core documentation.</p><p>The QCG Core library should be properly configured in prior to 
    1688         preparation of <span class="emphasis"><em>QCG Notification</em></span>.</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2349"></a>4.2.&nbsp;Building</h3></div></div></div><p>Before you compile <span class="emphasis"><em>QCG Notification</em></span>, you need 
     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 
    16891721      to run the configuration script first. It will try to check if all the 
    16901722      requirements are met and whether needed third party software is 
     
    17011733        <code class="filename">root</code> or the user that will execute <span class="emphasis"><em>QCG 
    17021734        Notification</em></span> service, assuming he has necessary privileges 
    1703         to do this.</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2410"></a>4.3.&nbsp;Creating database for <span class="emphasis"><em>QCG Notification</em></span> - the 
     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 
    17041736      PostgreSQL example</h3></div></div></div><p><span class="emphasis"><em>QCG Notification</em></span> can be run in two basic 
    17051737      modes related to the database connection: without database or with 
     
    17401772DebugFile       = odbc.debug</pre><p>You can also try some GUI tools to set up and manage ODBC and 
    17411773      databases. Check out if the following tools are available on your 
    1742       machine:</p><pre class="programlisting">$ DataManager</pre><pre class="programlisting">$ ODBCConfig</pre></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e2495"></a>5.&nbsp;Configuration of <span class="emphasis"><em>QCG Notification</em></span></h2></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2500"></a>5.1.&nbsp;Configuration File: <code class="filename">qcg-ntfd.xml</code></h3></div></div></div><pre class="programlisting">&lt;sm:QCGCore 
     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 
    17431775  xmlns:sm="http://schemas.qoscosgrid.org/core/2011/04/config" 
    17441776  xmlns="http://schemas.qoscosgrid.org/ntf/2011/04/config" 
     
    18541886              communication;</p></li><li><p>smn:ntf-publisher-gsoap-ssl for SSL based SOAP 
    18551887              communication;</p></li><li><p>smn:ntf-publisher-xmpp for XMPP based SOAP 
    1856               communication;</p></li></ul></div><p>For details see the <a class="link" href="#moduleoptions" title="5.2.&nbsp;Module configuration">Section 
     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 
    18571889          5.2</a>.</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar 
    18581890          </em></span>[smn:NotificationsVarType]</p><p>Various notification settings closely related to QCG 
     
    19411973      are loaded during the<span class="emphasis"><em> QCG Notification</em></span> run time. 
    19421974      Module definitions are specified in appropriate sections of the 
    1943       configuration file.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2817"></a>5.2.1.&nbsp;Publisher modules</h4></div></div></div><p>As it was discussed in the previous sections, in a typical 
     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 
    19441976        brokered notification scenario there are two types of communication 
    19451977        and notification channels that need to be setup. The first one is a 
     
    19511983        situation <span class="emphasis"><em>QCG Notification</em></span> plays a role of a 
    19521984        Notification Publisher. At this time, supported modules for this 
    1953         channel utilize a Web Service interface and XMPP interface.</p><div class="itemizedlist"><ul type="disc"><li><p><span class="bold"><strong>Publisher Anonymous WS 
     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 
    19541987            transport</strong></span></p><p><span class="emphasis"><em><span class="emphasis"><em>This type of transport is recommended 
    19551988            only for internal, secure network environments or 
     
    19651998  &lt;smn:X509CertKeyFile&gt;/opt/qcg/etc/ssl/qcg-ntf/qcg-ntfd.pem&lt;/smn:X509CertKeyFile&gt; 
    19661999  &lt;smn:X509KeyPass&gt;qcgpass&lt;/smn:X509KeyPass&gt; 
    1967   &lt;smn:TrustedCAFile&gt;/opt/qcg/etc/ssl/certs/qcg-ntf/ca.pem&lt;/smn:TrustedCAPath&gt; 
     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; 
    19682002&lt;/Module&gt;</pre><div class="itemizedlist"><ul type="circle"><li><p dir="lro"><span class="emphasis"><em>//smn:UseWSA 
    19692003                  <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 
     
    19772011                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>A path to the file with trusted CAs certificates. 
    19782012                  Either TrustedCAFile or TrustedCAPath must be 
    1979                   specified.</p></li></ul></div></li><li><p><span class="bold"><strong>Publisher SOAP over XMPP WS transport 
    1980             (experimental)</strong></span></p><pre class="programlisting">&lt;sm:Module xsi:type="smn:ntf-publisher-xmpp"&gt;                                                 
     2013                  specified.</p></li><li><p><span class="emphasis"><em>//smn:TrutedCAPath 
     2014                  <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;                                                 
    19812024    &lt;smn:Server&gt;xmppserver.qcg.com&lt;/smn:Server&gt; 
    19822025    &lt;smn:Port&gt;5222&lt;/smn:Port&gt; 
     
    20002043                  <span class="emphasis"><em>[string]</em></span></em></span></p><p>MD5 fingerprint of the encryption certificate used by 
    20012044                  the XMPP server. Upon mismatch, the connection will fail. 
    2002                   Use empty string to accept any certificate.</p></li></ul></div></li></ul></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2973"></a>5.3.&nbsp;WS-Topics management</h3></div></div></div><p>In the current release, a topics management in <span class="emphasis"><em>QCG 
     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 
     2073                  <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 
     2075                  <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 
     2078                  false.</p></li><li><p><span class="emphasis"><em>//smn:SendTimeout 
     2079                  <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 
    20032081      Notification</em></span> is relatively simple. The first step is a 
    20042082      preparation of an XML document with a Topic Namespace definition. This 
     
    20162094      unwanted removal by unseting write permissions for a certain 
    20172095      file.</p><p>An XML document describing a sample topic namespace is presented 
    2018       in the <a class="link" href="#ted" title="3.3.&nbsp;Topics, TopicExpressions and Dialects">Section 3.3</a>.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e3001"></a>5.4.&nbsp;Starting <span class="emphasis"><em>QCG Notification</em></span></h3></div></div></div><p>To start <span class="emphasis"><em>QCG Notification</em></span> as a daemon 
     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 
    20192097      type:</p><pre class="programlisting">$ ./qcg-ntfd</pre><p>If you start <span class="emphasis"><em>QCG Notification</em></span> with parameter 
    20202098      -h you will get an optional parameters list:</p><pre class="programlisting">$ ./qcg-ntfd -h 
     
    20272105  -h              print this help</pre><p>Once you run <span class="emphasis"><em>QCG 
    20282106      Notification</em></span> as a daemon, a log file is created. Using 
    2029       various log levels, you can log less or more details.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e3024"></a>5.5.&nbsp;Stopping <span class="emphasis"><em>QCG Notification</em></span></h3></div></div></div><p>At the moment, shutdown is performed simply by sending 
     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 
    20302108      <code class="filename">SIGINT</code> signal to the service, e.g.:</p><pre class="programlisting">$ kill -SIGINT `pidof qcg-ntfd`</pre></div></div></div> 
    20312109}}}