Drools入门手册概要.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Drools入门手册 --许建辉 高尔夫球员的位置? 引出话题--drools 基于规则的专家系统构成 基于规则的专家系统构成 规则引擎相关构件 处理过程分为四个阶段进行 规则引擎工作机制 Java规则引擎工作机制 Java规则引擎API——JSR-94 Java规则引擎API——JSR-94 规则引擎API将管理API和运行时API加以分开,从而为这些包提供了较好粒度的安全控制.规则引擎API并没有提供明显的安全机制,它可以和J2EE规范中定义的标准安全API联合使用.安全可以由以下机制提供,如Java authentication and authorization service (JAAS),the Java cryptography extension (JCE),Java secure Socket Extension (JSSE),或者其它定制的安全API.JAAS能被用来定义规则执行集的许可权限,从而只有授权用户才能访问。 Java规则引擎API——JSR-94 规则引擎API定义了javax.rules.RuleException作为规则引擎异常层次的根类.所有其它异常都继承于这个根类.规则引擎中定义的异常都是受控制的异常(checked exceptions),所以捕获异常的任务就交给了规则引擎。规则引擎API没有提供明确的日志机制,但是它建议将Java Logging API用于规则引擎API。 规则语言 规则语言 规则文件通常是以drl扩展名结尾规则的 规则文件的完整结构 package package-name imports globals functions Queries rules 规则语言 规则具有如下主体结构: rule?name ??? ?attributes ???? when ??????? ?LHS ????then ??????? ?RHS end 两边的引号也是可选的 ATTRIBUTES(通常是可选项)指出规则的行为表现 LHS是规则的条件部分 RHS是允许Java语义代码 规则语言 尽力避免使用的: rule query when then end null and or not exists collect accumulate from forall true false eval 避免使用 package function global import template attributes enabled salience duration init action reverse result contains excludes memberOf matches in date-effective date-expires no-loop auto-focus activation-group agenda-group dialect rule-flow-group 规则语言 单行注释 # this is a single line comment // this is also a single line comment 多行注释 /* this is a multi-line comment */ Import 标记就像java中的含义一样。对于任何要用在规则中的对象,你需要指定完整的路径和类型名。Drools从同名的java包中自动导入类。 expander Expander标记是可选的,用来指定DSL配置(通常保存在独立文件中)。这为解析器提供了如何理解你自定义的规则语言。 API允许用编程方式附加DSL模板,如果expander没有声明在源文件中。 Global不会插入到Working Memory中,因此当全局变量发生改变时,引擎不会得知;因为这个原因,全局变量不能用在条件约束上,除非这个值不会发生改变。在条件约束中错误使用全局变量会导致意想不到的结果。引擎不会通知和跟踪全局变量的值变更。不正确的在约束中使用全局变量会带来让人惊讶的结果——糟糕的惊讶,就像医生对你的X光片说“那里有些有趣的东西”一样。 如果多个Package声明了同样的全局变量,那么它们必须有相同的类型,并指向同一个全局变量。 函数

文档评论(0)

武神赵子龙 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档