1. Field of the Invention
The invention generally relates to the data processing field. More specifically, the invention relates to the field of systems management.
2. Description of the Related Art
Systems management involves analysis of system operational data to determine whether a problem (e.g., the system is not behaving as designed or desired) exists or is projected to occur based on trends. Sensors typically monitor the system to gather such operational data and various reasoning techniques are applied to determine problem symptoms and/or root causes of failures. These reasoning techniques often embody analytic assets such as externalized rules, tests, or procedures that are applied manually or automatically to assess the health and safety of the system. These analytic assets are typically authored by domain experts that understand how the system is expected and desired to operate. The domain experts can recognize developing or existing problems based on behaviors reflected by data gathered from the system. The analytic assets are then presented to a system management system's (SMS′) runtime framework for execution. The manner in which these analytic assets are organized for execution in the SMS impacts the SMS performance and utility.
Often the individual analytic assets are combined into an analytic runtime that is executed by the SMS. In cases where analytic assets are independent and execution is linear, for example by evaluating them as a list, the assets can then be maintained in the list independent of the runtime. However this approach is not practical because analytic assets are sometimes not independent, and the approach would be often inefficient as there is little control over the execution of analytic assets—they are analyzed in order until a solution is found. To address this inefficiency, analytic assets are often organized in a directed acyclic graph to limit which analytic assets are evaluated by the SMS by following a particular path of navigation relevant to the problem being diagnosed. Once combined in a graph, the analytic assets can no longer be maintained independent of this runtime. Examples include decision trees, bayesian networks, pattern matching or neural networks. Once organized in a graph, it is difficult to preserve the original analytic asset authors' perspective of the purpose or intent of their work as the boundaries defining the original analytic asset have been lost when the asset was merged into the analytic runtime graph. This approach causes maintenance of analytic assets (e.g., adding new, changing or deleting existing assets) to be performed on the entire analytic runtime graph, raising the level of complexity and introducing potential unexpected consequences.
The present invention solves the problem of the prior art by providing a method to enable the authoring of analytic assets such that they can be combined in an analytic runtime graph, while retaining their original boundaries. The present invention thus enables the authors to make modifications without the requirements of switching paradigms and/or working with the entire analytic runtime. This method also promotes collaboration during the authoring process, promotes analytic asset reuse, and provides control over performance and optimized analytic runtime graph navigation.
In view of the foregoing, an embodiment of the present invention provides a method of organizing, managing and executing analytic assets that preserves the author's perspective (e.g., the analytic asset's boundaries) while still providing a scalable, high performance execution runtime environment. The Invention describes a hierarchy of analytic assets comprising analytic Rules, Rulesets, Beans, Agents, Tests, Sessions and Runtimes that each encapsulates analytic function, that are uniquely identified, and that have clear boundaries. SMS′ analyze a system's state by executing an analytic Runtime by optionally providing data to be analyzed (Analysis Data) and by specifying a type of analysis to be performed (Analysis Type). The invention manages introduction of new analytic assets to the Runtime to ensure they don't introduce execution problems like circularity (not allowed in acyclic graphs). An important benefit of the invention is the synergy produced by merging analytic assets into the Runtime by matching common components and adjusting the Runtime graph navigation weights (if present).
Navigation weights are used during path selection through the resulting graph of analytic assets in the Runtime, and include a function of any combination of material costs, labor costs, engineering feedback regarding system and/or component operation, and historic feedback of actual system and/or component operation. For example, in a situation where these factors are deemed to be of equal importance in calculating the weight, the values may simply be added together. This invention also provides for functions that allow different weight factors to carry more influence than others (e.g., in situations where materials are expensive relative to labor, the material costs may be multiplied by a factor to increase their influence). Values contributing to the weight calculation may also be normalized to a value between 0 and 1, inclusive and optionally have factors applied to increase or decrease their relative contribution to the weight calculation.
These and other aspects of the invention will be better appreciated and understood when considered in conjunction with the following description and the accompanying drawings. It should be understood, however, that the following description, while indicating preferred embodiments of the present invention and numerous specific details thereof, is given by way of illustration and not of limitation. Many changes and modifications may be made within the scope of the present invention without departing from the spirit thereof, and the invention includes all such modifications.
The invention will be better understood from the following detailed description with reference to the drawings, in which:
Referring now to the drawings, a preferred embodiment of the present invention will now be described. A person of ordinary skill in the art will understand that the invention is not limited in any manner by the disclosed embodiments or the drawings used in this application to describe the same.
This Invention proposes a hierarchical organization for analytic assets. The lowest level of the hierarchy includes individual collections of one or more Rules (e.g., Rule A 105 in
A Test may be viewed as a wrapper for an agent. In one application of the present invention, a Test may simply be a computerized test run on an automotive part to determine a problem with the car containing the part.
An Agent may be defined as a procedure for performing analysis. An Agent may be embodied in the form of a script. The Agent may include beans (e.g., functions) or rulesets (e.g., scripts of rules).
Different Tests may reference the same Agent. Tests may then be organized in a graph optionally having weighted connections used to prioritize navigation. In
Authoring analytic assets may involve developing and maintaining everything in this hierarchy below the Runtime (e.g., Sessions, Tests, Agents, Beans and/or Rulesets), and later merging Sessions into select Runtimes. The SMS executes a Runtime analytic asset. The authoring environment may allow execution of authored analytic assets for testing and debugging purposes. Sessions are merged into a Runtime at which point the Session can be checked for any incompatibility with the Runtime (e.g., the new Session results in a potential circular execution path in the Runtime due to the order the Tests are referenced within the Session's graph). These incompatibilities are able to be noticed using standard graph analysis known to those familiar with the art.
In addition to the analytic asset hierarchy, this Invention references the concepts of Analysis Type (e.g., see AnalysisType A 175 in
Because this invention organizes the analytic assets in a hierarchy, the authoring environment may provide query facilities to review descriptions (e.g., see AnalysisDesc A 181) of the purpose, function and intent of each analytic asset to see if it makes sense for use in (e.g., to be referenced by) the analytic asset currently being created or maintained. Because each analytic asset is uniquely identified, and can be referenced my multiple parents in the analytic asset hierarchy, the present invention promotes analytic asset reuse by allowing authors to search for an existing function before creating a new analytic asset.
Each analytic asset encapsulates its function allowing the author to focus on the analysis it performs, and not on the analytic asset's composition. Improvements in efficiency, error checking or other non-function affecting alterations is possible without introducing adverse consequences to the higher order analytic assets that reference them. Even new functions can be introduced without concern for impact on higher order analytic assets. If a function needs to be altered, the author of the asset would create a copy of the existing analytic asset and make the changes in the copy, thus producing a new analytic asset that can be added as a new or replacement component to other higher order analytic assets. Note, when introducing an analytic component as a replacement, the author should consider if it causes a change in the behavior of the higher order analytic asset, and whether or not this is desired behavior. The encapsulation of functions at each level of the analytic asset hierarchy may reduce the author's task to, at most, considering the effects on individual Sessions. The authors do not need to consider the effects on the Runtime.
The present invention promotes synergy of analytic assets because it allows reuse of analytic assets. Two Sessions authored independently may reference the same Tests, allowing them to become joined in the Runtime. The work of different authors can be combined without their explicit collaboration, allowing the Runtime to benefit from the independent work and find the best execution path. In
A simple example of combining weights on connections would be to add them together. This invention also encompasses more elaborate weight combination functions that take into consideration relative weights (e.g., percentage of the weight being added to sum of the weights on connections originating from the Test), or historic weights (e.g., taking into consideration the number of times the connection has been navigated to allow weights with more history (or less history depending on customer desires) to have more influence when combined with weights having less history (or, respectively, more history).
When Sessions are added to a Runtime, the Runtime may be searched to see if a Test referenced in the Session has already been added to the Runtime (e.g., by an author previously adding a different Session that contained a reference to the same Test). If none exists, the Test may be added, otherwise, the existing Test is selected for updating. The added or selected Test is examined to see if the connections in the Session cause a circular reference. If so, the Session may not be allowed to be added to the Runtime, and previous updates to the Runtime related to this Session are backed out. If there are no problems, connections from the newly added or selected Test may be created or updated for the next level of Tests in the Session being added to the Runtime. In situations where there is a conflict when adding a Session to a Runtime, the author has the flexibility to create a new Test that references the same Agent (preserving the function, but avoiding conflict with the existing Test's use in the Runtime) and resubmitting the Session referencing the new Test.
The Analysis Engine 200 evaluates possible connections leaving from a Test to determine the next Test to be evaluated and unweighted connections would be selected after having evaluated all weighted connections. Test E 260 retains its weighted connection B 255 to Test B. However, a new weighted connection Y 235 has been created between Test B 230 and Test C 240 reflecting the combination of weighted connection A 155 and weighted connection C 192. In one embodiment, combining an unweighted connection and a weighted connection yields the same weight as the weighted connection.
The original weighted connections A 155 and C 192 are replaced by this new combined weighted connection Y 235. The other weighted connections D 245 to Test D 250, and X 237 to Test F 252 remain connected from Test B 230. So, the affect of merging both Session A and B into a common runtime is there are two types of analysis that can be performed, starting at different locations in the Runtime, unweighted connections are adjusted to be the lowest priority connection from a Test, overlapping weighted connections are combined and replaced by a single connection, and common Tests in both Sessions reflect all connections.
Test A 220 and Test E 260 may be considered entry points into the Runtime A 210 because they represent the start of execution, depending on which Analysis Type is specified by the System Management System 275 in its SMS Analysis Request 280, submitted for execution to the Analysis Engine 200. The SMS Analysis Request 280 may also specify initial data for analysis contained in Analysis Data A 270, and at completion of the analysis, the result will reside in Analysis Data A 270.
When the connections between Tests in a Session carry weights, these weights are combined with the existing weights on similarly connected Tests within the Runtime. The weights are used to optimize navigation within the Runtime by providing a distinguishing characteristic of the potential paths to be followed during execution. The weights may comprise factors drawn from experience or data used to assess a benefit of selecting one path over others. Weight composition may include, but are not limited to material and labor costs to perform the analysis, a subjective rating by engineering or others regarding the likelihood the analysis will prove beneficial, or a historic rating of the success of past attempts at performing the analysis along this connection.
A representative hardware environment (e.g., computer system) for practicing the present invention is depicted in
While the invention has been described in terms of a single embodiment, those skilled in the art will recognize that the invention can be practiced with modification within the spirit and scope of the appended claims. For example, while the description above may have referenced the application of the present invention to the field of automobile diagnostics, the present invention is applicable to any kind of system or procedure where testing is involved.
Further, it is noted that, Applicants' intent is to encompass equivalents of all claim elements, even if amended later during prosecution.
The present application is related to pending U.S. application Ser. Nos. 10/326,375; 10/326,400; and 10/326,380, which are owned by IBM Corp., the assignee of the present application. The disclosures of those applications are incorporated herein by reference.