Можно ли использовать JBoss Drools для массового присвоения кредита для торговых операций? - PullRequest
1 голос
/ 28 декабря 2010

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

Я не использовал Drools или не подвергался им.

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

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

Спасибо.

Ответы [ 2 ]

2 голосов
/ 28 декабря 2010

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

Что касается реализации в вашей базе данных:

  • Либо примените правила кредитования, прежде чем сохраните запись продаж на своем бизнес-уровне (на стороне сервера).Если у вас есть трехуровневая архитектура (клиент - java сервер - база данных), это должно быть достаточно просто.Возможно, вы захотите использовать StatelessSession (но только один раз создать свой KnowlegdeBase).

  • Либо пометить запись о продажах с логическим значением alreadyCreditChecked false, отправить сигнал наотдельный процесс, который извлекает тех, кто еще не проверен, и проверяет их.

2 голосов
/ 28 декабря 2010

Drools - это механизм правил Rete. Я не вижу, что это имеет отношение к массовым обновлениям постоянных данных.

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

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

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

Проблема с хранимым процессом заключается в том, что он связывает вас с этим поставщиком базы данных и выполняет для событий базы данных, таких как BEFORE или AFTER INSERT или UPDATE. Он не будет знать о ваших деловых событиях, таких как «правила говорят мне, что этот человек имеет право на кредит», если вы не включите его в хранимый код процедуры.

Если вы делаете это, вам не нужны слюни. Оба являются взаимоисключающими или избыточными.

...