将业务规则与工程应用相集成的系统和方法

文档序号:6289656阅读:140来源:国知局
专利名称:将业务规则与工程应用相集成的系统和方法
将业务规则与工程应用相集成的系统和方法
背景技术
业务规则引擎是处理(即,执行)运行时生产环境中的一个或多个业务规则的软 件系统。业务规则引擎适于执行多种分析功能,并且适于多种业务使用。虽然业务规则引 擎非常灵活,但是某些技术问题阻碍了将业务规则引擎应用于系统监测和控制问题。业务规则引擎所遇到的一个问题是在遇到大量状态变量(数目可能从数十万个 到数百万个)时的缓慢执行时间。任何给定的监测或者控制规则执行仅使用(引用或者修 改)多个状态变量中的较小比例。然而,在规则执行之前,系统不知道将需要哪些状态变 量。对于处理任何规则的规则引擎,必须向规则引擎的工作存储器中上传(插入)规则所 引用的状态变量。一种解决方案是将所有的状态变量加载到规则引擎的工作存储器中。然 而,该解决方案通常不适于时间关键应用或者计算资源有限的应用。这是因为它占用数量 可观的计算机时间来向工作存储器上传或者更新数千个变量或数十万个变量。例如,在针 对配电系统的应用中,必须从实时任务关键的工程应用内重复地调取监测和控制应用。商 业上已有的业务规则引擎的共同设计模式不提供这些关键工程系统中需要的必要处理速 度。因此,本领域需要可以使用业务规则引擎同时实现时间敏感应用中必要的处理速 度的系统。

发明内容
根据本发明的一个方面,公开了一种用于将具有工作存储器的业务规则引擎与工 程应用相集成的方法,该工程应用执行与电力传输系统有关的一个或多个预定功能。该功 能包括监测、分析或者控制电力传输系统。该方法包括从工程应用向业务规则引擎传输分 析请求。响应于分析请求,在第一过程中,在业务规则引擎中执行一个或多个规则,其中在 第一过程期间,规则引擎的工作存储器没有填充一个或多个规则所需的数据。采集一个或 多个规则所需的数据。将一个或多个规则所需的数据输入到规则引擎的工作存储器中。在 第二过程中,执行业务规则引擎中的一个或多个规则,以生成执行结果。将第二过程的结果 传输给工程应用,其使用该执行结果来执行一个或多个预定功能。根据本发明的另一方面,公开了一种用于执行与物理系统的一个或多个预定功能 相关的系统。预定功能包括监测、分析或者控制物理系统。该系统包括数据采集系统,其 监测物理系统的至少一个变量,并且输出所监测的数据。数据服务器接收和存储所监测的 数据。工程应用程序从数据服务器接收所监测的数据,并且包括图形用户接口,操作者可以 通过该图形用户接口来发起至少一个预定功能。业务规则引擎包括工作存储器,业务规则 引擎适于基于按照业务词汇而公式化的规则来进行决策。将规则分组为规则包。基于规则 的服务模块包括主数据缓冲区,基于规则的服务模块支持业务规则引擎与工程应用之间的 通信。主数据缓冲区包括对每个包与规则包的执行所需的监测数据进行相关的交叉引用列 表。基于规则的服务模块将执行规则包所需的监测数据从主数据缓冲区传输至工作存储
根据本发明的又一方面,公开了至少一种计算机可读介质,其包含用于辅助工程 应用执行一个或多个预定功能的计算机可读指令,预定功能包括监测、分析或者控制物理 系统。当执行时,计算机可执行指令执行包括将分析请求从工程应用传输至业务规则引擎 的步骤。响应于该分析请求,在第一过程中,在业务规则引擎中发起对一个或多个规则的执 行,其中,在第一过程期间,规则引擎的工作存储器没有填充一个或多个规则所需的数据。 采集一个或多个规则所需的数据。将一个或多个规则所需的数据传输至规则引擎的工作存 储器。在第二过程中,发起业务规则引擎中一个或多个规则的执行以生成执行结果。将第二 过程的结果传输至工程应用,其中工程应用使用该执行结果来执行一个或多个预定功能。


参考以下描述、所附权利要求和附图,本发明的特征、方面和优点将变得更好理 解。在附图中图1是根据本发明的系统的示意图;图2是示出根据本发明的整体过程的活动图;图3是示出根据本发明的调取基于规则的服务模块的过程的活动图;图4是示出基于规则的服务模块的阶段1过程的活动图;以及图5是示出基于规则的服务模块的阶段II过程的活动图。
具体实施例方式应当注意,在下文的详细描述中,相同的组件具有相同的参考标号,而不考虑其是 否在本发明的不同实施方式中示出。还应当注意,为了清楚简洁地公开本发明,附图可能未 必按比例,并且本发明的某些特征可能或多或少以示意形式示出。本发明是用于将业务规则引擎并入监测、仿真和/或控制物理系统的系统中的最 优分解设计。贯穿本公开,将电力系统作为示例性物理系统来讨论,然而应当理解,电力控 制系统以外的其他使用是可以想到的。一般地,本发明以允许较大灵活性和易于修改的方 式将业务规则引擎并入控制/监测/仿真系统中。如之后将要描述的,除其他以外,本发明 的系统通过以下方式来实现快速性能将规则集合分解为最优大小,利用规则引擎激发来 交错数据获取,延迟和聚集数据获取,使用主数据缓冲区,以及生成交叉引用映射。如将变 得易见的,本发明的系统和方法以更快处理和分析次数的形式实现了改进的性能,同时提 供了业务规则引擎提供的灵活性和易用性。现在参考图1,可以看到,物理系统10包括一个或多个系统变量。这些系统变量由 数据采集系统12进行监测。如上所述,本发明可以适于任意数目的物理系统和/或数据采 集系统。作为一个示例,物理系统10可以是配电网络,而数据采集系统可以是监督控制和 数据采集系统(SCADA)。在此类示例中,示例性监测变量可以包括线路电流、断路器和变压 器状态、节点电压水平等。数据采集系统12向实时数据服务器14传输收集的数据,该实时数据服务器14针 对每个监测变量而存储最近接收的信息。以此方式,实时数据服务器14存储最新系统信息 的快照。数据服务器14向一个或多个分析/工程应用16提供数据访问服务。应用16可 以是适于从数据服务器14接收数据并继而分析、仿真和/或控制物理系统10的任何应用。应用16可以位于控制室中,并且包括图形用户接口,操作者可以通过该图形用户接口来观 察监测数据、发起系统命令、分析系统数据和/或发起仿真。作为一个示例,如果物理系统 是配电/输电网络,则应用可以是能源管理系统(EMS),其具有负载流分析应用、分派训练 仿真器应用、状态估计应用等。在过去,每个分析应用16在应用内执行所有所需的计算和逻辑过程。本发明允许 应用16将某些共同的逻辑计算指派给业务规则服务模块20,业务规则服务模块20转而依 靠业务规则引擎18来实现逻辑处理。此类系统的优点在于分析规则的创建和修改对于最 终用户更加简单。特别地,在过去,应用内的规则改变需要计算机程序员的服务。由此,只 要下层业务逻辑改变,便需要对某些规则进行修改,并且最终用户必须再次雇佣具有该应 用有关知识的程序员来重写代码。此类布置通常被描述为专家-开发者关系,其中专家具 有被监测系统的知识,并且必须指导仅具有特定软件应用知识的开发者。在很多情况下,本 发明在实质上降低了对开发者(计算机程序员)的需要,因为业务规则引擎通常以自然语 言形式编写,使得其更加易于创建、修改和删除规则。如上所述,简单地使用用于分析的业务规则引擎可能会显著减慢过程。为了增加 处理速度和易用性,本发明并入基于规则的服务模块20,以充当业务规则程序18和应用16 之间的媒介。基于规则的服务模块服务于若干目的。首先,其将工程应用与同规则引擎程 序的直接交互隔离开,并且向应用提供简单的面向服务的接口。其次,它提供可以从其实现 性能优化的中心位置。基于规则的服务模块20从应用16接收逻辑处理服务请求,管理数 据获取以及与规则引擎实例的交互,捕获规则处理结果,以及将逻辑处理结果从业务规则 引擎传输回应用。将基于规则的服务模块作为单独模块来提供,允许基于规则的服务由多 个应用16共享。本发明中可以使用任意数目的业务规则程序18。业务规则程序18包括用于执行 规则的规则引擎22、用于存储多个规则的规则库M以及允许用户创建和修改规则的规则 管理服务模块。适合的业务规则程序的示例包括ILOG公司提供的JRULES以及JBOSS提供 的JBOSS规则。业务规则引擎基于按照业务词汇而公式化的规则集合来确定。这些规则转而取决 于与域数据对象相对应的下层执行模型。为了本公开的目的,特定术语定义如下。“规则” 是由最终用户定义的IF-THEN(如果-则)语句,其表示将要由规则引擎应用的推理逻辑。 规则可以引用IF或者THEN子句中的一个或多个对象。“对象”是真实世界对象(诸如客 户、变压器或者传输线)的软件表示。对象包括一个或多个属性或者状态变量(即,质量或 者特征,诸如一个设备的名称、电路的通电状态或者网络节点的电压测量估计)。如上所述,业务规则引擎包括工作存储器,其用于存储执行规则所需的状态变量。 如下文详述的,本发明使用双轮次(double-pass)规则引擎激发方法,其可实现解决方案 灵活性以及改进的性能二者。此类方法包括针对每个规则包调取规则引擎两次,规则包使 用简单的辅助规则来实现,其中辅助规则可由用户在已经部署了基于规则的服务模块之后 编写。辅助规则的一个示例的形式为“如果(工作存储器中)没有名字是‘John Smith’的 客户,则(从数据库)得到名字是‘John Smith’的客户”。当第一次利用空的工作存储器来 调取规则引擎时,因为工作存储器中没有具体数据对象,所以这些辅助规则被激活,并且导 致针对特定数据对象生成获取请求。基于第一次规则引擎调取,基于规则的服务模块继而确定规则引擎针对特定应用请求所需的所有状态变量,从应用或者数据库服务器获取必需 的数据,实例化数据对象,并且将其组织到主数据缓冲区中。规则引擎继而被第二次调取, 在此之前,工作存储器填充了特定规则引擎实例所需的所有必需状态变量。此类方法以若 干方式改进了性能。首先,规则引擎仅利用必需状态变量来执行,由此消除了工作存储器中 的多余数据,否则其将抑制处理速度。其次,代替多个较小信息请求(否则其将导致不期望 的计算开销),请求被截取、聚集,并且在较大、较少数量的请求中传输至数据服务器。从服 务器取回的数据由基于规则的服务模块存储在主数据缓冲区中,并且仅将用于处理特定规 则或者规则包所需的状态变量加载到规则引擎的工作存储器中。如下文详述,该过程由参 考映射进行辅助,该参考映射将规则与所需的状态变量相关联。本发明还通过将规则分组为用于规则引擎的包以用于处理而增加了过程效率。通 常,应用请求涉及多个规则的执行。在调取很多规则的情况下,性能可能受到影响。通过将 规则集合分组为包,规则引擎可以执行最优数目的规则。找到最优的规则包大小取决于规 则引擎性能相对于包的大小(即,每个包的规则数目)不是线性的这一理解。对于非组合 规则(即,不与其他规则相互依赖的规则),规则引擎的处理时间同规则数据与工作存储器 中的数据对象数目的乘积近似成比例。因此,可以通过多个规则引擎执行来优化性能,其中 每个执行具有较小的规则包,并且按顺序一次处理一个包。然而,应当理解,如果规则包过 小(粒度过小),则性能可能受损,因为处理太多规则包的开销增加,并且抵消了较小规则 包的益处。由此,基于规则的服务模块允许用户设置默认和定制的规则包大小,从而使得用 户能够容易地试验不同的规则包粒度。这使得用户能够找到对于给定应用和/或规则类型 的最优或者接近最优的规则包大小。现在参考图2,该流程图示出了本发明的过程。在步骤50,应用向基于规则的服务 模块传输初始化请求,以准备执行分析/计算。响应于接收该请求,在52,建立包括规则包 集合的规则池。在一个或多个实施方式中,应用程序用信号通知基于规则的服务模块将要 使用哪个规则集。在一个实施方式中,应用程序向部署有规则包的文件目录提供路径名。如 上所述,每个规则包是用户定义的规则的集合。在步骤M,交叉引用映射被初始化(即,被 创建,但其中不具有任何引用数据)。在步骤56,执行应用特定的活动。例如,如果应用是 能源管理系统,则应用特定的活动可以包括一些仿真分析,其导致更新某些或者全部的相 关状态变量集合。在步骤58,调取基于规则的服务以执行应用的规则处理,并且如下文详 述,执行双轮次引擎激发。以此方式,规则引擎执行,并且向调用应用返回调取结果。在步 骤60,调用应用可以使用该结果来修改系统模型,或者继续进一步的仿真和/或分析。在步 骤62,过程终止,或者如果需要其他规则执行则继续。现在参考图3,其更加详细地示出了基于规则的服务调取(步骤58)。在步骤100, 确定第一阶段处理是否已经发生。如果没有,则在步骤102执行第一阶段过程。在阶段I 中,利用空的工作存储器来激发规则引擎实例。为了本公开的目的,规则引擎实例是指计算 机的易失性存储器中的运行时过程/对象。空的工作存储器触发数据取回规则,其被加载 到规则引擎实例中。基于规则的服务模块捕获并且聚集数据请求,以便最小化数据访问操 作。继而在104,从数据服务器取回状态变量,并且在步骤106,对编程对象进行实例化并且 将其添加到主数据缓冲区中。在步骤108,在第二阶段过程中再次激发规则引擎实例,除非 现在所有需要的状态变量被插入到了规则引擎实例中。由此,针对每个规则包,必要的数据
7是可用的,并且按照规则包的需求从主数据缓冲区上传到工作存储器中。在110,基于规则 的服务模块收集结果,并且传输至调用应用。参考图4,示出了第一阶段过程的更加详细的描述。在150,从池中获取下一个(或 者第一个)规则包。在152,规则引擎执行该规则包。在154,基于规则的服务模块截取并且 聚集来自规则引擎的任何数据请求。在156,将数据请求添加到数据请求集中,并且同时构 建交叉引用映射,它对每个规则包与特定的请求数据进行相关。在158,确定来自池的附加 规则引擎实例是否仍然需要执行。如果是,则重复该循环,否则过程终止。在该过程期间, 依次激发规则引擎包。如图3所示,在阶段I处理之后,继而从数据服务器取回状态变量,并且实例化编 程对象,并将其添加至主数据缓冲区。参考图5,示出了阶段II处理的更加详细描述。在 200,从池中取出下一个(或者第一个)规则包。在202,使用交叉引用映射,针对当前规则 包来定位所需的数据对象。在204,从主数据缓冲区获取数据对象,以及在208,将其插入到 用于当前引擎实例的工作存储器中。在208,执行引擎实例,并且在210捕获产生的数据。 在212,确定来自池的附加规则引擎实例是否仍然需要执行。如果是,则重复该循环,否则过 程终止。继而将规则处理的结果传输至调用应用,其继而基于应用特定需求来确定如何使 用该结果。本领域技术人员可以理解,本发明可以具体化为方法和系统以及计算机可读介 质,或者采用方法和系统以及计算机可读介质的形式,该计算机可读介质具有存储在其上 的计算机可读指令,当由处理器执行时,实现先前描述并且在相应的所附权利要求中定义 的本发明的操作。计算机可读介质可以是可以包含、存储、通信、传播或者传送用户接口程 序指令以便由指令执行系统、装置或者设备使用或者与其连接的任何介质,并且通过示例 但非限制性的方式,其可以是电子、磁、光、电磁、红外或者半导体系统、装置、设备或者传播 介质或者记录程序的其他适合介质。计算机可读介质的更具体示例(非穷举列表)可以 包括便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程 只读存储器(EPR0M或者闪速存储器)、光纤、便携式压缩盘只读存储器(CD-ROM)、光存储设 备、诸如支持因特网或者内联网的传输介质或者磁存储设备。用于实现本发明的操作的计 算机程序代码或者指令可以按照允许实现先前描述的技术结果的任何适合的编程语言来 编与。本发明实现了改进的性能目标,同时维持了基于业务规则的解决方案所期望的灵 活性。根据本发明的系统和方法与将所有状态变量加载到工作存储器中的标准方法相比 较,将性能改进了若干数量级。因此,使用较低成本的主流业务规则引擎和现成硬件来执行 所要求的应用(诸如上文讨论的控制和监测工程应用)是可行的。
权利要求
1.一种将具有工作存储器的规则引擎与工程应用相集成的方法,所述工程应用执行与 电力传输系统相关的一个或多个预定功能,所述功能包括监测、分析或者控制所述电力传 输系统,所述方法包括从所述工程应用向所述业务规则引擎传输分析请求;响应于所述分析请求,在第一过程中,在所述业务规则引擎中执行一个或多个规则,其 中在所述第一过程期间,所述规则引擎的所述工作存储器没有填充所述一个或多个规则所 需的数据;采集所述一个或多个规则所需的数据;将所述一个或多个规则所需的数据输入所述规则引擎的所述工作存储器; 在第二过程中,在所述业务规则引擎中执行所述一个或多个规则,以生成执行结果; 将所述第二过程的结果传输至所述工程应用;以及 使用所述执行结果来执行所述一个或多个预定功能。
2.根据权利要求1所述的方法,还包括将所述一个或多个规则分组为规则包。
3.根据权利要求2所述的方法,其中在所述业务规则引擎中执行所述一个或多个规则 的所述步骤还包括按照顺次顺序执行所述规则包。
4.根据权利要求1所述的方法,其中采集一个或多个规则所需的数据的所述步骤还包 括聚集来自所述规则引擎的数据请求,并且将聚集的数据请求传输至数据源。
5.根据权利要求4所述的方法,还包括从所述数据源接收所述一个或多个规则所需 的数据;将所述一个或多个规则所需的数据存储在主数据缓冲区中;以及将所述一个或多 个规则所需的数据从所述主数据缓冲区传输至所述业务规则引擎。
6.一种用于执行与物理系统相关的一个或多个预定功能的系统,所述预定功能包括监 测、分析或者控制所述物理系统,所述系统包括数据采集系统,其监测所述物理系统的至少一个变量,并且输出监测数据; 数据服务器,其接收并且存储所述监测数据;工程应用程序,其从所述数据服务器接收所述监测数据,并且包括图形用户接口,操作 者可以通过所述图形用户接口来发起至少一个所述预定功能;业务规则引擎,其包括工作存储器,所述业务规则引擎适于基于按照业务词汇而公式 化的规则来进行决策,所述规则被分组为规则包;基于规则的服务模块,其包括主数据缓冲区,所述基于规则的服务模块支持所述业务 规则引擎与所述工程应用之间的通信,所述主数据缓冲区包括对每个包与所述规则包的执 行所需的监测数据进行相关的交叉引用列表,所述基于规则的服务模块将执行规则包所需 的监测数据从所述主数据缓冲区传输至所述工作存储器。
7.根据权利要求6所述的系统,其中所述基于规则的服务模块适于在第一过程中在所 述业务规则引擎中发起一个或多个规则包的执行,其中在所述第一过程期间,所述业务规 则引擎的所述工作存储器没有填充执行规则包所需的监测数据;采集执行规则包所需的监 测数据,并且将其输入到所述主数据缓冲区中;将执行规则包所需的监测数据输入到所述 规则引擎的所述工作存储器中;以及在第二过程中在业务规则引擎中发起所述一个或多个 规则包的执行,以生成执行结果。
8.至少一个包含计算机可读指令的计算机可读介质,所述计算机可读指令用于辅助工程应用执行一个或多个预定功能,所述预定功能包括监测、分析或者控制物理系统,其中, 当执行时,计算机可执行指令执行包括以下的步骤 将分析请求从工程应用传输至业务规则引擎;响应于所述分析请求,在第一过程中,在所述业务规则引擎中发起一个或多个规则的 执行,其中,在所述第一过程期间,所述规则引擎的所述工作存储器没有填充所述一个或多 个规则所需的数据;采集所述一个或多个规则所需的数据;将所述一个或多个规则所需的数据传输到所述规则引擎的所述工作存储器; 在第二过程中,在所述业务规则引擎中发起所述一个或多个规则的执行,以生成执行结果;将所述第二过程的结果传输至所述工程应用,其中所述工程应用使用所述执行结果来 执行所述一个或多个预定功能。
9.根据权利要求8所述的至少一个计算机可读介质,还包括步骤将所述一个或多个 规则分组为规则包。
10.根据权利要求9所述的至少一个计算机可读介质,其中在所述业务规则引擎中执 行所述一个或多个规则的步骤还包括按照顺次顺序执行所述规则包。
11.根据权利要求8所述的至少一个计算机可读介质,其中采集所述一个或多个规则 所需的数据的步骤还包括聚集来自所述规则引擎的数据请求,并且将聚集的数据请求传 输至数据源。
12.根据权利要求11所述的至少一个计算机可读介质,还包括步骤从所述数据源接 收所述一个或多个规则所需的数据;将所述一个或多个规则所需的数据存储在主数据缓冲 区中;以及将所述一个或多个规则所需的数据从所述主数据缓冲区传输至所述业务规则引擎。
全文摘要
系统将业务规则引擎与工程应用相集成,该工程应用执行与物理系统的监测、分析或者控制相关的一个或多个预定功能。将规则处理请求从工程应用传输至基于规则的服务,其管理双轮次设计中的数据获取、数据插入、规则引擎调取活动,以便优化用于在线系统监测和控制的规则处理性能。
文档编号G05B19/418GK102105842SQ200980129046
公开日2011年6月22日 申请日期2009年7月14日 优先权日2008年7月24日
发明者K·莫斯勒希, M·萨布拉玛尼亚, 冯晓鸣 申请人:Abb研究有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1