Regelbasierte Systeme mit JBoss Drools  Carsten Bochner Tech Talk, DLR Köln-Porz, 04.11.2008
Einordnung von regelbasierten Systemen <ul><li>Unterbereich der Künstlichen Intelligenz </li></ul><ul><li>Wissensbasiertes...
Grundkonzept regelbasierter Systeme <ul><li>Bildquelle: www.syngenio.de </li></ul>Regeln :  WENN Fakt1 UND Fakt2 DANN Func...
Warum Regeln und Regelsysteme? <ul><li>Der Mensch denkt eher in Regeln als in Algorithmen! </li></ul><ul><li>Regeln gibt e...
Regelsysteme - Motivation und Vorteile <ul><li>Trennung von Logik und Anwendung </li></ul><ul><ul><li>Fachlogik wird gekap...
Einsatz von Regelsystemen <ul><li>Rule Engines einsetzen wenn: </li></ul><ul><ul><li>Problem für imperative Algorithmen un...
Herausforderungen bei Regelsystemen <ul><li>Ungewohntes Programmierparadigma </li></ul><ul><li>Ungewohnte Syntax </li></ul...
Marktüberblick: Rule-Engines (Auswahl) <ul><li>Stand: April 2008 </li></ul>
JBoss Drools <ul><li>Objektorientierte Regelplattform (100% Java) </li></ul><ul><li>Fakten durch JavaBeans repräsentiert <...
JBoss Drools – Regeln definieren <ul><li>Customer und Ticket stellen Fakten dar </li></ul><ul><li>Fakten durch import einb...
JBoss Drools – Rule Engine starten I <ul><li>//read in the source </li></ul><ul><li>final  Reader source =  new  InputStre...
JBoss Drools – Rule Engine starten II <ul><li>final  StatefulSession workingMemory = ruleBase.newStatefulSession(); </li><...
JBoss Drools – DSL erstellen
JBoss Drools – DSL verwenden
JBoss Drools – BRMS I
JBoss Drools – BRMS II
 
Drools Eclipse Plugin – Live Demo
Weitere Quellen <ul><li>Links: </li></ul><ul><ul><li>http://www.jboss.org/drools/ </li></ul></ul><ul><ul><li>http://blog.a...
Upcoming SlideShare
Loading in...5
×

Regelbasierte Systeme mit JBoss Drools

10,085

Published on

TechTalk von Carsten Bochner (04.11.2008)

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
10,085
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Transcript of "Regelbasierte Systeme mit JBoss Drools"

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

×