决策服务中的有效规则执行的制作方法

文档序号:6508713阅读:115来源:国知局
决策服务中的有效规则执行的制作方法
【专利摘要】提供用于决策服务中的规则执行的方法和系统。该方法可以包括:基于业务规则的决策服务签名的聚类谓语,提供一个或者多个由决策分区分类的专用规则集;从客户接收决策请求;基于决策服务签名输入一个或者多个决策请求的参数给聚类谓语,从而产生决策类别;基于决策类别确定决策请求的专用规则集;转发决策请求,用于由专用规则集处理;以及从专用规则集返回决策输出。该方法还可以包括:在业务规则编写时定义聚类谓语;分析业务规则,以基于聚类谓语识别决策分区并且按决策分区分类业务规则,从而形成专用规则集。
【专利说明】决策服务中的有效规则执行
【技术领域】
[0001]本发明涉及决策服务领域。具体地,本发明涉及决策服务中的有效规则执行。
【背景技术】
[0002]决策服务是服务决策请求和基于决策逻辑返回决策输出的自主组件(autonomouscomponent)。这典型地利用业务规则和规则引擎来操作。
[0003]可以在中间件和大型企业软件领域应用决策服务,包括面向服务的体系结构(service oriented architecture)、软件即服务体系结构(software as a servicearchitecture)、web服务、决策管理和业务处理管理。在决策服务的领域存在增加它们的性能和可扩展性的需要。
[0004]决策服务中的规则集是可以由规则引擎使用的独立可执行容器。其包含将由规则引擎执行的规则的集合和规则工件(rule artifacts)。规则集组织并且存储与给定业务决策有关的规则。
[0005]基于大型规则集的决策处理的自主在性能和可扩展性方面留有挑战。在决策服务中执行的规则集的大小在上升的高容量个性化应用中达到数以万计的规则并且正增加达到数百万。
[0006]高容量业务规则的编写和支配通常导致单一单片(monolithic)规则集的部署,以做出决策。尽管单片封装是最方便的方式的事实,该方法引入在运行时的若干困难,包括以下:
[0007]?显著的启动时间:加载用以处理所有业务情形的所有规则以仅处理一个,相比于仅一种情形所需的时间更加昂贵;
[0008].更大的足迹(footprint):单片多目的规则集要求存储器和CPU来运行所有规贝U,即使它们的子集可能对于特定业务情形是合适的;以及
[0009].更长的执行时间:依赖于规则引擎的优化,执行性能可能深受规则集大小影响,即使仅使用子集。
[0010]对于获得执行可扩展性以并行服务多个请求的通常响应是将运行规则集的引擎池适当放置在独特机器或者群集上。发送决策请求到群集,该群集将该决策请求路由到节点,以由期望规则集处理。该分布策略对于获得可扩展性从而处理多个请求是有效的,但是不解决由高容量单片规则集引起的挑战。当(重新)启动群集成员时,并且此外当在灾难恢复中启动完整群集时,单片规则集方法要求完全加载决策资源,即使请求服务仅仅关注特定业务情形。
[0011]当重新启动机器时或者当规则集是垃圾时,启动大型单片规则集的花费保持高。在该情形下,规则集和引擎缓存/池策略是低效的。由于这一点,利用基于规则的决策服务的网站依赖于实现方式和规则集复杂性,可能需要几分钟或者数十分钟来加入和运行。
[0012]经典群集策略也不解决大型单片规则集的启动时间。该方法增加执行可扩展性,但是由于其规则和条件评估复杂性,性能保持由大型单片规则集的固有性能限制。[0013]由于利用它们的条件和测试的很多规则以单一生命周期封装在同一运行时容器中的事实,还存在显著评估成本。
[0014]因此,现有技术需要解决前述问题的方法。

【发明内容】

[0015]根据本发明的第一方面,提供一种用于决策服务中的规则执行的方法,包括:基于定义的业务规则的决策服务签名的聚类谓语,提供一个或者多个由决策分区分类的专用规则集;从客户接收决策请求;基于决策服务签名输入一个或者多个决策请求的参数给聚类谓语,从而产生决策类别;基于决策类别确定决策请求的专用规则集;转发决策请求,用于由专用规则集处理;以及从专用规则集返回决策输出。
[0016]该方法可以包括:在业务规则编写时定义聚类谓语;分析业务规则,以基于聚类谓语识别决策分区并且按决策分区分类业务规则,从而形成专用规则集。
[0017]该方法还可以包括:提供默认规则集;基于请求的参数确定是否没有找到请求的专用规则集;转发决策请求,用于由默认规则集处理;从默认规则集返回决策输出。默认规则集可以是完整规则集,从该完整规则集分区专用规则集。
[0018]该方法可以包括手动扩展用于专用规则集的决策分区。
[0019]该方法还可以包括:通过因式分解应用于分区的谓语测试由分区简化业务规则。
[0020]分析业务规则以识别决策分区可以包括:扫描业务规则中所有条件的所有业务规则;扫描在分区上执行的所有测试的所有条件;添加分区;向该分区添加测试;向默认分区添加测试。分析业务规则以识别决策分区还可以包括:对于包括默认的所有分区,并且对于在分区中利用测试的所有业务规则:从业务规则减去测试;向专用规则集添加业务规则。分析业务规则以识别决策分区还可以包括:去除针对另一值测试的规则。分析业务规则以识别决策分区还可以包括:重新排序测试、条件和规则。
[0021]基于业务规则的聚类谓语提供一个或者多个由决策分区分类的专用规则集可以包括:通过分解单片多目的规则集来分区一个或者多个专用规则集。
[0022]根据本发明的第二方面,提供一种用于在决策业务中规则执行的系统,包括:一个或者多个专用规则集,该一个或者多个专用规则集基于业务规则的决策服务签名的聚类谓语由决策分区来分类;请求调度器,用于:从客户接收决策请求;基于决策服务签名输入一个或者多个决策请求的参数给聚类谓语,从而产生决策类别;基于决策类别确定决策请求的专用规则集;转发决策请求,用于由专用规则集处理;以及从专用规则集返回决策输出。
[0023]该系统可以包括:业务规则编写组件,用于在业务规则编写时定义聚类谓语;规则集提取器组件,用于分析业务规则,以基于聚类谓语识别决策分区并且按决策分区分类业务规则,从而形成专用规则集。
[0024]该系统可以包括:提供默认规则集;并且其中请求调度器用于:基于请求的参数确定是否没有找到请求的专用规则集;转发决策请求,用于由默认规则集处理;以及从默认规则集返回决策输出。默认规则集是完整规则集,依据该完整规则集分区专用规则集。
[0025]根据本发明的第三方面,提供一种用于决策服务中的规则执行的计算机程序产品,该计算机程序产品包括计算机可读介质,该计算机可读介质具有具体化在其中的计算机可读程序代码,该计算机可读程序代码配置为:基于定义的业务规则的决策服务签名的聚类谓语,提供一个或者多个由决策分区分类的专用规则集;从客户接收决策请求;基于决策服务签名输入一个或者多个决策请求的参数给聚类谓语,从而产生决策类别;基于请求的参数确定决策请求的专用规则集;转发决策请求,用于由专用规则集处理;以及从专用规则集返回决策输出。
[0026]根据本发明的第四方面,提供基本如参考附图所描述的方法。
[0027]根据本发明的第五方面,提供基本如参考附图所描述的系统。
[0028]本发明的描述方面提供使得能够通过裁剪后的并且更小的决策规则集(其比多目的单片规则集更高效)来处理决策请求的优点。
【专利附图】

【附图说明】
[0029]认为是本发明的主题在说明书的结论部分中被特别地指出并且明显地要求保护。当与附图一起阅读时,通过参考以下详细描述可以连同其目的、特征和优点一起,最好地理解按照操作的组织和方法二者的本发明。
[0030]现在将参考下面的附图,仅仅通过示例方式描述本发明的优选实施例,在附图中:
[0031]图1是根据在编写时进行的根据本发明的方法的方面的示例实施例的流程图;
[0032]图2是根据在运行时进行的根据本发明的方法的方面的示例实施例的流程图;
[0033]图3是根据本发明的系统的示例实施例的框图;以及
[0034]图4是可以实现本发明的计算机系统的实施例的框图。
[0035]将认识,为了简单和清楚说明,图中所示的元素不必要按比例绘出。例如,为了清楚,某些元素的尺寸可以相对于其他元素被扩大。另外,在被认为合适的地方,可以在附图间重复参考标号,以指示对应的或类似的特征。
【具体实施方式】
[0036]在下面的详细描述中,阐述多个特定细节,以提供本发明的透彻理解。然而,本领域的技术人员将理解,在不需要这些特定细节的情况下,可以实践本发明。在其他实例中,未详细描述熟知的方法、例程和组件,从而不使本发明难理解。
[0037]提供方法和系统用于依赖于要处理的业务情形,将大型单片决策服务规则集分解为更小执行单元,并且跨越它们调度决策请求。
[0038]描述的方法依据业务规则的单片基(monolithic base),按照决策的类别建立规则集。在该方法中,定义聚类谓语来分类规则,并且将它们重写入专用规则集。该重写可以被视为改变,或者编写的业务规则的转换。
[0039]决策服务签名定义输入参数、输出参数和其他信息,以提供用于决策服务的合约(contract)。聚类谓语可以基于决策服务签名在业务规则编写时定义。然后在执行时使用聚类谓语,以确定向哪个规则集应用决策请求。在从规则的集合的规则集提取和对特定规则集的请求调度器之间使用一致的逻辑;然而,可以使用用于聚类谓语的不同过滤函数。
[0040]该决策服务的分解利用它们由内省业务规则组成的事实,这允许基于它们执行的测试的类型分离规则,并且构建预执行请求调度器。
[0041]描述的方法将单片多目的规则集分解为伴随系统的调度器和专用规则集的群集,以关于原始规则集的决策逻辑组合这些组件。
[0042]该调度依靠在业务规则编写时由业务分析员选择的聚类谓语。然后执行该调度逻辑,以路由决策请求到应用于所检测到的业务情形的专用规则集。
[0043]专用规则集可以在若干处理或者机器上本地运行或者分发。
[0044]在操作决策管理和业务规则管理系统的背景中实现描述的方法和系统;然而,它们可以应用于更多种背景,只要在系统中以以下元素为特征。
[0045].决策服务(DS):服务决策请求并且基于决策逻辑返回决策输出的自主组件。该政策典型利用业务规则和规则引擎来操作。
[0046]?规则集:规则集是独立可执行容器,该独立可执行容器可以由规则引擎使用。其包含将由规则引擎执行的规则的集合和规则工件。规则集组织并且存储与给定业务决策有关的规则。 [0047]在实现方式中利用决策服务由包含防护的规则组成的事实,该防护是对输入的测试的集合。规则是内省的,使得在给定规则集的情况下,能够积极地或者消极地提取与特定测试有关的规则集的部分。
[0048]示例
[0049]在描述中引用以下示例,以例示本方法和系统。考虑美国保险公司,该美国保险公司建模业务政策并且利用业务规则将其自动化。保险政策将被定义为核心逻辑,无论客户是什么美国州,该核心逻辑经常应用。然后业务规则将由美国的州专门化。
[0050]直接方法由实现一个大型单片规则集中的完整业务政策组成。其便于建模和编写业务规则。然而,意味着加载所有美国州情形的所有业务规则,以处理要求它们中的子集的仅仅一个美国州的请求。
[0051]描述的方法和系统允许业务分析员表达该情形“ 申请人:州”中的业务谓语。美国州值从业务规则扫描,并且可能由业务分析员编辑。在部署时,该谓语被应用在业务规则上,以按照每个美国州产生潜入其的请求调度器和专用规则集的群集。
[0052]在运行时,考虑生活在加利福尼亚的 申请人:的请求。发送该请求到决策服务。内部地,该调度器也在 申请人:参数上应用该谓语,以识别美国州。找到“加利福尼亚”,并且重定向专用于该州的请求。规则集执行业务规则并且返回决策到调用者,从而涉及更少资源用于减少的启动和执行时间。
[0053]测试重写和业务规则中的减少意味着数据状态在决策服务的执行期间是恒定的。调度谓语必须从规则集的执行的开始到结束返回相同结果。(例如, 申请人:州对于整个决策将是加利福尼亚,applicant.getState O ==USState.CA对于所有决策循环保持稳定)。
[0054]参考图1,流程图100示出在编写时进行的描述的方法的实施例。
[0055]在编写时,业务分析员可以定义110 —个或者多个聚类谓语,该聚类谓语在它们的决策逻辑中是高度辨识的,并且基于决策服务签名。“聚类谓语”被定义为指接受输入参数以依据该参数确定类别的函数。该聚类谓语应用于业务规则以分区规则为规则集。该聚类谓语还应用于决策请求,以确定对于其存在规则集的决策的类别。例如,谓语可以基于在输入中给出的客户邮编返回美国州类别。该函数典型基于在决策请求中传递的参数识别决策的类别。这使得能够聚类或者分类决策。
[0056]在部署时,分析业务规则120,以在每个业务规则编写模型工件上应用(多个)过滤谓语。
[0057]决策分区121可以在对于谓语测试中找到的值中识别(例如,applicant.getState O==USState.CA)。业务规则可以按决策分区分类122为类别。当决策分区没有在规则条件中表露时,业务分析员可以潜在地手动扩展123类别分区的列表。
[0058]决策分区(或者类别)可以明确地写入业务规则。例如,可以在规则中提及所有美国州。在一些情形下,它们不被明确写出并且业务用户可以在规则旁写出,以添加到决策类别的列表中。附加地,业务用户可以基于决策服务输入参数,添加一个或者若干谓语,以在该点对点决策类别中分类业务规则。
[0059]类别列表可以限定为完整或者开放。完整列表意味着所有类别在编写时是已知的,并且请求将总是路由到这些类别之一。如果不是这种情形,则系统将报告错误。当列表保持开放时,可以在运行时添加类别。在该情形下,当请求来自未知类别调度器,则将其路由到默认规则集,该默认规则集是单片规则集。
[0060]可以生成分区的业务规则的专用规则集124。依赖于它们的条件和测试,列出业务规则以在专用规则集中封装,从而应用于特定决策分区或者类别。然后可以通过因式分解(factorizing)谓语测试由分区或者类别简化业务规则125,该谓语测试应用于该分区(例如,applicant.getState () ==USState.CA)。
[0061]如下描述分区和它们相关的业务规则的静态扫描:
[0062]对于所有业务规则
[0063]向默认分区添加规则
[0064]对于业务规则中的所有条件
[0065]向默认分区中的规则添加条件
[0066]对于条件中的所有测试
[0067]如果在分区上执行测试则
[0068]如果不创建分区则添加分区
[0069]如果不向分区添加规则
[0070]则向该分区添加规则
[0071]向分区中的该规则添加该测试
[0072]向默认分区添加测试
[0073]结束
[0074]结束
[0075]结束
[0076]对于包括默认的所有分区
[0077]对于利用分区中测试的所有业务规则
[0078]从业务规则中减去该测试
[0079]向专用规则集添加业务规则
[0080]结束
[0081]结束
[0082]可以通过进一步分析执行其它规则集改变,这些可以包括:
[0083].去除针对另一值测试的规则(检查状态对于该属性是不可变的)。作为示例,具有类似applicant.getState O ==USState.NJ的测试的规则可以从决策类别(其中applicant.getState O 已经被定义为 USState.CA)中去除。[0084].重新排序测试、条件和规则。
[0085]参考图2,流程图200示出在运行时的描述的方法的实施例。
[0086]在决策服务接收201请求并且处理。可以将请求转发202到调度器。该调度器应用203调度逻辑以确定适配于传递的参数的专用规则集标识符。这可以包括输入203A —个或者多个决策请求的参数到聚类谓语,从而产生决策类别,并且基于决策类别确定203B用于决策请求的专用规则集。
[0087]确定204专用规则集是否找到。如果找到专用规则集,则将请求转发205到识别的专用规则集,用于业务逻辑的执行206。该专用规则集返回207该决策的输出参数。
[0088]如果没有找到专用规则集,则转发208请求到默认规则集,用于业务逻辑的执行209。默认规则集返回210该决策的输出参数。默认规则集可以是未分区的规则集。
[0089]调度器可以进行以下集成合约:
[0090].作为输入-具有单片规则集标识符的决策请求和输入参数;
[0091]?作为输出-返回基于识别的分区或者默认规则集(如果没有找到分区)找到的专用规则集标识符。
[0092]参考图3,框图示出描述的系统300的示例实施例。
[0093]业务规则编写组件310可以提供有定义的业务规则311,定义的业务规则311可以由业务分析员编写。可以提供规则聚类组件312,并且业务分析员可以提供要应用到业务规则的聚类谓语,以使得业务311可以聚类为分区或者类别。
[0094]可以提供规则集提取器组件320用于使用规则聚类组件312和预定义谓语来从业务规则311提取专用规则集344-346。
[0095]可以提供包括规则引擎的决策服务301。决策服务301可以包括具有请求调度器331的规则集应用组件330。请求调度器331可以从客户应用340接收决策请求。
[0096]请求调度器331可以包括谓语应用组件332,用于将聚类谓语应用到决策请求的输入参数,从而确定哪个预定义专用规则集334-336或者默认规则集337 (如果有的话)将用于决策请求。
[0097]规则集应用组件330可以包括包含以下的封装:
[0098].决策请求调度器331;
[0099].专用规则集334-336的集合,每个决策分区一个专用规则集;以及
[0100].默认单片规则集337,如果没有专用规则集对于请求进行选择,则使用
[0101]可以使这些组件在机器或者机器的群集上可用。
[0102]参考图4,实现本发明的各方面的示例性系统包括适于存储和/或执行程序代码的数据处理系统400,该数据处理系统400包括至少一个通过总线系统403直接或者间接耦合到存储器元件的处理器401。存储器元件可以包括在实际执行程序代码期间使用的本地存储器、大容量存储器以及高速缓冲存储器,该高速缓冲存储器提供至少一些程序代码的临时存储,从而减少执行期间代码必须从大容量存储器获取的次数。
[0103]存储器元件可以包括只读存储器(ROM) 404和随机存取存储器(RAM) 405的形式的系统存储器402。基本输入/输出系统(B10S)406可以存储在R0M404中。系统软件407可以存储在包括操作系统软件408的RAM405中。软件应用程序410还可以存储在RAM405中。
[0104]系统400还可以包括主存储部件411,诸如磁硬盘驱动器之类,和辅助存储部件412,诸如磁盘驱动器和光盘驱动器之类。驱动器和其相关联的计算机可读介质提供计算机可执行指令、数据结构、程序模块和系统400的其他数据的非易失性存储器。软件应用程序可以存储在主存储部件411和辅助存储部件412以及系统存储器402上。
[0105]计算系统400可以经由网络适配器416使用到一个或者多个远程计算机的逻辑连接在联网环境中操作。
[0106]输入/输出设备613可以直接或者通过干预I/O控制器耦接到该系统。用户可以通过输入设备,诸如键盘、指示设备或者其他输入设备(例如,麦克风、操作杆、游戏控制器(game pad)、天线接收器、扫描仪等)之类,输入命令和信息到系统400。输出设备可以包括扬声器、打印机等。显示设备414还经由接口(诸如视频适配器415之类)连接到系统总线403。
[0107]如下解释描述的方法和系统提供的优化:
[0108].与请求调度器结合地在辨识谓语中进行的测试是整个规则集任务的很小部分;因此,性能在最坏的情况下完全不受影响。
[0109]?在最普通的情况下,当用户已经对于其决策选择正确辨别因素(factor)时,观察到在启动时间、决策服务的速度和存储器使用中的大量节省,因为由于预过滤不再更多评估很多测试。
[0110].结果,当精确地选取辨识测试时(B卩,当它们与输入空间的主要组件匹配时),特别当请求跨越决策类别不平衡时,按请求的决策服务评估成本大幅减少。
[0111]本发明可以采用全部硬件实施例、全部软件实施例或者包含硬件和软件元件二者的实施例的形式。在优选实施例中,本发明以软件实现,其包括但不限于固件、常驻软件(resident software)、微代码等。
[0112]本发明可以采用计算机程序产品的形式,该计算机程序产品可以从可使用计算机或者计算机可读介质获取,以提供程序代码用于由计算机或者任何指令执行系统使用或者与其结合使用。为了该描述的目的,可使用计算机或者计算机可读介质可以是任何装置,该装置可以包含、存储、通信、传播、或者传输程序用于由指令执行系统、装置或者设备使用或者与其结合使用。
[0113]介质可以是电、磁、光、电磁、红外线或半导体的系统(装置或器件)或者传播介质。计算机可读存储介质的示例包括:半导体或者固态存储器、磁带、可移动计算机软磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘(rigid magnetic disk)和光盘。光盘的当前示例包括紧凑磁盘只读存储器(CD-ROM)、紧凑磁盘读取/写入(CD-R/W)和DVD。
[0114]可以在不脱离本发明的范围的情况下对前述做出改进和修改。
【权利要求】
1.一种用于决策服务中的规则执行的方法,包括: 基于定义的业务规则的决策服务签名的聚类谓语,提供(124) —个或者多个由决策分区分类的专用规则集; 从客户接收(201)决策请求; 基于决策服务签名输入(203A)—个或者多个决策请求的参数给聚类谓语,从而产生决策类别; 基于决策类别确定(203B)决策请求的专用规则集; 转发(205)决策请求,用于由专用规则集处理;以及 从专用规则集返回(207)决策输出。
2.如权利要求1所述的方法,包括: 在业务规则编写时定义(110)聚类谓语; 分析(120)业务规则,以基于聚类谓语识别决策分区并且按决策分区分类业务规则,从而形成专用规则集。
3.如权利要求1所述的方法,包括: 提供默认规则集; 基于请求的参数确定(204)是否没有找到请求的专用规则集; 转发(208)决策请求,用于由默认规则集处理; 从默认规则集返回(210)决策输出。
4.如权利要求3所述的方法,其中,默认规则集是完整规则集,从该完整规则集分区专用规则集。
5.如权利要求2所述的方法,包括: 手动(123)扩展用于专用规则集的决策分区。
6.如权利要求1所述的方法,包括: 通过因式分解应用于分区的谓语测试,由分区简化业务规则。
7.如权利要求2所述的方法,其中,分析业务规则以识别决策分区包括: 扫描业务规则中所有条件的所有业务规则; 扫描在分区上执行的所有测试的所有条件; 添加分区; 向该分区添加测试; 向默认分区添加测试。
8.如权利要求2所述的方法,其中,分析业务规则以识别决策分区包括: 对于包括默认的所有分区,并且对于在分区中利用测试的所有业务规则: 从业务规则减去测试; 向专用规则集添加业务规则。
9.如权利要求2所述的方法,其中,分析业务规则以识别决策分区包括: 移除针对另一值测试的规则。
10.如权利要求2所述的方法,其中,分析业务规则以识别决策分区包括: 重新排序测试、条件和规则。
11.如权利要求1所述的方法,其中,基于业务规则的聚类谓语提供(124)—个或者多个由决策分区分类的专用规则集包括: 通过分解单片多目的规则集来分区一个或者多个专用规则集。
12.一种用于在决策服务中规则执行的系统,包括: 一个或者多个专用规则集(334-336),该一个或者多个专用规则集基于业务规则的决策服务签名的聚类谓语由决策分区来分类; 请求调度器(331),用于: 从客户接收决策请求; 基于决策服务签名输入一个或者多个决策请求的参数给聚类谓语,从而产生决策类别; 基于决策类别确定决策请求的专用规则集(334-336); 转发决策请求,用于由专用规则集处理;以及 从专用规则集返回决策输出。
13.如权利要求12所述的系统,包括: 业务规则编写组件(310),用于在业务规则编写时定义聚类谓语; 规则集提取器 组件(320),用于分析业务规则,以基于聚类谓语识别决策分区,并且按决策分区分类业务规则,从而形成专用规则集(334-336 )。
14.如权利要求12所述的系统,包括: 提供默认规则集(337);并且其中 请求调度器(331)用于: 基于请求的参数确定是否没有找到请求的专用规则集(334-336); 转发决策请求,用于由默认规则集(337)处理;以及 从默认规则集(337)返回决策输出。
15.如权利要求14所述的系统,其中,默认规则集(337)是完整规则集,依据该完整规则集分区专用规则集。
16.一种用于根据权利要求1-11所述的决策服务中的规则执行的系统。
【文档编号】G06F17/30GK103631848SQ201310371638
【公开日】2014年3月12日 申请日期:2013年8月23日 优先权日:2012年8月23日
【发明者】P.D.费勒特, B.托马斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1