Бизнес-логика
с человеческим лицом
Dmitriy Kontreras
dkontreras@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)
Glossary
Rules (бизнес-правила) – требования и ограничения, которые
используются для принятия решений и формулируются в виде
условий 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

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

  • 1.
  • 2.
    Drools Platform Drools Expert(Rule Engine) Drools Guvnor (Business Rule Management System) Drools Fusion (Complex Event Processing) OptaPlanner (Automated planning) jBPM (Process/Workflow Engine)
  • 3.
    Glossary Rules (бизнес-правила) –требования и ограничения, которые используются для принятия решений и формулируются в виде условий if-then Knowledge Base – база знаний, содержащая бизнес-правила определенные в системе Fact (факт) – единица информации, представляет собой объект доменной модели Working Memory – содержит добавленные факты Agenda – содержит отобранные для выполнения бизнесс-правила и управляет их запуском
  • 4.
  • 6.
    Example 1 Для частноголица: - минимальный первый взнос 10% от стоимости автомобиля - при сроке кредита 60 и более месяцев первый взнос 30% - наличие справки о доходах Для ФЛП: - минимальный первый взнос от 30% - при сроке кредита 60 и более месяцев первый взнос 40% - наличие справки о доходах Автокредит
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 13.
  • 14.
    Additional features Rules templates Conflictresolution Justification-based Truth Maintenance Working Memory Persistence Queries Backward chaining support Rules scheduling Spring integration
  • 15.
    Advantages Возможность декларативного описаниясложной бизнес-логики, что значительно упрощает её реализацию Отделение логики принятия решений от остального кода и как следствие удобство её сопровождения и расширения Возможность поддержки бизнес-правил нетехническими специалистами "Single Source of Truth" Интеграция "из коробки" Широкие возможности процессора правил
  • 16.
    When not touse a Rule Engine Когда проект небольшой (количество бизнес-правил несколько десятков) и нет перспектив его роста Когда бизнес-правила просты Когда бизнес-логика меняется очень редко Когда есть другие более подходящие средства
  • 17.