2012-04-27 3 views
1

У меня есть автономное приложение Java, для которого я должен интегрировать механизм правил. Я должен определить правила, используя файл свойств или файл XML. Мне нужно, чтобы Rules Engine читал эти правила, определенные в свойствах или файле XML, и, соответственно, реализовал код в приложении.Правила Двигатель для автономного приложения Java

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

Пожалуйста, направляйте меня, если есть такие механизмы правил, которые я могу использовать?

+1

Вы уже пробовали какое-либо программное обеспечение? Если это так, укажите это также: теперь вы можете получить предложения, которые вы, возможно, уже пробовали (и отклонили). Кроме того, вы могли бы объяснить немного больше об этих правилах (примеры помогут). –

ответ

-1

Я рекомендую вам Drools

Check other options also

+0

Я отмечаю ваш ответ, так как ваш ответ не объясняет, почему вы рекомендуете использовать слюни. Из вопроса ясно, что пользователь уже выполнил базовое google seach. – snegi

1

Штекер Alert!

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

Философия проекта основана на моем личном опыте, что JSR-94 является чрезмерным, большинство правил двигателей слишком тяжелы, со слишком большим количеством зависимостей и крутой кривой обучения.

Roolie не адресует «функциональные» правила, которые изменяют состояние приложения (это должно быть Java в любом случае IMHO).

Вместо этого он позволяет разработчику реализовывать простые правила с помощью одного метода «передачи» и связывать их вместе с логической логикой короткого замыкания в файле XML. Он не имеет никакой зависимости от времени выполнения и очень быстро.

Это простое решение простой проблемы (например, пользователь может видеть файл? Только если они «вошли в систему», «admin» или «power user» и «имеет достаточно сообщений»).

Составное правило будет «UserCanSeeFile» и будет состоять из «IsLoggedIn», «IsAdmin», «IsPowerUser» и «HasEnoughPosts».

Если позже вам все равно, сколько сообщений им нужно, чтобы они могли видеть файл, просто держите эту строку XML, и все готово.

1

Я экспериментировал с несколькими библиотеками оценки выражений в java. Я нашел MVEL лучшим. В моем случае я читал «правила» из базы данных. Так что мои правила выглядели как

player.platform == '' IOS & & (player.ltv> 100 || player.status> = ЗОЛОТО)

Теперь то, что я сделал для разбора выше выражения для всех переменные. В моем случае переменной был любой токен с точкой (object.method). Это сработало для меня. Не уверен, что это сработает или нет.

Но как только все переменные заменяются значениями. Я просто вызвал MVEL.evaluate().

Далее в моем случае все выражения, которые мне нужно оценить, выдадут в логическом результате. Но MVEL может оценивать любое выражение с разными типами результатов.

Смежные вопросы