15
Drools business rule management system Дисклаймер: я никогда с этим не работал, прочитал пол книжки и доки на drools.jboss.org . Все примеры являются вымышленными и скопипащенными с интернета.

drools introduction

Embed Size (px)

DESCRIPTION

introduction in drools

Citation preview

Page 1: drools introduction

Drools business rule management system

Дисклаймер: я никогда с этим не работал, прочитал пол книжки и доки на drools.jboss.org.

Все примеры являются вымышленными и скопипащенными с интернета.

Page 2: drools introduction

Drools – это процессор правил с открытым кодом, написанный на Java и выполняющий правила в соответствии с алгоритмом Рете . Благодаря Drools бизнес-правила приложения можно описывать декларативным образом, используя простой для изучения и понимания язык

Page 3: drools introduction

Преимущества. Зачем нужны правила?

Отделить приложение от изменяющейся логики: Правила могут изменять различные группы людей Не нужно пере-компилировать или редеплоить Все правила в одном месте

Декларативный подход Легко читать и изменять

Централизованность - все находится в одном репозитории

Понятность ( декларативный подход, высокоуровневость)

Скорость и масштабируемость (алгоритм Rete)

Легко находить ошибки - правила легче понять соответственно легче поправить

Page 4: drools introduction

Недостатки (don't think of Drools as the silver bullet)

Нужно вкладывать в обучение - недостаток знаний может дать неэффективные правила ($)

Нужно изменить подход в мышлении при написании правил. Но сделав это раз станет просто и понятно писать быстро и хорошо.

Сложно отлаживать правила в отличии от Java кода

Затраты на память

В ходе работы одного правила могут быть измененны факты, участвующие в работе других правил

Page 5: drools introduction

POJO as fact

Drools 5 поднял простоту POJO-программирования на новый уровень, позволив программистам внедрять POJO-объекты как факты непосредственно в сеанс управления знаниями или то, что в механизме управления правилами называется «рабочей памятью».

Page 6: drools introduction

Rule

Условия правила:

Тип объекта - Applicant

Поле age должно быть < 18

Действие правила:

setValid(false)

Примеры

Page 7: drools introduction

Drools Rule Language: Executing Rules

StatefullKnowledgeSession

KnowledgeSession

StatelessKnowledgeSession

Page 8: drools introduction

Drools Rule Language

KnowledgeBase может быть изменена внутри правил

insert() - вставка объектов в текущую сессию

update() - обновление существующих в рабочей памяти объектов

delete() - удаление объектов из сессии

Page 9: drools introduction

ClassesRule

Результат работы правила:

Примеры

Page 10: drools introduction

Как это работает ?

Page 11: drools introduction

Условные операторы

not Applicant(name = “Bob")

exist Applicant(name = “Bob")

forall ($a : Applicant(name == “Bob”)

forall ($a : Applicant(age = 20) Applicant (this== $a, name == “Sam”))

Page 12: drools introduction

Timers - работа по часам

Timer (interval and cron ) - можно писать обычные cron выражения.

Пример кода:Результат:

..бесконечный timer world

Page 13: drools introduction

Интеграция со Spring и Camel

Page 14: drools introduction

Drools Eclipse IDE

Удобной средой разработки является Eclipse - поддерживает много графических возможностей для работы с Drools. Необходимо всего пара плагинов:

GEF - Eclipse Graphical Editing Frameworkhttp://www.eclipse.org/gef/

Drools Eclipse IDE plugin http://download.jboss.org/drools/release/5.6.0.Final/org.drools.updatesite/plugins/

IntelliJ IDEA JBoss Drools support plugin - подсветка синтаксиса

Page 15: drools introduction

ИсточникиDrools Homepage

http://www.jboss.org/drools/Drools Blog

http://blog.athico.com/Drools Chat

irc.codehaus.org #droolsDrools Mailing List

[email protected]