A Mete Rete Interface For Perpetually Online Distributed Rule-Based Systems
In Complex Event Processing (CEP), streams of incoming events are analysed in order to detect complex events. CEP can be implemented declaratively using rule-based frameworks. Determining whether the incoming events match one of the rules is accomplished by a rule matching algorithm. One of the most popular algorithms is the so-called “Rete algorithm”. Unfortunately the Rete algorithm was never designed to be deployed on the large cluster-based infrastructures that are used for hosting today’s online applications. As a consequence, a Rete implementation on such cluster-based infrastructures is implemented in an ad-hoc fashion and heavily tied to the particular cluster configuration (e.g. number of cluster nodes, …).
We introduce Mete, a Rete-based rule matching algortithm that is deployed on cluster-based infrastructures and which offers a meta-level infrastructure for adaptating and extending the rules sitting at the base-level. This meta-level infrastructure consists of a second Rete network which implements rules that are about the deployment of the base rules on the cluster infrastructure. Hence, the meta Rete network enables one to write meta rules that can add fundamental changes to the distributed base Rete network in a declarative manner. In order to validate Mete, we have programmed a set of user-defined meta-rules that ensure that the entire base-level system becomes fault tolerant. This means that the base-level system will automatically recover when any of the machines of the computer-cluster it runs on crashes.