执行基于上下文模型的面向服务架构的策略的方法和策略引擎的制作方法

文档序号:6614356阅读:165来源:国知局
专利名称:执行基于上下文模型的面向服务架构的策略的方法和策略引擎的制作方法
技术领域
本发明涉及计算机网络系统的面向服务架构(Service-Oriented Architecture,简称SOA)的技术,具体地说,涉瓦基于上下文模型的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 Definition Language,简称SCDL )、业务流程执行语言(Business Process Execution Language,简称BPEL )、服务组件架构(Service Component Architecture, 简称SCA)策略等,运行时信息文档可以采用简单对象访问协议(Simple Object Access Protocol,简称SOAP)、表示性状态传输(Representational State Transfer,筒称REST)等,描述其它业务内容的文档可以采用服务 数据对象(Service Data Object,简称SDO )、 Web本体语言(Web Ontology Language,简称OWL)等。
下面筒要介绍现有技术中的策略引擎。 (一)业务策略引擎
在现有技术中,有许多业务策略引擎,例如,ILOG JRule引擎、Drools 引擎、Mandarax引擎、几isa引擎、JEOPS引擎、OpenRules引擎等。
ILOG JRule引擎是适合于与J2SE或J2EE应用程序单独使用的灵活 的高性能执行平台。该引擎支持策略/规则语言定制,例如,业务操作语言 (Business Action Language,简称BAL,其4吏用自然语言语法定义策略/ 规则)、ILOG策略/规则语言(ILOG Rule Language,简称IRL,其使用 类似Java或XML的语法定义策略/规则)、业务策略/规则语言定义框架、 或Java语言集成(其直接在IRL中使用Java表达式)等。
Drools S1擎是Java的开放源面向对象的策略/规则引擎,其提供声明 性逻辑编程,并且能够很灵活地匹配用户所考虑的域的语法。Drools引擎 是JSR94规范的具体实现。相关的详细描述可参见 http:〃iava-source.net/oDen-source/rule-engines/drools。
Mandarax引擎是用于演绎策略/规则的开放源Java类库,其提供用于定义、管理和查询策略/规则库的体系,相关的详细描述可参见
http:〃i ava-source.net/open-source/rule-engines/mandarax。
JLisa引擎是用于建立可访问Java的业务策略/规则的开放源框架,其 遵循 JSR94 规范,相关的详细描述可参见 http:〃iava-source.net/oDen-source/rule國engines/ilisa。
Java嵌入对象产生系统(Java Embedded Object Production System, 简称JEOPS )引擎是基于开放源Java的演绎法/正向推理链(Forwarding Chaining)策略/规则引擎,其用于使用Java应用服务器中的规则、客户 端应用程序和Servlets启动业务过程。相关的详细描述可以参见 http:〃iava-source.net/open-source/rule-engines/ieoDs國the-iava-embedded國o b i ect-production-svstem 。
OpenRules引擎是全面的开放源业务策略/规则管理框架,其有效地使 用MS Excel、 Eclipse集成开发环境(IDE)和开放源Java库以创建、部 署、执行和维护不同的具有复杂的业务逻辑的策略/规则引擎,相关的详细 描述可参见http:〃iava-source.net/open國source/rule-engines/onenrules 。
某些策略/规则引擎可支持用于推理一个应用于特定策略主体的策略/ 规则集合的演绎法/正向推理链(Forwarding Chaining)。所谓Forwarding Chaining是指规则系统中对规则集合的正向推理链。具体地,如果规则1 的执行改变了当前规则集合所作用的目标系统的状态,并导致规则2的匹 配执行,那么从规则l"^规则2的推理称为正向推理。以此类推,如果存 在规则1">规则2"^…^规则n的推理链,则将规则引擎在整个链路上的推 理称为Forwarding Chaining,正向推理链是一种允许应用于同一个知识空 间的策略/规则相互触发的机制,即,根据一个策略/规则的执行触发另 一个 策略/规则。
在正向推理链机制中,策略/规则被解析为内存模型(memory model), 而在策略/规则的条件部分和动作部分中引用的变量备表示为内存变量。当 执行正向推理链时,通过在不同的策略/规则中更新内存变量和互换状态进 行演绎。图l是现有的正向推理链机制的一个例子的示意图。如图l所示,
iiWM表示工作内存,其可被当作策略/规则的变量的存储单元,其中,变量 可由另 一个策略/规则的执行而改变。在正向推理链机制中最费时的步骤是 用策略/规则的条件部分匹配WM,该步骤是用于发现有效的WM,这些 有效的WM已经由一个策略/规则的执行而改变并且将触发另一个策略/规 则。
现有技术中有许多正向推理链算法,最有名的是RETE算法,该算法 的主要特征在于1.状态保存,即,在每次WM发生改变后,匹配过程 的状态(结果)被保存在a和/3存储器中;而在下一次WM发生改变后, 许多结果通常不发生改变,因此RETE算法通过在连续的WM改变之间 保存这些结果而避免了许多重复计算。2.在具有类似的条件的结果之间共 享节点,即,在a网络的输出端,当两个或多个结果具有一个共同的M 时,RETE算法使用一个a存储器用于条件,而不是对创建每个结果创建 相同的存储器;而在网络的/3部分,当两个或多个结果具有相同的条件时, 使用相同的节点以匹配这些条件,从而避免重复匹配。
然而,现有的业务策略/规则引擎具有下述的局限性
1. 现有的业务策略/规则集中在执行业务策略/规则,而对于其它类型 的SOA策略不能执行。
2. 现有的业务策略/规则引擎对于SOA系统的特点-使用XML格式-没有专门的解决方案。例如RETE算法假设策略/规则和被验证的内容被解 析为内存模型以在不同的策略/规则的执行之间互换状态。而在XML中, 由于文档对fjt莫型(Document Object Model,简称为DOM)消拟艮多内 存,并且很难在大型XML文档中定位特定元素,因此,策略/规则以及所 应用的XML格式的模型并不适合于定期装载为内存模型。另外, XML 内容的传统方式不需要内存模型,因此,也不需要RETE算法。
3. 现有的业务策略/规则引擎总是定义自己的策略/规则格式,因此, 为一个引擎定义的规则/策略很难被广泛采用,不能重复使用。
4. 由于现有的业务策略/规则引擎不能处理SOA系统的使用XML语 言的特点,因此,需要复杂的机制来转换信息,并且被集成在SOA系统中,例如,ILOG策略/规则引擎作为策略/规则服务封装在FileNet工作流系统 中。
5.在现有的业务策略/规则引擎中,策略/规则表达式具有固定的术语, 例如,Java专用表达式或保留的XML结构或术语(RuleML、 SWRL等), 这会导致刚性的引擎实现或推理体系结构。另外,应用策略/规则的应用域 和上下文也是固定的。
(二)应用策略引擎
在现有技术中有许多应用策略引擎可用于SOA系统。通常,这些应用 策略引擎都是基于本体论的,例如,IBM公司的WebSphere Business Service Fabric (WBSF)工具、基于语义网规则语言(Semantic Web Rule Language,简称SWRL)的引擎、SweetRules引擎、TRIPLE引擎、SEW
引擎等。
WBSF工具是用于选择服务端点本体的动态装配程序,其仅使用OWL 文档中的术语定义策略的条件部分。
SWRL语言是结合Web本体语言(Web Ontology Language,筒称 OWL)的OWL DL、 OWL Lite子语言和规则标记语言(Rule Markup Language,简称RuleML )的一元/二元数据记录RuleML子语言而形成的, 其扩展OWL公理的集合以包括霍恩式(Horn-like)策略/规则,从而使霍 恩式策略/规则能够与OWL知识库结合。
SweetRules引擎是用于语义网规则和本体的开放源集成工具的集合, 其以用于语义网规则的规则标记/建模语言(Rule Markup/Modeling Language,简称RuleML )标准为中心,并支持相关的SWRL语言和用于 语义网本体的 OWL标准。相关的详细描述可以参见 httD:〃i ava-source.net/open-source/rule-engines/sweetrules。
TRIPLE引擎是支持RDF和OWL Lite的子集的语义网引擎,其语法 是基于F逻辑并支持一阶逻辑的重要片断。相关的详细描述可以参见 httD:〃triDle.semanticw eb.org。
SEW引擎是RDF模式引擎的具体实现,包括某些XML模式数据类
13型支持,其能够读取以RDF/XML和N-TRIPLES格式串接的RDF图。
然而,这样的应用策略引擎只支持一步推理,并且适用于特定行业, 而对于具体的策略主体不适用,例如计划、应用程序或服务。另外,还涉 及^^多复杂的标准,造成应用策略引擎复杂。
(三)基于服务建模语言(Service Modeling Language,简称SML) 的引擎
SML语言是由IBM、微软、BEA、 Intel等联合定义的用于基于XML 的IT服务管理的语言,它提供了丰富的用于描述复杂IT服务和系统的模 型的构件集合。SML模型是相关的XML文档的集合,这些XML文档包 含关于一个IT服务的多个部分的信息、以及为了使该IT服务正常运行而 每个部分必须满足的约束。
SML模型中的文档包含定义文档和实例文档。
定义文档是4吏用XML模式定义(XML Schema Definition,筒称XSD) 语言和Schematron模式语言描述的文档,是SML模型中描述了模式以及 管理模型中的文档的结构和内容的策略/规则的文档子集。SML语言规范 定义了两种定义文档,即符合XML模式的SML概要的XML模式文档和 符合Schematron模式语言的SML概要的策略/规则文档,其中,策略/规 则文档是约束模型中的文档的结构和内容的布尔表达式。
实例文档是XML格式的文档,是SML模型中描述了模型化实体的结 构和内容的文档子集。
然而,基于SML的引擎仅用于IT系统管理,因为SML语言的设计 初衷是用于系统管理、模型驱动模块化、再利用和标准化,例如微软的系 统管理服务器。另外,基于SML的引擎仅用于系统配置的一步^和报 告。SML语言使用Schematron模式语言作为策略/规则表达式以验证其实 例文档。根据Schematron模式语言规范,在标准Schematron模式语言内
息。SML语言规范扩展了4Hi报告引入结构化输出的能力,但是这种扩展 仅提供元素或属性的标准输出,而没有进一步的语义。

发明内容
本发明正是基于上述技术问题而提出的,其目的在于提供一种执行基
于上下文模型的SOA策略的方法及策略引擎,能够根据策略执行的场景和 目的灵活地构成策略范围,并且适用于各种类型的SOA策略。
根据本发明的一个方面,提供一种执行基于上下文4莫型的SOA策略的 方法,包括根据业务要求,搜集与策略执行相关的实例文档;利用所搜 集的实例文档,生成实例化上下文模型;才艮据所搜集的实例文档,生成将 要执行的策略集合;确定策略集合中的策略的执行顺序;以及按照上述执 行顺序,将上述策略应用于上述实例化上下文才莫型。
根据本发明的另一个方面,提供一种执行基于上下文模型的SOA策略 的策略引擎,包括搜集单元,用于搜集与策⑩行相关的实例文档;上 下文模型生成单元,用于利用所搜集的实例文档,生成实例化上下文模型; 策略集合生成单元,用于根据所搜集的实例文档,生成将要执行的策略集 合;顺序确定单元,用于确定策略集合中的策略的执行顺序;以及策略应 用单元,用于将上述策略应用于上述实例化上下文模型。


图l是现有的正向推理链机制的一个例子的示意图; 图2是根据本发明的一个实施例的执行基于上下文模型的SOA策略的 方法的流程图3是图2的实施例中将策略应用于实例化上下文模型的步骤的流程
图4是根据本发明的另 一个实施例的执行基于上下文模型的SOA策略 的方法的流禾呈图5是根据本发明的一个实施例的执行基于上下文模型的SOA策略的 策略引擎的示意性方框图6是图5的实施例中策略应用单元的示意性方框图;图7是根据本发明的另 一个实施例的执行基于上下文模型的SOA策略 的策略引擎的示意性方框图。
具体实施例方式
相信通过以下结合附图对本发明的具体实施例的详细描述,本发明的 上述和其它目的、特征和优点将会更加明显。
图1已经在背景技术部分进行了描述,此处省略说明。
图2是根据本发明的一个实施例的执行基于上下文模型的SOA策略的 方法的流程图。下面结合附图,详细说明本实施例。
如图2所示,在步骤100,根据业务要求,搜集与策略执行相关的实 例文档,作为将要执行的策略的上下文。
具体地,当策,行开始时,用户可以才艮据业务要求和现有的应用才莫 块,确定与策#行相关的实例文档的范围,并且根据此范围,选择符合 要求的文档并进行实例化,从而得到实例文档。这些文档可以来自在基于 上下文模型生成SOA策略的过程中生成的上下文模型模板、包括Web应 用服务器的运行时平台、工作流引擎、业务分析工具等,典型地,这些文 档可以是SOA元数据文档,例如WSDL文档、XSD文档、WS-策略文档、 SOAP消息和OWL文档等,也可以是包含对象信息的非XML格式的文 档。
实际上,实例文档与SOA策略之间的相关性在策略生成阶段已经指 定。即,在生成SOA策略时,相应的与策略相关联的上下文模型已经确定, 此时,该上下文模型中的文档是使用XML Schema定义语言的文档。而当 执行SOA策略时,上述XML Schema定义语言的文档需要用符合该XML Schema定义的XML实例文档替换,而采用哪个实例文档进^t^换则根据 具体的应用语义确定。
具体地,XML实例文档可以基于策略生成过程中的与策略相关联的上 下文模型搜集。具体地,根据业务要求,对相应的与策略相关联的上下文 模型中的每一个XML Schema文档指定一个实例文档,其中该实例文档在结构上符合对应的XML Schema文档的定义。
然后,检查实例文档的格式是否是XML格式,如果不是XML格式, 则将非XML格式的实例文档转换成相应的符合某些预定义的XML模式 的XML实例文档。例如,某些业务场景中,应当被业务策略约束的文档 可能最初没有采用XML格式,这就需要进行文档格式转换并且保持相同 的语义。因此,所搜集的所有与策略执行相关的实例文档都是基于XML 格式的。
然后,在步骤200,利用所搜集的实例文档,生成实例化上下文模型。 具体地,对所搜集的每一个实例文档都建立其与其它实例文档的文档间引 用关系,然后,通过所建立的文档间引用关系聚合这些实例文档,以生成 实例化上下文模型。
在本实施例中,"实例化上下文模型"也可以是在生成SOA策略的过 程中使用的与策略相关联的上下文模型的一个实例。如上所述,用于生成 策略的上下文模型中的每个文档是抽象的XML文档,可以用XML Schema定义语言描述;而在搜集实例文档时,每个这样的XML Schema 文档用对应的XML实例文档替换。相应地,抽象的上下文模型通过实例 文档的替换而成为能够在其上执行策略的实例化上下文模型。
具体地,从XML的层面看,在使用XML规范定义的语法描述实例 化上下文模型时,基于策略生成过程中的上下文模型,将该上下文模型中 对抽象的XML文档的引用标识修改为对相应的实例文档的引用标识,这 样,在策略生成阶段的抽象XML文档之间的聚合关系转变为所搜集的实 例文档之间的聚合关系,通过该聚合关系得到的新模型是实例化上下文模 型。从SML的层面看,在使用SML规范定义的语法描述实例化上下文模 型时,将在策略生成过程中生成的SML聚合文档中对每个XML Schema 文档的统一 资源标识符URI的引用修改为对相应的所搜集的实例文档的统 一资源标识符URI的引用,从而生成新的SML聚合文档。该新的SML 聚合文档和所搜集的XML实例文档一起构成使用SML语法描述的实例化 上下文模型。在本实施例中,选择SML语言实现实例化上下文模型。在步骤300,根据所搜集的实例文档,生成将要执行的策略集合,该 策略集合将应用于在步骤200生成的实例化上下文模型。具体地,根据所 搜集的实例文档的范围,确定相关的策略。这些策略是预先生成的基于上 下文模型的策略,并且存储在本地或远程服务器上。策略采用条件/动作格 式,在本实施例中,策略是基于SML语言的,具体地,采用Schematron 模式语言并具有可扩展的动作部分。下面给出一个基于SML的策略的例 子
< xml version="1.0" encoding="UTF-8" >
<schema xmlns="http :〃www. ascc.net/xml/schematron,'
xmlns:sml="http:〃schemas.serviceml.org/sml/2006/10"〉
<title〉Log Policy</title>
<ns uri="http:〃com,ibm.calico.request/,, prefix="req" /〉 <ns uri="http:〃schemas.serviceml.org/sml/ftmction/2006/07" prefix-"smlfo,V〉 <pattern name="Log Gold WS Access,,> <rule
context="/niediationConfiguration/destination"> <report id="endpoint,, test=',
(smlfii:deref(../destination[@name=,PolicyMediation,]/mediation/step/config/model/docLocation[ 敏d-'roleO,])/req:headers/req:header吸key^'qos']顺value:,GOLD》 and (qos/text()=,GOLD')">
LOG {http:〃com.ibTn,cn/soa/example} |Webservice withEndpoint- 〈value-of select="mediation/step/config/transform/targetSelection/target/text()7〉 has been
accessed! |C:\WS-Access-Log.txt
</report>
</rule> </pattem〉 </schema>其中,策略的条件部分为
(smlfn:deref(../destination[@name='PolicyMediation']/mediation/step/config/m odel/docLocation[@id='roleO'])/req:headers/req:header[@key='qos']/@value=' GOLD') and (qos/text()='GOLD')">; 策略的动作部分为
LOG{http:〃com.ibm.cn/soa/example}|Web service with Endpoint - <value-of select="mediation/step/config/transform/targetSelection/target/text07〉 has been accessed!|C:\WS-Access-Log.txt。
在确定了相关的策略后,集合所确定的策略,从而形成策略集合。 进一步地,在确定了相关的策略后,还可以才艮据预先确定的文档-策略 绑定,过滤所确定的策略,以进一步精炼策略,再将过滤后的策略集合成 策略集合。可选地,文档-策略绑定也可以根据应用逻辑产生。
当生成策略集合之后,在步骤400,确定策略集合中的策略的执行顺 序。具体地,首先设置策略的优先级。通常,如果策略彼此独立,则这些 策略的优先^M目同,如果某些策略之间存在关联关系,则这些策略的优先 级不相同。当然,用户也可以根据需要对策略设置不同的优先级,但不能 改变策略之间的关联关系。然后,根据优先级,对策略集合中的策略进行 排序。
最后,在步骤500,按照在步骤400中确定的策略的执行顺序,将这 些策略应用于在步骤200中生成的实例化上下文模型。图3示出了该策略 应用步骤500的流程图。
如图3所示,首先在步骤501,将一个策略应用于该实例化上下文才莫 型,以發汪该实例化上下文模型中的实例文档是否匹配,该验证包括两个 方面 一方面是使用该策略中的模式文档验证实例文档的结构,另一方面 是使用该策略的条件部分验证实例文档的内容。在策略是基于SML语言 的情况下,使用XML模式文档进行实例文档的结构验汪,使用Schematron 格式的策略的M部分进行实例文档的内$*^。
如果实例文档的结构验ii和内^iHi都匹配,则表明该实例文档匹配该策略,在步骤505,产生g报告。例如,使用Schematron描述的策略 的mi报告的语法是动作名称{动作名称空间URI)l参数ll…l参数n,其 冲每个参数的表达式可以是常量字符串或者是下面表示的SML模型上下 文的Schematron允i午的标签
<valu-of select=" SML模型文档元素或属性或其它的XPath表达式"> , 其用于获得XPath规定的XML元素/属性值;
<name path="SML模型文档元素或属性或其它的XPath表达式">, 其用于获得XPath规定的XML元素/属性标签名称。
在本实施例中,B报告与策略的动作部分相同。在上面的基于SML 的策略的例子中,B报告为
LOG{http:〃com.ibm.cn/soa/example}|Web service with Endpoint - <value-of select="mediation/step/config/transform/targetSelection/target/text()"/> has been accessed! |C:\WS-Access-Log.txt。
如果没有实例文档匹配,则产生提示信息。
然后,在步骤510,根据所产生的^报告,执行该策略的动作部分。 具体地,从B报告中获得将要执行的动作语义模块的信息,并装载该动 作语义模块。在本实施例中,动作语义模块的信息包括动作名称及参数。 动作语义模块可以是系统提供的常用的动作语义模块,也可以是用户定义 的动作语义模块,并且,这些动作语义模块可采用插件形式,在运行时进 行调用。然后,设置所装载的动作语义模块中的参数并运行该动作语义模 块,其中,所设置的M值可以是常量字符串或者实例文档中的特定值。
然后,在步骤515,判断该策略是否是最后一个策略,如果是,则结 束此次策略执行过程。如果不是,则选择下一个策略(步骤520),并返 回步骤501。
通过以上描述可以看出,本实施例的执行基于上下文^f莫型的SOA策略 的方法可以才艮据策略执行的场景和目的灵活地搜集实例文档以限定策略范 围,例如计划、应用、服务等,并且可以应用于各种类型的SOA策略。
与现有的业务策 ^行纟支术方案相比,本实施例的执行基于上下文模型的SOA策略的方法具有如下的优点
1. 提供专用于SOA系统的解决方案,可以处理基于XML语言的SOA
策略;
2. 遵循SOA^L术的相关标准,例如SML、 XPath、 Schematron等标
准;
3. 适用于各种类型的SOA策略,并且结合了业务和IT信息。
与现有的基于本体的应用策B^L行技术方案相比,本实施例的执行基 于上下文才莫型的SOA策略的方法具有如下的优点
1. 提供SML模型中用于特定应用场景的自包含的术语和关系,其中 内置的XML元素作为术语的自然定义,内置的XML文档结构和 XML/SML引用作为描述元素之间的关系的自然方式,因此,不需要预定 义本体,可以重复使用XML文档中的域专用的语义和关系,例如WS-策 略文档、WS-RM策略文档等;
2. 提供灵活的策略范围,例如计划、应用、服务等,而不仅限于特定
域;
3. 由于基于简单的SOA/XML标准,例如SML、 Schematron、 XPath 等,因此易于使用,具有实用性。
4. 能够容易地集成在采用SML的工具中。
与现有的WBSF技术相比,本实施例的执行基于上下文模型的SOA 策略的方法具有如下的优点
1. 更强的语义表达能力能够描述任意要求的关于特定的SML上下 文模型结构和内容以及可扩展的动作模块的策略/规则内容,而在WBSF 技术中,由于不同的业务要求和IT服务质量,只能提供处理运行时服务选 择的策略。
2. 更灵活的策略上下文模型可以根据所需SML模型的范围重新利 用现有的IT系统元数据,而在WBSF技术中,策略只能基于WBSF的专 用OWL核心本体进行定制和扩展。
与现有的基于标准SML的策e^行技术方案相比,在本实施例的执
21说明书第14/23页
行基于上下文模型的SOA策略的方法中,动作语义模块采用插件形式,使 得策略的动作部分能够扩展,并且可以被重复使用。
图4是根据本发明的另一个实施例的执行基于上下文模型的SOA策略 的方法的流程图,其中与前面实施例相同的部分采用相同的标记,并适当 省略其说明。下面结合附图,对本实施例进行详细的描述。
本实施例与图3所示的实施例的区别在于引入了正向推理链机制。
如图4所示,在执行了策略的动作部分(步骤510)之后,在步骤520, 确定该实例化上下文模型是否需要更新,即确定所执行的策略的动作部分 是否会使实例化上下文模型发生变化,例如,添加新的实例文档、修改原 有的实例文档或者删除原有的实例文档。如果不需要更新,则继续执行步 骤515。如果需要更新,则在步骤525,执行更新操作,即,添加新的实例 文档、修改原有的实例文档或者删除原有的实例文档或者其组合。
然后在步骤530,检测并解决由更新^作引起的冲突。在本实施例中, 更新操作所引起的沖突可包括
(1)对于原有的实例化上下文模型中的某个文档只进行修改操作,但 是两个以上的修改操作的内M在冲突;
(2 )对于原有的实例化上下文模型中的某个文档同时进行修改操作和 删除操作。
对于冲突(l):如果存在冲突的内^l此兼容,则选择修改内容最多 的修改操作,其中,兼容是指一个修改操作所修改的内容等于或者包含另 一个修改操作的内容;如果存在冲突的内^L此不兼容,则通过执行相应 的应用逻辑来自动判断,或者通itA机交互进行决策。如果上述^作都不 能解决该冲突,则报告该文档的修改操作失败,忽略所有引起冲突的操作。
对于冲突(2),删除操作优先于修改操作,因为在一次策略的执行过 程中,无论修改操作如何,只要有删除操作,所有的修改操作都自动失效。
在步骤535,根据更新后的实例文档和原有的实例化上下文模型,生 成新的实例化上下文模型,然后返回步骤501,将策略集合中的策略重新 应用于该新的实例化上下文^=莫型。
22进一步地,在将策略重新应用于新的实例化上下文模型时,也可以只 对新的实例化上下文模型中更新后的实例文档进行發汪。
通过以上描述可以看出,本实施例的执行基于上下文;f莫型的SOA策略 的方法进一步提供了基于上下文模型的正向推理链,具有更强的策略/规则 推理能力,能够将不同的策略彼此关联以进行基于上下文模型的策略推理、 模型自更新和多策略触发,从而提高系统的自愈合和自发展能力。
下面给出一个具体使用SML语言描述的上下文模型的例子说明上述 实施例的执行基于上下文模型的SOA策略的方法。
在该例子中,所搜集的实例文档有Userlnfos.xml文档、 UserPrivileges.xml文档、HRService4DepartManagement.wsdl文档和 HRService4StaffManagement.wsdl文档,其中,Userlnfos.xml文档和 UserPrivileges.xml文档如下所示 Userlnfos.xml文档
< xml version="1.0" encoding="UTF-8" > <UserInfos xmlns= "http:〃example.ibm.com.cn/user"> <User>
<ID>000001</ID>
〈Name〉丁om〈/Name〉
<band>9</band>
<isManager>y</isManager> </User
</UserInfos>
UserPrivileges.xml文档
< xml version="1.0" encoding="UTF-8" >
<UserPrivileges xmlns= "http:〃example.ibm.com.cn/userpvg"〉
<UserPrivilege>
<ID>000001</ID><Role〉Manager</Role〉 <HRService>
http:〃localhost:9080/mrgservices/StaffService </HRService〉 <UserPrivilege〉
</UserPrivileges〉
根据所搜集的实例文档,生成实例化上下文模型Contextxml。具体地, 首先获得上述的每个实例文档的URL路径(例如file:/…/ Userlnfos.xml), 然后,生成如下的XML文档,作为实例化上下文模型,该文档使用 DocumentList元素下的每个Document元素来引用相应的实例文档。在引 用时,使用SML规范定义的属性sml:ref-"true"来标识每个Document元 素,实现对与sml:uri中所给出的URL对应的实例文档的跨文档引用,即, 从语义上看,在每个Document元素下嵌有URL对应的实例文档的XML 子元素。由于DocumentList元素列举了对所有实例文档的引用,因此,如 下的文档在SML规范所定义的语义上是对所有实例文档的聚合。
实例化上下文模型Context.xml的内容如下
< xml version="1.0" encoding="UTF-8" 〉
〈Context xmlns="http:〃com.ibm.biz,policy/context/,, xmlns:sml="http:〃schemas.serviceml.org/sml/2007/02"> <DocumentList>
〈Document role="role0" sml:ref="true">
<sml:uri>file:/.../ UserInfos.xml</smI:uri> </Document>
<Document role="rolel" sml:ref="true">
<sml:uri>file:/.. ,/UserPrivileges.xml</sml:uri〉 </Document>
<Document role="role2" sml:ref="true"><sml:uri>file:/.. ./HRService4DepartManagement.wsdl</sml:uri> </Document>
<Document role="role3" sml:ref="true">
<sml:uri>file:/.../ HRService4StaffManagement.wsdl </sml:uri> </Document> </DocumentList> </Context>
根据所搜集的实例文档,可以确定相关的策略集合。在本例子中,在 上述的实例化上下文模型中应用哪些策略是根据应用的要求确定的。在本 例中,引入了下面两个策略updateRole.sch和updateHRservice.sch。 当 然,也可以根据应用的要求增减策略。
当确定了策略集合后,将该策略集合与实例化上下文模型相关联。具 体地,在实例化上下文才莫型所聚合的实例文档中,利用与聚合实例文档相 似的方式,在DocumentList元素下添加相应的Document子元素,从而完 成对每个策略文档的聚合。这样,在实例化上下文模型中聚合有实例文档 和作用在实例文档上的策略文档,根据所聚合的文档,可以识别需要执行 的策略集合。
在本例中,策略updateRole.sch和updateHRservice.sch具体如下所示 updateRole.sch策略
< xml version="1.0" encoding="UTF-8" >
<schema xmlns="http:〃www. ascc.net/xml/schematron"
xmlns:sml="http:〃schemas.serviceml.org/sml/2007/02"> <title>Update User Role Policy</title>
<ns uri="http:〃com,ibm.biz.policy/context/" prefix="ctx'V> <ns uri="http://example, ibm. com. cn/user" prefix="usr" /> <ns uri="http://example, ibm. com. cn/userpvg" prefix="pvg" />
<ns uri="http:〃schemas.serviceml.org/sml/fiinction/2006/07" prefix="smlfiT/> 〈pattern name=" Update User Role to Senor Manager"><rule
context="smlfii:deref(/ctx:Context/ctx:DocumentList/
ctx:Document[@role=,roleO'])/usr:user"〉
<variable name="uid" select="usr:ID/text()7>
<report id="userrole" test="usr:band/text()〉=9 and usr:isManager/text()=, y,">
UPDATEMODEL {http:〃com.ibm.cn/soa/standard/example} |<name
path='
smlfii: deref(/ ctx: Context/ctx: DocumentLi st
ctx:Document[@role=,roler])/pvg:UserPrivilege[pvg:ID/text()=$uid]/pvg:Role7〉|SeniorManager
</report>
</ruIe〉 </pattern〉 </schema>
updateHRservice.sch策略
< xml version="1.0" encoding="UTF-8" >
<schema xmlns="http:〃www.ascc,net/xml/schematron"
xmlns:sml="http:〃schemas.serviceml.org/sml/2007/02"〉 <title>Update UR Service Endpoint Policy</title>
<ns uri="http:〃com.ibm.biz.policy/context/" prefix="ctx"/> <ns uri="http://example, ibm. com. cn/userpvg" prefix=',pvg" /〉 <ns uri="http:〃schemas.xmlsoap.orgAvsdl/', prefix="wsdl" /> <ns uri="http:〃schemas.xmlsoap.org/wsdl/soap/,, prefix="wsdlsoap,, /> <ns uri="http:〃schemas.serviceml.org/sml/flinction/2006/07" prefix="smlfo,7〉 <pattem name="Update UR Service Endpoint Manager">
<rule context="smlfo:deref(/ctx:Context/ctx:DocumentList/ ctx:Document[@role='roler])/pvg:UserPrivilege,,>
<report id="endpoint" test="pvg:Role/text()=, SeniorManager,"> UPDATEMODEL {http:yVcom.ibm.cn/soa/standard/example} |<name path="pvg:HRService"/〉| <value-of sdect="smlfo:deref(/ctx:Context/ctx:DocumentList/ctx:Document[@role='role2'])〃wsdl:port[@name-'HRService4DepartManagement']/wsdlsoap:address/劍ocation"/〉
</report〉
</rule> </patt6rn> </schema〉
当将上述两个策略应用于实例化上下文模型Context.xml时,如果 updateRole.sch策略被首先匹配,那么执行该策略的动作的结果是在 UserPrivileges.xml文档中,ID为000001的用户的角色将被更新为 "SeniorManager",从而使得实例化上下文模型Context.xml被更新。然 后,对新的实例化上下文模型Context.xml应用上述策略,使得 updateHRservice.sch策略被匹配,执行该策略的动作,将HRService端点 更新到HRService4StaffManagement.wsdl文档中包含的一个HRService。 在同一个发明构思下,图5是根据本发明的一个实施例的执行基于上 下文模型的SOA策略的策略引擎的示意性方框图。在本实施例中,对于与 前面实施例相同的部分,适当省略其说明。下面结合附图,详细说明本实 施例。
如图5所示,本实施例的执行基于上下文模型的SOA策略的策略引擎 600包括搜集单元601,其搜集与策略的执行相关的实例文档;上下文模 型生成单元602,其利用所搜集的实例文档,生成实例化上下文模型;策 略集合生成单元603,其根据所搜集的实例文档,生成将要执行的策略集 合;顺序确定单元604,用于确定策略集合中的策略的执行顺序;以及策 略应用单元605,其将策略集合中的策略应用于上述实例化上下文模型。
当使用策略引擎600执行基于上下文模型的SOA策略时,用户可以根 据业务要求和当前的应用模块,确定相关的实例文档的范围,并利用搜集 单元601搜集相关的实例文档。具体地,在搜集单元601中,利用选择单 元选择符合要求的文档并进行实例化,从而得到实例文档,然后由检查单 元检查这些实例文档的格式是否是XML格式,对于非XML格式的实例 文档,由转换单元将其转换成XML格式的实例文档。这样,所搜集的所有实例文档都是XML格式的。
可选地,在搜集单元601中,也可以根据业务要求,通过文档指定单 元对符合业务要求的与策略相关联的上下文模型中的每一个XML Schema 文档指定一个实例文档,其中该实例文档在结构上符合对应的XML Schema文档的定义。
所搜集的实例文档被传送到上下文模型生成单元602中,以生成实例 化上下文模型。在上下文模型生成单元602中,利用引用关系建立单元对 每一个实例文档建立该实例文档与其它实例文档的文档间引用关系。然后, 聚合单元通过所建立的文档间引用关系聚合这些实例文档,从而生成实例 化上下文模型。在本实施例中,选择SML语言实现实例化上下文模型。
在本实施例中,"实例化上下文才莫型"也可以是在生成SOA策略的过 程中使用的与策略相关联的上下文模型的一个实例。这样,在上下文模型 生成单元602中,当使用XML规范定义的语法描述实例化上下文模型时, 根据策略生成过程中的上下文模型,将该上下文模型中对抽象的XML文 档的引用标识修改为对相应的实例文档的引用标识,这样,在策略生成阶 段的抽象XML文档之间的聚合关系转变为所搜集的实例文档之间的聚合 关系,通过该聚合关系得到的新模型是实例化上下文模型。
可选地,在上下文模型生成单元602中,当使用SML规范定义的语 法描述实例化上下文模型时,将在策略生成过程中生成的SML聚合文档 中对每个XML Schema文档的统一资源标识符URI的引用修改为对相应 的所搜集的实例文档的统一资源标识符URI的引用,从而生成新的SML 聚合文档。该新的SML聚合文档和所搜集的XML实例文档一起构成4吏用 SML语法描述的实例化上下文模型。
然后,根据所搜集的实例文档,用户利用策略集合生成单元603生成 策略集合。具体地,在策略集合生成单元603中,用户使用策略确定单元 确定相关的策略,这些策略是预先生成的基于上下文模型的SOA策略,采 用^H中/动作格式。然后,由集合单元将所确定的策略集合为策略集合。
进一步地,在通过策略确定单元确定了相关的策略后,由过滤单元根据文档-策略绑定,过滤所确定的策略,以精炼策略,其中,文档-策略绑 定是预先确定的或者根据应用逻辑产生。然后由集合单元集合过滤后的策 略以形成策略集合。
在确定了策略集合后,通过顺序确定单元604确定策略集合中策略的 执行顺序。在顺序确定单元604中,利用优先级设置单元,可以设置策略 的优先级。通常,如果策略彼此独立,则这些策略的优先级相同,如果策 略之间存在关联关系,则这些策略的优先级不相同。当然,用户也可以根 据需要对策略设置不同的优先级,但不能改变策略之间的关联关系。然后, 通过排序单元对策略集合中的所有策略进行排序。
然后,实例化上下文模型和排序后的策略集合被传送到策略应用单元 605,以将策略集合中的策略应用于实例化上下文模型。图6示出了策略应 用单元605的示意性方框图。
如图6所示,在策略应用单元605中,文档验证器6051将策略应用于 实例化上下文模型中的实例文档以發汪实例文档是否匹配。具体地,文档 验汪器6051中的结构验证单元(未示出)使用策略中的模式文档發汪实例 文档的结构,然后,文档验证器6051中的内 证单元(未示出)使用策 略中的条件部分验证实例文档的内容。如果發汪结果是实例文档匹配,则 由^报告生成单元6052产生B报告,该^E报告包含将要执行的策略 的动作部分的信息,包括动作名称及参数。然后,才艮据该mi报告,动作 执行单元6053执行相应的策略的动作。具体地,在动作执行单元6053中, 装载单元装载相应的动作语义模块,在本实施例中,动作语义模块可以是 系统提供的常用的动作语义模块,也可以是用户定义的动作语义模块,并 且这些动作语义模块可采用插件形式集成到策略引擎600中,在运行时进 行调用。然后,通过参数设置单元对动作语义模块进行参数设置并由运行 单元运行动作语义模块,其中,所设置的参数值可以是常量字符串或者实 例文档中的特定值。
应当指出,本实施例的执行基于上下文模型的SOA策略的策略引擎 600及其组件可以由诸如超大M^莫集成电路或门阵列、诸如逻辑芯片、晶说明书第22/23页
体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编 程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实 现,也可以由上述硬件电路和软件的结合实现。并且,本实施例的执行基
于上下文模型的SOA策略的策略引擎600在操作上可以实现如图2所示的 实施例的执行基于上下文模型的SOA策略的方法。
通过以上描述可以看出,釆用本实施例的执行基于上下文模型的SOA 策略的策略引擎,可以根据策略执行的场景和目的灵活地搜集实例文档以 限定策略范围,例如计划、应用、服务等,并且可以应用于各种类型的SOA 策略。
图7是根据本发明的另一个实施例的执行基于上下文模型的SOA策略 的策略引擎700的方框图,其中,与前面实施例相同的部分采用相同的标 记,并适当省略其说明。下面结合附图,对本实施例进行详细描述。
本实施例与图5所示的实施例的区别在于引入了正向推理链机制。
如图7所示,在策略应用单元605中,当动作执行单元6053执行了所 匹配的策略的动作之后,由更新判断单元6054判断实例化上下文模型是否 需要更新,即判断所匹配的策略的执行结果是否引起实例化上下文模型的 改变,例如,添加实例文档、修改实例文档、删除实例文档或者其組合。 如果更新判断单元6054的判断结果是实例化上下文模型需要更新,则由更 新单元6055执行相应的更新操作。具体地,在更新单元6055中,通过添 加单元可以添加实例文档,通过修改单元可以修改实例文档,通过删除单 元可以删除实例文档。在更新单元6055执行了更新操作后,冲突检测和解 决单元6056检测是否存在由于更新操作而引起的冲突,并解决相应的冲 突。然后,更新后的实例文档净皮传送到上下文模型生成单元602,与原有 的实例化上下文模型相结合,生成新的实例化上下文模型,再由策略应用 单元605将策略集合中的策略应用于该新的实例化上下文模型。
进一步地,当策略应用单元605对新的实例化上下文模型应用策略时, 可以仅对新的实例化上下文模型中的更新后的实例文档进行!Hi。
应当指出,本实施例的执行基于上下文模型的面向服务架构(SOA)
30以由诸如超大^f莫集成电路或门阵列、 诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程 逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处 理器执行的软件实现,也可以由上述硬件电路和软件的结合实现。并且, 本实施例的执行基于上下文模型的SOA策略的策略引擎700在操作上可以 实现如图4所示的实施例的执行基于上下文模型的SOA策略的方法。
通过以上描述可以看出,本实施例的执行基于上下文模型的SOA策略 的策略引擎进一步提供了基于上下文模型的正向推理链,具有更强的策略/ 规则推理能力,能够将不同的策略彼此关联以进行基于上下文模型的策略 推理、模型自更新和多策略触发,从而提高系统的自愈合和自iU艮能力。
以上虽然通过一些示例性的实施例详细描述了本发明的执行基于上下 文模型的SOA策略的方法和策略引擎,但是以上这些实施例并不是穷举 的,本领域技术人员可以在本发明的精神和范围内实现各种变化和修改。 因此,本发明并不限于这些实施例,本发明的范围仅由所附的权利要求限 定。
3权利要求
1. 一种执行基于上下文模型的面向服务架构SOA的策略的方法,包括根据业务要求,搜集与策略执行相关的实例文档;利用所搜集的实例文档,生成实例化上下文模型;根据所搜集的实例文档,生成将要执行的策略集合;确定上述策略集合中的策略的执行顺序;以及按照上述执行顺序,将上述策略应用于上述实例化上下文模型。
2. 根据权利要求1所述的执行基于上下文模型的面向服务架构 (SOA)的策略的方法,其中,所述搜集与策⑩行相关的实例文档的步骤包括选择并实例化符合上述业务要求的文档,以获得实例文档; 检查上述实例文档的格式是否是XML格式;以及 如果不是XML格式,则将非XML格式的实例文档转换成XML格式 的实例文档。
3. 根据权利要求1所述的执行基于上下文模型的面向服务架构 (SOA)的策略的方法,其中,所述搜集与策s^l行相关的实例文档的步骤包括对符合上述业务要求的上述上下文模型中的每一个XML文档指定一 个实例文档,其中该实例文档在结构上符合对应的XML文档的定义。
4. 根据权利要求1至3任意一项所述的执行基于上下文模型的面向 服务架构(SOA)的策略的方法,其中,所述生成实例化上下文模型的步 骤包括对上述实例文档的每一个建立其与其它实例文档的文档间引用关系;以及通过上述文档间引用关系聚合上述实例文档。
5. 根据权利要求1至3任意一项所述的执行基于上下文模型的面向服务架构(SOA)的策略的方法,其中,当上述上下文模型使用XML规 范定义的语法描述时,所述生成实例化上下文模型的步骤包括将符合上述业务要求的上述上下文模型中对每一个XML文档的引用 标识^"改为对相应的所搜集的实例文档的引用标识。
6. 根据权利要求1至3任意一项所述的执行基于上下文模型的面向 服务架构(SOA)的策略的方法,其中,当上述上下文模型使用SML规 范定义的语法描述时,所述生成实例化上下文^f莫型的步骤包括将符合上述业务要求的上述上下文模型中的SML聚合文档中对每个 XML文档的统一资源标识符的引用替换为对相应的所搜集的实例文档的 统一资源标识符的引用,以生成新的SML聚合文档;其中,上述新的SML聚合文档和上述所搜集的实例文档一起构成上 述实例化上下文模型。
7. 根据权利要求1至6任意一项所述的执行基于上下文模型的面向 服务架构(SOA)的策略的方法,其中,所述生成将要执行的策略集合的 步骤包括确定与所搜集的实例文档相关的策略;以及 集合上述所确定的策略以形成策略集合。
8. 根据权利要求1至6任意一项所述的执行基于上下文模型的面向 服务架构(SOA)的策略的方法,其中,所述生成将要执行的策略集合的 步骤包括确定与所搜集的实例文档相关的策略; 根据文档-策略绑定,过滤所确定的策略;以及 集合过滤后的策略以形成策略集合。
9. 根据权利要求8所述的执行基于上下文模型的面向服务架构 (SOA)的策略的方法,其中,上述文档-策略绑定是预先确定的。
10. 根据权利要求8所述的执行基于上下文模型的面向服务架构 (SOA)的策略的方法,其中,上述文档-策略绑定;l:才艮据应用逻辑产生的。
11. 根据权利要求1至10任意一项所述的执行基于上下文模型的面向服务架构(SOA)的策略的方法,其中,所述确定上述策略集合中的策略 的执行顺序的步骤包括设置上述策略的优先级;以及根据上述优先级,对上述策略进行排序。
12.根据权利要求1至11任意一项所述的执行基于上下文模型的面向 服务架构(SOA)的策略的方法,其中,所述将上述策略应用于上述实例 化上下文^=莫型的步骤包括使用上述策略的每一个验证上述实例化上下文模型中的实例文档是否 匹配;如果匹配,则产生mi才艮告;以及 根据上述4HiH报告,执行该匹配的策略的动作部分。
13,根据权利要求12所述的执行基于上下文模型的面向服务架构 (SOA)的策略的方法,其中,所述验证上述实例化上下文模型中的实例文档是否匹配的步骤包括使用上述策略中的模式文档验证上述实例化上下文模型中的实例文档的结构;以及使用上述策略中的条件部分验证上述实例化上下文模型中的实例文档 的内容。
14. 根据权利要求12或13所述的执行基于上下文模型的面向服务架构 (SOA)的策略的方法,其中,所述执行该匹配的策略的动作部分包括装载上述动作部分中的动作语义才莫块; 设置上述动作语义模块中的参数;以及 运行上述动作语义^莫块。
15. 根据权利要求12至14任意一项所述的执行基于上下文模型的面向 服务架构(SOA)的策略的方法,其中,所述将上述策略应用于上述实例 化上下文^=莫型的步骤还包括确定上述实例化上下文模型是否需要更新; 如果是,则执行更新操作;检测并解决由上述更新操作引起的冲突; 根据更新后的实例文档和原实例化上下文模型,生成新的实例化 上下文模型;以及将上述策略应用于新的实例化上下文模型。
16. 根据权利要求12至15任意一项所述的执行基于上下文模型的面向 服务架构(SOA)的策略的方法,其中,所述更新操作包括添加实例文 档、修改实例文档和删除实例文档中的至少一个或其组合。
17. 根据权利要求15或16所述的执行基于上下文模型的面向服务架构 (SOA)的策略的方法,其中,所述将上述策略应用于新的实例化上下文模型步骤仅对上述新的实例化上下文模型中更新后的实例文档进行。
18. —种执4亍基于上下文模型的面向服务架构(SOA)的策略的策略 引擎,包括搜集单元,用于搜集与策,行相关的实例文档; 上下文模型生成单元,用于利用所搜集的实例文档,生成实例化上下 文模型;策略集合生成单元,用于根据所搜集的实例文档,生成将要执行的策 略集合;顺序确定单元,用于确定上述策略集合中的策略的执行顺序;以及 策略应用单元,用于将上述策略应用于上述实例化上下文模型。
19. 根据权利要求18所述的执行基于上下文模型的面向服务架构 (SOA)的策略的策略引擎,其中,所述搜集单元包括选择单元,用于选择并实例化符合上述业务要求的文档,以获得实例 文档;检查单元,用于检查上述实例文档的格式是否是XML格式;以及 转换单元,用于将非XML格式的实例文档转换成XML格式的实例 文档。
20. 根据权利要求18所述的执行基于上下文模型的面向服务架构(SOA)的策略的策略引擎,其中,所述搜集单元包括文档指定单元,用于对符合上述业务要求上述上下文模型中的每一个 XML文档指定一个实例文档,其中该实例文档在结构上符合对应的XML 文档的定义。
21. 根据权利要求18或19所述的执行基于上下文模型的面向服务架构 (SOA)的策略的策略引擎,其中,所述上下文才莫型生成单元包括引用关系建立单元,用于对上述实例文档的每一个建立其与其它实例 文档的文档间引用关系;以及聚合单元,用于通过上述文档间引用关系聚合上述实例文档。
22. 根据权利要求18或20所述的执行基于上下文模型的面向服务架构 (SOA)的策略的策略引擎,其中,当上述上下文模型使用XML规范定义的语法描述时,所述上下文模型生成单元包括引用标识修改单元,用于将符合上述业务要求的上述上下文才莫型中对 每一个XML文档的引用标识修改为对相应的实例文档的引用标识。
23. 根据权利要求18或20所述的执行基于上下文模型的面向服务架构 (SOA)的策略的策略引擎,其中,当上述上下文才莫型4吏用SML规范定义的语法描述时,所述上下文模型生成单元包括引用修改单元,用于将符合上述业务要求的上述上下文模型中的SML 聚合文档中对每个XML文档的统一资源标识符的引用修改为对相应的实 例文档的统一资源标识符的引用,以生成新的SML聚合文档;其中,上述新的SML聚合文档和所搜集的实例文档一起构成上述实 例化上下文模型。
24. 根据权利要求18至23任意一项所述的执行基于上下文模型的面向 服务架构(SOA)的策略的策略引擎,其中,所述策略集合生成单元包括:策略确定单元,用于确定与所搜集的实例文档相关的策略;以及 集合单元,用于集合上述所确定的策略以形成策略集合。
25. 根据权利要求18至23任意一项所述的执行基于上下文模型的面向 服务架构(SOA)的策略的策略引擎,其中,所述策略集合生成单元包括:策略确定单元,用于确定与所搜集的实例文档相关的策略; 过滤单元,用于根据文档-策略绑定,过滤所确定的策略;以及 集合单元,用于集合过滤后的策略以形成策略集合。
26. 根据权利要求25所述的执行基于上下文模型的面向服务架构 (SOA)的策略的策略引擎,其中,上述文档-策略绑定是预先确定的。
27. 根据权利要求25所述的执行基于上下文模型的面向服务架构 (SOA)的策略的策略引擎,其中,上述文档-策略绑定是才艮据应用逻辑产生的。
28. 根据权利要求18至27任意一项所述的执行基于上下文模型的面向 服务架构(SOA)的策略的策略引擎,其中,所述顺序确定单元包括优先级设置单元,用于设置上述策略的优先级;以及 排序单元,用于根据上述优先级,对上述策略排序。
29. 根据权利要求18至28任意一项所述的执行基于上下文模型的面向 服务架构(SOA)的策略的策略引擎,其中,所述策略应用单元包括文档验证器,用于使用上述策略验证上述实例化上下文模型中的实例 文档是否匹配;mi才艮告生成单元,用于在上述实例文档匹配的情况下,产生^i报 告;以及动作执行单元,用于根据上述te报告,执行该匹配的策略的动作部分。
30. 根据权利要求29所述的执行基于上下文模型的面向服务架构 (SOA)的策略的策略引擎,其中,所述文档验证器包括结构验证单元,用于使用上述策略中的模式文档验证上述实例化上下 文模型中的实例文档的结构;以及内 证单元,用于使用上述策略中的条件部分验证上述实例化上下 文模型中的实例文档的内容。
31. 根据权利要求29或30所述的执行基于上下文模型的面向服务架构 (SOA)的策略的策略引擎,其中,所述动作执行单元包括装载单元,用于装载上述动作部分中的动作语义模块; 参数设置单元,用于设置上述动作语义模块中的参数;以及 运行单元,用于运行上述动作语义模块。
32. 根据权利要求29至32任意一项所述的执行基于上下文模型的面向 服务架构(SOA)的策略的策略引擎,其中,所述策略应用单元还包括更新判断单元,用于判断上述实例化上下文模型是否需要更新; 更新单元,用于执行更新操作;以及冲突检测和解决单元,用于检测并解决由上述更新操作引起的沖突; 并且,所述上下文4莫型生成单元才艮据更新后的实例文档和原实例化上 下文模型,生成新的实例化上下文模型;所述策略应用单元对上述新的实例化上下文4莫型应用上述策略。
33. 根据权利要求32所述的执行基于上下文模型的面向服务架构 (SOA)的策略的策略引擎,其中,所述更新单元包括添力。单元,用于添力n实例文档; 修改单元,用于修改实例文档;以及 删除单元,用于删除实例文档。
34. 根据权利要求32或33所述的执行基于上下文模型的面向服务架构 (SOA)的策略的策略引擎,其中,所述策略应用单元仅对上述新的实例化上下文模型中的更新后的实例文档应用所述策略。
全文摘要
一种执行基于上下文模型的面向服务架构的策略的方法,包括根据业务要求,搜集与策略执行相关的实例文档;利用所搜集的实例文档,生成实例化上下文模型;根据所搜集的实例文档,生成将要执行的策略集合;确定上述策略集合中的策略的执行顺序;以及按照上述执行顺序,将上述策略应用于上述实例化上下文模型。本发明的执行基于上下文模型的SOA策略的方法可以根据策略执行的场景和目的灵活地搜集实例文档以限定策略范围,例如计划、应用、服务等,并且可以应用于各种类型的SOA策略。此外,本发明还提供了一种执行基于上下文模型的面向服务架构的策略的策略引擎。
文档编号G06F9/44GK101441560SQ20071018708
公开日2009年5月27日 申请日期2007年11月23日 优先权日2007年11月23日
发明者刘昕鹏, 周可馨, 周宇辰, 王夕宁, 亮 薛 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1