Complex event processing engine
Summary by NHIP
Dynamic Data Aggregation Tree
The method defines a real-time data aggregation tree where a self-organizing map arranges nodes into sub-trees. Weighted connections between parent and child nodes rely on user inputs, environmental circumstances, statuses, and business rules to calculate scores and trigger alerts.
Claim Score by NHIP
Abstract
A method, a data aggregation tool, and a set of instructions are disclosed. A data storage 120 may store a data aggregation tree with at least one entry node, a root node, and an initial entry status level for the at least one entry node. A processor 110 may detect an entry node status level change to a resulting entry status level at the at least one entry node. The processor 110 may aggregate a root node score at a root node based on an entry node score for the at least one entry node.

Term
Projected expiry 8 August 2031.
- Priority and filed
- Granted
- Today
- Projected expiry
9 claims: 3 independent, 6 dependent
- 1Broadest claimClaim Score 15, narrow(NHIP)A method to aggregate data using a complex event processing engine, comprising:defining in real time, with a processor, a data aggregation tree, the data aggregation tree having at least one parent node and at least one child node associated with the at least one parent node, a self-organizing map arranging nodes into a data sub-tree on an as-needed basis and connections between the at least one parent node and the at least one child node being weighted based on at least one of user inputs, environmental circumstances, node statuses and node business rules to determine a weight value, the processor using a dynamic scorecard to calculate an initial data score for each data aggregation tree;determining, with the processor, the weight value assigned to the at least one child node;determining, with the processor, a threshold level assigned to the at least one child node, the threshold level being associated with child node data;assigning at least one generic rule to the at least one parent node, the at least one generic rule being associated with aggregating child node data from the at least one child node;assigning a specific business rule to the at least one child node based on the weight value, the threshold value, and the at least one generic rule;processing the child node data to determine a child node score for the child node based on the specific business rule and the child node data;assigning a status level of the at least one child node indicating a degree of priority based on the child node score;monitoring an entry status level to detect change in the status level triggering the display of an alert to a user, the change in the status level of the at least one child node being based on the specific business rule and a change in the child node-data;determining, with the processor, a parent node score at the parent node based on an aggregation of one or more of the child node data, parent node data, and the at least one child node score, the aggregation of the parent node score being re-initiated when the change in the status level of the at least one child node is detected;and categorizing, with the processor, the status level of the child node to indicate a degree of priority by way of a color coding of the categorized status level of the child node, the color coding representing an alarm level, a warning level, and a normal level.
- 4A data aggregation tool, comprising:a data storage that stores a data aggregation tree having at least one parent node and at least one child node associated with the at least one parent node;and a processor that is programmed to: define in real time a data aggregation tree, the data aggregation tree having at least one parent node and at least one child node associated with the at least one parent node, a self-organizing map arranging nodes into a data sub-tree on an as-needed basis and connections between the at least one parent node and the at least one child node being weighted based on at least one of user inputs, environmental circumstances, node statuses and node business rules to determine a weight value, the processor using a dynamic scorecard to calculate an initial data score for each data aggregation tree;determine the weight value assigned to the at least one child node;determine a threshold level assigned to the at least one child node, the threshold level being associated with child node data;assign at least one generic rule to the at least one parent node, the at least one generic rule being associated with aggregating child node data from the at least one child node;assign a specific business rule to the at least one child node based on the weight value, the threshold value, and the at least one generic rule;process the child node data to determine a child node score for the child node based on the specific business rule and the child node data;assign a status level of the at least one child node indicating a degree of priority to be assigned based on the child node score;monitoring an entry status level to detect change in the status level triggering the display of an alert to a user, the change in the status level of the at least one child node being based on the specific business rule and a change in the child node data;determine a parent node score at the parent node based on an aggregation of one or more of the child node data, parent node data, and the at least one child node score, the aggregation of the parent node score being re-initiated when the change in the status level of the at least one child node is detected;and categorize the status level of the child node to indicate a degree of priority by way of a color coding of the categorized status level of the child node, the color coding representing an alarm level, a warning level, and a normal level.
- 7A non-transitory storage medium on which is recorded instructions that, when executed by a processor, cause the processor to implement a method for processing complex events, the method comprising:defining in real time a data aggregation tree, the data aggregation tree having at least one parent node and at least one child node associated with the at least one parent node, a self-organizing map arranging nodes into a data sub-tree on an as-needed basis and connections between the at least one parent node and the at least one child node being weighted based on at least one of user inputs, environmental circumstances, node statuses and node business rules to determine a weight value, the processor using a dynamic scorecard to calculate an initial data score for each data aggregation tree;determining the weight value assigned to the at least one child node;determining a threshold level assigned to the at least one child node, the threshold level being associated with child node data;assigning at least one generic rule to the at least one parent node, the at least one generic rule being associated with aggregating child node data from the at least one child node;assigning a specific business rule to the at least one child node based on the weight value, the threshold value, and the at least one generic rule;processing the child node data to determine a child node score for the child node based on the specific business rule and the child node data;assigning a status level of the at least one child node indicating a degree of priority based on the child node score;monitoring an entry status level to detect change in the status level triggering the display of an alert to a user, the change in the status level of the at least one child node being based on the specific business rule and a change in the child node data;determining a parent node score at the parent node based on an aggregation of one or more of the child node data, parent node data, and the at least one child node score, the aggregation of the parent node score being re-initiated when the change in the status level of the at least one child node is detected;and categorizing the status level of the child node to indicate a degree of priority by way of a color coding of the categorized status level of the child node, the color coding representing an alarm level, a warning level, and a normal level.
Independent claims3
46 paragraphs in 4 sections, as filed
BACKGROUND OF THE DISCLOSURE
p-00021. Field of the Invention
p-0003The present invention relates to a method and system for processing complex events. The present invention further relates to collecting and aggregating data at multiple nodes in a data tree.
p-00042. Introduction
p-0005Currently, a computer may organize a set of hierarchical information into a data tree by creating a set of linked nodes. A node may be a structure containing a value, a condition, or a representation of a separate data structure. A terminal node at the bottom of the tree may have a node directly above that node in the tree, referred to as the parent node. A parent node may have a child node below the parent node, and may act as a child node to its own parent node above it. The topmost node in the data structure may be referred to as the root node. The tree may have several layers of internal nodes between the root node and the terminal node. A set of data trees may be referred to as a data forest.
SUMMARY OF THE INVENTION
p-0006A method, a data aggregation tool, and a set of instructions are disclosed. A data storage may store a data aggregation tree with at least one entry node, a root node, and an initial entry status level for the at least one entry node. A processor may detect an entry node status level change to a resulting entry status level at the at least one entry node. The processor may aggregate a root node score at a root node based on an entry node score for the at least one entry node.
BRIEF DESCRIPTION OF THE DRAWINGS
p-0007Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
p-0008<figref idrefs="DRAWINGS">FIG. 1</figref> illustrates, in a block diagram, one embodiment of a computing device.
p-0009<figref idrefs="DRAWINGS">FIG. 2</figref> illustrates, in a block diagram, one embodiment of a data tree.
p-0010<figref idrefs="DRAWINGS">FIG. 3</figref> illustrates, in a block diagram, one embodiment of an entry node.
p-0011<figref idrefs="DRAWINGS">FIG. 4</figref> illustrates, in a block diagram, one embodiment of data aggregation system.
p-0012<figref idrefs="DRAWINGS">FIG. 5</figref> illustrates, in a block diagram, one embodiment of a data aggregation tool.
p-0013<figref idrefs="DRAWINGS">FIG. 6</figref> illustrates, in a block diagram, a detailed embodiment of a complex event processing engine.
p-0014<figref idrefs="DRAWINGS">FIG. 7</figref> illustrates, in a block diagram, one embodiment of a configuration processor.
p-0015<figref idrefs="DRAWINGS">FIG. 8</figref> illustrates, in a block diagram, one embodiment of a dynamic scorecard.
p-0016<figref idrefs="DRAWINGS">FIG. 9</figref> illustrates, in a flowchart, one embodiment of a method for aggregating data.
p-0017<figref idrefs="DRAWINGS">FIGS. 10</figref><i>a</i>-<i>b </i>illustrates, in a flow diagram, one embodiment of a complex event processing engine initialization process.
DETAILED DESCRIPTION OF THE INVENTION
p-0018Additional features and advantages of the invention will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The features and advantages of the invention may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth herein.
p-0019Various embodiments of the invention are discussed in detail below. While specific implementations are discussed, it should be understood that this is done for illustration purposes only. A person skilled in the relevant art will recognize that other components and configurations may be used without parting from the spirit and scope of the invention.
p-0020The present invention comprises a variety of embodiments, such as a method, an electronic device, and a set of instructions, and other embodiments that relate to the basic concepts of the invention. The electronic device may be any manner of computer, mobile device, wireless communication device, or general purpose electronic device. The set of instructions may reside in a storage medium. The set of instructions may be executable by a processor to implement a method for processing digital images.
p-0021A method, a data aggregation tool, and a set of instructions are disclosed. A data storage may store a data aggregation tree with at least one entry node, a root node, and an initial entry status level for the at least one entry node. A processor may detect an entry node status level change to a resulting entry status level at the at least one entry node. The processor may aggregate a root node score at a root node based on an entry node score for the at least one entry node.
p-0022A lightweight complex event processing (CEP) engine may aggregate and analyze large data sets in a high performance real time fashion to provide ‘at a glance’ status of a particular activity. The CEP engine may be used to monitor a sea port, a distribution process, or other complex process. The CEP engine may use a node-based tree topology for the aggregation of data to a root node. The CEP engine may execute rules at the node levels and propagated up the tree as data changes state. An agent may feed data collected from complex processes into the lowest level nodes of the data tree. The lowest level nodes of the tree may be virtualized as magic nodes.
p-0023The CEP engine may provide a mechanism by which a user may define a tree of data with each node assigned a generic rule that may be used to aggregate data residing in its child nodes. In addition, the CEP engine may assign each node of data user-defined weights and thresholds. The CEP engine may combine generic rules, weights and thresholds to create a specific business rule for the data at that node in the tree. The CEP engine may execute these business rules against the data in the tree to generate dynamic aggregated scores for each node in the tree such that one can actively monitor, and analyze data at each defined level of detail. The tool aggregates the data by assigning color codes to each aggregated node based on the business rules of each node. The color codes may be red to indicate a status of alarm, yellow to indicate a status of warning, or green to indicate a status of normal. During data processing, the tool may aggregate up the tree from a node when the status color of that node changes. This optimization may provide significant performance savings while keeping the status of nodes current when the node data changes. The CEP engine may augment the decision making process by allowing the user to quickly see issues for resolution, drill down to each level of detail, and discover the root cause of the problem. Once the issue has been addressed, the issue may be removed temporarily from the data aggregation, allowing the user to continue to focus on the most urgent issues at hand.
p-0024<figref idrefs="DRAWINGS">FIG. 1</figref> illustrates a possible configuration of a computing system <b>100</b> to act as a CEP engine. The computing system <b>100</b> may include a controller/processor <b>110</b>, a memory <b>120</b>, a database interface <b>130</b>, a transceiver <b>140</b>, input/output (I/O) device interface <b>150</b>, and a network interface <b>160</b>, connected through bus <b>170</b>. The computing system <b>100</b> may implement any operating system. Client and server software may be written in any programming language, such as C, C++, Java or Visual Basic, for example. The server software may run on an application framework, such as, for example, a Java® server or .NET® framework
p-0025The controller/processor <b>110</b> may be any programmed processor known to one of skill in the art. However, the disclosed method may also be implemented on a general-purpose or a special purpose computer, a programmed microprocessor or microcontroller, peripheral integrated circuit elements, an application-specific integrated circuit or other integrated circuits, hardware/electronic logic circuits, such as a discrete element circuit, a programmable logic device, such as a programmable logic array, field programmable gate-array, or the like. In general, any device or devices capable of implementing the disclosed method as described herein may be used to implement the disclosed system functions of this invention.
p-0026The memory <b>120</b> may include volatile and nonvolatile data storage, including one or more electrical, magnetic or optical memories such as a random access memory (RAM), cache, hard drive, or other memory device. The memory may have a cache to speed access to specific data. The memory <b>120</b> may also be connected to a compact disc-read only memory (CD-ROM), digital video disc-read only memory (DVD-ROM), DVD read write input, tape drive, or other removable memory device that allows media content to be directly uploaded into the system.
p-0027Data may be stored in the memory or in a separate database. The database interface <b>130</b> may be used by the controller/processor <b>110</b> to access the database. Further, the database may maintain information relating to a data forest.
p-0028The transceiver <b>140</b> may create a connection with a mobile device. The transceiver <b>140</b> may be incorporated into the computing system <b>100</b> or may be a separate device.
p-0029The I/O device interface <b>150</b> may be connected to one or more input devices that may include a keyboard, mouse, pen-operated touch screen or monitor, voice-recognition device, or any other device that accepts input. The I/O device interface <b>150</b> may also be connected to one or more output devices, such as a monitor, printer, disk drive, speakers, or any other device provided to output data. The I/O device interface <b>150</b> may receive a data task or connection criteria from a network administrator.
p-0030The network connection interface <b>160</b> may be connected to a communication device, modem, network interface card, a transceiver, or any other device capable of transmitting and receiving signals from the network. The network connection interface <b>160</b> may be used to monitor a data forest. The components of the computation device <b>100</b> may be connected via an electrical bus <b>170</b>, for example, or linked wirelessly.
p-0031Client software and databases may be accessed by the controller/processor <b>110</b> from memory <b>120</b>, and may include, for example, database applications, word processing applications, as well as components that embody the disclosed functionality of the present invention. The computation device <b>100</b> may implement any operating system. Client and server software may be written in any programming language. Although not required, the invention is described, at least in part, in the general context of computer-executable executable instructions, such as program modules, being executed by the electronic device, such as a general purpose computer. Generally, program modules include routine programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that other embodiments of the invention may be practiced in network computing environments with many types of computer system configurations, including personal computers, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like.
p-0032<figref idrefs="DRAWINGS">FIG. 2</figref> illustrates, in a block diagram, one embodiment of a data tree <b>200</b>. The CEP engine may aggregate data at the root node <b>210</b>. The CEP engine may receive input data <b>220</b> at an entry node <b>230</b>. Internal nodes <b>240</b> may aggregate data from groups of entry nodes <b>230</b> before passing the data onto the root nodes <b>210</b>. For example, a root node <b>210</b> may connect to an inner node <b>240</b> aggregating personnel data and an inner node <b>240</b> aggregating deployment data. The personnel inner node <b>240</b> may receive readiness data from an entry node <b>230</b> receiving status and unit input data <b>220</b>. The deployment inner node <b>240</b> may receive data from an inner node <b>240</b> aggregating vehicle data and an inner node <b>240</b> aggregating sustainment data. The vehicular inner node <b>240</b> may receive tactical data from an entry node <b>230</b> receiving motor and air input data <b>220</b> and transport data from an entry node <b>230</b> receiving ocean and rail input data <b>220</b>. The sustainment inner node <b>240</b> may receive supply data from an entry node <b>230</b> receiving supply unit input data <b>220</b> and retro data from an entry node <b>230</b> receiving retro unit input data <b>220</b>.
p-0033<figref idrefs="DRAWINGS">FIG. 3</figref> illustrates, in a block diagram, one embodiment of a node <b>300</b>. The node <b>300</b> may represent one or more values <b>310</b> representing the input data <b>220</b> or the data collected. Each node <b>300</b> may have a set of one or more business rules <b>320</b> indicating any processing to be performed with the values <b>310</b>. The node <b>300</b> may also store a status <b>330</b>, representing the priority of the data stored at the node <b>300</b>. The status <b>330</b> may be color coded when displaying the data tree to a user. For example, a red status <b>331</b> may represent an alarm level <b>332</b>, a yellow status <b>333</b> may represent a warning level <b>334</b>, and a green status <b>335</b> may represent a normal level <b>336</b>. Additionally, each node <b>300</b> may have an assigned threshold <b>340</b> for a value change to cause a change in status <b>330</b>. Each node <b>300</b> may have a weight <b>350</b> assigned for that node <b>300</b> when passing the value of the node <b>310</b> to a parent node <b>300</b>.
p-0034<figref idrefs="DRAWINGS">FIG. 4</figref> illustrates, in a block diagram, one embodiment of a logical layout of a data aggregation system <b>400</b>. The data aggregation system <b>400</b> may be a computing device <b>100</b>, a network of computing devices <b>100</b>, or other system for processing data. Each software module in the data aggregation system <b>400</b> may be enacted by one or more computing devices <b>100</b> or by a dedicated circuit. The data aggregation system <b>400</b> may maintain a data tree of fixed nodes <b>402</b> representing data information that may be consistently maintained across several different systems. A set of data agents <b>404</b> may feed a set of input data <b>220</b> into a series of magic nodes <b>406</b> that may be appended to the data tree of fixed nodes <b>402</b>. A self organizing map <b>408</b> may arrange the magic nodes <b>406</b> into a data sub-tree on an as-needed basis. The connection between a parent node and a child node may be weighted based upon user input, environmental circumstances, node statuses, node business rules, and other factors. The data tree may provide both node and weight data to a historical data module <b>410</b>. A predictions and alerts display <b>412</b> may provide predictions about the aggregated data collected by the data aggregation system <b>400</b> and alert a user about any changes to that node data. The prediction and alerts module <b>412</b> may access the node data stored in the historical data module <b>412</b> via a persistent hash map (PHM) <b>414</b>. Further, a genetic algorithm module <b>416</b> may adjust the weights of the data tree. The genetic algorithm module <b>416</b> may incorporate node data and weight data from the historical data module <b>410</b>. The user may adjust the genetic algorithm module <b>416</b> via the sensitivity adjustment input <b>418</b>.
p-0035<figref idrefs="DRAWINGS">FIG. 5</figref> illustrates, in a block diagram, one embodiment of a data aggregation tool <b>500</b> that uses a CEP engine <b>502</b>. The CEP engine <b>502</b> may process a large set of varying data using the data aggregation tool <b>400</b>. A set of logistic data agents <b>504</b> may input asset information <b>506</b> into the CEP engine <b>502</b>. A user <b>508</b> may provide a set of score query data <b>510</b> into the CEP engine <b>502</b>. A relational database management system (RDBMS) server <b>512</b> may provide a set of stored data <b>514</b> to the CEP engine <b>502</b>. The CEP engine <b>502</b> may apply the set of stored data <b>514</b> and the set of score query data <b>510</b> to the asset information <b>506</b> to compute an asset score <b>516</b> to provide to a Java® messaging service (JMS) topic module <b>518</b> for distribution.
p-0036<figref idrefs="DRAWINGS">FIG. 6</figref> illustrates, in a block diagram, a detailed embodiment of a CEP engine <b>502</b>. A set of data agents may input asset information <b>506</b> into a process loader <b>602</b> of the CEP engine <b>502</b>. The process loader <b>602</b> may convert the asset information <b>506</b> into a more manageable form, such as extensible markup language (XML), before passing the converted asset information <b>506</b> onto a dynamic scorecard <b>604</b>.
p-0037A RDBMS server <b>512</b> may pass a set of stored data <b>514</b> to a persistent database (PDB) <b>606</b> of the CEP engine <b>502</b>. The PDB <b>606</b> may maintain any data that is used throughout the data aggregation process. The PDB <b>606</b> may send a set of persistent data <b>608</b> to a dynamic database creator <b>610</b>. A business rules module <b>612</b> may provide a set of configuration data <b>614</b> to a configuration processor <b>616</b>. The configuration processor <b>616</b> may develop a set of card business rules <b>618</b> from the configuration data <b>614</b> to be sent to the dynamic scorecard <b>604</b>, before passing the configuration data <b>614</b> on to the dynamic database creator <b>610</b>. The dynamic database creator <b>610</b> may use the persistent data <b>608</b> and configuration data <b>614</b> to establish a dynamic database (DDB) <b>620</b> for providing the persistent data <b>608</b> to the dynamic scorecard <b>604</b>. A backup manager <b>622</b> may manage backup data <b>624</b> for the PDB <b>606</b> and the DDB <b>620</b>.
p-0038A user <b>508</b>, and possibly a web service <b>626</b>, may provide score query data <b>510</b> to a score query manager <b>628</b>. The score query manager may <b>628</b> may gather the score query data <b>510</b> and store it in the DDB <b>620</b> for use by the dynamic score card <b>604</b>. The dynamic scorecard <b>604</b> may then calculate an asset score <b>506</b> and provide that score <b>506</b> to the JMS topic module <b>518</b>.
p-0039<figref idrefs="DRAWINGS">FIG. 7</figref> illustrates, in a block diagram, one embodiment of a configuration processor <b>616</b>. The business rules module <b>612</b> may send configuration data <b>614</b> to a configuration file reader <b>702</b>. The configuration data <b>614</b> may be in an XML format. The configuration file reader <b>702</b> may parse the configuration data <b>614</b> and send the parsed configuration data string <b>704</b> to a configurations module <b>706</b>. The configurations module <b>706</b> may generate a set of score card business rules <b>614</b> to be sent to the dynamic score care <b>604</b>. The PDB <b>606</b> may send the stored persistent data <b>608</b> to a configuration manager <b>708</b>. The configuration manager <b>708</b> may use the persistent data <b>608</b> to generate a set of initializing data <b>710</b> to send to the DDB <b>620</b> and to the configuration module <b>706</b>. Further, the configuration manager <b>708</b> may generate a second set of score card business rules <b>618</b> to the dynamic scorecard <b>604</b>.
p-0040<figref idrefs="DRAWINGS">FIG. 8</figref> illustrates, in a block diagram, one embodiment of a dynamic scorecard <b>604</b>. The configurations module <b>706</b> may send a set of scorecard business rules <b>618</b> to a dynamic scorecard type module <b>802</b>. The dynamic scorecard type module <b>802</b> may parse the scorecard business rules <b>618</b> to develop a set of forest business rules <b>804</b> to send to a forest module <b>806</b>. The forest module <b>806</b> may parse the set of forest business rules <b>804</b> to develop a set of tree business rules <b>808</b> to send to a tree module <b>810</b>. The tree module <b>810</b> may use the tree business rules <b>808</b> to calculate a node status <b>812</b> to send to a node module <b>814</b>. The node module <b>814</b> may send the node status <b>812</b> to a score computer <b>816</b>. The score computer <b>816</b> may calculate a score data <b>818</b>. The score computer <b>816</b> may send the score data <b>818</b> to be stored in the DDB <b>620</b> via the node module <b>814</b>.
p-0041<figref idrefs="DRAWINGS">FIG. 9</figref> illustrates, in a flowchart, one embodiment of a method <b>900</b> for aggregating data using the complex data aggregation tool <b>400</b>. The complex data aggregation tool <b>400</b> may define a data aggregation tree with at least one entry node (Block <b>902</b>). The complex data aggregation tool <b>400</b> may assign an initial entry status level to the at least one entry node <b>230</b> (Block <b>904</b>). The complex data aggregation tool <b>400</b> may assign an entry weight to the at least one entry node <b>230</b> (Block <b>906</b>). The complex data aggregation tool <b>400</b> may assign an entry threshold to the at least one entry node <b>230</b> (Block <b>908</b>). The complex data aggregation tool <b>400</b> may assign a specific business rule to the at least one entry node <b>230</b> (Block <b>910</b>). The complex data aggregation tool <b>400</b> may establish a color coding for displaying a resulting entry status level <b>330</b> (Block <b>912</b>). The complex data aggregation tool <b>400</b> may aggregate a root node score at a root node <b>210</b> based on an entry node score for the at least one entry node <b>230</b> (Block <b>914</b>). The complex data aggregation tool <b>400</b> may monitor an entry node <b>230</b> for an entry status level change (Block <b>916</b>). If the complex data aggregation tool <b>400</b> detects an entry status level change to a resulting entry status level (Block <b>918</b>), the complex data aggregation tool <b>400</b> may alert the user to the entry node status level change (Block <b>920</b>). The complex data aggregation tool may again aggregate the root node score at the root node upon the entry node status level change. The complex data aggregation tool <b>400</b> may display the root node status to the user (Block <b>922</b>). The complex data aggregation tool <b>400</b> may display the entry node score to the user (Block <b>924</b>).
p-0042<figref idrefs="DRAWINGS">FIGS. 10</figref><i>a</i>-<i>b </i>illustrates, in a flow diagram, one embodiment of a complex event processing engine initialization process <b>1000</b>. In <figref idrefs="DRAWINGS">FIG. 10</figref><i>a</i>, the configuration processor <b>616</b> may request a set of business rules from the configuration file reader <b>702</b> (Action <b>1002</b>). The configuration file reader <b>702</b> may request the configuration XML data <b>614</b> from the configuration module <b>706</b> (Action <b>1004</b>). The configuration file reader <b>702</b> may send the parsed configuration XML string <b>704</b> from the configuration module <b>706</b> (Action <b>1006</b>). The configuration file reader <b>702</b> may send the business rules to the configuration processor <b>616</b> (Action <b>1008</b>). The configuration processor <b>616</b> may create the dynamic scorecard <b>604</b> (Action <b>1010</b>). The configuration processor <b>616</b> may establish a JMS publisher (Action <b>1012</b>). The configuration processor <b>616</b> may build a data forest (Action <b>1014</b>). The configuration processor <b>616</b> may get the database configurations for the PDB <b>606</b> and DDB <b>620</b> (Action <b>1016</b>). The configuration processor <b>616</b> may then create a PDB <b>606</b> and a DDB <b>620</b> (Action <b>1018</b>).
p-0043Continuing in <figref idrefs="DRAWINGS">FIG. 10</figref><i>b</i>, the configuration processor <b>616</b> may request a set of persistent data <b>608</b> from the P<b>6</b><b>606</b> (Action <b>1020</b>). The PDB <b>606</b> may send a set of weights and thresholds for the data forest to the configuration processor (Action <b>1022</b>). The configuration processor <b>616</b> may send the set of weights and thresholds to the DDB <b>620</b> (Action <b>1024</b>). The configuration processor <b>616</b> may build a tree list for each data tree in the data forest (Action <b>1026</b>). For each data tree on the tree list, the configuration processor <b>616</b> may use the dynamic scorecard <b>604</b> to calculate the initial data score for each tree (Action <b>1028</b>). The dynamic scorecard <b>604</b> may wrap up the tree score for each tree (Action <b>1030</b>). The dynamic scorecard <b>604</b> may send that tree score data to the DDB <b>620</b> (Action <b>1032</b>). The dynamic scorecard <b>604</b> may also send the tree score data to the JMS topic module <b>518</b> (Action <b>1034</b>).
p-0044Embodiments within the scope of the present invention may also include computer-readable media for carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code means in the form of computer-executable instructions or data structures. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination thereof) to a computer, the computer properly views the connection as a computer-readable medium. Thus, any such connection is properly termed a computer-readable medium. Combinations of the above should also be included within the scope of the computer-readable media.
p-0045Embodiments may also be practiced in distributed computing environments where tasks are performed by local and remote processing devices that are linked (either by hardwired links, wireless links, or by a combination thereof) through a communications network.
p-0046Computer-executable instructions include, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. Computer-executable instructions also include program modules that are executed by computers in stand-alone or network environments. Generally, program modules include routines, programs, objects, components, and data structures, etc. that perform particular tasks or implement particular abstract data types. Computer-executable instructions, associated data structures, and program modules represent examples of the program code means for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described in such steps.
p-0047Although the above description may contain specific details, they should not be construed as limiting the claims in any way. Other configurations of the described embodiments of the invention are part of the scope of this invention. For example, the principles of the invention may be applied to each individual user where each user may individually deploy such a system. This enables each user to utilize the benefits of the invention even if any one of the large number of possible applications do not need the functionality described herein. In other words, there may be multiple instances of the electronic devices each processing the content in various possible ways. It does not necessarily need to be one system used by all end users. Accordingly, the appended claims and their legal equivalents should only define the invention, rather than any specific examples given.
Contents4
12 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2015113001A1 | Cited by | United States of America | Pre-grant |
| US9832073B2 | Cited by | United States of America | Search report |
| US2004181554A1 | Cites | United States of America | Search report |
| US2007118545A1 | Cites | United States of America | Applicant |
| US2007208587A1 | Cites | United States of America | Search report |
| US2007214136A1 | Cites | United States of America | Applicant |
| US2008091443A1 | Cites | United States of America | Search report |
| US2008162210A1 | Cites | United States of America | Applicant |
| US2008235658A1 | Cites | United States of America | Applicant |
| US2009031327A1 | Cites | United States of America | Applicant |
| US2011153622A1 | Cites | United States of America | Search report |
| US2011179020A1 | Cites | United States of America | Search report |
| US5596712A | Cites | United States of America | Applicant |
| US6502133B1 | Cites | United States of America | Applicant |
| US6618727B1 | Cites | United States of America | Search report |
| US6970844B1 | Cites | United States of America | Search report |
| US6982708B1 | Cites | United States of America | Applicant |
| US7440933B2 | Cites | United States of America | Applicant |
| US7457728B2 | Cites | United States of America | Applicant |
| US7526486B2 | Cites | United States of America | Search report |
| US8504733B1 | Cites | United States of America | Search report |
2 members in 1 office; this record represents the family
Members2
| Document | Office | Kind | |
|---|---|---|---|
| US2012117083A1 | United States of America | A1 | |
| US8700637B2This record | United States of America | B2 |
51 transactions on the USPTO file
Allowed after 2 non-final rejections, 1 final rejection and 1 RCE.
- Non-final rejections
- 2
- Final rejections
- 1
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Maintenance Fee Reminder MailedREM. | REM. | |
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Interview Summary - Examiner InitiatedEXIE | EXIE | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Mail Applicant Initiated Interview SummaryMEXIA | MEXIA | |
| Response after Non-Final ActionA... | A... | |
| Interview Summary- Applicant InitiatedEXIA | EXIA | |
| Mail Applicant Initiated Interview SummaryMEXIA | MEXIA | |
| Interview Summary- Applicant InitiatedEXIA | EXIA | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Workflow - Request for RCE - FinishFRCE | FRCE | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Mail Applicant Initiated Interview SummaryMEXIA | MEXIA | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Interview Summary- Applicant InitiatedEXIA | EXIA | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Application Is Now CompleteCOMP | COMP | |
| Sent to Classification ContractorPGPC | PGPC | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Cleared by OIPE CSRL194 | L194 | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
26 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Lapsed due to failure to pay maintenance feeLapsedFP | FP | |
| Lapse for failure to pay maintenance feesLapsedPATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYLAPS | LAPS | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Fee payment procedureMAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| Maintenance fee paymentMAFP | MAFP | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Maintenance fee paymentMAFP | MAFP | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS |
Numbers
- Publication
- 08700637
- Application
- 94149610
Titles
- English
- Complex event processing engine
Patent term adjustment
- A delay
- +273 daysthe office missed an examination deadline
- Net adjustment
- 273 days
Classification
- CPC, 2
- G06F16/24556
- G06F16/282
- IPC, 2
- G06F7 00
- G06F17 30
- USPC, 2
- 707748000
- 707694000