Changes between Version 9 and Version 10 of technicalGuideAndManual
- Timestamp:
- 04/04/12 13:04:01 (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
technicalGuideAndManual
v9 v10 65 65 roles/actors called respectively NotificationProducer and 66 66 NotificationConsumer. An example system architecture based on 67 WS-BaseNotification is presented below.</p><div class="figure"><a name="BaseEntities"></a><p class="title"><b>Figure 1. Web Services BaseNotification entities</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/ WikiStart/./diagrams/general/smn_baseentities.png" align="middle" width="324" alt="Web Services BaseNotification entities"></div></div></div><p><br class="figure-break">The basic terminology related to the WS-BaseNotification is67 WS-BaseNotification is presented below.</p><div class="figure"><a name="BaseEntities"></a><p class="title"><b>Figure 1. Web Services BaseNotification entities</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/general/smn_baseentities.png" align="middle" width="324" alt="Web Services BaseNotification entities"></div></div></div><p><br class="figure-break">The basic terminology related to the WS-BaseNotification is 68 68 following:</p><div class="variablelist"><dl><dt><span class="term">Situation</span></dt><dd><p>Some occurrence known by a NotificationProducer. A 69 69 Situation is a reason of dispatching a Notification.</p></dd><dt><span class="term">Notification</span></dt><dd><p><a name="a"></a>An artifact of a Situation containing information … … 94 94 The figure below shows an example scenario and notification message 95 95 flow where NotificationBroker is present.</p><div class="figure"><a name="d0e198"></a><p class="title"><b>Figure 2. Web Services BrokeredNotification entities - QCG 96 Notification entities</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/ WikiStart/./diagrams/general/smn_brokeredentities.png" align="middle" width="324" alt="Web Services BrokeredNotification entities - QCG Notification entities"></div></div></div><p><br class="figure-break">Note, that there are some important enlargements and96 Notification entities</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/general/smn_brokeredentities.png" align="middle" width="324" alt="Web Services BrokeredNotification entities - QCG Notification entities"></div></div></div><p><br class="figure-break">Note, that there are some important enlargements and 97 97 modifications in the WS-BrokeredNotificatison terminology. Below the 98 98 most relevant definitions are presented.</p><div class="variablelist"><dl><dt><span class="term">Situation</span></dt><dd><p>Some occurrence, known by a Publisher. A Situation is a … … 146 146 TopicExpression. The specification defines four Dialects: 147 147 <span class="emphasis"><em>Simple</em></span>, <span class="emphasis"><em>Concrete</em></span>, 148 <span class="emphasis"><em>Full</em></span> and <span class="emphasis"><em>XPath</em></span>.</p></dd></dl></div><div class="figure"><a name="d0e318"></a><p class="title"><b>Figure 3. Example Topic Namespace</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/ WikiStart/./diagrams/general/smn_topicnamespace.png" align="middle" width="324" alt="Example Topic Namespace"></div></div></div><br class="figure-break"></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e324"></a>2.1.5. Base of <span class="emphasis"><em>QCG Notification</em></span></h4></div></div></div><p><span class="emphasis"><em>QCG Notification</em></span> is a reference148 <span class="emphasis"><em>Full</em></span> and <span class="emphasis"><em>XPath</em></span>.</p></dd></dl></div><div class="figure"><a name="d0e318"></a><p class="title"><b>Figure 3. Example Topic Namespace</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/general/smn_topicnamespace.png" align="middle" width="324" alt="Example Topic Namespace"></div></div></div><br class="figure-break"></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e324"></a>2.1.5. Base of <span class="emphasis"><em>QCG Notification</em></span></h4></div></div></div><p><span class="emphasis"><em>QCG Notification</em></span> is a reference 149 149 implementation of WS-BaseNotification, WS-BrokeredNotification and 150 150 WS-Topics OASIS industry standards. As a consistent and highly … … 171 171 demonstrating capabilities offered by <span class="emphasis"><em>QCG 172 172 Notification</em></span>.</p><div class="figure"><a name="notificationConsumers"></a><p class="title"><b>Figure 4. Notification with multiple Publishers and multiple 173 NotificationConsumers</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/ WikiStart/./diagrams/general/smn_example1.png" align="middle" width="324" alt="Notification with multiple Publishers and multiple NotificationConsumers"></div></div></div><br class="figure-break"><p>The <a class="link" href="#notificationConsumers" title="Figure 4. Notification with multiple Publishers and multiple NotificationConsumers">diagram 4</a> shows173 NotificationConsumers</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/general/smn_example1.png" align="middle" width="324" alt="Notification with multiple Publishers and multiple NotificationConsumers"></div></div></div><br class="figure-break"><p>The <a class="link" href="#notificationConsumers" title="Figure 4. Notification with multiple Publishers and multiple NotificationConsumers">diagram 4</a> shows 174 174 one of the basic notification flows supported by <span class="emphasis"><em>QCG 175 175 Notification</em></span>. Depending on records, Notifications produced … … 188 188 sequence of events in order to initialize an asynchronous process of 189 189 notifications between a Publisher and a NotificationConsumer.</p><div class="figure"><a name="d0e378"></a><p class="title"><b>Figure 5. Message flows: creating a Subscription, notifying 190 NotificationConsumers</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/ WikiStart/./diagrams/general/smn_example2.png" align="middle" width="324" alt="Message flows: creating a Subscription, notifying NotificationConsumers"></div></div></div><br class="figure-break"><div class="orderedlist"><ol type="1"><li><p>A Subscriber sends the SubscribeRequest message with a190 NotificationConsumers</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/general/smn_example2.png" align="middle" width="324" alt="Message flows: creating a Subscription, notifying NotificationConsumers"></div></div></div><br class="figure-break"><div class="orderedlist"><ol type="1"><li><p>A Subscriber sends the SubscribeRequest message with a 191 191 NotificationConsumer location and TopicExpression parameters to 192 192 <span class="emphasis"><em>QCG Notification</em></span>.</p></li><li><p><span class="emphasis"><em>QCG Notification</em></span> prepares appropriate … … 222 222 clearly ordered message layout and connections among functional units. 223 223 The actors and messages in the sequence diagrams are more properly roles 224 in a scenario and actions associated with that scenario.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e457"></a>2.2.1. `Main Use Cases</h4></div></div></div><div class="figure"><a name="d0e460"></a><p class="title"><b>Figure 6. Use case diagram for a Publisher</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/ WikiStart/./diagrams/use_publisher.png" align="middle" width="432" alt="Use case diagram for a Publisher"></div></div></div><br class="figure-break"><div class="figure"><a name="d0e466"></a><p class="title"><b>Figure 7. Use case diagram for a Subscriber</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="./diagrams/use_subscriber.png" align="middle" width="432" alt="Use case diagram for a Subscriber"></div></div></div><br class="figure-break"><div class="figure"><a name="d0e472"></a><p class="title"><b>Figure 8. Use case diagram for a NotificationConsumer</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="./diagrams/use_consumer.png" align="middle" width="432" alt="Use case diagram for a NotificationConsumer"></div></div></div><br class="figure-break"><div class="figure"><a name="d0e478"></a><p class="title"><b>Figure 9. Use case diagram for QCG Notification</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="./diagrams/use_qcgnotification.png" align="middle" width="432" alt="Use case diagram for QCG Notification"></div></div></div><br class="figure-break"><div class="figure"><a name="d0e484"></a><p class="title"><b>Figure 10. Use case diagram for a QCG Notification Administrator</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="./diagrams/use_administrator.png" align="middle" width="432" alt="Use case diagram for a QCG Notification Administrator"></div></div></div><br class="figure-break"></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e490"></a>2.2.2. Main Sequence Diagrams</h4></div></div></div><div class="figure"><a name="d0e493"></a><p class="title"><b>Figure 11. General sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="./diagrams/seq_all.png" align="middle" width="432" alt="General sequence diagram"></div></div></div><br class="figure-break"></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e499"></a>3. User Guide for a Publisher, Subscriber and224 in a scenario and actions associated with that scenario.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e457"></a>2.2.1. `Main Use Cases</h4></div></div></div><div class="figure"><a name="d0e460"></a><p class="title"><b>Figure 6. Use case diagram for a Publisher</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/use_publisher.png" align="middle" width="432" alt="Use case diagram for a Publisher"></div></div></div><br class="figure-break"><div class="figure"><a name="d0e466"></a><p class="title"><b>Figure 7. Use case diagram for a Subscriber</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="./diagrams/use_subscriber.png" align="middle" width="432" alt="Use case diagram for a Subscriber"></div></div></div><br class="figure-break"><div class="figure"><a name="d0e472"></a><p class="title"><b>Figure 8. Use case diagram for a NotificationConsumer</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="./diagrams/use_consumer.png" align="middle" width="432" alt="Use case diagram for a NotificationConsumer"></div></div></div><br class="figure-break"><div class="figure"><a name="d0e478"></a><p class="title"><b>Figure 9. Use case diagram for QCG Notification</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="./diagrams/use_qcgnotification.png" align="middle" width="432" alt="Use case diagram for QCG Notification"></div></div></div><br class="figure-break"><div class="figure"><a name="d0e484"></a><p class="title"><b>Figure 10. Use case diagram for a QCG Notification Administrator</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="./diagrams/use_administrator.png" align="middle" width="432" alt="Use case diagram for a QCG Notification Administrator"></div></div></div><br class="figure-break"></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e490"></a>2.2.2. Main Sequence Diagrams</h4></div></div></div><div class="figure"><a name="d0e493"></a><p class="title"><b>Figure 11. General sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="./diagrams/seq_all.png" align="middle" width="432" alt="General sequence diagram"></div></div></div><br class="figure-break"></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e499"></a>3. User Guide for a Publisher, Subscriber and 225 225 NotificationConsumer<span class="emphasis"><em> </em></span></h2></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e504"></a>3.1. Prefixes and Namespaces</h3></div></div></div><p>The following table presents namespaces tied with prefixes. The 226 226 prefixes are used in example SOAP messages presented in the further … … 229 229 Subscriber and NotificationConsumer. Although a conceptual style of 230 230 interaction is described here in details, technical particularities of 231 constructing messages are presented later.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e592"></a>3.2.1. Publisher Interaction</h4></div></div></div><div class="figure"><a name="d0e595"></a><p class="title"><b>Figure 12. Publisher interaction sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/ WikiStart/./diagrams/seq_publisher.png" align="middle" width="432" alt="Publisher interaction sequence diagram"></div></div></div><br class="figure-break"><p>In the most general configuration of the service, a Publisher231 constructing messages are presented later.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e592"></a>3.2.1. Publisher Interaction</h4></div></div></div><div class="figure"><a name="d0e595"></a><p class="title"><b>Figure 12. Publisher interaction sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/seq_publisher.png" align="middle" width="432" alt="Publisher interaction sequence diagram"></div></div></div><br class="figure-break"><p>In the most general configuration of the service, a Publisher 232 232 has to be registered before it starts sending Notifications. In this 233 233 situation, a Publisher sends the RegisterPublisherRequest message to … … 240 240 replaces the old one in CurrentMessages. After work, a Publisher 241 241 should unregister himself by sending DestroyRegistration. This message 242 has to include a session ID likewise.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e606"></a>3.2.2. Subscriber interaction</h4></div></div></div><div class="figure"><a name="d0e609"></a><p class="title"><b>Figure 13. Subscriber interaction sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/ WikiStart/./diagrams/seq_subscriber.png" align="middle" width="432" alt="Subscriber interaction sequence diagram"></div></div></div><br class="figure-break"><p>When a Subscriber wants to create a Subscription, it sends the242 has to include a session ID likewise.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e606"></a>3.2.2. Subscriber interaction</h4></div></div></div><div class="figure"><a name="d0e609"></a><p class="title"><b>Figure 13. Subscriber interaction sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/seq_subscriber.png" align="middle" width="432" alt="Subscriber interaction sequence diagram"></div></div></div><br class="figure-break"><p>When a Subscriber wants to create a Subscription, it sends the 243 243 SubscribeRequest message to <span class="emphasis"><em>QCG Notification</em></span>. 244 244 This message should contain an address of NotificationConsumer and a … … 262 262 PullPoint resource can be destroyed by the DestroyPullPoint message 263 263 sent directly to this resource. 264 </em></span></em></span></em></span></p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e631"></a>3.2.3. NotificationConsumer Interaction</h4></div></div></div><div class="figure"><a name="d0e635"></a><p class="title"><b>Figure 14. NotificationConsumer interaction sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/ WikiStart/./diagrams/seq_consumer.png" align="middle" width="432" alt="NotificationConsumer interaction sequence diagram"></div></div></div><p><br class="figure-break">The main capability of a NotificationConsumer is a264 </em></span></em></span></em></span></p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e631"></a>3.2.3. NotificationConsumer Interaction</h4></div></div></div><div class="figure"><a name="d0e635"></a><p class="title"><b>Figure 14. NotificationConsumer interaction sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/seq_consumer.png" align="middle" width="432" alt="NotificationConsumer interaction sequence diagram"></div></div></div><p><br class="figure-break">The main capability of a NotificationConsumer is a 265 265 receiving of Notify messages. A NotificationConsumer can implement an 266 266 interface for receiving Notify messages sending by <span class="emphasis"><em>QCG … … 2107 2107 various log levels, you can log less or more details.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e3136"></a>5.5. Stopping <span class="emphasis"><em>QCG Notification</em></span></h3></div></div></div><p>At the moment, shutdown is performed simply by sending 2108 2108 <code class="filename">SIGINT</code> signal to the service, e.g.:</p><pre class="programlisting">$ kill -SIGINT `pidof qcg-ntfd`</pre></div></div></div> 2109 2109 2110 }}}