Changes between Version 9 and Version 10 of technicalGuideAndManual

Show
Ignore:
Timestamp:
04/04/12 13:04:01 (12 years ago)
Author:
bartek
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • technicalGuideAndManual

    v9 v10  
    6565        roles/actors called respectively NotificationProducer and 
    6666        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&nbsp;1.&nbsp;Web Services BaseNotification entities</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/WikiStart/./diagrams/general/smn_baseentities.png" align="middle" width="324" alt="Web Services BaseNotification entities"></div></div></div><p><br class="figure-break">The basic terminology related to the WS-BaseNotification is 
     67        WS-BaseNotification is presented below.</p><div class="figure"><a name="BaseEntities"></a><p class="title"><b>Figure&nbsp;1.&nbsp;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 
    6868        following:</p><div class="variablelist"><dl><dt><span class="term">Situation</span></dt><dd><p>Some occurrence known by a NotificationProducer. A 
    6969                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 
     
    9494        The figure below shows an example scenario and notification message 
    9595        flow where NotificationBroker is present.</p><div class="figure"><a name="d0e198"></a><p class="title"><b>Figure&nbsp;2.&nbsp;Web Services BrokeredNotification entities - QCG 
    96             Notification entities</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/WikiStart/./diagrams/general/smn_brokeredentities.png" align="middle" width="324" alt="Web Services BrokeredNotification entities - QCG Notification entities"></div></div></div><p><br class="figure-break">Note, that there are some important enlargements and 
     96            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 
    9797        modifications in the WS-BrokeredNotificatison terminology. Below the 
    9898        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 
     
    146146              TopicExpression. The specification defines four Dialects: 
    147147              <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&nbsp;3.&nbsp;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.&nbsp;Base of <span class="emphasis"><em>QCG Notification</em></span></h4></div></div></div><p><span class="emphasis"><em>QCG Notification</em></span> is a reference 
     148              <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&nbsp;3.&nbsp;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.&nbsp;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 
    149149        implementation of WS-BaseNotification, WS-BrokeredNotification and 
    150150        WS-Topics OASIS industry standards. As a consistent and highly 
     
    171171        demonstrating capabilities offered by <span class="emphasis"><em>QCG 
    172172        Notification</em></span>.</p><div class="figure"><a name="notificationConsumers"></a><p class="title"><b>Figure&nbsp;4.&nbsp;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&nbsp;4.&nbsp;Notification with multiple Publishers and multiple NotificationConsumers">diagram 4</a> shows 
     173          NotificationConsumers</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/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&nbsp;4.&nbsp;Notification with multiple Publishers and multiple NotificationConsumers">diagram 4</a> shows 
    174174        one of the basic notification flows supported by <span class="emphasis"><em>QCG 
    175175        Notification</em></span>. Depending on records, Notifications produced 
     
    188188        sequence of events in order to initialize an asynchronous process of 
    189189        notifications between a Publisher and a NotificationConsumer.</p><div class="figure"><a name="d0e378"></a><p class="title"><b>Figure&nbsp;5.&nbsp;Message flows: creating a Subscription, notifying 
    190           NotificationConsumers</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/WikiStart/./diagrams/general/smn_example2.png" align="middle" width="324" alt="Message flows: creating a Subscription, notifying NotificationConsumers"></div></div></div><br class="figure-break"><div class="orderedlist"><ol type="1"><li><p>A Subscriber sends the SubscribeRequest message with a 
     190          NotificationConsumers</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/technicalGuideAndManual/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 
    191191            NotificationConsumer location and TopicExpression parameters to 
    192192            <span class="emphasis"><em>QCG Notification</em></span>.</p></li><li><p><span class="emphasis"><em>QCG Notification</em></span> prepares appropriate 
     
    222222      clearly ordered message layout and connections among functional units. 
    223223      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.&nbsp;`Main Use Cases</h4></div></div></div><div class="figure"><a name="d0e460"></a><p class="title"><b>Figure&nbsp;6.&nbsp;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&nbsp;7.&nbsp;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&nbsp;8.&nbsp;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&nbsp;9.&nbsp;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&nbsp;10.&nbsp;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.&nbsp;Main Sequence Diagrams</h4></div></div></div><div class="figure"><a name="d0e493"></a><p class="title"><b>Figure&nbsp;11.&nbsp;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.&nbsp;User Guide for a Publisher, Subscriber and 
     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.&nbsp;`Main Use Cases</h4></div></div></div><div class="figure"><a name="d0e460"></a><p class="title"><b>Figure&nbsp;6.&nbsp;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&nbsp;7.&nbsp;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&nbsp;8.&nbsp;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&nbsp;9.&nbsp;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&nbsp;10.&nbsp;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.&nbsp;Main Sequence Diagrams</h4></div></div></div><div class="figure"><a name="d0e493"></a><p class="title"><b>Figure&nbsp;11.&nbsp;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.&nbsp;User Guide for a Publisher, Subscriber and 
    225225    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.&nbsp;Prefixes and Namespaces</h3></div></div></div><p>The following table presents namespaces tied with prefixes. The 
    226226      prefixes are used in example SOAP messages presented in the further 
     
    229229      Subscriber and NotificationConsumer. Although a conceptual style of 
    230230      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.&nbsp;Publisher Interaction</h4></div></div></div><div class="figure"><a name="d0e595"></a><p class="title"><b>Figure&nbsp;12.&nbsp;Publisher interaction sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/WikiStart/./diagrams/seq_publisher.png" align="middle" width="432" alt="Publisher interaction sequence diagram"></div></div></div><br class="figure-break"><p>In the most general configuration of the service, a Publisher 
     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.&nbsp;Publisher Interaction</h4></div></div></div><div class="figure"><a name="d0e595"></a><p class="title"><b>Figure&nbsp;12.&nbsp;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 
    232232        has to be registered before it starts sending Notifications. In this 
    233233        situation, a Publisher sends the RegisterPublisherRequest message to 
     
    240240        replaces the old one in CurrentMessages. After work, a Publisher 
    241241        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.&nbsp;Subscriber interaction</h4></div></div></div><div class="figure"><a name="d0e609"></a><p class="title"><b>Figure&nbsp;13.&nbsp;Subscriber interaction sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/WikiStart/./diagrams/seq_subscriber.png" align="middle" width="432" alt="Subscriber interaction sequence diagram"></div></div></div><br class="figure-break"><p>When a Subscriber wants to create a Subscription, it sends the 
     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.&nbsp;Subscriber interaction</h4></div></div></div><div class="figure"><a name="d0e609"></a><p class="title"><b>Figure&nbsp;13.&nbsp;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 
    243243        SubscribeRequest message to <span class="emphasis"><em>QCG Notification</em></span>. 
    244244        This message should contain an address of NotificationConsumer and a 
     
    262262        PullPoint resource can be destroyed by the DestroyPullPoint message 
    263263        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.&nbsp;NotificationConsumer Interaction</h4></div></div></div><div class="figure"><a name="d0e635"></a><p class="title"><b>Figure&nbsp;14.&nbsp;NotificationConsumer interaction sequence diagram</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="http://apps.man.poznan.pl/trac/qcg-notification/raw-attachment/wiki/WikiStart/./diagrams/seq_consumer.png" align="middle" width="432" alt="NotificationConsumer interaction sequence diagram"></div></div></div><p><br class="figure-break">The main capability of a NotificationConsumer is a 
     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.&nbsp;NotificationConsumer Interaction</h4></div></div></div><div class="figure"><a name="d0e635"></a><p class="title"><b>Figure&nbsp;14.&nbsp;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 
    265265        receiving of Notify messages. A NotificationConsumer can implement an 
    266266        interface for receiving Notify messages sending by <span class="emphasis"><em>QCG 
     
    21072107      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.&nbsp;Stopping <span class="emphasis"><em>QCG Notification</em></span></h3></div></div></div><p>At the moment, shutdown is performed simply by sending 
    21082108      <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 
    21092110}}}