java-pe.blogspot.com05.Juni 2013Business Logic Integration PlatformIntroducing Drools Expert
2java-pe.blogspot.com05.Juni 2013Was ist Drools?Faktenwww.jboss.org/drools/Apache Software License(ASL)5.5.0 (13. November...
3java-pe.blogspot.com05.Juni 2013ModuleWas ist Drools?Process / WorkflowBusiness Rule ManagerRule EngineEvent Processing /...
4java-pe.blogspot.com05.Juni 2013ModuleWas ist Drools?Process / WorkflowBusiness Rule ManagerRule EngineEvent Processing /...
5java-pe.blogspot.com05.Juni 2013ModuleProcess / WorkflowBusiness Rule ManagerRule EngineEvent Processing /Temporal Reason...
6java-pe.blogspot.com05.Juni 2013Was ist Drools?ModuleProcess / WorkflowBusiness Rule ManagerRule EngineEvent Processing /...
7java-pe.blogspot.com05.Juni 2013Was ist Drools?ModuleProcess / WorkflowBusiness Rule ManagerRule EngineEvent Processing /...
8java-pe.blogspot.com05.Juni 2013BeispielszenarioExpert! Condition Monitoring in Sensornetzen Messung und Analyse von phy...
9java-pe.blogspot.com05.Juni 2013AttributeSensorId (Wer), Wert (Was), Zeitpunkt(Wann)Fakt SensorwerteModellierung und Ausf...
10java-pe.blogspot.com05.Juni 2013Modellierung und AusführungExpertModellierungnotwendigPaket und ImportoptionalRegelAngab...
11java-pe.blogspot.com05.Juni 2013Modellierung und AusführungExpertStatefulKnowledgeSession ksession =kbase.newStatefulKno...
12java-pe.blogspot.com05.Juni 2013Kommunikation mit der ApplikationGlobale Variablen und ListenerExpert! Flexibilisierung ...
13java-pe.blogspot.com05.Juni 2013Kommunikation mit der ApplikationGlobale Variablen und ListenerExpert! Globale Variablen...
14java-pe.blogspot.com05.Juni 2013Kommunikation mit der ApplikationGlobale Variablen und ListenerExpert! Zuhören was die R...
15java-pe.blogspot.com05.Juni 2013 Hinzufügen neuer Sensorwerte führt zu Überlauf im Speicher! Sensorwerte ändern sich üb...
16java-pe.blogspot.com05.Juni 2013Sensor 1000.985.322Sensor 2001.234.185tVeränderungen von Fakten über die ZeitFactHandler...
17java-pe.blogspot.com05.Juni 2013ExpertWenn ein Sensor innerhalb von zehn Sekunden bei einem Produkt mindestens dreimal e...
18java-pe.blogspot.com05.Juni 2013Regel wird für aktualisierteSensorValue FaktenangewendetExpertWenn ein Sensor innerhalb ...
19java-pe.blogspot.com05.Juni 2013! Zeitpunkt konstant während der SchlussfolgerungAktualisierung vor jedem Feuern der Re...
20java-pe.blogspot.com05.Juni 2013Wenn ein Sensor innerhalb von zehn Sekunden bei einem Produkt mindestens dreimal einen k...
21java-pe.blogspot.com05.Juni 2013Wenn ein Sensor innerhalb von zehn Sekunden bei einem Produkt mindestens dreimal einen k...
22java-pe.blogspot.com05.Juni 2013Wenn ein Sensor innerhalb von zehn Sekunden bei einem Produkt mindestens dreimal einen k...
23java-pe.blogspot.com05.Juni 2013insertLogical übernimmt diese Aufgabe für unsExpert Erweiterte Regelkunde Hinzugefügt F...
24java-pe.blogspot.com05.Juni 2013Expert Entscheidungstabellen!Ziel von Entscheidungstabellenübersichtlich, vollständig un...
25java-pe.blogspot.com05.Juni 2013Expert Entscheidungstabellen!Ziel von Entscheidungstabellenübersichtlich, vollständig un...
26java-pe.blogspot.com05.Juni 2013Expert Domänenspezifische Sprachen für RegelnRegel in domänenspezifischer SpracheWhen th...
27java-pe.blogspot.com05.Juni 2013Expert Domänenspezifische Sprachen für Regeln! Transformation von DSL formulierten Regel...
28java-pe.blogspot.com05.Juni 2013Expert Anfragenunterstützung!Queries ermöglichen die Abfrage von geschlussfolgertenInfor...
29java-pe.blogspot.com05.Juni 2013Anfrageparametrisierung durch Instanzeines EnvironmentsExpert Anfragenunterstützung!Quer...
30java-pe.blogspot.com05.Juni 2013Expert ZusammenfassungFunktionalitätenJSR-94, schnelle Rete ImplementierungFormulierung ...
Nächste SlideShare
Wird geladen in …5
×

130605 blog - drools

782 Aufrufe

Veröffentlicht am

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
782
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
5
Aktionen
Geteilt
0
Downloads
5
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

130605 blog - drools

  1. 1. java-pe.blogspot.com05.Juni 2013Business Logic Integration PlatformIntroducing Drools Expert
  2. 2. 2java-pe.blogspot.com05.Juni 2013Was ist Drools?Faktenwww.jboss.org/drools/Apache Software License(ASL)5.5.0 (13. November 2012)aktuelle Betaversion: 6.0.0.Beta2JBoss Red HatWiki, Forum, Mailing Liste,Blog, Chat• Web• Entwickler• Version• Lizenz• Community
  3. 3. 3java-pe.blogspot.com05.Juni 2013ModuleWas ist Drools?Process / WorkflowBusiness Rule ManagerRule EngineEvent Processing /Temporal ReasoningAutomated PlanningExpertGuvnorjBPM 5FusionOptaPlanner• Core Engine• JSR-94• Implementierung der KnowledgeBase, Session und des Reasoningüber Regeln und FaktenDrools ExpertThema dieserPräsentation
  4. 4. 4java-pe.blogspot.com05.Juni 2013ModuleWas ist Drools?Process / WorkflowBusiness Rule ManagerRule EngineEvent Processing /Temporal ReasoningAutomated PlanningExpertGuvnorjBPM 5FusionOptaPlanner• Repository zum Speichern undVerwalten von Regeln,Prozesses, Modellen undanderen Entitäten• Benutzerverwaltung• Sammlung von graphischenBenutzerschnittstellen• VersionsmanagementDrools Guvnor
  5. 5. 5java-pe.blogspot.com05.Juni 2013ModuleProcess / WorkflowBusiness Rule ManagerRule EngineEvent Processing /Temporal ReasoningAutomated PlanningExpertGuvnorjBPM 5FusionOptaPlannerWas ist Drools?• ehemals Drools Flow (jetzteigenständig www.jboss.org/jbpm/)• Business Process Management• basiert auf BPMN 2.0Spezifikation• Unterstützung des vollständigenProzess-Lebenszyklus (Entwurf,Ausführung, Verwaltung undAblöse)• Graphische SchnittstellejBPM (Drools Flow)
  6. 6. 6java-pe.blogspot.com05.Juni 2013Was ist Drools?ModuleProcess / WorkflowBusiness Rule ManagerRule EngineEvent Processing /Temporal ReasoningAutomated PlanningExpertGuvnorjBPM 5FusionOptaPlanner• Complex Event Processing (CEP)• Ereignisse als zentrales Elementvon Drools• Selektion von interessantenEreignissen und Ereignismustern• Triggern der Ausführung vonAktionen (bspw. Prozessen)aufgrund von EreignismusternDrools Fusion
  7. 7. 7java-pe.blogspot.com05.Juni 2013Was ist Drools?ModuleProcess / WorkflowBusiness Rule ManagerRule EngineEvent Processing /Temporal ReasoningAutomated PlanningExpertGuvnorjBPM 5FusionOptaPlanner• ehemals Drools Planner (jetzteigenständig www.optaplanner.org)• Planning Engine für NP-vollständige ConstraintSatisfaction Problems (CSP)• vielfältige Anwendungs-möglichkeitenOptaplanner (Drools Planner)
  8. 8. 8java-pe.blogspot.com05.Juni 2013BeispielszenarioExpert! 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 ausRegel 1Sensor 1Temperatursensor [Kelvin], Messfrequenz 5 Messungen / s,Messunsicherheit +/- 0,01 KelvinSensor 2Temperatursensor [Celsius], Messfrequenz 10 Messungen / s,Messunsicherheit +/- 0,05 Celsius!
  9. 9. 9java-pe.blogspot.com05.Juni 2013AttributeSensorId (Wer), Wert (Was), Zeitpunkt(Wann)Fakt SensorwerteModellierung und AusführungExpertWenn ein Sensorwert den Schwellwertvon 50.0 übersteigt dann gib eineFehlermeldung ausRegel 1rule "Critical value"whenSensorValue ( value > 50.0 )thenSystem.err.println("Critical sensor value state.");endRuleSyntaxwhen [Bedingung] then [Aktion]DialektMVEL (MVFLEX Expresison Language)Fact„Informationsträger“i. d. R. Modellierung in Java als POJO!
  10. 10. 10java-pe.blogspot.com05.Juni 2013Modellierung und AusführungExpertModellierungnotwendigPaket und ImportoptionalRegelAngabe beliebig vielerRegeln möglichAusführungKnowledgeBuilder kbuilder =KnowledgeBuilderFactory.newKnowledgeBuilder();KnowledgeBuilderErstellung der Knowledge Basekbuilder.add(ResourceFactory.newClassPathResource("/sensor_value_rule.drl",ResourceType.DRL);RessourcenKnowledgeBase kbase =KnowledgeBaseFactory.newKnowledgeBase();kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());KnowledgeBase
  11. 11. 11java-pe.blogspot.com05.Juni 2013Modellierung und AusführungExpertStatefulKnowledgeSession ksession =kbase.newStatefulKnowledgeSession();StatefulSessionAusführungErstellung und Aktualisierung einer SessionSensorValue<Double> v = simulator.nextValue();ksession.insert(v);Update sessionRegelnfeuernksession.fireAllRules()? Wie können wir den kritischen Wert ausgeben?VariablenFakten und Eigenschaftenkönnen Variablenzugewiesen und somitwiederverwendet werden
  12. 12. 12java-pe.blogspot.com05.Juni 2013Kommunikation mit der ApplikationGlobale Variablen und ListenerExpert! Flexibilisierung und Kommunikation mittels globalen VariablenSchlüsselwort global• Deklaration von globaleVariablen ähnlich Deklarationvon Variablen in Java• Auslesen in Bedingungen,Aktionen und über die Session(WorkingMemory Interface)möglich• Zuweisung von globalenVariablen in Aktion oder überdie Session möglich! Regeln stehen für sich (bspw. Grenzwert in der Regel)?Wie können wir einen solchen Wert von der Applikation indie Regel injizieren? Wie können wir mit der Applikation kommunizieren?Objekt-referenzin Variable?
  13. 13. 13java-pe.blogspot.com05.Juni 2013Kommunikation mit der ApplikationGlobale Variablen und ListenerExpert! Globale Variablen bieten Missbrauch-PotentialKeine Verarbeitung von Änderungen an globalenVariablen  Konfigurationen von konstanten FaktenKein Datenaustausch zwischen Regeln mittels globalenVariablen  Regelevaluation folgt keinem ProzessKeine Zuweisung von globalen Variablen aus einer Regelheraus Event-Handler aus der Applikation in die Regelinjizierenksession.setGlobal("SENSOR_LIMIT", 50.0);ksession.setGlobal("LOGGER", LOGGER);…! Injizieren von Fähigkeiten und Konstanten in globale Variablen!
  14. 14. 14java-pe.blogspot.com05.Juni 2013Kommunikation mit der ApplikationGlobale Variablen und ListenerExpert! Zuhören was die Rule-Engine so treibt Drools beinhaltet Listener für Änderungen an Agenda und WorkingMemoryQuelle: Drools Dokumentation Erweiterte Testmöglichkeiten durch den AgendaEventListener• Aufstellung der Sequenzder Regelaktivierung• Prüfung ob Sequenz dererwarteten Regelfolgeentspricht
  15. 15. 15java-pe.blogspot.com05.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 1000.985.322Sensor 2001.234.185t! FactHandler als Referenz auf einen Fakt im WorkingMemoryVeränderungen von Fakten über die ZeitFactHandlerExpertKnowledge SessionFaktenWorking Memoryinsert(fact):FactHandler?
  16. 16. 16java-pe.blogspot.com05.Juni 2013Sensor 1000.985.322Sensor 2001.234.185tVeränderungen von Fakten über die ZeitFactHandlerExpertVerarbeitung der Aktualisierung aufApplikationsseiteAktualisierung im Working MemoryWorking MemoryFakt 1SensorValue001.234.185Fakt 2SensorValue000.985.322Schluss-folgerung! Sensorwerte ändern sich über die Zeit
  17. 17. 17java-pe.blogspot.com05.Juni 2013ExpertWenn ein Sensor innerhalb von zehn Sekunden bei einem Produkt mindestens dreimal einen kritischenSensorwert meldet dann leite den Ausschuss des Produktes einRegel „Issue broken piece“Sensor 1000.985.322Sensor 2001.234.185tProdukt „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 endErweiterte Regelkunde
  18. 18. 18java-pe.blogspot.com05.Juni 2013Regel wird für aktualisierteSensorValue FaktenangewendetExpertWenn ein Sensor innerhalb von zehn Sekunden bei einem Produkt mindestens dreimal einen kritischenSensorwert meldet dann leite den Ausschuss des Produktes einRegel „Issue broken piece“? Wie kann Zeit innerhalb von Regeln abgebildet werden?naiverAnsatzEntferne veraltete Sensordaten aus dem WorkingMemoryZustandsänderungenkönnen während derEvaluation von Regelnerfolgen Aktuellen Zeitpunkt als Fakt im WorkingMemory abbildenErweiterte Regelkunde!!
  19. 19. 19java-pe.blogspot.com05.Juni 2013! Zeitpunkt konstant während der SchlussfolgerungAktualisierung vor jedem Feuern der RegelnExpertWenn ein Sensor innerhalb von zehn Sekunden bei einem Produkt mindestens dreimal einen kritischenSensorwert meldet dann leite den Ausschuss des Produktes einRegel „Issue broken piece“? Wie kann Zeit innerhalb von Regeln abgebildet werden?AbbildungalsFakt…Prüfe für jeden SensorValue, ob dasAlter des Wertes länger als zehnSekunden zurückliegtZu jeden Zeitpunkt solltenur ein PointInTime FaktexistierenErweiterte Regelkunde?
  20. 20. 20java-pe.blogspot.com05.Juni 2013Wenn ein Sensor innerhalb von zehn Sekunden bei einem Produkt mindestens dreimal einen kritischenSensorwert meldet dann leite den Ausschuss des Produktes einRegel „Issue broken piece“? Wie kann Zeit innerhalb von Regeln abgebildet werden?SingletonPointInTimesalience ermöglicht die Priorisierung vonRegelnBedingung zur Festlegung, ob mehr alsein PointInTime Fakt existiertBestimme denjenigen Fakt, der einenälteren Zeitpunkt darstelltExpert Erweiterte Regelkunde
  21. 21. 21java-pe.blogspot.com05.Juni 2013Wenn ein Sensor innerhalb von zehn Sekunden bei einem Produkt mindestens dreimal einen kritischenSensorwert meldet dann leite den Ausschuss des Produktes einRegel „Issue broken piece“?Wie kann die Beziehung zwischen Sensorwert und Produktabgeleitet werden?! Deklaration IsAssignedToProductFakt zur Beschreibung der Beziehungzwischen Product und SensorValue Erweiterung der Fakten durch Regeln! Fakten müssen „aufgeräumt“ werdenType-Deklaration in Regelnermöglicht die einfache Abbildungvon Meta-Informationen die nur fürdas Reasoning benötigt werden.Expert Erweiterte Regelkunde!
  22. 22. 22java-pe.blogspot.com05.Juni 2013Wenn ein Sensor innerhalb von zehn Sekunden bei einem Produkt mindestens dreimal einen kritischenSensorwert meldet dann leite den Ausschuss des Produktes einRegel „Issue broken piece“Expert Erweiterte RegelkundeIdentifikation von defekten BauteilenAusgangsfakten bestimmenErmittlung der Anzahl derjenigenSensorwerte, die kritisch sind und dieeinem Produkt „IN PRODUCTION“zugewiesen sindAktualisierung des Status! IsCritical Fakt zur Auszeichnung eines Sensorwertes als kritisch(Meta-Information eines Sensorwertes)
  23. 23. 23java-pe.blogspot.com05.Juni 2013insertLogical übernimmt diese Aufgabe für unsExpert 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ückgezogenwerden?!Drools Bedingungen unterstützen die „Prädikatenlogik ersterStufe“ es ist noch deutlich mehr möglich als das Gezeigte
  24. 24. 24java-pe.blogspot.com05.Juni 2013Expert Entscheidungstabellen!Ziel von Entscheidungstabellenübersichtlich, vollständig und widerspruchsfrei Darstellung komplexerAbhängigkeiten zwischen mehreren Bedingungen und den auszuführendenAktionenRule SetDefinition derEigenschaftenund TypenRule TableZusammenhangBedingungenund Aktionen
  25. 25. 25java-pe.blogspot.com05.Juni 2013Expert Entscheidungstabellen!Ziel von Entscheidungstabellenübersichtlich, vollständig und widerspruchsfrei Darstellung komplexerAbhängigkeiten zwischen mehreren Bedingungen und den auszuführendenAktionenKnowledgeBuilder kbuilder =KnowledgeBuilderFactory.newKnowledgeBuilder();KnowledgeBuilderAusführungErstellung der Knowledge Basekbuilder.add(ResourceFactory.newClassPathResource("/dt_example.xls",ResourceType.DTABLE, dtc);RessourcenKnowledgeBase kbase =KnowledgeBaseFactory.newKnowledgeBase();kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());KnowledgeBase!
  26. 26. 26java-pe.blogspot.com05.Juni 2013Expert Domänenspezifische Sprachen für RegelnRegel in domänenspezifischer SpracheWhen the value of a SensorValue is greaterthan 50.0 then show an error dialog withthe message “Critical value identified“Regel in DRLrule "Critical value"whenSensorValue ( value > 50.0 )thenSystem.err.println("Critical value identified");end! Transformation von DSL formulierten Regeln in DRLFormulierung der TransformationsregelnBedingungKonsequenz / Aktion
  27. 27. 27java-pe.blogspot.com05.Juni 2013Expert Domänenspezifische Sprachen für Regeln! Transformation von DSL formulierten Regeln in DRLFormulierung der Regel in Domain Specific Language RulesAusführungErstellung der Knowledge BaseKnowledgeBuilderRessourcenKnowledgeBase(optional) nur für das PlugIn benötigt!
  28. 28. 28java-pe.blogspot.com05.Juni 2013Expert Anfragenunterstützung!Queries ermöglichen die Abfrage von geschlussfolgertenInformationenGesucht sind alle Sensoren, die „outside“ bei 30.0 eingesetzt werden könnenFestlegung Name und ParameterCollection-Support (contains)
  29. 29. 29java-pe.blogspot.com05.Juni 2013Anfrageparametrisierung durch Instanzeines EnvironmentsExpert Anfragenunterstützung!Queries ermöglichen die Abfrage von geschlussfolgertenInformationenGesucht sind alle Sensoren, die „outside“ bei 30.0 eingesetzt werden können
  30. 30. 30java-pe.blogspot.com05.Juni 2013Expert ZusammenfassungFunktionalitätenJSR-94, schnelle Rete ImplementierungFormulierung von domänenspezifischen Sprachenfür die Regelerstellung wird unterstütztweitreichende Unterstützung der Regelmodellierungin Entscheidungstabellen umgesetzt (bisher kein .xlsx)Prädikatenlogik erster Ordnung, komplexeFormulierungen• Rule-Engine• Rule-Language• Decision Tables• DSL / DSLR• QueriesQuery-Schnittstelle vorhanden, Abfrage derFaktenlage nach Schlussfolgerungaber, …• Spring• Functions• XML RL• Drools API• Guvnor• Fusion• …

×