SlideShare ist ein Scribd-Unternehmen logo
Regelbasierte Systeme mit JBoss Drools  Carsten Bochner Tech Talk, DLR Köln-Porz, 04.11.2008
Einordnung von regelbasierten Systemen Unterbereich der Künstlichen Intelligenz Wissensbasiertes System mit regelbasiertem Schließen  Deklaratives Programmieren durch Regeldefinition Regeln beschreiben  Was  wir erreichen wollen Wie  dies erreicht wird ermittelt Regelmaschine Seit mehreren Jahrzehnten im Einsatz Früher: Expertensysteme Heute: Business Rule Management Systeme
Grundkonzept regelbasierter Systeme Bildquelle: www.syngenio.de Regeln :  WENN Fakt1 UND Fakt2 DANN FunctionX Beispiel:   WENN Flugzeug landet UND Fahrwerk eingefahren  DANN fahrwerkAusfahren()
Warum Regeln und Regelsysteme? Der Mensch denkt eher in Regeln als in Algorithmen! Regeln gibt es überall!  Regeln sind daher für jeden leicht zu verstehen,  zu erweitern und zu pflegen!
Regelsysteme - Motivation und Vorteile Trennung von Logik und Anwendung Fachlogik wird gekapselt (Regelbasis) Hohe Erweiterbarkeit und Flexibilität Regeln sind leichter zu verstehen und zu warten Schwere Probleme deklarativ oft einfacher zu lösen Hohe Nachvollziehbarkeit der Lösungsfindung Oftmals schnell und gut skalierbar Effiziente Algorithmen (RETE, LEAPS) verfügbar Kompilierte Regeln vor der Ausführung Schnelles Fakten / Regeln - Matching
Einsatz von Regelsystemen Rule Engines einsetzen wenn: Problem für imperative Algorithmen ungeeignet Problem zu komplex Problem / Lösung nicht vollständig  verstanden Fachlogik ändert sich häufig  Dömänenexperten sollen Wissen einpflegen,  können jedoch nicht Programmieren Wann nicht einsetzen?  Klassische Rule Engines nicht geeignet um Workflows und Prozessketten zu steuern
Herausforderungen bei Regelsystemen Ungewohntes Programmierparadigma Ungewohnte Syntax Hohe Flexibilität –> neue Regeln im Produktivsystem Gegebenenfalls sehr hohe Anzahl Regeln  Konsequenzen von Regeln schwer zu überschauen Black Box Testen der Regeln Wenige Standards – viele proprietäre Sprachen  Umstellung von Entwicklungs- und Betriebsprozess  Optimierte handgeschriebene Algorithmen schneller
Marktüberblick: Rule-Engines (Auswahl) Stand: April 2008
JBoss Drools Objektorientierte Regelplattform (100% Java) Fakten durch JavaBeans repräsentiert Open Source, seit 2006 JBoss Projekt Aktuell Version 4.0.7  In wenigen Wochen erscheint JBoss Drools 5 BRMS/BPMS (Web 2.0) Regelmaschine (Core Lib) Complex event processing Prozesse & Workflows (Eclipse)
JBoss Drools – Regeln definieren Customer und Ticket stellen Fakten dar Fakten durch import einbinden (z.B. import de.dlr.rules.Customer)  Fakten durch JavaBeans repräsentiert  Diese haben z.B. Methoden wie getSubscription, getCustomer, getStatus, setStatus etc…  Drools regelt Datenzugriff über diese Methoden selbst Betrachtung aller relevanten Fakten des Working Memory (Siehe Trouble Ticket Example in der Drools Dokumentation)
JBoss Drools – Rule Engine starten I //read in the source final  Reader source =  new  InputStreamReader(InputStreamReader( TroubleTicketExampleWithDSL. class .getResourceAsStream( " ticketing.drl " ) );); final  PackageBuilder builder =  new  PackageBuilder(); //this will parse and compile in one step builder.addPackageFromDrl( source );  //get the compiled package (which is serializable) final  Package pkg = builder.getPackage(); //add the package to a rulebase (deploy the rule package). final  RuleBase ruleBase = RuleBaseFactory. newRuleBase (); ruleBase.addPackage( pkg );
JBoss Drools – Rule Engine starten II final  StatefulSession workingMemory = ruleBase.newStatefulSession(); // create and   add facts to working memory final  Customer cust1 =  new  Customer( „ Peter Pan ", " Silver " ); final  Ticket tick1 =  new  Ticket( cust ); workingMemory.insert( cust1 ); workingMemory.insert( tick1 ); workingMemory.fireAllRules(); workingMemory.dispose();
JBoss Drools – DSL erstellen
JBoss Drools – DSL verwenden
JBoss Drools – BRMS I
JBoss Drools – BRMS II
 
Drools Eclipse Plugin – Live Demo
Weitere Quellen Links: http://www.jboss.org/drools/ http://blog.athico.com/ http://www.codeodor.com/index.cfm/2007/9/10/Rules-based-Programming-with-JBoss-RulesDrools/1600 Bücher und Paper: Expert Systems: Principles and Programming Joseph Giarratano, Gary D. Riley ISBN: 0534384471  Business Rules and Information Systems: Aligning IT with Business Goals Tony Morgan ISBN: 0201743914  Rete: A fast algorithm for the many pattern/many object pattern match problem by Charles L. Forgy Artificial Intelligence, Volume 19, Issue 1, September 1982, Pages 17-37

Weitere ähnliche Inhalte

PDF
jBPM & Drools
PPT
JBoss jBPM und Drools - Geschäftsprozesse und Regeln mit Open Source Java
PDF
130605 blog - drools
PDF
Einführung in React
PDF
Speeding up Java Persistence
PDF
PDF
JavaScript Performance
PPTX
SOA Suite 11g Deep Dive
jBPM & Drools
JBoss jBPM und Drools - Geschäftsprozesse und Regeln mit Open Source Java
130605 blog - drools
Einführung in React
Speeding up Java Persistence
JavaScript Performance
SOA Suite 11g Deep Dive

Andere mochten auch (7)

PDF
DNUG2015 Frühjahrskonferenz: Prozessautomatisierung im Domino Kosmos, nicht o...
PPTX
Nachvollziehbarkeit mit Hinblick auf Privacy-Verletzungen
PDF
Drools
PDF
Präsentation der Bachelorarbeit
PPTX
JBoss Drools - Pure Java Rule Engine
PPTX
Rule Engine & Drools
PDF
20080421 JAX Geschaeftsprozesse und Regeln mit jBPM und Drools
DNUG2015 Frühjahrskonferenz: Prozessautomatisierung im Domino Kosmos, nicht o...
Nachvollziehbarkeit mit Hinblick auf Privacy-Verletzungen
Drools
Präsentation der Bachelorarbeit
JBoss Drools - Pure Java Rule Engine
Rule Engine & Drools
20080421 JAX Geschaeftsprozesse und Regeln mit jBPM und Drools
Anzeige

Mehr von Andreas Schreiber (20)

PPTX
Provenance-based Security Audits and its Application to COVID-19 Contact Trac...
PPTX
Visualization of Software Architectures in Virtual Reality and Augmented Reality
PPTX
Provenance as a building block for an open science infrastructure
PPTX
Raising Awareness about Open Source Licensing at the German Aerospace Center
PDF
Open Source Licensing for Rocket Scientists
PDF
Interactive Visualization of Software Components with Virtual Reality Headsets
PPTX
Provenance for Reproducible Data Science
PPTX
Visualizing Provenance using Comics
PPTX
Quantified Self Comics
PPTX
Reproducible Science with Python
PPTX
Python at Warp Speed
PPTX
A Provenance Model for Quantified Self Data
PPTX
Open Source im DLR
PDF
Tracking after Stroke: Doctors, Dogs and All The Rest
PPTX
High Throughput Processing of Space Debris Data
PDF
Bericht von der QS15 Conference & Exposition
PPTX
Telemedizin: Gesundheit, messbar für jedermann
PDF
Big Python
PDF
Quantified Self mit Wearable Devices und Smartphone-Sensoren
PDF
Example Blood Pressure Report of BloodPressureCompanion
Provenance-based Security Audits and its Application to COVID-19 Contact Trac...
Visualization of Software Architectures in Virtual Reality and Augmented Reality
Provenance as a building block for an open science infrastructure
Raising Awareness about Open Source Licensing at the German Aerospace Center
Open Source Licensing for Rocket Scientists
Interactive Visualization of Software Components with Virtual Reality Headsets
Provenance for Reproducible Data Science
Visualizing Provenance using Comics
Quantified Self Comics
Reproducible Science with Python
Python at Warp Speed
A Provenance Model for Quantified Self Data
Open Source im DLR
Tracking after Stroke: Doctors, Dogs and All The Rest
High Throughput Processing of Space Debris Data
Bericht von der QS15 Conference & Exposition
Telemedizin: Gesundheit, messbar für jedermann
Big Python
Quantified Self mit Wearable Devices und Smartphone-Sensoren
Example Blood Pressure Report of BloodPressureCompanion
Anzeige

Regelbasierte Systeme mit JBoss Drools

  • 1. Regelbasierte Systeme mit JBoss Drools Carsten Bochner Tech Talk, DLR Köln-Porz, 04.11.2008
  • 2. Einordnung von regelbasierten Systemen Unterbereich der Künstlichen Intelligenz Wissensbasiertes System mit regelbasiertem Schließen Deklaratives Programmieren durch Regeldefinition Regeln beschreiben Was wir erreichen wollen Wie dies erreicht wird ermittelt Regelmaschine Seit mehreren Jahrzehnten im Einsatz Früher: Expertensysteme Heute: Business Rule Management Systeme
  • 3. Grundkonzept regelbasierter Systeme Bildquelle: www.syngenio.de Regeln : WENN Fakt1 UND Fakt2 DANN FunctionX Beispiel: WENN Flugzeug landet UND Fahrwerk eingefahren DANN fahrwerkAusfahren()
  • 4. Warum Regeln und Regelsysteme? Der Mensch denkt eher in Regeln als in Algorithmen! Regeln gibt es überall! Regeln sind daher für jeden leicht zu verstehen, zu erweitern und zu pflegen!
  • 5. Regelsysteme - Motivation und Vorteile Trennung von Logik und Anwendung Fachlogik wird gekapselt (Regelbasis) Hohe Erweiterbarkeit und Flexibilität Regeln sind leichter zu verstehen und zu warten Schwere Probleme deklarativ oft einfacher zu lösen Hohe Nachvollziehbarkeit der Lösungsfindung Oftmals schnell und gut skalierbar Effiziente Algorithmen (RETE, LEAPS) verfügbar Kompilierte Regeln vor der Ausführung Schnelles Fakten / Regeln - Matching
  • 6. Einsatz von Regelsystemen Rule Engines einsetzen wenn: Problem für imperative Algorithmen ungeeignet Problem zu komplex Problem / Lösung nicht vollständig verstanden Fachlogik ändert sich häufig Dömänenexperten sollen Wissen einpflegen, können jedoch nicht Programmieren Wann nicht einsetzen? Klassische Rule Engines nicht geeignet um Workflows und Prozessketten zu steuern
  • 7. Herausforderungen bei Regelsystemen Ungewohntes Programmierparadigma Ungewohnte Syntax Hohe Flexibilität –> neue Regeln im Produktivsystem Gegebenenfalls sehr hohe Anzahl Regeln Konsequenzen von Regeln schwer zu überschauen Black Box Testen der Regeln Wenige Standards – viele proprietäre Sprachen Umstellung von Entwicklungs- und Betriebsprozess Optimierte handgeschriebene Algorithmen schneller
  • 9. JBoss Drools Objektorientierte Regelplattform (100% Java) Fakten durch JavaBeans repräsentiert Open Source, seit 2006 JBoss Projekt Aktuell Version 4.0.7 In wenigen Wochen erscheint JBoss Drools 5 BRMS/BPMS (Web 2.0) Regelmaschine (Core Lib) Complex event processing Prozesse & Workflows (Eclipse)
  • 10. JBoss Drools – Regeln definieren Customer und Ticket stellen Fakten dar Fakten durch import einbinden (z.B. import de.dlr.rules.Customer) Fakten durch JavaBeans repräsentiert Diese haben z.B. Methoden wie getSubscription, getCustomer, getStatus, setStatus etc… Drools regelt Datenzugriff über diese Methoden selbst Betrachtung aller relevanten Fakten des Working Memory (Siehe Trouble Ticket Example in der Drools Dokumentation)
  • 11. JBoss Drools – Rule Engine starten I //read in the source final Reader source = new InputStreamReader(InputStreamReader( TroubleTicketExampleWithDSL. class .getResourceAsStream( " ticketing.drl " ) );); final PackageBuilder builder = new PackageBuilder(); //this will parse and compile in one step builder.addPackageFromDrl( source ); //get the compiled package (which is serializable) final Package pkg = builder.getPackage(); //add the package to a rulebase (deploy the rule package). final RuleBase ruleBase = RuleBaseFactory. newRuleBase (); ruleBase.addPackage( pkg );
  • 12. JBoss Drools – Rule Engine starten II final StatefulSession workingMemory = ruleBase.newStatefulSession(); // create and add facts to working memory final Customer cust1 = new Customer( „ Peter Pan ", " Silver " ); final Ticket tick1 = new Ticket( cust ); workingMemory.insert( cust1 ); workingMemory.insert( tick1 ); workingMemory.fireAllRules(); workingMemory.dispose();
  • 13. JBoss Drools – DSL erstellen
  • 14. JBoss Drools – DSL verwenden
  • 16. JBoss Drools – BRMS II
  • 17.  
  • 18. Drools Eclipse Plugin – Live Demo
  • 19. Weitere Quellen Links: http://www.jboss.org/drools/ http://blog.athico.com/ http://www.codeodor.com/index.cfm/2007/9/10/Rules-based-Programming-with-JBoss-RulesDrools/1600 Bücher und Paper: Expert Systems: Principles and Programming Joseph Giarratano, Gary D. Riley ISBN: 0534384471 Business Rules and Information Systems: Aligning IT with Business Goals Tony Morgan ISBN: 0201743914 Rete: A fast algorithm for the many pattern/many object pattern match problem by Charles L. Forgy Artificial Intelligence, Volume 19, Issue 1, September 1982, Pages 17-37