Scalable synchronous and asynchronous processing of monitoring rules
First Claim
Patent Images
1. A system embodied on a computer readable storage medium that when executed on one or more processors facilitate processing rules, comprising:
- a translator component that translates synchronous statements to asynchronous instructions using a synchronous programming model;
a runtime engine that reads the translated instructions and facilitates efficient scheduling and parallel processing of the translated instructions;
in which the instructions insert periodic yield instructions into the statements to facilitate at least one of yielding to runtime rule code execution switching and calling a utility function provided by the processors, andin which the translated instructions are scheduled for processing based upon a polling structure, which processing occurs for at least one of the polling structure of a current frame and the polling structure at the top of a stack.
6 Assignments
0 Petitions
Accused Products
Abstract
A rules runtime engine for scheduling and concurrently processing of rules. The engine efficiently runs a large number of rules in a parallel fashion. This is accomplished by authoring rules in a rule definition language, passing these rules through the translator for communication to the runtime engine and, scheduling and concurrently processing the translated instructions using the runtime engine. The engine also receives configuration data that instantiates the instructions thus, giving form to a living set of rules.
46 Citations
35 Claims
-
1. A system embodied on a computer readable storage medium that when executed on one or more processors facilitate processing rules, comprising:
-
a translator component that translates synchronous statements to asynchronous instructions using a synchronous programming model; a runtime engine that reads the translated instructions and facilitates efficient scheduling and parallel processing of the translated instructions; in which the instructions insert periodic yield instructions into the statements to facilitate at least one of yielding to runtime rule code execution switching and calling a utility function provided by the processors, and in which the translated instructions are scheduled for processing based upon a polling structure, which processing occurs for at least one of the polling structure of a current frame and the polling structure at the top of a stack. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 35)
-
-
14. A system embodied on a computer readable storage medium that when executed on one or more processors facilitates concurrent processing of rules comprising:
-
a translator component that translates the rules into instructions for concurrent processing; a runtime engine that schedules the instructions for processing and processes some or all of the instructions concurrently according to the schedule, and means for injecting yield instructions into the rule to facilitate at least one of;
yielding execution of the rule to rule code execution switching during processing by the runtime engine, and to facilitate calling utility functions provided by the runtime enginethe instructions are translated and scheduled for processing based upon a polling structure, which processing occurs for at least one of the polling structure of a current frame and the polling structure at the top of a stack. - View Dependent Claims (15, 16)
-
-
17. A system embodied on a computer readable storage medium that when executed on one or more processors facilitates processing rules in a model-based management architecture, comprising:
-
a plurality of rules that express health criteria for the architecture; a translator component that translates the rules into asynchronous instructions for concurrent processing; and a runtime engine that schedules the translated instruction for processing by injecting periodic yield instructions into the rules to facilitate at least one of;
yielding execution of the rule to rule code execution switching during processing by the runtime engine, and to facilitate calling utility functions provided by the runtime engine and processes some or all of the instructions concurrently according to the schedule,wherein the runtime engine schedules execution of an execution stack based on a polling structure for the current frame or the polling structure that is at the top of the execution stack. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
-
25. A method of processing rules, comprising:
-
receiving a plurality of the rules; translating the rules into instructions for communication to a runtime engine; scheduling the translated instructions for processing by the runtime engine; processing at least two of the plurality of instructions concurrently with the runtime engine; receiving configuration data into the runtime engine to instantiate the rules; injecting yield instructions into the rule to facilitate yielding execution of the rule to rule code execution switching during processing by the runtime engine, and to facilitate calling utility functions provided by the runtime engine; and scheduling the translated instructions for processing based upon a polling structure, which processing occurs for at least one of the polling structure of a current frame and the polling structure at the top of a stack. - View Dependent Claims (26, 27, 28, 29, 30)
-
-
31. A system embodied on a computer readable storage medium that when executed on one or more processors for processing rules, comprising:
-
means for receiving a plurality of the rules; means for converting the rules into instructions; means for translating the instructions for processing by a runtime engine; means for scheduling and processing concurrently at least two of the plurality of instructions; means for injecting yield instructions into the rule to facilitate yielding execution of the rule to rule code execution switching during processing by the runtime engine, and to facilitate calling utility functions provided by the runtime engine; and means for scheduling the translated instructions for processing based upon a polling structure, which processing occurs for at least one of the polling structure of a current frame and the polling structure at the top of a stack. - View Dependent Claims (32, 33)
-
-
34. A computer-readable medium having computer-executable instructions for performing concurrent processing of rules, comprising:
-
a translator component that translates synchronous rule statements into asynchronous instructions using a synchronous programming model; in which instructions facilitate calling utility functions and yielding to runtime code execution switching of the runtime engine; wherein the instructions inject yield instructions into the rule to facilitate yielding execution of the rule to rule code execution switching during processing by the runtime engine, and to facilitate calling utility functions provided by the runtime engine and the instructions are translated for processing based upon a polling structure, which processing occurs for at least one of the polling structure of a current frame and the polling structure at the top of a stack.
-
Specification