"drools: декларативная бизнес-логика в...

Post on 06-Dec-2014

1.129 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

"Drools: декларативная бизнес-логика в Java-приложениях" by Дмитрий Контрерас, Senior Java Developer, Luxoft

TRANSCRIPT

Бизнес-логика с человеческим лицом

Dmitriy Kontrerasdkontreras@gmail.com

Drools Platform

Drools Expert (Rule Engine)

Drools Guvnor (Business Rule Management System)

Drools Fusion (Complex Event Processing)

OptaPlanner (Automated planning)

jBPM (Process/Workflow Engine)

GlossaryRules (бизнес-правила) – требования и ограничения, которые используются для принятия решений и формулируются в виде условий if-then

Knowledge Base – база знаний, содержащая бизнес-правила определенные в системе

Fact (факт) – единица информации, представляет собой объект доменной модели

Working Memory – содержит добавленные факты

Agenda – содержит отобранные для выполнения бизнесс-правила и управляет их запуском

Drools Expert

Example 1

Для частного лица:

- минимальный первый взнос 10% от стоимости автомобиля

- при сроке кредита 60 и более месяцев первый взнос 30%

- наличие справки о доходах

Для ФЛП:

- минимальный первый взнос от 30%

- при сроке кредита 60 и более месяцев первый взнос 40%

- наличие справки о доходах

Автокредит

Example 1. Domain model

Example 1. Rules

Example 1. Running

Example 2. Rules

Example 2. Decision table

Example 2. DSL Rule

Additional features

Rules templates

Conflict resolution

Justification-based Truth Maintenance

Working Memory Persistence

Queries

Backward chaining support

Rules scheduling

Spring integration

AdvantagesВозможность декларативного описания сложной бизнес-логики, что значительно упрощает её реализацию

Отделение логики принятия решений от остального кода и как следствие удобство её сопровождения и расширения

Возможность поддержки бизнес-правил нетехническими специалистами

"Single Source of Truth"

Интеграция "из коробки"

Широкие возможности процессора правил

When not to use a Rule Engine

Когда проект небольшой (количество бизнес-правил несколько десятков) и нет перспектив его роста

Когда бизнес-правила просты

Когда бизнес-логика меняется очень редко

Когда есть другие более подходящие средства

Q/A

top related