Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und relevantere Anzeigen zu schalten. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
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...
Nächste SlideShare
Wird geladen in …5
×

Regelbasierte Systeme mit JBoss Drools

12.319 Aufrufe

Veröffentlicht am

TechTalk von Carsten Bochner (04.11.2008)

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

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>

×