CN101441560B - 执行基于上下文模型的面向服务架构的策略的方法和装置 - Google Patents
执行基于上下文模型的面向服务架构的策略的方法和装置 Download PDFInfo
- Publication number
- CN101441560B CN101441560B CN200710187087A CN200710187087A CN101441560B CN 101441560 B CN101441560 B CN 101441560B CN 200710187087 A CN200710187087 A CN 200710187087A CN 200710187087 A CN200710187087 A CN 200710187087A CN 101441560 B CN101441560 B CN 101441560B
- Authority
- CN
- China
- Prior art keywords
- strategy
- context model
- mentioned
- document
- instance document
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0894—Policy-based network configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5041—Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
- H04L41/5045—Making service definitions prior to deployment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Stored Programmes (AREA)
- Document Processing Apparatus (AREA)
Abstract
一种执行基于上下文模型的面向服务架构的策略的方法,包括:根据业务要求,搜集与策略执行相关的实例文档;利用所搜集的实例文档,生成实例化上下文模型;根据所搜集的实例文档,生成将要执行的策略集合;确定上述策略集合中的策略的执行顺序;以及按照上述执行顺序,将上述策略应用于上述实例化上下文模型。本发明的执行基于上下文模型的SOA策略的方法可以根据策略执行的场景和目的灵活地搜集实例文档以限定策略范围,例如计划、应用、服务等,并且可以应用于各种类型的SOA策略。此外,本发明还提供了一种执行基于上下文模型的面向服务架构的策略的策略引擎。
Description
技术领域
本发明涉及计算机网络***的面向服务架构(Service-OrientedArchitecture,简称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 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)等。
下面简要介绍现有技术中的策略引擎。
(一)业务策略引擎
在现有技术中,有许多业务策略引擎,例如,ILOG JRule引擎、Drools引擎、Mandarax引擎、JLisa引擎、JEOPS引擎、OpenRules引擎等。
ILOG JRule引擎是适合于与J2SE或J2EE应用程序单独使用的灵活的高性能执行平台。该引擎支持策略/规则语言定制,例如,业务操作语言(Business Action Language,简称BAL,其使用自然语言语法定义策略/规则)、ILOG策略/规则语言(ILOG Rule Language,简称IRL,其使用类似Java或XML的语法定义策略/规则)、业务策略/规则语言定义框架、或Java语言集成(其直接在IRL中使用Java表达式)等。
Drools引擎是Java的开放源面向对象的策略/规则引擎,其提供声明性逻辑编程,并且能够很灵活地匹配用户所考虑的域的语法。Drools引擎是JSR94规范的具体实现。相关的详细描述可参见 http://java-source.net/open-source/rule-engines/drools。
Mandarax引擎是用于演绎策略/规则的开放源Java类库,其提供用于 定义、管理和查询策略/规则库的体系,相关的详细描述可参见 http://java-source.net/open-source/rule-engines/mandarax。
JLisa引擎是用于建立可访问Java的业务策略/规则的开放源框架,其遵循JSR94规范,相关的详细描述可参见 http://java-source.net/open-source/rule-engines/jlisa。
Java嵌入对象产生***(Java Embedded Object Production System,简称JEOPS)引擎是基于开放源Java的演绎法/正向推理链(ForwardingChaining)策略/规则引擎,其用于使用Java应用服务器中的规则、客户端应用程序和Servlets启动业务过程。相关的详细描述可以参见 http://java-source.net/open-source/rule-engines/jeops-the-java-embedded-object-production-system。
OpenRules引擎是全面的开放源业务策略/规则管理框架,其有效地使用MS Excel、Eclipse集成开发环境(IDE)和开放源Java库以创建、部署、执行和维护不同的具有复杂的业务逻辑的策略/规则引擎,相关的详细描述可参见http://java-source.net/open-source/rule-engines/openrules。
某些策略/规则引擎可支持用于推理一个应用于特定策略主体的策略/规则集合的演绎法/正向推理链(Forwarding Chaining)。所谓ForwardingChaining是指规则***中对规则集合的正向推理链。具体地,如果规则1的执行改变了当前规则集合所作用的目标***的状态,并导致规则2的匹配执行,那么从规则1→规则2的推理称为正向推理。以此类推,如果存在规则1→规则2→...→规则n的推理链,则将规则引擎在整个链路上的推理称为Forwarding Chaining。正向推理链是一种允许应用于同一个知识空间的策略/规则相互触发的机制,即,根据一个策略/规则的执行触发另一个策略/规则。
在正向推理链机制中,策略/规则被解析为内存模型(memory model),而在策略/规则的条件部分和动作部分中引用的变量备表示为内存变量。当执行正向推理链时,通过在不同的策略/规则中更新内存变量和互换状态进行演绎。图1是现有的正向推理链机制的一个例子的示意图。如图1所示, WM表示工作内存,其可被当作策略/规则的变量的存储单元,其中,变量可由另一个策略/规则的执行而改变。在正向推理链机制中最费时的步骤是用策略/规则的条件部分匹配WM,该步骤是用于发现有效的WM,这些有效的WM已经由一个策略/规则的执行而改变并且将触发另一个策略/规则。
现有技术中有许多正向推理链算法,最有名的是RETE算法,该算法的主要特征在于:1.状态保存,即,在每次WM发生改变后,匹配过程的状态(结果)被保存在α和β存储器中;而在下一次WM发生改变后,许多结果通常不发生改变,因此RETE算法通过在连续的WM改变之间保存这些结果而避免了许多重复计算。2.在具有类似的条件的结果之间共享节点,即,在α网络的输出端,当两个或多个结果具有一个共同的条件时,RETE算法使用一个α存储器用于条件,而不是对创建每个结果创建相同的存储器;而在网络的β部分,当两个或多个结果具有相同的条件时,使用相同的节点以匹配这些条件,从而避免重复匹配。
然而,现有的业务策略/规则引擎具有下述的局限性:
1.现有的业务策略/规则集中在执行业务策略/规则,而对于其它类型的SOA策略不能执行。
2.现有的业务策略/规则引擎对于SOA***的特点-使用XML格式-没有专门的解决方案。例如RETE算法假设策略/规则和被验证的内容被解析为内存模型以在不同的策略/规则的执行之间互换状态。而在XML中,由于文档对象模型(Document Object Model,简称为DOM)消耗很多内存,并且很难在大型XML文档中定位特定元素,因此,策略/规则以及所应用的XML格式的模型并不适合于定期装载为内存模型。另外,验证XML内容的传统方式不需要内存模型,因此,也不需要RETE算法。
3.现有的业务策略/规则引擎总是定义自己的策略/规则格式,因此,为一个引擎定义的规则/策略很难被广泛采用,不能重复使用。
4.由于现有的业务策略/规则引擎不能处理SOA***的使用XML语言的特点,因此,需要复杂的机制来转换信息,并且被集成在SOA***中, 例如,ILOG策略/规则引擎作为策略/规则服务封装在FileNet工作流***中。
5.在现有的业务策略/规则引擎中,策略/规则表达式具有固定的术语,例如,Java专用表达式或保留的XML结构或术语(RuleML、SWRL等),这会导致刚性的引擎实现或推理体系结构。另外,应用策略/规则的应用域和上下文也是固定的。
(二)应用策略引擎
在现有技术中有许多应用策略引擎可用于SOA***。通常,这些应用策略引擎都是基于本体论的,例如,IBM公司的WebSphere BusinessService Fabric(WBSF)工具、基于语义网规则语言(Semantic Web RuleLanguage,简称SWRL)的引擎、SweetRules引擎、TRIPLE引擎、SEW引擎等。
WBSF工具是用于选择服务端点本体的动态装配程序,其仅使用OWL文档中的术语定义策略的条件部分。
SWRL语言是结合Web本体语言(Web Ontology Language,简称OWL)的OWL DL、OWL Lite子语言和规则标记语言(Rule MarkupLanguage,简称RuleML)的一元/二元数据记录RuleML子语言而形成的,其扩展OWL公理的集合以包括霍恩式(Horn-like)策略/规则,从而使霍恩式策略/规则能够与OWL知识库结合。
SweetRules引擎是用于语义网规则和本体的开放源集成工具的集合,其以用于语义网规则的规则标记/建模语言(Rule Markup/ModelingLanguage,简称RuleML)标准为中心,并支持相关的SWRL语言和用于语义网本体的OWL标准。相关的详细描述可以参见 http://java-source.net/open-source/rule-engines/sweetrules。
TRIPLE引擎是支持RDF和OWL Lite的子集的语义网引擎,其语法是基于F逻辑并支持一阶逻辑的重要片断。相关的详细描述可以参见 http://triple.semanticweb.org。
SEW引擎是RDF模式引擎的具体实现,包括某些XML模式数据类 型支持,其能够读取以RDF/XML和N-TRIPLES格式串接的RDF图。
然而,这样的应用策略引擎只支持一步推理,并且适用于特定行业,而对于具体的策略主体不适用,例如计划、应用程序或服务。另外,还涉及许多复杂的标准,造成应用策略引擎复杂。
(三)基于服务建模语言(Service Modeling Language,简称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的引擎仅用于IT***管理,因为SML语言的设计初衷是用于***管理、模型驱动模块化、再利用和标准化,例如微软的***管理服务器。另外,基于SML的引擎仅用于***配置的一步验证和报告。SML语言使用Schematron模式语言作为策略/规则表达式以验证其实例文档。根据Schematron模式语言规范,在标准Schematron模式语言内的策略/规则仅仅在违反策略/规则约束时以文本字符串的形式报告诊断消息。SML语言规范扩展了验证报告引入结构化输出的能力,但是这种扩展仅提供元素或属性的标准输出,而没有进一步的语义。
发明内容
本发明正是基于上述技术问题而提出的,其目的在于提供一种执行基于上下文模型的SOA策略的方法及策略引擎,能够根据策略执行的场景和目的灵活地构成策略范围,并且适用于各种类型的SOA策略。
根据本发明的一个方面,提供一种执行基于上下文模型的SOA策略的方法,包括:根据业务要求,搜集与策略执行相关的实例文档;利用所搜集的实例文档,生成实例化上下文模型;根据所搜集的实例文档,生成将要执行的策略集合;确定策略集合中的策略的执行顺序;以及按照上述执行顺序,将上述策略应用于上述实例化上下文模型。
根据本发明的另一个方面,提供一种执行基于上下文模型的SOA策略的策略引擎,包括:搜集单元,用于搜集与策略执行相关的实例文档;上下文模型生成单元,用于利用所搜集的实例文档,生成实例化上下文模型;策略集合生成单元,用于根据所搜集的实例文档,生成将要执行的策略集合;顺序确定单元,用于确定策略集合中的策略的执行顺序;以及策略应用单元,用于将上述策略应用于上述实例化上下文模型。
附图说明
图1是现有的正向推理链机制的一个例子的示意图;
图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定义语言的文档需要用符合该XMLSchema定义的XML实例文档替换,而采用哪个实例文档进行替换则根据具体的应用语义确定。
具体地,XML实例文档可以基于策略生成过程中的与策略相关联的上下文模型搜集。具体地,根据业务要求,对相应的与策略相关联的上下文模型中的每一个XML Schema文档指定一个实例文档,其中该实例文档在 结构上符合对应的XML Schema文档的定义。
然后,检查实例文档的格式是否是XML格式,如果不是XML格式,则将非XML格式的实例文档转换成相应的符合某些预定义的XML模式的XML实例文档。例如,某些业务场景中,应当被业务策略约束的文档可能最初没有采用XML格式,这就需要进行文档格式转换并且保持相同的语义。因此,所搜集的所有与策略执行相关的实例文档都是基于XML格式的。
然后,在步骤200,利用所搜集的实例文档,生成实例化上下文模型。具体地,对所搜集的每一个实例文档都建立其与其它实例文档的文档间引用关系,然后,通过所建立的文档间引用关系聚合这些实例文档,以生成实例化上下文模型。
在本实施例中,“实例化上下文模型”也可以是在生成SOA策略的过程中使用的与策略相关联的上下文模型的一个实例。如上所述,用于生成策略的上下文模型中的每个文档是抽象的XML文档,可以用XMLSchema定义语言描述;而在搜集实例文档时,每个这样的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/″prefx=″req″/>
<ns uri=″http://schemas.serviceml.org/sml/function/2006/07″prefix=″smlfn″/>
<pattern name=″Log Gold WS Access″>
<rule
context=″/mediationConfiguration/destination″>
<report id=″endpoint″
test=″
(smlfn:deref(../destination[name=′PolicyMediation′]/mediation/step/config/model/docLocation[
id=′role0′])/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/text()″/>has been
accessed!|C:\WS-Access-Log.txt
</report>
</rule>
</pattern>
</schema>
其中,策略的条件部分为:
(smlfn:deref(../destination[name=′PolicyMediation′]/mediation/step/config/model/docLocation[id=′role0′])/req:headers/req:header[key=′qos′]/value=′GOLD′)and(qos/text()=′GOLD′)″>;
策略的动作部分为:
LOG{http://com.ibm.cn/soa/example}|Web service with Endpoint-<value-ofselect=″mediation/step/config/transform/targetSelection/target/text()″/>hasbeen accessed!|C:\WS-Access-Log.txt。
在确定了相关的策略后,集合所确定的策略,从而形成策略集合。
进一步地,在确定了相关的策略后,还可以根据预先确定的文档-策略绑定,过滤所确定的策略,以进一步精炼策略,再将过滤后的策略集合成策略集合。可选地,文档-策略绑定也可以根据应用逻辑产生。
当生成策略集合之后,在步骤400,确定策略集合中的策略的执行顺序。具体地,首先设置策略的优先级。通常,如果策略彼此独立,则这些策略的优先级相同,如果某些策略之间存在关联关系,则这些策略的优先级不相同。当然,用户也可以根据需要对策略设置不同的优先级,但不能改变策略之间的关联关系。然后,根据优先级,对策略集合中的策略进行排序。
最后,在步骤500,按照在步骤400中确定的策略的执行顺序,将这些策略应用于在步骤200中生成的实例化上下文模型。图3示出了该策略应用步骤500的流程图。
如图3所示,首先在步骤501,将一个策略应用于该实例化上下文模型,以验证该实例化上下文模型中的实例文档是否匹配,该验证包括两个方面:一方面是使用该策略中的模式文档验证实例文档的结构,另一方面是使用该策略的条件部分验证实例文档的内容。在策略是基于SML语言的情况下,使用XML模式文档进行实例文档的结构验证,使用Schematron格式的策略的条件部分进行实例文档的内容验证。
如果实例文档的结构验证和内容验证都匹配,则表明该实例文档匹配 该策略,在步骤505,产生验证报告。例如,使用Schematron描述的策略的验证报告的语法是:动作名称{动作名称空间URI}|参数1|…|参数n,其中每个参数的表达式可以是常量字符串或者是下面表示的SML模型上下文的Schematron允许的标签:
<valu-of select=″SML模型文档元素或属性或其它的XPath表达式″>,其用于获得XPath规定的XML元素/属性值;
<name path=″SML模型文档元素或属性或其它的XPath表达式″>,其用于获得XPath规定的XML元素/属性标签名称。
在本实施例中,验证报告与策略的动作部分相同。在上面的基于SML的策略的例子中,验证报告为:
LOG{http://com.ibm.cn/soa/example}|Web service with Endpoint-<value-ofselect=″mediation/step/config/transform/targetSelection/target/text()″/>hasbeen accessed!|C:\WS-Access-Log.txt。
如果没有实例文档匹配,则产生提示信息。
然后,在步骤510,根据所产生的验证报告,执行该策略的动作部分。具体地,从验证报告中获得将要执行的动作语义模块的信息,并装载该动作语义模块。在本实施例中,动作语义模块的信息包括动作名称及参数。动作语义模块可以是***提供的常用的动作语义模块,也可以是用户定义的动作语义模块,并且,这些动作语义模块可采用插件形式,在运行时进行调用。然后,设置所装载的动作语义模块中的参数并运行该动作语义模块,其中,所设置的参数值可以是常量字符串或者实例文档中的特定值。
然后,在步骤515,判断该策略是否是最后一个策略,如果是,则结束此次策略执行过程。如果不是,则选择下一个策略(步骤520),并返回步骤501。
通过以上描述可以看出,本实施例的执行基于上下文模型的SOA策略的方法可以根据策略执行的场景和目的灵活地搜集实例文档以限定策略范围,例如计划、应用、服务等,并且可以应用于各种类型的SOA策略。
与现有的业务策略执行技术方案相比,本实施例的执行基于上下文模 型的SOA策略的方法具有如下的优点:
1.提供专用于SOA***的解决方案,可以处理基于XML语言的SOA策略;
2.遵循SOA技术的相关标准,例如SML、XPath、Schematron等标准;
3.适用于各种类型的SOA策略,并且结合了业务和IT信息。
与现有的基于本体的应用策略执行技术方案相比,本实施例的执行基于上下文模型的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的策略执行技术方案相比,在本实施例的执 行基于上下文模型的SOA策略的方法中,动作语义模块采用插件形式,使得策略的动作部分能够扩展,并且可以被重复使用。
图4是根据本发明的另一个实施例的执行基于上下文模型的SOA策略的方法的流程图,其中与前面实施例相同的部分采用相同的标记,并适当省略其说明。下面结合附图,对本实施例进行详细的描述。
本实施例与图3所示的实施例的区别在于:引入了正向推理链机制。
如图4所示,在执行了策略的动作部分(步骤510)之后,在步骤520,确定该实例化上下文模型是否需要更新,即确定所执行的策略的动作部分是否会使实例化上下文模型发生变化,例如,添加新的实例文档、修改原有的实例文档或者删除原有的实例文档。如果不需要更新,则继续执行步骤515。如果需要更新,则在步骤525,执行更新操作,即,添加新的实例文档、修改原有的实例文档或者删除原有的实例文档或者其组合。
然后在步骤530,检测并解决由更新操作引起的冲突。在本实施例中,更新操作所引起的冲突可包括:
(1)对于原有的实例化上下文模型中的某个文档只进行修改操作,但是两个以上的修改操作的内容存在冲突;
(2)对于原有的实例化上下文模型中的某个文档同时进行修改操作和删除操作。
对于冲突(1):如果存在冲突的内容彼此兼容,则选择修改内容最多的修改操作,其中,兼容是指一个修改操作所修改的内容等于或者包含另一个修改操作的内容;如果存在冲突的内容彼此不兼容,则通过执行相应的应用逻辑来自动判断,或者通过人机交互进行决策。如果上述操作都不能解决该冲突,则报告该文档的修改操作失败,忽略所有引起冲突的操作。
对于冲突(2),删除操作优先于修改操作,因为在一次策略的执行过程中,无论修改操作如何,只要有删除操作,所有的修改操作都自动失效。
在步骤535,根据更新后的实例文档和原有的实例化上下文模型,生成新的实例化上下文模型,然后返回步骤501,将策略集合中的策略重新应用于该新的实例化上下文模型。
进一步地,在将策略重新应用于新的实例化上下文模型时,也可以只对新的实例化上下文模型中更新后的实例文档进行验证。
通过以上描述可以看出,本实施例的执行基于上下文模型的SOA策略的方法进一步提供了基于上下文模型的正向推理链,具有更强的策略/规则推理能力,能够将不同的策略彼此关联以进行基于上下文模型的策略推理、模型自更新和多策略触发,从而提高***的自愈合和自发展能力。
下面给出一个具体使用SML语言描述的上下文模型的例子说明上述实施例的执行基于上下文模型的SOA策略的方法。
在该例子中,所搜集的实例文档有UserInfos.xml文档、UserPrivileges.xml文档、HRService4DepartManagement.wsdl文档和HRService4StaffManagement.wsdl文档,其中,UserInfos.xml文档和UserPrivileges.xml文档如下所示:
UserInfos.xml文档
<?xml version=″1.0″encoding=″UTF-8″?>
<UserInfos xmlns=″http://example.ibm.com.cn/user″>
<User>
<ID>000001</ID>
<Name>Tom</Name>
<band>9</band>
<isManager>y</isManager>
</User
…
</Userlnfos>
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>
根据所搜集的实例文档,生成实例化上下文模型Context.xml。具体地,首先获得上述的每个实例文档的URL路径(例如file:/.../UserInfos.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</sml: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″/>
<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/function/2006/07″prefix=″smlfn″/>
<pattern name=″Update User Role to Senor Manager″>
<rule context=″smlfn:deref(/ctx:Context/ctx:DocumentList/
ctx:Document[role=′role0′])/usr:user″>
<variable name=″uid″select=″usr:ID/text()″/>
<report id=″userrole″test=usr:band/text()>=9 and usr:isManager/text()=’y’″>
UPDATEMODEL{http://com.ibm.cn/soa/standard/example}|<name path=″
smlfn:deref(/ctx:Context/ctx:DocumentList
ctx:Document[role=′rolel′])/pvg:UserPrivilege[pvg:ID/text()=$uid]/pvg:Role″/>|SeniorManager
</report>
</rule>
</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.org/wsdl/″prefix=″wsdl″/>
<ns uri=″http://schemas.xmlsoap.org/wsdl/soap/″prefix=″wsdlsoap″/>
<ns uri=″http://schemas.serviceml.org/sml/function/2006/07″prefix=″smlfn″/>
<pattern name=″Update UR Service Endpoint Manager″>
<rule context=″smlfn:deref(/ctx:Context/ctx:DocumentList/
ctx:Document[role=′role1′])/pvg:UserPrivilege″>
<report id=″endpoint″test=″pvg:Role/text()=’SeniorManager’″>
UPDATEMODEL{http://com.ibm.cn/soa/standard/example}|<name
path=″pvg:HRService″/>|<value-of
select=″smlfn:deref(/ctx:Context/ctx:DocumentList/ctx:Document[role=′role2′])//wsdl:port[na
me=′HRService4DepartManagement′]/wsdlsoap:address/location″/>
</report>
</rule>
</pattern>
</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文档指定一个实例文档,其中该实例文档在结构上符合对应的XMLSchema文档的定义。
所搜集的实例文档被传送到上下文模型生成单元602中,以生成实例化上下文模型。在上下文模型生成单元602中,利用引用关系建立单元对每一个实例文档建立该实例文档与其它实例文档的文档间引用关系。然后,聚合单元通过所建立的文档间引用关系聚合这些实例文档,从而生成实例化上下文模型。在本实施例中,选择SML语言实现实例化上下文模型。
在本实施例中,“实例化上下文模型”也可以是在生成SOA策略的过程中使用的与策略相关联的上下文模型的一个实例。这样,在上下文模型生成单元602中,当使用XML规范定义的语法描述实例化上下文模型时,根据策略生成过程中的上下文模型,将该上下文模型中对抽象的XML文档的引用标识修改为对相应的实例文档的引用标识,这样,在策略生成阶段的抽象XML文档之间的聚合关系转变为所搜集的实例文档之间的聚合关系,通过该聚合关系得到的新模型是实例化上下文模型。
可选地,在上下文模型生成单元602中,当使用SML规范定义的语法描述实例化上下文模型时,将在策略生成过程中生成的SML聚合文档中对每个XML Schema文档的统一资源标识符URI的引用修改为对相应的所搜集的实例文档的统一资源标识符URI的引用,从而生成新的SML聚合文档。该新的SML聚合文档和所搜集的XML实例文档一起构成使用SML语法描述的实例化上下文模型。
然后,根据所搜集的实例文档,用户利用策略集合生成单元603生成策略集合。具体地,在策略集合生成单元603中,用户使用策略确定单元确定相关的策略,这些策略是预先生成的基于上下文模型的SOA策略,采用条件/动作格式。然后,由集合单元将所确定的策略集合为策略集合。
进一步地,在通过策略确定单元确定了相关的策略后,由过滤单元根 据文档-策略绑定,过滤所确定的策略,以精炼策略,其中,文档-策略绑定是预先确定的或者根据应用逻辑产生。然后由集合单元集合过滤后的策略以形成策略集合。
在确定了策略集合后,通过顺序确定单元604确定策略集合中策略的执行顺序。在顺序确定单元604中,利用优先级设置单元,可以设置策略的优先级。通常,如果策略彼此独立,则这些策略的优先级相同,如果策略之间存在关联关系,则这些策略的优先级不相同。当然,用户也可以根据需要对策略设置不同的优先级,但不能改变策略之间的关联关系。然后,通过排序单元对策略集合中的所有策略进行排序。
然后,实例化上下文模型和排序后的策略集合被传送到策略应用单元605,以将策略集合中的策略应用于实例化上下文模型。图6示出了策略应用单元605的示意性方框图。
如图6所示,在策略应用单元605中,文档验证器6051将策略应用于实例化上下文模型中的实例文档以验证实例文档是否匹配。具体地,文档验证器6051中的结构验证单元(未示出)使用策略中的模式文档验证实例文档的结构,然后,文档验证器6051中的内容验证单元(未示出)使用策略中的条件部分验证实例文档的内容。如果验证结果是实例文档匹配,则由验证报告生成单元6052产生验证报告,该验证报告包含将要执行的策略的动作部分的信息,包括动作名称及参数。然后,根据该验证报告,动作执行单元6053执行相应的策略的动作。具体地,在动作执行单元6053中,装载单元装载相应的动作语义模块,在本实施例中,动作语义模块可以是***提供的常用的动作语义模块,也可以是用户定义的动作语义模块,并且这些动作语义模块可采用插件形式集成到策略引擎600中,在运行时进行调用。然后,通过参数设置单元对动作语义模块进行参数设置并由运行单元运行动作语义模块,其中,所设置的参数值可以是常量字符串或者实例文档中的特定值。
应当指出,本实施例的执行基于上下文模型的SOA策略的策略引擎600及其组件可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶 体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合实现。并且,本实施例的执行基于上下文模型的SOA策略的策略引擎600在操作上可以实现如图2所示的实施例的执行基于上下文模型的SOA策略的方法。
通过以上描述可以看出,采用本实施例的执行基于上下文模型的SOA策略的策略引擎,可以根据策略执行的场景和目的灵活地搜集实例文档以限定策略范围,例如计划、应用、服务等,并且可以应用于各种类型的SOA策略。
图7是根据本发明的另一个实施例的执行基于上下文模型的SOA策略的策略引擎700的方框图,其中,与前面实施例相同的部分采用相同的标记,并适当省略其说明。下面结合附图,对本实施例进行详细描述。
本实施例与图5所示的实施例的区别在于:引入了正向推理链机制。
如图7所示,在策略应用单元605中,当动作执行单元6053执行了所匹配的策略的动作之后,由更新判断单元6054判断实例化上下文模型是否需要更新,即判断所匹配的策略的执行结果是否引起实例化上下文模型的改变,例如,添加实例文档、修改实例文档、删除实例文档或者其组合。如果更新判断单元6054的判断结果是实例化上下文模型需要更新,则由更新单元6055执行相应的更新操作。具体地,在更新单元6055中,通过添加单元可以添加实例文档,通过修改单元可以修改实例文档,通过删除单元可以删除实例文档。在更新单元6055执行了更新操作后,冲突检测和解决单元6056检测是否存在由于更新操作而引起的冲突,并解决相应的冲突。然后,更新后的实例文档被传送到上下文模型生成单元602,与原有的实例化上下文模型相结合,生成新的实例化上下文模型,再由策略应用单元605将策略集合中的策略应用于该新的实例化上下文模型。
进一步地,当策略应用单元605对新的实例化上下文模型应用策略时,可以仅对新的实例化上下文模型中的更新后的实例文档进行验证。
应当指出,本实施例的执行基于上下文模型的面向服务架构(SOA) 的策略的策略引擎700及其组件可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合实现。并且,本实施例的执行基于上下文模型的SOA策略的策略引擎700在操作上可以实现如图4所示的实施例的执行基于上下文模型的SOA策略的方法。
通过以上描述可以看出,本实施例的执行基于上下文模型的SOA策略的策略引擎进一步提供了基于上下文模型的正向推理链,具有更强的策略/规则推理能力,能够将不同的策略彼此关联以进行基于上下文模型的策略推理、模型自更新和多策略触发,从而提高***的自愈合和自发展能力。
以上虽然通过一些示例性的实施例详细描述了本发明的执行基于上下文模型的SOA策略的方法和策略引擎,但是以上这些实施例并不是穷举的,本领域技术人员可以在本发明的精神和范围内实现各种变化和修改。因此,本发明并不限于这些实施例,本发明的范围仅由所附的权利要求限定。
Claims (28)
1.一种执行基于上下文模型的面向服务架构SOA的策略的方法,包括:
根据业务要求,搜集与策略执行相关的实例文档;
利用所搜集的实例文档,生成实例化上下文模型;
根据所搜集的实例文档,生成将要执行的策略集合;
确定上述策略集合中的策略的执行顺序;以及
按照上述执行顺序,将上述策略应用于上述实例化上下文模型;
其中,所述搜集与策略执行相关的实例文档的步骤包括:
对符合上述业务要求的上述上下文模型中的每一个XML文档指定一个实例文档,
检查所述实例文档的格式是否是XML格式;以及
如果不是XML格式,则将非XML格式的实例文档转换成XML格式的实例文档,
其中在生成SOA策略时,该上下文模型中的文档是使用XML Schema定义语言的文档,当执行SOA策略时,所述XML Schema定义语言的文档需要用符合XML Schema定义的实例文档替换,
其中生成实例化上下文模型的步骤包括:
对上述实例文档的每一个建立其与其它实例文档的文档间引用关系;以及
通过上述文档间引用关系聚合上述实例文档。
2.根据权利要求1所述的执行基于上下文模型的面向服务架构SOA的策略的方法,其中,当上述上下文模型使用XML规范定义的语法描述时,所述生成实例化上下文模型的步骤包括:
将符合上述业务要求的上述上下文模型中对每一个XML文档的引用标识修改为对相应的所搜集的实例文档的引用标识。
3.根据权利要求1至2任意一项所述的执行基于上下文模型的面向服务架构SOA的策略的方法,其中,当上述上下文模型使用SML规范定义的语法描述时,所述生成实例化上下文模型的步骤包括:
将符合上述业务要求的上述上下文模型中的SML聚合文档中对每个XML文档的统一资源标识符的引用替换为对相应的所搜集的实例文档的统一资源标识符的引用,以生成新的SML聚合文档;
其中,上述新的SML聚合文档和上述所搜集的实例文档一起构成上述实例化上下文模型。
4.根据权利要求1至2任意一项所述的执行基于上下文模型的面向服务架构SOA的策略的方法,其中,所述生成将要执行的策略集合的步骤包括:
确定与所搜集的实例文档相关的策略;以及
集合上述所确定的策略以形成策略集合。
5.根据权利要求1至2任意一项所述的执行基于上下文模型的面向服务架构SOA的策略的方法,其中,所述生成将要执行的策略集合的步骤包括:
确定与所搜集的实例文档相关的策略;
根据文档-策略绑定,过滤所确定的策略;以及
集合过滤后的策略以形成策略集合。
6.根据权利要求5所述的执行基于上下文模型的面向服务架构SOA的策略的方法,其中,上述文档-策略绑定是预先确定的。
7.根据权利要求5所述的执行基于上下文模型的面向服务架构SOA的策略的方法,其中,上述文档-策略绑定是根据应用逻辑产生的。
8.根据权利要求1至2任意一项所述的执行基于上下文模型的面向服务架构SOA的策略的方法,其中,所述确定上述策略集合中的策略的执行顺序的步骤包括:
设置上述策略的优先级;以及
根据上述优先级,对上述策略进行排序。
9.根据权利要求1至2任意一项所述的执行基于上下文模型的面向服务架构SOA的策略的方法,其中,所述将上述策略应用于上述实例化上下文模型的步骤包括:
使用上述策略的每一个验证上述实例化上下文模型中的实例文档是否匹配;
如果匹配,则产生验证报告;以及
根据上述验证报告,执行该匹配的策略的动作部分。
10.根据权利要求9所述的执行基于上下文模型的面向服务架构SOA的策略的方法,其中,所述验证上述实例化上下文模型中的实例文档是否匹配的步骤包括:
使用上述策略中的模式文档验证上述实例化上下文模型中的实例文档的结构;以及
使用上述策略中的条件部分验证上述实例化上下文模型中的实例文档的内容。
11.根据权利要求10所述的执行基于上下文模型的面向服务架构SOA的策略的方法,其中,所述执行该匹配的策略的动作部分包括:
装载上述动作部分中的动作语义模块;
设置上述动作语义模块中的参数;以及
运行上述动作语义模块。
12.根据权利要求10所述的执行基于上下文模型的面向服务架构SOA的策略的方法,其中,所述将上述策略应用于上述实例化上下文模型的步骤还包括:
确定上述实例化上下文模型是否需要更新;
如果是,则
执行更新操作;
检测并解决由上述更新操作引起的冲突;
根据更新后的实例文档和原实例化上下文模型,生成新的实例化上下文模型;以及
将上述策略应用于新的实例化上下文模型。
13.根据权利要求12所述的执行基于上下文模型的面向服务架构SOA的策略的方法,其中,所述更新操作包括:添加实例文档、修改实例文档和删除实例文档或其组合。
14.根据权利要求12所述的执行基于上下文模型的面向服务架构SOA的策略的方法,其中,所述将上述策略应用于新的实例化上下文模型步骤仅对上述新的实例化上下文模型中更新后的实例文档进行。
15.一种执行基于上下文模型的面向服务架构SOA的策略的装置,包括:
搜集单元,用于根据业务要求,搜集与策略执行相关的实例文档;
上下文模型生成单元,用于利用所搜集的实例文档,生成实例化上下文模型;
策略集合生成单元,用于根据所搜集的实例文档,生成将要执行的策略集合;
顺序确定单元,用于确定上述策略集合中的策略的执行顺序;以及
策略应用单元,用于按照上述执行顺序,将上述策略应用于上述实例化上下文模型;
其中,所述搜集单元包括:
文档指定单元,用于对符合上述业务要求上述上下文模型中的每一个XML文档指定一个实例文档,
检查单元,用于检查上述实例文档的格式是否是XML格式;以及
转换单元,用于将非XML格式的实例文档转换成XML格式的实例文档,
其中在生成SOA策略时,该上下文模型中的文档是使用XML Schema定义语言的文档,当执行SOA策略时,所述XML Schema定义语言的文档需要用符合XML Schema定义的实例文档替换,
其中所述上下文模型生成单元包括:
引用关系建立单元,用于对上述实例文档的每一个建立其与其它实例文档的文档间引用关系;以及
聚合单元,用于通过上述文档间引用关系聚合上述实例文档。
16.根据权利要求15所述的执行基于上下文模型的面向服务架构SOA的策略的装置,其中,当上述上下文模型使用XML规范定义的语法描述时,所述上下文模型生成单元包括:
引用标识修改单元,用于将符合上述业务要求的上述上下文模型中对每一个XML文档的引用标识修改为对相应的所搜集的实例文档的引用标识。
17.根据权利要求15或16所述的执行基于上下文模型的面向服务架构SOA的策略的装置,其中,当上述上下文模型使用SML规范定义的语法描述时,所述上下文模型生成单元包括:
引用修改单元,用于将符合上述业务要求的上述上下文模型中的SML聚合文档中对每个XML文档的统一资源标识符的引用修改为对相应的所搜集的实例文档的统一资源标识符的引用,以生成新的SML聚合文档;
其中,上述新的SML聚合文档和所搜集的实例文档一起构成上述实例化上下文模型。
18.根据权利要求15至16任意一项所述的执行基于上下文模型的面向服务架构SOA的策略的装置,其中,所述策略集合生成单元包括:
策略确定单元,用于确定与所搜集的实例文档相关的策略;以及
集合单元,用于集合上述所确定的策略以形成策略集合。
19.根据权利要求15至16任意一项所述的执行基于上下文模型的面向服务架构SOA的策略的装置,其中,所述策略集合生成单元包括:
策略确定单元,用于确定与所搜集的实例文档相关的策略;
过滤单元,用于根据文档-策略绑定,过滤所确定的策略;以及
集合单元,用于集合过滤后的策略以形成策略集合。
20.根据权利要求19所述的执行基于上下文模型的面向服务架构SOA的策略的装置,其中,上述文档-策略绑定是预先确定的。
21.根据权利要求20所述的执行基于上下文模型的面向服务架构SOA的策略的装置,其中,上述文档-策略绑定是根据应用逻辑产生的。
22.根据权利要求15至16任意一项所述的执行基于上下文模型的面向服务架构SOA的策略的装置,其中,所述顺序确定单元包括:
优先级设置单元,用于设置上述策略的优先级;以及
排序单元,用于根据上述优先级,对上述策略排序。
23.根据权利要求15至16任意一项所述的执行基于上下文模型的面向服务架构SOA的策略的装置,其中,所述策略应用单元包括:
文档验证器,用于使用上述策略验证上述实例化上下文模型中的实例文档是否匹配;
验证报告生成单元,用于在上述实例文档匹配的情况下,产生验证报告;以及
动作执行单元,用于根据上述验证报告,执行该匹配的策略的动作部分。
24.根据权利要求23所述的执行基于上下文模型的面向服务架构SOA的策略的装置,其中,所述文档验证器包括:
结构验证单元,用于使用上述策略中的模式文档验证上述实例化上下文模型中的实例文档的结构;以及
内容验证单元,用于使用上述策略中的条件部分验证上述实例化上下文模型中的实例文档的内容。
25.根据权利要求24所述的执行基于上下文模型的面向服务架构SOA的策略的装置,其中,所述动作执行单元包括:
装载单元,用于装载上述动作部分中的动作语义模块;
参数设置单元,用于设置上述动作语义模块中的参数;以及
运行单元,用于运行上述动作语义模块。
26.根据权利要求25所述的执行基于上下文模型的面向服务架构SOA的策略的装置,其中,所述策略应用单元还包括:
更新判断单元,用于判断上述实例化上下文模型是否需要更新;
更新单元,用于在需要更新时,执行更新操作;以及
冲突检测和解决单元,用于检测并解决由上述更新操作引起的冲突;
并且,所述上下文模型生成单元根据更新后的实例文档和原实例化上下文模型,生成新的实例化上下文模型;
所述策略应用单元对上述新的实例化上下文模型应用上述策略。
27.根据权利要求26所述的执行基于上下文模型的面向服务架构SOA的策略的装置,其中,所述更新单元包括:
添加单元,用于添加实例文档;
修改单元,用于修改实例文档;以及
删除单元,用于删除实例文档。
28.根据权利要求27所述的执行基于上下文模型的面向服务架构SOA的策略的装置,其中,所述策略应用单元仅对上述新的实例化上下文模型中的更新后的实例文档应用所述策略。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710187087A CN101441560B (zh) | 2007-11-23 | 2007-11-23 | 执行基于上下文模型的面向服务架构的策略的方法和装置 |
US12/275,435 US8788566B2 (en) | 2007-11-23 | 2008-11-21 | Enforcing context model based service-oriented architecture policies and policy engine |
US14/291,933 US9548898B2 (en) | 2007-11-23 | 2014-05-30 | Enforcing context model based service-oriented architecture policies and policy engine |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710187087A CN101441560B (zh) | 2007-11-23 | 2007-11-23 | 执行基于上下文模型的面向服务架构的策略的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101441560A CN101441560A (zh) | 2009-05-27 |
CN101441560B true CN101441560B (zh) | 2012-09-26 |
Family
ID=40670881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710187087A Active CN101441560B (zh) | 2007-11-23 | 2007-11-23 | 执行基于上下文模型的面向服务架构的策略的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (2) | US8788566B2 (zh) |
CN (1) | CN101441560B (zh) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8141128B2 (en) * | 2007-02-20 | 2012-03-20 | Source Code Technologies Holdings, Inc. | Methods and apparatus for building and executing natural language workflow functions |
US9537717B2 (en) * | 2009-04-20 | 2017-01-03 | Hewlett Packard Enterprise Development Lp | Policy enforcement point provisioning |
CN101655795B (zh) * | 2009-09-25 | 2012-10-10 | 金蝶软件(中国)有限公司 | 服务实例的创建方法和*** |
US20110191748A1 (en) * | 2010-01-29 | 2011-08-04 | International Business Machines Corporation | Systems and methods for design time service verification and validation |
CN102215212B (zh) * | 2010-04-02 | 2016-02-10 | 中兴通讯股份有限公司 | 一种安全策略的冲突处理方法、架构及统一转换器 |
US8539561B2 (en) * | 2010-08-24 | 2013-09-17 | International Business Machines Corporation | Systems and methods to control device endpoint behavior using personae and policies |
US8620774B1 (en) * | 2010-09-23 | 2013-12-31 | Amazon Technologies, Inc. | Automated marketplace management service |
CN102082737B (zh) * | 2011-03-11 | 2013-01-30 | 浙江大学 | 基于服务优先级的Web服务替换方法 |
US8719824B2 (en) * | 2011-08-03 | 2014-05-06 | Raytheon Company | Dynamically configurable command and control systems and methods |
CN102368217A (zh) * | 2011-10-20 | 2012-03-07 | 镇江睿泰信息科技有限公司 | 一种元数据驱动的rest风格应用开发方法与*** |
US8990271B2 (en) | 2012-03-12 | 2015-03-24 | International Business Machines Corporation | Specifying data in a standards style pattern of service-oriented architecture (SOA) environments |
EP2645244B1 (en) * | 2012-03-27 | 2019-09-11 | Software AG | Method and registry for enabling the enforcement of design-time policies during runtime in a service-oriented architecture |
CN103377405A (zh) | 2012-04-24 | 2013-10-30 | 国际商业机器公司 | 部署和修改面向服务架构部署环境模型的方法和*** |
US9430548B1 (en) * | 2012-09-25 | 2016-08-30 | Emc Corporation | Generating context tree data based on a tailored data model |
US9430116B2 (en) * | 2013-02-12 | 2016-08-30 | International Business Machines Corporation | Visualization of runtime resource policy attachments and applied policy details |
CN103606073A (zh) * | 2013-08-28 | 2014-02-26 | 中海油信息科技有限公司 | 一种基于IBM FileNet的办公文件的传送方法和*** |
US10656971B2 (en) * | 2014-01-31 | 2020-05-19 | Dell Products L.P. | Agile framework for vertical application development and delivery |
US9432405B2 (en) | 2014-03-03 | 2016-08-30 | Microsoft Technology Licensing, Llc | Communicating status regarding application of compliance policy updates |
US11157260B2 (en) | 2015-09-18 | 2021-10-26 | ReactiveCore LLC | Efficient information storage and retrieval using subgraphs |
US9552200B1 (en) | 2015-09-18 | 2017-01-24 | ReactiveCore LLC | System and method for providing supplemental functionalities to a computer program via an ontology instance |
US9335991B1 (en) | 2015-09-18 | 2016-05-10 | ReactiveCore LLC | System and method for providing supplemental functionalities to a computer program via an ontology instance |
US9864598B2 (en) | 2015-09-18 | 2018-01-09 | ReactiveCore LLC | System and method for providing supplemental functionalities to a computer program |
US9372684B1 (en) | 2015-09-18 | 2016-06-21 | ReactiveCore LLC | System and method for providing supplemental functionalities to a computer program via an ontology instance |
US10482231B1 (en) * | 2015-09-22 | 2019-11-19 | Amazon Technologies, Inc. | Context-based access controls |
CN105260193A (zh) * | 2015-11-03 | 2016-01-20 | 国云科技股份有限公司 | 一种大型软件自愈合框架及愈合方法 |
WO2017137803A1 (en) * | 2016-02-10 | 2017-08-17 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and network node for providing policy enforcement in a computing cloud platform |
US10185720B2 (en) | 2016-05-10 | 2019-01-22 | International Business Machines Corporation | Rule generation in a data governance framework |
CN106325515B (zh) * | 2016-08-26 | 2019-06-07 | 北京零秒科技有限公司 | 一种面向服务的人机交互***以及实现方法 |
CN107783957B (zh) * | 2016-08-30 | 2021-05-18 | 中国电信股份有限公司 | 本体创建方法和装置 |
US10922621B2 (en) * | 2016-11-11 | 2021-02-16 | International Business Machines Corporation | Facilitating mapping of control policies to regulatory documents |
CN107590186B (zh) * | 2017-08-07 | 2021-07-30 | 北京京东尚科信息技术有限公司 | 管理和执行数据处理策略的方法和策略引擎*** |
CN108536613B (zh) * | 2018-03-08 | 2022-09-16 | 创新先进技术有限公司 | 数据清理方法、装置、及服务器 |
CN113839769B (zh) * | 2021-09-27 | 2023-08-22 | 刘昀宸 | 防止侧信道攻击的方法、算术逻辑单元以及处理器 |
WO2023086648A1 (en) * | 2021-11-12 | 2023-05-19 | CarynHealth Technology, LLC. | Systems and methods for rules-based transactions in a community |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1855146A (zh) * | 2005-04-28 | 2006-11-01 | 国际商业机器公司 | 修改面向服务的体系结构中的商业***组件的方法和*** |
CN101047512A (zh) * | 2006-03-31 | 2007-10-03 | 国际商业机器公司 | 服务注册器以及相关***和方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040193703A1 (en) * | 2003-01-10 | 2004-09-30 | Guy Loewy | System and method for conformance and governance in a service oriented architecture |
WO2005114488A2 (en) * | 2004-05-21 | 2005-12-01 | Computer Associates Think, Inc. | System and method for actively managing service-oriented architecture |
US8392364B2 (en) * | 2006-07-10 | 2013-03-05 | Sap Ag | Consistent set of interfaces derived from a business object model |
FR2906383B1 (fr) * | 2006-09-21 | 2009-04-03 | Alcatel Sa | Referentiel semantique de services web et procede utilisant ce referentiel |
US9111276B2 (en) * | 2006-12-08 | 2015-08-18 | Sap Se | Secure execution environments for process models |
US20090024713A1 (en) * | 2007-07-18 | 2009-01-22 | Metrosource Corp. | Maintaining availability of a data center |
US20090083110A1 (en) * | 2007-09-21 | 2009-03-26 | Ivan Markovic | Formal model for business processes |
-
2007
- 2007-11-23 CN CN200710187087A patent/CN101441560B/zh active Active
-
2008
- 2008-11-21 US US12/275,435 patent/US8788566B2/en active Active
-
2014
- 2014-05-30 US US14/291,933 patent/US9548898B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1855146A (zh) * | 2005-04-28 | 2006-11-01 | 国际商业机器公司 | 修改面向服务的体系结构中的商业***组件的方法和*** |
CN101047512A (zh) * | 2006-03-31 | 2007-10-03 | 国际商业机器公司 | 服务注册器以及相关***和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101441560A (zh) | 2009-05-27 |
US9548898B2 (en) | 2017-01-17 |
US20090138940A1 (en) | 2009-05-28 |
US20140280856A1 (en) | 2014-09-18 |
US8788566B2 (en) | 2014-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101441560B (zh) | 执行基于上下文模型的面向服务架构的策略的方法和装置 | |
CN101452386B (zh) | 使用正向推理链执行基于上下文模型的策略的方法及策略引擎 | |
CN101441561B (zh) | 基于上下文模型生成面向服务架构的策略的方法和装置 | |
Wu et al. | Automatic composition of semantic web services using process and data mediation | |
US7743391B2 (en) | Flexible architecture component (FAC) for efficient data integration and information interchange using web services | |
Balzer et al. | Pitfalls of OWL-S: a practical semantic web use case | |
Schumm et al. | Fragmento: Advanced process fragment library | |
Zolotas et al. | From requirements to source code: a Model-Driven Engineering approach for RESTful web services | |
Milanovic | Contract-based web service composition framework with correctness guarantees | |
Maarouf et al. | XML integrated environment for service-oriented data management | |
Kühlwein et al. | Firmware synthesis for ultra-thin iot devices based on model integration | |
Sanchez et al. | Runtime translation of OCL-like statements on Simulink models: Expanding domains and optimising queries | |
Dietrich et al. | A formal contract language for plugin-based software engineering | |
Mohseni et al. | A model‐driven approach for semantic web service modeling using web service modeling languages | |
Murtagh | Automated Web Service Composition | |
Opdahl | Semantic annotations for modelling language interoperability | |
Pahl | Semantic model-driven development of web service architectures | |
Nalepa et al. | Visual Software Modeling with Rules | |
Huang | The UniFrame system-level generative programming framework | |
Martinek et al. | Implementation of semantic services in enterprise application integration | |
Fensel et al. | Owl-s and other approaches | |
Scherer | Description languages for REST APIs-state of the art, comparison, and transformation | |
Alonso et al. | CS Adaptability Container | |
Cao | Model driven development and dynamic composition of Web services | |
Stamber et al. | Prototypical implementation of a pragmatic approach to semantic web service discovery during process execution |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |