#java #rules #drools #rule-engine
#java #Правила #пускает слюни #движок правил
Вопрос:
Я пытаюсь найти подходящее решение / фреймворк для централизации и поддержания правил. Количество правил огромно, и они часто меняются. Я просмотрел движки правил, такие как Drools, но нахожу их неподходящими по таким причинам, как сложность выполнения правил, которая влияет на ремонтопригодность, и накладные расходы на централизацию правил (движкам правил часто требуется другая система репозитория для хранения правил).
Решение / фреймворк, который я ищу, в идеале должен позволять мне писать правила на стандартных языках программирования, таких как Java, с небольшими накладными расходами на централизацию и поддержание правил.
Заранее большое спасибо.
Комментарии:
1. Большинство движков правил, которые я видел, используют DSL. ИМХО, движки правил, лучше всего программируемые на Java, являются очень простыми. Возможно, вам нужен движок правил, или у вас на самом деле нет правил, у вас просто есть обычная компьютерная программа, которая что-то делает. (Может быть, вы имеете в виду программирование, управляемое событиями ??)
Ответ №1:
Drools 5.2.0 будет иметь новый parser API, который — теоретически — позволяет вам избежать DRL и написать левую часть движка правил (LHS) на Java, очень похоже на то, как вы бы писали запрос JPA с помощью JPA 2.0 criteria API.
Комментарии:
1. Звучит великолепно, пожалуйста, дайте мне знать, когда выйдет 5.2? Если вы также можете, укажите мне на некоторые ресурсы о том, как использовать Drools для централизации и поддержания правил без guvnor?
Ответ №2:
Пробовали ли вы поддержку Spring для динамических языков? Вы можете вызывать компоненты, написанные на таких языках, как Groovy или JRuby (я написал поддержку JavaScript некоторое время назад, если вам интересно). Исходный код этих динамических компонентов может быть извлечен в отдельные файлы, которые периодически сканируются для обнаружения изменений во время выполнения.
Намного проще, но все еще мощно.
Комментарии:
1. Изменение правил во время выполнения не является для меня таким уж обязательным требованием, в основном мне нужно решение / фреймворк, который поможет централизовать и лучше поддерживать правила.