Changes between Version 8 and Version 9 of technicalGuideAndManual
- Timestamp:
- 04/04/12 12:47:21 (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
technicalGuideAndManual
v8 v9 1 1 {{{ 2 2 #!html 3 <div class="article" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="d0e1"></a><span class="emphasis"><em>QCG Notification</em></span> v. 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"><<a class="email" href="mailto:bbosak@man.poznan.pl">bbosak@man.poznan.pl</a>></code></div><div class="author"><h3 class="author"><span class="firstname">Krzysztof</span> <span class="surname">Kurowski</span></h3><code class="email"><<a class="email" href="mailto:krzysztof.kurowski@man.poznan.pl">krzysztof.kurowski@man.poznan.pl</a>></code></div></div></div><div><p class="releaseinfo">2.4.4</p></div><div><p class="copyright">Copyright © 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. 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"><<a class="email" href="mailto:bbosak@man.poznan.pl">bbosak@man.poznan.pl</a>></code></div><div class="author"><h3 class="author"><span class="firstname">Krzysztof</span> <span class="surname">Kurowski</span></h3><code class="email"><<a class="email" href="mailto:krzysztof.kurowski@man.poznan.pl">krzysztof.kurowski@man.poznan.pl</a>></code></div></div></div><div><p class="releaseinfo">2.6.1</p></div><div><p class="copyright">Copyright © 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. Introduction</h2></div></div></div><p><span class="bold"><strong>QCG Notification</strong></span> is a reference 8 9 implementation of a set of industry Web Service specifications (<a class="link" href="#WS-Notification"></a><a class="ulink" href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsn" target="_top">WS-Notification 9 10 OASIS standard)</a><a class="link" href="#WS-Notification"></a> for message push/pull-style notification, … … 45 46 Services.</p><p>This document assumes that the reader has at least a basic 46 47 background in Web Service and SOA technologies.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e71"></a>1.3. 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. Terminology and WS-Notification Concept</h2></div></div></div><p>The aim of this section is to capture high-level functionality of48 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. Terminology and WS-Notification Concept</h2></div></div></div><p>The aim of this section is to capture high-level functionality of 48 49 <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="d0e8 8"></a>2.1. 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. WS-Notification Fundamentals</h4></div></div></div><p>Notification-based pattern is commonly used for50 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. 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. WS-Notification Fundamentals</h4></div></div></div><p>Notification-based pattern is commonly used for 50 51 interaction between distributed objects. WS-Notification is a family 51 52 of related specifications that standardizes notification concept and … … 59 60 service.</p><p>Specification URL:</p><p><a class="ulink" href="http://docs.oasis-open.org/wsn/wsn-ws_brokered_notification-1.3-spec-pr-0.2.pdf" target="_top">http://docs.oasis-open.org/wsn/wsn-ws_brokered_notification-1.3-spec-os.pdf</a></p></dd></dl></div><div class="variablelist"><dl><dt><span class="term"><a name="WS-topics"></a>WS-Topics</span></dt><dd><p>Defines mechanism to organize and categorize items of 60 61 interest for subscriptions known as "topics".</p><p>Specification URL:</p><p><a class="ulink" href="http://docs.oasis-open.org/wsn/wsn-ws_topics-1.3-spec-pr-0.2.pdf" target="_top">http://docs.oasis-open.org/wsn/wsn-ws_topics-1.3-spec-os.pdf</a></p></dd></dl></div><p>The next subsections will present main notification concepts 61 defined in the mentioned specifications.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e13 4"></a>2.1.2. WS-BaseNotification</h4></div></div></div><p>The WS-BaseNotification document is a basic reference on which62 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. WS-BaseNotification</h4></div></div></div><p>The WS-BaseNotification document is a basic reference on which 62 63 all the other specifications in the standard WS-Notification family 63 64 depend. In fact, it defines precisely two important notification 64 65 roles/actors called respectively NotificationProducer and 65 66 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 1. 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 is67 WS-BaseNotification is presented below.</p><div class="figure"><a name="BaseEntities"></a><p class="title"><b>Figure 1. 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 67 68 following:</p><div class="variablelist"><dl><dt><span class="term">Situation</span></dt><dd><p>Some occurrence known by a NotificationProducer. A 68 69 Situation is a reason of dispatching a Notification.</p></dd><dt><span class="term">Notification</span></dt><dd><p><a name="a"></a>An artifact of a Situation containing information … … 87 88 messages produced on each topic. A new notification replaces 88 89 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="d0e19 6"></a>2.1.3. WS-BrokeredNotification</h4></div></div></div><p>In a nutshell, the WS-BrokeredNotification specification is an90 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. WS-BrokeredNotification</h4></div></div></div><p>In a nutshell, the WS-BrokeredNotification specification is an 90 91 extension of described above the WS-BaseNotification concept. However, 91 92 it introduces a new important notification role called 92 93 NotificationBroker and defines more advanced notification scenarios. 93 94 The figure below shows an example scenario and notification message 94 flow where NotificationBroker is present.</p><div class="figure"><a name="d0e 202"></a><p class="title"><b>Figure 2. Web Services BrokeredNotification entities - QCG95 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 and95 flow where NotificationBroker is present.</p><div class="figure"><a name="d0e198"></a><p class="title"><b>Figure 2. 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 96 97 modifications in the WS-BrokeredNotificatison terminology. Below the 97 98 most relevant definitions are presented.</p><div class="variablelist"><dl><dt><span class="term">Situation</span></dt><dd><p>Some occurrence, known by a Publisher. A Situation is a … … 110 111 from Publishers to NotificationConsumers on the basis of 111 112 Subscriptions' parameters.</p></dd><dt><span class="term">NotificationConsumer</span></dt><dd><p>An endpoint designated to receive Notifications produced 112 by a Publisher a s a result of a Subscription and later113 redistributed by a NotificationBroker.</p></dd><dt><span class="term">PullPoint</span></dt><dd><p>The purpose of PullPoints is enabling pull-style113 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 114 115 notifications. In general, PullPoints accumulate notifications 115 116 and offer an interface for retrieving these notifications by … … 135 136 scenarios in service oriented systems we recommend to use notification 136 137 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="d0e27 4"></a>2.1.4. WS-Topics</h4></div></div></div><p>The third important notification specification document called138 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. WS-Topics</h4></div></div></div><p>The third important notification specification document called 138 139 WS-Topics is strictly associated with WS-BaseNotification and 139 140 precisely defines a "topics" mechanism. Important definitions used in … … 145 146 TopicExpression. The specification defines four Dialects: 146 147 <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="d0e3 22"></a><p class="title"><b>Figure 3. 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. 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 reference148 <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 3. 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. 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 149 implementation of WS-BaseNotification, WS-BrokeredNotification and 149 150 WS-Topics OASIS industry standards. As a consistent and highly … … 163 164 messages transmission. Currently messages can be transported between 164 165 <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 169 171 demonstrating capabilities offered by <span class="emphasis"><em>QCG 170 172 Notification</em></span>.</p><div class="figure"><a name="notificationConsumers"></a><p class="title"><b>Figure 4. 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 4. Notification with multiple Publishers and multiple NotificationConsumers">diagram 4</a> shows173 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 4. Notification with multiple Publishers and multiple NotificationConsumers">diagram 4</a> shows 172 174 one of the basic notification flows supported by <span class="emphasis"><em>QCG 173 175 Notification</em></span>. Depending on records, Notifications produced … … 185 187 <span class="emphasis"><em>QCG Notification</em></span>. The diagram below shows a 186 188 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="d0e3 82"></a><p class="title"><b>Figure 5. Message flows: creating a Subscription, notifying188 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 a189 notifications between a Publisher and a NotificationConsumer.</p><div class="figure"><a name="d0e378"></a><p class="title"><b>Figure 5. 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 189 191 NotificationConsumer location and TopicExpression parameters to 190 192 <span class="emphasis"><em>QCG Notification</em></span>.</p></li><li><p><span class="emphasis"><em>QCG Notification</em></span> prepares appropriate … … 196 198 NotificationConsumers subscribed on a specified Topic. If so, 197 199 <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="d0e4 20"></a>2.2. UML-style Diagrams</h3></div></div></div><p>The document uses UML-style use-case diagrams to illustrate200 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. UML-style Diagrams</h3></div></div></div><p>The document uses UML-style use-case diagrams to illustrate 199 201 high-level use cases. The following list is probably sufficient for this 200 202 version of the document:</p><div class="itemizedlist"><ul type="disc"><li><p>Stick figures represents actors or roles in a scenario. These … … 220 222 clearly ordered message layout and connections among functional units. 221 223 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="d0e4 61"></a>2.2.1. `Main Use Cases</h4></div></div></div><div class="figure"><a name="d0e464"></a><p class="title"><b>Figure 6. 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 7. 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 8. 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 9. 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 10. 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. Main Sequence Diagrams</h4></div></div></div><div class="figure"><a name="d0e497"></a><p class="title"><b>Figure 11. 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. User Guide for a Publisher, Subscriber and223 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="d0e50 8"></a>3.1. Prefixes and Namespaces</h3></div></div></div><p>The following table presents namespaces tied with prefixes. The224 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. `Main Use Cases</h4></div></div></div><div class="figure"><a name="d0e460"></a><p class="title"><b>Figure 6. 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 7. 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 8. 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 9. 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 10. 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. Main Sequence Diagrams</h4></div></div></div><div class="figure"><a name="d0e493"></a><p class="title"><b>Figure 11. 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. 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. Prefixes and Namespaces</h3></div></div></div><p>The following table presents namespaces tied with prefixes. The 224 226 prefixes are used in example SOAP messages presented in the further 225 sections.</p><div class="table"><a name="d0e5 13"></a><p class="title"><b>Table 1. 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. 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>QCG227 sections.</p><div class="table"><a name="d0e509"></a><p class="title"><b>Table 1. 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. Interaction with <span class="emphasis"><em>QCG Notification</em></span></h3></div></div></div><p>In the next subsections an issue of cooperation with <span class="emphasis"><em>QCG 226 228 Notification</em></span> is presented independently for a Publisher, 227 229 Subscriber and NotificationConsumer. Although a conceptual style of 228 230 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="d0e59 6"></a>3.2.1. Publisher Interaction</h4></div></div></div><div class="figure"><a name="d0e599"></a><p class="title"><b>Figure 12. 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 Publisher231 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. Publisher Interaction</h4></div></div></div><div class="figure"><a name="d0e595"></a><p class="title"><b>Figure 12. 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 230 232 has to be registered before it starts sending Notifications. In this 231 233 situation, a Publisher sends the RegisterPublisherRequest message to … … 238 240 replaces the old one in CurrentMessages. After work, a Publisher 239 241 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="d0e6 10"></a>3.2.2. Subscriber interaction</h4></div></div></div><div class="figure"><a name="d0e613"></a><p class="title"><b>Figure 13. 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 the242 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. Subscriber interaction</h4></div></div></div><div class="figure"><a name="d0e609"></a><p class="title"><b>Figure 13. 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 241 243 SubscribeRequest message to <span class="emphasis"><em>QCG Notification</em></span>. 242 244 This message should contain an address of NotificationConsumer and a … … 245 247 Subscriber can define a boolean XPath expression that will be 246 248 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 253 257 can create a set of PullPoints. In a such situation, it has to invoke 254 258 the CreatePullPoint method offered by <span class="emphasis"><em>QCG Notification. … … 258 262 PullPoint resource can be destroyed by the DestroyPullPoint message 259 263 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="d0e63 5"></a>3.2.3. NotificationConsumer Interaction</h4></div></div></div><div class="figure"><a name="d0e639"></a><p class="title"><b>Figure 14. 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 a264 </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. NotificationConsumer Interaction</h4></div></div></div><div class="figure"><a name="d0e635"></a><p class="title"><b>Figure 14. 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 261 265 receiving of Notify messages. A NotificationConsumer can implement an 262 266 interface for receiving Notify messages sending by <span class="emphasis"><em>QCG … … 304 308 should be presented in a form of a prefix that refers to this 305 309 namespace.</p><p>For more details see: <a class="ulink" href="http://docs.oasis-open.org/wsn/wsn-ws_topics-1.3-spec-pr-0.2.pdf" target="_top">http://docs.oasis-open.org/wsn/wsn-ws_topics-1.3-spec-os.pdf</a> 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="d0e68 9"></a>3.4. Extensions</h3></div></div></div><p>The Oasis standard for notifications doesn't define details for310 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. Extensions</h3></div></div></div><p>The Oasis standard for notifications doesn't define details for 307 311 lower Levels of functionality so an architect of system is obligated to 308 312 introduce some extensions and clarifications. In the <span class="emphasis"><em>QCG … … 311 315 these extensions are related with other Oasis standards but some are 312 316 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="d0e69 7"></a>3.4.1. TopicExpression</h4></div></div></div><p><span class="emphasis"><em>QCG Notification </em></span>remote peers have to use317 subsections.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e693"></a>3.4.1. TopicExpression</h4></div></div></div><p><span class="emphasis"><em>QCG Notification </em></span>remote peers have to use 314 318 an appropriate TopicExpression XML element. The schema of this element 315 319 is defined according to Oasis standard in<a class="ulink" href="http://docs.oasis-open.org/wsn/b-2.xsd" target="_top"></a><a class="ulink" href="http://docs.oasis-open.org/wsn/b-2.xsd" target="_top"> … … 320 324 with the WSDL document, a @Dialect from the Topic element is 321 325 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="d0e70 8"></a>3.4.2. <span class="emphasis"><em>QCG Notification</em></span> Extensions</h4></div></div></div><p><span class="emphasis"><em>QCG Notification</em></span> introduces some extensions326 @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. <span class="emphasis"><em>QCG Notification</em></span> Extensions</h4></div></div></div><p><span class="emphasis"><em>QCG Notification</em></span> introduces some extensions 323 327 to WSDL as well as schema documents related to the Oasis standard. The 324 328 following schema defines these extensions. The first three elements … … 344 348 <xsd:element name="PullPointID" type="ID"/> 345 349 <xsd:element name="CurrentMessage" type="CM"/> 350 <xsd:element name="XSLTTranslation" type="XSLTTrans"/> 346 351 347 352 <xsd:simpleType name="ID"> … … 364 369 </xsd:sequence> 365 370 </xsd:complexType> 371 372 <xsd:simpleType name="XSLTTrans"> 373 <xsd:restriction base="xsd:string"> 374 <xsd:maxLength value="4096"/> 375 </xsd:restriction> 376 </xsd:simpleType> 366 377 367 378 <!-- ================= QCG Notification manager : ListPullPoints ================== --> … … 629 640 </xsd:element> 630 641 631 </xsd:schema></pre></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e71 9"></a>3.5. Methods Description</h3></div></div></div><p>The main idea of this chapter is to present the types of messages642 </xsd:schema></pre></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e715"></a>3.5. Methods Description</h3></div></div></div><p>The main idea of this chapter is to present the types of messages 632 643 used in the <span class="emphasis"><em>QCG Notification</em></span> scenario as well as 633 644 introduce how to construct and interpret these messages. The majority of … … 641 652 however there are also extensions;</p></li><li><p>For all messages it is important to set a correct 642 653 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="d0e7 53"></a>3.5.1. SubscribeRequest</h4></div></div></div><p>SubscribeRequest is sent by a Subscriber to <span class="emphasis"><em>QCG654 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. SubscribeRequest</h4></div></div></div><p>SubscribeRequest is sent by a Subscriber to <span class="emphasis"><em>QCG 644 655 Notification</em></span>. The message should contain information about 645 656 a NotificationConsumer and an expression defining Topic or Topics that … … 677 688 <span class="bold"><strong>2007-07-23T10:24:14+02:00</strong></span> 678 689 </wsnt:InitialTerminationTime> 690 <smn-ext:XSLTTranslation> 691 <![[CDATA<span class="bold"><strong> 692 <?xml version="1.0" encoding="ISO-8859-1"?> 693 <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"> 696 <xsl:output method="text"/> 697 <xsl:template match="/"> 698 ### Sample QCG-Notification message ### 699 <xsl:apply-templates/> 700 </xsl:template> 701 <xsl:template match="s:State"> 702 Value of State is: <xsl:value-of select="."/> 703 </xsl:template> 704 </xsl:stylesheet></strong></span> 705 ]]> 706 </smn-ext:XSLTTranslation> 679 707 </wsnt:Subscribe> 680 708 </SOAP-ENV:Body> … … 710 738 boolean(//{http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage}State[text()="on"].The 711 739 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 Subscriber740 <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 713 741 suggestion for the termination time of the Subscription being 714 742 created (expressed as a local time with timezone). If not present, … … 716 744 Notification <span class="emphasis"><em>specify a default time 717 745 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. 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 <![[CDATA and ]]> 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. SubscribeResponse</h4></div></div></div><p>In answer on SubscribeRequest there is sent the 719 751 SubscribeResponse message. <span class="emphasis"><em>QCG Notification</em></span> 720 752 deliver in this message a reference to the created Subscription. This … … 748 780 current solution it is the <span class="emphasis"><em>QCG Notification</em></span> 749 781 service address.</p></li><li><p><span class="emphasis"><em>//wsnt:SubscribeResponse/wsnt:SubscriptionReference/</em></span></p><p><span class="emphasis"><em>wsa:ReferenceParameters/SubscriptionID</em></span></p><p>An extensive element in xsd:any that contains Subscription 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="d0e 898"></a>3.5.3. RenewRequest</h4></div></div></div><p>When a Subscriber wants to renew a Subscription, it can send the782 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. RenewRequest</h4></div></div></div><p>When a Subscriber wants to renew a Subscription, it can send the 751 783 RenewRequest message to <span class="emphasis"><em>QCG Notification</em></span>. The 752 784 message should contain the Subscription ID element and a new … … 775 807 Subscription being renewed (expressed as a local time with 776 808 timezone).</p></li><li><p><span class="emphasis"><em>//wsnt:Renew/smn-ext:SubscriptionID</em></span></p><p>A Subscription ID that was received in the SubscribeResponse 777 message.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e9 39"></a>3.5.4. RenewResponse</h4></div></div></div><p>An answer to the RenewRequest message is RenewResponse. The809 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. RenewResponse</h4></div></div></div><p>An answer to the RenewRequest message is RenewResponse. The 778 810 message contains a termination time for the renewed 779 811 Subscription.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > … … 801 833 (expressed as UTC Time).</p></li></ul></div><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//wsnt:RenewResponse/wsnt:CurrentTime</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>A </em></span>QCG 802 834 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="d0e98 3"></a>3.5.5. UnsubscribeRequest</h4></div></div></div><p>When a Subscriber wants to terminate a Subscription, it has to835 (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. UnsubscribeRequest</h4></div></div></div><p>When a Subscriber wants to terminate a Subscription, it has to 804 836 send the UnsubscribeRequest message to <span class="emphasis"><em>QCG 805 837 Notification</em></span>. The parameter attached to this request is a … … 823 855 SubscriptionManager/UnsubscribeRequest. <span class="emphasis"><em>If differ, a 824 856 fault will be returned.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnt:Unsubscribe/smn-ext:SubscriptionID</em></span></p><p>A Subscription ID that was received in the SubscribeResponse 825 message.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e10 16"></a>3.5.6. UnsubscribeResponse</h4></div></div></div><p>UnsubscribeResponse is returned to a Subscriber after857 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. UnsubscribeResponse</h4></div></div></div><p>UnsubscribeResponse is returned to a Subscriber after 826 858 successfully processing the UnsubscribeRequest message.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > 827 859 <SOAP-ENV:Header> … … 839 871 <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ 840 872 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="d0e10 37"></a>3.5.7. RegisterPublisherRequest</h4></div></div></div><p>In order to sending Notifications, a Publisher can be obligated873 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. RegisterPublisherRequest</h4></div></div></div><p>In order to sending Notifications, a Publisher can be obligated 842 874 to register himself previosly in <span class="emphasis"><em>QCG 843 875 Notification</em></span>. For this purpose, it sends the … … 872 904 Notification <span class="emphasis"><em>specify the default time 873 905 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="d0e109 0"></a>3.5.8. 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. RegisterPublisherResponse</h4></div></div></div><p>In a response to a successful registration process, 875 907 <span class="emphasis"><em>QCG Notification</em></span> sends RegisterPublisherResponse. 876 908 This message contains a reference to the created Registration. The … … 905 937 Registration ID. It defines a session that is created after 906 938 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="d0e11 35"></a>3.5.9. Notify</h4></div></div></div><p>Notify consists of one or many NotificationMessages. Any of them939 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. Notify</h4></div></div></div><p>Notify consists of one or many NotificationMessages. Any of them 908 940 is a separate Notification message and is processed independently. 909 941 NotificationMessage should define a single Topic it concerns. … … 958 990 "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full".</em></span></p></li><li><p><span class="emphasis"><em>//wsnt:Notify/wsnt:NotificationMessage/wsnt:ProducerReference/wsa:Address</em></span></p><p>A Notification producer (Publisher) address.</p></li><li><p><span class="emphasis"><em>//wsnt:Notify/wsnt:NotificationMessage/wsnt:Message</em></span></p><p>A Notify message content. Currently supported are messages 959 991 shorter than 4096 bytes.</p></li><li><p><span class="emphasis"><em>//wsnt:Notify/smn-ext:RegisterPublisherID</em></span></p><p>A Publisher Registration ID that was received in the 960 RegisterPublisherResponse message.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e12 19"></a>3.5.10. DestroyRegistrationRequest</h4></div></div></div><p>A Publisher can terminate a Registration by sending the992 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. DestroyRegistrationRequest</h4></div></div></div><p>A Publisher can terminate a Registration by sending the 961 993 DestroyRegistrationRequest message to <span class="emphasis"><em>QCG 962 994 Notification</em></span>. The parameter attached to this request is a … … 980 1012 <span class="emphasis"><em>If differ, a fault will be 981 1013 returned.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnbr:DestroyRegistration/smn-ext:RegisterPublisherID</em></span></p><p>A Publisher Registration ID that was received in a 982 RegisterPublisherResponse message.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e125 2"></a>3.5.11. DestroyRegistrationResponse</h4></div></div></div><p>DestroyRegistrationResponse is returned to a Publisher after a1014 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. DestroyRegistrationResponse</h4></div></div></div><p>DestroyRegistrationResponse is returned to a Publisher after a 983 1015 successful process of destroying a Publisher Registration, in a 984 1016 response to the DestroyRegistration message.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > … … 997 1029 PublisherRegistrationManager/DestroyRegistrationResponse. 998 1030 <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="d0e127 3"></a>3.5.12. CreatePullPointRequest</h4></div></div></div><p>In scenarios where the pull-style of notifications delivery is1031 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. CreatePullPointRequest</h4></div></div></div><p>In scenarios where the pull-style of notifications delivery is 1000 1032 needed, Subscribers can create PullPoints. To do this, a Subscriber 1001 1033 sends the CreatePullPointRequest message to <span class="emphasis"><em>QCG Notification … … 1015 1047 <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/CreatePullPoint/CreatePullPointRequest. 1016 1048 <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="d0e1 297"></a>3.5.13. CreatePullPointResponse</h4></div></div></div><p>The CreatePullPointResponse message is returned in a response to1049 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. CreatePullPointResponse</h4></div></div></div><p>The CreatePullPointResponse message is returned in a response to 1018 1050 the request of PullPoint creation. This message contains a reference 1019 1051 to the just created PullPoint. </p><pre class="programlisting"><SOAP-ENV:Envelope ... > … … 1035 1067 <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/CreatePullPoint/CreatePullPointResponse. 1036 1068 <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="d0e13 27"></a>3.5.14. GetMessages</h4></div></div></div><p>A Pull-style NotificationConsumer can get messages buffered in a1069 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. GetMessages</h4></div></div></div><p>A Pull-style NotificationConsumer can get messages buffered in a 1038 1070 PullPoint by invoking the GetMessages method. It sends the 1039 1071 GetMessagesRequest message directly to the specified PullPoint. The … … 1058 1090 returned.</em></span></em></span></p></li></ul></div><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//wsnt:GetMessages/wsnt:MaximumNumber</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>An optional element. It defines a 1059 1091 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="d0e136 0"></a>3.5.15. GetMessagesResponse</h4></div></div></div><p>GetMessagesResponse, a response message to GetMessages, consists1092 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. GetMessagesResponse</h4></div></div></div><p>GetMessagesResponse, a response message to GetMessages, consists 1061 1093 of a set of Notifications received from the PullPoint. 1062 1094 </p><pre class="programlisting"><SOAP-ENV:Envelope ... > … … 1106 1138 "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete", 1107 1139 "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full".</em></span></p></li><li><p><span class="emphasis"><em>//wsnt:GetMessagesResponse/wsnt:NotificationMessage/wsnt:ProducerReference/wsa:Address</em></span></p><p>A Notification producer (Publisher) address.</p></li><li><p><span class="emphasis"><em>//wsnt:GetMessagesResponse/wsnt:NotificationMessage/wsnt:Message</em></span></p><p>A Notify message content. Currently supported are messages 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="d0e14 37"></a>3.5.16. DestroyPullPointRequest</h4></div></div></div><p>A PullPoint can be destroyed by invoking a DestroyPullPoint1140 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. DestroyPullPointRequest</h4></div></div></div><p>A PullPoint can be destroyed by invoking a DestroyPullPoint 1109 1141 method. An empty request message should be sent directly to the 1110 1142 PullPoint.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > … … 1123 1155 <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/PullPoint/DestroyPullPointRequest. 1124 1156 <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="d0e14 58"></a>3.5.17. DestroyPullPointResponse</h4></div></div></div><p>A response to a DestroyPullPointRequest message is an empty1157 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. DestroyPullPointResponse</h4></div></div></div><p>A response to a DestroyPullPointRequest message is an empty 1126 1158 DestroyPullPointResponse message.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > 1127 1159 <SOAP-ENV:Header> … … 1139 1171 <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/PullPoint/DestroyPullPointResponse. 1140 1172 <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="d0e14 79"></a>3.5.18. GetCurrentMessageRequest</h4></div></div></div><p>GetCurrentMessageRequest is useful especially when a new1173 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. GetCurrentMessageRequest</h4></div></div></div><p>GetCurrentMessageRequest is useful especially when a new 1142 1174 NotificationConsumer is connecting and want to get the last published 1143 1175 Notification Message on a specified Topic. Single GetCurrentMessage … … 1173 1205 "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete", 1174 1206 "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="d0e15 26"></a>3.5.19. GetCurrentMessageResponse</h4></div></div></div><p>In a response to GetCurrentMessageRequest <span class="emphasis"><em>QCG1207 </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. GetCurrentMessageResponse</h4></div></div></div><p>In a response to GetCurrentMessageRequest <span class="emphasis"><em>QCG 1176 1208 Notification</em></span> prepares GetCurrentMessageResponse. This 1177 1209 message includes the content of the last Notification … … 1212 1244 this element is the last Notification message published to the 1213 1245 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="d0e159 2"></a>3.5.20. 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. ListSubscriptions</h4></div></div></div><p>The first method from the the group of administrative methods. 1215 1247 It may be invoked to get an information about available subscriptions 1216 1248 in the <span class="emphasis"><em>QCG Notification</em></span> service. The method … … 1278 1310 Subscribe message. In this method it is utilized to filter 1279 1311 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="d0e1 694"></a>3.5.21. ListSubscriptionsResponse</h4></div></div></div><p>The message is sent in the response to ListSubscriptions. It1312 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. ListSubscriptionsResponse</h4></div></div></div><p>The message is sent in the response to ListSubscriptions. It 1281 1313 includes a list of information sets about available and propably 1282 1314 filtered Subscriptions.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > … … 1337 1369 UTC time.</em></span></em></span></p></li><li><p><span class="emphasis"><em>/smn-ext:ListSubscriptionsResponse/smn-ext:Subscription/wsnt:Filter</em></span></p><p>The same parameter as the parameter specified in the 1338 1370 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="d0e179 1"></a>3.5.22. ListPublishersRegistrations</h4></div></div></div><p>The next method from the the group of administrative methods. It1371 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. ListPublishersRegistrations</h4></div></div></div><p>The next method from the the group of administrative methods. It 1340 1372 may be utilized to list Publishers Registrations. The method consists 1341 1373 of several filtering parameters.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > … … 1389 1421 time and maximal termination time. The content of these elements 1390 1422 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="d0e187 2"></a>3.5.23. ListPublisherRegistrationsResponse</h4></div></div></div><p>The response message to ListPublishersRegistrations. It includes1423 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. ListPublisherRegistrationsResponse</h4></div></div></div><p>The response message to ListPublishersRegistrations. It includes 1392 1424 a list of information sets about Publishers Registrations.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > 1393 1425 <SOAP-ENV:Header> … … 1434 1466 address of a publisher.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListPublishersRegistrationsResponse/smn-ext:PublisherRegistration/smn-ext:CreationTime</em></span></p><p><span class="emphasis"><em>/smn-ext:ListPublishersRegistrationsResponse/smn-ext:PublisherRegistration/smn-ext:TerminationTime</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>Creation time and termination time of a 1435 1467 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="d0e19 46"></a>3.5.24. ListPullPoints</h4></div></div></div><p>The next administrative method. It enables listing of available1468 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. ListPullPoints</h4></div></div></div><p>The next administrative method. It enables listing of available 1437 1469 PullPoints. The method consists of several optional filtering 1438 1470 parameters.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > … … 1485 1517 termination time. The content of these elements is a time 1486 1518 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="d0e20 27"></a>3.5.25. ListPullPointsResponse</h4></div></div></div><p>The response message to ListPullPoints. It includes a list of1519 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. ListPullPointsResponse</h4></div></div></div><p>The response message to ListPullPoints. It includes a list of 1488 1520 information sets about filtered Pullpoints.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > 1489 1521 <SOAP-ENV:Header> … … 1530 1562 CreatePullPointResponse message.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListPullPointsResponse/smn-ext:PullPoint/smn-ext:CreationTime</em></span></p><p><span class="emphasis"><em>/smn-ext:ListPullPointsResponse/smn-ext:PullPoint/smn-ext:TerminationTime</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>Creation time and termination time of a 1531 1563 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="d0e210 1"></a>3.5.26. ListTopicNamespaces</h4></div></div></div><p>An administrative method. It is designed to listing available1564 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. ListTopicNamespaces</h4></div></div></div><p>An administrative method. It is designed to listing available 1533 1565 Topic Namespaces and Topics assigned to this namespaces.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > 1534 1566 <SOAP-ENV:Header> … … 1554 1586 schema. It consists of optional filtering parameters.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListPullPoints/smn-ext:Filter/smn-ext:targetNamespace</em></span></p><p>A targetNamespace of a TopicNamespace. This parameter 1555 1587 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="d0e214 1"></a>3.5.27. ListTopicNamespacesResponse</h4></div></div></div><p>The response message to ListTopicNamespaces. The message1588 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. ListTopicNamespacesResponse</h4></div></div></div><p>The response message to ListTopicNamespaces. The message 1557 1589 consists of information sets for each filtered TopicNamespace. A 1558 1590 single set includes targetNamespaces and a list of topics.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > … … 1595 1627 TopicNamespace.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//smn-ext:ListTopicNamespacesResponse/smn-ext:TopicNamespace/smn-ext:targetNamespace</em></span></p><p>A targetNamespace identifying single TopicNamespace. The 1596 1628 value should be compliant with anyURI.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListTopicNamespacesResponse/smn-ext:TopicNamespace/smn-ext:Topic</em></span></p><p>A list of topics belonging to a TopicNamespace. Each listed 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="d0e220 0"></a>3.5.28. AddTopicNamespace</h4></div></div></div><p>An administrative method. The method may be invoked to add a new1629 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. AddTopicNamespace</h4></div></div></div><p>An administrative method. The method may be invoked to add a new 1598 1630 TopicNamespace to the <span class="emphasis"><em>IQCG Notification</em></span>.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > 1599 1631 <SOAP-ENV:Header> … … 1622 1654 <span class="emphasis"><em>If differ, a fault will be 1623 1655 returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//smn-ext:AddTopicNamespaces/wstop:TopicNamespace</em></span></p><p>The element defining a single Topic Namespace. It cames from 1624 WS-Topics schema.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e22 37"></a>3.5.29. AddTopicNamespaceResponse</h4></div></div></div><p>A response message to a AddTopicNamespaceRequest. It is empty1656 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. AddTopicNamespaceResponse</h4></div></div></div><p>A response message to a AddTopicNamespaceRequest. It is empty 1625 1657 and only confirms successfull addition of a TopicNamespace to the 1626 1658 <span class="emphasis"><em>QCG Notification</em></span> service. </p><pre class="programlisting"><SOAP-ENV:Envelope ... > … … 1638 1670 </SOAP-ENV:Envelope></pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 1639 1671 <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="d0e226 2"></a>3.5.30. RemoveTopicNamespace</h4></div></div></div><p>The next administrative method. It is used to remove a1672 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. RemoveTopicNamespace</h4></div></div></div><p>The next administrative method. It is used to remove a 1641 1673 TopicNamespace from the <span class="emphasis"><em>QCG Notification</em></span> system. 1642 1674 Note that the removing may be only temporary (active to the restart of … … 1661 1693 <span class="emphasis"><em>If differ, a fault will be 1662 1694 returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//smn-ext:RemoveTopicNamespaces/smn-ext:targetNamespace</em></span></p><p>The targetNamespace name of a TopicNamespace dedicated to 1663 remove - anyURI.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2 296"></a>3.5.31. RemoveTopicNamespaceResponse</h4></div></div></div><p>A response message to a RemoveTopicNamespaceRequest. It is empty1695 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. RemoveTopicNamespaceResponse</h4></div></div></div><p>A response message to a RemoveTopicNamespaceRequest. It is empty 1664 1696 and confirms the successfull deletion of a TopicNamespace. 1665 1697 </p><pre class="programlisting"><SOAP-ENV:Envelope ... > … … 1677 1709 </SOAP-ENV:Envelope></pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: 1678 1710 <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="d0e23 18"></a>4. Administration Guide of <span class="emphasis"><em>QCG1680 Notification</em></span></h2></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e232 3"></a>4.1. Prerequisites</h3></div></div></div><p>In order to build and install <span class="emphasis"><em>QCG1711 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. 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. Prerequisites</h3></div></div></div><p>In order to build and install <span class="emphasis"><em>QCG 1681 1713 Notification</em></span>, an administrator has to appropriately configure 1682 1714 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="d0e233 1"></a>4.1.1. QCG Core library</h4></div></div></div><p><span class="emphasis"><em>QCG Notification</em></span> is based on the1715 should be satisfied.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2337"></a>4.1.1. QCG Core library</h4></div></div></div><p><span class="emphasis"><em>QCG Notification</em></span> is based on the 1684 1716 <span class="emphasis"><em>QCG Core</em></span> library developed by the 1685 1717 <span class="emphasis"><em>QCG</em></span> team. QCG Core is a common utility library 1686 1718 providing set of basic modules used by other components within QCG 1687 1719 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="d0e23 49"></a>4.2. Building</h3></div></div></div><p>Before you compile <span class="emphasis"><em>QCG Notification</em></span>, you need1720 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. Building</h3></div></div></div><p>Before you compile <span class="emphasis"><em>QCG Notification</em></span>, you need 1689 1721 to run the configuration script first. It will try to check if all the 1690 1722 requirements are met and whether needed third party software is … … 1701 1733 <code class="filename">root</code> or the user that will execute <span class="emphasis"><em>QCG 1702 1734 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="d0e241 0"></a>4.3. Creating database for <span class="emphasis"><em>QCG Notification</em></span> - the1735 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. Creating database for <span class="emphasis"><em>QCG Notification</em></span> - the 1704 1736 PostgreSQL example</h3></div></div></div><p><span class="emphasis"><em>QCG Notification</em></span> can be run in two basic 1705 1737 modes related to the database connection: without database or with … … 1740 1772 DebugFile = odbc.debug</pre><p>You can also try some GUI tools to set up and manage ODBC and 1741 1773 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="d0e2 495"></a>5. 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. Configuration File: <code class="filename">qcg-ntfd.xml</code></h3></div></div></div><pre class="programlisting"><sm:QCGCore1774 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. 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. Configuration File: <code class="filename">qcg-ntfd.xml</code></h3></div></div></div><pre class="programlisting"><sm:QCGCore 1743 1775 xmlns:sm="http://schemas.qoscosgrid.org/core/2011/04/config" 1744 1776 xmlns="http://schemas.qoscosgrid.org/ntf/2011/04/config" … … 1854 1886 communication;</p></li><li><p>smn:ntf-publisher-gsoap-ssl for SSL based SOAP 1855 1887 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. Module configuration">Section1888 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. Module configuration">Section 1857 1889 5.2</a>.</p></li><li><p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar 1858 1890 </em></span>[smn:NotificationsVarType]</p><p>Various notification settings closely related to QCG … … 1941 1973 are loaded during the<span class="emphasis"><em> QCG Notification</em></span> run time. 1942 1974 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="d0e28 17"></a>5.2.1. Publisher modules</h4></div></div></div><p>As it was discussed in the previous sections, in a typical1975 configuration file.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2826"></a>5.2.1. Publisher modules</h4></div></div></div><p>As it was discussed in the previous sections, in a typical 1944 1976 brokered notification scenario there are two types of communication 1945 1977 and notification channels that need to be setup. The first one is a … … 1951 1983 situation <span class="emphasis"><em>QCG Notification</em></span> plays a role of a 1952 1984 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 1954 1987 transport</strong></span></p><p><span class="emphasis"><em><span class="emphasis"><em>This type of transport is recommended 1955 1988 only for internal, secure network environments or … … 1965 1998 <smn:X509CertKeyFile>/opt/qcg/etc/ssl/qcg-ntf/qcg-ntfd.pem</smn:X509CertKeyFile> 1966 1999 <smn:X509KeyPass>qcgpass</smn:X509KeyPass> 1967 <smn:TrustedCAFile>/opt/qcg/etc/ssl/certs/qcg-ntf/ca.pem</smn:TrustedCAPath> 2000 <smn:TrustedCAFile>/opt/qcg/etc/ssl/certs/qcg-ntf/ca.pem</smn:TrustedCAFile> 2001 <smn:TrustedCAPath>/opt/qcg/etc/ssl/certs/qcg-ntf/ca.pem</smn:TrustedCAPath> 1968 2002 </Module></pre><div class="itemizedlist"><ul type="circle"><li><p dir="lro"><span class="emphasis"><em>//smn:UseWSA 1969 2003 <span class="emphasis"><em>[bolean]</em></span></em></span></p><p>Determine if WS-Addressing should be used.</p></li><li><p dir="lro"><span class="emphasis"><em>//smn:RecvTimeout … … 1977 2011 <span class="emphasis"><em>[string]</em></span></em></span></p><p>A path to the file with trusted CAs certificates. 1978 2012 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"><sm:Module xsi:type="smn:ntf-publisher-xmpp"> 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"><sm:Module xsi:type="smn:ntf-publisher-xmpp"> 1981 2024 <smn:Server>xmppserver.qcg.com</smn:Server> 1982 2025 <smn:Port>5222</smn:Port> … … 2000 2043 <span class="emphasis"><em>[string]</em></span></em></span></p><p>MD5 fingerprint of the encryption certificate used by 2001 2044 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. 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"><sm:Module xsi:type="smn:ntf-publisher-smtp"> 2050 <smn:ServerURL>smtp://localhost:25</smn:ServerURL> 2051 <smn:User>someuser</smn:User> 2052 <smn:Password>somepassword</smn:Password> 2053 <smn:Encryption>TLS</smn:Encryption> 2054 <smn:TrustedCAFile>somefile</smn:TrustedCAFile> 2055 <smn:TrustedCAPath>somedir</smn:TrustedCAPath> 2056 <smn:From>some@from</smn:From> 2057 <smn:Subject>Some subject</smn:Subject> 2058 <smn:Trace>false</smn:Trace> 2059 <smn:SendTimeout>10</smn:SendTimeout> 2060 </sm:Module> </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. WS-Topics management</h3></div></div></div><p>In the current release, a topics management in <span class="emphasis"><em>QCG 2003 2081 Notification</em></span> is relatively simple. The first step is a 2004 2082 preparation of an XML document with a Topic Namespace definition. This … … 2016 2094 unwanted removal by unseting write permissions for a certain 2017 2095 file.</p><p>An XML document describing a sample topic namespace is presented 2018 in the <a class="link" href="#ted" title="3.3. 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="d0e3 001"></a>5.4. 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 daemon2096 in the <a class="link" href="#ted" title="3.3. 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. Starting <span class="emphasis"><em>QCG Notification</em></span></h3></div></div></div><p>To start <span class="emphasis"><em>QCG Notification</em></span> as a daemon 2019 2097 type:</p><pre class="programlisting">$ ./qcg-ntfd</pre><p>If you start <span class="emphasis"><em>QCG Notification</em></span> with parameter 2020 2098 -h you will get an optional parameters list:</p><pre class="programlisting">$ ./qcg-ntfd -h … … 2027 2105 -h print this help</pre><p>Once you run <span class="emphasis"><em>QCG 2028 2106 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="d0e3 024"></a>5.5. Stopping <span class="emphasis"><em>QCG Notification</em></span></h3></div></div></div><p>At the moment, shutdown is performed simply by sending2107 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. Stopping <span class="emphasis"><em>QCG Notification</em></span></h3></div></div></div><p>At the moment, shutdown is performed simply by sending 2030 2108 <code class="filename">SIGINT</code> signal to the service, e.g.:</p><pre class="programlisting">$ kill -SIGINT `pidof qcg-ntfd`</pre></div></div></div> 2031 2109 }}}