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

17
Бизнес-логика с человеческим лицом Dmitriy Kontreras [email protected]

Upload: alex-tumanoff

Post on 06-Dec-2014

1.122 views

Category:

Documents


4 download

DESCRIPTION

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

TRANSCRIPT

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

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

Dmitriy [email protected]

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

Drools Platform

Drools Expert (Rule Engine)

Drools Guvnor (Business Rule Management System)

Drools Fusion (Complex Event Processing)

OptaPlanner (Automated planning)

jBPM (Process/Workflow Engine)

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

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

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

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

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

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

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

Drools Expert

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

Example 1

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

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

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

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

Для ФЛП:

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

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

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

Автокредит

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

Example 1. Domain model

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

Example 1. Rules

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

Example 1. Running

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

Example 2. Rules

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

Example 2. Decision table

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

Example 2. DSL Rule

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

Additional features

Rules templates

Conflict resolution

Justification-based Truth Maintenance

Working Memory Persistence

Queries

Backward chaining support

Rules scheduling

Spring integration

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

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

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

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

"Single Source of Truth"

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

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

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

When not to use a Rule Engine

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

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

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

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

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

Q/A