一种基于变量的配置化计算逻辑的多变量计算方法和装置的制作方法

文档序号:6385718阅读:162来源:国知局
专利名称:一种基于变量的配置化计算逻辑的多变量计算方法和装置的制作方法
技术领域
本发明涉及多变量自动计算领域,具体而言,涉及一种基于变量的配置化计算逻辑的多变量计算方法和装置。
背景技术
目前有如下两种多变量自动化计算方案
第一种覆盖性计算、选择性取用。即,在可预计的变量范围内,对所有变量预设计算逻辑,然后进行自动计算并赋值,计算结果供不同应用场景有选择的取用;
第二种基于计算公式字符串解析技术的变量自动计算。S卩,以字符串的方式描述变量计算函数,基于相应的函数语法自动解析字符串,并基于解析结果,自动计算变量结果O
上述两种方案虽然能完成多变量自动化计算,但是却存在以下问题
对于覆盖性计算、选择性取用的多变量计算方法,其扩展性和适应性差、冗余计算多,导致计算资源浪费;
对于基于计算公式字符串解析技术的变量自动计算方法,其解析过程复杂,对函数的扩展适应性差,速度慢、耗用资源大;
并且,上述两种方法均无法实现多变量按需自动计算,数据处理效率低,使得系统开发和维护的复杂度和难度相对较高。发明内容
本发明提供了一种基于变量的配置化计算逻辑的多变量计算方法和装置,提高多变量计算的灵活性、可扩展性,进而提高数据处理效率。
根据本发明实施例的第一方面,提供了一种基于变量的配置化计算逻辑的多变量计算方法,该方法预先对所述多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器进行结构化定义,并且所述方法包括以下步骤
步骤A :根据所述多变量中各变量的计算逻辑的结构化定义确定待计算变量;
步骤B :根据所述待计算变量中各变量的计算逻辑的结构化定义以及已知变量的变量值获取路径获取所述待计算变量中各变量进行计算所依赖变量的值和所 述待计算变量中各变量的计算逻辑的结构化定义中定义的常量计算参数,并调用所述结构化定义的计算器对所述待计算变量中各变量进行计算。
根据本发明实施例的第二方面,提供一种基于变量的配置化计算逻辑的多变量计算装置,包括
预配置模块用于预先对所述多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器进行结构化定义;
待计算变量确定模块用于根据所述多变量中各变量的计算逻辑的结构化定义确定待计算变量;
计算模块用于根据所述待计算变量中各变量的计算逻辑的结构化定义以及已知 变量的变量值获取路径获取所述待计算变量中各变量进行计算所依赖变量的值和所述待 计算变量中各变量的计算逻辑的结构化定义中定义的常量计算参数,并调用所述结构化定 义的计算器对所述待计算变量中各变量进行计算。
实施本发明实施例提供的基于变量的配置化计算逻辑的多变量计算方法和装置, 提高了多变量计算的灵活性和可扩展性,实现了多变量的按需自动计算;降低了多变量进 行计算占用的计算机资源并且数据处理效率高,能够降低系统开发和维护的复杂度和难 度、对监测到的或者用户输入的外部技术数据进行按需次第处理等。


图1是根据本发明实施例的一种基于变量的配置化计算逻辑的多变量计算方法 的流程示意图2是根据本发明实施例的一种确定变量计算依赖关系和计算层级的方法的流 程不意图3是根据本发明实施例的一种确定待计算变量的方法的流程示意图4是根据本发明实施例的一种基于变量的配置化计算逻辑的多变量计算方法 的流程示意图5是根据本发明实施例的一种基于变量的配置化计算逻辑的多变量计算装置 的结构不意图6是根据本发明实施例的一种待计算变量确定模块的结构示意图7是根据本发明实施例的一种基于变量的配置化计算逻辑的多变量计算装置 的结构示意图。
具体实施方式
为使本发明的实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发 明作进一步地详细描述。
在变量计算中,变量的值可由相应的计算函数唯一确定。对该函数的组成元素(包 括计算依赖的常量值、变量值、函数计算器等)进行定义,并基于此,以结构化的方式描述该 变量的计算逻辑,称为变量的配置化计算逻辑。
本发明针对多个变量,基于这些变量的配置化计算逻辑,自动根据这些变量的计 算依赖关系确定变量的计算次序,并按次序自动完成对这些变量的计算和赋值,从而实现 基于变量的配置化计算逻辑的多变量自动化按需次第计算。需要说明的是,例如,在一个由 自变量和因变量构成的集合A中,我们对集合A的一个子集B中的所有变量进行计算逻辑 的结构化定义,在对集合B中的各个变量的结构化定义中可能会涉及属于集合A而不属于 集合B的变量,也可能会涉及不属于集合A的变量,换而言之,集合B中的各个变量进行计 算所依赖的变量不局限于集合B中的变量。
为了清楚、简要的说明本发明申请的技术方案内容,下文部分说明内容中出现的 词语“定义”就是指“结构化定义”。
图1是根据本发明实施例的一种基于变量的配置化计算逻辑的多变量计算方法,参见图1,该方法包括
SlOO :预配置定义,具体地,包括预先对多变量中各变量的计算逻辑、已知变量的 变量值获取路径和计算器进行结构化定义;
S102 :确定待计算变量具体地,可以根据多变量中各变量的计算逻辑的结构化 定义确定待计算变量;
S104:获取待计算变量中各变量进行计算所需要的变量值和常量计算参数,具体 地,可以根据待计算变量中各变量的计算逻辑的结构化定义以及已知变量的变量值获取路 径获取待计算变量中各变量进行计算所依赖变量的值和待计算变量中各变量的计算逻辑 的结构化定义中定义的常量计算参数;
S106:用相应的结构化定义的计算器对待计算变量中的各变量进行计算。
在步骤SlOO中,可以通过对某变量进行计算逻辑的结构化定义将该变量添加到 可计算的变量集合中,也可以通过取消某变量的计算逻辑定义将该变量从可计算的变量集 合中删除,这样就确定了最终参与计算的多变量。已知变量包括多变量中未发生变动的自 变量(在本发明中,自变量包括被操纵的变量,例如由用户输入直接决定的变量、由系统或 装置直接测得的变量等。在这些自变量中,未随着操纵条件变化的变量就属于未发生变 动的自变量)和能够根据变量自身的计算逻辑的结构化定义计算出结果的变量。以变量 AC01020801为例,包含其进行计算所依赖变量的变量值获取路径定义在内的计算逻辑的 结构化定义的程序代码示例如下(在本说明书中列举的所有程序代码仅为示例性列举以使 本领域技术人员更好的理解本发明请求保护的技术方案,并非对本发明的保护范围构成限 制)
〈accountCa 丨 Essentials accountCocle=" ACO1020801" formulaldentityN ame="cal010001 "><paramEssentials paraniIdentityName="itemList" paramInputTypeCd="account" paraminputSourceIdentity="ACO 1020201" reportPeriodDistance = ”0” isNullable = "false” defaultValue = "0"></paramEssentials><paramEssentials paramIdentityName="itemLisi" paramlnputTypeCd-'account" paramInputSourceIdentity="AC01020001" reportPeriodDistance = "0" isNullable = "false" ></paramEssentials></accountCal Essentials〉
上述结构化定义的含义为通过calOlOOOl公式进行计算,计算参数为上述 计算器定义中java. util. List类型的itemList,计算依赖的已知变量为AC01020201 和AC01020001。已知变量的获取路径依据具体的应用环境进行定义,本例为 r印ortPeriodDistance=〃0〃以及相应的变量名AC01020201和AC01020001。待计算变量应 当满足的条件为其进行计算所依赖的已知变量非空(即isNUllable=〃false〃),如果该前 提条件不满足,则将相应的已知变量替换为O (defaultValue=〃0〃)。
此外,为了提高计算器的可复用率及其有效性,对于某些变量的计算可能需要按 次序应用多个计算器。在这种情况下,可以对其计算逻辑进行递归/嵌套的定义,相应的程 序代码示例如下
OccountCalEssentials accountCode=" ACO1100709" tormu iaidentitvName=,,caiO IOO11 "><pararnEssenlials paramIdentityNarne="isDoubleA" paraml iiputT ypeC d=" varByAsseition” parainInputSourceIdentiiy="assrO 10004" isNullable = "false"〉<paramEssentials paramidentityName="doubie" paramInputTypeCd="account" paramInputSourceIdentiiv="ACO 1020812" reportPeriodDistance = "-1" isNullable = "false" defaultValue = "0"></paramEssentials></paramEssentials><paramEssentials paramldentityName="a"paraminputTypeCd="constant" paramInputSourceIdentity="NA()" > </param Essentials:〉<paramEssentials paramidentityName=,lb"paraml n putT y peCd=” va rBy F o rmula"
权利要求
1.一种基于变量的配置化计算逻辑的多变量计算方法,其特征在于,预先对所述多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器进行结构化定义,并且所述多变量计算方法包括以下步骤步骤A :根据所述多变量中各变量的计算逻辑的结构化定义确定待计算变量;步骤B :根据所述待计算变量中各变量的计算逻辑的结构化定义以及已知变量的变量值获取路径获取所述待计算变量中各变量进行计算所依赖变量的值和所述待计算变量中各变量的计算逻辑的结构化定义中定义的常量计算参数,并调用所述结构化定义的计算器对所述待计算变量中各变量进行计算。
2.如权利要求1所述方法,其特征在于,所述方法还包括在对所述多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器进行结构化定义之后,在所述步骤A之前执行以下步骤对所述多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器的结构化定义进行配置正确性检查,所述配置正确性检查包括重复定义检查、必配项检查和配置值合法化检查。
3.如权利要求1或2所述方法,其特征在于,所述已知变量包括所述多变量中未发生变动的自变量和根据变量自身的计算逻辑的结构化定义计算出结果的变量。
4.如权利要求3所述方法,其特征在于,所述步骤A包括步骤Al :根据所述多变量中各变量的计算逻辑的结构化定义确定所述多变量中各变量的计算依赖关系和计算层级;步骤A2 :根据所述多变量中各变量的计算逻辑的结构化定义确定所述多变量中所有属于所述待计算变量的变量。
5.如权利要求4所述方法,其特征在于,所述步骤Al包括All :解析所述多变量中各变量的计算逻辑的结构化定义以确定所述多变量中各变量的计算依赖关系;A12:根据所述多变量中各变量的计算依赖关系将所述多变量中计算所依赖参数满足以下条件的变量的计算层级确定为第I计算层级,其中所述条件为计算所依赖参数全为常量和/或自身未进行计算逻辑的结构化定义的变量;A13 :遍历所述多变量中未确定计算层级的变量,对于所述未确定计算层级的变量中的当前遍历变量,如果它进行计算所依赖变量的计算层级都已确定,则将它的计算层级确定为第k+Ι计算层级,第k计算层级是它进行计算所依赖变量中计算层级最大的变量的计算层级;A14:判断所述多变量中各变量是否均确定了计算层级,如果判断为否,则重复步骤 A13和A14 ;如果判断为是,则步骤Al结束。
6.如权利要求4或5所述方法,其特征在于,所述步骤A2包括A21 :确定由所有发生变动的变量构成的第二变量清单,遍历所述多变量中的各变量的计算逻辑的结构化定义,如果所述多变量中的当前遍历变量进行计算所依赖变量包括所述第二变量清单中的至少一个变量,则确定所述多变量中的当前遍历变量属于所述待计算变量,并将其加入第一变量清单和所述第二变量清单,所述第一变量清单由所述多变量中属于所述待计算变量的变量构成;A22 :遍历所述多变量中不属于所述第一变量清单的变量的计算逻辑的结构化定义,对于所述不属于所述第一变量清单的变量中的当前遍历变量,如果它进行计算所依赖变量包括所述第二变量清单中的至少一个变量,则确定它属于所述待计算变量,并将它加入所述第一变量清单和所述第二变量清单;A23 :判断步骤A22是否确定出了属于所述待计算变量的变量,如果判断为是,则重复步骤A22和A23 ;如果判断为否,则步骤A2结束。
7.如权利要求6所述方法,其特征在于,所述步骤B包括按照所述计算层级由小到大的顺序遍历所述第一变量清单中的各变量,对于所述第一变量清单中的当前遍历变量,根据其计算逻辑的结构化定义和计算所依赖变量的变量值获取路径获取其进行计算所依赖变量的值和在其计算逻辑的结构化定义中定义的常量计算参数;将所述获取的进行计算所依赖变量的值和常量计算参数作为输入,调用相应的所述结构化定义的计算器,对所述第一变量清单中的当前遍历变量进行计算。
8.一种基于变量的配置化计算逻辑的多变量计算装置,其特征在于,所述装置包括 预配置模块用于预先对所述多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器进行结构化定义;待计算变量确定模块用于根据所述多变量中各变量的计算逻辑的结构化定义确定待计算变量;计算模块用于根据所述待计算变量中各变量的计算逻辑的结构化定义以及已知变量的变量值获取路径获取所述待计算变量中各变量进行计算所依赖变量的值和所述待计算变量中各变量的计算逻辑的结构化定义中定义的常量计算参数,并调用所述结构化定义的计算器对所述待计算变量中各变量进行计算。
9.如权利要求8所述装置,其特征在于,所述装置还包括配置正确性检查模块用于对所述多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器的结构化定义进行配置正确性检查,所述配置正确性检查包括重复定义检查、必配项检查和配置值合法化检查。
10.如权利要求8或9所述装置,其特征在于,所述已知变量包括所述多变量中未发生变动的自变量和根据变量自身的计算逻辑的结构化定义计算出结果的变量。
11.如权利要求10所述装置,其特征在于,所述待计算变量确定模块包括第一确定子模块用于根据所述多变量中各变量的计算逻辑的结构化定义确定所述多变量中各变量的计算依赖关系和计算层级;第二确定子模块用于根据所述多变量中各变量的计算逻辑的结构化定义确定所述多变量中所有属于所述待计算变量的变量。
12.如权利要求11所述装置,其特征在于,所述第一确定子模块包括计算依赖关系确定单元和计算层级确定单元,其中所述计算依赖关系确定单元用于解析所述多变量中各变量的计算逻辑的结构化定义以确定所述多变量中各变量的计算依赖关系;所述计算层级确定单元包括确定子单元用于根据所述多变量中各变量的计算依赖关系将所述多变量中计算所依赖参数满足以下条件的变量的计算层级确定为第I计算层级,其中所述条件为计算所依赖参数全为常量和/或自身未进行计算逻辑的结构化定义的变量;执行子单元用于遍历所述多变量中未确定计算层级的变量,对于所述未确定计算层级的变量中的当前遍历变量,如果它进行计算所依赖变量的计算层级都已确定,则将它的计算层级确定为第k+Ι计算层级,第k计算层级是它进行计算所依赖变量中计算层级最大的变量的计算层级;判断调用子单元用于判断所述多变量中各变量是否均确定了计算层级,如果判断为否,则重复调用所述执行子单元直至所述判断调用子单元判断所述多变量中各变量均已确定计算层级;如果判断为是,则所述第一确定子模块结束操作。
13.如权利要求11或12所述装置,其特征在于,所述第二确定子模块包括第一执行单元用于确定由所有发生变动的变量构成的第二变量清单,遍历所述多变量中的各变量的计算逻辑的结构化定义,如果所述多变量中的当前遍历变量进行计算所依赖变量包括所述第二变量清单中的至少一个变量,则确定所述多变量中的当前遍历变量属于所述待计算变量,并将其加入第一变量清单和所述第二变量清单,所述第一变量清单由所述多变量中属于所述待计算变量的变量构成;第二执行单元用于遍历所述多变量中不属于所述第一变量清单的变量的计算逻辑的结构化定义,对于所述不属于所述第一变量清单的变量中的当前遍历变量,如果它进行计算所依赖变量包括所述第二变量清单中的至少一个变量,则确定它属于所述待计算变量, 并将它加入所述第一变量清单和所述第二变量清单;判断调用单元用于判断所述第二执行单元是否确定出了属于所述待计算变量的变量,如果判断为是,则重复调用所述第二执行单元直至所述判断调用单元判断所述第二执行单元未确定出属于所述待计算变量的变量;如果判断为否,则所述第二确定子模块结束操作。
14.如权利要求13所述装置,其特征在于,所述计算模块包括参数获取子模块用于按照所述计算层级由小到大的顺序遍历所述第一变量清单中的各变量,对于所述第一变量清单中的当前遍历变量,根据其计算逻辑的结构化定义和计算所依赖变量的变量值获取路径获取其进行计算所依赖变量的值和在其计算逻辑的结构化定义中定义的常量计算参数;计算子模块用于将所述获取的进行计算所依赖变量的值和常量计算参数作为输入, 调用相应的所述结构化定义的计算器,对所述第一变量清单中的当前遍历变量的进行计笪ο
全文摘要
本发明提供一种基于变量的配置化计算逻辑的多变量计算方法和装置,其中,所述方法包括预先对多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器进行结构化定义;根据所述多变量中各变量的计算逻辑的结构化定义确定待计算变量;根据所述待计算变量中各变量的计算逻辑的结构化定义以及已知变量的变量值获取路径获取所述待计算变量中各变量进行计算所依赖变量的值和所述待计算变量中各变量的计算逻辑的结构化定义中定义的常量计算参数,并调用所述结构化定义的计算器对所述待计算变量中各变量进行计算。本发明提供的基于变量的配置化计算逻辑的多变量计算方法和装置可以实现多变量按需次第计算,降低系统开发和维护的复杂度和难度。
文档编号G06F19/00GK103049665SQ20121058015
公开日2013年4月17日 申请日期2012年12月27日 优先权日2012年12月27日
发明者高媛媛, 林天成, 杨佳, 徐生成 申请人:中国建设银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1