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

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

10 ответов

Решение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам