Evoluzione del sistema di gestione degli allarmi dei dispositivi di campo: integrazione di un motore...
-
Upload
universita-degli-studi-di-milano-sede-di-crema -
Category
Education
-
view
707 -
download
0
description
Transcript of Evoluzione del sistema di gestione degli allarmi dei dispositivi di campo: integrazione di un motore...
Evoluzione del sistema di gestione degli allarmi dei dispositivi di campo: integrazione di un motore di regole
Corso di Laurea in Sicurezza dei Sistemi e delle Reti Informatiche
RELATOREPROF. GABRIELE GIANINI
TESI DI LAUREA DIERIKA PRIMAVERAMATR. 722422
• Sanità• Gas• Acqua
• Calore• Gestione Ambientale• Energia
DELIBERA ARG-GAS 155/08
Smart Metering GAS
Smart Metering
•bolletta meno cara
•meno costi di gestione
Smart Metering e-utileCinque settori:
• Meter
• MAG (Meter Automated Gateway)
• e-MM (Electronic Meter Management)
• FASS (Field Activity Support System)
• Backend
Il sistema elettrico
Status word
EVENTI
NotificheAllarmiEventi generati da malfunzionamenti dei dispositivi di campo, necessari per risolvere tutti i possibili problemi che possono presentarsi.
Eventi generati da qualunque tipo di componente, necessari per verificare il corretto funzionamento dell’intero sistema.
FE CTS
Gestione allarmi (FE)
Gestione notifiche (CTS)
PROBLEMA:Separazione di tutta la logica utilizzata per la gestione degli
eventi dal codice esistente
Rule Engine: DROOLS
NUOVA ARCHITETTURA:
Device alarm management Event management
Rule Engine
DROOLS• Il progetto Drools ha inizio nel 2001 ad opera di Bob McWhirter.
• Nell'ottobre del 2005 Drools diventa parte dell'offerta JBoss e viene rinominato JBoss Rules, anche se il nome Drools rimane popolare tra gli sviluppatori.
• Nel 2006 JBoss viene acquisita da Red Hat, Inc.
DROOLS RULE:
Sintassi:rule <<rule name>>
<<additional properties>>when
<<conditions>>then
<<actions>>end
Esempio:rule “Hello World”when
m : Message(status == Message.HELLO,myMessage : message )
thenSystem.out.println( myMessage );m.setMessage( “Goodbye” );m.setStatus( Message.GOODBYE );update( m );
end
DROOLS ESEMPIO:public class DroolsTest{
public static final void main(String[] args) {
try{
// carica e compila le regole in una RETEKnowledgeBase kbase = readKnowledgeBase();// inizializzazione della RETEStatefulKnowledgeSession ksession =
kbase.newStatefulKnowledgeSession();
// go !Message message = new Message();message.setMessage("Hello World");message.setStatus(Message.HELLO);ksession.insert(message);ksession.fireAllRules();logger.close();
} catch (Throwable t) {
t.printStackTrace();}
}
private static KnowledgeBase readKnowledgeBase()throws Exception
{// creo il compilatore
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
// compila una o più risorsekbuilder.add(ResourceFactory.newClassPathResource
("Sample.drl"), ResourceType.DRL);
// inizializzo la RETE vuota e le struttureKnowledgeBase kbase =
KnowledgeBaseFactory.newKnowledgeBase();// aggiungo le regole compilatekbase.addKnowledgePackages
(kbuilder.getKnowledgePackages());
return kbase;}
}
VANTAGGI:• Open Source• Si integra perfettamente con il codice java già presente• Separazione di tutta la logica necessaria per gestire gli eventi dal codice• Regole facilmente modificabili• Facile e intuitivo (interfaccia grafica)
Sviluppi futuri: Smart Grid
Obiettivo “20/20/20”:
• ridurre del 20% il consumo di emissioni di gas a effetto serra;
• aumentare del 20% il risparmio energetico;
• avere almeno il 20% di fonti di energia provenienti da risorse rinnovabili
Grazie per l’attenzione