Your SlideShare is downloading. ×
  • Like
  • Save
Regelbasierte Systeme mit JBoss Drools
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Regelbasierte Systeme mit JBoss Drools

  • 9,383 views
Published

TechTalk von Carsten Bochner (04.11.2008)

TechTalk von Carsten Bochner (04.11.2008)

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
9,383
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
4

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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
  • 8. Marktüberblick: Rule-Engines (Auswahl)
    • Stand: April 2008
  • 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
  • 15. JBoss Drools – BRMS I
  • 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