• Save
Regelbasierte Systeme mit JBoss Drools
Upcoming SlideShare
Loading in...5
×
 

Regelbasierte Systeme mit JBoss Drools

on

  • 12,124 views

TechTalk von Carsten Bochner (04.11.2008)

TechTalk von Carsten Bochner (04.11.2008)

Statistics

Views

Total Views
12,124
Views on SlideShare
12,105
Embed Views
19

Actions

Likes
4
Downloads
0
Comments
0

3 Embeds 19

http://www.slideshare.net 16
http://static.slideshare.net 2
https://wiki.sistec.dlr.de 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Regelbasierte Systeme mit JBoss Drools Regelbasierte Systeme mit JBoss Drools Presentation Transcript

  • 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