使用正向推理链执行基于上下文模型的策略的方法及策略引擎技术

技术编号:2913242 阅读:196 留言:0更新日期:2012-04-11 18:40
一种使用正向推理链执行基于上下文模型的策略的方法,其中,该策略具有条件部分和动作部分,该方法包括:将包括多个策略的策略集合应用于实例化上下文模型,该实例化上下文模型包括一组相互引用的XML格式的实例文档;判断该实例化上下文模型是否需要更新;如果需要更新,则执行更新操作;根据更新后的实例文档和原实例化上下文模型,重新生成新的实例化上下文模型;将策略集合应用于该新的实例化上下文模型。本发明专利技术能够提供基于上下文模型的正向推理链,并具有更强的策略/规则推理能力,能够将不同的策略彼此关联以进行基于上下文模型的策略推理、模型自更新和多策略触发,从而提高系统的自愈合和自发展能力。本发明专利技术还提供了相应的策略引擎。

【技术实现步骤摘要】

本专利技术涉及计算机领域的正向推理链(Forwarding Chaining)技术,具体地说,涉及使用正向推理链执行基于上下文模型的策略的方法及策略引擎,尤其是在面向服务架构(Service-Oriented Architecture,简称SOA)的系统中。
技术介绍
面向服务架构SOA是指为了解决因特网环境下业务集成的需要而通过连接能完成特定任务的独立功能实体来实现的一种软件系统架构。换句话说,SOA是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来,其中接口的定义是独立于实现服务的硬件平台、操作系统和编程语言的。SOA采用面向服务的建模技术和WEB服务技术,实现系统之间的松耦合,从而实现系统之间的整合与协同。SOA策略是SOA系统的一个重要组成部分,其用于SOA系统的行为的声明性描述和执行。在SOA系统中,SOA策略的使用贯穿SOA的整个生命周期,包括设计时校验、部署时策略发布和打包、以及运行时服务选择、变化管理和影响分析。一般地,SOA策略在不同的层级上可以分为以下几种类型:- 业务策略,用于制定业务决策和遵循行业指导等;- 应用策略,用于在服务调用期间的服务选择等;- 治理策略,用于执行遵循标准的规则、定义治理过程的系统行为等。SOA技术的一个主要特点在于,所有的数据和上下文都采用XML语-->言描述,包含这样的数据和上下文的文档称为SOA元数据(Metadata)文档。一般地,SOA元数据文档可以包括:用于描述与服务相关的内容的服务元数据文档、用于描述与运行时信息相关的内容的运行时信息文档、或者用于描述其它业务内容的文档。例如,服务元数据文档可以采用Web服务描述语言(Web Service Description Language,简称WSDL)、XML模式定义语言(XML Schema Definition,简称XSD)、Web服务策略(WS-Policy)、服务组件定义语言(Service Component DefinitionLanguage,简称SCDL)、业务流程执行语言(Business Process ExecutionLanguage,简称BPEL)、服务组件架构(Service Component Architecture,简称SCA)策略等,运行时信息文档可以采用简单对象访问协议(SimpleObject Access Protocol,简称SOAP)、表示性状态传输(RepresentationalState Transfer,简称REST)等,描述其它业务内容的文档可以采用服务数据对象(Service Data Object,简称SDO)、Web本体语言(Web OntologyLanguage,简称OWL)等。SOA策略可以使用传统的业务策略/规则定义工具和转换机制生成,或者基于本体生成,或者利用服务建模语言(Service Modeling Language,简称SML)规则和Schematron模式语言生成,或者基于由一组XML文档构成的上下文模型生成。在使用相应的策略引擎执行策略时,某些策略引擎可支持用于推理一个应用于特定策略主体的策略/规则集合的正向推理链/演绎法(Forwarding Chaining)。所谓Forwarding Chaining是指策略/规则系统中对策略/规则集合的正向推理链。具体地,如果策略/规则1的执行改变了当前策略/规则集合所作用的目标系统的状态,并导致策略/规则2的匹配执行,那么从策略/规则1→策略/规则2的推理称为正向推理。以此类推,如果存在策略/规则1→策略/规则2→...→策略/规则n的推理链,则将策略/规则引擎在整个链路上的推理称为正向推理链。正向推理链是一种允许应用于同一个知识空间的策略/规则相互触发的机制,即,根据一个策略/规则的执行触发另一个策略/规则。-->在正向推理链机制中,策略/规则被解析为内存模型(memory model),而在策略/规则的条件部分和动作部分中引用的变量被表示为内存变量。当执行正向推理链时,通过在不同的策略/规则中更新内存变量和互换状态进行演绎。图1是现有的正向推理链机制的一个例子的示意图。如图1所示,WM表示工作内存,其可被当作策略/规则的变量的存储单元,其中,变量可由另一个策略/规则的执行而改变。在正向推理链机制中最费时的步骤是使用策略/规则的条件部分匹配WM,该步骤用于发现有效的WM,这些有效的WM已经由一个策略/规则的执行而改变并且将触发另一个策略/规则。现有技术中有许多正向推理链算法,最有名的是RETE算法,该算法的主要特征在于:1.状态保存,即,在每次WM发生改变后,匹配过程的状态(结果)被保存在α和β存储器中;而在下一次WM发生改变后,许多结果通常不发生改变,因此RETE算法通过在连续的WM改变之间保存这些结果而避免了许多重复计算。2.在具有类似的条件的结果之间共享节点,即,在α网络的输出端,当两个或多个结果具有一个共同的条件时,RETE算法使用一个α存储器用于条件,而不是对每个结果创建相同的存储器;而在网络的β部分,当两个或多个结果具有相同的条件时,使用相同的节点以匹配这些条件,从而避免重复匹配。然而,现有的使用正向推理链的策略/规则引擎对于使用XML格式的目标系统和策略/规则没有专门的解决方案。例如,RETE算法假设策略/规则和被验证的内容被解析为内存模型,以在不同的策略/规则的执行之间互换状态。而在使用XML的目标系统中,由于文档对象模型(DocumentObject Model,简称为DOM)消耗很多内存,并且很难在大型的XML文档中定位特定元素,因此,策略/规则以及所应用的XML格式的模型并不适合于定期装载为内存模型。另外,传统的验证XML内容的方式不需要内存模型,因此,也不需要使用RETE算法。下面简要介绍一下服务建模语言SML以及基于SML的策略引擎。SML语言是由IBM、微软、BEA、Intel等联合定义的用于基于XML-->的IT服务管理的语言,它提供了丰富的用于描述复杂IT服务和系统的模型的构件集合。SML模型是相关的XML文档的集合,这些XML文档包含关于一个IT服务的多个部分的信息、以及为了使该IT服务正常运行而每个部分必须满足的约束。SML模型中的文档包含定义文档和实例文档。定义文档是使用XML模式定义(XML Schema Definition,简称XSD)语言和Schematron模式语言描述的文档,是SML模型中描述了模式以及管理模型中的文档的结构和内容的策略/规则的文档子集。SML语言规范定义了两种定义文档,即符合XML模式的SML概要的XML模式文档和符合Schematron模式语言的SML概要的策略/规则文档,其中,策略/规则文档是约束模型中的文档的结构和内容的布尔表达式。实例文档是XML格式的文档,是SML模型中描述了模型化实体的结构和内容的文档子集。然而,基于SML的引擎仅用于系统配置的一步验证和报告。SML语言使用Schematron模式语言作为策略/规则表达式以验证其实例文档。根据Schematro本文档来自技高网...

【技术保护点】
一种使用正向推理链执行基于上下文模型的策略的方法,其中,上述策略具有条件部分和动作部分,上述方法包括: 将包括多个上述策略的策略集合应用于实例化上下文模型,上述实例化上下文模型包括一组相互引用的XML格式的实例文档; 判断上述实 例化上下文模型是否需要更新; 如果需要更新,则执行更新操作; 根据更新后的实例文档和原实例化上下文模型,重新生成新的实例化上下文模型;以及 将上述策略集合应用于上述新的实例化上下文模型。

【技术特征摘要】
1.一种使用正向推理链执行基于上下文模型的策略的方法,其中,上述策略具有条件部分和动作部分,上述方法包括:将包括多个上述策略的策略集合应用于实例化上下文模型,上述实例化上下文模型包括一组相互引用的XML格式的实例文档;判断上述实例化上下文模型是否需要更新;如果需要更新,则执行更新操作;根据更新后的实例文档和原实例化上下文模型,重新生成新的实例化上下文模型;以及将上述策略集合应用于上述新的实例化上下文模型。2.根据权利要求1所述的使用正向推理链执行基于上下文模型的策略的方法,其中,上述更新操作包括:实例文档添加操作、实例文档修改操作和实例文档删除操作中的至少一个或其组合。3.根据权利要求1或2所述的使用正向推理链执行基于上下文模型的策略的方法,还包括:检测并解决由上述更新操作引起的冲突。4.根据权利要求3所述的使用正向推理链执行基于上下文模型的策略的方法,其中,上述由上述更新操作引起的冲突包括:对同一个实例文档执行修改内容冲突的多个修改操作;对同一个实例文档同时执行修改操作和删除操作。5.根据权利要求3或4所述的使用正向推理链执行基于上下文模型的策略的方法,其中,上述检测并解决由上述更新操作引起的冲突的步骤包括:当检测到对同一个实例文档执行修改内容冲突的多个修改操作时,判断是否存在其修改内容等于或者包含其它修改操作的修改内容的一个修改操作;如果存在,则对该实例文档执行该修改操作;如果不存在,则根据应用逻辑确定对该实例文档执行哪一个修改操作;当检测到对同一个实例文档同时执行修改操作和删除操作时,对该实例文档执行删除操作。6.根据权利要求1至5任意一项所述的使用正向推理链执行基于上下文模型的策略的方法,其中,上述将上述策略集合应用于上述新的实例化上下文模型的步骤仅对上述新的实例化上下文模型中更新后的实例文档进行。7.根据权利要求1至6任意一项所述的使用正向推理链执行基于上下文模型的策略的方法,其中,上述将包括多个上述策略的策略集合应用于实例化上下文模型的步骤包括:使用上述多个策略的每一个验证上述实例化上下文模型中的实例文档是否使得该策略的条件部分成立;如果该策略的条件部分成立,则产生验证报告;以及根据上述验证报告,执行该策略的动作部分。8.根据权利要求7所述的使用正向推理链执行基于上下文模型的策略的方法,其中,上述验证上述实例化上下文模型中的实例文档是否使得该策略的条件部分成立的步骤包括:使用上述策略中的模式文档验证上述实例化上下文模型中的实例文档的结构;以及使用上述策略中的条件部分验证上述实例化上下文模型中的实例文档的内容。9.根据权利要求7或8所述的使用正向推理链执行基于上下文模型的策略的方法,其中,上述执行该策略的动作部分包括:装载上述动作部分中的动作语义模块;设置上述动作语义模块中的参数;以及运行上述动作语义模块。10.根据权利要求1至9任意一项所述的使用正向推理链执行基于上下文模型的策略的方法,其中,上述策略是面向服务架构的策略。11.一种使用正向推理链执行基于上下文模型的策略的策略引擎,其中,上述策略具有条件部分和动作部分,上述策略引擎包括:策略应用装置,用于将包括多个上述策略的策略集合应用于实例化上下文模型,其中上述实例化上下文模型包括一...

【专利技术属性】
技术研发人员:周宇辰刘昕鹏王夕宁薛亮周可馨
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1