过滤符合条件的授权记录 - 规则引擎是否正确?

时间:2011-06-28 06:20:27

标签: java jboss drools

我有一个说明付款的授权屏幕

显示交易清单。这是一个筛选列表。 此屏幕中列出的每个交易都需要满足以下条件

A)符合授权验证矩阵(AVM)条件

B)..此时没有更多的条件

最简单的形式AVM定义如下

  
      
  • 5000以下 - ApproverRole
  •   
  • 5000以上 - SeniorApproverRole
  •   

因此,如果loggedIn用户属于ApproverRole,则应显示低于5000的所有交易。

我正在尝试使用drools来解决这个问题。

建议的解决方案。

  • 创建规则“AVMRULE”
  • 每笔付款都建模为FACT。

付款有两个有趣的属性 1)金额 2)是符合条件的

  

当付款对象被声明为工作记忆时,“AVMRULE”会修改payment.isEligible。用户界面根据payment.isEligible

显示或隐藏交易

问题: 系统中的平均支付数量可能高达一百万。 上述解决方案意味着应用程序必须将所有百万条记录提取到业务层。

可以对其进行优化以获取批量记录和 我们发现前10条记录符合真实条件后立即停止阅读。如果用户想要查看第一页,则此方法有效。如果他想看最后一页,那就行不通了。 我不确定在至少20个并发用户的多用户环境中整体性能是否会提高

问题: 请注意问题是显示已过滤的列表。 还要考虑有更多条件要处理,AVM比上面定义的要复杂得多。

规则引擎是否适合解决此问题?

这是正确的做法吗?

有没有人解决类似的问题?

是否有关于如何最小化提取到业务层的记录数量的指南?

0 个答案:

没有答案