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