Changes between Version 21 and Version 22 of technicalGuideAndManual
- Timestamp:
- 11/20/13 12:54:51 (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
technicalGuideAndManual
v21 v22 1 1 {{{ 2 2 #!html 3 <div xml:lang="en" class="article" title="QCG Notification v. 3.0 Technical Guide and Manual"><div class="titlepage"><div><div><h2 class="title"><a id="idp192"></a><span class="emphasis"><em>QCG Notification</em></span> v. 3.0Technical Guide and3 <div xml:lang="en" class="article" title="QCG-Notification v. 3.2 Technical Guide and Manual"><div class="titlepage"><div><div><h2 class="title"><a id="idp192"></a><span class="emphasis"><em>QCG-Notification</em></span> v. 3.2 Technical Guide and 4 4 Manual</h2></div><div><div class="authorgroup"> 5 5 <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> 6 6 7 7 <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> 8 </div></div><div><p xml:lang="en" class="releaseinfo">3. 0.3</p></div><div><p class="copyright">Copyright © 2008-2013 Poznan Supercomputing and Networking Center</p></div></div><hr></hr></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="sect1"><a href="#idp32960">Introduction</a></span></dt><dd><dl><dt><span class="sect2"><a href="#idp35648">Motivations</a></span></dt><dt><span class="sect2"><a href="#idp8704">Purpose of the Document</a></span></dt><dt><span class="sect2"><a href="#idp38656">Status</a></span></dt></dl></dd><dt><span class="sect1"><a href="#idp33088">Terminology and WS-Notification Concept</a></span></dt><dd><dl><dt><span class="sect2"><a href="#idp41856">WS-Notification Concept</a></span></dt><dt><span class="sect2"><a href="#idp136496">UML-style Diagrams</a></span></dt></dl></dd><dt><span class="sect1"><a href="#idp168048">User Guide for a Publisher, Subscriber and9 NotificationConsumer<span class="emphasis"><em> </em></span></a></span></dt><dd><dl><dt><span class="sect2"><a href="#idp1 69120">Prefixes and Namespaces</a></span></dt><dt><span class="sect2"><a href="#idp188752">Interaction with <span class="emphasis"><em>QCG Notification</em></span></a></span></dt><dt><span class="sect2"><a href="#ted">Topics, TopicExpressions and Dialects</a></span></dt><dt><span class="sect2"><a href="#idp217984">Extensions</a></span></dt><dt><span class="sect2"><a href="#idp238384">Methods Description</a></span></dt></dl></dd><dt><span class="sect1"><a href="#idp656832">Administration Guide of <span class="emphasis"><em>QCG10 Notification</em></span></a></span></dt><dd><dl><dt><span class="sect2"><a href="#idp659488">Prerequisites</a></span></dt><dt><span class="sect2"><a href="#idp665136">Building</a></span></dt><dt><span class="sect2"><a href="#idp680896">Creating database for <span class="emphasis"><em>QCGNotification</em></span> - the11 PostgreSQL example</a></span></dt></dl></dd><dt><span class="sect1"><a href="#idp7 02064">Configuration of <span class="emphasis"><em>QCG Notification</em></span></a></span></dt><dd><dl><dt><span class="sect2"><a href="#idp703168">Configuration File: <code class="filename">qcg-ntfd.xml</code></a></span></dt><dt><span class="sect2"><a href="#moduleoptions">Module configuration</a></span></dt><dt><span class="sect2"><a href="#idp870048">WS-Topics management</a></span></dt><dt><span class="sect2"><a href="#idp875936">Starting <span class="emphasis"><em>QCG Notification</em></span></a></span></dt><dt><span class="sect2"><a href="#idp881408">Stopping <span class="emphasis"><em>QCGNotification</em></span></a></span></dt></dl></dd></dl></div>8 </div></div><div><p xml:lang="en" class="releaseinfo">3.2.0</p></div><div><p class="copyright">Copyright © 2008-2013 Poznan Supercomputing and Networking Center</p></div></div><hr></hr></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="sect1"><a href="#idp4160">Introduction</a></span></dt><dd><dl><dt><span class="sect2"><a href="#idp35072">Motivations</a></span></dt><dt><span class="sect2"><a href="#idp18432">Purpose of the Document</a></span></dt><dt><span class="sect2"><a href="#idp40112">Status</a></span></dt></dl></dd><dt><span class="sect1"><a href="#idp41056">Terminology and WS-Notification Concept</a></span></dt><dd><dl><dt><span class="sect2"><a href="#idp42464">WS-Notification Concept</a></span></dt><dt><span class="sect2"><a href="#idp137520">UML-style Diagrams</a></span></dt></dl></dd><dt><span class="sect1"><a href="#idp170464">User Guide for a Publisher, Subscriber and 9 NotificationConsumer<span class="emphasis"><em> </em></span></a></span></dt><dd><dl><dt><span class="sect2"><a href="#idp171776">Prefixes and Namespaces</a></span></dt><dt><span class="sect2"><a href="#idp194432">Interaction with <span class="emphasis"><em>QCG-Notification</em></span></a></span></dt><dt><span class="sect2"><a href="#ted">Topics, TopicExpressions and Dialects</a></span></dt><dt><span class="sect2"><a href="#idp225600">Extensions</a></span></dt><dt><span class="sect2"><a href="#idp246832">Methods Description</a></span></dt></dl></dd><dt><span class="sect1"><a href="#idp247088">Administration Guide of 10 <span class="emphasis"><em>QCG-Notification</em></span></a></span></dt><dd><dl><dt><span class="sect2"><a href="#idp674032">Prerequisites</a></span></dt><dt><span class="sect2"><a href="#idp679536">Building</a></span></dt><dt><span class="sect2"><a href="#idp695296">Creating database for <span class="emphasis"><em>QCG-Notification</em></span> - the 11 PostgreSQL example</a></span></dt></dl></dd><dt><span class="sect1"><a href="#idp716544">Configuration of <span class="emphasis"><em>QCG-Notification</em></span></a></span></dt><dd><dl><dt><span class="sect2"><a href="#idp717776">Configuration File: <code class="filename">qcg-ntfd.xml</code></a></span></dt><dt><span class="sect2"><a href="#moduleoptions">Module configuration</a></span></dt><dt><span class="sect2"><a href="#idp883872">WS-Topics management</a></span></dt><dt><span class="sect2"><a href="#idp889392">Starting <span class="emphasis"><em>QCG-Notification</em></span></a></span></dt><dt><span class="sect2"><a href="#idp894960">Stopping <span class="emphasis"><em>QCG-Notification</em></span></a></span></dt></dl></dd></dl></div> 12 12 13 13 14 <div class="sect1" title="Introduction"><div class="titlepage"><div><div><h2 class="title"><a id="idp 32960"></a>Introduction</h2></div></div></div>14 <div class="sect1" title="Introduction"><div class="titlepage"><div><div><h2 class="title"><a id="idp4160"></a>Introduction</h2></div></div></div> 15 15 16 16 17 <p><span class="bold"><strong>QCG 17 <p><span class="bold"><strong>QCG-Notification</strong></span> is a reference 18 18 implementation of a set of industry Web Service specifications (<a class="link" href="#WS-Notification"><a class="ulink" href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsn">WS-Notification 19 19 OASIS standard)</a></a> for message push/pull-style notification, … … 28 28 subscriptions.).</p> 29 29 30 <div class="sect2" title="Motivations"><div class="titlepage"><div><div><h3 class="title"><a id="idp35 648"></a>Motivations</h3></div></div></div>30 <div class="sect2" title="Motivations"><div class="titlepage"><div><div><h3 class="title"><a id="idp35072"></a>Motivations</h3></div></div></div> 31 31 32 32 … … 53 53 </div> 54 54 55 <div class="sect2" title="Purpose of the Document"><div class="titlepage"><div><div><h3 class="title"><a id="idp 8704"></a>Purpose of the Document</h3></div></div></div>55 <div class="sect2" title="Purpose of the Document"><div class="titlepage"><div><div><h3 class="title"><a id="idp18432"></a>Purpose of the Document</h3></div></div></div> 56 56 57 57 58 58 <p>The main goal of this document is to define a set of initial use 59 cases, scenarios and specify software requirements for <span class="emphasis"><em>QCG60 Notification</em></span>, its programming application interface,61 functional units and the integration with both internal and external62 modules.</p>59 cases, scenarios and specify software requirements for 60 <span class="emphasis"><em>QCG-Notification</em></span>, its programming application 61 interface, functional units and the integration with both internal and 62 external modules.</p> 63 63 64 64 <p>The document is aimed at software architects and programmers who 65 65 will be developing software components based on this document. Many 66 requirements and <span class="emphasis"><em>QCG 66 requirements and <span class="emphasis"><em>QCG-Notification </em></span>concept itself 67 67 might be interesting for developers and end users of any Web 68 68 Services.</p> … … 72 72 </div> 73 73 74 <div class="sect2" title="Status"><div class="titlepage"><div><div><h3 class="title"><a id="idp 38656"></a>Status</h3></div></div></div>74 <div class="sect2" title="Status"><div class="titlepage"><div><div><h3 class="title"><a id="idp40112"></a>Status</h3></div></div></div> 75 75 76 76 … … 80 80 </div> 81 81 82 <div class="sect1" title="Terminology and WS-Notification Concept"><div class="titlepage"><div><div><h2 class="title"><a id="idp 33088"></a>Terminology and WS-Notification Concept</h2></div></div></div>82 <div class="sect1" title="Terminology and WS-Notification Concept"><div class="titlepage"><div><div><h2 class="title"><a id="idp41056"></a>Terminology and WS-Notification Concept</h2></div></div></div> 83 83 84 84 85 85 <p>The aim of this section is to capture high-level functionality of 86 <span class="emphasis"><em>QCG 86 <span class="emphasis"><em>QCG-Notification</em></span> and/or interaction without providing 87 87 excessive implementation or technical details of the system.</p> 88 88 89 <div class="sect2" title="WS-Notification Concept"><div class="titlepage"><div><div><h3 class="title"><a id="idp4 1856"></a>WS-Notification Concept</h3></div></div></div>89 <div class="sect2" title="WS-Notification Concept"><div class="titlepage"><div><div><h3 class="title"><a id="idp42464"></a>WS-Notification Concept</h3></div></div></div> 90 90 91 91 92 <div class="sect3" title="WS-Notification Fundamentals"><div class="titlepage"><div><div><h4 class="title"><a id="idp4 2800"></a>WS-Notification Fundamentals</h4></div></div></div>92 <div class="sect3" title="WS-Notification Fundamentals"><div class="titlepage"><div><div><h4 class="title"><a id="idp43408"></a>WS-Notification Fundamentals</h4></div></div></div> 93 93 94 94 … … 134 134 </div> 135 135 136 <div class="sect3" title="WS-BaseNotification"><div class="titlepage"><div><div><h4 class="title"><a id="idp5 4576"></a>WS-BaseNotification</h4></div></div></div>136 <div class="sect3" title="WS-BaseNotification"><div class="titlepage"><div><div><h4 class="title"><a id="idp55184"></a>WS-BaseNotification</h4></div></div></div> 137 137 138 138 … … 190 190 </div> 191 191 192 <div class="sect3" title="WS-BrokeredNotification"><div class="titlepage"><div><div><h4 class="title"><a id="idp7 3792"></a>WS-BrokeredNotification</h4></div></div></div>192 <div class="sect3" title="WS-BrokeredNotification"><div class="titlepage"><div><div><h4 class="title"><a id="idp74496"></a>WS-BrokeredNotification</h4></div></div></div> 193 193 194 194 … … 200 200 flow where NotificationBroker is present.</p> 201 201 202 <div class="figure"><a id="idp7 5776"></a><p class="title"><strong>Figure 2. Web Services BrokeredNotification entities - QCG203 Notification entities</strong></p><div class="figure-contents">202 <div class="figure"><a id="idp76368"></a><p class="title"><strong>Figure 2. Web Services BrokeredNotification entities - 203 QCG-Notification entities</strong></p><div class="figure-contents"> 204 204 205 205 206 <div class="mediaobject" style="text-align: center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/smn_brokeredentities.png" style="text-align: middle" width="324" alt="Web Services BrokeredNotification entities - QCG 206 <div class="mediaobject" style="text-align: center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/smn_brokeredentities.png" style="text-align: middle" width="324" alt="Web Services BrokeredNotification entities - QCG-Notification entities"></img></div> 207 207 </div></div><p><br class="figure-break"></br>Note, that there are some important enlargements and 208 208 modifications in the WS-BrokeredNotificatison terminology. Below the … … 274 274 </div> 275 275 276 <div class="sect3" title="WS-Topics"><div class="titlepage"><div><div><h4 class="title"><a id="idp9 8784"></a>WS-Topics</h4></div></div></div>276 <div class="sect3" title="WS-Topics"><div class="titlepage"><div><div><h4 class="title"><a id="idp99424"></a>WS-Topics</h4></div></div></div> 277 277 278 278 … … 301 301 </dd></dl></div> 302 302 303 <div class="figure"><a id="idp11 0368"></a><p class="title"><strong>Figure 3. Example Topic Namespace</strong></p><div class="figure-contents">303 <div class="figure"><a id="idp111056"></a><p class="title"><strong>Figure 3. Example Topic Namespace</strong></p><div class="figure-contents"> 304 304 305 305 … … 308 308 </div> 309 309 310 <div class="sect3" title="Base of QCG Notification"><div class="titlepage"><div><div><h4 class="title"><a id="idp113248"></a>Base of <span class="emphasis"><em>QCGNotification</em></span></h4></div></div></div>311 312 313 <p><span class="emphasis"><em>QCG 310 <div class="sect3" title="Base of QCG-Notification"><div class="titlepage"><div><div><h4 class="title"><a id="idp112832"></a>Base of <span class="emphasis"><em>QCG-Notification</em></span></h4></div></div></div> 311 312 313 <p><span class="emphasis"><em>QCG-Notification</em></span> is a reference 314 314 implementation of WS-BaseNotification, WS-BrokeredNotification and 315 315 WS-Topics OASIS industry standards. As a consistent and highly … … 319 319 scale Web Service based systems, SOA environments and it acts as a 320 320 core component in QCG Service Bus. To meet security requirements, 321 <span class="emphasis"><em>QCG Notification</em></span> (or <span class="emphasis"><em>QCGNotification321 <span class="emphasis"><em>QCG-Notification</em></span> (or <span class="emphasis"><em>QCG-Notification 322 322 Provider</em></span>) exposes well defined Web Service and programming 323 323 interfaces over QCG security mechanisms for dynamic notification, … … 327 327 Publisher, Subscriber or Consumer.</p> 328 328 329 <p>A flexible plug-in architecture of <span class="emphasis"><em>QCG 329 <p>A flexible plug-in architecture of <span class="emphasis"><em>QCG-Notification 330 330 </em></span>enables using different communication protocols for 331 331 messages transmission. Currently messages can be transported between 332 <span class="emphasis"><em>QCG 332 <span class="emphasis"><em>QCG-Notification</em></span> and third party entities not 333 333 only through HTTP protocol, but also through XMPP (jabber) as well as 334 334 SMTP (e-mail) protocols. It is possible to variously mix channels of … … 338 338 339 339 <p>Below we present a set of Web Service notification use cases 340 demonstrating capabilities offered by <span class="emphasis"><em>QCG341 Notification</em></span>.</p>340 demonstrating capabilities offered by 341 <span class="emphasis"><em>QCG-Notification</em></span>.</p> 342 342 343 343 <div class="figure"><a id="notificationConsumers"></a><p class="title"><strong>Figure 4. Notification with multiple Publishers and multiple … … 349 349 350 350 <p>The <a class="link" href="#notificationConsumers" title="Figure 4. Notification with multiple Publishers and multiple NotificationConsumers">diagram 4</a> shows 351 one of the basic notification flows supported by <span class="emphasis"><em>QCG 352 Notification</em></span>. Depending on records, Notifications produced 353 by a Publisher and received by the <span class="emphasis"><em>QCG 354 Notification</em></span> may or may not be dispatched to concrete 355 NotificationConsumer. Note, that Subscriptions represent relationships 356 between Topics and NotificationConsumers in this scenario. Before any 357 Notification is delivered to a NotificationConsumer, a Subscriber has 358 to send first a SubscribeRequest message to <span class="emphasis"><em>QCG 359 Notification</em></span> in which all parameters of a Subscription are 360 specified. Main parameters of a SubscribeRequest message are 361 ConsumerReference and TopicExpression defined according to the 362 specific Dialect type. On the other hand, before a Publisher starts 363 sending Notifications it may be obligated to register himself in 364 <span class="emphasis"><em>QCG Notification</em></span>. The diagram below shows a 351 one of the basic notification flows supported by 352 <span class="emphasis"><em>QCG-Notification</em></span>. Depending on records, 353 Notifications produced by a Publisher and received by the 354 <span class="emphasis"><em>QCG-Notification</em></span> may or may not be dispatched to 355 concrete NotificationConsumer. Note, that Subscriptions represent 356 relationships between Topics and NotificationConsumers in this 357 scenario. Before any Notification is delivered to a 358 NotificationConsumer, a Subscriber has to send first a 359 SubscribeRequest message to <span class="emphasis"><em>QCG-Notification</em></span> in 360 which all parameters of a Subscription are specified. Main parameters 361 of a SubscribeRequest message are ConsumerReference and 362 TopicExpression defined according to the specific Dialect type. On the 363 other hand, before a Publisher starts sending Notifications it may be 364 obligated to register himself in 365 <span class="emphasis"><em>QCG-Notification</em></span>. The diagram below shows a 365 366 sequence of events in order to initialize an asynchronous process of 366 367 notifications between a Publisher and a NotificationConsumer.</p> 367 368 368 <div class="figure"><a id="idp12 6512"></a><p class="title"><strong>Figure 5. Message flows: creating a Subscription, notifying369 <div class="figure"><a id="idp127200"></a><p class="title"><strong>Figure 5. Message flows: creating a Subscription, notifying 369 370 NotificationConsumers</strong></p><div class="figure-contents"> 370 371 … … 376 377 <p>A Subscriber sends the SubscribeRequest message with a 377 378 NotificationConsumer location and TopicExpression parameters to 378 <span class="emphasis"><em>QCG 379 </li><li class="listitem"> 380 <p><span class="emphasis"><em>QCG 379 <span class="emphasis"><em>QCG-Notification</em></span>.</p> 380 </li><li class="listitem"> 381 <p><span class="emphasis"><em>QCG-Notification</em></span> prepares appropriate 381 382 records for a Subscription.</p> 382 383 </li><li class="listitem"> 383 <p>A Publisher register himself in <span class="emphasis"><em>QCG384 Notification</em></span> by sending the RegisterPublisher385 message.</p>384 <p>A Publisher register himself in 385 <span class="emphasis"><em>QCG-Notification</em></span> by sending the 386 RegisterPublisher message.</p> 386 387 </li><li class="listitem"> 387 388 <p>A registered Publisher sends the Notify message on a 388 specified Topic to a <span class="emphasis"><em>QCG 389 specified Topic to a <span class="emphasis"><em>QCG-Notification 389 390 </em></span>service.</p> 390 391 </li><li class="listitem"> 391 <p><span class="emphasis"><em>QCG 392 <p><span class="emphasis"><em>QCG-Notification</em></span> checks if there are 392 393 NotificationConsumers subscribed on a specified Topic. If so, 393 <span class="emphasis"><em>QCG 394 <span class="emphasis"><em>QCG-Notification</em></span> sends asynchronous 394 395 Notifications to these NotifcationConsumers.</p> 395 396 </li></ol></div> … … 397 398 </div> 398 399 399 <div class="sect2" title="UML-style Diagrams"><div class="titlepage"><div><div><h3 class="title"><a id="idp13 6496"></a>UML-style Diagrams</h3></div></div></div>400 <div class="sect2" title="UML-style Diagrams"><div class="titlepage"><div><div><h3 class="title"><a id="idp137520"></a>UML-style Diagrams</h3></div></div></div> 400 401 401 402 … … 454 455 in a scenario and actions associated with that scenario.</p> 455 456 456 <div class="sect3" title="`Main Use Cases"><div class="titlepage"><div><div><h4 class="title"><a id="idp1 49312"></a>`Main Use Cases</h4></div></div></div>457 458 459 <div class="figure"><a id="idp15 0128"></a><p class="title"><strong>Figure 6. Use case diagram for a Publisher</strong></p><div class="figure-contents">457 <div class="sect3" title="`Main Use Cases"><div class="titlepage"><div><div><h4 class="title"><a id="idp150304"></a>`Main Use Cases</h4></div></div></div> 458 459 460 <div class="figure"><a id="idp151120"></a><p class="title"><strong>Figure 6. Use case diagram for a Publisher</strong></p><div class="figure-contents"> 460 461 461 462 … … 463 464 </div></div><br class="figure-break"></br> 464 465 465 <div class="figure"><a id="idp15 3248"></a><p class="title"><strong>Figure 7. Use case diagram for a Subscriber</strong></p><div class="figure-contents">466 <div class="figure"><a id="idp154160"></a><p class="title"><strong>Figure 7. Use case diagram for a Subscriber</strong></p><div class="figure-contents"> 466 467 467 468 … … 469 470 </div></div><br class="figure-break"></br> 470 471 471 <div class="figure"><a id="idp156 000"></a><p class="title"><strong>Figure 8. Use case diagram for a NotificationConsumer</strong></p><div class="figure-contents">472 <div class="figure"><a id="idp156912"></a><p class="title"><strong>Figure 8. Use case diagram for a NotificationConsumer</strong></p><div class="figure-contents"> 472 473 473 474 … … 475 476 </div></div><br class="figure-break"></br> 476 477 477 <div class="figure"><a id="idp15 8752"></a><p class="title"><strong>Figure 9. Use case diagram for QCGNotification</strong></p><div class="figure-contents">478 <div class="figure"><a id="idp159856"></a><p class="title"><strong>Figure 9. Use case diagram for QCG-Notification</strong></p><div class="figure-contents"> 478 479 479 480 480 <div class="mediaobject" style="text-align: center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/use_qcgnotification.png" style="text-align: middle" width="432" alt="Use case diagram for QCG 481 <div class="mediaobject" style="text-align: center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/use_qcgnotification.png" style="text-align: middle" width="432" alt="Use case diagram for QCG-Notification"></img></div> 481 482 </div></div><br class="figure-break"></br> 482 483 483 <div class="figure"><a id="idp16 1504"></a><p class="title"><strong>Figure 10. Use case diagram for a QCGNotification Administrator</strong></p><div class="figure-contents">484 <div class="figure"><a id="idp162992"></a><p class="title"><strong>Figure 10. Use case diagram for a QCG-Notification Administrator</strong></p><div class="figure-contents"> 484 485 485 486 486 <div class="mediaobject" style="text-align: center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/use_administrator.png" style="text-align: middle" width="432" alt="Use case diagram for a QCG 487 <div class="mediaobject" style="text-align: center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/use_administrator.png" style="text-align: middle" width="432" alt="Use case diagram for a QCG-Notification Administrator"></img></div> 487 488 </div></div><br class="figure-break"></br> 488 489 </div> 489 490 490 <div class="sect3" title="Main Sequence Diagrams"><div class="titlepage"><div><div><h4 class="title"><a id="idp16 4256"></a>Main Sequence Diagrams</h4></div></div></div>491 492 493 <div class="figure"><a id="idp16 4896"></a><p class="title"><strong>Figure 11. General sequence diagram</strong></p><div class="figure-contents">491 <div class="sect3" title="Main Sequence Diagrams"><div class="titlepage"><div><div><h4 class="title"><a id="idp166304"></a>Main Sequence Diagrams</h4></div></div></div> 492 493 494 <div class="figure"><a id="idp167008"></a><p class="title"><strong>Figure 11. General sequence diagram</strong></p><div class="figure-contents"> 494 495 495 496 … … 500 501 </div> 501 502 502 <div class="sect1" title="User Guide for a Publisher, Subscriber and NotificationConsumer"><div class="titlepage"><div><div><h2 class="title"><a id="idp1 68048"></a>User Guide for a Publisher, Subscriber and503 <div class="sect1" title="User Guide for a Publisher, Subscriber and NotificationConsumer"><div class="titlepage"><div><div><h2 class="title"><a id="idp170464"></a>User Guide for a Publisher, Subscriber and 503 504 NotificationConsumer<span class="emphasis"><em> </em></span></h2></div></div></div> 504 505 505 506 506 <div class="sect2" title="Prefixes and Namespaces"><div class="titlepage"><div><div><h3 class="title"><a id="idp1 69120"></a>Prefixes and Namespaces</h3></div></div></div>507 <div class="sect2" title="Prefixes and Namespaces"><div class="titlepage"><div><div><h3 class="title"><a id="idp171776"></a>Prefixes and Namespaces</h3></div></div></div> 507 508 508 509 … … 511 512 sections.</p> 512 513 513 <div class="table"><a id="idp17 0320"></a><p class="title"><strong>Table 1. Prefixes and Namespaces</strong></p><div class="table-contents">514 <div class="table"><a id="idp173136"></a><p class="title"><strong>Table 1. Prefixes and Namespaces</strong></p><div class="table-contents"> 514 515 515 516 … … 518 519 </div> 519 520 520 <div class="sect2" title="Interaction with QCG Notification"><div class="titlepage"><div><div><h3 class="title"><a id="idp188752"></a>Interaction with <span class="emphasis"><em>QCGNotification</em></span></h3></div></div></div>521 <div class="sect2" title="Interaction with QCG-Notification"><div class="titlepage"><div><div><h3 class="title"><a id="idp194432"></a>Interaction with <span class="emphasis"><em>QCG-Notification</em></span></h3></div></div></div> 521 522 522 523 523 <p>In the next subsections an issue of cooperation with <span class="emphasis"><em>QCG524 Notification</em></span> is presented independently for a Publisher,525 Subscriber and NotificationConsumer. Although a conceptual style of526 interaction is described here in details, technical particularities of527 constructing messages are presented later.</p>528 529 <div class="sect3" title="Publisher Interaction"><div class="titlepage"><div><div><h4 class="title"><a id="idp19 0848"></a>Publisher Interaction</h4></div></div></div>530 531 532 <div class="figure"><a id="idp19 1488"></a><p class="title"><strong>Figure 12. Publisher interaction sequence diagram</strong></p><div class="figure-contents">524 <p>In the next subsections an issue of cooperation with 525 <span class="emphasis"><em>QCG-Notification</em></span> is presented independently for a 526 Publisher, Subscriber and NotificationConsumer. Although a conceptual 527 style of interaction is described here in details, technical 528 particularities of constructing messages are presented later.</p> 529 530 <div class="sect3" title="Publisher Interaction"><div class="titlepage"><div><div><h4 class="title"><a id="idp196496"></a>Publisher Interaction</h4></div></div></div> 531 532 533 <div class="figure"><a id="idp197136"></a><p class="title"><strong>Figure 12. Publisher interaction sequence diagram</strong></p><div class="figure-contents"> 533 534 534 535 … … 539 540 has to be registered before it starts sending Notifications. In this 540 541 situation, a Publisher sends the RegisterPublisherRequest message to 541 <span class="emphasis"><em>QCG 542 <span class="emphasis"><em>QCG-Notification</em></span>. If everything goes well it 542 543 receives the RegisterPublisherResponse message with a session ID. From 543 544 this time a Publisher is entitled for sending Notify messages - the … … 550 551 </div> 551 552 552 <div class="sect3" title="Subscriber interaction"><div class="titlepage"><div><div><h4 class="title"><a id="idp 196000"></a>Subscriber interaction</h4></div></div></div>553 554 555 <div class="figure"><a id="idp 196640"></a><p class="title"><strong>Figure 13. Subscriber interaction sequence diagram</strong></p><div class="figure-contents">553 <div class="sect3" title="Subscriber interaction"><div class="titlepage"><div><div><h4 class="title"><a id="idp201824"></a>Subscriber interaction</h4></div></div></div> 554 555 556 <div class="figure"><a id="idp202464"></a><p class="title"><strong>Figure 13. Subscriber interaction sequence diagram</strong></p><div class="figure-contents"> 556 557 557 558 … … 560 561 561 562 <p>When a Subscriber wants to create a Subscription, it sends the 562 SubscribeRequest message to <span class="emphasis"><em>QCG 563 SubscribeRequest message to <span class="emphasis"><em>QCG-Notification</em></span>. 563 564 This message should contain an address of NotificationConsumer and a 564 565 TopicExpression that specifies a Topic or a set of Topics on which … … 568 569 From the version 2.5.0 of the system, the Subscriber may specify XSLT 569 570 document that will be used to transform message content by certain 570 publishing modules. After creation of a Subscription <span class="emphasis"><em>QCG571 Notification</em></span> sends the SubscribeResponse message with a572 created Subscription ID. This ID should be attached to the573 UnsubscribeRequest message when a Subscription is not wanted and the574 Renew message when a Subscription should be refreshed. A Subscriber is575 allowed to create many equal Subscriptions.</p>571 publishing modules. After creation of a Subscription 572 <span class="emphasis"><em>QCG-Notification</em></span> sends the SubscribeResponse 573 message with a created Subscription ID. This ID should be attached to 574 the UnsubscribeRequest message when a Subscription is not wanted and 575 the Renew message when a Subscription should be refreshed. A 576 Subscriber is allowed to create many equal Subscriptions.</p> 576 577 577 578 <p>If a scenario requires pull-style of notifications, a Subscriber 578 579 can create a set of PullPoints. In a such situation, it has to invoke 579 the CreatePullPoint method offered by <span class="emphasis"><em>QCG 580 the CreatePullPoint method offered by <span class="emphasis"><em>QCG-Notification. 580 581 <span class="emphasis"><em>The response parameter of this method will be an address to 581 582 the newly created <span class="emphasis"><em>PullPoint resource (Subscribers can assign … … 586 587 </div> 587 588 588 <div class="sect3" title="NotificationConsumer Interaction"><div class="titlepage"><div><div><h4 class="title"><a id="idp20 3344"></a>NotificationConsumer Interaction</h4></div></div></div>589 590 591 <div class="figure"><a id="idp2 04112"></a><p class="title"><strong>Figure 14. NotificationConsumer interaction sequence diagram</strong></p><div class="figure-contents">589 <div class="sect3" title="NotificationConsumer Interaction"><div class="titlepage"><div><div><h4 class="title"><a id="idp208816"></a>NotificationConsumer Interaction</h4></div></div></div> 590 591 592 <div class="figure"><a id="idp210352"></a><p class="title"><strong>Figure 14. NotificationConsumer interaction sequence diagram</strong></p><div class="figure-contents"> 592 593 593 594 … … 595 596 </div></div><p><br class="figure-break"></br>The main capability of a NotificationConsumer is a 596 597 receiving of Notify messages. A NotificationConsumer can implement an 597 interface for receiving Notify messages sending by <span class="emphasis"><em>QCG598 Notification</em></span> or can be a client of a PullPoint. In the599 second case, a NotificationConsumer can invoke GetMessages method600 offered by a certain PullPoint. Messages buffered in the PullPoint601 will be removed from the buffer and delivered in GetMessagesResponse602 to the consumer.</p>598 interface for receiving Notify messages sending by 599 <span class="emphasis"><em>QCG-Notification</em></span> or can be a client of a 600 PullPoint. In the second case, a NotificationConsumer can invoke 601 GetMessages method offered by a certain PullPoint. Messages buffered 602 in the PullPoint will be removed from the buffer and delivered in 603 GetMessagesResponse to the consumer.</p> 603 604 604 605 <p>On the other hand, when a NotificationConsumer wants to receive 605 606 the last Notification message sent on a specific Topic, it can do this 606 by sending GetCurrentMessageRequest to <span class="emphasis"><em>QCG607 Notification</em></span>. Requested Notification will be supplied in608 the GetCurrentMessageResponse message.</p>607 by sending GetCurrentMessageRequest to 608 <span class="emphasis"><em>QCG-Notification</em></span>. Requested Notification will be 609 supplied in the GetCurrentMessageResponse message.</p> 609 610 </div> 610 611 </div> … … 613 614 614 615 615 <p>Before start-up of a <span class="emphasis"><em>QCG 616 <p>Before start-up of a <span class="emphasis"><em>QCG-Notification</em></span> 616 617 service, there should be defined Topic Namespaces in a system. Topic 617 618 Namespaces should be created (usually by Publishers) and delivered to 618 a<span class="emphasis"><em> QCG 619 a<span class="emphasis"><em> QCG-Notification</em></span> administrator in a form of XML 619 620 documents. A following record presents a sample Topic Namespace 620 621 identified by … … 642 643 </wstop:TopicNamespace></pre> 643 644 644 <p><span class="emphasis"><em>QCG 645 <p><span class="emphasis"><em>QCG-Notification </em></span>supports three types of 645 646 dialects: <span class="emphasis"><em>Simple</em></span>, <span class="emphasis"><em>Concrete</em></span> and 646 647 <span class="emphasis"><em>Full</em></span>. If a message refer to Topics, it has to … … 657 658 </div> 658 659 659 <div class="sect2" title="Extensions"><div class="titlepage"><div><div><h3 class="title"><a id="idp2 17984"></a>Extensions</h3></div></div></div>660 <div class="sect2" title="Extensions"><div class="titlepage"><div><div><h3 class="title"><a id="idp225600"></a>Extensions</h3></div></div></div> 660 661 661 662 662 663 <p>The Oasis standard for notifications doesn't define details for 663 664 lower Levels of functionality so an architect of system is obligated to 664 introduce some extensions and clarifications. In the <span class="emphasis"><em>QCG665 Notification </em></span>scenario there are several messages that have to666 be expanded with additional information written as embedded XML. Some of667 these extensions are related with other Oasis standards but some are668 quite new. Technical details are described in the successive669 su bsections.</p>670 671 <div class="sect3" title="TopicExpression"><div class="titlepage"><div><div><h4 class="title"><a id="idp2 19920"></a>TopicExpression</h4></div></div></div>672 673 674 <p><span class="emphasis"><em>QCG 665 introduce some extensions and clarifications. In the 666 <span class="emphasis"><em>QCG-Notification </em></span>scenario there are several 667 messages that have to be expanded with additional information written as 668 embedded XML. Some of these extensions are related with other Oasis 669 standards but some are quite new. Technical details are described in the 670 successive subsections.</p> 671 672 <div class="sect3" title="TopicExpression"><div class="titlepage"><div><div><h4 class="title"><a id="idp226336"></a>TopicExpression</h4></div></div></div> 673 674 675 <p><span class="emphasis"><em>QCG-Notification </em></span>remote peers have to use 675 676 an appropriate TopicExpression XML element. The schema of this element 676 677 is defined according to Oasis standard in<a class="ulink" href="http://docs.oasis-open.org/wsn/b-2.xsd"><a class="ulink" href="http://docs.oasis-open.org/wsn/b-2.xsd"> … … 684 685 </div> 685 686 686 <div class="sect3" title="QCG Notification Extensions"><div class="titlepage"><div><div><h4 class="title"><a id="idp222944"></a><span class="emphasis"><em>QCGNotification</em></span> Extensions</h4></div></div></div>687 688 689 <p><span class="emphasis"><em>QCG 687 <div class="sect3" title="QCG-Notification Extensions"><div class="titlepage"><div><div><h4 class="title"><a id="idp229440"></a><span class="emphasis"><em>QCG-Notification</em></span> Extensions</h4></div></div></div> 688 689 690 <p><span class="emphasis"><em>QCG-Notification</em></span> introduces some extensions 690 691 to WSDL as well as schema documents related to the Oasis standard. The 691 692 following schema defines these extensions. The first three elements … … 741 742 </xsd:simpleType> 742 743 743 <!-- ===== ============ QCG Notification manager : ListPullPoints ================== -->744 <!-- ===== QCG-Notification manager : ListPullPoints ===== --> 744 745 745 746 <xsd:complexType name="ListSubscriptionsFilter"> … … 801 802 </xsd:element> 802 803 803 <!-- ===== ============ QCG Notification manager : ListPublishersRegistrations ================== -->804 <!-- ===== QCG-Notification manager : ListPublishersRegistrations ===== --> 804 805 805 806 <xsd:complexType name="ListPublishersRegistrationsFilter"> … … 860 861 </xsd:element> 861 862 862 <!-- ===== ============ QCG Notification manager : ListPullPoints ================== -->863 <!-- ===== QCG-Notification manager : ListPullPoints ===== --> 863 864 864 865 <xsd:complexType name="ListPullPointsFilter"> … … 920 921 </xsd:element> 921 922 922 <!-- ===== ============ QCG Notification manager : ListTopicNamespaces ================== -->923 <!-- ===== QCG-Notification manager : ListTopicNamespaces ===== --> 923 924 924 925 <xsd:complexType name="ListTopicNamespacesFilter"> … … 945 946 <xsd:sequence> 946 947 <xsd:element name="targetNamespace" type="xsd:anyURI" use="required"/> 947 <xsd:element name="Topics" type="xsd:anyURI" minOccurs="0" maxOccurs="unbounded"/> 948 <xsd:element name="Topics" type="xsd:anyURI" 949 minOccurs="0" maxOccurs="unbounded"/> 948 950 <xsd:any namespace="##other" processContents="lax" 949 951 minOccurs="0" maxOccurs="unbounded"/> … … 962 964 </xsd:element> 963 965 964 <!-- ===== ============ QCG Notification manager : AddTopicNamespace ================== -->966 <!-- ===== QCG-Notification manager : AddTopicNamespace ===== --> 965 967 966 968 <xsd:element name="AddTopicNamespace"> … … 983 985 </xsd:element> 984 986 985 <!-- ===== ============ QCG Notification manager : RemoveTopicNamespace ================== -->987 <!-- ===== QCG-Notification manager : RemoveTopicNamespace ===== --> 986 988 987 989 <xsd:element name="RemoveTopicNamespace"> … … 1009 1011 </div> 1010 1012 1011 <div class="sect2" title="Methods Description"><div class="titlepage"><div><div><h3 class="title"><a id="idp2 38384"></a>Methods Description</h3></div></div></div>1013 <div class="sect2" title="Methods Description"><div class="titlepage"><div><div><h3 class="title"><a id="idp246832"></a>Methods Description</h3></div></div></div> 1012 1014 1013 1015 1014 1016 <p>The main idea of this chapter is to present the types of messages 1015 used in the <span class="emphasis"><em>QCG 1017 used in the <span class="emphasis"><em>QCG-Notification</em></span> scenario as well as 1016 1018 introduce how to construct and interpret these messages. The majority of 1017 them is two-way style and initiated by <span class="emphasis"><em>QCG1018 Notification</em></span> clients. Exception is the Notify message that is1019 one-way style. In the first phase it is transported from a Publisher to1020 <span class="emphasis"><em>QCG Notification</em></span> and in the second it is1021 transported from <span class="emphasis"><em>QCG Notification</em></span> to subscribed1022 NotificationConsumers.</p>1023 1024 <p>All supported by <span class="emphasis"><em>QCG 1019 them is two-way style and initiated by 1020 <span class="emphasis"><em>QCG-Notification</em></span> clients. Exception is the Notify 1021 message that is one-way style. In the first phase it is transported from 1022 a Publisher to <span class="emphasis"><em>QCG-Notification</em></span> and in the second 1023 it is transported from <span class="emphasis"><em>QCG-Notification</em></span> to 1024 subscribed NotificationConsumers.</p> 1025 1026 <p>All supported by <span class="emphasis"><em>QCG-Notification</em></span> message 1025 1027 types are presented and explained below.</p> 1026 1028 … … 1038 1040 </div> 1039 1041 1040 <div class="sect3" title="SubscribeRequest"><div class="titlepage"><div><div><h4 class="title"><a id="idp2 46400"></a>SubscribeRequest</h4></div></div></div>1041 1042 1043 <p>SubscribeRequest is sent by a Subscriber to <span class="emphasis"><em>QCG1044 Notification</em></span>. The message should contain information about1045 a NotificationConsumer and an expression defining Topic or Topics that1046 the Subscription will affect. If a message processing is successful, a1047 Subscription is created. It is possible to create many equal1048 Subscriptions by sending numerously the same SubscribeRequest1049 message.</p>1042 <div class="sect3" title="SubscribeRequest"><div class="titlepage"><div><div><h4 class="title"><a id="idp255648"></a>SubscribeRequest</h4></div></div></div> 1043 1044 1045 <p>SubscribeRequest is sent by a Subscriber to 1046 <span class="emphasis"><em>QCG-Notification</em></span>. The message should contain 1047 information about a NotificationConsumer and an expression defining 1048 Topic or Topics that the Subscription will affect. If a message 1049 processing is successful, a Subscription is created. It is possible to 1050 create many equal Subscriptions by sending numerously the same 1051 SubscribeRequest message.</p> 1050 1052 1051 1053 <pre class="programlisting">SOAP-ENV:Envelope ... > … … 1066 1068 <wsnt:Filter> 1067 1069 <wsnt:TopicExpression 1068 <span class="bold"><strong>xmlns:tns="<span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span>"</strong></span> 1069 Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>> 1070 <span class="bold"><strong>xmlns:tns= 1071 "<span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span>"</strong></span> 1072 Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>> 1070 1073 <span class="bold"><strong>tns://*</strong></span> 1071 1074 </wsnt:TopicExpression> 1072 1075 <wsnt:MessageContent 1073 <span class="bold"><strong>xmlns:smnex=http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage</strong></span> 1074 Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116"> 1076 <span class="bold"><strong>xmlns:smnex= 1077 http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage</strong></span> 1078 Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116"> 1075 1079 <span class="bold"><strong>boolean(//smnex:State[text()="on"])</strong></span> 1076 1080 </wsnt:MessageContent> … … 1112 1116 <p>A Consumer address. It is significant to specify a correct 1113 1117 prefix (http, https, xmpp). The prefix should be adequate to the 1114 expected type of connection between <span class="emphasis"><em>QCG1115 Notification</em></span> and NotificationConsumer(s): http for1116 anonymous, https for ssl-based and xmpp for sending notifications1117 to jabber clients.</p>1118 expected type of connection between 1119 <span class="emphasis"><em>QCG-Notification</em></span> and NotificationConsumer(s): 1120 http for anonymous, https for ssl-based and xmpp for sending 1121 notifications to jabber clients.</p> 1118 1122 </li><li class="listitem"> 1119 1123 <p><span class="emphasis"><em>//wsnt:Subscribe/wsnt:Filter</em></span></p> … … 1161 1165 suggestion for the termination time of the Subscription being 1162 1166 created (expressed as a local time with timezone). If not present, 1163 the termination time is determined automatically - <span class="emphasis"><em>QCG1164 Notification <span class="emphasis"><em>specify a default time1167 the termination time is determined automatically - 1168 <span class="emphasis"><em>QCG-Notification <span class="emphasis"><em>specify a default time 1165 1169 period</em></span></em></span> for the Subscription to be 1166 1170 valid.</p> … … 1176 1180 </div> 1177 1181 1178 <div class="sect3" title="SubscribeResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp2 72816"></a>SubscribeResponse</h4></div></div></div>1182 <div class="sect3" title="SubscribeResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp285872"></a>SubscribeResponse</h4></div></div></div> 1179 1183 1180 1184 1181 1185 <p>In answer on SubscribeRequest there is sent the 1182 SubscribeResponse message. <span class="emphasis"><em>QCG 1186 SubscribeResponse message. <span class="emphasis"><em>QCG-Notification</em></span> 1183 1187 deliver in this message a reference to the created Subscription. This 1184 1188 ID can be used for manipulation and to remove the Subscription.</p> … … 1220 1224 1221 1225 <p>An address of a SubscriptionManager interface. In the 1222 current solution it is the <span class="emphasis"><em>QCG 1226 current solution it is the <span class="emphasis"><em>QCG-Notification</em></span> 1223 1227 service address.</p> 1224 1228 </li><li class="listitem"> … … 1232 1236 </div> 1233 1237 1234 <div class="sect3" title="RenewRequest"><div class="titlepage"><div><div><h4 class="title"><a id="idp2 84192"></a>RenewRequest</h4></div></div></div>1238 <div class="sect3" title="RenewRequest"><div class="titlepage"><div><div><h4 class="title"><a id="idp298256"></a>RenewRequest</h4></div></div></div> 1235 1239 1236 1240 1237 1241 <p>When a Subscriber wants to renew a Subscription, it can send the 1238 RenewRequest message to <span class="emphasis"><em>QCG 1242 RenewRequest message to <span class="emphasis"><em>QCG-Notification</em></span>. The 1239 1243 message should contain the Subscription ID element and a new 1240 1244 termination time suggestion.</p> … … 1281 1285 </div> 1282 1286 1283 <div class="sect3" title="RenewResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp 294784"></a>RenewResponse</h4></div></div></div>1287 <div class="sect3" title="RenewResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp309152"></a>RenewResponse</h4></div></div></div> 1284 1288 1285 1289 … … 1325 1329 <p><span class="emphasis"><em>//wsnt:RenewResponse/wsnt:CurrentTime</em></span></p> 1326 1330 1327 <p><span class="emphasis"><em><span class="emphasis"><em>A </em></span>QCG1328 Notification's</em></span> time when the Subscription was renewing1329 (expressed as UTC Time).</p>1331 <p><span class="emphasis"><em><span class="emphasis"><em>A 1332 </em></span>QCG-Notification's</em></span> time when the 1333 Subscription was renewing (expressed as UTC Time).</p> 1330 1334 </li></ul></div> 1331 1335 </div> 1332 1336 1333 <div class="sect3" title="UnsubscribeRequest"><div class="titlepage"><div><div><h4 class="title"><a id="idp3 06512"></a>UnsubscribeRequest</h4></div></div></div>1337 <div class="sect3" title="UnsubscribeRequest"><div class="titlepage"><div><div><h4 class="title"><a id="idp320608"></a>UnsubscribeRequest</h4></div></div></div> 1334 1338 1335 1339 1336 1340 <p>When a Subscriber wants to terminate a Subscription, it has to 1337 send the UnsubscribeRequest message to <span class="emphasis"><em>QCG1338 Notification</em></span>. The parameter attached to this request is a1339 Subscription ID.</p>1341 send the UnsubscribeRequest message to 1342 <span class="emphasis"><em>QCG-Notification</em></span>. The parameter attached to this 1343 request is a Subscription ID.</p> 1340 1344 1341 1345 <pre class="programlisting"><SOAP-ENV:Envelope ... > … … 1371 1375 </div> 1372 1376 1373 <div class="sect3" title="UnsubscribeResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp3 15248"></a>UnsubscribeResponse</h4></div></div></div>1377 <div class="sect3" title="UnsubscribeResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp329408"></a>UnsubscribeResponse</h4></div></div></div> 1374 1378 1375 1379 … … 1401 1405 </div> 1402 1406 1403 <div class="sect3" title="RegisterPublisherRequest"><div class="titlepage"><div><div><h4 class="title"><a id="idp3 21392"></a>RegisterPublisherRequest</h4></div></div></div>1407 <div class="sect3" title="RegisterPublisherRequest"><div class="titlepage"><div><div><h4 class="title"><a id="idp332736"></a>RegisterPublisherRequest</h4></div></div></div> 1404 1408 1405 1409 1406 1410 <p>In order to sending Notifications, a Publisher can be obligated 1407 to register himself previously in <span class="emphasis"><em>QCG1408 Notification</em></span>. For this purpose, it sends the1409 RegisterPublisherRequest message to <span class="emphasis"><em>QCG1410 Notification</em></span>.</p>1411 to register himself previously in 1412 <span class="emphasis"><em>QCG-Notification</em></span>. For this purpose, it sends the 1413 RegisterPublisherRequest message to 1414 <span class="emphasis"><em>QCG-Notification</em></span>.</p> 1411 1415 1412 1416 <pre class="programlisting"><SOAP-ENV:Envelope ... > … … 1449 1453 suggestion for the termination time of the Registration being 1450 1454 created (expressed as a local time with timezone). If not present, 1451 the termination time is determined automatically - <span class="emphasis"><em>QCG1452 Notification <span class="emphasis"><em>specify the default time1455 the termination time is determined automatically - 1456 <span class="emphasis"><em>QCG-Notification <span class="emphasis"><em>specify the default time 1453 1457 period</em></span></em></span> for the Registration to be valid. 1454 1458 Every Notify message renews the termination time.</p> … … 1456 1460 </div> 1457 1461 1458 <div class="sect3" title="RegisterPublisherResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp3 34336"></a>RegisterPublisherResponse</h4></div></div></div>1462 <div class="sect3" title="RegisterPublisherResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp348240"></a>RegisterPublisherResponse</h4></div></div></div> 1459 1463 1460 1464 1461 1465 <p>In a response to a successful registration process, 1462 <span class="emphasis"><em>QCG 1466 <span class="emphasis"><em>QCG-Notification</em></span> sends RegisterPublisherResponse. 1463 1467 This message contains a reference to the created Registration. The 1464 1468 attached ID is necessary to send any Notification message.</p> … … 1478 1482 </wsa:Address> 1479 1483 <wsa:ReferenceParameters> 1480 1484 <span class="bold"><strong><RegisterPublisherID 1481 1485 xmlns="http://schemas.qoscosgrid.org/ntf/2011/04/extensions"> 1482 1486 1207382668 1483 1487 </RegisterPublisherID></strong></span> 1484 1488 </wsa:ReferenceParameters> 1485 1489 </wsnbr:PublisherRegistrationReference> … … 1499 1503 1500 1504 <p>An address of a PublisherRegistration Manager interface. In 1501 the current solution it is the <span class="emphasis"><em>QCG1502 Notification</em></span> service address.</p>1505 the current solution it is the 1506 <span class="emphasis"><em>QCG-Notification</em></span> service address.</p> 1503 1507 </li><li class="listitem"> 1504 1508 <p><span class="emphasis"><em>//wsnbr:RegisterPublisherResponse/wsnbr:PublisherRegistrationReference/wsa:ReferenceParameters/RegisterPublisherID</em></span></p> … … 1511 1515 </div> 1512 1516 1513 <div class="sect3" title="Notify"><div class="titlepage"><div><div><h4 class="title"><a id="idp3 46192"></a>Notify</h4></div></div></div>1517 <div class="sect3" title="Notify"><div class="titlepage"><div><div><h4 class="title"><a id="idp360032"></a>Notify</h4></div></div></div> 1514 1518 1515 1519 … … 1533 1537 <wsnt:Topic 1534 1538 Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span><span class="bold"><strong> 1535 xmlns:tns="<span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span>"> 1539 xmlns:tns= 1540 "<span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span>"> 1536 1541 tns:House/Kitchen/Light</strong></span> 1537 1542 </wsnt:Topic> … … 1542 1547 <wsnt:ProducerReference> 1543 1548 <wsnt:Message> 1544 <span class="bold"><strong><smnex:State 1545 xmlns:smnex="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"> 1549 <span class="bold"><strong><smnex:State 1550 xmlns:smnex= 1551 "http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"> 1546 1552 on 1547 1553 </smnex:State></strong></span> 1548 1554 </wsnt:Message> 1549 1555 </wsnt:NotificationMessage> … … 1606 1612 </div> 1607 1613 1608 <div class="sect3" title="DestroyRegistrationRequest"><div class="titlepage"><div><div><h4 class="title"><a id="idp3 67728"></a>DestroyRegistrationRequest</h4></div></div></div>1614 <div class="sect3" title="DestroyRegistrationRequest"><div class="titlepage"><div><div><h4 class="title"><a id="idp382784"></a>DestroyRegistrationRequest</h4></div></div></div> 1609 1615 1610 1616 1611 1617 <p>A Publisher can terminate a Registration by sending the 1612 DestroyRegistrationRequest message to <span class="emphasis"><em>QCG1613 Notification</em></span>. The parameter attached to this request is a1614 Publisher Registration ID.</p>1618 DestroyRegistrationRequest message to 1619 <span class="emphasis"><em>QCG-Notification</em></span>. The parameter attached to this 1620 request is a Publisher Registration ID.</p> 1615 1621 1616 1622 <pre class="programlisting"><SOAP-ENV:Envelope ... > … … 1646 1652 </div> 1647 1653 1648 <div class="sect3" title="DestroyRegistrationResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp3 77696"></a>DestroyRegistrationResponse</h4></div></div></div>1654 <div class="sect3" title="DestroyRegistrationResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp391616"></a>DestroyRegistrationResponse</h4></div></div></div> 1649 1655 1650 1656 … … 1677 1683 </div> 1678 1684 1679 <div class="sect3" title="CreatePullPointRequest"><div class="titlepage"><div><div><h4 class="title"><a id="idp3 82608"></a>CreatePullPointRequest</h4></div></div></div>1685 <div class="sect3" title="CreatePullPointRequest"><div class="titlepage"><div><div><h4 class="title"><a id="idp395104"></a>CreatePullPointRequest</h4></div></div></div> 1680 1686 1681 1687 1682 1688 <p>In scenarios where the pull-style of notifications delivery is 1683 1689 needed, Subscribers can create PullPoints. To do this, a Subscriber 1684 sends the CreatePullPointRequest message to <span class="emphasis"><em>QCG 1690 sends the CreatePullPointRequest message to <span class="emphasis"><em>QCG-Notification 1685 1691 PullPoint</em></span>.</p><pre class="programlisting"><SOAP-ENV:Envelope ... > 1686 1692 <SOAP-ENV:Header> … … 1707 1713 </div> 1708 1714 1709 <div class="sect3" title="CreatePullPointResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp 388896"></a>CreatePullPointResponse</h4></div></div></div>1715 <div class="sect3" title="CreatePullPointResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp404048"></a>CreatePullPointResponse</h4></div></div></div> 1710 1716 1711 1717 … … 1743 1749 </div> 1744 1750 1745 <div class="sect3" title="GetMessages"><div class="titlepage"><div><div><h4 class="title"><a id="idp 397584"></a>GetMessages</h4></div></div></div>1751 <div class="sect3" title="GetMessages"><div class="titlepage"><div><div><h4 class="title"><a id="idp412272"></a>GetMessages</h4></div></div></div> 1746 1752 1747 1753 … … 1784 1790 </div> 1785 1791 1786 <div class="sect3" title="GetMessagesResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp4 05392"></a>GetMessagesResponse</h4></div></div></div>1792 <div class="sect3" title="GetMessagesResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp421200"></a>GetMessagesResponse</h4></div></div></div> 1787 1793 1788 1794 … … 1802 1808 <wsnt:Topic 1803 1809 Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>> 1804 <span class="bold"><strong>xmlns:tns="<span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span>"</strong></span>> 1810 <span class="bold"><strong>xmlns:tns= 1811 "<span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics</strong></span>"</strong></span>> 1805 1812 <span class="bold"><strong>tns:House/Kitchen/Light</strong></span> 1806 1813 </wsnt:Topic> … … 1811 1818 <wsnt:ProducerReference> 1812 1819 <wsnt:Message> 1813 <span class="bold"><strong><span class="bold"><strong><smnex:State 1814 xmlns:smnex="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"> 1815 on 1816 </smnex:State></strong></span></strong></span> 1820 <span class="bold"><strong><span class="bold"><strong><smnex:State 1821 xmlns:smnex= 1822 "http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"> 1823 on 1824 </smnex:State></strong></span></strong></span> 1817 1825 </wsnt:Message> 1818 1826 </wsnt:NotificationMessage> … … 1866 1874 </div> 1867 1875 1868 <div class="sect3" title="DestroyPullPointRequest"><div class="titlepage"><div><div><h4 class="title"><a id="idp4 27696"></a>DestroyPullPointRequest</h4></div></div></div>1876 <div class="sect3" title="DestroyPullPointRequest"><div class="titlepage"><div><div><h4 class="title"><a id="idp442064"></a>DestroyPullPointRequest</h4></div></div></div> 1869 1877 1870 1878 … … 1895 1903 </div> 1896 1904 1897 <div class="sect3" title="DestroyPullPointResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp4 33584"></a>DestroyPullPointResponse</h4></div></div></div>1905 <div class="sect3" title="DestroyPullPointResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp447728"></a>DestroyPullPointResponse</h4></div></div></div> 1898 1906 1899 1907 … … 1923 1931 </div> 1924 1932 1925 <div class="sect3" title="GetCurrentMessageRequest"><div class="titlepage"><div><div><h4 class="title"><a id="idp4 39232"></a>GetCurrentMessageRequest</h4></div></div></div>1933 <div class="sect3" title="GetCurrentMessageRequest"><div class="titlepage"><div><div><h4 class="title"><a id="idp453344"></a>GetCurrentMessageRequest</h4></div></div></div> 1926 1934 1927 1935 … … 1930 1938 Notification Message on a specified Topic. Single GetCurrentMessage 1931 1939 should refer exactly one Topic and has to be expressed in a supported 1932 Dialect type.</p> 1940 Dialect type. The support for CurrentMessages influences some 1941 overhead, however it may be disabled in the configuration file if the 1942 support for this function is useless for a scenario.</p> 1933 1943 1934 1944 <pre class="programlisting"><SOAP-ENV:Envelope ... > … … 1943 1953 <wsnt:Topic 1944 1954 Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>> 1945 <span class="bold"><strong>xmlns:tns="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics"</strong></span>> 1946 <span class="bold"><strong>tns:</strong></span><span class="bold"><strong>House/Kitchen/Light</strong></span> 1955 <span class="bold"><strong>xmlns:tns= 1956 "http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics"</strong></span>> 1957 <span class="bold"><strong> tns:</strong></span><span class="bold"><strong>House/Kitchen/Light</strong></span> 1947 1958 </wsnt:Topic> 1948 1959 </wsnt:GetCurrentMessage> … … 1979 1990 </div> 1980 1991 1981 <div class="sect3" title="GetCurrentMessageResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp4 52432"></a>GetCurrentMessageResponse</h4></div></div></div>1982 1983 1984 <p>In a response to GetCurrentMessageRequest <span class="emphasis"><em>QCG1985 Notification</em></span> prepares GetCurrentMessageResponse. This1986 message includes the content of the last Notification1987 GetCurrentMessageRequest refers to.</p>1992 <div class="sect3" title="GetCurrentMessageResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp461568"></a>GetCurrentMessageResponse</h4></div></div></div> 1993 1994 1995 <p>In a response to GetCurrentMessageRequest 1996 <span class="emphasis"><em>QCG-Notification</em></span> prepares 1997 GetCurrentMessageResponse. This message includes the content of the 1998 last Notification GetCurrentMessageRequest refers to.</p> 1988 1999 1989 2000 <pre class="programlisting"><SOAP-ENV:Envelope ... > … … 2006 2017 <wsnt:ProducerReference> 2007 2018 <smn-ext:Message> 2008 <span class="bold"><strong><span class="bold"><strong><smnex:State 2009 xmlns:smnex="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"> 2019 <span class="bold"><strong><span class="bold"><strong><smnex:State 2020 xmlns:smnex= 2021 "http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"> 2010 2022 on 2011 2023 </smnex:State></strong></span></strong></span> 2012 2024 </smn-ext:Message> 2013 2025 </smn-ext:CurrentMessage> … … 2032 2044 <p><span class="emphasis"><em>//wsnt:GetCurrentMessageResponse/smn-ext:GetCurrentMessage/smn-ext:NotifyTime</em></span></p> 2033 2045 2034 <p>The time when notification was received by <span class="emphasis"><em>QCG 2035 Notification</em></span>; expressed as universal time (UTC).</p> 2046 <p>The time when notification was received by 2047 <span class="emphasis"><em>QCG-Notification</em></span>; expressed as universal time 2048 (UTC).</p> 2036 2049 </li><li class="listitem"> 2037 2050 <p><span class="emphasis"><em>//wsnt:GetCurrentMessageResponse/wsnt:ProducerReference/wsa:Address</em></span></p> … … 2048 2061 </div> 2049 2062 2050 <div class="sect3" title="ListSubscriptions"><div class="titlepage"><div><div><h4 class="title"><a id="idp4 69520"></a>ListSubscriptions</h4></div></div></div>2063 <div class="sect3" title="ListSubscriptions"><div class="titlepage"><div><div><h4 class="title"><a id="idp482960"></a>ListSubscriptions</h4></div></div></div> 2051 2064 2052 2065 2053 2066 <p>The first method from the the group of administrative methods. 2054 2067 It may be invoked to get an information about available subscriptions 2055 in the <span class="emphasis"><em>QCG 2068 in the <span class="emphasis"><em>QCG-Notification</em></span> service. The method 2056 2069 consists of various filtering parameters.</p> 2057 2070 … … 2089 2102 <wsnt:Filter> 2090 2103 <wsnt:MessageContent 2091 <span class="bold"><strong>xmlns:smnex="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"</strong></span> 2104 <span class="bold"><strong>xmlns:smnex= 2105 "http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"</strong></span> 2092 2106 Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116"> 2093 <span class="bold"><strong> boolean(//smnex:State[text()="on"])</strong></span>2107 <span class="bold"><strong> boolean(//smnex:State[text()="on"])</strong></span> 2094 2108 </wsnt:MessageContent> 2095 2109 <wsnt:TopicExpression 2096 <span class="bold"><strong>xmlns:tns="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics"</strong></span> 2110 <span class="bold"><strong>xmlns:tns= 2111 "http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics"</strong></span> 2097 2112 Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>> 2098 <span class="bold"><strong>tns://*</strong></span>2113 <span class="bold"><strong>tns://*</strong></span> 2099 2114 </wsnt:TopicExpression> 2100 2115 </wsnt:Filter> … … 2114 2129 <p><span class="emphasis"><em>//smn-ext:ListSubscriptions/smn-ext:Filter</em></span></p> 2115 2130 2116 <p>The expanding element from <span class="emphasis"><em>QCG2117 Notification</em></span> schema. It consists of a number of2118 optional filtering parameters.</p>2131 <p>The expanding element from 2132 <span class="emphasis"><em>QCG-Notification</em></span> schema. It consists of a 2133 number of optional filtering parameters.</p> 2119 2134 </li><li class="listitem"> 2120 2135 <p><span class="emphasis"><em>//smn-ext:ListSubscriptions/smn-ext:Filter/SubscriptionID</em></span></p> … … 2154 2169 </div> 2155 2170 2156 <div class="sect3" title="ListSubscriptionsResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp 495728"></a>ListSubscriptionsResponse</h4></div></div></div>2171 <div class="sect3" title="ListSubscriptionsResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp510016"></a>ListSubscriptionsResponse</h4></div></div></div> 2157 2172 2158 2173 … … 2188 2203 <wsnt:Filter> 2189 2204 <wsnt:MessageContent 2190 <span class="bold"><strong>xmlns:smnex="</strong></span><span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"</strong></span> 2205 <span class="bold"><strong>xmlns:smnex= 2206 "</strong></span><span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousemessage"</strong></span> 2191 2207 Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116"> 2192 <span class="bold"><strong> boolean(//smnex:State[text()="on"])</strong></span>2208 <span class="bold"><strong> boolean(//smnex:State[text()="on"])</strong></span> 2193 2209 </wsnt:MessageContent> 2194 2210 <wsnt:TopicExpression <span class="bold"><strong> 2195 xmlns:tns="http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics"</strong></span> 2211 xmlns:tns= 2212 "http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics"</strong></span> 2196 2213 Dialect=<span class="bold"><strong>"http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full"</strong></span>> 2197 <span class="bold"><strong> tns://*2214 <span class="bold"><strong> tns://* 2198 2215 </strong></span></wsnt:TopicExpression> 2199 2216 </wsnt:Filter> … … 2218 2235 2219 2236 <p>This element contains a list of subscriptions received from 2220 <span class="emphasis"><em>QCG 2237 <span class="emphasis"><em>QCG-Notification</em></span> (probably also filtered on 2221 2238 the basis of the smn-ext:Filter element sent in 2222 2239 ListSubscriptions).</p> … … 2253 2270 </div> 2254 2271 2255 <div class="sect3" title="ListPublishersRegistrations"><div class="titlepage"><div><div><h4 class="title"><a id="idp5 20736"></a>ListPublishersRegistrations</h4></div></div></div>2272 <div class="sect3" title="ListPublishersRegistrations"><div class="titlepage"><div><div><h4 class="title"><a id="idp535568"></a>ListPublishersRegistrations</h4></div></div></div> 2256 2273 2257 2274 … … 2306 2323 <p><span class="emphasis"><em>//smn-ext:ListPublishersRegistrations/smn-ext:Filter</em></span></p> 2307 2324 2308 <p>The element from <span class="emphasis"><em>QCG 2325 <p>The element from <span class="emphasis"><em>QCG-Notification</em></span> 2309 2326 schema. It consists of optional filtering parameters.</p> 2310 2327 </li><li class="listitem"> … … 2319 2336 <p>This element enables filtering based on an addresses of 2320 2337 Publishers. Depending on configuration, this address may be held 2321 in the <span class="emphasis"><em>QCG 2338 in the <span class="emphasis"><em>QCG-Notification</em></span> service as an address 2322 2339 sent in the From element of WSA Header of RegisterPublisher 2323 2340 message or an IP address of a Publisher.</p> … … 2341 2358 </div> 2342 2359 2343 <div class="sect3" title="ListPublisherRegistrationsResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp5 42336"></a>ListPublisherRegistrationsResponse</h4></div></div></div>2360 <div class="sect3" title="ListPublisherRegistrationsResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp557152"></a>ListPublisherRegistrationsResponse</h4></div></div></div> 2344 2361 2345 2362 … … 2392 2409 2393 2410 <p>The element contains a list of Publishers Registrations 2394 received from <span class="emphasis"><em>QCG 2411 received from <span class="emphasis"><em>QCG-Notification</em></span> (probably also 2395 2412 filtered on the basis of the smn-ext:Filter element sent in a 2396 2413 ListPublishersRegistrations message).</p> … … 2422 2439 </div> 2423 2440 2424 <div class="sect3" title="ListPullPoints"><div class="titlepage"><div><div><h4 class="title"><a id="idp5 61984"></a>ListPullPoints</h4></div></div></div>2441 <div class="sect3" title="ListPullPoints"><div class="titlepage"><div><div><h4 class="title"><a id="idp576880"></a>ListPullPoints</h4></div></div></div> 2425 2442 2426 2443 … … 2475 2492 <p><span class="emphasis"><em>//smn-ext:ListPullPoints/smn-ext:Filter</em></span></p> 2476 2493 2477 <p>The element from <span class="emphasis"><em>QCG 2494 <p>The element from <span class="emphasis"><em>QCG-Notification</em></span> 2478 2495 schema. It consists of optional filtering parameters.</p> 2479 2496 </li><li class="listitem"> … … 2488 2505 <p>This element enables filtering based on an addresses of 2489 2506 PullPoint. The PullPoint address is assigned after creation of a 2490 PullPoint in <span class="emphasis"><em>QCG 2507 PullPoint in <span class="emphasis"><em>QCG-Notification</em></span> and returned 2491 2508 inside CreatePullPointResponse.</p> 2492 2509 </li><li class="listitem"> … … 2509 2526 </div> 2510 2527 2511 <div class="sect3" title="ListPullPointsResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp5 82752"></a>ListPullPointsResponse</h4></div></div></div>2528 <div class="sect3" title="ListPullPointsResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp597744"></a>ListPullPointsResponse</h4></div></div></div> 2512 2529 2513 2530 … … 2560 2577 2561 2578 <p>The element contains a list of PullPoints received from 2562 <span class="emphasis"><em>QCG 2579 <span class="emphasis"><em>QCG-Notification</em></span> (probably also previously 2563 2580 filtered on the basis of the smn-ext:Filter element sent in a 2564 2581 ListPullPoints message).</p> … … 2590 2607 </div> 2591 2608 2592 <div class="sect3" title="ListTopicNamespaces"><div class="titlepage"><div><div><h4 class="title"><a id="idp6 01968"></a>ListTopicNamespaces</h4></div></div></div>2609 <div class="sect3" title="ListTopicNamespaces"><div class="titlepage"><div><div><h4 class="title"><a id="idp614320"></a>ListTopicNamespaces</h4></div></div></div> 2593 2610 2594 2611 … … 2625 2642 <p><span class="emphasis"><em>//smn-ext:ListTopicNamespaces/smn-ext:Filter</em></span></p> 2626 2643 2627 <p>The element from <span class="emphasis"><em>QCG 2644 <p>The element from <span class="emphasis"><em>QCG-Notification</em></span> 2628 2645 schema. It consists of optional filtering parameters.</p> 2629 2646 </li><li class="listitem"> … … 2636 2653 </div> 2637 2654 2638 <div class="sect3" title="ListTopicNamespacesResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp6 12816"></a>ListTopicNamespacesResponse</h4></div></div></div>2655 <div class="sect3" title="ListTopicNamespacesResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp626784"></a>ListTopicNamespacesResponse</h4></div></div></div> 2639 2656 2640 2657 … … 2684 2701 2685 2702 <p>The element contains a list of information about 2686 TopicNamespaces received from <span class="emphasis"><em>QCG2687 Notification</em></span> (optionally filtered on the basis ofthe2688 smn-ext:Filter element sent in a ListTopicNamespaces2703 TopicNamespaces received from 2704 <span class="emphasis"><em>QCG-Notification</em></span> (optionally filtered on the 2705 basis of the smn-ext:Filter element sent in a ListTopicNamespaces 2689 2706 message).</p> 2690 2707 </li><li class="listitem"> … … 2707 2724 </div> 2708 2725 2709 <div class="sect3" title="AddTopicNamespace"><div class="titlepage"><div><div><h4 class="title"><a id="idp6 28080"></a>AddTopicNamespace</h4></div></div></div>2726 <div class="sect3" title="AddTopicNamespace"><div class="titlepage"><div><div><h4 class="title"><a id="idp642272"></a>AddTopicNamespace</h4></div></div></div> 2710 2727 2711 2728 2712 2729 <p>An administrative method. The method may be invoked to add a new 2713 TopicNamespace to the <span class="emphasis"><em>QCG 2730 TopicNamespace to the <span class="emphasis"><em>QCG-Notification</em></span>.</p> 2714 2731 2715 2732 <pre class="programlisting"><SOAP-ENV:Envelope ... > … … 2724 2741 <smn-ext:AddTopicNamespace> 2725 2742 <wstop:TopicNamespace 2726 targetNamespace="<span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics2</strong></span>"> 2743 targetNamespace= 2744 "<span class="bold"><strong>http://schemas.qoscosgrid.org/ntf/2011/04/sample/myhousetopics2</strong></span>"> 2727 2745 <wstop:Topic final="false" name="<span class="bold"><strong>House</strong></span>"> 2728 2746 <wstop:Topic ...> … … 2752 2770 </div> 2753 2771 2754 <div class="sect3" title="AddTopicNamespaceResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp6 37824"></a>AddTopicNamespaceResponse</h4></div></div></div>2772 <div class="sect3" title="AddTopicNamespaceResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp649664"></a>AddTopicNamespaceResponse</h4></div></div></div> 2755 2773 2756 2774 2757 2775 <p>A response message to a AddTopicNamespaceRequest. It is empty 2758 2776 and only confirms successful addition of a TopicNamespace to the 2759 <span class="emphasis"><em>QCG 2777 <span class="emphasis"><em>QCG-Notification</em></span> service. </p><pre class="programlisting"><SOAP-ENV:Envelope ... > 2760 2778 <SOAP-ENV:Header> 2761 2779 <wsa:Action SOAP-ENV:mustUnderstand="1"> … … 2780 2798 </div> 2781 2799 2782 <div class="sect3" title="RemoveTopicNamespace"><div class="titlepage"><div><div><h4 class="title"><a id="idp6 43072"></a>RemoveTopicNamespace</h4></div></div></div>2800 <div class="sect3" title="RemoveTopicNamespace"><div class="titlepage"><div><div><h4 class="title"><a id="idp657536"></a>RemoveTopicNamespace</h4></div></div></div> 2783 2801 2784 2802 2785 2803 <p>The next administrative method. It is used to remove a 2786 TopicNamespace from the <span class="emphasis"><em>QCG 2804 TopicNamespace from the <span class="emphasis"><em>QCG-Notification</em></span> system. 2787 2805 Note that the removing may be only temporary (active to the restart of 2788 2806 the system) if the TopicNamespace file is protected by disabling write … … 2821 2839 </div> 2822 2840 2823 <div class="sect3" title="RemoveTopicNamespaceResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp6 53056"></a>RemoveTopicNamespaceResponse</h4></div></div></div>2841 <div class="sect3" title="RemoveTopicNamespaceResponse"><div class="titlepage"><div><div><h4 class="title"><a id="idp667344"></a>RemoveTopicNamespaceResponse</h4></div></div></div> 2824 2842 2825 2843 … … 2851 2869 </div> 2852 2870 2853 <div class="sect1" title="Administration Guide of QCG Notification"><div class="titlepage"><div><div><h2 class="title"><a id="idp656832"></a>Administration Guide of <span class="emphasis"><em>QCG2854 Notification</em></span></h2></div></div></div>2871 <div class="sect1" title="Administration Guide of QCG-Notification"><div class="titlepage"><div><div><h2 class="title"><a id="idp247088"></a>Administration Guide of 2872 <span class="emphasis"><em>QCG-Notification</em></span></h2></div></div></div> 2855 2873 2856 2874 2857 <div class="sect2" title="Prerequisites"><div class="titlepage"><div><div><h3 class="title"><a id="idp6 59488"></a>Prerequisites</h3></div></div></div>2875 <div class="sect2" title="Prerequisites"><div class="titlepage"><div><div><h3 class="title"><a id="idp674032"></a>Prerequisites</h3></div></div></div> 2858 2876 2859 2877 2860 <p>In order to build and install <span class="emphasis"><em>QCG2861 Notification</em></span>, an administrator has to appropriately configure2862 operating system. There is some dependencies to external software that2863 should be satisfied.</p>2864 2865 <div class="sect3" title="QCG Core library"><div class="titlepage"><div><div><h4 class="title"><a id="idp661264"></a>QCGCore library</h4></div></div></div>2866 2867 2868 <p><span class="emphasis"><em>QCG 2869 <span class="emphasis"><em>QCG 2870 <span class="emphasis"><em>QCG</em></span> team. QCG 2878 <p>In order to build and install 2879 <span class="emphasis"><em>QCG-Notification</em></span>, an administrator has to 2880 appropriately configure operating system. There is some dependencies to 2881 external software that should be satisfied.</p> 2882 2883 <div class="sect3" title="QCG-Core library"><div class="titlepage"><div><div><h4 class="title"><a id="idp675824"></a>QCG-Core library</h4></div></div></div> 2884 2885 2886 <p><span class="emphasis"><em>QCG-Notification</em></span> is based on the 2887 <span class="emphasis"><em>QCG-Core</em></span> library developed by the 2888 <span class="emphasis"><em>QCG</em></span> team. QCG-Core is a common utility library 2871 2889 providing set of basic modules used by other components within QCG 2872 2890 Project. For more information see QCG Core documentation.</p> 2873 2891 2874 <p>The QCG Core library should be properly configured in prior to2875 pr eparation of <span class="emphasis"><em>QCGNotification</em></span>.</p>2892 <p>The proper version of QCG-Core library should be configured in 2893 prior to preparation of <span class="emphasis"><em>QCG-Notification</em></span>.</p> 2876 2894 </div> 2877 2895 </div> 2878 2896 2879 <div class="sect2" title="Building"><div class="titlepage"><div><div><h3 class="title"><a id="idp6 65136"></a>Building</h3></div></div></div>2897 <div class="sect2" title="Building"><div class="titlepage"><div><div><h3 class="title"><a id="idp679536"></a>Building</h3></div></div></div> 2880 2898 2881 2899 2882 <p>Before you compile <span class="emphasis"><em>QCG 2900 <p>Before you compile <span class="emphasis"><em>QCG-Notification</em></span>, you need 2883 2901 to run the configuration script first. It will try to check if all the 2884 2902 requirements are met and whether needed third party software is … … 2894 2912 <p>--prefix=DIR</p> 2895 2913 2896 <p>specifies directory where <span class="emphasis"><em>QCG2897 Notification</em></span> will be installed.</p>2914 <p>specifies directory where 2915 <span class="emphasis"><em>QCG-Notification</em></span> will be installed.</p> 2898 2916 2899 2917 <p>Default: /opt/qcg</p> … … 2920 2938 service should be build</p> 2921 2939 </li></ul></div><p>After successful configuration step, compiling and 2922 installing of <span class="emphasis"><em>QCG 2940 installing of <span class="emphasis"><em>QCG-Notification</em></span> should be a 2923 2941 straightforward process:</p> 2924 2942 … … 2928 2946 <div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3> 2929 2947 <p>The installation step should be done either as 2930 <code class="filename">root</code> or the user that will execute <span class="emphasis"><em>QCG2931 Notification</em></span> service, assuming he has necessary privileges2932 to do this.</p>2948 <code class="filename">root</code> or the user that will execute 2949 <span class="emphasis"><em>QCG-Notification</em></span> service, assuming he has 2950 necessary privileges to do this.</p> 2933 2951 </div> 2934 2952 </div> 2935 2953 2936 <div class="sect2" title="Creating database for QCG Notification - the PostgreSQL example"><div class="titlepage"><div><div><h3 class="title"><a id="idp680896"></a>Creating database for <span class="emphasis"><em>QCGNotification</em></span> - the2954 <div class="sect2" title="Creating database for QCG-Notification - the PostgreSQL example"><div class="titlepage"><div><div><h3 class="title"><a id="idp695296"></a>Creating database for <span class="emphasis"><em>QCG-Notification</em></span> - the 2937 2955 PostgreSQL example</h3></div></div></div> 2938 2956 2939 2957 2940 <p><span class="emphasis"><em>QCG 2941 modes related to the database connection: without database or with2958 <p><span class="emphasis"><em>QCG-Notification</em></span> can be run in two basic 2959 modes related to the database connection: without a database or with a 2942 2960 database. Although the first option is sufficient for simple scenarios, 2943 it reduces the overall functionality of the <span class="emphasis"><em>QCG 2944 Notification</em></span> (e.g. disable PullPoints). Therefore using the 2945 database is recomended and can be often essential.</p> 2961 it reduces the overall functionality of 2962 <span class="emphasis"><em>QCG-Notification</em></span> (e.g. disable PullPoints). 2963 Therefore using the database is recommended and can be often 2964 essential.</p> 2946 2965 2947 2966 <p>You will find more detailed description of administrative tasks in 2948 2967 PostgreSQL tutorial. However, the following basic steps are needed to 2949 set up a database and appropriate tables for <span class="emphasis"><em>QCG2950 Notification</em></span> assuming that you have already setup a2951 PostgreSQL database:</p>2968 set up a database and appropriate tables for 2969 <span class="emphasis"><em>QCG-Notification</em></span> assuming that you have already 2970 setup a PostgreSQL database:</p> 2952 2971 2953 2972 <p>By default, the first database user created will also be named 2954 2973 <code class="filename">postgres</code>. In order to create a user for 2955 <span class="emphasis"><em>QCG 2974 <span class="emphasis"><em>QCG-Notification</em></span> usage, for instance 2956 2975 <code class="filename">qcg-ntf</code>, type the following:</p> 2957 2976 … … 2966 2985 2967 2986 <p>and set up a table structure using the 2968 <code class="filename">qcg-ntf-psql.sql</code> file from <span class="emphasis"><em>QCG2969 Notification</em></span> distribution - it can be found in2987 <code class="filename">qcg-ntf-psql.sql</code> file from 2988 <span class="emphasis"><em>QCG-Notification</em></span> distribution - it can be found in 2970 2989 <code class="filename">/opt/qcg/share/tools</code> directory by default.</p> 2971 2990 … … 2975 2994 Name. You can do this by editing system-wide configuration file (e.g. 2976 2995 <code class="filename">/etc/odbc.ini)</code> or <code class="filename">.odbc.ini</code> in 2977 home directory of the user that will be used to start <span class="emphasis"><em>QCG2978 Notification</em></span>.</p>2996 home directory of the user that will be used to start 2997 <span class="emphasis"><em>QCG-Notification</em></span>.</p> 2979 2998 2980 2999 <p>Assuming that ODBC are installed in /usr/local/lib and the choosed 2981 name for <span class="emphasis"><em>QCG 3000 name for <span class="emphasis"><em>QCG-Notification</em></span> is 2982 3001 <code class="filename">qcg-ntf</code> the configuration file should looks 2983 3002 simmilar to the following:</p> 2984 3003 2985 3004 <pre class="programlisting">[qcg-ntf] 2986 Description = QCG 3005 Description = QCG-Notification database 2987 3006 Driver = /usr/local/lib/libodbcpsql.so 2988 3007 Setup = /usr/local/lib/libodbcpsqlS.so … … 3006 3025 </div> 3007 3026 3008 <div class="sect1" title="Configuration of QCG Notification"><div class="titlepage"><div><div><h2 class="title"><a id="idp702064"></a>Configuration of <span class="emphasis"><em>QCGNotification</em></span></h2></div></div></div>3027 <div class="sect1" title="Configuration of QCG-Notification"><div class="titlepage"><div><div><h2 class="title"><a id="idp716544"></a>Configuration of <span class="emphasis"><em>QCG-Notification</em></span></h2></div></div></div> 3009 3028 3010 3029 3011 <div class="sect2" title="Configuration File: qcg-ntfd.xml"><div class="titlepage"><div><div><h3 class="title"><a id="idp7 03168"></a>Configuration File: <code class="filename">qcg-ntfd.xml</code></h3></div></div></div>3030 <div class="sect2" title="Configuration File: qcg-ntfd.xml"><div class="titlepage"><div><div><h3 class="title"><a id="idp717776"></a>Configuration File: <code class="filename">qcg-ntfd.xml</code></h3></div></div></div> 3012 3031 3013 3032 … … 3024 3043 </sm:ModuleManager> 3025 3044 3026 <sm:Service xsi:type="ntfd" description="QCG 3045 <sm:Service xsi:type="ntfd" description="QCG-Notification"> 3027 3046 <sm:Logger> 3028 3047 <sm:Filename>/opt/qcg/var/log/qcg-ntf/qcg-ntfd.log</sm:Filename> … … 3055 3074 <X509CertKeyFile>/opt/qcg/etc/ssl/broker.pem</X509CertKeyFile> 3056 3075 <X509KeyPass>somepass</X509KeyPass> 3057 <sm:TrustedCAFile>/opt/qcg/etc/ssl/certs/qcg-ntf/ca.pem</sm:TrustedCAFile> 3076 <sm:TrustedCAFile> 3077 /opt/qcg/etc/ssl/certs/qcg-ntf/ca.pem 3078 </sm:TrustedCAFile> 3058 3079 </sm:Module> 3059 3080 … … 3061 3082 <NotificationsVar> 3062 3083 <TopicNsDir>/opt/qcg/etc/topicns</TopicNsDir> 3063 <StrictCorrectnessCheckingEnabled>false</StrictCorrectnessCheckingEnabled> 3084 <StrictCorrectnessCheckingEnabled> 3085 false 3086 </StrictCorrectnessCheckingEnabled> 3064 3087 <DisableCurrentMessages>false</DisableCurrentMessages> 3065 3088 <SubscriptionManager> … … 3164 3187 3165 3188 <p>Initialization and configuration of the modules for the 3166 Publisher side of <span class="emphasis"><em>QCG 3189 Publisher side of <span class="emphasis"><em>QCG-Notification</em></span>. The 3167 3190 following modules are currently supported:</p> 3168 3191 … … 3185 3208 </em></span>[smn:NotificationsVarType]</p> 3186 3209 3187 <p>Various notification settings closely related to QCG3188 Notification service implementation.</p>3210 <p>Various notification settings closely related to 3211 QCG-Notification service implementation.</p> 3189 3212 </li><li class="listitem"> 3190 3213 <p><span class="emphasis"><em>//smn:Core/smn:NotificationsVar/smn:TopicNsDir … … 3364 3387 3365 3388 <p>true, false - determines if a database should be enabled; in 3366 the simplest configuration, <span class="emphasis"><em>QCG 3389 the simplest configuration, <span class="emphasis"><em>QCG-Notification</em></span> 3367 3390 can be used also without a database connection, however many options 3368 3391 will be then unavailable. Default: true</p> … … 3388 3411 3389 3412 <p>true, false - determines whether all information stored in a 3390 database should be cleaned at starting of the QCG 3413 database should be cleaned at starting of the QCG-Notification 3391 3414 service.</p> 3392 3415 </li></ul></div> … … 3397 3420 3398 3421 <p>Modules are located in the PREFIX/*/lib/modules directories and 3399 are loaded during the<span class="emphasis"><em> QCG 3422 are loaded during the<span class="emphasis"><em> QCG-Notification</em></span> run time. 3400 3423 Module definitions are specified in appropriate sections of the 3401 3424 configuration file.</p> 3402 3425 3403 <div class="sect3" title="Publisher modules"><div class="titlepage"><div><div><h4 class="title"><a id="idp 794784"></a>Publisher modules</h4></div></div></div>3426 <div class="sect3" title="Publisher modules"><div class="titlepage"><div><div><h4 class="title"><a id="idp808864"></a>Publisher modules</h4></div></div></div> 3404 3427 3405 3428 … … 3408 3431 and notification channels that need to be setup. The first one is a 3409 3432 communication channel between Subscriber/Publisher clients and 3410 <span class="emphasis"><em>QCG 3433 <span class="emphasis"><em>QCG-Notification. </em></span>This type of communication is 3411 3434 currently completely based on QCG Core library.</p> 3412 3435 3413 3436 <p>The second type is an outgoing communication between 3414 <span class="emphasis"><em>QCG 3415 is particular for <span class="emphasis"><em>QCG 3416 situation <span class="emphasis"><em>QCG 3437 <span class="emphasis"><em>QCG-Notification</em></span> and NotificationConsumers and it 3438 is particular for <span class="emphasis"><em>QCG-Notification</em></span>. In this 3439 situation <span class="emphasis"><em>QCG-Notification</em></span> plays a role of a 3417 3440 Notification Publisher. At this time, supported modules for this 3418 3441 channel utilize a Web Service interface, XMPP interface and SMTP … … 3437 3460 <smn:RecvTimeout>10</smn:RecvTimeout> 3438 3461 <smn:SendTimeout>10</smn:SendTimeout> 3439 <smn:X509CertKeyFile>/opt/qcg/etc/ssl/qcg-ntf/qcg-ntfd.pem</smn:X509CertKeyFile> 3462 <smn:X509CertKeyFile> 3463 /opt/qcg/etc/ssl/qcg-ntf/qcg-ntfd.pem 3464 </smn:X509CertKeyFile> 3440 3465 <smn:X509KeyPass>qcgpass</smn:X509KeyPass> 3441 3466 <smn:TrustedCAFile>/opt/qcg/etc/ssl/certs/qcg-ntf/ca.pem</smn:TrustedCAFile> … … 3649 3674 </div> 3650 3675 3651 <div class="sect2" title="WS-Topics management"><div class="titlepage"><div><div><h3 class="title"><a id="idp8 70048"></a>WS-Topics management</h3></div></div></div>3676 <div class="sect2" title="WS-Topics management"><div class="titlepage"><div><div><h3 class="title"><a id="idp883872"></a>WS-Topics management</h3></div></div></div> 3652 3677 3653 3678 3654 <p>In the current release, a topics management in <span class="emphasis"><em>QCG3655 Notification</em></span> is relatively simple. The first step is a3656 preparation of an XML document with a Topic Namespace definition. This3657 step can be done by one of the peers cooperating with <span class="emphasis"><em>QCG3658 Notification</em></span>. Then the document should be delivered to the3659 computer where <span class="emphasis"><em>QCG Notification</em></span> is installed. It3660 can be done in two ways: the document may be copied manually by QCG3661 Notification administrator to TopicNamespaces directory in prior to3662 <span class="emphasis"><em>a QCG Notification</em></span> startup or it can be send3663 through the <span class="emphasis"><em>QCGNotification</em></span> interface when3664 <span class="emphasis"><em>QCG 3679 <p>In the current release, a topics management in 3680 <span class="emphasis"><em>QCG-Notification</em></span> is relatively simple. The first 3681 step is a preparation of an XML document with a Topic Namespace 3682 definition. This step can be done by one of the peers cooperating with 3683 <span class="emphasis"><em>QCG-Notification</em></span>. Then the document should be 3684 delivered to the computer where <span class="emphasis"><em>QCG-Notification</em></span> is 3685 installed. It can be done in two ways: the document may be copied 3686 manually by QCG-Notification administrator to TopicNamespaces directory 3687 in prior to <span class="emphasis"><em>a QCG-Notification</em></span> startup or it can be 3688 send through the <span class="emphasis"><em>QCG-Notification</em></span> interface when 3689 <span class="emphasis"><em>QCG-Notification</em></span> is already running. In the last 3665 3690 case, the TopicNamespaces are stored also in a files in TopicNamespace 3666 3691 directory so they can be automatically loaded after restart of the 3667 3692 service. The TopicNamespaces loaded from files may be protected from 3668 unwanted removal by unsetting write permissions for a certain3693 unwanted removal by disabling write permissions for a certain 3669 3694 file.</p> 3670 3695 … … 3673 3698 </div> 3674 3699 3675 <div class="sect2" title="Starting QCG Notification"><div class="titlepage"><div><div><h3 class="title"><a id="idp875936"></a>Starting <span class="emphasis"><em>QCGNotification</em></span></h3></div></div></div>3700 <div class="sect2" title="Starting QCG-Notification"><div class="titlepage"><div><div><h3 class="title"><a id="idp889392"></a>Starting <span class="emphasis"><em>QCG-Notification</em></span></h3></div></div></div> 3676 3701 3677 3702 3678 <p>To start <span class="emphasis"><em>QCG 3703 <p>To start <span class="emphasis"><em>QCG-Notification</em></span> as a daemon 3679 3704 type:</p> 3680 3705 3681 3706 <pre class="programlisting">$ ./qcg-ntfd</pre> 3682 3707 3683 <p>If you start <span class="emphasis"><em>QCG 3708 <p>If you start <span class="emphasis"><em>QCG-Notification</em></span> with parameter 3684 3709 -h you will get an optional parameters list:</p><pre class="programlisting">$ ./qcg-ntfd -h 3685 3710 usage: ./qcg-ntfd [-d] [-z config_file] … … 3689 3714 -z config_file configuration file, default is /opt/qcg/etc/qcg-ntfd.xml 3690 3715 -v print version information 3691 -h print this help</pre><p>Once you run <span class="emphasis"><em>QCG 3692 Notification</em></span> as a daemon, a log file is created. Using 3693 various log levels, you can log less or more details.</p> 3716 -h print this help</pre><p>Once you run 3717 <span class="emphasis"><em>QCG-Notification</em></span> as a daemon, a log file is 3718 created. Using various log levels, you can log less or more 3719 details.</p> 3694 3720 </div> 3695 3721 3696 <div class="sect2" title="Stopping QCG Notification"><div class="titlepage"><div><div><h3 class="title"><a id="idp881408"></a>Stopping <span class="emphasis"><em>QCGNotification</em></span></h3></div></div></div>3722 <div class="sect2" title="Stopping QCG-Notification"><div class="titlepage"><div><div><h3 class="title"><a id="idp894960"></a>Stopping <span class="emphasis"><em>QCG-Notification</em></span></h3></div></div></div> 3697 3723 3698 3724