Spesso questi motori di regole sono implementati come una catena di regole . La catena di regole è un elenco ordinato di regole. Ogni regola è costituita dalle seguenti proprietà:
- una condizione che deve essere applicata
- un'azione da intraprendere
- se la catena di regole deve continuare (spesso: si ferma sempre)
Quando un evento entra nel sistema, la catena di regole viene valutata in ordine. Se si applica la condizione per una regola, viene eseguita la sua azione. A seconda del modello della catena di regole, la catena potrebbe interrompersi, continuare o addirittura riavviarsi. Se è possibile un riavvio, il numero di riavvii dovrebbe essere limitato per evitare loop infiniti. Se non si applica alcuna regola, la catena di regole potrebbe avere un'azione predefinita.
Che cos'è un evento che attiva la catena di regole dipende dall'applicazione. Per un client di posta elettronica, le catene di regole vengono generalmente attivate solo sui messaggi in arrivo. A volte si attivano anche per i messaggi inviati. È spesso possibile eseguirli manualmente nella Posta in arrivo.
Le catene di regole sono interessanti perché sono abbastanza economiche da gestire. Se si applica una regola, la maggior parte delle catene di regole si fermerà. Questo è anche un modello di programmazione molto semplice. Regole più specifiche devono venire prima, regole più generali più tardi. Ciò evita la logica complicata. Quindi le catene di regole sono un modo interessante per implementare una certa quantità di personalizzazione senza dover supportare troppa flessibilità. Poiché l'insieme di condizioni e azioni è limitato, le catene di regole possono anche essere implementate facilmente con una GUI basata su moduli o un'interfaccia utente basata su testo.
Quando progettiamo il motore delle regole, possiamo bilanciare le prestazioni con la flessibilità. Per esempio. possiamo eseguire una catena di regole su ogni azione dell'utente, ma il sovraccarico potrebbe non valere il tempo di elaborazione. Possiamo inoltre selezionare le condizioni e le azioni disponibili e implementare le condizioni solo se sono economiche da controllare.
Esempi di catene di regole:
-
Quasi tutti i client di posta elettronica dispongono di catene di regole per classificare i messaggi in arrivo.
-
Firewall come iptables. Poiché la catena di regole è così limitata, può essere compilata, quindi è abbastanza veloce da essere applicata ad ogni pacchetto in tempo reale.
-
Configurazione del server web Apache come mod_rewrite o mod_authz_host (Nega, Permetti).
-
Lo standard robots.txt contiene in realtà due righelli nidificati: innanzitutto per abbinare l'agente utente, quindi una catena di regole per consentire / impedire URL specifici.
-
Molti altri prodotti come Google Analytics o Cloudflare consentono la personalizzazione attraverso le catene di regole. Esiste un'intera classe di software di automazione come Zapier, IFTTT o Microsoft Flow che offrono set di regole paragonabili, ma non concatenano le regole.