5 | | Manual</h2></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname">Bartosz</span> <span class="surname">Bosak</span></h3><code class="email"><<a class="email" href="mailto:bbosak@man.poznan.pl">bbosak@man.poznan.pl</a>></code></div><div class="author"><h3 class="author"><span class="firstname">Krzysztof</span> <span class="surname">Kurowski</span></h3><code class="email"><<a class="email" href="mailto:krzysztof.kurowski@man.poznan.pl">krzysztof.kurowski@man.poznan.pl</a>></code></div></div></div><div><p class="releaseinfo">2.6.1</p></div><div><p class="copyright">Copyright © 2008-2012 Poznan Supercomputing and Networking Center</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#d0e37">1. Introduction</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e48">1.1. Motivations</a></span></dt><dt><span class="sect2"><a href="#d0e56">1.2. Purpose of the Document</a></span></dt><dt><span class="sect2"><a href="#d0e71">1.3. Status</a></span></dt></dl></dd><dt><span class="sect1"><a href="#d0e76">2. Terminology and WS-Notification Concept</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e84">2.1. WS-Notification Concept</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e87">2.1.1. WS-Notification Fundamentals</a></span></dt><dt><span class="sect3"><a href="#d0e130">2.1.2. WS-BaseNotification</a></span></dt><dt><span class="sect3"><a href="#d0e192">2.1.3. WS-BrokeredNotification</a></span></dt><dt><span class="sect3"><a href="#d0e270">2.1.4. WS-Topics</a></span></dt><dt><span class="sect3"><a href="#d0e324">2.1.5. Base of QCG Notification</a></span></dt></dl></dd><dt><span class="sect2"><a href="#d0e416">2.2. UML-style Diagrams</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e457">2.2.1. `Main Use Cases</a></span></dt><dt><span class="sect3"><a href="#d0e490">2.2.2. Main Sequence Diagrams</a></span></dt></dl></dd></dl></dd><dt><span class="sect1"><a href="#d0e499">3. User Guide for a Publisher, Subscriber and |
6 | | NotificationConsumer </a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e504">3.1. Prefixes and Namespaces</a></span></dt><dt><span class="sect2"><a href="#d0e582">3.2. Interaction with QCG Notification</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e592">3.2.1. Publisher Interaction</a></span></dt><dt><span class="sect3"><a href="#d0e606">3.2.2. Subscriber interaction</a></span></dt><dt><span class="sect3"><a href="#d0e631">3.2.3. NotificationConsumer Interaction</a></span></dt></dl></dd><dt><span class="sect2"><a href="#ted">3.3. Topics, TopicExpressions and Dialects</a></span></dt><dt><span class="sect2"><a href="#d0e685">3.4. Extensions</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e693">3.4.1. TopicExpression</a></span></dt><dt><span class="sect3"><a href="#d0e704">3.4.2. QCG Notification Extensions</a></span></dt></dl></dd><dt><span class="sect2"><a href="#d0e715">3.5. Methods Description</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e749">3.5.1. SubscribeRequest</a></span></dt><dt><span class="sect3"><a href="#d0e856">3.5.2. SubscribeResponse</a></span></dt><dt><span class="sect3"><a href="#d0e904">3.5.3. RenewRequest</a></span></dt><dt><span class="sect3"><a href="#d0e945">3.5.4. RenewResponse</a></span></dt><dt><span class="sect3"><a href="#d0e989">3.5.5. UnsubscribeRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1022">3.5.6. UnsubscribeResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1043">3.5.7. RegisterPublisherRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1096">3.5.8. RegisterPublisherResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1141">3.5.9. Notify</a></span></dt><dt><span class="sect3"><a href="#d0e1225">3.5.10. DestroyRegistrationRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1258">3.5.11. DestroyRegistrationResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1279">3.5.12. CreatePullPointRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1303">3.5.13. CreatePullPointResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1333">3.5.14. GetMessages</a></span></dt><dt><span class="sect3"><a href="#d0e1366">3.5.15. GetMessagesResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1443">3.5.16. DestroyPullPointRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1464">3.5.17. DestroyPullPointResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1485">3.5.18. GetCurrentMessageRequest</a></span></dt><dt><span class="sect3"><a href="#d0e1532">3.5.19. GetCurrentMessageResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1598">3.5.20. ListSubscriptions</a></span></dt><dt><span class="sect3"><a href="#d0e1700">3.5.21. ListSubscriptionsResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1797">3.5.22. ListPublishersRegistrations</a></span></dt><dt><span class="sect3"><a href="#d0e1878">3.5.23. ListPublisherRegistrationsResponse</a></span></dt><dt><span class="sect3"><a href="#d0e1952">3.5.24. ListPullPoints</a></span></dt><dt><span class="sect3"><a href="#d0e2033">3.5.25. ListPullPointsResponse</a></span></dt><dt><span class="sect3"><a href="#d0e2107">3.5.26. ListTopicNamespaces</a></span></dt><dt><span class="sect3"><a href="#d0e2147">3.5.27. ListTopicNamespacesResponse</a></span></dt><dt><span class="sect3"><a href="#d0e2206">3.5.28. AddTopicNamespace</a></span></dt><dt><span class="sect3"><a href="#d0e2243">3.5.29. AddTopicNamespaceResponse</a></span></dt><dt><span class="sect3"><a href="#d0e2268">3.5.30. RemoveTopicNamespace</a></span></dt><dt><span class="sect3"><a href="#d0e2302">3.5.31. RemoveTopicNamespaceResponse</a></span></dt></dl></dd></dl></dd><dt><span class="sect1"><a href="#d0e2324">4. Administration Guide of QCG |
7 | | Notification</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e2329">4.1. Prerequisites</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e2337">4.1.1. QCG Core library</a></span></dt></dl></dd><dt><span class="sect2"><a href="#d0e2355">4.2. Building</a></span></dt><dt><span class="sect2"><a href="#d0e2416">4.3. Creating database for QCG Notification - the |
8 | | PostgreSQL example</a></span></dt></dl></dd><dt><span class="sect1"><a href="#d0e2501">5. Configuration of QCG Notification</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e2506">5.1. Configuration File: qcg-ntfd.xml</a></span></dt><dt><span class="sect2"><a href="#moduleoptions">5.2. Module configuration</a></span></dt><dd><dl><dt><span class="sect3"><a href="#d0e2826">5.2.1. Publisher modules</a></span></dt></dl></dd><dt><span class="sect2"><a href="#d0e3085">5.3. WS-Topics management</a></span></dt><dt><span class="sect2"><a href="#d0e3113">5.4. Starting QCG Notification</a></span></dt><dt><span class="sect2"><a href="#d0e3136">5.5. Stopping QCG Notification</a></span></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e37"></a>1. Introduction</h2></div></div></div><p><span class="bold"><strong>QCG Notification</strong></span> is a reference |
9 | | implementation of a set of industry Web Service specifications (<a class="link" href="#WS-Notification"></a><a class="ulink" href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsn" target="_top">WS-Notification |
10 | | OASIS standard)</a><a class="link" href="#WS-Notification"></a> for message push/pull-style notification, |
11 | | using a topic-based publish/subscribe pattern. It supports standard |
12 | | message exchanges to be implemented by any Web Service providers |
13 | | (including also services within QCG Service Bus), that wish to participate |
14 | | in notifications, standard message exchanges for a notification-broker |
15 | | service provider (allowing publication of messages from entities that are |
16 | | not themselves service providers), operational requirements expected of |
17 | | service providers and requesters that participate in notifications, and an |
18 | | XML model that describes topics (i.e., items of interest for |
19 | | subscriptions.).</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e48"></a>1.1. Motivations</h3></div></div></div><p>Reliable notification and messaging services are key components in |
20 | | service-oriented architectures (SOA) and distributed computing. However, |
21 | | early Web Services, such as those for getting stock or whether daily |
22 | | reports, were seemingly all remote procedure calls (RPC) oriented. In |
23 | | RPC systems, the receiver typically performs the requested Web Service |
24 | | and sends a response back to the consumer over the same connection on |
25 | | which the request arrived. Communication in this case is fully |
26 | | synchronous, and often also called a pull-style message exchange. Today, |
27 | | many existing SOA environments are based on synchronous message |
28 | | exchange, but in the future we expect more and more needs for |
29 | | asynchronous push Web Services. Moreover, existing approaches in a |
30 | | relatively simple and often non standard based way provide notification |
31 | | capabilities for distributed Web Services. Available reference |
32 | | implementations of industry standards, e.g. defined by OASIS |
33 | | standardization body, either implement only partially notification |
34 | | standards or do not meet high performance requirements. Therefore, our |
35 | | main motivation was to design and implement <span class="emphasis"><em>QCG |
36 | | Notification</em></span> to offer more advanced push/pull |
37 | | (synchronous/asynchronous) standard notification routines for QCG |
38 | | Service Bus services as well as any third party Web Services.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e56"></a>1.2. Purpose of the Document</h3></div></div></div><p>The main goal of this document is to define a set of initial use |
39 | | cases, scenarios and specify software requirements for <span class="emphasis"><em>QCG |
40 | | Notification</em></span>, its programming application interface, |
41 | | functional units and the integration with both internal and external |
42 | | modules.</p><p>The document is aimed at software architects and programmers who |
43 | | will be developing software components based on this document. Many |
44 | | requirements and <span class="emphasis"><em>QCG Notification </em></span>concept itself |
45 | | might be interesting for developers and end users of any Web |
46 | | Services.</p><p>This document assumes that the reader has at least a basic |
47 | | background in Web Service and SOA technologies.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e71"></a>1.3. Status</h3></div></div></div><p>This document is updated periodically on no particular |
48 | | schedule.</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e76"></a>2. Terminology and WS-Notification Concept</h2></div></div></div><p>The aim of this section is to capture high-level functionality of |
49 | | <span class="emphasis"><em>QCG Notification</em></span> and/or interaction without providing |
50 | | excessive implementation or technical details of the system.</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e84"></a>2.1. WS-Notification Concept</h3></div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e87"></a>2.1.1. WS-Notification Fundamentals</h4></div></div></div><p>Notification-based pattern is commonly used for |
51 | | interaction between distributed objects. WS-Notification is a family |
52 | | of related specifications that standardizes notification concept and |
53 | | topic-based information distribution in SOA and Web Service based |
54 | | systems. There are three normative OASIS specifications: |
55 | | WS-BaseNotification, WS-BrokeredNotification and WS-Topics.</p><div class="variablelist"><dl><dt><span class="term">WS-BaseNotification</span></dt><dd><p>Standardizes the terminology, concepts, operations, WSDL |
56 | | and XML needed to express the basic roles involved in Web |
57 | | services publish and subscribe for notification message |
58 | | exchange.</p><p>Specification URL:</p><p><a class="ulink" href="http://docs.oasis-open.org/wsn/wsn-ws_base_notification-1.3-spec-pr-0.2.pdf" target="_top">http://docs.oasis-open.org/wsn/wsn-ws_base_notification-1.3-spec-os.pdf</a></p></dd></dl></div><div class="variablelist"><dl><dt><span class="term">WS-BrokeredNotification</span></dt><dd><p>Describes specific objectives for expanded version of |
59 | | notification messages exchange with indirect NotificationBroker |
60 | | service.</p><p>Specification URL:</p><p><a class="ulink" href="http://docs.oasis-open.org/wsn/wsn-ws_brokered_notification-1.3-spec-pr-0.2.pdf" target="_top">http://docs.oasis-open.org/wsn/wsn-ws_brokered_notification-1.3-spec-os.pdf</a></p></dd></dl></div><div class="variablelist"><dl><dt><span class="term"><a name="WS-topics"></a>WS-Topics</span></dt><dd><p>Defines mechanism to organize and categorize items of |
61 | | interest for subscriptions known as "topics".</p><p>Specification URL:</p><p><a class="ulink" href="http://docs.oasis-open.org/wsn/wsn-ws_topics-1.3-spec-pr-0.2.pdf" target="_top">http://docs.oasis-open.org/wsn/wsn-ws_topics-1.3-spec-os.pdf</a></p></dd></dl></div><p>The next subsections will present main notification concepts |
62 | | defined in the mentioned specifications.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e130"></a>2.1.2. WS-BaseNotification</h4></div></div></div><p>The WS-BaseNotification document is a basic reference on which |
63 | | all the other specifications in the standard WS-Notification family |
64 | | depend. In fact, it defines precisely two important notification |
65 | | roles/actors called respectively NotificationProducer and |
66 | | NotificationConsumer. An example system architecture based on |
67 | | WS-BaseNotification is presented below.</p><div class="figure"><a name="BaseEntities"></a><p class="title"><b>Figure 1. Web Services BaseNotification entities</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/smn_baseentities.png" align="middle" width="324" alt="Web Services BaseNotification entities"></div></div></div><p><br class="figure-break">The basic terminology related to the WS-BaseNotification is |
68 | | following:</p><div class="variablelist"><dl><dt><span class="term">Situation</span></dt><dd><p>Some occurrence known by a NotificationProducer. A |
69 | | Situation is a reason of dispatching a Notification.</p></dd><dt><span class="term">Notification</span></dt><dd><p><a name="a"></a>An artifact of a Situation containing information |
70 | | about that Situation. A Notification is represented as an XML |
71 | | element and dispatched by a NotificationProducer.</p></dd><dt><span class="term">Subscription</span></dt><dd><p>Represents relations between a NotificationProducer and |
72 | | a NotificationConsumer. A Subscription is created by a |
73 | | Subscriber and is consisted with filtering parameters such as |
74 | | a Topic, policies or context information.</p></dd><dt><span class="term">Subscriber</span></dt><dd><p>An unit that creates Subscriptions. It sends the |
75 | | SubscribeRequest message to a NotificationProducer |
76 | | service.</p></dd><dt><span class="term">NotificationProducer</span></dt><dd><p>Produces Notifications. In other words |
77 | | NotificationProducer detects Situation(s) and translates it to |
78 | | Notification message(s). It is also a Web Service responsible |
79 | | for creating Subscriptions by the SubscribeRequest |
80 | | message.</p></dd><dt><span class="term">NotificationConsumer</span></dt><dd><p>An endpoint designated to receive Notifications produced |
81 | | by a NotificationProducer as a result of a |
82 | | Subscription.</p></dd><dt><span class="term">PullPoint</span></dt><dd><p>The purpose of PullPoints is enabling pull-style |
83 | | notifications. In general, PullPoints accumulate notifications |
84 | | and offer an interface for retrieving these notifications by |
85 | | remote consumers. Since a PullPoint implements a |
86 | | NotificationConsumer interface it can be selected in a |
87 | | Subscription as a receiver of notifications.</p></dd><dt><span class="term">CurrentMessages</span></dt><dd><p>CurrentMessages is a buffer that keeps the latest |
88 | | messages produced on each topic. A new notification replaces |
89 | | the previous related to the same topic and currently buffered |
90 | | in CurrentMessages.</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e192"></a>2.1.3. WS-BrokeredNotification</h4></div></div></div><p>In a nutshell, the WS-BrokeredNotification specification is an |
91 | | extension of described above the WS-BaseNotification concept. However, |
92 | | it introduces a new important notification role called |
93 | | NotificationBroker and defines more advanced notification scenarios. |
94 | | The figure below shows an example scenario and notification message |
95 | | flow where NotificationBroker is present.</p><div class="figure"><a name="d0e198"></a><p class="title"><b>Figure 2. Web Services BrokeredNotification entities - QCG |
96 | | Notification entities</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/smn_brokeredentities.png" align="middle" width="324" alt="Web Services BrokeredNotification entities - QCG Notification entities"></div></div></div><p><br class="figure-break">Note, that there are some important enlargements and |
97 | | modifications in the WS-BrokeredNotificatison terminology. Below the |
98 | | most relevant definitions are presented.</p><div class="variablelist"><dl><dt><span class="term">Situation</span></dt><dd><p>Some occurrence, known by a Publisher. A Situation is a |
99 | | reason of dispatching a Notification.</p></dd><dt><span class="term">Notification</span></dt><dd><p>An artifact of a Situation containing information about |
100 | | that Situation. A Notification is represented as an XML element, |
101 | | dispatched by a Publisher and redistributed by a |
102 | | NotificationBroker.</p></dd><dt><span class="term">Publisher</span></dt><dd><p>An unit that creates Notification(s) - detects |
103 | | Situation(s) and translates it to Notification message(s). It |
104 | | doesn't have to be a Web Service.</p></dd><dt><span class="term">Subscription</span></dt><dd><p>Represents relations between a Publisher and a |
105 | | NotificationConsumer. A Subscription is created by a Subscriber |
106 | | and is consisted with filtering parameters such as a Topic, |
107 | | policies or a context information.</p></dd><dt><span class="term">Subscriber</span></dt><dd><p>An unit that creates Subscriptions. It sends the |
108 | | SubscribeRequest message to a SubscriptionManager |
109 | | interface.</p></dd><dt><span class="term">NotificationBroker</span></dt><dd><p>An intermediary Web service that decouples Publishers and |
110 | | NotificationConsumers. It redistributes Notifications received |
111 | | from Publishers to NotificationConsumers on the basis of |
112 | | Subscriptions' parameters.</p></dd><dt><span class="term">NotificationConsumer</span></dt><dd><p>An endpoint designated to receive Notifications produced |
113 | | by a Publisher and later redistributed by a NotificationBroker |
114 | | as a result of a Subscription.</p></dd><dt><span class="term">PullPoint</span></dt><dd><p>The purpose of PullPoints is enabling pull-style |
115 | | notifications. In general, PullPoints accumulate notifications |
116 | | and offer an interface for retrieving these notifications by |
117 | | remote consumers. Since a PullPoint implements a |
118 | | NotificationConsumer interface it can be selected in a |
119 | | Subscription as a receiver of notifications.</p></dd><dt><span class="term">CurrentMessages</span></dt><dd><p>CurrentMessages is a buffer that keeps the latest messages |
120 | | published on each topic. A new notification replaces the |
121 | | previous related to the same topic and currently buffered in |
122 | | CurrentMessages.</p></dd></dl></div><p>The main difference between WS-Base and WS-Brokered Notification |
123 | | specifications is that in the second case NotificationProducers do not |
124 | | have to be implemented as a Web Services. Publishers do not have to |
125 | | implement and be compliant with defined NotificationProducer |
126 | | interfaces. Finally, having a NotificationBroker as a mediator between |
127 | | different actors in a notification flow, NotificationConsumers are |
128 | | fully separated and do not have to know details about |
129 | | NotificationProducers.</p><p>Depending on distributed system requirements and use cases |
130 | | various notification routines, objects, and roles are usually |
131 | | involved. For instance, in the simplest case where an asynchronous |
132 | | communication is required, there is no need to use a notification |
133 | | mechanisms defined by WS-BrokeredNotification and basic notification |
134 | | routines defined by WS-BaseNotification are good enough to satisfy |
135 | | distributed system needs. The example scenario is presented on <a class="link" href="#BaseEntities" title="Figure 1. Web Services BaseNotification entities">Figure 1</a>. For more advanced notification |
136 | | scenarios in service oriented systems we recommend to use notification |
137 | | capabilities defined in WS-BrokeredNotification. One of the main |
138 | | scenario defined by WS-BrokeredNotification is presented on <a class="link" href="#BrokeredEntities">Figure 2</a> .</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e270"></a>2.1.4. WS-Topics</h4></div></div></div><p>The third important notification specification document called |
139 | | WS-Topics is strictly associated with WS-BaseNotification and |
140 | | precisely defines a "topics" mechanism. Important definitions used in |
141 | | the WS-Topics specification are presented below:</p><div class="variablelist"><dl><dt><span class="term">Topic</span></dt><dd><p>A concept used to categorize Notifications and their |
142 | | related Notification schemes. Topics are used to determine which |
143 | | subscribing NotificationConsumers should receive a specific |
144 | | Notification.</p></dd><dt><span class="term">Topic Tree</span></dt><dd><p>A hierarchical group of Topics.</p></dd><dt><span class="term">Topic Namespace</span></dt><dd><p>A forest of Topic Trees grouped into one namespace</p></dd><dt><span class="term">TopicExpression</span></dt><dd><p>An expression that identifies Topics from a Topic |
145 | | Namespace</p></dd><dt><span class="term">Dialect</span></dt><dd><p>Identifies the type of a grammar used in a |
146 | | TopicExpression. The specification defines four Dialects: |
147 | | <span class="emphasis"><em>Simple</em></span>, <span class="emphasis"><em>Concrete</em></span>, |
148 | | <span class="emphasis"><em>Full</em></span> and <span class="emphasis"><em>XPath</em></span>.</p></dd></dl></div><div class="figure"><a name="d0e318"></a><p class="title"><b>Figure 3. Example Topic Namespace</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/smn_topicnamespace.png" align="middle" width="324" alt="Example Topic Namespace"></div></div></div><br class="figure-break"></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e324"></a>2.1.5. Base of <span class="emphasis"><em>QCG Notification</em></span></h4></div></div></div><p><span class="emphasis"><em>QCG Notification</em></span> is a reference |
149 | | implementation of WS-BaseNotification, WS-BrokeredNotification and |
150 | | WS-Topics OASIS industry standards. As a consistent and highly |
151 | | efficient notification system it supports advanced brokered Web |
152 | | Service notification push/pull scenarios described in the <a class="link" href="#brokerednotifications">Section 2.1.3</a>. It has been |
153 | | designed to satisfy notification requirements and demands of large |
154 | | scale Web Service based systems, SOA environments and it acts as a |
155 | | core component in QCG Service Bus. To meet security requirements, |
156 | | <span class="emphasis"><em>QCG Notification</em></span> (or <span class="emphasis"><em>QCG Notification |
157 | | Provider</em></span>) exposes well defined Web Service and programming |
158 | | interfaces over QCG security mechanisms for dynamic notification, |
159 | | subscription, registration, forwarding, etc. As it was explained in |
160 | | the previous sections it can be used and integrated with various |
161 | | external third party Web Services playing roles of a notification |
162 | | Publisher, Subscriber or Consumer.</p><p>A flexible plug-in architecture of <span class="emphasis"><em>QCG Notification |
163 | | </em></span>enables using different communication protocols for |
164 | | messages transmission. Currently messages can be transported between |
165 | | <span class="emphasis"><em>QCG Notification</em></span> and third party entities not |
166 | | only through HTTP protocol, but also through XMPP (jabber) as well as |
167 | | SMTP (e-mail) protocols. It is possible to variously mix channels of |
168 | | communication, for example a notification sent by a Publisher being |
169 | | WS-Client as a HTTP message can be distributed over XMPP to jabber |
170 | | consumers.</p><p>Below we present a set of Web Service notification use cases |
171 | | demonstrating capabilities offered by <span class="emphasis"><em>QCG |
172 | | Notification</em></span>.</p><div class="figure"><a name="notificationConsumers"></a><p class="title"><b>Figure 4. Notification with multiple Publishers and multiple |
173 | | NotificationConsumers</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/smn_example1.png" align="middle" width="324" alt="Notification with multiple Publishers and multiple NotificationConsumers"></div></div></div><br class="figure-break"><p>The <a class="link" href="#notificationConsumers" title="Figure 4. Notification with multiple Publishers and multiple NotificationConsumers">diagram 4</a> shows |
174 | | one of the basic notification flows supported by <span class="emphasis"><em>QCG |
175 | | Notification</em></span>. Depending on records, Notifications produced |
176 | | by a Publisher and received by the <span class="emphasis"><em>QCG |
177 | | Notification</em></span> may or may not be dispatched to concrete |
178 | | NotificationConsumer. Note, that Subscriptions represent relationships |
179 | | between Topics and NotificationConsumers in this scenario. Before any |
180 | | Notification is delivered to a NotificationConsumer, a Subscriber has |
181 | | to send first a SubscribeRequest message to <span class="emphasis"><em>QCG |
182 | | Notification</em></span> in which all parameters of a Subscription are |
183 | | specified. Main parameters of a SubscribeRequest message are |
184 | | ConsumerReference and TopicExpression defined according to the |
185 | | specific Dialect type. On the other hand, before a Publisher starts |
186 | | sending Notifications it may be obligated to register himself in |
187 | | <span class="emphasis"><em>QCG Notification</em></span>. The diagram below shows a |
188 | | sequence of events in order to initialize an asynchronous process of |
189 | | notifications between a Publisher and a NotificationConsumer.</p><div class="figure"><a name="d0e378"></a><p class="title"><b>Figure 5. Message flows: creating a Subscription, notifying |
190 | | NotificationConsumers</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/smn_example2.png" align="middle" width="324" alt="Message flows: creating a Subscription, notifying NotificationConsumers"></div></div></div><br class="figure-break"><div class="orderedlist"><ol type="1"><li><p>A Subscriber sends the SubscribeRequest message with a |
191 | | NotificationConsumer location and TopicExpression parameters to |
192 | | <span class="emphasis"><em>QCG Notification</em></span>.</p></li><li><p><span class="emphasis"><em>QCG Notification</em></span> prepares appropriate |
193 | | records for a Subscription.</p></li><li><p>A Publisher register himself in <span class="emphasis"><em>QCG |
194 | | Notification</em></span> by sending the RegisterPublisher |
195 | | message.</p></li><li><p>A registered Publisher sends the Notify message on a |
196 | | specified Topic to a <span class="emphasis"><em>QCG Notification |
197 | | </em></span>service.</p></li><li><p><span class="emphasis"><em>QCG Notification</em></span> checks if there are |
198 | | NotificationConsumers subscribed on a specified Topic. If so, |
199 | | <span class="emphasis"><em>QCG Notification</em></span> sends asynchronous |
200 | | Notifications to these NotifcationConsumers.</p></li></ol></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e416"></a>2.2. UML-style Diagrams</h3></div></div></div><p>The document uses UML-style use-case diagrams to illustrate |
201 | | high-level use cases. The following list is probably sufficient for this |
202 | | version of the document:</p><div class="itemizedlist"><ul type="disc"><li><p>Stick figures represents actors or roles in a scenario. These |
203 | | can be human beings or software systems.</p></li><li><p>Ellipses represent use cases, i.e. actions or units of |
204 | | functionality in a system.</p></li><li><p>Lines between actors and use cases indicate a participation of |
205 | | the actor in the use case. At this level, no direction or payload of |
206 | | data flow is expressed by the lines between actors and use |
207 | | cases.</p></li></ul></div><p>The document uses UML-style sequence diagrams to illustrate |
208 | | detailed use case scenarios and later in the next sections. Meanings of |
209 | | graphics in these diagrams are as follows:</p><div class="itemizedlist"><ul type="disc"><li><p>Boxes at the top of the diagram represent an actor in the |
210 | | scenario.</p></li><li><p>Arrows with a solid head represent a message sent from one |
211 | | actor to another. The arrow points from sender to receiver.</p></li><li><p>Arrows with a line head represent the return value of a |
212 | | message. The arrow points from the receiver of the earlier message |
213 | | to the sender.</p></li><li><p>A dotted line running down the diagram from a box indicates |
214 | | that arrows whose endpoints (tail or head) is on the line apply to |
215 | | that actor.</p></li><li><p>Intersections between arrows and dotted lines are |
216 | | meaningless.</p></li><li><p>Vertical layout represents time. Messages (arrows) farther |
217 | | down on the page happen after messages higher on the page.</p></li><li><p>Horizontal layout has no formal meaning. Since right-pointing |
218 | | arrows look better, actors that initiate a scenario tend to appear |
219 | | leftward of actors they send messages to.</p></li></ul></div><p>Sequence diagrams are used in this document for more concrete |
220 | | design, and that actors and messages are often objects and object |
221 | | methods. They provide value for this document in that they give a |
222 | | clearly ordered message layout and connections among functional units. |
223 | | The actors and messages in the sequence diagrams are more properly roles |
224 | | in a scenario and actions associated with that scenario.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e457"></a>2.2.1. `Main Use Cases</h4></div></div></div><div class="figure"><a name="d0e460"></a><p class="title"><b>Figure 6. Use case diagram for a Publisher</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/use_publisher.png" align="middle" width="432" alt="Use case diagram for a Publisher"></div></div></div><br class="figure-break"><div class="figure"><a name="d0e466"></a><p class="title"><b>Figure 7. Use case diagram for a Subscriber</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/use_subscriber.png" align="middle" width="432" alt="Use case diagram for a Subscriber"></div></div></div><br class="figure-break"><div class="figure"><a name="d0e472"></a><p class="title"><b>Figure 8. Use case diagram for a NotificationConsumer</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/use_consumer.png" align="middle" width="432" alt="Use case diagram for a NotificationConsumer"></div></div></div><br class="figure-break"><div class="figure"><a name="d0e478"></a><p class="title"><b>Figure 9. Use case diagram for QCG Notification</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/use_qcgnotification.png" align="middle" width="432" alt="Use case diagram for QCG Notification"></div></div></div><br class="figure-break"><div class="figure"><a name="d0e484"></a><p class="title"><b>Figure 10. Use case diagram for a QCG Notification Administrator</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/use_administrator.png" align="middle" width="432" alt="Use case diagram for a QCG Notification Administrator"></div></div></div><br class="figure-break"></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e490"></a>2.2.2. Main Sequence Diagrams</h4></div></div></div><div class="figure"><a name="d0e493"></a><p class="title"><b>Figure 11. General sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/seq_all.png" align="middle" width="432" alt="General sequence diagram"></div></div></div><br class="figure-break"></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e499"></a>3. User Guide for a Publisher, Subscriber and |
225 | | NotificationConsumer<span class="emphasis"><em> </em></span></h2></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e504"></a>3.1. Prefixes and Namespaces</h3></div></div></div><p>The following table presents namespaces tied with prefixes. The |
226 | | prefixes are used in example SOAP messages presented in the further |
227 | | sections.</p><div class="table"><a name="d0e509"></a><p class="title"><b>Table 1. Prefixes and Namespaces</b></p><div class="table-contents"><table summary="Prefixes and Namespaces" border="1"><colgroup><col width="12%" align="left"><col width="88%"></colgroup><tbody><tr><td align="left"><span class="bold"><strong>Prefix</strong></span></td><td><span class="bold"><strong>Namespace</strong></span></td></tr><tr><td align="left">SOAP-ENV</td><td>http://schemas.xmlsoap.org/soap/envelope/</td></tr><tr><td align="left">SOAP-ENC</td><td>http://schemas.xmlsoap.org/soap/encoding/</td></tr><tr><td align="left">xsi</td><td>http://www.w3.org/2001/XMLSchema-instance</td></tr><tr><td align="left">xsd</td><td>http://www.w3.org/2001/XMLSchema</td></tr><tr><td align="left">wsa</td><td>http://www.w3.org/2005/08/addressing</td></tr><tr><td align="left">wsbf</td><td>http://docs.oasis-open.org/wsrf/bf-2</td></tr><tr><td align="left">wstop</td><td>http://docs.oasis-open.org/wsn/t-1</td></tr><tr><td align="left">wsr</td><td>http://docs.oasis-open.org/wsrf/r-2</td></tr><tr><td align="left">wsnt</td><td>http://docs.oasis-open.org/wsn/b-2</td></tr><tr><td align="left">wsntw</td><td>http://docs.oasis-open.org/wsn/bw-2</td></tr><tr><td align="left">wsnbr</td><td>http://docs.oasis-open.org/wsn/br-2</td></tr><tr><td align="left">smn-ext</td><td>http://schemas.qoscosgrid.org/ntf/2011/04/extensions</td></tr></tbody></table></div></div><br class="table-break"></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e582"></a>3.2. Interaction with <span class="emphasis"><em>QCG Notification</em></span></h3></div></div></div><p>In the next subsections an issue of cooperation with <span class="emphasis"><em>QCG |
228 | | Notification</em></span> is presented independently for a Publisher, |
229 | | Subscriber and NotificationConsumer. Although a conceptual style of |
230 | | interaction is described here in details, technical particularities of |
231 | | constructing messages are presented later.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e592"></a>3.2.1. Publisher Interaction</h4></div></div></div><div class="figure"><a name="d0e595"></a><p class="title"><b>Figure 12. Publisher interaction sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/seq_publisher.png" align="middle" width="432" alt="Publisher interaction sequence diagram"></div></div></div><br class="figure-break"><p>In the most general configuration of the service, a Publisher |
232 | | has to be registered before it starts sending Notifications. In this |
233 | | situation, a Publisher sends the RegisterPublisherRequest message to |
234 | | <span class="emphasis"><em>QCG Notification</em></span>. If everything goes well it |
235 | | receives the RegisterPublisherResponse message with a session ID. From |
236 | | this time a Publisher is entitled for sending Notify messages - the |
237 | | Notify message has to include received session ID in its content. The |
238 | | notifications can be forwarded to remote Notification Consumers or |
239 | | buffered locally in PullPoints. Moreover, every new notification |
240 | | replaces the old one in CurrentMessages. After work, a Publisher |
241 | | should unregister himself by sending DestroyRegistration. This message |
242 | | has to include a session ID likewise.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e606"></a>3.2.2. Subscriber interaction</h4></div></div></div><div class="figure"><a name="d0e609"></a><p class="title"><b>Figure 13. Subscriber interaction sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/seq_subscriber.png" align="middle" width="432" alt="Subscriber interaction sequence diagram"></div></div></div><br class="figure-break"><p>When a Subscriber wants to create a Subscription, it sends the |
243 | | SubscribeRequest message to <span class="emphasis"><em>QCG Notification</em></span>. |
244 | | This message should contain an address of NotificationConsumer and a |
245 | | TopicExpression that specifies a Topic or a set of Topics on which |
246 | | NotificationConsumer should receive Notifications. Additionally a |
247 | | Subscriber can define a boolean XPath expression that will be |
248 | | evaluated over Notification Messages for more sophisticated filtering. |
249 | | From the version 2.5.0 of the system, the Subscriber may specify XSLT |
250 | | document that will be used to transform message content by certain |
251 | | publishing modules. After creation of a Subscription <span class="emphasis"><em>QCG |
252 | | Notification</em></span> sends the SubscribeResponse message with a |
253 | | created Subscription ID. This ID should be attached to the |
254 | | UnsubscribeRequest message when a Subscription is not wanted and the |
255 | | Renew message when a Subscription should be refreshed. A Subscriber is |
256 | | allowed to create many equal Subscriptions.</p><p>If a scenario requires pull-style of notifications, a Subscriber |
257 | | can create a set of PullPoints. In a such situation, it has to invoke |
258 | | the CreatePullPoint method offered by <span class="emphasis"><em>QCG Notification. |
259 | | <span class="emphasis"><em>The response parameter of this method will be an address to |
260 | | the newly created <span class="emphasis"><em>PullPoint resource (Subscribers can assign |
261 | | this resources as NotificationConsumers in theirs Subscriptions). A |
262 | | PullPoint resource can be destroyed by the DestroyPullPoint message |
263 | | sent directly to this resource. |
264 | | </em></span></em></span></em></span></p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e631"></a>3.2.3. NotificationConsumer Interaction</h4></div></div></div><div class="figure"><a name="d0e635"></a><p class="title"><b>Figure 14. NotificationConsumer interaction sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/seq_consumer.png" align="middle" width="432" alt="NotificationConsumer interaction sequence diagram"></div></div></div><p><br class="figure-break">The main capability of a NotificationConsumer is a |
265 | | receiving of Notify messages. A NotificationConsumer can implement an |
266 | | interface for receiving Notify messages sending by <span class="emphasis"><em>QCG |
267 | | Notification</em></span> or can be a client of a PullPoint. In the |
268 | | second case, a NotificationConsumer can invoke GetMessages method |
269 | | offered by a certain PullPoint. Messages buffered in the PullPoint |
270 | | will be removed from the buffer and delivered in GetMessagesResponse |
271 | | to the consumer.</p><p>On the other hand, when a NotificationConsumer wants to receive |
272 | | the last Notification message sent on a specific Topic, it can do this |
273 | | by sending GetCurrentMessageRequest to <span class="emphasis"><em>QCG |
274 | | Notification</em></span>. Requested Notification will be supplied in |
275 | | the GetCurrentMessageResponse message.</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ted"></a>3.3. Topics, TopicExpressions and Dialects</h3></div></div></div><p>Before start-up of a <span class="emphasis"><em>QCG Notification</em></span> |
276 | | service, there should be defined Topic Namespaces in a system. Topic |
277 | | Namespaces should be created (usually by Publishers) and delivered to |
278 | | a<span class="emphasis"><em> QCG Notification</em></span> administrator in a form of XML |
279 | | documents. A following record presents a sample Topic Namespace |
280 | | identified by |
281 | | <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics.</em></span></p><pre class="programlisting"><wstop:TopicNamespace |
282 | | xmlns:wstop="http://docs.oasis-open.org/wsn/t-1" |
283 | | targetNamespace="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics"> |
284 | | <wstop:Topic name="House"> |
285 | | <wstop:Topic name="Kitchen"> |
286 | | <wstop:Topic name="Friedge"/> |
287 | | <wstop:Topic name="Cook"/> |
288 | | <wstop:Topic name="Light"/> |
289 | | </wstop:Topic> |
290 | | <wstop:Topic name="Toilet"> |
291 | | <wstop:Topic name="Light"/> |
292 | | </wstop:Topic> |
293 | | <wstop:Topic name="Room1"> |
294 | | <wstop:Topic name="Light"/> |
295 | | </wstop:Topic> |
296 | | <wstop:Topic name="Room2"> |
297 | | <wstop:Topic name="Light"/> |
298 | | </wstop:Topic> |
299 | | </wstop:Topic> |
300 | | </wstop:TopicNamespace></pre><p><span class="emphasis"><em>QCG Notification </em></span>supports three types of |
301 | | dialects: <span class="emphasis"><em>Simple</em></span>, <span class="emphasis"><em>Concrete</em></span> and |
302 | | <span class="emphasis"><em>Full</em></span>. If a message refer to Topics, it has to |
303 | | define TopicExpression that identifies one or more Topics (note there |
304 | | are situations when TopicExpression has to refer to exactly one Topic). |
305 | | TopicExpression has to be written in a supported Dialect. Further more |
306 | | TopicExpression has to define Topics from supported Topic Namespaces. To |
307 | | select an appropriate Topic Namespace, the first part of TopicExpression |
308 | | should be presented in a form of a prefix that refers to this |
309 | | namespace.</p><p>For more details see: <a class="ulink" href="http://docs.oasis-open.org/wsn/wsn-ws_topics-1.3-spec-pr-0.2.pdf" target="_top">http://docs.oasis-open.org/wsn/wsn-ws_topics-1.3-spec-os.pdf</a> |
310 | | and check out examples of methods in the <a class="link" href="#methodsdescription">section 3.4.</a></p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e685"></a>3.4. Extensions</h3></div></div></div><p>The Oasis standard for notifications doesn't define details for |
311 | | lower Levels of functionality so an architect of system is obligated to |
312 | | introduce some extensions and clarifications. In the <span class="emphasis"><em>QCG |
313 | | Notification </em></span>scenario there are several messages that have to |
314 | | be expanded with additional information written as embedded XML. Some of |
315 | | these extensions are related with other Oasis standards but some are |
316 | | quite new. Technical details are described in the successive |
317 | | subsections.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e693"></a>3.4.1. TopicExpression</h4></div></div></div><p><span class="emphasis"><em>QCG Notification </em></span>remote peers have to use |
318 | | an appropriate TopicExpression XML element. The schema of this element |
319 | | is defined according to Oasis standard in<a class="ulink" href="http://docs.oasis-open.org/wsn/b-2.xsd" target="_top"></a><a class="ulink" href="http://docs.oasis-open.org/wsn/b-2.xsd" target="_top"> |
320 | | http://docs.oasis-open.org/wsn/b-2.xsd</a><a class="ulink" href="http://docs.oasis-open.org/wsn/b-2.xsd" target="_top"></a>. Please note |
321 | | here that the Nofity and GetCurrentMessageRequest messages contain a |
322 | | Topic element which contains a required @Dialect attribute. Also |
323 | | TopicExpression has to define a @Dialect attribute. For conformity |
324 | | with the WSDL document, a @Dialect from the Topic element is |
325 | | significant. It is not necessary but preferred to attach the same |
326 | | @Dialect in the TopicExpression element against.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e704"></a>3.4.2. <span class="emphasis"><em>QCG Notification</em></span> Extensions</h4></div></div></div><p><span class="emphasis"><em>QCG Notification</em></span> introduces some extensions |
327 | | to WSDL as well as schema documents related to the Oasis standard. The |
328 | | following schema defines these extensions. The first three elements |
329 | | named RegisterPublisherID, SubscriptionID and PullPointID are IDs for |
330 | | Publisher Registrations, created Subscriptions and PullPoints. |
331 | | CurrentMessage is used for supplementation of |
332 | | GetCurrentMessageResponse. The rest of the elements is utilized in the |
333 | | managing methods, the elements are used in order to: listing |
334 | | Subscriptions, listing PublisherRegistrations and listing |
335 | | PullPoints.</p><pre class="programlisting"><?xml version="1.0" encoding="UTF-8"?> |
336 | | <xsd:schema |
337 | | xmlns="http://schemas.qoscosgrid.org/ntf/2011/04/extensions" |
338 | | xmlns:xsd="http://www.w3.org/2001/XMLSchema" |
339 | | xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" |
340 | | targetNamespace="http://schemas.qoscosgrid.org/ntf/2011/04/extensions" |
341 | | elementFormDefault="qualified"> |
342 | | |
343 | | <xsd:import namespace="http://docs.oasis-open.org/wsn/b-2" |
344 | | schemaLocation="http://docs.oasis-open.org/wsn/b-2.xsd"/> |
345 | | |
346 | | <xsd:element name="RegisterPublisherID" type="ID"/> |
347 | | <xsd:element name="SubscriptionID" type="ID"/> |
348 | | <xsd:element name="PullPointID" type="ID"/> |
349 | | <xsd:element name="CurrentMessage" type="CM"/> |
350 | | <xsd:element name="XSLTTranslation" type="XSLTTrans"/> |
351 | | |
352 | | <xsd:simpleType name="ID"> |
353 | | <xsd:restriction base="xsd:string"> |
354 | | <xsd:maxLength value="32"/> |
355 | | </xsd:restriction> |
356 | | </xsd:simpleType> |
357 | | |
358 | | <xsd:complexType name="CM"> |
359 | | <xsd:all> |
360 | | <xsd:element name="NotifyTime" type="xsd:dateTime" minOccurs="0"/> |
361 | | <xsd:element ref="wsnt:ProducerReference" minOccurs="0" maxOccurs="1"/> |
362 | | <xsd:element name="Message" type="MSG" minOccurs="1"/> |
363 | | </xsd:all> |
364 | | </xsd:complexType> |
365 | | |
366 | | <xsd:complexType name="MSG"> |
367 | | <xsd:sequence> |
368 | | <xsd:any minOccurs="0" maxOccurs="1" processContents="lax"/> |
369 | | </xsd:sequence> |
370 | | </xsd:complexType> |
371 | | |
372 | | <xsd:simpleType name="XSLTTrans"> |
373 | | <xsd:restriction base="xsd:string"> |
374 | | <xsd:maxLength value="4096"/> |
375 | | </xsd:restriction> |
376 | | </xsd:simpleType> |
377 | | |
378 | | <!-- ================= QCG Notification manager : ListPullPoints ================== --> |
379 | | |
380 | | <xsd:complexType name="ListSubscriptionsFilter"> |
381 | | <xsd:sequence> |
382 | | <xsd:element name="SubscriptionID" type="ID" minOccurs="0" maxOccurs="1"/> |
383 | | <xsd:element name="ConsumerReference" type="wsa:EndpointReferenceType" |
384 | | minOccurs="0" maxOccurs="1"/> |
385 | | <xsd:element name="CreationTimeMin" type="wsnt:AbsoluteOrRelativeTimeType" |
386 | | nillable="true" minOccurs="0" maxOccurs="1"/> |
387 | | <xsd:element name="CreationTimeMax" type="wsnt:AbsoluteOrRelativeTimeType" |
388 | | nillable="true" minOccurs="0" maxOccurs="1"/> |
389 | | <xsd:element name="TerminationTimeMin" type="wsnt:AbsoluteOrRelativeTimeType" |
390 | | nillable="true" minOccurs="0" maxOccurs="1"/> |
391 | | <xsd:element name="TerminationTimeMax" type="wsnt:AbsoluteOrRelativeTimeType" |
392 | | nillable="true" minOccurs="0" maxOccurs="1"/> |
393 | | <xsd:element ref="wsnt:Filter" minOccurs="0" maxOccurs="1"/> |
394 | | <xsd:any namespace="##other" processContents="lax" |
395 | | minOccurs="0" maxOccurs="unbounded"/> |
396 | | </xsd:sequence> |
397 | | </xsd:complexType> |
398 | | |
399 | | <xsd:element name="ListSubscriptions"> |
400 | | <xsd:complexType> |
401 | | <xsd:sequence> |
402 | | <xsd:element name="Filter" type="ListSubscriptionsFilter" |
403 | | minOccurs="0" maxOccurs="1"/> |
404 | | <xsd:element name="MaxNumber" type="xsd:integer" |
405 | | minOccurs="0" maxOccurs="1"/> |
406 | | <xsd:any namespace="##other" processContents="lax" |
407 | | minOccurs="0" maxOccurs="unbounded"/> |
408 | | </xsd:sequence> |
409 | | </xsd:complexType> |
410 | | </xsd:element> |
411 | | |
412 | | <xsd:complexType name="Subscription"> |
413 | | <xsd:sequence> |
414 | | <xsd:element name="SubscriptionID" type="ID"/> |
415 | | <xsd:element name="ConsumerReference" type="wsa:EndpointReferenceType" |
416 | | minOccurs="0" maxOccurs="1" /> |
417 | | <xsd:element name="CreationTime" type="wsnt:AbsoluteOrRelativeTimeType" |
418 | | nillable="true" minOccurs="0" maxOccurs="1"/> |
419 | | <xsd:element name="TerminationTime" type="wsnt:AbsoluteOrRelativeTimeType" |
420 | | nillable="true" minOccurs="0" maxOccurs="1"/> |
421 | | <xsd:element ref="wsnt:Filter" minOccurs="0" maxOccurs="1"/> |
422 | | <xsd:any namespace="##other" processContents="lax" |
423 | | minOccurs="0" maxOccurs="unbounded"/> |
424 | | </xsd:sequence> |
425 | | </xsd:complexType> |
426 | | |
427 | | <xsd:element name="ListSubscriptionsResponse"> |
428 | | <xsd:complexType> |
429 | | <xsd:sequence> |
430 | | <xsd:element name="Subscription" type="Subscription" |
431 | | minOccurs="0" maxOccurs="unbounded"/> |
432 | | <xsd:any namespace="##other" processContents="lax" |
433 | | minOccurs="0" maxOccurs="unbounded"/> |
434 | | </xsd:sequence> |
435 | | </xsd:complexType> |
436 | | </xsd:element> |
437 | | |
438 | | <!-- ================= QCG Notification manager : ListPublishersRegistrations ================== --> |
439 | | |
440 | | <xsd:complexType name="ListPublishersRegistrationsFilter"> |
441 | | <xsd:sequence> |
442 | | <xsd:element name="PublisherRegistrationID" type="ID" |
443 | | minOccurs="0" maxOccurs="1"/> |
444 | | <xsd:element name="PublisherReference" type="wsa:EndpointReferenceType" |
445 | | minOccurs="0" maxOccurs="1"/> |
446 | | <xsd:element name="CreationTimeMin" type="wsnt:AbsoluteOrRelativeTimeType" |
447 | | nillable="true" minOccurs="0" maxOccurs="1"/> |
448 | | <xsd:element name="CreationTimeMax" type="wsnt:AbsoluteOrRelativeTimeType" |
449 | | nillable="true" minOccurs="0" maxOccurs="1"/> |
450 | | <xsd:element name="TerminationTimeMin" type="wsnt:AbsoluteOrRelativeTimeType" |
451 | | nillable="true" minOccurs="0" maxOccurs="1"/> |
452 | | <xsd:element name="TerminationTimeMax" type="wsnt:AbsoluteOrRelativeTimeType" |
453 | | nillable="true" minOccurs="0" maxOccurs="1"/> |
454 | | <xsd:any namespace="##other" processContents="lax" |
455 | | minOccurs="0" maxOccurs="unbounded"/> |
456 | | </xsd:sequence> |
457 | | </xsd:complexType> |
458 | | |
459 | | <xsd:element name="ListPublishersRegistrations"> |
460 | | <xsd:complexType> |
461 | | <xsd:sequence> |
462 | | <xsd:element name="Filter" type="ListPublishersRegistrationsFilter" |
463 | | minOccurs="0" maxOccurs="1"/> |
464 | | <xsd:element name="MaxNumber" type="xsd:integer" |
465 | | minOccurs="0" maxOccurs="1"/> |
466 | | <xsd:any namespace="##other" processContents="lax" |
467 | | minOccurs="0" maxOccurs="unbounded"/> |
468 | | </xsd:sequence> |
469 | | </xsd:complexType> |
470 | | </xsd:element> |
471 | | |
472 | | <xsd:complexType name="PublisherRegistration"> |
473 | | <xsd:sequence> |
474 | | <xsd:element name="PublisherRegistrationID" type="ID"/> |
475 | | <xsd:element name="PublisherReference" type="wsa:EndpointReferenceType" |
476 | | minOccurs="0" maxOccurs="1"/> |
477 | | <xsd:element name="CreationTime" type="wsnt:AbsoluteOrRelativeTimeType" |
478 | | nillable="true" minOccurs="0" maxOccurs="1"/> |
479 | | <xsd:element name="TerminationTime" type="wsnt:AbsoluteOrRelativeTimeType" |
480 | | nillable="true" minOccurs="0" maxOccurs="1"/> |
481 | | <xsd:any namespace="##other" processContents="lax" |
482 | | minOccurs="0" maxOccurs="unbounded"/> |
483 | | </xsd:sequence> |
484 | | </xsd:complexType> |
485 | | |
486 | | <xsd:element name="ListPublishersRegistrationsResponse"> |
487 | | <xsd:complexType> |
488 | | <xsd:sequence> |
489 | | <xsd:element name="PublisherRegistration" type="PublisherRegistration" |
490 | | minOccurs="0" maxOccurs="unbounded"/> |
491 | | <xsd:any namespace="##other" processContents="lax" |
492 | | minOccurs="0" maxOccurs="unbounded"/> |
493 | | </xsd:sequence> |
494 | | </xsd:complexType> |
495 | | </xsd:element> |
496 | | |
497 | | <!-- ================= QCG Notification manager : ListPullPoints ================== --> |
498 | | |
499 | | <xsd:complexType name="ListPullPointsFilter"> |
500 | | <xsd:sequence> |
501 | | <xsd:element name="PullPointID" type="ID" |
502 | | minOccurs="0" maxOccurs="1"/> |
503 | | <xsd:element name="PullPointReference" type="wsa:EndpointReferenceType" |
504 | | minOccurs="0" maxOccurs="1"/> |
505 | | <xsd:element name="CreationTimeMin" type="wsnt:AbsoluteOrRelativeTimeType" |
506 | | nillable="true" minOccurs="0" maxOccurs="1"/> |
507 | | <xsd:element name="CreationTimeMax" type="wsnt:AbsoluteOrRelativeTimeType" |
508 | | nillable="true" minOccurs="0" maxOccurs="1"/> |
509 | | <xsd:element name="TerminationTimeMin" type="wsnt:AbsoluteOrRelativeTimeType" |
510 | | nillable="true" minOccurs="0" maxOccurs="1"/> |
511 | | <xsd:element name="TerminationTimeMax" type="wsnt:AbsoluteOrRelativeTimeType" |
512 | | nillable="true" minOccurs="0" maxOccurs="1"/> |
513 | | <xsd:any namespace="##other" processContents="lax" |
514 | | minOccurs="0" maxOccurs="unbounded"/> |
515 | | </xsd:sequence> |
516 | | </xsd:complexType> |
517 | | |
518 | | <xsd:element name="ListPullPoints"> |
519 | | <xsd:complexType> |
520 | | <xsd:sequence> |
521 | | <xsd:element name="Filter" type="ListPullPointsFilter" |
522 | | minOccurs="0" maxOccurs="1"/> |
523 | | <xsd:element name="MaxNumber" type="xsd:integer" |
524 | | minOccurs="0" maxOccurs="1"/> |
525 | | <xsd:any namespace="##other" processContents="lax" |
526 | | minOccurs="0" maxOccurs="unbounded"/> |
527 | | </xsd:sequence> |
528 | | </xsd:complexType> |
529 | | </xsd:element> |
530 | | |
531 | | <xsd:complexType name="PullPoint"> |
532 | | <xsd:sequence> |
533 | | <xsd:element name="PullPointID" type="ID" |
534 | | minOccurs="0" maxOccurs="1"/> |
535 | | <xsd:element name="PullPointReference" type="wsa:EndpointReferenceType" |
536 | | minOccurs="0" maxOccurs="1"/> |
537 | | <xsd:element name="CreationTime" type="wsnt:AbsoluteOrRelativeTimeType" |
538 | | nillable="true" minOccurs="0" maxOccurs="1"/> |
539 | | <xsd:element name="TerminationTime" type="wsnt:AbsoluteOrRelativeTimeType" |
540 | | nillable="true" minOccurs="0" maxOccurs="1"/> |
541 | | <xsd:any namespace="##other" processContents="lax" |
542 | | minOccurs="0" maxOccurs="unbounded"/> |
543 | | </xsd:sequence> |
544 | | </xsd:complexType> |
545 | | |
546 | | <xsd:element name="ListPullPointsResponse"> |
547 | | <xsd:complexType> |
548 | | <xsd:sequence> |
549 | | <xsd:element name="PullPoint" type="PullPoint" |
550 | | minOccurs="0" maxOccurs="unbounded"/> |
551 | | <xsd:any namespace="##other" processContents="lax" |
552 | | minOccurs="0" maxOccurs="unbounded"/> |
553 | | </xsd:sequence> |
554 | | </xsd:complexType> |
555 | | </xsd:element> |
556 | | |
557 | | <!-- ================= QCG Notification manager : ListTopicNamespaces ================== --> |
558 | | |
559 | | <xsd:complexType name="ListTopicNamespacesFilter"> |
560 | | <xsd:sequence> |
561 | | <xsd:element name="targetNamespace" type="xsd:anyURI" |
562 | | minOccurs="0" maxOccurs="1"/> |
563 | | </xsd:sequence> |
564 | | </xsd:complexType> |
565 | | |
566 | | <xsd:element name="ListTopicNamespaces"> |
567 | | <xsd:complexType> |
568 | | <xsd:sequence> |
569 | | <xsd:element name="Filter" type="ListTopicNamespacesFilter" |
570 | | minOccurs="0" maxOccurs="1"/> |
571 | | <xsd:element name="MaxNumber" type="xsd:integer" |
572 | | minOccurs="0" maxOccurs="1"/> |
573 | | <xsd:any namespace="##other" processContents="lax" |
574 | | minOccurs="0" maxOccurs="unbounded"/> |
575 | | </xsd:sequence> |
576 | | </xsd:complexType> |
577 | | </xsd:element> |
578 | | |
579 | | <xsd:complexType name="TopicNamespace"> |
580 | | <xsd:sequence> |
581 | | <xsd:element name="targetNamespace" type="xsd:anyURI" use="required"/> |
582 | | <xsd:element name="Topics" type="xsd:anyURI" minOccurs="0" maxOccurs="unbounded"/> |
583 | | <xsd:any namespace="##other" processContents="lax" |
584 | | minOccurs="0" maxOccurs="unbounded"/> |
585 | | </xsd:sequence> |
586 | | </xsd:complexType> |
587 | | |
588 | | <xsd:element name="ListTopicNamespacesResponse"> |
589 | | <xsd:complexType> |
590 | | <xsd:sequence> |
591 | | <xsd:element name="TopicNamespace" type="TopicNamespace" |
592 | | minOccurs="0" maxOccurs="unbounded"/> |
593 | | <xsd:any namespace="##other" processContents="lax" |
594 | | minOccurs="0" maxOccurs="unbounded"/> |
595 | | </xsd:sequence> |
596 | | </xsd:complexType> |
597 | | </xsd:element> |
598 | | |
599 | | <!-- ================= QCG Notification manager : AddTopicNamespace ================== --> |
600 | | |
601 | | <xsd:element name="AddTopicNamespace"> |
602 | | <xsd:complexType> |
603 | | <xsd:sequence> |
604 | | <xsd:element ref="wstop:TopicNamespace"/> |
605 | | <xsd:any namespace="##other" processContents="lax" |
606 | | minOccurs="0" maxOccurs="unbounded"/> |
607 | | </xsd:sequence> |
608 | | </xsd:complexType> |
609 | | </xsd:element> |
610 | | |
611 | | <xsd:element name="AddTopicNamespaceResponse"> |
612 | | <xsd:complexType> |
613 | | <xsd:sequence> |
614 | | <xsd:any namespace="##other" processContents="lax" |
615 | | minOccurs="0" maxOccurs="unbounded"/> |
616 | | </xsd:sequence> |
617 | | </xsd:complexType> |
618 | | </xsd:element> |
619 | | |
620 | | <!-- ================= QCG Notification manager : RemoveTopicNamespace ================== --> |
621 | | |
622 | | <xsd:element name="RemoveTopicNamespace"> |
623 | | <xsd:complexType> |
624 | | <xsd:sequence> |
625 | | <xsd:element name="targetNamespace" type="xsd:anyURI" |
626 | | use="required"/> |
627 | | <xsd:any namespace="##other" processContents="lax" |
628 | | minOccurs="0" maxOccurs="unbounded"/> |
629 | | </xsd:sequence> |
630 | | </xsd:complexType> |
631 | | </xsd:element> |
632 | | |
633 | | <xsd:element name="RemoveTopicNamespaceResponse"> |
634 | | <xsd:complexType> |
635 | | <xsd:sequence> |
636 | | <xsd:any namespace="##other" processContents="lax" |
637 | | minOccurs="0" maxOccurs="unbounded"/> |
638 | | </xsd:sequence> |
639 | | </xsd:complexType> |
640 | | </xsd:element> |
641 | | |
642 | | </xsd:schema></pre></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e715"></a>3.5. Methods Description</h3></div></div></div><p>The main idea of this chapter is to present the types of messages |
643 | | used in the <span class="emphasis"><em>QCG Notification</em></span> scenario as well as |
644 | | introduce how to construct and interpret these messages. The majority of |
645 | | them is two-way style and initiated by <span class="emphasis"><em>QCG |
646 | | Notification</em></span> clients. Exception is the Notify message that is |
647 | | one-way style. In the first phase it is transported from a Publisher to |
648 | | <span class="emphasis"><em>QCG Notification</em></span> and in the second it is |
649 | | transported from <span class="emphasis"><em>QCG Notification</em></span> to subscribed |
650 | | NotificationConsumers.</p><p>All supported by <span class="emphasis"><em>QCG Notification</em></span> message |
651 | | types are presented and explained below.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><div class="itemizedlist"><ul type="disc"><li><p>The key information are thick;</p></li><li><p>A base of the messages structure is a delivered WSDL file, |
652 | | however there are also extensions;</p></li><li><p>For all messages it is important to set a correct |
653 | | WS-Addressing Action property which should be the same as SOAP |
654 | | Action.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e749"></a>3.5.1. SubscribeRequest</h4></div></div></div><p>SubscribeRequest is sent by a Subscriber to <span class="emphasis"><em>QCG |
655 | | Notification</em></span>. The message should contain information about |
656 | | a NotificationConsumer and an expression defining Topic or Topics that |
657 | | the Subscription will affect. If a message processing is successful, a |
658 | | Subscription is created. It is possible to create many equal |
659 | | Subscriptions by sending numerously the same SubscribeRequest |
660 | | message.</p><pre class="programlisting">SOAP-ENV:Envelope ... > |
661 | | <SOAP-ENV:Header> |
662 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
663 | | <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ |
664 | | NotificationProducer/SubscribeRequest</strong></span> |
665 | | </wsa:Action> |
666 | | ... |
667 | | </SOAP-ENV:Header> |
668 | | <SOAP-ENV:Body> |
669 | | <wsnt:Subscribe> |
670 | | <wsnt:ConsumerReference> |
671 | | <wsa:Address> |
672 | | <span class="bold"><strong>https://localhost:2233</strong></span> |
673 | | </wsa:Address> |
674 | | </wsnt:ConsumerReference> |
675 | | <wsnt:Filter> |
676 | | <wsnt:TopicExpression |
677 | | <span class="bold"><strong>xmlns:tns="<span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span>"</strong></span> |
678 | | Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>> |
679 | | <span class="bold"><strong>tns://*</strong></span> |
680 | | </wsnt:TopicExpression> |
681 | | <wsnt:MessageContent |
682 | | <span class="bold"><strong>xmlns:smnex=http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage</strong></span> |
683 | | Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116"> |
684 | | <span class="bold"><strong>boolean(//smnex:State[text()="on"])</strong></span> |
685 | | </wsnt:MessageContent> |
686 | | </wsnt:Filter> |
687 | | <wsnt:InitialTerminationTime> |
688 | | <span class="bold"><strong>2007-07-23T10:24:14+02:00</strong></span> |
689 | | </wsnt:InitialTerminationTime> |
690 | | <smn-ext:XSLTTranslation> |
691 | | <![[CDATA<span class="bold"><strong> |
692 | | <?xml version="1.0" encoding="ISO-8859-1"?> |
693 | | <xsl:stylesheet version 1.0" |
694 | | xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
695 | | xmln:s=http://schemas.qoscosgrid.org/ntf/1011/04/sample/myhousemessage"> |
696 | | <xsl:output method="text"/> |
697 | | <xsl:template match="/"> |
698 | | ### Sample QCG-Notification message ### |
699 | | <xsl:apply-templates/> |
700 | | </xsl:template> |
701 | | <xsl:template match="s:State"> |
702 | | Value of State is: <xsl:value-of select="."/> |
703 | | </xsl:template> |
704 | | </xsl:stylesheet></strong></span> |
705 | | ]]> |
706 | | </smn-ext:XSLTTranslation> |
707 | | </wsnt:Subscribe> |
708 | | </SOAP-ENV:Body> |
709 | | </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: |
710 | | <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ |
711 | | NotificationProducer/SubscribeRequest. <span class="emphasis"><em>If differ, a |
712 | | fault will be returned.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnt:Subscribe/wsnt:ConsumerReference/wsa:Address</em></span></p><p>A Consumer address. It is significant to specify a correct |
713 | | prefix (http, https, xmpp). The prefix should be adequate to the |
714 | | expected type of connection between <span class="emphasis"><em>QCG |
715 | | Notification</em></span> and NotificationConsumer(s): http for |
716 | | anonymous, https for ssl-based and xmpp for sending notifications |
717 | | to jabber clients.</p></li><li><p><span class="emphasis"><em>//wsnt:Subscribe/wsnt:Filter</em></span></p><p>In this element, a Subscriber defines filtering parameters |
718 | | to the Subscription being created. In other words, it identifies a |
719 | | type of Notifications that should be forwarded to the selected |
720 | | Notification Consumer.</p></li><li><p><span class="emphasis"><em>//wsnt:Subscribe/wsnt:Filter/wsnt:TopicExpression</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>This element defines Topic or Topics |
721 | | that Subscription should affect. Topics should come from supported |
722 | | Topic Namespaces that are also defined for the element. |
723 | | TopicExpression may be defined in two ways: (1) using prefixed |
724 | | form (e.g. tns://*) - the topicNamespace is defined in a |
725 | | TopicExpression element and assigned to some prefix (e.g. tns) or |
726 | | (2) using inline form (e.g. |
727 | | {http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics}//*).</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnt:Subscribe/wsnt:Filter/wsnt:TopicExpression/@Dialect</em></span></p><p>URI that specifies a TopicExpression Dialect type. Allowed |
728 | | Dialects types are as follows: |
729 | | <span class="emphasis"><em>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple", |
730 | | "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete", |
731 | | "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</em></span></p></li><li><p><span class="emphasis"><em>//wsnt:Subscribe/wsnt:Filter/wsnt:MessageContent</em></span></p><p>An optional element. If present, the MessageContent should |
732 | | define an XPath boolean expression that will be evaluated over |
733 | | redistributed Notificatiom Messages to true or false. If such an |
734 | | evaluation returns true, the message is forwarded, otherwise it is |
735 | | not. The namespaces used in the expression may be defined inside |
736 | | the MessageContent element as additional attributes or using |
737 | | in-line form e.g. |
738 | | boolean(//{http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage}State[text()="on"].The |
739 | | Dialect should always be: |
740 | | <span class="emphasis"><em>http://www.w3.org/TR/1999/REC-xpath-19991116</em></span></p></li><li><p><span class="emphasis"><em>//wsnt:Subscribe/wsnt:InitialTerminationTime</em></span></p><p>An optional element. If present, must contain a Subscriber |
741 | | suggestion for the termination time of the Subscription being |
742 | | created (expressed as a local time with timezone). If not present, |
743 | | the termination time is determined automatically - <span class="emphasis"><em>QCG |
744 | | Notification <span class="emphasis"><em>specify a default time |
745 | | period</em></span></em></span> for the Subscription to be |
746 | | valid.</p></li><li><p><span class="emphasis"><em>//wsnt:Subscribe/smn-ext:XSLTTranslation</em></span></p><p>An optional element. Inside the XSLTTranslation a Subscriber |
747 | | may deliver an XSLT document that will be used by some publishing |
748 | | modules to transform notification messages to a different form |
749 | | (for example user readable). Note that an actual XSLT document |
750 | | should be enclosed in <![[CDATA and ]]> markers.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e856"></a>3.5.2. SubscribeResponse</h4></div></div></div><p>In answer on SubscribeRequest there is sent the |
751 | | SubscribeResponse message. <span class="emphasis"><em>QCG Notification</em></span> |
752 | | deliver in this message a reference to the created Subscription. This |
753 | | ID can be used for manipulation and to remove the Subscription.</p><pre class="programlisting"><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 | | NotificationProducer/SubscribeResponse</strong></span> |
758 | | </wsa:Action> |
759 | | ... |
760 | | </SOAP-ENV:Header> |
761 | | <SOAP-ENV:Body> |
762 | | <wsnt:SubscribeResponse> |
763 | | <wsnt:SubscriptionReference> |
764 | | <wsa:Address> |
765 | | <span class="bold"><strong>http://some.address</strong></span> |
766 | | </wsa:Address> |
767 | | <wsa:ReferenceParameters> |
768 | | <span class="bold"><strong><SubscriptionID |
769 | | xmlns="http://schemas.qoscosgrid.org/ntf/2011/04/extensions"> |
770 | | 506435877 |
771 | | </SubscriptionID></strong></span> |
772 | | </wsa:ReferenceParameters> |
773 | | </wsnt:SubscriptionReference> |
774 | | </wsnt:SubscribeResponse> |
775 | | </SOAP-ENV:Body> |
776 | | </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: |
777 | | <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ |
778 | | NotificationProducer/SubscribeResponse. <span class="emphasis"><em>If differ, a |
779 | | fault will be returned.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnt:SubscribeResponse/wsnt:SubscriptionReference/wsa:Address</em></span></p><p>An address of a SubscriptionManager interface. In the |
780 | | current solution it is the <span class="emphasis"><em>QCG Notification</em></span> |
781 | | service address.</p></li><li><p><span class="emphasis"><em>//wsnt:SubscribeResponse/wsnt:SubscriptionReference/</em></span></p><p><span class="emphasis"><em>wsa:ReferenceParameters/SubscriptionID</em></span></p><p>An extensive element in xsd:any that contains Subscription |
782 | | ID. At this time it is at most 32 char long string.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e904"></a>3.5.3. RenewRequest</h4></div></div></div><p>When a Subscriber wants to renew a Subscription, it can send the |
783 | | RenewRequest message to <span class="emphasis"><em>QCG Notification</em></span>. The |
784 | | message should contain the Subscription ID element and a new |
785 | | termination time suggesation.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
786 | | <SOAP-ENV:Header> |
787 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
788 | | <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ |
789 | | SubscriptionManager/RenewRequest</strong></span> |
790 | | </wsa:Action> |
791 | | ... |
792 | | </SOAP-ENV:Header> |
793 | | <SOAP-ENV:Body> |
794 | | <wsnt:Renew> |
795 | | <wsnt:TerminationTime> |
796 | | <span class="bold"><strong>2007-07-25T12:24:14+02:00</strong></span> |
797 | | </wsnt:TerminationTime> |
798 | | <smn-ext:SubscriptionID> |
799 | | <span class="bold"><strong>506435877</strong></span> |
800 | | </smn-ext:SubscriptionID> |
801 | | </wsnt:Renew> |
802 | | </SOAP-ENV:Body> |
803 | | </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: |
804 | | <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ |
805 | | SubscriptionManager/RenewRequest. <span class="emphasis"><em>If differ, a fault |
806 | | will be returned.</em></span></em></span></p></li><li><p>//wsnt:Renew/wsnt:TerminationTime</p><p>A Subscriber suggestion for the new termination time of the |
807 | | Subscription being renewed (expressed as a local time with |
808 | | timezone).</p></li><li><p><span class="emphasis"><em>//wsnt:Renew/smn-ext:SubscriptionID</em></span></p><p>A Subscription ID that was received in the SubscribeResponse |
809 | | message.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e945"></a>3.5.4. RenewResponse</h4></div></div></div><p>An answer to the RenewRequest message is RenewResponse. The |
810 | | message contains a termination time for the renewed |
811 | | Subscription.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
812 | | <SOAP-ENV:Header> |
813 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
814 | | <span class="bold"><strong> http://docs.oasis-open.org/wsn/bw-2/ |
815 | | SubscriptionManager/RenewResponse</strong></span> |
816 | | </wsa:Action> |
817 | | ... |
818 | | </SOAP-ENV:Header> |
819 | | <SOAP-ENV:Body> |
820 | | <wsnt:RenewResponse> |
821 | | <wsnt:TerminationTime> |
822 | | <span class="bold"><strong>2007-07-25T10:24:14Z</strong></span> |
823 | | </wsnt:TerminationTime> |
824 | | <wsnt:CurrentTime> |
825 | | <span class="bold"><strong>2007-07-24T10:24:14Z</strong></span> |
826 | | </wsnt:CurrentTime> |
827 | | </wsnt:RenewResponse> |
828 | | </SOAP-ENV:Body> |
829 | | </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: |
830 | | <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ |
831 | | SubscriptionManager/RenewResponse. <span class="emphasis"><em>If differ, a fault |
832 | | will be returned.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnt:RenewResponse/wsnt:TerminationTime</em></span></p><p>A new termination time for the renewed Subscription |
833 | | (expressed as UTC Time).</p></li></ul></div><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//wsnt:RenewResponse/wsnt:CurrentTime</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>A </em></span>QCG |
834 | | Notification's</em></span> time when the Subscription was renewing |
835 | | (expressed as UTC Time).</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e989"></a>3.5.5. UnsubscribeRequest</h4></div></div></div><p>When a Subscriber wants to terminate a Subscription, it has to |
836 | | send the UnsubscribeRequest message to <span class="emphasis"><em>QCG |
837 | | Notification</em></span>. The parameter attached to this request is a |
838 | | Subscription ID.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
839 | | <SOAP-ENV:Header> |
840 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
841 | | <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ |
842 | | SubscriptionManager/UnsubscribeRequest</strong></span> |
843 | | </wsa:Action> |
844 | | ... |
845 | | </SOAP-ENV:Header> |
846 | | <SOAP-ENV:Body> |
847 | | <wsnt:Unsubscribe> |
848 | | <smn-ext:SubscriptionID> |
849 | | <span class="bold"><strong>506435877</strong></span> |
850 | | </smn-ext:SubscriptionID> |
851 | | </wsnt:Unsubscribe> |
852 | | </SOAP-ENV:Body> |
853 | | </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: |
854 | | <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ |
855 | | SubscriptionManager/UnsubscribeRequest. <span class="emphasis"><em>If differ, a |
856 | | fault will be returned.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnt:Unsubscribe/smn-ext:SubscriptionID</em></span></p><p>A Subscription ID that was received in the SubscribeResponse |
857 | | message.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1022"></a>3.5.6. UnsubscribeResponse</h4></div></div></div><p>UnsubscribeResponse is returned to a Subscriber after |
858 | | successfully processing the UnsubscribeRequest message.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
859 | | <SOAP-ENV:Header> |
860 | | <wsa:Action SOAP-ENV:mustUnderstAand="1"> |
861 | | <span class="bold"><strong> http://docs.oasis-open.org/wsn/bw-2/ |
862 | | SubscriptionManager/UnsubscribeResponse</strong></span> |
863 | | </wsa:Action> |
864 | | ... |
865 | | </SOAP-ENV:Header> |
866 | | <SOAP-ENV:Body> |
867 | | <wsnt:UnsubscribeResponse> |
868 | | </wsnt:UnsubscribeResponse> |
869 | | </SOAP-ENV:Body> |
870 | | </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: |
871 | | <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ |
872 | | SubscriptionManager/UnsubscribeResponse. <span class="emphasis"><em>If differ, a |
873 | | fault will be returned.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1043"></a>3.5.7. RegisterPublisherRequest</h4></div></div></div><p>In order to sending Notifications, a Publisher can be obligated |
874 | | to register himself previosly in <span class="emphasis"><em>QCG |
875 | | Notification</em></span>. For this purpose, it sends the |
876 | | RegisterPublisherRequest message to <span class="emphasis"><em>QCG |
877 | | Notification</em></span>.</p><pre class="programlisting"><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/RegisterPublisherRequest</strong></span> |
882 | | </wsa:Action> |
883 | | ... |
884 | | </SOAP-ENV:Header> |
885 | | <SOAP-ENV:Body> |
886 | | <wsnbr:RegisterPublisher> |
887 | | <wsnbr:Demand> |
888 | | <span class="bold"><strong>false</strong></span> |
889 | | </wsnbr:Demand> |
890 | | <wsnbr:InitialTerminationTime> |
891 | | <span class="bold"><strong>2007-07-23T10:24:14+02:00</strong></span> |
892 | | </wsnbr:InitialTerminationTime> |
893 | | </wsnbr:RegisterPublisher> |
894 | | </SOAP-ENV:Body> |
895 | | </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: |
896 | | <span class="emphasis"><em>http://docs.oasis-open.org/wsn/brw-2/ |
897 | | RegisterPublisher/RegisterPublisherRequest. <span class="emphasis"><em>If differ, a |
898 | | fault will be returned.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnbr:RegisterPublisher/wsnbr:Demand</em></span></p><p>Determine a demand-based pattern. At this time this pattern |
899 | | isn't supported so default <span class="emphasis"><em>false</em></span> is the sole |
900 | | accepted value.</p></li><li><p><span class="emphasis"><em>//wsnbr:RegisterPublisher/wsnbr:InitialTerminationTime</em></span></p><p>An optional element. If present, must contain the requester |
901 | | suggestion for the termination time of the Registration being |
902 | | created (expressed as a local time with timezone). If not present, |
903 | | the termination time is determined automatically - <span class="emphasis"><em>QCG |
904 | | Notification <span class="emphasis"><em>specify the default time |
905 | | period</em></span></em></span> for the Registration to be valid. |
906 | | Every Notify message renews the termination time.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1096"></a>3.5.8. RegisterPublisherResponse</h4></div></div></div><p>In a response to a successful registration process, |
907 | | <span class="emphasis"><em>QCG Notification</em></span> sends RegisterPublisherResponse. |
908 | | This message contains a reference to the created Registration. The |
909 | | attached ID is necessary to send any Notification message.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
910 | | <SOAP-ENV:Header> |
911 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
912 | | <span class="bold"><strong>http://docs.oasis-open.org/wsn/brw-2/ |
913 | | RegisterPublisher/RegisterPublisherResponse</strong></span> |
914 | | </wsa:Action> |
915 | | </SOAP-ENV:Header> |
916 | | <SOAP-ENV:Body> |
917 | | <wsnbr:RegisterPublisherResponse> |
918 | | <wsnbr:PublisherRegistrationReference> |
919 | | <wsa:Address> |
920 | | <span class="bold"><strong>http://some.address</strong></span> |
921 | | </wsa:Address> |
922 | | <wsa:ReferenceParameters> |
923 | | <span class="bold"><strong><RegisterPublisherID |
924 | | xmlns="http://schemas.qoscosgrid.org/ntf/2011/04/extensions"> |
925 | | 1207382668 |
926 | | </RegisterPublisherID></strong></span> |
927 | | </wsa:ReferenceParameters> |
928 | | </wsnbr:PublisherRegistrationReference> |
929 | | </wsnbr:RegisterPublisherResponse> |
930 | | </SOAP-ENV:Body> |
931 | | </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: |
932 | | <span class="emphasis"><em>http://docs.oasis-open.org/wsn/brw-2/RegisterPublisher/RegisterPublisherResponse. |
933 | | <span class="emphasis"><em>If differ, a fault will be |
934 | | returned.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnbr:RegisterPublisherResponse/wsnbr:PublisherRegistrationReference/wsa:Address</em></span></p><p>An address of a PublisherRegistration Manager interface. In |
935 | | the current solution it is the <span class="emphasis"><em>QCG |
936 | | Notification</em></span> service address.</p></li><li><p><span class="emphasis"><em>//wsnbr:RegisterPublisherResponse/wsnbr:PublisherRegistrationReference/wsa:ReferenceParameters/RegisterPublisherID</em></span></p><p>An extensive element in xsd:any that contains a Publisher |
937 | | Registration ID. It defines a session that is created after |
938 | | registration and removed by sending the DestroyRegistration |
939 | | message. At this time it is at most 32 char long string.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1141"></a>3.5.9. Notify</h4></div></div></div><p>Notify consists of one or many NotificationMessages. Any of them |
940 | | is a separate Notification message and is processed independently. |
941 | | NotificationMessage should define a single Topic it concerns. |
942 | | TopicExpression should be written in the same Dialect that the |
943 | | Subscription was created in. The Publisher Registration ID has to be |
944 | | attached to Notify messages.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
945 | | <SOAP-ENV:Header> |
946 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
947 | | <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ |
948 | | NotificationConsumer/Notify</strong></span> |
949 | | </wsa:Action> |
950 | | </SOAP-ENV:Header> |
951 | | <SOAP-ENV:Body> |
952 | | <wsnt:Notify> |
953 | | <wsnt:NotificationMessage> |
954 | | <wsnt:Topic |
955 | | Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span><span class="bold"><strong> |
956 | | xmlns:tns="<span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span>"> |
957 | | tns:House/Kitchen/Light</strong></span> |
958 | | </wsnt:Topic> |
959 | | <wsnt:ProducerReference> |
960 | | <wsa:Address> |
961 | | <span class="bold"><strong>http://some.address |
962 | | </strong></span><wsa:Address> |
963 | | <wsnt:ProducerReference> |
964 | | <wsnt:Message> |
965 | | <span class="bold"><strong><smnex:State |
966 | | xmlns:smnex="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"> |
967 | | on |
968 | | </smnex:State></strong></span> |
969 | | </wsnt:Message> |
970 | | </wsnt:NotificationMessage> |
971 | | <smn-ext:RegisterPublisherID> |
972 | | <span class="bold"><strong>1207382668</strong></span> |
973 | | </smn-ext:RegisterPublisherID> |
974 | | </wsnt:Notify> |
975 | | </SOAP-ENV:Body> |
976 | | </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: |
977 | | <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/NotificationConsumer/Notify. |
978 | | <span class="emphasis"><em>If differ, a fault will be |
979 | | returned.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnt:Notify</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>A set of Notification |
980 | | messages.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnt:Notify/wsnt:NotificationMessage</em></span></p><p>A single Notification message.</p></li><li><p><span class="emphasis"><em>//wsnt:Notify/wsnt:NotificationMessage/wsnt:Topic</em></span></p><p>The content of this element is an expression that defines |
981 | | exactly one Topic in a specified Dialect type. The Topic should be |
982 | | supported. The Topic may be defined in two ways: (1) using |
983 | | prefixed form (e.g. tns:House/Kithchen/Light) - the topicNamespace |
984 | | is defined in a Topic element and assigned to some prefix (e.g. |
985 | | tns) or (2) using inline form (e.g. |
986 | | {http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics}//House/Kitchen/Light).</p></li><li><p><span class="emphasis"><em>//wsnt:Notify/wsnt:NotificationMessage/wsnt:Topic/@Dialect</em></span></p><p>URI that specifies TopicExpression Dialect type. Allowed |
987 | | Dialect types are as follows: |
988 | | <span class="emphasis"><em>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple", |
989 | | "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete", |
990 | | "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full".</em></span></p></li><li><p><span class="emphasis"><em>//wsnt:Notify/wsnt:NotificationMessage/wsnt:ProducerReference/wsa:Address</em></span></p><p>A Notification producer (Publisher) address.</p></li><li><p><span class="emphasis"><em>//wsnt:Notify/wsnt:NotificationMessage/wsnt:Message</em></span></p><p>A Notify message content. Currently supported are messages |
991 | | shorter than 4096 bytes.</p></li><li><p><span class="emphasis"><em>//wsnt:Notify/smn-ext:RegisterPublisherID</em></span></p><p>A Publisher Registration ID that was received in the |
992 | | RegisterPublisherResponse message.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1225"></a>3.5.10. DestroyRegistrationRequest</h4></div></div></div><p>A Publisher can terminate a Registration by sending the |
993 | | DestroyRegistrationRequest message to <span class="emphasis"><em>QCG |
994 | | Notification</em></span>. The parameter attached to this request is a |
995 | | Publisher Registration ID.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
996 | | <SOAP-ENV:Header> |
997 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
998 | | <span class="bold"><strong>http://docs.oasis-open-org/wsn/brw-2/ |
999 | | PublisherRegistrationManager/DestroyRegistrationRequest</strong></span> |
1000 | | </wsa:Action> |
1001 | | </SOAP-ENV:Header> |
1002 | | <SOAP-ENV:Body> |
1003 | | <wsnbr:DestroyRegistration> |
1004 | | <smn-ext:RegisterPublisherID> |
1005 | | <span class="bold"><strong>387837036</strong></span> |
1006 | | </smn-ext:RegisterPublisherID> |
1007 | | </wsnbr:DestroyRegistration> |
1008 | | </SOAP-ENV:Body> |
1009 | | </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: |
1010 | | <span class="emphasis"><em>http://docs.oasis-open.org/wsn/brw-2/ |
1011 | | PublisherRegistrationManager/DestroyRegistrationRequest. |
1012 | | <span class="emphasis"><em>If differ, a fault will be |
1013 | | returned.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnbr:DestroyRegistration/smn-ext:RegisterPublisherID</em></span></p><p>A Publisher Registration ID that was received in a |
1014 | | RegisterPublisherResponse message.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1258"></a>3.5.11. DestroyRegistrationResponse</h4></div></div></div><p>DestroyRegistrationResponse is returned to a Publisher after a |
1015 | | successful process of destroying a Publisher Registration, in a |
1016 | | response to the DestroyRegistration message.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
1017 | | <SOAP-ENV:Header> |
1018 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
1019 | | <span class="bold"><strong>http://docs.oasis-open-org/wsn/brw-2/ |
1020 | | PublisherRegistrationManager/DestroyRegistrationResponse</strong></span> |
1021 | | </wsa:Action> |
1022 | | </SOAP-ENV:Header> |
1023 | | <SOAP-ENV:Body> |
1024 | | <wsn-br:DestroyRegistrationResponse> |
1025 | | </wsn-br:DestroyRegistrationResponse> |
1026 | | </SOAP-ENV:Body> |
1027 | | </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: |
1028 | | <span class="emphasis"><em>http://docs.oasis-open.org/wsn/brw-2/ |
1029 | | PublisherRegistrationManager/DestroyRegistrationResponse. |
1030 | | <span class="emphasis"><em>If differ, a fault will be |
1031 | | returned.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1279"></a>3.5.12. CreatePullPointRequest</h4></div></div></div><p>In scenarios where the pull-style of notifications delivery is |
1032 | | needed, Subscribers can create PullPoints. To do this, a Subscriber |
1033 | | sends the CreatePullPointRequest message to <span class="emphasis"><em>QCG Notification |
1034 | | PullPoint</em></span>.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
1035 | | <SOAP-ENV:Header> |
1036 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
1037 | | <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ |
1038 | | CreatePullPoint/CreatePullPointRequest</strong></span> |
1039 | | </wsa:Action> |
1040 | | ... |
1041 | | </SOAP-ENV:Header> |
1042 | | <SOAP-ENV:Body> |
1043 | | <wsnt:CreatePullPoint> |
1044 | | </wsnt:CreatePullPoint> |
1045 | | </SOAP-ENV:Body> |
1046 | | </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: |
1047 | | <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/CreatePullPoint/CreatePullPointRequest. |
1048 | | <span class="emphasis"><em>If differ, a fault will be |
1049 | | returned.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1303"></a>3.5.13. CreatePullPointResponse</h4></div></div></div><p>The CreatePullPointResponse message is returned in a response to |
1050 | | the request of PullPoint creation. This message contains a reference |
1051 | | to the just created PullPoint. </p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
1052 | | <SOAP-ENV:Header> |
1053 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
1054 | | <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ |
1055 | | CreatePullPoint/CreatePullPointResponse</strong></span> |
1056 | | </wsa:Action> |
1057 | | ... |
1058 | | </SOAP-ENV:Header> |
1059 | | <SOAP-ENV:Body> |
1060 | | <wsnt:CreatePullPointResponse> |
1061 | | <wsa:Address xmlns:wsa="http://www.w3.org/2005/08/addressing"> |
1062 | | <span class="bold"><strong> http://some.address:2211?ppID=1100992448</strong></span> |
1063 | | </wsa:Address> |
1064 | | </wsnt:CreatePullPointResponse> |
1065 | | </SOAP-ENV:Body> |
1066 | | </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: |
1067 | | <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/CreatePullPoint/CreatePullPointResponse. |
1068 | | <span class="emphasis"><em>If differ, a fault will be |
1069 | | returned.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnt:CreatePullPointResponse/wsa:Address</em></span></p><p>An logical address of the created PullPoint.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1333"></a>3.5.14. GetMessages</h4></div></div></div><p>A Pull-style NotificationConsumer can get messages buffered in a |
1070 | | PullPoint by invoking the GetMessages method. It sends the |
1071 | | GetMessagesRequest message directly to the specified PullPoint. The |
1072 | | message can contain a specification of a maximal number of |
1073 | | Notification messages that NotificationConsumer wants to receive in |
1074 | | the response.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
1075 | | <SOAP-ENV:Header> |
1076 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
1077 | | <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ |
1078 | | PullPoint/GetMessagesRequest</strong></span> |
1079 | | </wsa:Action> |
1080 | | ... |
1081 | | </SOAP-ENV:Header> |
1082 | | <SOAP-ENV:Body> |
1083 | | <wsnt:GetMessages> |
1084 | | <wsnt:MaximumNumber><span class="bold"><strong>10</strong></span></wsnt:MaximumNumber> |
1085 | | </wsnt:GetMessages> |
1086 | | </SOAP-ENV:Body> |
1087 | | </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: |
1088 | | <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/PullPoint/GetMessagesRequest. |
1089 | | <span class="emphasis"><em>If differ, a fault will be |
1090 | | returned.</em></span></em></span></p></li></ul></div><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//wsnt:GetMessages/wsnt:MaximumNumber</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>An optional element. It defines a |
1091 | | maximal number of messages that will be gotten from the |
1092 | | PullPoint.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1366"></a>3.5.15. GetMessagesResponse</h4></div></div></div><p>GetMessagesResponse, a response message to GetMessages, consists |
1093 | | of a set of Notifications received from the PullPoint. |
1094 | | </p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
1095 | | <SOAP-ENV:Header> |
1096 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
1097 | | <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ |
1098 | | PullPoint/GetMessagesResponse</strong></span> |
1099 | | </wsa:Action> |
1100 | | ... |
1101 | | </SOAP-ENV:Header> |
1102 | | <SOAP-ENV:Body> |
1103 | | <wsnt:GetMessagesResponse> |
1104 | | <wsnt:NotificationMessage> |
1105 | | <wsnt:Topic |
1106 | | Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>> |
1107 | | <span class="bold"><strong>xmlns:tns="<span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span>"</strong></span>> |
1108 | | <span class="bold"><strong>tns:House/Kitchen/Light</strong></span> |
1109 | | </wsnt:Topic> |
1110 | | <wsnt:ProducerReference> |
1111 | | <wsa:Address> |
1112 | | <span class="bold"><strong>http://some.address |
1113 | | </strong></span><wsa:Address> |
1114 | | <wsnt:ProducerReference> |
1115 | | <wsnt:Message> |
1116 | | <span class="bold"><strong><span class="bold"><strong><smnex:State |
1117 | | xmlns:smnex="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"> |
1118 | | on |
1119 | | </smnex:State></strong></span></strong></span> |
1120 | | </wsnt:Message> |
1121 | | </wsnt:NotificationMessage> |
1122 | | <wsnt:NotificationMessage> |
1123 | | ... |
1124 | | </wsnt:NotificationMessage> |
1125 | | ... |
1126 | | </wsnt:GetMessagesResponse> |
1127 | | </SOAP-ENV:Body> |
1128 | | </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: |
1129 | | <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/PullPoint/GetMessagesResponse. |
1130 | | <span class="emphasis"><em>If differ, a fault will be |
1131 | | returned.</em></span></em></span></p></li><li><p>//wsnt:GetMessagesResponse</p><p>A set of Notification messages. The number of messages is |
1132 | | restricted by the wsnt:MaximumNumber parameter defined in the |
1133 | | GetMessagesRequest message.</p></li><li><p><span class="emphasis"><em>//wsnt:GetMessagesResponse/wsnt:NotificationMessage</em></span></p><p>A single Notification message.</p></li><li><p><span class="emphasis"><em>//wsnt:GetMessagesResponse/wsnt:NotificationMessage/wsnt:Topic</em></span></p><p>The content of this element is an expression that defines |
1134 | | exactly one Topic in a specified Dialect type. The Topic should |
1135 | | be supported.</p></li><li><p><span class="emphasis"><em>//wsnt:GetMessagesResponse/wsnt:NotificationMessage/wsnt:Topic/@Dialect</em></span></p><p>URI that specifies a TopicExpression Dialect type. Allowed |
1136 | | Dialect types are as follows: |
1137 | | <span class="emphasis"><em>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple", |
1138 | | "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete", |
1139 | | "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full".</em></span></p></li><li><p><span class="emphasis"><em>//wsnt:GetMessagesResponse/wsnt:NotificationMessage/wsnt:ProducerReference/wsa:Address</em></span></p><p>A Notification producer (Publisher) address.</p></li><li><p><span class="emphasis"><em>//wsnt:GetMessagesResponse/wsnt:NotificationMessage/wsnt:Message</em></span></p><p>A Notify message content. Currently supported are messages |
1140 | | shorter than 4096 bytes.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1443"></a>3.5.16. DestroyPullPointRequest</h4></div></div></div><p>A PullPoint can be destroyed by invoking a DestroyPullPoint |
1141 | | method. An empty request message should be sent directly to the |
1142 | | PullPoint.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
1143 | | <SOAP-ENV:Header> |
1144 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
1145 | | <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ |
1146 | | PullPoint/DestroyPullPointRequest</strong></span> |
1147 | | </wsa:Action> |
1148 | | ... |
1149 | | </SOAP-ENV:Header> |
1150 | | <SOAP-ENV:Body> |
1151 | | <wsnt:DestroyPullPoint> |
1152 | | </wsnt:DestroyPullPoint> |
1153 | | </SOAP-ENV:Body> |
1154 | | </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: |
1155 | | <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/PullPoint/DestroyPullPointRequest. |
1156 | | <span class="emphasis"><em>If differ, a fault will be |
1157 | | returned.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1464"></a>3.5.17. DestroyPullPointResponse</h4></div></div></div><p>A response to a DestroyPullPointRequest message is an empty |
1158 | | DestroyPullPointResponse message.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
1159 | | <SOAP-ENV:Header> |
1160 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
1161 | | <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ |
1162 | | PullPoint/DestroyPullPointResponse</strong></span> |
1163 | | </wsa:Action> |
1164 | | ... |
1165 | | </SOAP-ENV:Header> |
1166 | | <SOAP-ENV:Body> |
1167 | | <wsnt:DestroyPullPointResponse> |
1168 | | </wsnt:DestroyPullPointResponse> |
1169 | | </SOAP-ENV:Body> |
1170 | | </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: |
1171 | | <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/PullPoint/DestroyPullPointResponse. |
1172 | | <span class="emphasis"><em>If differ, a fault will be |
1173 | | returned.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1485"></a>3.5.18. GetCurrentMessageRequest</h4></div></div></div><p>GetCurrentMessageRequest is useful especially when a new |
1174 | | NotificationConsumer is connecting and want to get the last published |
1175 | | Notification Message on a specified Topic. Single GetCurrentMessage |
1176 | | should refer exactly one Topic and has to be expressed in a supported |
1177 | | Dialect type.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
1178 | | <SOAP-ENV:Header> |
1179 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
1180 | | <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ |
1181 | | NotificationProducer/GetCurrentMessageRequest</strong></span> |
1182 | | </wsa:Action> |
1183 | | </SOAP-ENV:Header> |
1184 | | <SOAP-ENV:Body> |
1185 | | <wsnt:GetCurrentMessage> |
1186 | | <wsnt:Topic |
1187 | | Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>> |
1188 | | <span class="bold"><strong>xmlns:tns="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics"</strong></span>> |
1189 | | <span class="bold"><strong>tns:</strong></span><span class="bold"><strong>House/Kitchen/Light</strong></span> |
1190 | | </wsnt:Topic> |
1191 | | </wsnt:GetCurrentMessage> |
1192 | | </SOAP-ENV:Body> |
1193 | | </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: |
1194 | | <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ |
1195 | | NotificationProducer/GetCurrentMessageRequest. <span class="emphasis"><em>If |
1196 | | differ, a fault will be returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//wsnt:GetCurrentMessage/wsnt:Topic</em></span></p><p>The content of this element is an expression that defines |
1197 | | exactly one Topic in a specified Dialect type. The topic should be |
1198 | | supported. The Topic may be defined in two ways: (1) using |
1199 | | prefixed form (e.g. tns:House/Kithchen/Light) - the topicNamespace |
1200 | | is defined in a Topic element and assigned to some prefix (e.g. |
1201 | | tns) or (2) using inline form (e.g. |
1202 | | {http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics}//House/Kitchen/Light.</p></li><li><p><span class="emphasis"><em>//wsnt:GetCurrentMessage/wsnt:Topic/@Dialect</em></span></p><p>URI that specifies TopicExpression Dialect's type. Allowed |
1203 | | dialect's types are as follows: |
1204 | | <span class="emphasis"><em>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple", |
1205 | | "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete", |
1206 | | "http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full". |
1207 | | </em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1532"></a>3.5.19. GetCurrentMessageResponse</h4></div></div></div><p>In a response to GetCurrentMessageRequest <span class="emphasis"><em>QCG |
1208 | | Notification</em></span> prepares GetCurrentMessageResponse. This |
1209 | | message includes the content of the last Notification |
1210 | | GetCurrentMessageRequest refers to.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
1211 | | <SOAP-ENV:Header> |
1212 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
1213 | | <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ |
1214 | | NotificationProducer/GetCurrentMessageResponse</strong></span> |
1215 | | </wsa:Action> |
1216 | | </SOAP-ENV:Header> |
1217 | | <SOAP-ENV:Body> |
1218 | | <wsnt:GetCurrentMessageResponse> |
1219 | | <smn-ext:CurrentMessage> |
1220 | | <smn-ext:NotifyTime> |
1221 | | <span class="bold"><strong>2007-07-23T10:43:14Z</strong></span> |
1222 | | </smn-ext:NotifyTime> |
1223 | | <wsnt:ProducerReference> |
1224 | | <wsa:Address> |
1225 | | <span class="bold"><strong>http://some.address |
1226 | | </strong></span><wsa:Address> |
1227 | | <wsnt:ProducerReference> |
1228 | | <smn-ext:Message> |
1229 | | <span class="bold"><strong><span class="bold"><strong><smnex:State |
1230 | | xmlns:smnex="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"> |
1231 | | on |
1232 | | </smnex:State></strong></span></strong></span> |
1233 | | </smn-ext:Message> |
1234 | | </smn-ext:CurrentMessage> |
1235 | | </wsnt:GetCurrentMessageResponse> |
1236 | | </SOAP-ENV:Body> |
1237 | | </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: |
1238 | | <span class="emphasis"><em>http://docs.oasis-open.org/wsn/bw-2/ |
1239 | | NotificationProducer/GetCurrentMessageResponse. <span class="emphasis"><em>If |
1240 | | differ, a fault will be returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//wsnt:GetCurrentMessageResponse/smn-ext:GetCurrentMessage</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>The element that contains current |
1241 | | Notification and information related to this |
1242 | | notification.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//wsnt:GetCurrentMessageResponse/smn-ext:GetCurrentMessage/smn-ext:NotifyTime</em></span></p><p>The time when notification was received by <span class="emphasis"><em>QCG |
1243 | | Notification</em></span>; expressed as universal time (UTC).</p></li><li><p><span class="emphasis"><em>//wsnt:GetCurrentMessageResponse/wsnt:ProducerReference/wsa:Address</em></span></p><p>A Notification producer (Publisher) address.</p></li><li><p><span class="emphasis"><em>//wsnt:GetCurrentMessageResponse/smn-ext:GetCurrentMessage/smn-ext:Message</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>An extensive element. The content of |
1244 | | this element is the last Notification message published to the |
1245 | | Topic specified in GetCurrentMessageRequest. Currently supported |
1246 | | are messages shorter than 4096 bytes.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1598"></a>3.5.20. ListSubscriptions</h4></div></div></div><p>The first method from the the group of administrative methods. |
1247 | | It may be invoked to get an information about available subscriptions |
1248 | | in the <span class="emphasis"><em>QCG Notification</em></span> service. The method |
1249 | | consists of various filtering parameters.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
1250 | | <SOAP-ENV:Header> |
1251 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
1252 | | <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ |
1253 | | QCGNotificationManager/ListSubscriptionsRequest</strong></span> |
1254 | | </wsa:Action> |
1255 | | ... |
1256 | | </SOAP-ENV:Header> |
1257 | | <SOAP-ENV:Body> |
1258 | | <smn-ext:ListSubscriptions> |
1259 | | <smn-ext:Filter> |
1260 | | <smn-ext:SubscriptionID> |
1261 | | <span class="bold"><strong>1568334</strong></span> |
1262 | | </smn-ext:SubscriptionID> |
1263 | | <smn-ext:ConsumerReference> |
1264 | | <wsa:Address> |
1265 | | <span class="bold"><strong>http://localhost:2233</strong></span> |
1266 | | </wsa:Address> |
1267 | | </smn-ext:ConsumerReference> |
1268 | | <smn-ext:CreationTimeMin> |
1269 | | <span class="bold"><strong>2010-07-09T08:21:58Z</strong></span> |
1270 | | </smn-ext:CreationTimeMin> |
1271 | | <smn-ext:CreationTimeMax> |
1272 | | <span class="bold"><strong>2010-07-09T10:21:58Z</strong></span> |
1273 | | </smn-ext:CreationTimeMax> |
1274 | | <smn-ext:TerminationTimeMin> |
1275 | | <span class="bold"><strong>2010-07-09T08:21:58Z</strong></span> |
1276 | | </smn-ext:TerminationTimeMin> |
1277 | | <smn-ext:TerminationTimeMax> |
1278 | | <span class="bold"><strong>2010-07-09T10:21:58Z</strong></span> |
1279 | | </smn-ext:TerminationTimeMax> |
1280 | | <wsnt:Filter> |
1281 | | <wsnt:MessageContent |
1282 | | <span class="bold"><strong>xmlns:smnex="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"</strong></span> |
1283 | | Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116"> |
1284 | | <span class="bold"><strong>boolean(//smnex:State[text()="on"])</strong></span> |
1285 | | </wsnt:MessageContent> |
1286 | | <wsnt:TopicExpression |
1287 | | <span class="bold"><strong>xmlns:tns="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics"</strong></span> |
1288 | | Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>> |
1289 | | <span class="bold"><strong>tns://*</strong></span> |
1290 | | </wsnt:TopicExpression> |
1291 | | </wsnt:Filter> |
1292 | | </smn-ext:Filter> |
1293 | | </smn-ext:ListSubscriptions> |
1294 | | </SOAP-ENV:Body> |
1295 | | </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: |
1296 | | <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListSubscriptionsRequest. |
1297 | | <span class="emphasis"><em>If differ, a fault will be |
1298 | | returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListSubscriptions/smn-ext:Filter</em></span></p><p>The expanding element from <span class="emphasis"><em>QCG |
1299 | | Notification</em></span> schema. It consists of a number of |
1300 | | optional filtering parameters.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListSubscriptions/smn-ext:Filter/SubscriptionID</em></span></p><p>A Subscription identifier. Thanks to this parameter |
1301 | | Subscriptions may be simply filtered on the basis of Subscription |
1302 | | ID. The value is at most 32 char long string.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListSubscriptions/smn-ext:Filter/smn-ext:ConsumerReference/wsa:Address</em></span></p><p>The parameter that enables filtering Subscriptions based on |
1303 | | addresses of Notification Consumers.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListSubscriptions/smn-ext:Filter/smn-ext:CreationTimeMin</em></span></p><p><span class="emphasis"><em>/smn-ext:ListSubscriptions/smn-ext:Filter/smn-ext:CreationTimeMax</em></span></p><p><span class="emphasis"><em>/smn-ext:ListSubscriptions/smn-ext:Filter/smn-ext:TerminationTimeMin |
1304 | | </em></span></p><p><span class="emphasis"><em>/smn-ext:ListSubscriptions/smn-ext:Filter/smn-ext:TerminationTimeMax</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>All these elements define filtering |
1305 | | parameters related to lifetime of a Subscription, respectively: |
1306 | | minimal creation time, maximal creation time, minimal termination |
1307 | | time and maximal termination time. The content of these elements |
1308 | | is a time expressed as a local time with a |
1309 | | timezone.</em></span></em></span></p></li><li><p><span class="emphasis"><em>/smn-ext:ListSubscriptions/smn-ext:Filter/wsnt:Filter</em></span></p><p>The same parameter as the parameter specified in the |
1310 | | Subscribe message. In this method it is utilized to filter |
1311 | | Subscriptions on the basis of notification filtering |
1312 | | parameters.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1700"></a>3.5.21. ListSubscriptionsResponse</h4></div></div></div><p>The message is sent in the response to ListSubscriptions. It |
1313 | | includes a list of information sets about available and propably |
1314 | | filtered Subscriptions.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
1315 | | <SOAP-ENV:Header> |
1316 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
1317 | | <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ |
1318 | | QCGNotificationManager/ListSubscriptionsResponse |
1319 | | </strong></span></wsa:Action> |
1320 | | ... |
1321 | | </SOAP-ENV:Header> |
1322 | | <SOAP-ENV:Body> |
1323 | | <smn-ext:ListSubscriptionsResponse> |
1324 | | <smn-ext:Subscription> |
1325 | | <smn-ext:SubscriptionID> |
1326 | | <span class="bold"><strong>16807 |
1327 | | </strong></span></smn-ext:SubscriptionID> |
1328 | | <smn-ext:ConsumerReference> |
1329 | | <wsa:Address> |
1330 | | <span class="bold"><strong>http://localhost:2233</strong></span> |
1331 | | </wsa:Address> |
1332 | | </smn-ext:ConsumerReference> |
1333 | | <smn-ext:CreationTime> |
1334 | | <span class="bold"><strong>2010-07-09T09:21:48Z |
1335 | | </strong></span></smn-ext:CreationTime> |
1336 | | <smn-ext:TerminationTime> |
1337 | | <span class="bold"><strong>2010-07-09T09:21:48Z</strong></span> |
1338 | | </smn-ext:TerminationTime> |
1339 | | <wsnt:Filter> |
1340 | | <wsnt:MessageContent |
1341 | | <span class="bold"><strong>xmlns:smnex="</strong></span><span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"</strong></span> |
1342 | | Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116"> |
1343 | | <span class="bold"><strong>boolean(//smnex:State[text()="on"])</strong></span> |
1344 | | </wsnt:MessageContent> |
1345 | | <wsnt:TopicExpression <span class="bold"><strong> |
1346 | | xmlns:tns="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics"</strong></span> |
1347 | | Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>> |
1348 | | <span class="bold"><strong>tns://* |
1349 | | </strong></span></wsnt:TopicExpression> |
1350 | | </wsnt:Filter> |
1351 | | </smn-ext:Subscription> |
1352 | | <smn-ext:Subscription> |
1353 | | ... |
1354 | | </smn-ext:Subscription> |
1355 | | ... |
1356 | | </smn-ext:ListSubscriptionsResponse> |
1357 | | </SOAP-ENV:Body> |
1358 | | </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: |
1359 | | <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListSubscriptionsResponse. |
1360 | | <span class="emphasis"><em>If differ, a fault will be |
1361 | | returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListSubscriptionsResponse</em></span></p><p>This element contains a list of subscriptions received from |
1362 | | <span class="emphasis"><em>QCG Notification</em></span> (propably also filtered on |
1363 | | the basis of the smn-ext:Filter element sent in |
1364 | | ListSubscriptions).</p></li><li><p><span class="emphasis"><em>//smn-ext:ListSubscriptionsResponse/smn-ext:Subscription</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>The element provides information about a |
1365 | | single Subscription.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//smn-ext:ListSubscriptionsResponse/smn-ext:Subscription/SubscriptionID</em></span></p><p>A Subscription identifier. The value is at most 32 char long |
1366 | | string.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListSubscriptionsResponse/smn-ext:Subscription/smn-ext:ConsumerReference/wsa:Address</em></span></p><p>An address of Notification Consumer declared in a |
1367 | | Subscription.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListSubscriptionsResponse/smn-ext:Subscription/smn-ext:CreationTime</em></span></p><p><span class="emphasis"><em>/smn-ext:ListSubscriptionsResponse/smn-ext:Subscription/smn-ext:TerminationTime</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>Creation time and termination time of a |
1368 | | Subscription. The content of these elements is a time expressed as |
1369 | | UTC time.</em></span></em></span></p></li><li><p><span class="emphasis"><em>/smn-ext:ListSubscriptionsResponse/smn-ext:Subscription/wsnt:Filter</em></span></p><p>The same parameter as the parameter specified in the |
1370 | | Subscribe message. It specifies Notification filtering parameters |
1371 | | of a Subscription.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1797"></a>3.5.22. ListPublishersRegistrations</h4></div></div></div><p>The next method from the the group of administrative methods. It |
1372 | | may be utilized to list Publishers Registrations. The method consists |
1373 | | of several filtering parameters.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
1374 | | <SOAP-ENV:Header> |
1375 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
1376 | | <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ |
1377 | | QCGNotificationManager/ListPublishersRegistrationsRequest</strong></span> |
1378 | | </wsa:Action> |
1379 | | ... |
1380 | | </SOAP-ENV:Header> |
1381 | | <SOAP-ENV:Body> |
1382 | | <smn-ext:ListPublishersRegistrations> |
1383 | | <smn-ext:Filter> |
1384 | | <smn-ext:PublisherRegistrationID> |
1385 | | <span class="bold"><strong>984943658</strong></span> |
1386 | | </smn-ext:PublisherRegistrationID> |
1387 | | <smn-ext:PublisherReference> |
1388 | | <wsa:Address> |
1389 | | <span class="bold"><strong>127.0.0.1</strong></span> |
1390 | | </wsa5:Address> |
1391 | | </smn-ext:PublisherReference> |
1392 | | <smn-ext:CreationTimeMin> |
1393 | | <span class="bold"><strong>2010-07-08T09:37:04Z</strong></span> |
1394 | | </smn-ext:CreationTimeMin> |
1395 | | <smn-ext:CreationTimeMax> |
1396 | | <span class="bold"><strong>2010-07-08T11:37:04Z</strong></span> |
1397 | | </smn-ext:CreationTimeMax> |
1398 | | <smn-ext:TerminationTimeMin> |
1399 | | <span class="bold"><strong>2010-07-08T09:37:04Z</strong></span> |
1400 | | </smn-ext:TerminationTimeMin> |
1401 | | <smn-ext:TerminationTimeMax> |
1402 | | <span class="bold"><strong>2010-07-08T11:37:04Z</strong></span> |
1403 | | </smn-ext:TerminationTimeMax> |
1404 | | </smn-ext:Filter> |
1405 | | </smn-ext:ListPublishersRegistrations> |
1406 | | </SOAP-ENV:Body> |
1407 | | </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: |
1408 | | <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListPublishersRegistrationsRequest. |
1409 | | <span class="emphasis"><em>If differ, a fault will be |
1410 | | returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListPublishersRegistrations/smn-ext:Filter</em></span></p><p>The element from <span class="emphasis"><em>QCG Notification</em></span> |
1411 | | schema. It consists of optional filtering parameters.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListPublishersRegistrations/smn-ext:Filter/PublisherRegistrationID</em></span></p><p>A Publisher Registration identifier. This parameter enables |
1412 | | filtering of Publisher Registrations based on Publishers |
1413 | | Registrations ID. The value is at most 32 char long string.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListPublishersRegistrations/smn-ext:Filter/smn-ext:PublisherReference/wsa:Address</em></span></p><p>This element enables filtering based on an addresses of |
1414 | | Publishers. Depending on configuration, this address may be held |
1415 | | in the <span class="emphasis"><em>QCG Notification</em></span> service as an address |
1416 | | sent in the From element of WSA Header of RegisterPublisher |
1417 | | message or an IP address of a Publisher.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListPublishersRegistrations/smn-ext:Filter/smn-ext:CreationTimeMin</em></span></p><p><span class="emphasis"><em>/smn-ext:ListPublishersRegistrations/smn-ext:Filter/smn-ext:CreationTimeMax</em></span></p><p><span class="emphasis"><em>/smn-ext:ListPublishersRegistrations/smn-ext:Filter/smn-ext:TerminationTimeMin |
1418 | | </em></span></p><p><span class="emphasis"><em>/smn-ext:ListPublishersRegistrations/smn-ext:Filter/smn-ext:TerminationTimeMax</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>The elements define filtering parameters |
1419 | | related to lifetime of a Publisher Registration, respectively: |
1420 | | minimal creation time, maximal creation time, minimal termination |
1421 | | time and maximal termination time. The content of these elements |
1422 | | is a time expressed as a local time with a |
1423 | | timezone.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1878"></a>3.5.23. ListPublisherRegistrationsResponse</h4></div></div></div><p>The response message to ListPublishersRegistrations. It includes |
1424 | | a list of information sets about Publishers Registrations.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
1425 | | <SOAP-ENV:Header> |
1426 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
1427 | | <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ |
1428 | | QCGNotificationManager/ListPublishersRegistrationsResponse |
1429 | | </strong></span></wsa:Action> |
1430 | | ... |
1431 | | </SOAP-ENV:Header> |
1432 | | <SOAP-ENV:Body> |
1433 | | <smn-ext:ListPublishersRegistrationsResponse> |
1434 | | <smn-ext:PublisherRegistration> |
1435 | | <smn-ext:PublisherRegistrationID> |
1436 | | <span class="bold"><strong>16807 |
1437 | | </strong></span></smn-ext:PublisherRegistrationID> |
1438 | | <smn-ext:PublisherReference> |
1439 | | <wsa:Address> |
1440 | | <span class="bold"><strong>http://localhost:2233</strong></span> |
1441 | | </wsa:Address> |
1442 | | </smn-ext:PublisherReference> |
1443 | | <smn-ext:CreationTime> |
1444 | | <span class="bold"><strong>2010-07-09T09:21:48Z |
1445 | | </strong></span></smn-ext:CreationTime> |
1446 | | <smn-ext:TerminationTime> |
1447 | | <span class="bold"><strong>2010-07-09T09:21:48Z</strong></span> |
1448 | | </smn-ext:TerminationTime> |
1449 | | </smn-ext:PublisherRegistration> |
1450 | | <smn-ext:PublisherRegistration> |
1451 | | ... |
1452 | | </smn-ext:PublisherRegistration> |
1453 | | ... |
1454 | | </smn-ext:ListPublishersRegistrationsResponse> |
1455 | | </SOAP-ENV:Body> |
1456 | | </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: |
1457 | | <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListPublishersRegistrationsResponse. |
1458 | | <span class="emphasis"><em>If differ, a fault will be |
1459 | | returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListPublishersRegistrationsResponse</em></span></p><p>The element contains a list of Publishers Registrations |
1460 | | received from <span class="emphasis"><em>QCG Notification</em></span> (propably also |
1461 | | filtered on the basis of the smn-ext:Filter element sent in a |
1462 | | ListPublishersRegistrations message).</p></li><li><p><span class="emphasis"><em>//smn-ext:ListPublishersRegistrationsResponse/smn-ext:PublisherRegistration</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>The element provides information about a |
1463 | | single Publisher Registration.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//smn-ext:ListPublishersRegistrationsResponse/smn-ext:PublisherRegistration/PublisherRegistrationID</em></span></p><p>A Publisher Registration identifier. The value is at most 32 |
1464 | | char long string.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListPublishersRegistrationsResponse/smn-ext:PublisherRegistration/smn-ext:PublisherReference/wsa:Address</em></span></p><p>An address of Publisher. It may be an address defined in a |
1465 | | From element of WSA Header of a RegisterPublisher message or an IP |
1466 | | address of a publisher.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListPublishersRegistrationsResponse/smn-ext:PublisherRegistration/smn-ext:CreationTime</em></span></p><p><span class="emphasis"><em>/smn-ext:ListPublishersRegistrationsResponse/smn-ext:PublisherRegistration/smn-ext:TerminationTime</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>Creation time and termination time of a |
1467 | | Publisher Registration. The content of these elements is a time |
1468 | | expressed as UTC time.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1952"></a>3.5.24. ListPullPoints</h4></div></div></div><p>The next administrative method. It enables listing of available |
1469 | | PullPoints. The method consists of several optional filtering |
1470 | | parameters.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
1471 | | <SOAP-ENV:Header> |
1472 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
1473 | | <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ |
1474 | | QCGNotificationManager/ListPullPointsRequest</strong></span> |
1475 | | </wsa:Action> |
1476 | | ... |
1477 | | </SOAP-ENV:Header> |
1478 | | <SOAP-ENV:Body> |
1479 | | <smn-ext:ListPullPoints> |
1480 | | <smn-ext:Filter> |
1481 | | <smn-ext:PullPointID> |
1482 | | <span class="bold"><strong>9342232</strong></span> |
1483 | | </smn-ext:PullPointID> |
1484 | | <smn-ext:PullPointReference> |
1485 | | <wsa:Address> |
1486 | | <span class="bold"><strong>http://localhost:2211?ppID=9342232</strong></span> |
1487 | | </wsa5:Address> |
1488 | | </smn-ext:PullPointReference> |
1489 | | <smn-ext:CreationTimeMin> |
1490 | | <span class="bold"><strong>2010-07-08T09:38:03Z</strong></span> |
1491 | | </smn-ext:CreationTimeMin> |
1492 | | <smn-ext:CreationTimeMax> |
1493 | | <span class="bold"><strong>2010-07-08T11:38:03Z</strong></span> |
1494 | | </smn-ext:CreationTimeMax> |
1495 | | <smn-ext:TerminationTimeMin> |
1496 | | <span class="bold"><strong>2010-07-08T09:38:03Z</strong></span> |
1497 | | </smn-ext:TerminationTimeMin> |
1498 | | <smn-ext:TerminationTimeMax> |
1499 | | <span class="bold"><strong>2010-07-08T11:38:03Z</strong></span> |
1500 | | </smn-ext:TerminationTimeMax> |
1501 | | </smn-ext:Filter> |
1502 | | </smn-ext:ListPullPoints> |
1503 | | </SOAP-ENV:Body> |
1504 | | </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: |
1505 | | <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListPullPointsRequest. |
1506 | | <span class="emphasis"><em>If differ, a fault will be |
1507 | | returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListPullPoints/smn-ext:Filter</em></span></p><p>The element from <span class="emphasis"><em>QCG Notification</em></span> |
1508 | | schema. It consists of optional filtering parameters.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListPullPoints/smn-ext:Filter/smn-ext:PullPointID</em></span></p><p>A PullPoint identifier. This parameter enables filtering of |
1509 | | PullPoints based on PullPoint ID. The value is at most 32 char |
1510 | | long string.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListPullPoints/smn-ext:Filter/smn-ext:PullPointReference/wsa:Address</em></span></p><p>This element enables filtering based on an addresses of |
1511 | | PullPoint. The PullPoint address is assigned after creation of a |
1512 | | PullPoint in <span class="emphasis"><em>QCG Notification</em></span> and returned |
1513 | | inside CreatePullPointResponse.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListPullPoints/smn-ext:Filter/smn-ext:CreationTimeMin</em></span></p><p><span class="emphasis"><em>/smn-ext:ListPullPoints/smn-ext:Filter/smn-ext:CreationTimeMax</em></span></p><p><span class="emphasis"><em>/smn-ext:ListPullPoints/smn-ext:Filter/smn-ext:TerminationTimeMin |
1514 | | </em></span></p><p><span class="emphasis"><em>/smn-ext:ListPullPoints/smn-ext:Filter/smn-ext:TerminationTimeMax</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>The elements define filtering parameters |
1515 | | related to PullPoint lifetime, respectively: minimal creation |
1516 | | time, maximal creation time, minimal termination time and maximal |
1517 | | termination time. The content of these elements is a time |
1518 | | expressed as a local time with a |
1519 | | timezone.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2033"></a>3.5.25. ListPullPointsResponse</h4></div></div></div><p>The response message to ListPullPoints. It includes a list of |
1520 | | information sets about filtered Pullpoints.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
1521 | | <SOAP-ENV:Header> |
1522 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
1523 | | <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ |
1524 | | QCGNotificationManager/ListPullPointsResponse |
1525 | | </strong></span></wsa:Action> |
1526 | | ... |
1527 | | </SOAP-ENV:Header> |
1528 | | <SOAP-ENV:Body> |
1529 | | <smn-ext:ListPullPointsResponse> |
1530 | | <smn-ext:PullPoint> |
1531 | | <smn-ext:PullPointID> |
1532 | | <span class="bold"><strong>9342232 |
1533 | | </strong></span></smn-ext:PullPointID> |
1534 | | <smn-ext:PullPointReference> |
1535 | | <wsa:Address> |
1536 | | <span class="bold"><strong>http://localhost:2211?ppID=9342232</strong></span> |
1537 | | </wsa:Address> |
1538 | | </smn-ext:PullPointReference> |
1539 | | <smn-ext:CreationTime> |
1540 | | <span class="bold"><strong>2010-07-09T09:31:28Z |
1541 | | </strong></span></smn-ext:CreationTime> |
1542 | | <smn-ext:TerminationTime> |
1543 | | <span class="bold"><strong>2010-07-09T09:31:28Z</strong></span> |
1544 | | </smn-ext:TerminationTime> |
1545 | | </smn-ext:PullPoint> |
1546 | | <smn-ext:PullPoint> |
1547 | | ... |
1548 | | </smn-ext:PullPoint> |
1549 | | ... |
1550 | | </smn-ext:ListPullPointsResponse> |
1551 | | </SOAP-ENV:Body> |
1552 | | </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: |
1553 | | <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListPullPointsResponse. |
1554 | | <span class="emphasis"><em>If differ, a fault will be |
1555 | | returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListPullPointsResponse</em></span></p><p>The element contains a list of PullPoints received from |
1556 | | <span class="emphasis"><em>QCG Notification</em></span> (propably also previously |
1557 | | filtered on the basis of the smn-ext:Filter element sent in a |
1558 | | ListPullPoints message).</p></li><li><p><span class="emphasis"><em>//smn-ext:ListPullPointsResponse/smn-ext:PullPoint</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>The element provides particular |
1559 | | information about a single PullPoint.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//smn-ext:ListPullPointsResponse/smn-ext:PullPoint/PullPointID</em></span></p><p>A PullPoint identifier. The value is at most 32 char long |
1560 | | string.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListPullPointsResponse/smn-ext:PullPoint/smn-ext:PullPointReference/wsa:Address</em></span></p><p>An address of PullPoint. For particular PullPoint it is the |
1561 | | same adress as the address from a corresponding |
1562 | | CreatePullPointResponse message.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListPullPointsResponse/smn-ext:PullPoint/smn-ext:CreationTime</em></span></p><p><span class="emphasis"><em>/smn-ext:ListPullPointsResponse/smn-ext:PullPoint/smn-ext:TerminationTime</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>Creation time and termination time of a |
1563 | | PullPoint. The content of these elements is a time expressed as |
1564 | | UTC time.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2107"></a>3.5.26. ListTopicNamespaces</h4></div></div></div><p>An administrative method. It is designed to listing available |
1565 | | Topic Namespaces and Topics assigned to this namespaces.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
1566 | | <SOAP-ENV:Header> |
1567 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
1568 | | <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ |
1569 | | QCGNotificationManager/ListTopicNamespacesRequest</strong></span> |
1570 | | </wsa:Action> |
1571 | | ... |
1572 | | </SOAP-ENV:Header> |
1573 | | <SOAP-ENV:Body> |
1574 | | <smn-ext:ListTopicNamespaces> |
1575 | | <smn-ext:Filter> |
1576 | | <smn-ext:targetNamespace> |
1577 | | <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span> |
1578 | | </smn-ext:targetNamespace> |
1579 | | </smn-ext:Filter> |
1580 | | </smn-ext:ListTopicNamespaces> |
1581 | | </SOAP-ENV:Body> |
1582 | | </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: |
1583 | | <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListTopicNamespacesRequest. |
1584 | | <span class="emphasis"><em>If differ, a fault will be |
1585 | | returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListTopicNamespaces/smn-ext:Filter</em></span></p><p>The element from <span class="emphasis"><em>QCG Notification</em></span> |
1586 | | schema. It consists of optional filtering parameters.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListPullPoints/smn-ext:Filter/smn-ext:targetNamespace</em></span></p><p>A targetNamespace of a TopicNamespace. This parameter |
1587 | | enables filtering of TopicNamespaces based on their |
1588 | | targetNamespace names.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2147"></a>3.5.27. ListTopicNamespacesResponse</h4></div></div></div><p>The response message to ListTopicNamespaces. The message |
1589 | | consists of information sets for each filtered TopicNamespace. A |
1590 | | single set includes targetNamespaces and a list of topics.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
1591 | | <SOAP-ENV:Header> |
1592 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
1593 | | <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ |
1594 | | QCGNotificationManager/ListPullPointsResponse |
1595 | | </strong></span></wsa:Action> |
1596 | | ... |
1597 | | </SOAP-ENV:Header> |
1598 | | <SOAP-ENV:Body> |
1599 | | <smn-ext:ListTopicNamespacesResponse> |
1600 | | <smn-ext:TopicNamespace> |
1601 | | <smn-ext:targetNamespace> |
1602 | | <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span><span class="bold"><strong> |
1603 | | </strong></span></smn-ext:targetNamespace> |
1604 | | <smn-ext:Topic> |
1605 | | <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics/House</strong></span> |
1606 | | </smn-ext:Topic> |
1607 | | <smn-ext:Topic> |
1608 | | ... |
1609 | | <smn-ext:Topic> |
1610 | | ... |
1611 | | </smn-ext:TopicNamespace> |
1612 | | <smn-ext:TopicNamespace> |
1613 | | ... |
1614 | | </smn-ext:TopicNamespace> |
1615 | | ... |
1616 | | </smn-ext:ListTopicNamespacesResponse> |
1617 | | </SOAP-ENV:Body> |
1618 | | </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: |
1619 | | <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/ListTopicNamespacesResponse. |
1620 | | <span class="emphasis"><em>If differ, a fault will be |
1621 | | returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//smn-ext:ListTopicNamespacesResponse</em></span></p><p>The element contains a list of information about |
1622 | | TopicNamespaces received from <span class="emphasis"><em>QCG |
1623 | | Notification</em></span> (optionally filtered on the basis of the |
1624 | | smn-ext:Filter element sent in a ListTopicNamespaces |
1625 | | message).</p></li><li><p><span class="emphasis"><em>//smn-ext:ListTopicNamespacesResponse/smn-ext:TopicNamespace</em></span></p><p><span class="emphasis"><em><span class="emphasis"><em>The element provides particular |
1626 | | information about a single |
1627 | | TopicNamespace.</em></span></em></span></p></li><li><p><span class="emphasis"><em>//smn-ext:ListTopicNamespacesResponse/smn-ext:TopicNamespace/smn-ext:targetNamespace</em></span></p><p>A targetNamespace identifying single TopicNamespace. The |
1628 | | value should be compliant with anyURI.</p></li><li><p><span class="emphasis"><em>/smn-ext:ListTopicNamespacesResponse/smn-ext:TopicNamespace/smn-ext:Topic</em></span></p><p>A list of topics belonging to a TopicNamespace. Each listed |
1629 | | topic is proceded by a targetNamespace so it is uniq.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2206"></a>3.5.28. AddTopicNamespace</h4></div></div></div><p>An administrative method. The method may be invoked to add a new |
1630 | | TopicNamespace to the <span class="emphasis"><em>IQCG Notification</em></span>.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
1631 | | <SOAP-ENV:Header> |
1632 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
1633 | | <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ |
1634 | | QCGNotificationManager/AddTopicNamespaceRequest</strong></span> |
1635 | | </wsa:Action> |
1636 | | ... |
1637 | | </SOAP-ENV:Header> |
1638 | | <SOAP-ENV:Body> |
1639 | | <smn-ext:AddTopicNamespace> |
1640 | | <wstop:TopicNamespace |
1641 | | targetNamespace="<span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics2</strong></span>"> |
1642 | | <wstop:Topic final="false" name="<span class="bold"><strong>House</strong></span>"> |
1643 | | <wstop:Topic ...> |
1644 | | ... |
1645 | | </wstop:Topic> |
1646 | | ... |
1647 | | </wstop:Topic> |
1648 | | ... |
1649 | | </wstop:TopicNamespace> |
1650 | | </smn-ext:AddTopicNamespace> |
1651 | | </SOAP-ENV:Body> |
1652 | | </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: |
1653 | | <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/AddTopicNamespaceRequest. |
1654 | | <span class="emphasis"><em>If differ, a fault will be |
1655 | | returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//smn-ext:AddTopicNamespaces/wstop:TopicNamespace</em></span></p><p>The element defining a single Topic Namespace. It cames from |
1656 | | WS-Topics schema.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2243"></a>3.5.29. AddTopicNamespaceResponse</h4></div></div></div><p>A response message to a AddTopicNamespaceRequest. It is empty |
1657 | | and only confirms successfull addition of a TopicNamespace to the |
1658 | | <span class="emphasis"><em>QCG Notification</em></span> service. </p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
1659 | | <SOAP-ENV:Header> |
1660 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
1661 | | <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ |
1662 | | PullPoint/AddTopicNamespaceResponse</strong></span> |
1663 | | </wsa:Action> |
1664 | | ... |
1665 | | </SOAP-ENV:Header> |
1666 | | <SOAP-ENV:Body> |
1667 | | <smn-ext:AddTopicNamespaceResponse> |
1668 | | </smn-ext:AddTopicNamespaceResponse> |
1669 | | </SOAP-ENV:Body> |
1670 | | </SOAP-ENV:Envelope></pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: |
1671 | | <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/AddTopicNamespaceResponse.</em></span><span class="emphasis"><em><span class="emphasis"><em> |
1672 | | If differ, a fault will be returned.</em></span></em></span></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2268"></a>3.5.30. RemoveTopicNamespace</h4></div></div></div><p>The next administrative method. It is used to remove a |
1673 | | TopicNamespace from the <span class="emphasis"><em>QCG Notification</em></span> system. |
1674 | | Note that the removing may be only temporary (active to the restart of |
1675 | | the system) if the TopicNamespace file is protected by disabling write |
1676 | | permission.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
1677 | | <SOAP-ENV:Header> |
1678 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
1679 | | <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/ |
1680 | | QCGNotificationManager/RemoveTopicNamespaceRequest</strong></span> |
1681 | | </wsa:Action> |
1682 | | ... |
1683 | | </SOAP-ENV:Header> |
1684 | | <SOAP-ENV:Body> |
1685 | | <smn-ext:RemoveTopicNamespace> |
1686 | | <smn-ext:targetNamespace> |
1687 | | <span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics2/House</strong></span> |
1688 | | </smn-ext:targetNamespace> |
1689 | | </smn-ext:RemoveTopicNamespace> |
1690 | | </SOAP-ENV:Body> |
1691 | | </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: |
1692 | | <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/RemoveTopicNamespaceRequest. |
1693 | | <span class="emphasis"><em>If differ, a fault will be |
1694 | | returned</em></span></em></span>.</p></li><li><p><span class="emphasis"><em>//smn-ext:RemoveTopicNamespaces/smn-ext:targetNamespace</em></span></p><p>The targetNamespace name of a TopicNamespace dedicated to |
1695 | | remove - anyURI.</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2302"></a>3.5.31. RemoveTopicNamespaceResponse</h4></div></div></div><p>A response message to a RemoveTopicNamespaceRequest. It is empty |
1696 | | and confirms the successfull deletion of a TopicNamespace. |
1697 | | </p><pre class="programlisting"><SOAP-ENV:Envelope ... > |
1698 | | <SOAP-ENV:Header> |
1699 | | <wsa:Action SOAP-ENV:mustUnderstand="1"> |
1700 | | <span class="bold"><strong>http://docs.oasis-open.org/wsn/bw-2/ |
1701 | | PullPoint/RemoveTopicNamespaceResponse</strong></span> |
1702 | | </wsa:Action> |
1703 | | ... |
1704 | | </SOAP-ENV:Header> |
1705 | | <SOAP-ENV:Body> |
1706 | | <smn-ext:RemoveTopicNamespaceResponse> |
1707 | | </smn-ext:RemoveTopicNamespaceResponse> |
1708 | | </SOAP-ENV:Body> |
1709 | | </SOAP-ENV:Envelope></pre><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>//SOAP-ENV:Header/wsa:Action</em></span></p><p>For this message should always be: |
1710 | | <span class="emphasis"><em>http://schemas.qoscosgrid.org/ntf/2011/04/QCGNotificationManager/RemoveTopicNamespaceResponse.</em></span><span class="emphasis"><em><span class="emphasis"><em> |
1711 | | If differ, a fault will be returned.</em></span></em></span></p></li></ul></div></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e2324"></a>4. Administration Guide of <span class="emphasis"><em>QCG |
1712 | | Notification</em></span></h2></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2329"></a>4.1. Prerequisites</h3></div></div></div><p>In order to build and install <span class="emphasis"><em>QCG |
1713 | | Notification</em></span>, an administrator has to appropriately configure |
1714 | | operating system. There is some dependencies to external software that |
1715 | | should be satisfied.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2337"></a>4.1.1. QCG Core library</h4></div></div></div><p><span class="emphasis"><em>QCG Notification</em></span> is based on the |
1716 | | <span class="emphasis"><em>QCG Core</em></span> library developed by the |
1717 | | <span class="emphasis"><em>QCG</em></span> team. QCG Core is a common utility library |
1718 | | providing set of basic modules used by other components within QCG |
1719 | | Project. For more information see QCG Core documentation.</p><p>The QCG Core library should be properly configured in prior to |
1720 | | preparation of <span class="emphasis"><em>QCG Notification</em></span>.</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2355"></a>4.2. Building</h3></div></div></div><p>Before you compile <span class="emphasis"><em>QCG Notification</em></span>, you need |
1721 | | to run the configuration script first. It will try to check if all the |
1722 | | requirements are met and whether needed third party software is |
1723 | | available. Simply type the following command:</p><pre class="programlisting">$ ./configure</pre><p>There are several options that can be passed to the script. If you |
1724 | | type the --help parameter you will see all available options. These are |
1725 | | the most important ones:</p><div class="itemizedlist"><ul type="disc"><li><p>--prefix=DIR</p><p>specifies directory where <span class="emphasis"><em>QCG |
1726 | | Notification</em></span> will be installed.</p><p>Default: /opt/qcg</p></li><li><p>--with-qcg-core=PFX</p><p>specifies where QCG Core library is installed.</p><p>Default: no default value. qcg-core-config script is used to |
1727 | | determine necessary paths</p></li><li><p>--with-client</p><p>Determine if the test client program should be build</p></li><li><p>--with-consumer</p><p>Determine if the test NotificationConsumer service should be |
1728 | | build</p></li><li><p>--with-addressing-handler</p><p>Determine if the test Web Services Addressing handler |
1729 | | service should be build</p></li></ul></div><p>After successful configuration step, compiling and |
1730 | | installing of <span class="emphasis"><em>QCG Notification</em></span> should be a |
1731 | | straightforward process:</p><pre class="programlisting">$ make |
1732 | | $ make install</pre><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>The installation step should be done either as |
1733 | | <code class="filename">root</code> or the user that will execute <span class="emphasis"><em>QCG |
1734 | | Notification</em></span> service, assuming he has necessary privileges |
1735 | | to do this.</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2416"></a>4.3. Creating database for <span class="emphasis"><em>QCG Notification</em></span> - the |
1736 | | PostgreSQL example</h3></div></div></div><p><span class="emphasis"><em>QCG Notification</em></span> can be run in two basic |
1737 | | modes related to the database connection: without database or with |
1738 | | database. Although the first option is sufficient for simple scenarios, |
1739 | | it reduces the overall functionality of the <span class="emphasis"><em>QCG |
1740 | | Notification</em></span> (e.g. disable PullPoints). Therefore using the |
1741 | | database is recomended and can be often essential.</p><p>You will find more detailed description of administrative tasks in |
1742 | | PostgreSQL tutorial. However, the following basic steps are needed to |
1743 | | set up a database and appropriate tables for <span class="emphasis"><em>QCG |
1744 | | Notification</em></span> assuming that you have already setup a |
1745 | | PostgreSQL database:</p><p>By default, the first database user created will also be named |
1746 | | <code class="filename">postgres</code>. In order to create a user for |
1747 | | <span class="emphasis"><em>QCG Notification</em></span> usage, for instance |
1748 | | <code class="filename">qcg-ntf</code>, type the following:</p><pre class="programlisting">$ createuser -U postgres -W qcg-ntf -P</pre><p>If you use a password then remember to supply it in |
1749 | | <code class="filename">qcg-ntfd.xml</code> configuration file. Create a database, |
1750 | | for example <code class="filename">qcg-ntf</code>, by typing the following |
| 5 | Manual</h2></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname">Bartosz</span> <span class="surname">Bosak</span></h3><code class="email"><<a class="email" href="mailto:b |
| 6 | #!/bin/bash |
| 7 | command:</p><pre class="programlisting">$ createdb qcg-ntf</pre><p>and set up a table structure using the |