SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
java-pe.blogspot.com
05.Juni 2013
Business Logic Integration Platform
Introducing Drools Expert
2
java-pe.blogspot.com
05.Juni 2013
Was ist Drools?
Fakten
www.jboss.org/drools/
Apache Software License
(ASL)
5.5.0 (13. November 2012)
aktuelle Betaversion: 6.0.0.Beta2
JBoss Red Hat
Wiki, Forum, Mailing Liste,
Blog, Chat
• Web
• Entwickler
• Version
• Lizenz
• Community
3
java-pe.blogspot.com
05.Juni 2013
Module
Was ist Drools?
Process / Workflow
Business Rule Manager
Rule Engine
Event Processing /
Temporal Reasoning
Automated Planning
Expert
Guvnor
jBPM 5
Fusion
OptaPlanner
• Core Engine
• JSR-94
• Implementierung der Knowledge
Base, Session und des Reasoning
über Regeln und Fakten
Drools Expert
Thema dieser
Präsentation
4
java-pe.blogspot.com
05.Juni 2013
Module
Was ist Drools?
Process / Workflow
Business Rule Manager
Rule Engine
Event Processing /
Temporal Reasoning
Automated Planning
Expert
Guvnor
jBPM 5
Fusion
OptaPlanner
• Repository zum Speichern und
Verwalten von Regeln,
Prozesses, Modellen und
anderen Entitäten
• Benutzerverwaltung
• Sammlung von graphischen
Benutzerschnittstellen
• Versionsmanagement
Drools Guvnor
5
java-pe.blogspot.com
05.Juni 2013
Module
Process / Workflow
Business Rule Manager
Rule Engine
Event Processing /
Temporal Reasoning
Automated Planning
Expert
Guvnor
jBPM 5
Fusion
OptaPlanner
Was ist Drools?
• ehemals Drools Flow (jetzt
eigenständig www.jboss.org/jbpm/)
• Business Process Management
• basiert auf BPMN 2.0
Spezifikation
• Unterstützung des vollständigen
Prozess-Lebenszyklus (Entwurf,
Ausführung, Verwaltung und
Ablöse)
• Graphische Schnittstelle
jBPM (Drools Flow)
6
java-pe.blogspot.com
05.Juni 2013
Was ist Drools?
Module
Process / Workflow
Business Rule Manager
Rule Engine
Event Processing /
Temporal Reasoning
Automated Planning
Expert
Guvnor
jBPM 5
Fusion
OptaPlanner
• Complex Event Processing (CEP)
• Ereignisse als zentrales Element
von Drools
• Selektion von interessanten
Ereignissen und Ereignismustern
• Triggern der Ausführung von
Aktionen (bspw. Prozessen)
aufgrund von Ereignismustern
Drools Fusion
7
java-pe.blogspot.com
05.Juni 2013
Was ist Drools?
Module
Process / Workflow
Business Rule Manager
Rule Engine
Event Processing /
Temporal Reasoning
Automated Planning
Expert
Guvnor
jBPM 5
Fusion
OptaPlanner
• ehemals Drools Planner (jetzt
eigenständig www.optaplanner.org)
• Planning Engine für NP-
vollständige Constraint
Satisfaction Problems (CSP)
• vielfältige Anwendungs-
möglichkeiten
Optaplanner (Drools Planner)
8
java-pe.blogspot.com
05.Juni 2013
BeispielszenarioExpert
! Condition Monitoring in Sensornetzen
 Messung und Analyse von physikalischen Größen
 Flexible Anpassung des Monitoring und der Analyse
 Ständige Generierung neuer Daten (Fakten)
Wenn ein Sensorwert den Schwellwert von 50.0
übersteigt dann gib eine Fehlermeldung aus
Regel 1
Sensor 1
Temperatursensor [Kelvin], Messfrequenz 5 Messungen / s,
Messunsicherheit +/- 0,01 Kelvin
Sensor 2
Temperatursensor [Celsius], Messfrequenz 10 Messungen / s,
Messunsicherheit +/- 0,05 Celsius
!
9
java-pe.blogspot.com
05.Juni 2013
Attribute
SensorId (Wer), Wert (Was), Zeitpunkt
(Wann)
Fakt Sensorwerte
Modellierung und AusführungExpert
Wenn ein Sensorwert den Schwellwert
von 50.0 übersteigt dann gib eine
Fehlermeldung aus
Regel 1
rule "Critical value"
when
SensorValue ( value > 50.0 )
then
System.err.println("Critical sensor value state.");
end
Rule
Syntax
when [Bedingung] then [Aktion]
Dialekt
MVEL (MVFLEX Expresison Language)
Fact
„Informationsträger“
i. d. R. Modellierung in Java als POJO
!
10
java-pe.blogspot.com
05.Juni 2013
Modellierung und AusführungExpert
Modellierung
notwendig
Paket und Import
optional
Regel
Angabe beliebig vieler
Regeln möglich
Ausführung
KnowledgeBuilder kbuilder =
KnowledgeBuilderFactory
.newKnowledgeBuilder();
KnowledgeBuilder
Erstellung der Knowledge Base
kbuilder.add(ResourceFactory.
newClassPathResource(
"/sensor_value_rule.drl",
ResourceType.DRL);
Ressourcen
KnowledgeBase kbase =
KnowledgeBaseFactory.
newKnowledgeBase();
kbase.addKnowledgePackages
(kbuilder.
getKnowledgePackages());
KnowledgeBase
11
java-pe.blogspot.com
05.Juni 2013
Modellierung und AusführungExpert
StatefulKnowledgeSession ksession =
kbase.newStatefulKnowledgeSession();
StatefulSession
Ausführung
Erstellung und Aktualisierung einer Session
SensorValue<Double> v = simulator.nextValue();
ksession.insert(v);
Update session
Regelnfeuern
ksession.fireAllRules()
? Wie können wir den kritischen Wert ausgeben?
Variablen
Fakten und Eigenschaften
können Variablen
zugewiesen und somit
wiederverwendet werden
12
java-pe.blogspot.com
05.Juni 2013
Kommunikation mit der Applikation
Globale Variablen und ListenerExpert
! Flexibilisierung und Kommunikation mittels globalen Variablen
Schlüsselwort global
• Deklaration von globale
Variablen ähnlich Deklaration
von Variablen in Java
• Auslesen in Bedingungen,
Aktionen und über die Session
(WorkingMemory Interface)
möglich
• Zuweisung von globalen
Variablen in Aktion oder über
die Session möglich
! Regeln stehen für sich (bspw. Grenzwert in der Regel)
?
Wie können wir einen solchen Wert von der Applikation in
die Regel injizieren?
 Wie können wir mit der Applikation kommunizieren?
Objekt-
referenz
in Variable
?
13
java-pe.blogspot.com
05.Juni 2013
Kommunikation mit der Applikation
Globale Variablen und ListenerExpert
! Globale Variablen bieten Missbrauch-Potential

Keine Verarbeitung von Änderungen an globalen
Variablen  Konfigurationen von konstanten Fakten

Kein Datenaustausch zwischen Regeln mittels globalen
Variablen  Regelevaluation folgt keinem Prozess

Keine Zuweisung von globalen Variablen aus einer Regel
heraus Event-Handler aus der Applikation in die Regel
injizieren
ksession.setGlobal("SENSOR_LIMIT", 50.0);
ksession.setGlobal("LOGGER", LOGGER);
…
! Injizieren von Fähigkeiten und Konstanten in globale Variablen
!
14
java-pe.blogspot.com
05.Juni 2013
Kommunikation mit der Applikation
Globale Variablen und ListenerExpert
! Zuhören was die Rule-Engine so treibt
 Drools beinhaltet Listener für Änderungen an Agenda und WorkingMemory
Quelle: Drools Dokumentation
 Erweiterte Testmöglichkeiten durch den AgendaEventListener
• Aufstellung der Sequenz
der Regelaktivierung
• Prüfung ob Sequenz der
erwarteten Regelfolge
entspricht
15
java-pe.blogspot.com
05.Juni 2013
 Hinzufügen neuer Sensorwerte führt zu Überlauf im Speicher
! Sensorwerte ändern sich über die Zeit
? Wie teilen wir mit, dass ein Fakt sich geändert ist?
Sensor 1
000.985.322
Sensor 2
001.234.185
t
! FactHandler als Referenz auf einen Fakt im WorkingMemory
Veränderungen von Fakten über die Zeit
FactHandlerExpert
Knowledge Session
Fakten
Working Memory
insert(fact)
:FactHandler
?
16
java-pe.blogspot.com
05.Juni 2013
Sensor 1
000.985.322
Sensor 2
001.234.185
t
Veränderungen von Fakten über die Zeit
FactHandlerExpert
Verarbeitung der Aktualisierung auf
Applikationsseite
Aktualisierung im Working Memory
Working Memory
Fakt 1
SensorValue
001.234.185
Fakt 2
SensorValue
000.985.322
Schluss-
folgerung
! Sensorwerte ändern sich über die Zeit
17
java-pe.blogspot.com
05.Juni 2013
Expert
Wenn ein Sensor innerhalb von zehn Sekunden bei einem Produkt mindestens dreimal einen kritischen
Sensorwert meldet dann leite den Ausschuss des Produktes ein
Regel „Issue broken piece“
Sensor 1
000.985.322
Sensor 2
001.234.185
t
Produkt „BR042111“ Produkt „KO98552“ Produkt „BR042111“
! Neue Fakten Product und Sensor
 Sensor hat eine id und weitere Meta-Eigenschaften
 Product hat eine type, status und start und end
Erweiterte Regelkunde
18
java-pe.blogspot.com
05.Juni 2013
Regel wird für aktualisierte
SensorValue Fakten
angewendet
Expert
Wenn ein Sensor innerhalb von zehn Sekunden bei einem Produkt mindestens dreimal einen kritischen
Sensorwert meldet dann leite den Ausschuss des Produktes ein
Regel „Issue broken piece“
? Wie kann Zeit innerhalb von Regeln abgebildet werden?
naiverAnsatz
Entferne veraltete Sensordaten aus dem WorkingMemory
Zustandsänderungen
können während der
Evaluation von Regeln
erfolgen
 Aktuellen Zeitpunkt als Fakt im WorkingMemory abbilden
Erweiterte Regelkunde
!
!
19
java-pe.blogspot.com
05.Juni 2013
! Zeitpunkt konstant während der Schlussfolgerung

Aktualisierung vor jedem Feuern der Regeln
Expert
Wenn ein Sensor innerhalb von zehn Sekunden bei einem Produkt mindestens dreimal einen kritischen
Sensorwert meldet dann leite den Ausschuss des Produktes ein
Regel „Issue broken piece“
? Wie kann Zeit innerhalb von Regeln abgebildet werden?
AbbildungalsFakt
…
Prüfe für jeden SensorValue, ob das
Alter des Wertes länger als zehn
Sekunden zurückliegt
Zu jeden Zeitpunkt sollte
nur ein PointInTime Fakt
existieren
Erweiterte Regelkunde
?
20
java-pe.blogspot.com
05.Juni 2013
Wenn ein Sensor innerhalb von zehn Sekunden bei einem Produkt mindestens dreimal einen kritischen
Sensorwert meldet dann leite den Ausschuss des Produktes ein
Regel „Issue broken piece“
? Wie kann Zeit innerhalb von Regeln abgebildet werden?
SingletonPointInTime
salience ermöglicht die Priorisierung von
Regeln
Bedingung zur Festlegung, ob mehr als
ein PointInTime Fakt existiert
Bestimme denjenigen Fakt, der einen
älteren Zeitpunkt darstellt
Expert Erweiterte Regelkunde
21
java-pe.blogspot.com
05.Juni 2013
Wenn ein Sensor innerhalb von zehn Sekunden bei einem Produkt mindestens dreimal einen kritischen
Sensorwert meldet dann leite den Ausschuss des Produktes ein
Regel „Issue broken piece“
?
Wie kann die Beziehung zwischen Sensorwert und Produkt
abgeleitet werden?
! Deklaration IsAssignedToProduct

Fakt zur Beschreibung der Beziehung
zwischen Product und SensorValue
 Erweiterung der Fakten durch Regeln
! Fakten müssen „aufgeräumt“ werden
Type-Deklaration in Regeln
ermöglicht die einfache Abbildung
von Meta-Informationen die nur für
das Reasoning benötigt werden.
Expert Erweiterte Regelkunde
!
22
java-pe.blogspot.com
05.Juni 2013
Wenn ein Sensor innerhalb von zehn Sekunden bei einem Produkt mindestens dreimal einen kritischen
Sensorwert meldet dann leite den Ausschuss des Produktes ein
Regel „Issue broken piece“
Expert Erweiterte Regelkunde
Identifikation von defekten Bauteilen
Ausgangsfakten bestimmen
Ermittlung der Anzahl derjenigen
Sensorwerte, die kritisch sind und die
einem Produkt „IN PRODUCTION“
zugewiesen sind
Aktualisierung des Status
! IsCritical Fakt zur Auszeichnung eines Sensorwertes als kritisch
(Meta-Information eines Sensorwertes)
23
java-pe.blogspot.com
05.Juni 2013
insertLogical übernimmt diese Aufgabe für uns
Expert Erweiterte Regelkunde
 Hinzugefügt Fakten sollten zurückgezogen (retracted) werden
! Was bisher nur am Rande gesagt wurde
…
?
Aus welchem Grund muss der Meta-Fakt IsCritical nicht zurückgezogen
werden?
!
Drools Bedingungen unterstützen die „Prädikatenlogik erster
Stufe“ es ist noch deutlich mehr möglich als das Gezeigte
24
java-pe.blogspot.com
05.Juni 2013
Expert Entscheidungstabellen
!
Ziel von Entscheidungstabellen
übersichtlich, vollständig und widerspruchsfrei Darstellung komplexer
Abhängigkeiten zwischen mehreren Bedingungen und den auszuführenden
Aktionen
Rule Set
Definition der
Eigenschaften
und Typen
Rule Table
Zusammenhang
Bedingungen
und Aktionen
25
java-pe.blogspot.com
05.Juni 2013
Expert Entscheidungstabellen
!
Ziel von Entscheidungstabellen
übersichtlich, vollständig und widerspruchsfrei Darstellung komplexer
Abhängigkeiten zwischen mehreren Bedingungen und den auszuführenden
Aktionen
KnowledgeBuilder kbuilder =
KnowledgeBuilderFactory
.newKnowledgeBuilder();
KnowledgeBuilder
Ausführung
Erstellung der Knowledge Base
kbuilder.add(ResourceFactory.
newClassPathResource(
"/dt_example.xls",
ResourceType.DTABLE, dtc);
Ressourcen
KnowledgeBase kbase =
KnowledgeBaseFactory.
newKnowledgeBase();
kbase.addKnowledgePackages
(kbuilder.
getKnowledgePackages());
KnowledgeBase
!
26
java-pe.blogspot.com
05.Juni 2013
Expert Domänenspezifische Sprachen für Regeln
Regel in domänenspezifischer Sprache
When the value of a SensorValue is greater
than 50.0 then show an error dialog with
the message “Critical value identified“
Regel in DRL
rule "Critical value"
when
SensorValue ( value > 50.0 )
then
System.err.println("Critical value identified");
end
! Transformation von DSL formulierten Regeln in DRL
Formulierung der Transformationsregeln
Bedingung
Konsequenz / Aktion
27
java-pe.blogspot.com
05.Juni 2013
Expert Domänenspezifische Sprachen für Regeln
! Transformation von DSL formulierten Regeln in DRL
Formulierung der Regel in Domain Specific Language Rules
Ausführung
Erstellung der Knowledge Base
KnowledgeBuilder
Ressourcen
KnowledgeBase
(optional) nur für das PlugIn benötigt
!
28
java-pe.blogspot.com
05.Juni 2013
Expert Anfragenunterstützung
!
Queries ermöglichen die Abfrage von geschlussfolgerten
Informationen
Gesucht sind alle Sensoren, die „outside“ bei 30.0 eingesetzt werden können
Festlegung Name und Parameter
Collection-Support (contains)
29
java-pe.blogspot.com
05.Juni 2013
Anfrageparametrisierung durch Instanz
eines Environments
Expert Anfragenunterstützung
!
Queries ermöglichen die Abfrage von geschlussfolgerten
Informationen
Gesucht sind alle Sensoren, die „outside“ bei 30.0 eingesetzt werden können
30
java-pe.blogspot.com
05.Juni 2013
Expert Zusammenfassung
Funktionalitäten
JSR-94, schnelle Rete Implementierung
Formulierung von domänenspezifischen Sprachen
für die Regelerstellung wird unterstützt
weitreichende Unterstützung der Regelmodellierung
in Entscheidungstabellen umgesetzt (bisher kein .xlsx)
Prädikatenlogik erster Ordnung, komplexe
Formulierungen
• Rule-Engine
• Rule-Language
• Decision Tables
• DSL / DSLR
• Queries
Query-Schnittstelle vorhanden, Abfrage der
Faktenlage nach Schlussfolgerung
aber, …
• Spring
• Functions
• XML RL
• Drools API
• Guvnor
• Fusion
• …

Weitere ähnliche Inhalte

Andere mochten auch

Robuster optischer Sensor mit hoher Tast- und Reichweite für anspruchsvolle A...
Robuster optischer Sensor mit hoher Tast- und Reichweite für anspruchsvolle A...Robuster optischer Sensor mit hoher Tast- und Reichweite für anspruchsvolle A...
Robuster optischer Sensor mit hoher Tast- und Reichweite für anspruchsvolle A...ifm electronic gmbh
 
Le web ouvert avec Firefox OS et Firefox - Linux Meetup Montréal - 2014-08-05
Le web ouvert avec Firefox OS et Firefox - Linux Meetup Montréal - 2014-08-05Le web ouvert avec Firefox OS et Firefox - Linux Meetup Montréal - 2014-08-05
Le web ouvert avec Firefox OS et Firefox - Linux Meetup Montréal - 2014-08-05Frédéric Harper
 
Nicolas Nova - des objets sur internet?
Nicolas Nova - des objets sur internet?Nicolas Nova - des objets sur internet?
Nicolas Nova - des objets sur internet?Genève Lab
 
Epidémiologie et dépistage du cancer colo rectal
Epidémiologie et dépistage du cancer colo rectalEpidémiologie et dépistage du cancer colo rectal
Epidémiologie et dépistage du cancer colo rectalVincent Di Martino
 
Integriertes Sicherheitssystem für mobile Geraete
Integriertes Sicherheitssystem für mobile GeraeteIntegriertes Sicherheitssystem für mobile Geraete
Integriertes Sicherheitssystem für mobile GeraeteSven Wohlgemuth
 
30322560 02 001(Me032904)
30322560 02 001(Me032904)30322560 02 001(Me032904)
30322560 02 001(Me032904)guest7c57b9a
 
Neuer, besonders kompakter Durchflusssensor für exaktes Messen von Flüssigkeiten
Neuer, besonders kompakter Durchflusssensor für exaktes Messen von FlüssigkeitenNeuer, besonders kompakter Durchflusssensor für exaktes Messen von Flüssigkeiten
Neuer, besonders kompakter Durchflusssensor für exaktes Messen von Flüssigkeitenifm electronic gmbh
 
Sensor de nível de líquido Eurosens Dizzi: manual de instalação
Sensor de nível de líquido Eurosens Dizzi: manual de instalaçãoSensor de nível de líquido Eurosens Dizzi: manual de instalação
Sensor de nível de líquido Eurosens Dizzi: manual de instalaçãoPawel Elenski
 
Sensores y Acondicionadores
Sensores y AcondicionadoresSensores y Acondicionadores
Sensores y AcondicionadoresMaría Dovale
 
Distribucion de valvulas variable vv ti toyota
Distribucion de valvulas variable vv ti toyotaDistribucion de valvulas variable vv ti toyota
Distribucion de valvulas variable vv ti toyotaHenrry Gutierrez
 
Sensores en el automovil
Sensores en el automovilSensores en el automovil
Sensores en el automoviltubalcain2
 

Andere mochten auch (18)

Robuster optischer Sensor mit hoher Tast- und Reichweite für anspruchsvolle A...
Robuster optischer Sensor mit hoher Tast- und Reichweite für anspruchsvolle A...Robuster optischer Sensor mit hoher Tast- und Reichweite für anspruchsvolle A...
Robuster optischer Sensor mit hoher Tast- und Reichweite für anspruchsvolle A...
 
Le web ouvert avec Firefox OS et Firefox - Linux Meetup Montréal - 2014-08-05
Le web ouvert avec Firefox OS et Firefox - Linux Meetup Montréal - 2014-08-05Le web ouvert avec Firefox OS et Firefox - Linux Meetup Montréal - 2014-08-05
Le web ouvert avec Firefox OS et Firefox - Linux Meetup Montréal - 2014-08-05
 
Inyeecion Boch
Inyeecion BochInyeecion Boch
Inyeecion Boch
 
Nicolas Nova - des objets sur internet?
Nicolas Nova - des objets sur internet?Nicolas Nova - des objets sur internet?
Nicolas Nova - des objets sur internet?
 
Epidémiologie et dépistage du cancer colo rectal
Epidémiologie et dépistage du cancer colo rectalEpidémiologie et dépistage du cancer colo rectal
Epidémiologie et dépistage du cancer colo rectal
 
Integriertes Sicherheitssystem für mobile Geraete
Integriertes Sicherheitssystem für mobile GeraeteIntegriertes Sicherheitssystem für mobile Geraete
Integriertes Sicherheitssystem für mobile Geraete
 
30322560 02 001(Me032904)
30322560 02 001(Me032904)30322560 02 001(Me032904)
30322560 02 001(Me032904)
 
Neuheitenkatalog 2014
Neuheitenkatalog 2014Neuheitenkatalog 2014
Neuheitenkatalog 2014
 
Neuer, besonders kompakter Durchflusssensor für exaktes Messen von Flüssigkeiten
Neuer, besonders kompakter Durchflusssensor für exaktes Messen von FlüssigkeitenNeuer, besonders kompakter Durchflusssensor für exaktes Messen von Flüssigkeiten
Neuer, besonders kompakter Durchflusssensor für exaktes Messen von Flüssigkeiten
 
Sensor de nível de líquido Eurosens Dizzi: manual de instalação
Sensor de nível de líquido Eurosens Dizzi: manual de instalaçãoSensor de nível de líquido Eurosens Dizzi: manual de instalação
Sensor de nível de líquido Eurosens Dizzi: manual de instalação
 
Sensores 02 demo
Sensores 02 demoSensores 02 demo
Sensores 02 demo
 
10
1010
10
 
Efi 02
Efi 02Efi 02
Efi 02
 
Sensores y Acondicionadores
Sensores y AcondicionadoresSensores y Acondicionadores
Sensores y Acondicionadores
 
Sensores de un_motor
Sensores de un_motorSensores de un_motor
Sensores de un_motor
 
Sensores y E.C.U.
Sensores y E.C.U.Sensores y E.C.U.
Sensores y E.C.U.
 
Distribucion de valvulas variable vv ti toyota
Distribucion de valvulas variable vv ti toyotaDistribucion de valvulas variable vv ti toyota
Distribucion de valvulas variable vv ti toyota
 
Sensores en el automovil
Sensores en el automovilSensores en el automovil
Sensores en el automovil
 

Ähnlich wie 130605 blog - drools

Best Practices für TDD in JavaScript
Best Practices für TDD in JavaScriptBest Practices für TDD in JavaScript
Best Practices für TDD in JavaScriptSebastian Springer
 
Real Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon DickmeißReal Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon DickmeißOPITZ CONSULTING Deutschland
 
Bkr Workflow Oeffentlich
Bkr Workflow OeffentlichBkr Workflow Oeffentlich
Bkr Workflow OeffentlichRalf Ruethlein
 
Agiles Testing
Agiles TestingAgiles Testing
Agiles TestingNEOMO GmbH
 
Monitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-AnwendungenMonitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-Anwendungengedoplan
 
Unit testing mit Javascript
Unit testing mit JavascriptUnit testing mit Javascript
Unit testing mit Javascriptjoergreichert
 
OSMC 2010 | Monitoring mit Shinken by Gerhard Laußer
OSMC 2010 | Monitoring mit Shinken by Gerhard LaußerOSMC 2010 | Monitoring mit Shinken by Gerhard Laußer
OSMC 2010 | Monitoring mit Shinken by Gerhard LaußerNETWAYS
 
OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...
OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...
OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...NETWAYS
 
Mehr Sicherheit durch Automatisierung
Mehr Sicherheit durch AutomatisierungMehr Sicherheit durch Automatisierung
Mehr Sicherheit durch AutomatisierungOPEN KNOWLEDGE GmbH
 
2009 03 17 Spring101
2009 03 17 Spring1012009 03 17 Spring101
2009 03 17 Spring101gueste4be40
 
Einführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungChristian Baranowski
 
SplunkLive! Zürich 2016 - Use Case Helvetia
SplunkLive! Zürich 2016 - Use Case HelvetiaSplunkLive! Zürich 2016 - Use Case Helvetia
SplunkLive! Zürich 2016 - Use Case HelvetiaGeorg Knon
 
SplunkLive! Frankfurt 2016 - Helvetia Use Case
SplunkLive! Frankfurt 2016 - Helvetia Use CaseSplunkLive! Frankfurt 2016 - Helvetia Use Case
SplunkLive! Frankfurt 2016 - Helvetia Use CaseSplunk
 
SplunkLive! Zürich 2016 - Use Case Helvetia
SplunkLive! Zürich 2016 - Use Case HelvetiaSplunkLive! Zürich 2016 - Use Case Helvetia
SplunkLive! Zürich 2016 - Use Case HelvetiaSplunk
 
IT Workplace Performance - Anwenderzufriedenheit messbar machen
IT Workplace Performance - Anwenderzufriedenheit messbar machenIT Workplace Performance - Anwenderzufriedenheit messbar machen
IT Workplace Performance - Anwenderzufriedenheit messbar machenBeck et al. GmbH
 
OSMC 2011 | Performance-Vergleich von Nagios Monitoring Lösungen by Christoph...
OSMC 2011 | Performance-Vergleich von Nagios Monitoring Lösungen by Christoph...OSMC 2011 | Performance-Vergleich von Nagios Monitoring Lösungen by Christoph...
OSMC 2011 | Performance-Vergleich von Nagios Monitoring Lösungen by Christoph...NETWAYS
 
Streaming Plattformen und die Qual der Wahl
Streaming Plattformen und die Qual der WahlStreaming Plattformen und die Qual der Wahl
Streaming Plattformen und die Qual der WahlMatthias Niehoff
 
Reaktive Applikationen mit Scala, Play und Akka
Reaktive Applikationen mit Scala, Play und AkkaReaktive Applikationen mit Scala, Play und Akka
Reaktive Applikationen mit Scala, Play und AkkaMarkus Klink
 

Ähnlich wie 130605 blog - drools (20)

Best Practices für TDD in JavaScript
Best Practices für TDD in JavaScriptBest Practices für TDD in JavaScript
Best Practices für TDD in JavaScript
 
Real Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon DickmeißReal Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
 
Bkr Workflow Oeffentlich
Bkr Workflow OeffentlichBkr Workflow Oeffentlich
Bkr Workflow Oeffentlich
 
Agiles Testing
Agiles TestingAgiles Testing
Agiles Testing
 
Monitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-AnwendungenMonitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-Anwendungen
 
Unit testing mit Javascript
Unit testing mit JavascriptUnit testing mit Javascript
Unit testing mit Javascript
 
OSMC 2010 | Monitoring mit Shinken by Gerhard Laußer
OSMC 2010 | Monitoring mit Shinken by Gerhard LaußerOSMC 2010 | Monitoring mit Shinken by Gerhard Laußer
OSMC 2010 | Monitoring mit Shinken by Gerhard Laußer
 
Definition of Ready
Definition of ReadyDefinition of Ready
Definition of Ready
 
OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...
OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...
OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...
 
Mehr Sicherheit durch Automatisierung
Mehr Sicherheit durch AutomatisierungMehr Sicherheit durch Automatisierung
Mehr Sicherheit durch Automatisierung
 
2009 03 17 Spring101
2009 03 17 Spring1012009 03 17 Spring101
2009 03 17 Spring101
 
Einführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software Entwicklung
 
SplunkLive! Zürich 2016 - Use Case Helvetia
SplunkLive! Zürich 2016 - Use Case HelvetiaSplunkLive! Zürich 2016 - Use Case Helvetia
SplunkLive! Zürich 2016 - Use Case Helvetia
 
SplunkLive! Frankfurt 2016 - Helvetia Use Case
SplunkLive! Frankfurt 2016 - Helvetia Use CaseSplunkLive! Frankfurt 2016 - Helvetia Use Case
SplunkLive! Frankfurt 2016 - Helvetia Use Case
 
SplunkLive! Zürich 2016 - Use Case Helvetia
SplunkLive! Zürich 2016 - Use Case HelvetiaSplunkLive! Zürich 2016 - Use Case Helvetia
SplunkLive! Zürich 2016 - Use Case Helvetia
 
IT Workplace Performance - Anwenderzufriedenheit messbar machen
IT Workplace Performance - Anwenderzufriedenheit messbar machenIT Workplace Performance - Anwenderzufriedenheit messbar machen
IT Workplace Performance - Anwenderzufriedenheit messbar machen
 
OSMC 2011 | Performance-Vergleich von Nagios Monitoring Lösungen by Christoph...
OSMC 2011 | Performance-Vergleich von Nagios Monitoring Lösungen by Christoph...OSMC 2011 | Performance-Vergleich von Nagios Monitoring Lösungen by Christoph...
OSMC 2011 | Performance-Vergleich von Nagios Monitoring Lösungen by Christoph...
 
Streaming Plattformen und die Qual der Wahl
Streaming Plattformen und die Qual der WahlStreaming Plattformen und die Qual der Wahl
Streaming Plattformen und die Qual der Wahl
 
Reaktive Applikationen mit Scala, Play und Akka
Reaktive Applikationen mit Scala, Play und AkkaReaktive Applikationen mit Scala, Play und Akka
Reaktive Applikationen mit Scala, Play und Akka
 
A/B Testing mit Node.js
A/B Testing mit Node.jsA/B Testing mit Node.js
A/B Testing mit Node.js
 

130605 blog - drools

  • 1. java-pe.blogspot.com 05.Juni 2013 Business Logic Integration Platform Introducing Drools Expert
  • 2. 2 java-pe.blogspot.com 05.Juni 2013 Was ist Drools? Fakten www.jboss.org/drools/ Apache Software License (ASL) 5.5.0 (13. November 2012) aktuelle Betaversion: 6.0.0.Beta2 JBoss Red Hat Wiki, Forum, Mailing Liste, Blog, Chat • Web • Entwickler • Version • Lizenz • Community
  • 3. 3 java-pe.blogspot.com 05.Juni 2013 Module Was ist Drools? Process / Workflow Business Rule Manager Rule Engine Event Processing / Temporal Reasoning Automated Planning Expert Guvnor jBPM 5 Fusion OptaPlanner • Core Engine • JSR-94 • Implementierung der Knowledge Base, Session und des Reasoning über Regeln und Fakten Drools Expert Thema dieser Präsentation
  • 4. 4 java-pe.blogspot.com 05.Juni 2013 Module Was ist Drools? Process / Workflow Business Rule Manager Rule Engine Event Processing / Temporal Reasoning Automated Planning Expert Guvnor jBPM 5 Fusion OptaPlanner • Repository zum Speichern und Verwalten von Regeln, Prozesses, Modellen und anderen Entitäten • Benutzerverwaltung • Sammlung von graphischen Benutzerschnittstellen • Versionsmanagement Drools Guvnor
  • 5. 5 java-pe.blogspot.com 05.Juni 2013 Module Process / Workflow Business Rule Manager Rule Engine Event Processing / Temporal Reasoning Automated Planning Expert Guvnor jBPM 5 Fusion OptaPlanner Was ist Drools? • ehemals Drools Flow (jetzt eigenständig www.jboss.org/jbpm/) • Business Process Management • basiert auf BPMN 2.0 Spezifikation • Unterstützung des vollständigen Prozess-Lebenszyklus (Entwurf, Ausführung, Verwaltung und Ablöse) • Graphische Schnittstelle jBPM (Drools Flow)
  • 6. 6 java-pe.blogspot.com 05.Juni 2013 Was ist Drools? Module Process / Workflow Business Rule Manager Rule Engine Event Processing / Temporal Reasoning Automated Planning Expert Guvnor jBPM 5 Fusion OptaPlanner • Complex Event Processing (CEP) • Ereignisse als zentrales Element von Drools • Selektion von interessanten Ereignissen und Ereignismustern • Triggern der Ausführung von Aktionen (bspw. Prozessen) aufgrund von Ereignismustern Drools Fusion
  • 7. 7 java-pe.blogspot.com 05.Juni 2013 Was ist Drools? Module Process / Workflow Business Rule Manager Rule Engine Event Processing / Temporal Reasoning Automated Planning Expert Guvnor jBPM 5 Fusion OptaPlanner • ehemals Drools Planner (jetzt eigenständig www.optaplanner.org) • Planning Engine für NP- vollständige Constraint Satisfaction Problems (CSP) • vielfältige Anwendungs- möglichkeiten Optaplanner (Drools Planner)
  • 8. 8 java-pe.blogspot.com 05.Juni 2013 BeispielszenarioExpert ! Condition Monitoring in Sensornetzen  Messung und Analyse von physikalischen Größen  Flexible Anpassung des Monitoring und der Analyse  Ständige Generierung neuer Daten (Fakten) Wenn ein Sensorwert den Schwellwert von 50.0 übersteigt dann gib eine Fehlermeldung aus Regel 1 Sensor 1 Temperatursensor [Kelvin], Messfrequenz 5 Messungen / s, Messunsicherheit +/- 0,01 Kelvin Sensor 2 Temperatursensor [Celsius], Messfrequenz 10 Messungen / s, Messunsicherheit +/- 0,05 Celsius !
  • 9. 9 java-pe.blogspot.com 05.Juni 2013 Attribute SensorId (Wer), Wert (Was), Zeitpunkt (Wann) Fakt Sensorwerte Modellierung und AusführungExpert Wenn ein Sensorwert den Schwellwert von 50.0 übersteigt dann gib eine Fehlermeldung aus Regel 1 rule "Critical value" when SensorValue ( value > 50.0 ) then System.err.println("Critical sensor value state."); end Rule Syntax when [Bedingung] then [Aktion] Dialekt MVEL (MVFLEX Expresison Language) Fact „Informationsträger“ i. d. R. Modellierung in Java als POJO !
  • 10. 10 java-pe.blogspot.com 05.Juni 2013 Modellierung und AusführungExpert Modellierung notwendig Paket und Import optional Regel Angabe beliebig vieler Regeln möglich Ausführung KnowledgeBuilder kbuilder = KnowledgeBuilderFactory .newKnowledgeBuilder(); KnowledgeBuilder Erstellung der Knowledge Base kbuilder.add(ResourceFactory. newClassPathResource( "/sensor_value_rule.drl", ResourceType.DRL); Ressourcen KnowledgeBase kbase = KnowledgeBaseFactory. newKnowledgeBase(); kbase.addKnowledgePackages (kbuilder. getKnowledgePackages()); KnowledgeBase
  • 11. 11 java-pe.blogspot.com 05.Juni 2013 Modellierung und AusführungExpert StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); StatefulSession Ausführung Erstellung und Aktualisierung einer Session SensorValue<Double> v = simulator.nextValue(); ksession.insert(v); Update session Regelnfeuern ksession.fireAllRules() ? Wie können wir den kritischen Wert ausgeben? Variablen Fakten und Eigenschaften können Variablen zugewiesen und somit wiederverwendet werden
  • 12. 12 java-pe.blogspot.com 05.Juni 2013 Kommunikation mit der Applikation Globale Variablen und ListenerExpert ! Flexibilisierung und Kommunikation mittels globalen Variablen Schlüsselwort global • Deklaration von globale Variablen ähnlich Deklaration von Variablen in Java • Auslesen in Bedingungen, Aktionen und über die Session (WorkingMemory Interface) möglich • Zuweisung von globalen Variablen in Aktion oder über die Session möglich ! Regeln stehen für sich (bspw. Grenzwert in der Regel) ? Wie können wir einen solchen Wert von der Applikation in die Regel injizieren?  Wie können wir mit der Applikation kommunizieren? Objekt- referenz in Variable ?
  • 13. 13 java-pe.blogspot.com 05.Juni 2013 Kommunikation mit der Applikation Globale Variablen und ListenerExpert ! Globale Variablen bieten Missbrauch-Potential  Keine Verarbeitung von Änderungen an globalen Variablen  Konfigurationen von konstanten Fakten  Kein Datenaustausch zwischen Regeln mittels globalen Variablen  Regelevaluation folgt keinem Prozess  Keine Zuweisung von globalen Variablen aus einer Regel heraus Event-Handler aus der Applikation in die Regel injizieren ksession.setGlobal("SENSOR_LIMIT", 50.0); ksession.setGlobal("LOGGER", LOGGER); … ! Injizieren von Fähigkeiten und Konstanten in globale Variablen !
  • 14. 14 java-pe.blogspot.com 05.Juni 2013 Kommunikation mit der Applikation Globale Variablen und ListenerExpert ! Zuhören was die Rule-Engine so treibt  Drools beinhaltet Listener für Änderungen an Agenda und WorkingMemory Quelle: Drools Dokumentation  Erweiterte Testmöglichkeiten durch den AgendaEventListener • Aufstellung der Sequenz der Regelaktivierung • Prüfung ob Sequenz der erwarteten Regelfolge entspricht
  • 15. 15 java-pe.blogspot.com 05.Juni 2013  Hinzufügen neuer Sensorwerte führt zu Überlauf im Speicher ! Sensorwerte ändern sich über die Zeit ? Wie teilen wir mit, dass ein Fakt sich geändert ist? Sensor 1 000.985.322 Sensor 2 001.234.185 t ! FactHandler als Referenz auf einen Fakt im WorkingMemory Veränderungen von Fakten über die Zeit FactHandlerExpert Knowledge Session Fakten Working Memory insert(fact) :FactHandler ?
  • 16. 16 java-pe.blogspot.com 05.Juni 2013 Sensor 1 000.985.322 Sensor 2 001.234.185 t Veränderungen von Fakten über die Zeit FactHandlerExpert Verarbeitung der Aktualisierung auf Applikationsseite Aktualisierung im Working Memory Working Memory Fakt 1 SensorValue 001.234.185 Fakt 2 SensorValue 000.985.322 Schluss- folgerung ! Sensorwerte ändern sich über die Zeit
  • 17. 17 java-pe.blogspot.com 05.Juni 2013 Expert Wenn ein Sensor innerhalb von zehn Sekunden bei einem Produkt mindestens dreimal einen kritischen Sensorwert meldet dann leite den Ausschuss des Produktes ein Regel „Issue broken piece“ Sensor 1 000.985.322 Sensor 2 001.234.185 t Produkt „BR042111“ Produkt „KO98552“ Produkt „BR042111“ ! Neue Fakten Product und Sensor  Sensor hat eine id und weitere Meta-Eigenschaften  Product hat eine type, status und start und end Erweiterte Regelkunde
  • 18. 18 java-pe.blogspot.com 05.Juni 2013 Regel wird für aktualisierte SensorValue Fakten angewendet Expert Wenn ein Sensor innerhalb von zehn Sekunden bei einem Produkt mindestens dreimal einen kritischen Sensorwert meldet dann leite den Ausschuss des Produktes ein Regel „Issue broken piece“ ? Wie kann Zeit innerhalb von Regeln abgebildet werden? naiverAnsatz Entferne veraltete Sensordaten aus dem WorkingMemory Zustandsänderungen können während der Evaluation von Regeln erfolgen  Aktuellen Zeitpunkt als Fakt im WorkingMemory abbilden Erweiterte Regelkunde ! !
  • 19. 19 java-pe.blogspot.com 05.Juni 2013 ! Zeitpunkt konstant während der Schlussfolgerung  Aktualisierung vor jedem Feuern der Regeln Expert Wenn ein Sensor innerhalb von zehn Sekunden bei einem Produkt mindestens dreimal einen kritischen Sensorwert meldet dann leite den Ausschuss des Produktes ein Regel „Issue broken piece“ ? Wie kann Zeit innerhalb von Regeln abgebildet werden? AbbildungalsFakt … Prüfe für jeden SensorValue, ob das Alter des Wertes länger als zehn Sekunden zurückliegt Zu jeden Zeitpunkt sollte nur ein PointInTime Fakt existieren Erweiterte Regelkunde ?
  • 20. 20 java-pe.blogspot.com 05.Juni 2013 Wenn ein Sensor innerhalb von zehn Sekunden bei einem Produkt mindestens dreimal einen kritischen Sensorwert meldet dann leite den Ausschuss des Produktes ein Regel „Issue broken piece“ ? Wie kann Zeit innerhalb von Regeln abgebildet werden? SingletonPointInTime salience ermöglicht die Priorisierung von Regeln Bedingung zur Festlegung, ob mehr als ein PointInTime Fakt existiert Bestimme denjenigen Fakt, der einen älteren Zeitpunkt darstellt Expert Erweiterte Regelkunde
  • 21. 21 java-pe.blogspot.com 05.Juni 2013 Wenn ein Sensor innerhalb von zehn Sekunden bei einem Produkt mindestens dreimal einen kritischen Sensorwert meldet dann leite den Ausschuss des Produktes ein Regel „Issue broken piece“ ? Wie kann die Beziehung zwischen Sensorwert und Produkt abgeleitet werden? ! Deklaration IsAssignedToProduct  Fakt zur Beschreibung der Beziehung zwischen Product und SensorValue  Erweiterung der Fakten durch Regeln ! Fakten müssen „aufgeräumt“ werden Type-Deklaration in Regeln ermöglicht die einfache Abbildung von Meta-Informationen die nur für das Reasoning benötigt werden. Expert Erweiterte Regelkunde !
  • 22. 22 java-pe.blogspot.com 05.Juni 2013 Wenn ein Sensor innerhalb von zehn Sekunden bei einem Produkt mindestens dreimal einen kritischen Sensorwert meldet dann leite den Ausschuss des Produktes ein Regel „Issue broken piece“ Expert Erweiterte Regelkunde Identifikation von defekten Bauteilen Ausgangsfakten bestimmen Ermittlung der Anzahl derjenigen Sensorwerte, die kritisch sind und die einem Produkt „IN PRODUCTION“ zugewiesen sind Aktualisierung des Status ! IsCritical Fakt zur Auszeichnung eines Sensorwertes als kritisch (Meta-Information eines Sensorwertes)
  • 23. 23 java-pe.blogspot.com 05.Juni 2013 insertLogical übernimmt diese Aufgabe für uns Expert Erweiterte Regelkunde  Hinzugefügt Fakten sollten zurückgezogen (retracted) werden ! Was bisher nur am Rande gesagt wurde … ? Aus welchem Grund muss der Meta-Fakt IsCritical nicht zurückgezogen werden? ! Drools Bedingungen unterstützen die „Prädikatenlogik erster Stufe“ es ist noch deutlich mehr möglich als das Gezeigte
  • 24. 24 java-pe.blogspot.com 05.Juni 2013 Expert Entscheidungstabellen ! Ziel von Entscheidungstabellen übersichtlich, vollständig und widerspruchsfrei Darstellung komplexer Abhängigkeiten zwischen mehreren Bedingungen und den auszuführenden Aktionen Rule Set Definition der Eigenschaften und Typen Rule Table Zusammenhang Bedingungen und Aktionen
  • 25. 25 java-pe.blogspot.com 05.Juni 2013 Expert Entscheidungstabellen ! Ziel von Entscheidungstabellen übersichtlich, vollständig und widerspruchsfrei Darstellung komplexer Abhängigkeiten zwischen mehreren Bedingungen und den auszuführenden Aktionen KnowledgeBuilder kbuilder = KnowledgeBuilderFactory .newKnowledgeBuilder(); KnowledgeBuilder Ausführung Erstellung der Knowledge Base kbuilder.add(ResourceFactory. newClassPathResource( "/dt_example.xls", ResourceType.DTABLE, dtc); Ressourcen KnowledgeBase kbase = KnowledgeBaseFactory. newKnowledgeBase(); kbase.addKnowledgePackages (kbuilder. getKnowledgePackages()); KnowledgeBase !
  • 26. 26 java-pe.blogspot.com 05.Juni 2013 Expert Domänenspezifische Sprachen für Regeln Regel in domänenspezifischer Sprache When the value of a SensorValue is greater than 50.0 then show an error dialog with the message “Critical value identified“ Regel in DRL rule "Critical value" when SensorValue ( value > 50.0 ) then System.err.println("Critical value identified"); end ! Transformation von DSL formulierten Regeln in DRL Formulierung der Transformationsregeln Bedingung Konsequenz / Aktion
  • 27. 27 java-pe.blogspot.com 05.Juni 2013 Expert Domänenspezifische Sprachen für Regeln ! Transformation von DSL formulierten Regeln in DRL Formulierung der Regel in Domain Specific Language Rules Ausführung Erstellung der Knowledge Base KnowledgeBuilder Ressourcen KnowledgeBase (optional) nur für das PlugIn benötigt !
  • 28. 28 java-pe.blogspot.com 05.Juni 2013 Expert Anfragenunterstützung ! Queries ermöglichen die Abfrage von geschlussfolgerten Informationen Gesucht sind alle Sensoren, die „outside“ bei 30.0 eingesetzt werden können Festlegung Name und Parameter Collection-Support (contains)
  • 29. 29 java-pe.blogspot.com 05.Juni 2013 Anfrageparametrisierung durch Instanz eines Environments Expert Anfragenunterstützung ! Queries ermöglichen die Abfrage von geschlussfolgerten Informationen Gesucht sind alle Sensoren, die „outside“ bei 30.0 eingesetzt werden können
  • 30. 30 java-pe.blogspot.com 05.Juni 2013 Expert Zusammenfassung Funktionalitäten JSR-94, schnelle Rete Implementierung Formulierung von domänenspezifischen Sprachen für die Regelerstellung wird unterstützt weitreichende Unterstützung der Regelmodellierung in Entscheidungstabellen umgesetzt (bisher kein .xlsx) Prädikatenlogik erster Ordnung, komplexe Formulierungen • Rule-Engine • Rule-Language • Decision Tables • DSL / DSLR • Queries Query-Schnittstelle vorhanden, Abfrage der Faktenlage nach Schlussfolgerung aber, … • Spring • Functions • XML RL • Drools API • Guvnor • Fusion • …