drools sofia jonsson [email protected]. cadec2006, drools, slide 2 copyright 2006, callista...
TRANSCRIPT
![Page 2: Drools Sofia Jonsson sofia.jonsson@callista.se. CADEC2006, Drools, Slide 2 Copyright 2006, Callista Enterprise AB Agenda Rule Engines - History/Background](https://reader036.vdocuments.net/reader036/viewer/2022072017/56649f055503460f94c197dd/html5/thumbnails/2.jpg)
CADEC2006, Drools, Slide 2Copyright 2006, Callista Enterprise AB
Agenda
• Rule Engines - History/Background.• Problem Definition• Online Loan Application – an Example.
– Writing Rules.– Drools API.
• Summary & Conclusion
![Page 3: Drools Sofia Jonsson sofia.jonsson@callista.se. CADEC2006, Drools, Slide 2 Copyright 2006, Callista Enterprise AB Agenda Rule Engines - History/Background](https://reader036.vdocuments.net/reader036/viewer/2022072017/56649f055503460f94c197dd/html5/thumbnails/3.jpg)
CADEC2006, Drools, Slide 3Copyright 2006, Callista Enterprise AB
Rule Engines - Basics
• Evaluates and executes business rules.
• Separates the business logic from the application code.– Compare to a database
• A sophisticated interpreter of if-then statements.– Declarative programming.
![Page 4: Drools Sofia Jonsson sofia.jonsson@callista.se. CADEC2006, Drools, Slide 2 Copyright 2006, Callista Enterprise AB Agenda Rule Engines - History/Background](https://reader036.vdocuments.net/reader036/viewer/2022072017/56649f055503460f94c197dd/html5/thumbnails/4.jpg)
CADEC2006, Drools, Slide 4Copyright 2006, Callista Enterprise AB
Rule Engines – Short History
• Expert systems invented during AI research in the 70th and 80th.
• RETE algorithm invented 1979.• Interest has grown in later years.
– JSR 94 – Java Rule Engine API– Open source implementations– Drools part of JEMS (JBoss
Enterprise Middleware System)
![Page 5: Drools Sofia Jonsson sofia.jonsson@callista.se. CADEC2006, Drools, Slide 2 Copyright 2006, Callista Enterprise AB Agenda Rule Engines - History/Background](https://reader036.vdocuments.net/reader036/viewer/2022072017/56649f055503460f94c197dd/html5/thumbnails/5.jpg)
CADEC2006, Drools, Slide 5Copyright 2006, Callista Enterprise AB
The Problem
• Increasing demand for agile and flexible applications. – Rapid moving markets– Different countries– Standard applications
• Developers aren’t business domain experts.
• Complex business rules.– Complexity tend to grow over time.
![Page 6: Drools Sofia Jonsson sofia.jonsson@callista.se. CADEC2006, Drools, Slide 2 Copyright 2006, Callista Enterprise AB Agenda Rule Engines - History/Background](https://reader036.vdocuments.net/reader036/viewer/2022072017/56649f055503460f94c197dd/html5/thumbnails/6.jpg)
CADEC2006, Drools, Slide 6Copyright 2006, Callista Enterprise AB
Domain Specific Languages
• Used for a very specific problem domain.
• Made possible by Drools’ pluggable semantics framework.
• By specifying your own XML Schema you get rules validation.– Non programmers can edit the
rules!• Combine with default semantics.
![Page 7: Drools Sofia Jonsson sofia.jonsson@callista.se. CADEC2006, Drools, Slide 2 Copyright 2006, Callista Enterprise AB Agenda Rule Engines - History/Background](https://reader036.vdocuments.net/reader036/viewer/2022072017/56649f055503460f94c197dd/html5/thumbnails/7.jpg)
CADEC2006, Drools, Slide 7Copyright 2006, Callista Enterprise AB
Domain Specific Languages - Ex
<drools:rule name="Main applicant must be living in Sweden"><condition>
<loan-application identifier="loanApp"> <main-applicant>
<address><country>
<not-equals>Sverige</not-equals>
</country> </address>
</main-applicant> </loan-application>
</condition><consequence>
<reject identifier="loanApp"> <reason>
Main applicant must be living in Sweden. </reason> </reject>
</consequence></drools:rule>
![Page 8: Drools Sofia Jonsson sofia.jonsson@callista.se. CADEC2006, Drools, Slide 2 Copyright 2006, Callista Enterprise AB Agenda Rule Engines - History/Background](https://reader036.vdocuments.net/reader036/viewer/2022072017/56649f055503460f94c197dd/html5/thumbnails/8.jpg)
CADEC2006, Drools, Slide 8Copyright 2006, Callista Enterprise AB
Summary & Conclusion
• Consider using a rule engine:– If the application must be flexible.– If domain experts should update the
business rules.– If the application logic is very complex.
• Using a rule engine does not come without a cost.
• Consider development/test process.• Alternative approaches:
– Configurable threshold values– Scripting languages, e.g. Groovy
![Page 9: Drools Sofia Jonsson sofia.jonsson@callista.se. CADEC2006, Drools, Slide 2 Copyright 2006, Callista Enterprise AB Agenda Rule Engines - History/Background](https://reader036.vdocuments.net/reader036/viewer/2022072017/56649f055503460f94c197dd/html5/thumbnails/9.jpg)
Questions?