(file) Return to IndicationFlow.txt CVS log (file) (dir) Up to [Pegasus] / pegasus / doc

  1 mike  1.1 
  2           This document provides a sketch of the flow of indications.
  3           
  4               -   Filter creation phase.
  5           
  6               -   Handler creation phase (handler can be created before filter).
  7           
  8               - 	Subscription Phase (creating an instance of the subscription class).
  9           		
 10           	-   Acts like a provider.
 11           
 12           	-   Needs to get to repository.
 13           
 14           	-   Creation of subscription triggers enablement of
 15           	    indication provider for the associated class
 16           	    or class tree (needs access to inheritance tree).
 17           
 18           	-   Provider input queue may receive new message
 19           	    of new type to enable it to generate events.
 20           	    (dispatcher may load provider as a result).
 21           
 22 mike  1.1 	-   If there is no provider capable of publishing
 23           	    an indication matching the subscription, then
 24           	    reject the subscription. In other words,
 25           	    there must be at least one indication provider 
 26           	    capable of providing an indication of that class
 27           	    and it must respond positively to the enable
 28           	    request.
 29           
 30           	-   Put subscription into repository.
 31           
 32           	-   Send create instance response back to client (instance
 33           	    of subscription).
 34           
 35           	-   Need to validate that the class referenced in the
 36           	    filter (in WQL statement) actually exists and that it
 37           	    has the referenced properties (validate at subscription
 38           	    time).
 39           
 40           	-   Subscription handler may have to load handlers.
 41           
 42           	-   For efficiency, might need a subscription table data
 43 mike  1.1 	    structure (contain a memory version of filter and
 44           	    handler) which must accessible to the mechanism for
 45           	    triggering the indication.
 46           
 47           	-   Subscription passing thresholding information to
 48           	    indication provider.
 49           
 50           	-   If thresholding not supported by provider but requested
 51           	    in subscription, reject the subscription.
 52           
 53               -	Indication processor phase:
 54           
 55           	-   Accepts indications generated by indication providers.
 56           
 57           	-   Take as input indication and possibly a list of subscriptions.
 58           
 59           	-   Forms output as indication and list of handlers.
 60           
 61               -	Indication dispatcher:
 62           
 63           	-   Dynamically loads handlers (handler libraries).
 64 mike  1.1 
 65           	-   Invokes handler's deliverIndication() method.
 66           
 67               -	Types of handlers:
 68           
 69           	-   SNMP trap.
 70           
 71           	-   CIM Export Request.
 72           
 73           	-   Internal vs. external
 74           
 75               -   CIM XML Indications:
 76           
 77           	-   CIMExportClient (handler uses this).
 78           
 79           	-   Need something else for internal delivery.
 80           
 81           	-   To deterine whether the listener is in process
 82           	    or remote examine the URL prefix and see if it
 83           	    refers to the same hostname and port on which
 84           	    the CIMOM is listening.
 85 mike  1.1 
 86           	-   Use same port as is used for CIM Operation requests/responses.
 87           
 88           Other topic:
 89           ============
 90           
 91               -   Thresholding. Need way of limiting how many events are
 92           	received. Indications may occur--for example--every three
 93           	seconds (the client might only want one every ten seconds)
 94           	of that type.
 95           
 96               -   Many events may be published but there may only be interest
 97           	in every n-th subscription.
 98           
 99               -   During enablement the indication provider is told what the
100           	thresholding requirements are.
101           
102               -   Consequently, a provider is now interested in subscription
103           	charactertics (not just filter characteristics).
104           
105               -   Putting the threshold information into the filter, makes the
106 mike  1.1 	filter less reusable. Having it as characteristic of the 
107           	subscription expands the usability of the filter object.
108           
109               -	Talk through disablement of indication provider.
110           
111               -	If a delivery fails we could:
112               
113           	    - 	Cancel the subscription.
114           
115           	    -   Retry.
116           
117           	    -   Notify somebody that it failed.
118           
119           	    -   This raises the question of logging.
120           
121               - 	Interactions with provider behavior. During provider loading,
122           	the provider might need to be enabled for an outstanding
123           	subscription.
124           
125               -	Start up requires reenablement of indication providers.
126           	Hence each indication provider needs distinct enablement() 
127 mike  1.1 	and start() methods (enablement() must be called for each
128           	subscription and then startGeneratingIndications() to finalize 
129           	the sequence).
130           
131           Homework:
132           =========
133           
134               -	Take a look at all indication specifications and schemas.

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2