`
taupo
  • 浏览: 29401 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

读BAC7.5 源码有感

    博客分类:
  • BAC
阅读更多

累,脑细胞不知道死了多少了。而且由于官方放出的源代码太少,只有反编译JAR来获得源代码,可读性很差!都是为了生活啊。不过收获还是不小滴!

每个rule都继承至BaseRule,而BaseRule对外的借口就是execute方法。BLE引擎就是调用这个方法来完成计算。

在execute方法中会调用calculate方法,calculate大体来说干四件事情:

1、调用calculateKpi方法来完成计算,并把计算结果保存在KPI的RuleObjective中。


2、调用 calculateValueForObjective把calculateKpi的计算结果取出来,当然也可以完成一些逻辑计算,但是主要的计算都是在calculateKpi中完成。

3、调用evaluateObjective方法把结果转换为换为KPI的status[0,5,15,20]; 它是通过ObjectiveEvaluator.evaluateObjective来完成计算。

4、最后利用updateStatus方法设置(更新)KPI的status,status也是保存在KPI的RuleObjective中。它的实现是通过BaseRuleImp.updateStatus调用objective.setResultValue("status", status)来完成,同时通过objective.setTransientValue("__ACT_PREV_STATUS", prevStatus)来保存上次状态。


calculateKpi和calculateValueForObjective主要的功能就是逻辑计算。

其中evaluateObjective和updateStatus不需要重写。而calculateKpi和calculateValueForObjective都必须重写来完成特定的功能,唯一的例外就是GroupRule及其子类不用重写calculateKpi。它对该方法的实现为空,啥也不干,这也很好理解,因为GroupRule一般来说只是取子KPI的值,比如BestChildRule。所有逻辑都写在calculateValueForObjective方法中了。

KPI的结果会保存在KPI的RuleObjective属性里,在RuleObjective中有一个Map性质的对象,专门用于保存KPI的结果,包括value和status等,当然我们也可以保存其他的。
一般来说calculateKpi的结果会保存为value。

在BAC的代码体系中,RuleDimension代表KPI,RuleNode代表CI。RuleObjective代表KPI的结果存放地,附属于某个KPI,KPI可以包含多个RuleObjective。

 

分享到:
评论

相关推荐

    Bac-to-bac表达系统中文版说明书.pdf

    **Bac-to-Bac杆状病毒表达系统**是一种高效便捷的重组蛋白表达工具,尤其适用于在昆虫细胞中实现目的基因的高水平表达。该系统的核心原理是利用杆状病毒的Tn7转座子机制,将含有目的基因的pFastBac捐赠质粒插入到E. ...

    Bac-to-Bac杆状病毒表达系统.doc

    Bac-to-Bac 杆状病毒表达系统 Bac-to-Bac 杆状病毒表达系统是一种快速有效的方法,用于产生重组杆状病毒。该系统基于让已经转入杆状病的质粒(杆粒)的位点特意转座子的表达框的质粒在 Ecoli 中扩增。 该系统的...

    x265_2.8源码

    在熵编码部分,优化了二进制算术编码(BAC)的实现,提升了编码效率。 4. **多线程支持**:x265支持多线程编码,通过将编码任务分解为多个子任务并行处理,可以充分利用多核处理器的计算能力,显著提升编码速度。 ...

    HP BAC与SiteScope集成

    ### HP BAC与SiteScope集成详解 #### 一、HP SiteScope 安装与配置 HP SiteScope是一款功能强大的性能监控工具,适用于多种环境,包括Web应用、数据库、服务器等。其安装流程主要包括: 1. **查找安装文件**:...

    5000元免签支付源码

    【标题】"5000元免签支付源码"涉及到的是个人开发者或者小型商家实现线上支付的一种解决方案,它允许用户在没有正式签约银行或第三方支付平台的情况下,通过自行搭建的系统进行收款。免签支付通常依赖于API接口,如...

    bac.rar_bac

    【华南理工大学2008年计算机类研究生入学上机试题】是本次讨论的主题,这个压缩文件"BAC.rar_bac"包含了一份重要的文档——"bac.doc",很显然,它是华南理工大学2008年计算机科学与技术或相关专业研究生入学考试的...

    Android statusBar添加bac

    Android statusBar添加bac

    BAC-S-MOD-M配置软件使用说明.pdf

    在详细解读“BAC-S-MOD-M配置软件使用说明.pdf”文档内容后,我们可以提炼以下IT知识点: ### BAC-S-MOD-M配置软件功能及应用 1. **软件目的:** 该配置软件主要用于对BAC-S-MOD-M网关进行参数配置,包括网关的IP...

    Elco-宜科 条码阅读器-BAC 48产品手册.pdf

    Elco-宜科 条码阅读器-BAC 48产品手册pdf,Elco-宜科 条码阅读器-BAC 48产品手册

    迅饶BACnet 网关BAC1002-ARM

    ### 迅饶BACnet 网关BAC1002-ARM #### 一、产品概述 迅饶BACnet 网关BAC1002-ARM是一款高性能、多功能的网关设备,专门用于实现不同通信协议之间的转换,特别是将各种设备连接到BACnetIP网络中。该网关适用于楼宇...

    Bac_to_bac表达系统中文版说明书.pdf

    **Bac-to-Bac杆状病毒表达系统**是一种高效、快速的重组病毒生成工具,尤其适用于在昆虫细胞中实现目标基因的高水平表达。该系统基于Tn7位点特异性转座子机制,大大简化了重组病毒的构建过程,减少了传统同源重组...

    Bac-to-bac表达系统中文版说明书模板.doc

    【Bac-to-Bac杆状病毒表达系统】是一种在昆虫细胞中高效表达目的基因的生物技术,主要用于蛋白质功能研究和生产。该系统基于Tn7位点特异性转座子的机制,简化了重组杆状病毒的生成过程,提高了实验效率。 **系统...

    Bac_to_bac表达系统中文版说明书.doc

    【Bac-to-Bac杆状病毒表达系统】是一种高效、快速的重组病毒生成技术,尤其适用于在昆虫细胞中实现目标基因的高水平表达。该系统基于Tn7位点特异性转座子机制,大大简化了传统同源重组过程,缩短了从克隆到重组病毒...

    Elco-宜科 条码阅读器-BAC500产品手册.pdf

    Elco-宜科 条码阅读器-BAC500产品手册pdf,Elco-宜科 条码阅读器-BAC500产品手册

    BACnet IP网关BAC1022-ARM

    软件特点: -绿色免安装,支持中英文; -支持60种协议同时转为BACnet IP服务器; -支持WEB浏览,查看,设置,进行监视和控制; -支持线性转换,取位,高低字节转换; -配置软件X2BACnet配置工程方便,1000个点20分钟内...

    BAC0:BAC0-依赖于BACpypes(Python 3)的库来为BACnet应用程序构建自动化脚本

    BAC0 BAC0是一个Python 3(3.5及更高版本)脚本应用程序,它使用处理IP网络上的BACnet消息。 该库带出简单的命令来浏览BACnet网络,从BACnet设备读取属性或对其进行写入。 Python是一种简单易学的语言,并且是用于...

    惠普业务可用性中心(HP BAC)

    ### 惠普业务可用性中心(HP BAC)知识点详解 #### 一、概述 惠普业务可用性中心(HP Business Availability Center,简称HP BAC)是一款强大的业务可用性管理解决方案,它专为Windows和Solaris操作系统设计,旨在...

Global site tag (gtag.js) - Google Analytics