"drools: декларативная бизнес-логика в...
DESCRIPTION
"Drools: декларативная бизнес-логика в Java-приложениях" by Дмитрий Контрерас, Senior Java Developer, LuxoftTRANSCRIPT
Бизнес-логика с человеческим лицом
Dmitriy [email protected]
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