Method for performing real-time analytics using a business rules engine on real-time heterogeneous materialized data views
First Claim
1. A method comprising:
- detecting an event within a real-time stream of data while said real-time stream is received from an external system prior to storing said event in a database;
after detecting said event, materializing a real-time view of said event as one or more rows within a stream of rows;
probing into said stream of rows, wherein said probing comprises subscribing to a plurality of hidden views automatically generated in response to said stream of rows, wherein a condition of one of said plurality of hidden views is equivalent to a condition of one of a plurality of business rules;
generating an action statement, wherein said generating of said action statement comprises;
determining that said action statement comprises a ‘
holds for’
clause; and
upon said determining that said action statement comprises a ‘
holds for’
clause, handling said action statement according to said ‘
holds for’
clause, wherein said ‘
holds for’
clause selectively forestalls said generating until a particular event occurs, and cancels said generating when said particular event does not occur during a specified time duration;
using a plurality of user-defined dynamic specifications, wherein each individual specification sets forth a change to be detected in said real time materialized view of said event and also a corresponding action to be taken in response to said change; and
upon detecting said change set forth by at least one user-defined dynamic specification, triggering said corresponding action of said at least one specification.
9 Assignments
0 Petitions
Accused Products
Abstract
A method for performing real-time analytics using a business rules engine on real time heterogeneous materialized data views is disclosed. The method comprises processing of rows produced by views corresponding to events. The rows are processed according to business rules by a view engine. Views with conditions equivalent to rule conditions are subscribed to by a rule engine, which outputs action messages corresponding to the rule condition. Where the rule condition is satisfied, a statement to that effect is sent, with any available reportlets, to an alert engine. The alert engine handles alert states corresponding to the action statement, saves any corresponding reportlets, and generates a message to fire an alert to a notification engine. The notification engine formats the alert and sends the alert by a selected medium, such as email, a webservice call, or another network protocol.
-
Citations
25 Claims
-
1. A method comprising:
-
detecting an event within a real-time stream of data while said real-time stream is received from an external system prior to storing said event in a database; after detecting said event, materializing a real-time view of said event as one or more rows within a stream of rows; probing into said stream of rows, wherein said probing comprises subscribing to a plurality of hidden views automatically generated in response to said stream of rows, wherein a condition of one of said plurality of hidden views is equivalent to a condition of one of a plurality of business rules; generating an action statement, wherein said generating of said action statement comprises; determining that said action statement comprises a ‘
holds for’
clause; andupon said determining that said action statement comprises a ‘
holds for’
clause, handling said action statement according to said ‘
holds for’
clause, wherein said ‘
holds for’
clause selectively forestalls said generating until a particular event occurs, and cancels said generating when said particular event does not occur during a specified time duration;using a plurality of user-defined dynamic specifications, wherein each individual specification sets forth a change to be detected in said real time materialized view of said event and also a corresponding action to be taken in response to said change; and upon detecting said change set forth by at least one user-defined dynamic specification, triggering said corresponding action of said at least one specification. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method comprising:
-
detecting an event within a real-time stream of data while said real-time stream is received from an external system prior to storing said event in a database; after detecting said event, materializing a real-time view of said event as one or more rows within a stream of rows; probing into said stream of rows, wherein said probing comprises subscribing to a plurality of hidden views automatically generated in response to said stream of rows, wherein a condition of one of said plurality of hidden views is equivalent to a condition of one of a plurality of business rules; generating an action statement, wherein said generating of said action statement comprises; determining that said action statement comprises a ‘
for a specific’
clause; andupon said determining that said actions statement comprises a ‘
for a specific’
clause, handling said action statement according to said ‘
for a specific’
clause, wherein said ‘
for a specific’
clause tracks a Raise/Lower state for each unique tuple of a plurality of tuples comprising a specific set of columns;using a plurality of user-defined dynamic specifications, wherein each individual specification sets forth a change to be detected in said real time materialized view of said event and also a corresponding action to be taken in response to said change; and upon detecting said change set forth by at least one user-defined dynamic specification, triggering said corresponding action of said at least one specification.
-
-
10. A computer-implemented system for performing real-time analytics on heterogeneous data views materialized as a stream of rows, comprising:
-
a processor; an agent recorded on a medium readable by the processor, the agent executed by the processor for detecting an event within a real-time stream of data that is received from an external system; a view engine recorded on a medium readable by the processor, the view engine executed by the processor for receiving said event from said agent, for materializing one or more real-time views of said event as one or more rows within said stream of rows, wherein said views comprise one or more business views and one or more hidden views, and wherein said business views are used to define one or more business rules; a rule engine recorded on a medium readable by the processor, the rule engine executed by the processor for receiving said stream of rows of said real-time materialized views from said view engine, for subscribing to said hidden views, wherein each of said hidden views has a condition equivalent to that of one of said business rules, and for generating a message to take an action corresponding to said condition specified by at least one of said business rules based upon said received stream of rows, wherein said rule engine is further configured for determining that said message comprises a ‘
holds for’
clause and, upon said determining that said message comprises said ‘
holds for’
clause, handling said message according to said ‘
holds for’
clause, wherein said ‘
holds for’
clause selectively forestalls said generating of said message until a particular event occurs and cancels said generating of said message when said particular event does not occur during a specified time duration;an alert engine recorded on a medium readable by the processor, the alert engine executed by the processor for receiving said message to take an action from said view engine, for handling an alert state corresponding to said message, and for generating a request to fire an alert; and a notification engine recorded on a medium readable by the processor, the notification engine executed by the processor for receiving said request from said alert engine, for formatting said alert as a notice and for sending said notice to a user. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A system for performing real-time analytics on heterogeneous data views materialized as a stream of rows, comprising:
-
a processor; an agent recorded on a medium readable by the processor, the agent executed by the processor for detecting an event within a real-time stream of data that is received from an external system; a view engine recorded on a medium readable by the processor, the view engine executed by the processor for receiving said event from said agent, for materializing one or more real-time views of said event as one or more rows within said stream of rows, wherein said views comprise one or more business views and one or more hidden views, and wherein said business views are used to define one or more business rules; a rule engine recorded on a medium readable by the processor, the rule engine executed by the processor for receiving said stream of rows of said real-time materialized views from said view engine, for subscribing to said hidden views, wherein each of said hidden views has a condition equivalent to that of one of said business rules, and for generating a message to take an action corresponding to said condition specified by at least one of said business rules based upon said received stream of rows, wherein said rule engine is further configured for determining that said message comprises a ‘
for a specific’
clause and, upon said determining that said message comprises said ‘
for a specific’
clause, handling said message according to said ‘
for a specific’
clause, wherein said ‘
for a specific’
clause tracks a Raise/Lower state for each unique tuple of a plurality of tuples comprising a specific set of columns;an alert engine recorded on a medium readable by the processor, the alert engine executed by the processor for receiving said message to take an action from said view engine, for handling an alert state corresponding to said message, and for generating a request to fire an alert; and a notification engine recorded on a medium readable by the processor, the notification engine executed by the processor for receiving said request from said alert engine, for formatting said alert as a notice and for sending said notice to a user.
-
-
21. In a computer system for monitoring business activity, a computer readable medium having a computer readable program code embodied therein for causing said computer system to perform a method for performing real-time analytics on heterogeneous data views materialized as a stream of rows, said method comprising:
-
detecting an event within a real-time stream of data that is received from an external system, wherein said detecting occurs while the real-time stream is received and prior to storing said event in a database; upon detecting said event, materializing one or more real-rime views of said event as one or more rows within said stream of rows, wherein said views comprise one or more business views and one or more hidden views, and wherein said business views are used to define one or more business rules; receiving said stream of rows of said real-time materialized views; subscribing to said hidden views, wherein each of said hidden views has a condition equivalent to that of one of said business rules; generating a message to take an action corresponding to said condition specified by at least one of said business rules based upon said received stream of rows; determining that said message comprises a ‘
holds for’
clause;upon said determining that said message comprises said ‘
holds for’
clause, handling said message according to said ‘
holds for’
clause, wherein said ‘
holds for’
clause selectively forestalls said generating of said message until a particular event occurs, and cancels said generating of said message when said particular event does not occur during a specified time duration;handling an alert state corresponding to said message; requesting that an alert be fired; formatting said alert as a notice; and sending said notice to a user. - View Dependent Claims (22, 23, 24)
-
-
25. In a computer system for monitoring business activity, a computer readable medium having a computer readable program code embodied therein for causing said computer system to perform a method for performing real-time analytics on heterogeneous data views materialized as a stream of rows, said method comprising:
-
detecting an event within a real-time stream of data that is received from an external system, wherein said detecting occurs while the real-time stream is received and prior to storing said event in a database; upon detecting said event, materializing one or more real-rime views of said event as one or more rows within said stream of rows, wherein said views comprise one or more business views and one or more hidden views, and wherein said business views are used to define one or more business rules; receiving said stream of rows of said real-time materialized views; subscribing to said hidden views, wherein each of said hidden views has a condition equivalent to that of one of said business rules; generating a message to take an action corresponding to said condition specified by at least one of said business rules based upon said received stream of rows; determining that said message comprises a ‘
for a specific’
clause;upon said determining that said message comprises said ‘
for a specific’
clause, handling said message according to said ‘
for a specific’
clause, wherein said ‘
for a specific’
clause tracks a Raise/Lower state for each unique tuple of a plurality of tuples comprising a specific set of columns;handling an alert state corresponding to said message; requesting that an alert be fired; formatting said alert as a notice; and sending said notice to a user.
-
Specification