Какой механизм правил мне следует использовать?

Какие системы правил являются лучшими или наиболее популярными? Я еще не остановился на языке программирования, поэтому расскажите мне, какой механизм правил и какие языки программирования он поддерживает.

Ответов (10)

Решение

Я один из авторов Drools, я не буду продавать свои товары.

Но некоторые другие варианты - это Jess (не с открытым исходным кодом), но с использованием синтаксиса клипов (который мы также поддерживаем подмножество), что является своего рода диалектом лиспа.

Это действительно зависит от того, для чего вы это хотите, у Хейли есть сильная технология естественного языка (и они недавно приобрели RuleBurst - у которого также есть интересная технология естественного языка, которая может работать с текстовыми документами со встроенными правилами - например, с юридической документацией). RuleBurst также смог настроить таргетинг на время выполнения .Net (есть также "порт" Drools.net - я не видел, что он делал в последнее время, увы, не хватило времени). Хорошо, я уберу свой сутенерский шик ... извините за это.

Я проверил правила JBoss aka Drools, и это выглядит довольно хорошо. Я бы хотел услышать от людей, использующих его в продакшене, потому что мне, вероятно, понадобится механизм правил и в моем текущем проекте.

В зависимости от ваших требований, возможно, стоит взглянуть на Windows Workflow Foundation (.NET 3.5).

Механизм правил .NET InRule поддерживает WF и BizTalk; Я не пробовал, поэтому не знаю, хорошо ли это.

Это отличная статья Мартина Фаулера, в которой обсуждается, когда могут быть полезны механизмы правил. Вы можете найти это полезным.

http://martinfowler.com/bliki/RulesEngine.html

Inrule see сайт очень хороший!

это механизм правил на основе .NET с надежным SDK и приятным пользовательским интерфейсом для нетехнических пользователей. В прошлом у меня отлично работало - почти вдвое сократило мои затраты на разработку.

У меня есть некоторый опыт работы с правилами Haley Expert Rules и Haley Office Rules. Обе хорошие системы, но мне нужно знать немного больше о том, для чего вы хотите их использовать, чтобы дать окончательный ответ (см. http://www.haley.com )

Оба они поддерживают C# и Java (и, я думаю, также API веб-службы).

Разница между ними в основном заключается в том, сколько моделирования естественного языка вы хотите использовать. Правила Office позволяют бизнес-пользователям писать правила в документе Office и в основном ориентированы на моделирование законодательных требований. Экспертные правила могут быть немного более гибкими в определении того, как они обрабатывают естественный язык, но требуют больше работы для определения языковых структур заранее.

Надеюсь, что-то из этого поможет.

Мы использовали как http://jatha.sourceforge.net, так и http://www.jboss.com/products/rules . Они оба довольно хороши, но по большей части правила JBoss кажутся мне излишними для многих вещей, которые делают люди. Оба они основаны на Java.

Стоит запомнить десятое правило программирования Гринспана и сразу перейти к его импорту :)

WF уже доступен в .NET 3.0. Это немного ошибочно, хотя на стороне конструктора в Visual Studio и может стать довольно запутанным. Я использую его на Sharepoint (где WF в любом случае является вашим единственным вариантом), и в целом я полностью им доволен, хотя кривая обучения довольно крутая.

«Основы WF» - хорошая книга для начала, поскольку они реализуют полное решение от начала до конца и объясняют лежащие в его основе концепции.

Я нашел еще один механизм правил, который поддерживает различные типы правил; Процедура, вывод (RETE) и FlowRule. Это довольно гибкий и расширяемый механизм правил (также управляемый событиями). Некоторое время назад у них была экспресс-версия как бесплатная версия.

Взгляните на http://www.flexrule.com

Для очень хорошо понятных процедурных правил (например, правил допуска, правил страхования, правил аудита и т. Д.) Простые таблицы решений на доменно-специфическом языке могут дать вам производительность и простоту без накладных расходов движков на основе RETE.

Подобный механизм правил с открытым исходным кодом Java можно найти на сайте DTRules.