Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What problem/s does a Rule Engine Algorithm solves? [closed]

What problem/s does a Rule Engine Algorithm solve?
Which are the recommended ones?

like image 735
Itay Moav -Malimovka Avatar asked Mar 16 '10 20:03

Itay Moav -Malimovka


People also ask

What is a rules engine used for?

Rules engines or inference engines serve as pluggable software components which execute business rules that a business rules approach has externalized or separated from application code. This externalization or separation allows business users to modify the rules without the need for IT intervention.

What is one of the greatest benefits of a rules engine?

The most benefit of using business rule engines is that they help make processes more efficient. The software automates repetitive tasks that may need human attention, so employees don't have to do them manually anymore.

Why do we use rule engine in Java?

It uses annotation-based classes and methods for injecting business logic into the application. Easy Rules can be handy for developers to create and maintain applications with business logic that's entirely separated from the application itself.

What should I look for in a rule engine?

In the case of a rules engine, when looking at the depth of functionality we need to see if it supports complex logic building, how well it handles the time dimension and how it deals with uncertainty.


2 Answers

A rules engine can encapsulate business logic, often in a declarative manner. This avoids the need to custom-code business logic in software.

A rules engine algorithm is how the rule matching and triggering is implemented, so it's an implementation detail rather that actually solving a problem itself. Algorithms might have different non-functional strengths or weaknesses. A common example of a rules engine algorithm is the Rete Algorithm, used in the Java rules engines JESS and Drools.

like image 112
brabster Avatar answered Sep 19 '22 11:09

brabster


  • The problem is just too fiddly for traditional code: The problem may not be complex, but you can't see a non-fragile way of building it.

  • The problem is beyond any obvious algorithm based solution: It is a complex problem to solve, there are no obvious traditional solutions or basically the problem isn't fully understood.

  • The logic changes often: The logic itself may be simple (but doesn't have to be) but the rules change quite often. In many organizations software releases are few and far between and rules can help provide the "agility" that is needed and expected in a reasonably safe way.

  • Domain experts (or business analysts) are readily available, but are nontechnical.

Taken from this site

like image 22
Aito Avatar answered Sep 18 '22 11:09

Aito