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.
|