Le langage de règle Active Correlation Technology organise les règles en blocs de règles qui font partie d'un jeu de règles.
Le jeu de règles contient des règles, organisées dans des blocs de règles, qui doivent être exécutées par un moteur Active Correlation Technology. Il s'agit d'une unité d'exécution de règles. Chaque moteur Active Correlation Technology opère sur un seul jeu de règles à la fois.
Les règles contenues dans un jeu de règles sont déclenchées par des événements envoyés au moteur Active Correlation Technology. Ces événements sont acheminés de manière séquentielle vers les règles correspondantes en fonction des critères de sélection d'événement de chaque règle ; une seule règle est exécutée à la fois. Le même événement peut s'appliquer à, et donc déclencher, de multiples règles. Ces règles ne sont pas nécessairement liées entre elles, mais elles sont susceptibles de l'être.
L'ordre des blocs de règles et des règles au sein d'un jeu de règles détermine le flux des événements dans ce jeu.
Les variables et les importations peuvent être définies au niveau du jeu de règles pour être utilisées dans des expressions (code contenant une logique personnalisée) sur toute la portée du jeu de règles. Une importation est un moyen spécifique aux langages de programmation d'accéder aux codes externes. Un rédacteur de règle peut définir une importation pour importer des modules externes (tels que des classes Java) en vue de les utiliser dans des expressions contenues dans des règles.
Le bloc de règles est l'unité organisationnelle des règles de groupement par fonction dans des domaines au sein du jeu de règles. Un domaine est la catégorie à laquelle s'applique un groupe de règles selon sa fonction. Par exemple, un domaine peut représenter une zone géographique particulière, une discipline de gestion informatique (telles que la détection de sécurité ou la corrélation d'événements de réseau) ou une organisation métier (une entreprise particulière ou un service dans une entreprise).
Les blocs de règles peuvent contenir des règles et d'autres blocs de règles. Etant donné que les blocs de règles peuvent être imbriqués, il est possible de construire une hiérarchie de règles. Par exemple, un jeu de règles peut contenir un bloc de règles pour la corrélation d'événements réseaux et ce dernier peut contenir deux autres blocs de règles : un pour la corrélation de la couche 2 et un pour la corrélation du protocole IP.
Un jeu de règles offre donc des fonctions de corrélation d'événements pour une variété de domaines, et un bloc de règles prévoit l'organisation de ces différents domaines pouvant avoir besoin d'accéder à un jeu de règles semblable.
Les variables et les importations peuvent être définies au niveau du bloc de règles pour être utilisées dans des expressions sur toute la portée du bloc de règles. La portée d'un bloc de règles inclut toutes les règles et autres blocs de règles contenus dans le bloc de règles.
Chaque règle peut fournir des fonctions de corrélation d'événements selon son modèle et les règles peuvent être enchaînées par transmission des événements. Par ce chaînage de règles, les fonctions de corrélation d'événements des différents modèles peuvent être regroupées ou imbriquées.
Les variables peuvent être définies au niveau de la règle pour être utilisées dans des expressions sur toute la portée de la règle.
Pour résumer, le jeu de règles est l'unité d'exécution, le bloc de règles est l'unité organisationnelle et la règle est l'unité de corrélation. Un jeu de règles contient un ou plusieurs blocs de règles dont chacun peut contenir d'autres blocs de règles. Chacun des blocs de règles contient des règles pour un domaine spécifique. Les blocs de règles peuvent être imbriqués pour construire une hiérarchie de règles. L'ordre des blocs de règles et des règles au sein d'un jeu de règles détermine le flux des événements dans ce jeu.
Les variables et les importations peuvent être définies au niveau du jeu de règles ou du bloc de règles pour être utilisées dans des expressions au sein des règles. La portée de la variable ou de l'importation est respectivement le jeu de règles ou le bloc de règles. Les variables peuvent aussi être définies au niveau de la règle, mais leur portée est alors limitée à la règle seulement.