SlideShare a Scribd company logo
1 of 17
Бизнес-логика
с человеческим лицом
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

More Related Content

Viewers also liked

Decision Modeling with OpenRules and DecisionsFirst Modeler
Decision Modeling with OpenRules and DecisionsFirst ModelerDecision Modeling with OpenRules and DecisionsFirst Modeler
Decision Modeling with OpenRules and DecisionsFirst ModelerDecision Management Solutions
 
«Полиматика». Новое в пятой версии платформы
«Полиматика». Новое в пятой версии платформы«Полиматика». Новое в пятой версии платформы
«Полиматика». Новое в пятой версии платформыПолиматика Рус
 
Дмитрий Контрерас «Back to the future: the evolution of the Java Type System»
Дмитрий Контрерас «Back to the future: the evolution of the Java Type System»Дмитрий Контрерас «Back to the future: the evolution of the Java Type System»
Дмитрий Контрерас «Back to the future: the evolution of the Java Type System»Anna Shymchenko
 
Patterns of parallel programming
Patterns of parallel programmingPatterns of parallel programming
Patterns of parallel programmingAlex Tumanoff
 
Rule Engine: Drools .Net
Rule Engine: Drools .NetRule Engine: Drools .Net
Rule Engine: Drools .NetGuo Albert
 
Drools and jBPM 6 Overview
Drools and jBPM 6 OverviewDrools and jBPM 6 Overview
Drools and jBPM 6 OverviewMark Proctor
 
Developing and deploying applications with Spring Boot and Docker (@oakjug)
Developing and deploying applications with Spring Boot and Docker (@oakjug)Developing and deploying applications with Spring Boot and Docker (@oakjug)
Developing and deploying applications with Spring Boot and Docker (@oakjug)Chris Richardson
 
Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Mark Proctor
 
Rule Engine & Drools
Rule Engine & DroolsRule Engine & Drools
Rule Engine & DroolsSandip Jadhav
 

Viewers also liked (12)

Decision Modeling with OpenRules and DecisionsFirst Modeler
Decision Modeling with OpenRules and DecisionsFirst ModelerDecision Modeling with OpenRules and DecisionsFirst Modeler
Decision Modeling with OpenRules and DecisionsFirst Modeler
 
«Полиматика». Новое в пятой версии платформы
«Полиматика». Новое в пятой версии платформы«Полиматика». Новое в пятой версии платформы
«Полиматика». Новое в пятой версии платформы
 
Дмитрий Контрерас «Back to the future: the evolution of the Java Type System»
Дмитрий Контрерас «Back to the future: the evolution of the Java Type System»Дмитрий Контрерас «Back to the future: the evolution of the Java Type System»
Дмитрий Контрерас «Back to the future: the evolution of the Java Type System»
 
Patterns of parallel programming
Patterns of parallel programmingPatterns of parallel programming
Patterns of parallel programming
 
Anti patterns
Anti patternsAnti patterns
Anti patterns
 
Rule Engine: Drools .Net
Rule Engine: Drools .NetRule Engine: Drools .Net
Rule Engine: Drools .Net
 
Luxoft
LuxoftLuxoft
Luxoft
 
Drools and jBPM 6 Overview
Drools and jBPM 6 OverviewDrools and jBPM 6 Overview
Drools and jBPM 6 Overview
 
Developing and deploying applications with Spring Boot and Docker (@oakjug)
Developing and deploying applications with Spring Boot and Docker (@oakjug)Developing and deploying applications with Spring Boot and Docker (@oakjug)
Developing and deploying applications with Spring Boot and Docker (@oakjug)
 
Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)
 
Rule Engine & Drools
Rule Engine & DroolsRule Engine & Drools
Rule Engine & Drools
 
BPMN 2.0 Fundamentals
BPMN 2.0 FundamentalsBPMN 2.0 Fundamentals
BPMN 2.0 Fundamentals
 

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

САПР и ГИС
САПР и ГИССАПР и ГИС
САПР и ГИСSoftline
 
Как «рулить» бизнес-правилами С BRMS-системой!
Как «рулить» бизнес-правилами С BRMS-системой!Как «рулить» бизнес-правилами С BRMS-системой!
Как «рулить» бизнес-правилами С BRMS-системой!КРОК
 
Ddd happy dev-2013-tsepkov
Ddd happy dev-2013-tsepkovDdd happy dev-2013-tsepkov
Ddd happy dev-2013-tsepkovMaxim Tsepkov
 
Золотая середина при выборе СЭД
Золотая середина при выборе СЭДЗолотая середина при выборе СЭД
Золотая середина при выборе СЭДLANIT
 
Role of Semantic Models in smarter industrial ops Chapter 2 of current MOM Ch...
Role of Semantic Models in smarter industrial ops Chapter 2 of current MOM Ch...Role of Semantic Models in smarter industrial ops Chapter 2 of current MOM Ch...
Role of Semantic Models in smarter industrial ops Chapter 2 of current MOM Ch...Bill Bosler, P.E.
 
Внедрение систем электронного документооборота (СЭД)
Внедрение систем электронного документооборота (СЭД)Внедрение систем электронного документооборота (СЭД)
Внедрение систем электронного документооборота (СЭД)MauerGroup LLC
 
Система электронного документооборота Directum
Система электронного документооборота DirectumСистема электронного документооборота Directum
Система электронного документооборота DirectumNatasha Zaverukha
 
ELMA - Управление бизнес-процессами в компании. Практические приемы и ключевы...
ELMA - Управление бизнес-процессами в компании. Практические приемы и ключевы...ELMA - Управление бизнес-процессами в компании. Практические приемы и ключевы...
ELMA - Управление бизнес-процессами в компании. Практические приемы и ключевы...Рамиль Миннизянов
 
Как выбрать информационную систему
Как выбрать информационную системуКак выбрать информационную систему
Как выбрать информационную системуKate Koltunova
 
Опыт внедрения Agile в заказной разработке
Опыт внедрения Agile в заказной разработкеОпыт внедрения Agile в заказной разработке
Опыт внедрения Agile в заказной разработкеЮрий Гугнин
 
Agile/Scrum методологии разработки программного обеспечения
Agile/Scrum методологии разработки программного обеспеченияAgile/Scrum методологии разработки программного обеспечения
Agile/Scrum методологии разработки программного обеспеченияjazzteam
 
Implementing Plunet BM at EGO Translating Company
Implementing Plunet BM at EGO Translating CompanyImplementing Plunet BM at EGO Translating Company
Implementing Plunet BM at EGO Translating CompanyAndreyLeites
 
บริหารเวลา
บริหารเวลาบริหารเวลา
บริหารเวลาtoomtam
 
Василий Шабат - методология внедрения
Василий Шабат - методология внедренияВасилий Шабат - методология внедрения
Василий Шабат - методология внедренияFinGrad
 
Василий Шабат - методология внедрения
Василий Шабат -  методология внедренияВасилий Шабат -  методология внедрения
Василий Шабат - методология внедренияFinGrad
 

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

САПР и ГИС
САПР и ГИССАПР и ГИС
САПР и ГИС
 
Как «рулить» бизнес-правилами С BRMS-системой!
Как «рулить» бизнес-правилами С BRMS-системой!Как «рулить» бизнес-правилами С BRMS-системой!
Как «рулить» бизнес-правилами С BRMS-системой!
 
Ddd happy dev-2013-tsepkov
Ddd happy dev-2013-tsepkovDdd happy dev-2013-tsepkov
Ddd happy dev-2013-tsepkov
 
Золотая середина при выборе СЭД
Золотая середина при выборе СЭДЗолотая середина при выборе СЭД
Золотая середина при выборе СЭД
 
Role of Semantic Models in smarter industrial ops Chapter 2 of current MOM Ch...
Role of Semantic Models in smarter industrial ops Chapter 2 of current MOM Ch...Role of Semantic Models in smarter industrial ops Chapter 2 of current MOM Ch...
Role of Semantic Models in smarter industrial ops Chapter 2 of current MOM Ch...
 
Внедрение систем электронного документооборота (СЭД)
Внедрение систем электронного документооборота (СЭД)Внедрение систем электронного документооборота (СЭД)
Внедрение систем электронного документооборота (СЭД)
 
Scrum in simtech
Scrum in simtechScrum in simtech
Scrum in simtech
 
Crossover for BPM
Crossover for BPMCrossover for BPM
Crossover for BPM
 
Система электронного документооборота Directum
Система электронного документооборота DirectumСистема электронного документооборота Directum
Система электронного документооборота Directum
 
ELMA - Управление бизнес-процессами в компании. Практические приемы и ключевы...
ELMA - Управление бизнес-процессами в компании. Практические приемы и ключевы...ELMA - Управление бизнес-процессами в компании. Практические приемы и ключевы...
ELMA - Управление бизнес-процессами в компании. Практические приемы и ключевы...
 
Как выбрать информационную систему
Как выбрать информационную системуКак выбрать информационную систему
Как выбрать информационную систему
 
Пезентация
ПезентацияПезентация
Пезентация
 
Scrum framework
Scrum frameworkScrum framework
Scrum framework
 
Опыт внедрения Agile в заказной разработке
Опыт внедрения Agile в заказной разработкеОпыт внедрения Agile в заказной разработке
Опыт внедрения Agile в заказной разработке
 
Agile/Scrum методологии разработки программного обеспечения
Agile/Scrum методологии разработки программного обеспеченияAgile/Scrum методологии разработки программного обеспечения
Agile/Scrum методологии разработки программного обеспечения
 
Implementing Plunet BM at EGO Translating Company
Implementing Plunet BM at EGO Translating CompanyImplementing Plunet BM at EGO Translating Company
Implementing Plunet BM at EGO Translating Company
 
บริหารเวลา
บริหารเวลาบริหารเวลา
บริหารเวลา
 
Василий Шабат - методология внедрения
Василий Шабат - методология внедренияВасилий Шабат - методология внедрения
Василий Шабат - методология внедрения
 
Василий Шабат - методология внедрения
Василий Шабат -  методология внедренияВасилий Шабат -  методология внедрения
Василий Шабат - методология внедрения
 
BPM ACM
BPM ACM BPM ACM
BPM ACM
 

More from Alex Tumanoff

Sql server 2019 New Features by Yevhen Nedaskivskyi
Sql server 2019 New Features by Yevhen NedaskivskyiSql server 2019 New Features by Yevhen Nedaskivskyi
Sql server 2019 New Features by Yevhen NedaskivskyiAlex Tumanoff
 
Odessa .net-user-group-sql-server-2019-hidden-gems by Denis Reznik
Odessa .net-user-group-sql-server-2019-hidden-gems by Denis ReznikOdessa .net-user-group-sql-server-2019-hidden-gems by Denis Reznik
Odessa .net-user-group-sql-server-2019-hidden-gems by Denis ReznikAlex Tumanoff
 
Azure data bricks by Eugene Polonichko
Azure data bricks by Eugene PolonichkoAzure data bricks by Eugene Polonichko
Azure data bricks by Eugene PolonichkoAlex Tumanoff
 
Sdlc by Anatoliy Anthony Cox
Sdlc by  Anatoliy Anthony CoxSdlc by  Anatoliy Anthony Cox
Sdlc by Anatoliy Anthony CoxAlex Tumanoff
 
Kostenko ux november-2014_1
Kostenko ux november-2014_1Kostenko ux november-2014_1
Kostenko ux november-2014_1Alex Tumanoff
 
Java 8 in action.jinq.v.1.3
Java 8 in action.jinq.v.1.3Java 8 in action.jinq.v.1.3
Java 8 in action.jinq.v.1.3Alex Tumanoff
 
Sql saturday azure storage by Anton Vidishchev
Sql saturday azure storage by Anton VidishchevSql saturday azure storage by Anton Vidishchev
Sql saturday azure storage by Anton VidishchevAlex Tumanoff
 
Serialization and performance by Sergey Morenets
Serialization and performance by Sergey MorenetsSerialization and performance by Sergey Morenets
Serialization and performance by Sergey MorenetsAlex Tumanoff
 
Игры для мобильных платформ by Алексей Рыбаков
Игры для мобильных платформ by Алексей РыбаковИгры для мобильных платформ by Алексей Рыбаков
Игры для мобильных платформ by Алексей РыбаковAlex Tumanoff
 
Android sync adapter
Android sync adapterAndroid sync adapter
Android sync adapterAlex Tumanoff
 
Async clinic by by Sergey Teplyakov
Async clinic by by Sergey TeplyakovAsync clinic by by Sergey Teplyakov
Async clinic by by Sergey TeplyakovAlex Tumanoff
 
Deep Dive C# by Sergey Teplyakov
Deep Dive  C# by Sergey TeplyakovDeep Dive  C# by Sergey Teplyakov
Deep Dive C# by Sergey TeplyakovAlex Tumanoff
 
Bdd by Dmitri Aizenberg
Bdd by Dmitri AizenbergBdd by Dmitri Aizenberg
Bdd by Dmitri AizenbergAlex Tumanoff
 
Неформальные размышления о сертификации в IT
Неформальные размышления о сертификации в ITНеформальные размышления о сертификации в IT
Неформальные размышления о сертификации в ITAlex Tumanoff
 
Разработка расширений Firefox
Разработка расширений FirefoxРазработка расширений Firefox
Разработка расширений FirefoxAlex Tumanoff
 
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior So...
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior So..."AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior So...
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior So...Alex Tumanoff
 
Lambda выражения и Java 8
Lambda выражения и Java 8Lambda выражения и Java 8
Lambda выражения и Java 8Alex Tumanoff
 
XP практики в проектах с тяжелой наследственностью
XP практики в проектах с тяжелой наследственностьюXP практики в проектах с тяжелой наследственностью
XP практики в проектах с тяжелой наследственностьюAlex Tumanoff
 
Первые шаги во фрилансе
Первые шаги во фрилансеПервые шаги во фрилансе
Первые шаги во фрилансеAlex Tumanoff
 

More from Alex Tumanoff (20)

Sql server 2019 New Features by Yevhen Nedaskivskyi
Sql server 2019 New Features by Yevhen NedaskivskyiSql server 2019 New Features by Yevhen Nedaskivskyi
Sql server 2019 New Features by Yevhen Nedaskivskyi
 
Odessa .net-user-group-sql-server-2019-hidden-gems by Denis Reznik
Odessa .net-user-group-sql-server-2019-hidden-gems by Denis ReznikOdessa .net-user-group-sql-server-2019-hidden-gems by Denis Reznik
Odessa .net-user-group-sql-server-2019-hidden-gems by Denis Reznik
 
Azure data bricks by Eugene Polonichko
Azure data bricks by Eugene PolonichkoAzure data bricks by Eugene Polonichko
Azure data bricks by Eugene Polonichko
 
Sdlc by Anatoliy Anthony Cox
Sdlc by  Anatoliy Anthony CoxSdlc by  Anatoliy Anthony Cox
Sdlc by Anatoliy Anthony Cox
 
Kostenko ux november-2014_1
Kostenko ux november-2014_1Kostenko ux november-2014_1
Kostenko ux november-2014_1
 
Java 8 in action.jinq.v.1.3
Java 8 in action.jinq.v.1.3Java 8 in action.jinq.v.1.3
Java 8 in action.jinq.v.1.3
 
Spring.new hope.1.3
Spring.new hope.1.3Spring.new hope.1.3
Spring.new hope.1.3
 
Sql saturday azure storage by Anton Vidishchev
Sql saturday azure storage by Anton VidishchevSql saturday azure storage by Anton Vidishchev
Sql saturday azure storage by Anton Vidishchev
 
Serialization and performance by Sergey Morenets
Serialization and performance by Sergey MorenetsSerialization and performance by Sergey Morenets
Serialization and performance by Sergey Morenets
 
Игры для мобильных платформ by Алексей Рыбаков
Игры для мобильных платформ by Алексей РыбаковИгры для мобильных платформ by Алексей Рыбаков
Игры для мобильных платформ by Алексей Рыбаков
 
Android sync adapter
Android sync adapterAndroid sync adapter
Android sync adapter
 
Async clinic by by Sergey Teplyakov
Async clinic by by Sergey TeplyakovAsync clinic by by Sergey Teplyakov
Async clinic by by Sergey Teplyakov
 
Deep Dive C# by Sergey Teplyakov
Deep Dive  C# by Sergey TeplyakovDeep Dive  C# by Sergey Teplyakov
Deep Dive C# by Sergey Teplyakov
 
Bdd by Dmitri Aizenberg
Bdd by Dmitri AizenbergBdd by Dmitri Aizenberg
Bdd by Dmitri Aizenberg
 
Неформальные размышления о сертификации в IT
Неформальные размышления о сертификации в ITНеформальные размышления о сертификации в IT
Неформальные размышления о сертификации в IT
 
Разработка расширений Firefox
Разработка расширений FirefoxРазработка расширений Firefox
Разработка расширений Firefox
 
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior So...
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior So..."AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior So...
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior So...
 
Lambda выражения и Java 8
Lambda выражения и Java 8Lambda выражения и Java 8
Lambda выражения и Java 8
 
XP практики в проектах с тяжелой наследственностью
XP практики в проектах с тяжелой наследственностьюXP практики в проектах с тяжелой наследственностью
XP практики в проектах с тяжелой наследственностью
 
Первые шаги во фрилансе
Первые шаги во фрилансеПервые шаги во фрилансе
Первые шаги во фрилансе
 

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

  • 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 – содержит отобранные для выполнения бизнесс-правила и управляет их запуском
  • 5.
  • 6. Example 1 Для частного лица: - минимальный первый взнос 10% от стоимости автомобиля - при сроке кредита 60 и более месяцев первый взнос 30% - наличие справки о доходах Для ФЛП: - минимальный первый взнос от 30% - при сроке кредита 60 и более месяцев первый взнос 40% - наличие справки о доходах Автокредит
  • 12.
  • 14. Additional features Rules templates Conflict resolution Justification-based Truth Maintenance Working Memory Persistence Queries Backward chaining support Rules scheduling Spring integration
  • 15. Advantages Возможность декларативного описания сложной бизнес-логики, что значительно упрощает её реализацию Отделение логики принятия решений от остального кода и как следствие удобство её сопровождения и расширения Возможность поддержки бизнес-правил нетехническими специалистами "Single Source of Truth" Интеграция "из коробки" Широкие возможности процессора правил
  • 16. When not to use a Rule Engine Когда проект небольшой (количество бизнес-правил несколько десятков) и нет перспектив его роста Когда бизнес-правила просты Когда бизнес-логика меняется очень редко Когда есть другие более подходящие средства
  • 17. Q/A