(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 kumpf 1.2 	    there must be at least one indication provider
 26 mike  1.1 	    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           	    structure (contain a memory version of filter and
 44           	    handler) which must accessible to the mechanism for
 45           	    triggering the indication.
 46           
 47 mike  1.1 	-   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           
 65           	-   Invokes handler's deliverIndication() method.
 66           
 67               -	Types of handlers:
 68 mike  1.1 
 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           
 86           	-   Use same port as is used for CIM Operation requests/responses.
 87           
 88           Other topic:
 89 mike  1.1 ============
 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 kumpf 1.2 	filter less reusable. Having it as characteristic of the
107 mike  1.1 	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 kumpf 1.2 
113 mike  1.1 	    - 	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 kumpf 1.2 	Hence each indication provider needs distinct enablement()
127 mike  1.1 	and start() methods (enablement() must be called for each
128 kumpf 1.2 	subscription and then startGeneratingIndications() to finalize
129 mike  1.1 	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