python实现规则引擎_⼏种开源规则引擎(BRE)的⽐较转1 产品构成⽐较
1. JBoss Rules
JBoos Rules产品主要包括以下⼏个部分:
1. The Rule Engine
2. The Rule Language
3. Decision Tables
4. The Rule Workbench (IDE)
5. The Java Rule Engine API
6. Deployment and Testing
Rule Engine引擎的构成分为两部分,Authoring and Runtime
Authoring Components如下图所⽰:
Runtime Components结构如下图所⽰
2. OpenResults
模块组成如下:
3. OpenLexicon
OpenLexicon的模块如下图所⽰:
2 关键产品特性⽐较
2.1 规则表⽰法
2.1.1 JBoss Rules
JBoss Rules有三种规则的表⽰法
1. The Rule Language
2. Domain Specific Languages
3. Decision Tables
还有XML格式的
XML Rule Language
2.1.2 OpenRules
OpenRules只有Decision Table形式
2.1.3 OpenLexicon
OpenLexicon不是代码⽣成(code-generator)的软件,通过Web界⾯配置规则,并保存在数据库中。
2.2 规则算法和⽅法
2.2.1 JBoss Rules
JBoss Rules的规则采⽤RETE算法--ReteOO(Rete algorithm for Object Oriented systems),并且实现了问题域(problem domain)的Domain Specific
Languages(DSL)
2.2.2 OpenRules
JBoss采⽤Rete算法
2.2.3 OpenLexicon
2.3 规则开发
2.3.1 JBoss Rules
JBoss提供以下⼯具实现规则的开发
1. Rule IDE
2. spreadsheets (that is Excel, OpenOffice)
3. XML
这些⼯具完全集成在Eclipse中
2.3.2 OpenRules
OpenRules采⽤Excel,OpenOffice等⼯具开发规则,并提供Eclipse
plugin创建和管理项⽬,但是并不提供Rule IDE.
2.3.3 OpenLexicon
OpenLexicon提供Web Based Wizard,可以发布规则为WebService,同时Eclipse plugin创建WSDL和数据类型(XSD's)。
2.4 规则知识库
2.4.1 JBoss Rules
JBoss Rules的规则知识库是⽂本⽅式/XML和Excel(Decision
Tables)⽅式的,不⽀持把知识库放在数据库中。
2.4.2 OpenRules
规则知识库是Excel(Decision Tables)⽅式的,不⽀持把知识库放在数据库中
2.4.3 OpenLexicon
规则知识库保存在数据库中,并⽀持MySQL, Oracle, MS Sql Server, TimesTen等。
2.5 Web化⽀持程度
2.5.1 JBoss Rules
不⽀持Web编辑,提供Rule IDE, Excel等⼯具
2.5.2 OpenRules
不⽀持Web编辑,提供Excel等⼯具
2.5.3 OpenLexcicon
⽀持Web编辑
2.6 产品易⽤性
2.6.1 JBoos Rules
JBoss Rules提供的Rule IDE,可以⽅便地编辑DRL和DSL⽂件。
使⽤Excel或者OpenOffice等⼯具编辑Decision Table
2.6.2 OpenRules
OpenRules使⽤ Excel或者OpenOffice等⼯具编辑Decision
Table,尽管OpenRules声称所提供的⼯具⾮常⽅便,可以⾯向⾮开发⼈员,但仍然需要有⼀定的技术基础。
2.6.3 OpenLexicon
OpenLexicon提供基于Web-Form的Wizard。尽管OpenLexicon声称提供⾯向⾮开发⼈员的⼯具,但是仍然需要有⼀定的技术基础,如数据库等。
2.7 体系架构⽀持
2.7.1 JBoss Rules
JBoss Rules可以通过XML,⽀持Java, python or groovy
JBoss Rules是纯J2EE架构,并借助与JBoss AS, Hibernatre,
BMP等其他框架,开发强⼤的系统。
2.7.2 OpenRules
OpenRules⽀持J2EE架构,并声称在以下平台通过测试:IBM WebSphere,BEA WebLogic,和Apache
Tomcat.
2.7.3 OpenLexicon
OpenLexicon默认⽀持Tomcat,MySQL,对其他平台的⽀持需要配置。
2.8 ⽀持的标准
2.8.1 JBoss Rules
Java Rules Engine API
JSR-94
2.8.2 OpenRules
Java Rules Engine API
JSR-94
2.8.3 OpenLexicon
不⽀持公开的标准
3 关于⼆次开发
3.1 中⽂规则
以上三种软件都不⽀持中⽂表达的规则表⽰,在这个层⾯上难度是⼀样的
3.2 基于Web的规则定制界⾯
OpenLexicon本⾝就是基于Web界⾯的,但是⽬前这个软件提供的界⾯并不适合⾮技术⼈员使⽤,可以让⾮开发⼈员使⽤。
OpenRules只提供了Excel⽅式的规则编辑,但同时也提供了⽤Excel⽀持的Web
Form,也就是说使⽤Excel制作⼀个Web
python转java代码Form,⽣成WEB页⾯中。Excel是⾮常容易使⽤的⼯具,但是嵌⼊WEB页⾯中会使Excel失去优势。
JBoss Rules提供Excel⽅式的Decision Table,
与OpenRules类似,不适合将Excel放⼊Web页⾯中。但JBoss
Rules提供的Drl和Dsl⽂件的IDE⼯具可以做为Java Applet嵌⼈WEB页⾯。
综上所述,如果开发⾯向没有技术背景的⽤户使⽤的Web页⾯,这三个软件都需要有⼀定的开发⼯作量,相⽐较⽽⾔OpenLexicon是最容易的,JBoss次之,OpenRules最差
3.3 软件适⽤范围
OpenRules提供Decision Tables快速地加⼊应⽤软件,JBoss
Rules对于专家系统来说是⾮常好的,如果开发业务事物中的UseCase,客户或者合作伙伴集成的软件,则OpenLexicon⽐较合适。
3.4 软件的成熟度
在这三个软件中OpenRules是最成熟的,使⽤范围也最⼴,OpenRules次之,OpenLexicon是⽐较新的软件,其前景还不知道。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论