14

What goals can be accomplished using a Rules Engine?

David J.
  • 31,569
  • 22
  • 122
  • 174
Rachel
  • 100,387
  • 116
  • 269
  • 365
  • 1
    I don't mean to be rude, but have you tried Google? I'm sure the Wikipedia page was one of the first results, and it's pretty clear: http://en.wikipedia.org/wiki/Rule_engine – Thomas Owens Oct 20 '09 at 17:18
  • Goals are not mentioned on Wiki. I have searched Wiki page first. – Rachel Oct 20 '09 at 17:19
  • Also what problems are solved using Rule Engine is also not mentioned. – Rachel Oct 20 '09 at 17:20
  • If you read the article on Wikipedia, along with the articles on production systems (http://en.wikipedia.org/wiki/Production_system) and inference engines (http://en.wikipedia.org/wiki/Inference_engine), you will find answers to both the purpose (goals) and problems solved by rule engines. – Thomas Owens Oct 20 '09 at 17:21
  • 1
    As an aside, when queried about problems solved using Rule Engine result was http://www.google.com/search?hl=en&client=firefox-a&rls=org.mozilla%3Aen-US%3Aofficial&hs=krI&q=Problems+solved+using+Rule+Engine&aq=f&oq=&aqi= and it was not very impressive. – Rachel Oct 20 '09 at 17:24
  • @Thomas Was a new rule put in place where questions that can be solved via google are not permitted? – heisenberg Jun 17 '11 at 14:08
  • @kekekela Yes. It's always been that questions easily answered by a Google search are too simple for Stack Overflow. There's some discussion on Meta - http://meta.stackoverflow.com/search?q=simple+question but I can't find the post by Jeff (I think it was Jeff anyway) at this point. – Thomas Owens Jun 17 '11 at 14:40
  • @Thomas "It's always been that questions easily answered by a Google search are too simple for Stack Overflow"...No, it hasn't. – heisenberg Jun 17 '11 at 18:17
  • http://meta.stackexchange.com/questions/8724/how-should-we-deal-with-google-questions – heisenberg Jun 23 '11 at 14:40

3 Answers3

26

A Rules Engine is typically a component in software that is used to validate business rules at runtime.

They're often used in order to be able to easily change business rules without having to recompile/redeploy software. Rules can easily be stored in a corporate database, and sometimes even edited by less technical users who understand the business rules much more effectively.

For example, a mortgage company may need to change its criteria for approving a mortgage every week. By using a rules engine, you can easily create very complex criteria that can be modified without having to "program" the logic into the software. Say, this week, the base credit score shifts, you just adjust that rule in the chain of rules. Then, tomorrow, when the minimum income percentage for requiring PMI given a 90% equity rate shifts, you can just put that "rule" in place.

Reed Copsey
  • 554,122
  • 78
  • 1,158
  • 1,373
  • 2
    And one of the frequently mentioned selling points is that the "business users" can write the rules instead of a "systems person". Whether or not that's realizable depends on the business and the users. – DaveE Oct 20 '09 at 17:24
  • 1
    We use such a system for exactly this purpose. A business analyst can turn requirements from multiple companies into rules and workflows far far quicker than a developer can go through a development cycle, at a lower cost. Other companies have a habit of letting us know of scorecard changes at the last minute, so speediness is essential. They're essential in organisations where development resource is internally chargeable, with month-long lead-times even for simple changes. – JeeBee Oct 20 '09 at 18:27
3

To add to @Reed Copsey's answer. Most rule engines keep their rules in external files that can be modified by business analysts or end users. Drools is one such solution.

spdaly
  • 1,260
  • 2
  • 18
  • 35
0

In most cases the Rules being processed are at the business layer, it is possible to look at a firewall as a rule engine of sorts, another common type of rule engine is based on high level domain specific languages for transaction processing and decision making.

There are a number of companies that produce appliances, and web transactions as a service to. These give the analysts tools to form complex decision trees and expert systems without having to do the grunt work of the developer, thanks to the magic of EGL most of the translation is done by modeling tools that can stub and generate code and valid end points to meet the "business" needs automagically.

Sean
  • 643
  • 8
  • 10