Подтвердить что ты не робот

Успешно ли была система, которая включила механизм правил?

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

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

Было бы полезно узнать о ситуациях, когда механизм правил действительно был благом (особенно в торговой среде).

4b9b3361

Ответ 1

Я видел два приложения, которые использовали движок Blaze Rete от Fair Issac.

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

Еще одно приложение использовало деревья решений для представления по порядку сотен вопросов о медицинской форме для распоряжения клиентами. Это было сделано так элегантно, что деловые люди могут обновлять правила по мере необходимости, без привлечения разработчика. (Тем не менее, он должен быть развернут одним.) Я бы назвал это большим успехом.

Таким образом, это зависит от того, насколько хорошо сфокусирована проблема, размер набора правил, знания разработчиков. Мое предубеждение состоит в том, что просто создание механизма правил является единственной точкой отказа и правил сброса в нее, вероятно, не является хорошим подходом. Я бы начал использовать подход, основанный на данных или табличном управлении, и расти, пока не понадобится механизм правил. Я также хотел бы инкапсулировать механизм правил как часть поведения объекта. Я бы спрятал механизм правил от пользователей и попытался разделить пространство правил на модель домена.

Ответ 2

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

Например, если вы должны были иметь копейки в определенных штатах или определенные комбинации франшизы и копейки не допускались ни из-за соображений продукта, ни из-за того, что это было просто незаконно из-за закона штата.

Число штатов, в которых работала компания, наряду с постоянным изменением правил (ежеквартально) сделало бы это головокружительной практикой кодирования. Что еще более важно, это не в опыте программиста. Он добавляет лишнюю бессмысленную связь, когда конечный пользователь описывает правило, которое должно быть введено в действие программисту, который не является экспертом в сфере страхования, как они.

Разработанный правильно, механизм правил может по-прежнему включать систему документооборота, которая позволяет провести хорошее тестирование. В этом случае правила были сохранены в базе данных, а также были базы данных QA и PROD. Таким образом, BA может проверить свои правила в QA, а затем продвигать их в PROD.

Как и в любом случае, обычно это касается реализации, а не фактической техники.

Ответ 3

Да, у Microsoft есть механизм бизнес-правил (BRE) в BizTalk, который успешно используется в течение многих лет. Я слышал, что у них клиенты покупали BizTalk (очень дорого) только для BRE.

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

Ответ 4

Механизм правил - это нечто большее, чем нечто, выполняющее декларативные утверждения. Они имеют два основных преимущества (что я вижу):

  • Ваша бизнес-логика поддерживается из одного места вместо того, чтобы посыпать весь код приложения. Технически, хорошо разработанное приложение должно уже делать это с архитектурой, независимо от того, присутствует ли механизм правил или нет.
  • Вам нужно беспокоиться [меньше] о зависимостях между декларативными утверждениями. Механизм правил должен быть достаточно умным, чтобы определять порядок запуска правил на основе зависимостей. Вы можете обнаружить, что некоторые механизмы правил поддерживают последовательный порядок правил в наборе правил или наборах правил (групп правил) в определенном порядке, но это не совсем в духе декларативного программирования. Многие механизмы правил используют Rete (алгоритм), чтобы решить, когда планировать выполнение декларативных операторов.

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

Если вы остановились здесь, вы, вероятно, будете использовать программистов для поддержания правил и использования механизма правил в качестве удобного способа построения уровня бизнес-логики в своем приложении. Некоторые механизмы правил предлагают что-то называемые шаблонами, которые позволяют вам определять шаблоны правил. Преимущество заключается в том, что нетехнические пользователи должны иметь возможность писать свои собственные правила и изменять существующие правила.

Механизм правил - еще один инструмент в сундуке инструмента, который при правильном использовании может быть ценным.

Ответ 5

Проблема со многими из этих двигателей правил - это отсутствие скорости и тот факт, что замена или расширение правил может прерывать существующие рабочие правила тонким образом. Поэтому вам все равно придется повторно протестировать систему после каждого изменения правила. Таким образом, вы в основном просто обмениваетесь одним компьютерным языком на другой - с гораздо меньшим количеством пользователей. Как упоминалось еще один плакат, я еще не видел, чтобы бизнес-аналитик успешно использовал механизм правил. Вам все равно нужен программист.

Ответ 6

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

Я вижу это в двух лагерях: логических программистов и бизнес-пользователей. Различные инструменты нацелены на разные наборы, некоторые из них. Успешные деловые пользователи работали только тогда, когда они были подмножеством логики, и у них также был способ определить тестовые примеры и запустить их самостоятельно (и они готовы мыслить логически). Логические программисты реже, но их часто можно найти, исходя из неинтересных программных фонов (они также являются людьми, которые находят функциональное программирование интуитивно понятным).

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

Ответ 7

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

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

На самом деле.

Ответ 8

Мой опыт ограничен (i) не так много и (ii) пролог; но я могу с уверенностью сказать, что механизм правил может помочь вам выразить пропозициональные концепции намного чище, чем процедурный код.

Ответ 9

Механизмы правил обычно используются в страховом бизнесе. Я работал над системами с сотнями (600ish) правилами, которые были реализованы в движке правил. Он работал очень хорошо.

Ответ 10

У вас есть кредитный рейтинг? Возможно, оценка FICO? Это F воздушный I saac CO rporation, разработчики механизма правил Blaze.

Ответ 11

Некоторое время я работал над проектом распределенных вычислений PEATE, который разрабатывал систему для расчета крупномасштабных атмосферных данных с большими объемами. Система имела три части: диспетчер данных, планировщик и компонент выполнения алгоритма. Там может быть любое количество этих компонентов, все это делается через веб-службы, но то, что это позволило, было для разных исследователей выполнять произвольные задания против произвольных данных, а также позволяло подключать различные механизмы планирования с изменением требований.

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

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