Distributed digital rule processor for single system image on a clustered network and method
First Claim
1. A distributed digital rule processor to execute digital rules and create a single system image for a computer program on networked nodes having von Neumann processors comprising:
- a plurality of rule nets each having an ordered list of rules, wherein each rule has inputs and outputs;
a plurality of slave translators to execute rules received from the rule nets and return the results and data from executed rules to a calling rule net;
wherein the rule nets can broadcast rules to other rule nets and slave translators based on the rules received from other rule nets;
a global controller coupled to the rule nets and slave translators, having a global bindery with a global data memory, a current rules'"'"' queue number, a function state and variables of the next rule to be broadcast to the rule nets and slave translators, and a current broadcast state, wherein the global data memory may only be accessed indirectly by the rule nets through the global controller and program data is only transferred from the global data memory when a rule is broadcast which requires the data, and program data is only updated in global data memory when it is received by a completed rule from a rule net;
a global rule distribution queue coupled to the global controller to store pending digital rules and sequentially broadcast rules to the rule nets and slave translators as signaled by the global controller; and
a plurality of local binderies in each rule net, wherein each local bindery has a function state wherein the function state and local binderies cannot be directly accessed by the rules in the rule net or global controller, and wherein the function state allows each rule net to rebroadcast a rule that failed to complete on the node to which the rule was broadcast to thereby allow the program to continue execution without the loss of gray data.
2 Assignments
0 Petitions
Accused Products
Abstract
A distributed digital rule processor to create a single system image (SSI) on a cluster of von Neumann processors. The rule processing engine has a group of digital rule nets each having their own local bindery and local controllers which are interconnected by a global bindery. Slave translators are interfaced to the global bindery to receive rule calls from the rule nets and return statuses. A compiler maps the typical source code instructions into groups of rules which are stored in the rule nets'"'"' storage area. The rules contain groups of input variables and output variables. The output variables of a calling rule become the input and data for the called rule. Slave application processes on the von Neumann processors perform slave activities for the slave translators, as the rule nets are unable to manipulate data. Rules received from the rule nets by slave translators are processed and processed data or return statuses are sent back to the nets for further instructions. The rule nets contain the code compiled by the programmer and the application data is stored in the global buffers. This separates the code from data. The digital rules include node, processor, and thread addressing variables to permit extending the model to handle multiple nodes in a Wide Area Network, Local Area Network, System Area Network, or cluster.
-
Citations
29 Claims
-
1. A distributed digital rule processor to execute digital rules and create a single system image for a computer program on networked nodes having von Neumann processors comprising:
-
a plurality of rule nets each having an ordered list of rules, wherein each rule has inputs and outputs; a plurality of slave translators to execute rules received from the rule nets and return the results and data from executed rules to a calling rule net; wherein the rule nets can broadcast rules to other rule nets and slave translators based on the rules received from other rule nets; a global controller coupled to the rule nets and slave translators, having a global bindery with a global data memory, a current rules'"'"' queue number, a function state and variables of the next rule to be broadcast to the rule nets and slave translators, and a current broadcast state, wherein the global data memory may only be accessed indirectly by the rule nets through the global controller and program data is only transferred from the global data memory when a rule is broadcast which requires the data, and program data is only updated in global data memory when it is received by a completed rule from a rule net; a global rule distribution queue coupled to the global controller to store pending digital rules and sequentially broadcast rules to the rule nets and slave translators as signaled by the global controller; and a plurality of local binderies in each rule net, wherein each local bindery has a function state wherein the function state and local binderies cannot be directly accessed by the rules in the rule net or global controller, and wherein the function state allows each rule net to rebroadcast a rule that failed to complete on the node to which the rule was broadcast to thereby allow the program to continue execution without the loss of gray data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25)
-
-
23. A distributed digital rule processor to create a single system image and execute digital rules on networked von Neumann processors comprising:
-
a plurality of rule nets each having an ordered list of rules in a rule net storage, wherein each rule has inputs and outputs, the rule nets further comprising; a local controller coupled to the rule net storage to recognize broadcast rules; and
a local bindery coupled to the local controller to store values, wherein the local bindery further comprises;a function state buffer to define which group of parallel instructions may be recognized next for execution by the individual rule net; a counter overflow unit for storing an object number and the maximum time allowed to a slave translator or rule net to complete the objects processing before a failure is reported; a plurality of rule parameter buffers for storing the parameters broadcast by the global controller with a rule; and a from function number buffer to store a number defining the rule net which sent a rule to a receiving rule net; a global controller having a global queue, a global bindery to store the state of global queue, and global data, to thereby distribute digital rules and control the flow of digital information between the rule nets; an Other Node Buffer to store return addresses of rules broadcast by the rule nets through the global controller and global bindery; and a plurality of slave translators each having their own memory, operating system, object handler, and an asynchronous communication connection with the global controller and global bindery wherein the slave translators process rules and data received from the rule nets and return that processed data to the rule nets.
-
-
26. A method for distributed digital rule processing to execute digital rules and create a single system image for a computer program on networked nodes having von Neumann processors, the method comprising:
-
(a) compiling a plurality of rules; (b) storing the rules in a plurality of rule nets; (c) broadcasting a first digital rule from a global controller and a global queue; (d) accepting the broadcast rule if it is recognized by a specific rule net or slave translator; (e) updating a function state stored in one of a plurality of local binderies of the accepting rule net, wherein the function state and local bindery cannot be directly accessed by the rules in the rule net or the global controller; (f) processing the digital rule when the rule is accepted by one of the rule nets; (g) broadcasting a digital rule generated by the rule net as a result of the rule received by the rule net; (h) updating a function state stored in one of a plurality of local binderies of the broadcasting rule net, wherein the function state stores a function state value of the rule broadcast; (i) re-broadcasting a rule from a rule net which failed to complete on the node to which the rule was broadcast using the function state stored in the corresponding bindery, to thereby allow the program to continue execution without the loss of gray data; (j) storing the broadcast rule in the global queue to be broadcast by the global controller to other rule nets and slave translators; (k) accepting the broadcast rule when the rule is recognized by a specific rule net or slave translator; (l) processing rules received by a slave translator by calling slave application program interfaces (APIs) having slave von Neuman processors to process the digital rule and return the results to the calling rule net; and (m) repeating steps (d) through (l) until the processing of a distributed application is complete. - View Dependent Claims (27, 28, 29)
-
Specification