summaryrefslogtreecommitdiffstats
path: root/doc/IndicationFlow.txt
diff options
context:
space:
mode:
authormike <mike>2001-12-20 19:20:10 +0000
committermike <mike>2001-12-20 19:20:10 +0000
commitbf93de7130fb82726cf4ed06a988211d112480ad (patch)
tree7ecc4882a14b8b6d7d9473df3c12be1d836a105d /doc/IndicationFlow.txt
parentcdd289d43dd33577d4369c94bd73d1e308d64753 (diff)
downloadtog-pegasus-bf93de7130fb82726cf4ed06a988211d112480ad.zip
tog-pegasus-bf93de7130fb82726cf4ed06a988211d112480ad.tar.gz
tog-pegasus-bf93de7130fb82726cf4ed06a988211d112480ad.tar.xz
New doc
Diffstat (limited to 'doc/IndicationFlow.txt')
-rw-r--r--doc/IndicationFlow.txt134
1 files changed, 134 insertions, 0 deletions
diff --git a/doc/IndicationFlow.txt b/doc/IndicationFlow.txt
new file mode 100644
index 0000000..99aabbb
--- /dev/null
+++ b/doc/IndicationFlow.txt
@@ -0,0 +1,134 @@
+
+This document provides a sketch of the flow of indications.
+
+ - Filter creation phase.
+
+ - Handler creation phase (handler can be created before filter).
+
+ - Subscription Phase (creating an instance of the subscription class).
+
+ - Acts like a provider.
+
+ - Needs to get to repository.
+
+ - Creation of subscription triggers enablement of
+ indication provider for the associated class
+ or class tree (needs access to inheritance tree).
+
+ - Provider input queue may receive new message
+ of new type to enable it to generate events.
+ (dispatcher may load provider as a result).
+
+ - If there is no provider capable of publishing
+ an indication matching the subscription, then
+ reject the subscription. In other words,
+ there must be at least one indication provider
+ capable of providing an indication of that class
+ and it must respond positively to the enable
+ request.
+
+ - Put subscription into repository.
+
+ - Send create instance response back to client (instance
+ of subscription).
+
+ - Need to validate that the class referenced in the
+ filter (in WQL statement) actually exists and that it
+ has the referenced properties (validate at subscription
+ time).
+
+ - Subscription handler may have to load handlers.
+
+ - For efficiency, might need a subscription table data
+ structure (contain a memory version of filter and
+ handler) which must accessible to the mechanism for
+ triggering the indication.
+
+ - Subscription passing thresholding information to
+ indication provider.
+
+ - If thresholding not supported by provider but requested
+ in subscription, reject the subscription.
+
+ - Indication processor phase:
+
+ - Accepts indications generated by indication providers.
+
+ - Take as input indication and possibly a list of subscriptions.
+
+ - Forms output as indication and list of handlers.
+
+ - Indication dispatcher:
+
+ - Dynamically loads handlers (handler libraries).
+
+ - Invokes handler's deliverIndication() method.
+
+ - Types of handlers:
+
+ - SNMP trap.
+
+ - CIM Export Request.
+
+ - Internal vs. external
+
+ - CIM XML Indications:
+
+ - CIMExportClient (handler uses this).
+
+ - Need something else for internal delivery.
+
+ - To deterine whether the listener is in process
+ or remote examine the URL prefix and see if it
+ refers to the same hostname and port on which
+ the CIMOM is listening.
+
+ - Use same port as is used for CIM Operation requests/responses.
+
+Other topic:
+============
+
+ - Thresholding. Need way of limiting how many events are
+ received. Indications may occur--for example--every three
+ seconds (the client might only want one every ten seconds)
+ of that type.
+
+ - Many events may be published but there may only be interest
+ in every n-th subscription.
+
+ - During enablement the indication provider is told what the
+ thresholding requirements are.
+
+ - Consequently, a provider is now interested in subscription
+ charactertics (not just filter characteristics).
+
+ - Putting the threshold information into the filter, makes the
+ filter less reusable. Having it as characteristic of the
+ subscription expands the usability of the filter object.
+
+ - Talk through disablement of indication provider.
+
+ - If a delivery fails we could:
+
+ - Cancel the subscription.
+
+ - Retry.
+
+ - Notify somebody that it failed.
+
+ - This raises the question of logging.
+
+ - Interactions with provider behavior. During provider loading,
+ the provider might need to be enabled for an outstanding
+ subscription.
+
+ - Start up requires reenablement of indication providers.
+ Hence each indication provider needs distinct enablement()
+ and start() methods (enablement() must be called for each
+ subscription and then startGeneratingIndications() to finalize
+ the sequence).
+
+Homework:
+=========
+
+ - Take a look at all indication specifications and schemas.