基于上下文模型生成面向服务架构的策略的方法和装置的制作方法

文档序号:6614357阅读:257来源:国知局
专利名称:基于上下文模型生成面向服务架构的策略的方法和装置的制作方法
技术领域
本发明涉及计算机网络系统的面向服务架构(Service-Oriented Architecture,简称SOA)4支术,具体地说,涉及生成用于生成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)等。
下面简要介绍现有技术中的几种用于生成SOA策略的技术方案。 ( 一 )传统的业务策略/规则定义工具和转换机制 通常,这样的业^NSL则定义工具使用建模语言或者半自然语言表示策 略或规则,并且在执行这些策略或规则之前,需要将其转换成可执行代码, 例如Java、 .NET等。
诸如ILOG乂/^司的JRules和Blaze公司的Advisor等的业^N現则定义 工具,能够帮助业务分析人员使用基于业务词汇表和业务规则的语义
(Semantics of Business Vocabulary and Business Rules, 简称SBVR)规 范的结构化英语句子和短语来编写和管理表达业务逻辑的业^则。
利用这种业^Mo,j定义工具定义的策略或者规则,根据复杂的模型驱 动架构可以分层为不同的级别,例如,业务级别、平台无关的级别、平台 有关的级别等。
WebSphere Business Modeler是国际商业机器(IBM)公司提供的一 个用于对业务流程建^f莫的工具,也包含了可定义业务策略/规则的功能,其中,业务规则可在业务流程中被插入。然而,该工具仅仅在概念水平上进 行定义,并且仅仅生成抽象的规则框架和文本描述。
WebSphere Integration Developer (WID )是IBM公司提供的一个基 于Eclipse技术的集成开发环境,它提供了用于构建和部署基于标准的业 务流程应用程序的开发服务。利用WID工具,可以定义决^和规则对 象,其中决策表是业务规则定义的最筒单的形式,而规则对象最终将用 JAVA实现,因此,会失去声明性策略的灵活性。
上述的传统的业务策略/规则定义工具具有下述的局限性
1、 这些业务策略/规则定义工具通常支持复杂的模型驱动架构,并且 用户需要人工地基于规则词汇表编写策略,然后利用业务策略/规则定义工 具生成不同级别的策略/规则。由于在不同级别的策略/规则之间^^保持无 缝关系,因此,该业务策略/规则定义工具在本质上不能执行不同级别之间 的转换而不丢失语义和完整性。因此,用户必须自己改进最后所生成的结 果,造成该业务策略/规则定义工具使用复杂。
2、 由于最后的用于执行的策略都是通过可执行代码表示,例如 Java、 .NET程序,并且反映业务策略或规则的业务逻辑也内嵌于可执行代 码中,因此,当策略需要随着业务要求改变时,用户必须重建更新后的策 略,并再次进行转换。这样,会失去声明性策略的灵活性。
3、 利用上述业务策略/规则定义工具生成的策略/规则不符合标准,因 此不能复用。
(二)基于本体的策略和相应的定义工具
Web本体语言(Web Ontology Language,简称OWL)是万维网联 合会(W3C)推荐的一种本体的标准描述语言,它是关于与特定行业有关 的知识的一个或者多个域的概念化规范,其包括三个子语言OWLLite、 OWL DL和OWL Full。
语义网规则语言(Semantics Web Rule Language,简称SWRL)是结 合OWL语言的OWL DL、 OWL Lite子语言和规则标记语言(Rule Markup Language,简称RuleML)的一元/二元数据i己录RuleML子语言而形成的,其包括在OWL语言的OWL DL和OWL Lite子语言中用于"霍 恩式(Horn-like),,规则的高级摘要语法,并且提供了模型论语义以对包 括用该摘要语法编写的规则/策略的OWL本,供正式的含义。
WebSphere Business Services Fabric (WBSF)是IBM公司提供的支
持业务领域服务;sji务策略建模、开发和运行时支持的工具。该工具提供 了 一种可动态装配用于选择服务端点的可接受的规则的机制。策略在概念
上以IF (M ) THEN (断言)的格式进行声明如果满足指定的务降(上 下文和内容),则产生指定的契约(以组合断言的形式),以匹配在可用 端点中定义的功能,其中,这些策略和策略断言都表示为OWL元素。 然而,这样的基于本体的策略定义工具具有以下的局限性
1、 该策略定义工具在很大程度上依赖于本体,而本体依赖于一组复 杂的本体标准,例如OWL等,因此,该策略定义工具只能用于概念和对 象的结构描述,其描述行为的能力很弱。
2、 策略的定义仅仅基于OWL描述的实体进行,并且这些实体之间的 关系没有在策略的定义中使用。
3、 由于所有的策略都表示为OWL元素,因此策略的定义和执行在很 大程度上依赖于OWL引擎。
(三)服务建才莫语言(Service Modeling Language,简称SML)规 则和Schematron模式i吾言
SML语言是由IBM、微软、BEA、 Intel等联合定义的用于基于XML 的IT服务管理的语言,它提供了丰富的用于描述复杂IT服务和系统的模 型的构件集合。SML模型是相关的XML文档的集合,这些XML文档包 含关于一个IT服务的多个部分的信息、以及为了使该IT服务正常运行而 每个部分必须满足的约束,其中,约束可以以下述两种方式表达
1 、模式(Schema )—是关于模型中的文档的结构和内容的约束。SML 语言使用XML Schema 1.0的概要作为模式语言,并且定义XML Schema 的扩展集合以支持文档间引用。
2、规则一是约束模型中的文档的结构和内容的布尔表达式。为此,SML语言使用Schematron模式语言的概要和XPath语言1.0。
XML Schema支持多个内置的基于语法的约束,但是它不支持用于定 义任意的用于约束文档的结构和内容的规则的语言。Schematron模式语言 是用于定义与XML文档的集合有关的断言的ISO标准。SML语言使用 Schematron模式的概要以增加对用户定义的约束的支持。SML语言使用 XPath语言l.O(其增加了 smlfn:deref()扩展功能)作为其约束语言。用于 定义的约束可以使用Schematron模式语言中的sch:assert和sch:report元 素规定。
社区驱动的开源系统管理(COSMOS)的资源建模子项目是SML建 模的开源项目,其旨在对建立通用模型以代表在系统管理场景中共享的信 息提供支持。该项目计划使用SML作为XML模式语言,以定义该通用模 型。月良务建模语言互换格式(Service Modeling Language — Interchange Format,简称SML-IF)将用于在系统管理活动所涉及的工具之间共享模 型元件。
然而,SML语言仅仅用于确认XML文档集合并产生文本报告,其对 于策略的动作部分没有有力的表达机制以描述和扩展系统行为。并且, SML对于用户来说很难人工地定义策略/规则,尤其对于非IT用户定义业 务相关的策略。此外,无论在规范中还是在已有的策略定义工具中,在SML 和本体之间都不存在联系。
综上所述,现有的定义SOA策略的工具都存在局限性,需要一种新的 生成SOA策略的技术方案以解决现有的定义SOA策略的工具存在的问 题。

发明内容
本发明正是基于上述技术问题而提出的,其目的在于提供一种生成用 于生成SOA策略的上下文模型的方法和装置,可以扩大用于生成策略的知 识域。另夕卜,本发明还提供一种基于上下文模型生成SOA策略的方法和装 置,可以保持声明性策略的灵活性,并提高策略生成的使用性。根据本发明的第一个方面,提供一种生成用于生成面向服务架构SOA 的策略的上下文模型的方法,包括收集符合上述策略的应用范围的SOA 元数据文档;建立上述SOA元数据文档的文档间引用关系;以及根据上述 文档间引用关系,聚合各个SOA元数据文档以生成上下文模型。
根据本发明的第二个方面,提供一种基于上下文模型生成面向服务架 构的策略的方法,包括产生策略的应用范围;利用上述的生成用于生成 面向服务架构的策略的上下文模型的方法,生成上下文才莫型;基于由用户 定制的动作语义才莫块,生成用于该上下文模型的动作列表;才艮据上述上下 文模型,生成策略的条件部分;根据上述动作列表,生成策略的动作部分; 以及合并上述策略的条件部分和动作部分以生成策略。
根据本发明的第三个方面,提供一种生成用于生成面向服务架构的策 略的上下文模型的装置,包括收集器,用于收集符合上述策略的应用范 围的SOA元数据文档;文档间引用关系建立单元,用于建立上述SOA元 数据文档的文档间引用关系;以及聚合器,用于根据上述文档间引用关系, 聚合各个SOA元数据文档以生成上下文模型。
根据本发明的第四个方面,提供一种基于上下文模型生成面向服务架 构的策略的装置,包括应用范围产生单元,用于产生策略的应用范围; 上述的生成用于生成面向服务架构的策略的上下文模型的装置,用于生成 上下文模型;动作列表生成器,用于基于由用户定制的动作语义;f莫块,生 成用于上述上下文模型的动作列表;条件生成单元,用于根据上述上下文 才莫型生成策略的条件部分;动作生成单元,用于根据所生成的上述动作列 表生成策略的动作部分;以及策略生成器,用于合并上述策略的条件部分 和动作部分以生成策略。


图l是根据本发明的一个实施例的生成用于生成SOA策略的上下文模 型的方法的流程图2是根据本发明的另 一个实施例的生成用于生成SOA策略的上下文
12模型的方法的流程图3是图2的实施例中使用SOA元数据文档生成上下文模型的示意
图4是根据本发明的一个实施例的生成用于生成SOA策略的上下文模 型的装置的示意性方框图5是图4中的聚合器在Eclipse平台上的具体实现的示意图6是根据本发明的一个实施例的基于上下文模型生成SOA策略的方 法的流程图7是图6中生成SOA策略的过程的示意图8是根据本发明的一个实施例的基于上下文才莫型生成SOA策略的装 置的示意性方^f匡图9是图8的实施例中条件生成单元的示意图; 图IO是图8的实施例中动作生成单元的示意图。
具体实施例方式
相信通过以下结合附图对本发明的具体实施例的详细描述,本发明的 上述和其它目的、特征和优点将更加明显。
图l是根据本发明的一个实施例的生成用于生成SOA策略的上下文模 型的方法的流程图。下面结合附图,详细说明本实施例。
如图1所示,首先,在步骤101,收集符合策略的应用范围的SOA元 数据文档。如前所述,SOA元数据文档包括服务元数据文档、运行时信息 文档或者例如OWL文档的用于描述其它业务内容的文档。在本实施例中, 策略的应用范围是指策略会被应用的领域,具体的内容将在后面详细描述。 根据策略的应用范围,相关的SOA元数据文档4皮收集。在收集这些SOA 元数据文档之前,可以由用户指定符^^要求的SOA元lt据文档。
然后,在步骤105,对于所收集的SOA元数据文档进行处理,即,建 立SOA元数据文档的文档间引用关系。XML模式本身并不支持文档间的 引用,然而,本实施例通过扩展XML模式以支持在不同的SOA元数据文档中的XML元素之间建立互相引用的关系,例如,增加新的属性或数据 类型,用于说明一个元素对另外一个元素的引用。在本实施例中,文档间 引用关系可以通过在每一个SOA元数据文档的统一资源标识符(URI)与 该SOA元数据文档所承担的角色之间建立唯一的对应关系来建立。由于所 收集的SOA元数据文档相互之间不一定存在关系,例如WSDL文档中定 义的元素和运行时SOAP消息中的元素,因此,通过如上所述地建立唯一 的对应关系的操作,可以建立每个文档的根元素的文档间引用,从而使得 所有的文档可以相互引用。
然后,在步骤110,根据在步骤105中建立的文档间引用关系,聚合 各个SOA元数据文档,从而生成上下文模型。未建立引用关系的SOA元 数据文档之间是孤立的,在执行了步骤110之后,所有建立了引用关系的 SOA元数据文档能够共同形成一个上下文,从而使得这些SOA元数据文 档之间能够互相依赖,共同描述用于生成策略的上下文才莫型。
在本实施例中,上下文模型表现为采用文档列表形式的XML格式的 文档。在所生成的上下文模型中,列有每个SOA元数据文档的URI、 对应的角色和表示文档间引用的元素。
下面给出一个上下文模型的例子,其中该上下文模型U于XML语 言的
< xml version=',1.0" encoding="UTF-8" > <DocumentList xmlns:cm="http:〃cn.ibm.com/soa"> <Document role="role0" cm:ref="true">
<cm:uri>/Context Model/External—SampleService.wsdl</cm:uri> </Document>
<Document role="rolel" cm:ref="true">
<cm:uri>/Context Model/Internal—SampleService.wsdl</cm:uri> </Documcnt〉
<Document role="role2" cm:ref^"true">
<cm:uri>/Context Model/RequesterSOAP—1 .xml</cm:uri></Documcnt>
<Document role="role3" cm:ref="true">
<cm:uri>/Context Model/SampleService.wsdl</cm:uri> </Docunicnt> </Document!ist>
其中,Document role表示文档所承担的角色,cm:ref表示文档间引用, cm:uri表示文档的URI。那么,该上下文模型中包含4个文档文档1是 External—SampleService.wsdl , 其承担的角色是role0; 文档2是 Internal—SampleService.wsdl, 其承担的角色是rolel ; 文档3是 Requester SO AP_l.xml , 其承担的角色是 role2 ; 文档 4 是 SampleService.wsdl,其^4a的角色是role3。这4个文档之间的相互引用 通过cm:rcf-"truc"体现。
当然,本领域的普通技术人员能够理解,上下文模型还可以基于其它 的能够使SOA元数据文档相互引用并且能够描述發汪SOA元数据文档的 结构和内容的策略/规则的可执行的语言。
通过以上描述可以看出,本实施例的生成用于生成SOA策略的上下文 模型的方法通过在相关的SOA元数据文档之间建立关系,并且按一定的格 式聚合这些SOA元数据文档,能够生成上下文模型,为生成具有统一格式 的SOA策,供了基础。
图2是根据本发明的另一个实施例的生成用于生成SOA策略的上下文 模型的方法的流程图,其中与前面的实施例相同的部分采用相同的标记, 并适当省略其说明。下面结合附图,对本实施例进行详细描述。
如前所述,OWL语言是本体的标准描述语言,其用预定义的格式描 述对象之间的关系。OWL语言是基于XMLt艮的,与XML语言相比, 其能够描述语义信息。OWL文档可以看作是包含一定业务语义信息的 XML文档。
OWL的基本组成部分包括类、属性和个体(实例)。下面是OWL 文档的一个例子,其中描述了 一些业务术语,例如帐户大小(AccoimtSize )、客户类型(CustomerType)和帐户限定值(AccountLimit)等。在该例中, 用owl:Class元素表示类。
<owl: Class rdf:ID="AccountSize">
<rdfs:subClassOf rdf:resource="http:〃www.webifysolutions.com/assertion#ContentBasedAssertion"/> <core:assertionType rdf:datatype="http:〃www,w3,org/2001/XMLSchema#string" >Endpoint Selection</core:assertionType> </owl:Class〉
<owl:Class rdf:ID="CustomerType">
<core:assertionType rdf:datatype="http:〃www.w3,org/2001/XMLSchema弁string"〉 Endpoint Selection</core:assertionType>
<rdfs:subClassOf rdf:resource="http:〃www.webifysolutions,com/assertion#ContentBasedAssertion"/> </owl:Class>
<owl:Class rdf:ID="AccountLimit">
<core:assertionType rdf:datatype="http:〃www.w3,org/2001/XMLSchema#string" >Endpoint Selection</core:assertionType>
<rdfs:subClassOf rdf:resource="http:〃www.webifysolutions.com/assertion#ContentBasedAssertion"/〉 <core:contentAssertionScope rdf:datatype="http:〃www.w3.org/2001/XMLSchema#strmg" >POLICY</core:contentAssertionScope> </owl:Class〉
由于OWL文档包含有业务语义信息,因此在生成上下文模型的过程 中,在收集了相关的SOA元数据文档之后并在对每个SOA元数据文档进 行建立文档间引用关系的操作之前,还需对OWL文档进行处理。
具体地,在步骤201,检查所收集的SOA元数据文档中是否存在OWL 文档,如果不存在OWL文档,则继续执行步骤105。如果存在OWL文 档,则在步骤205,解析每一个OWL文档,以获得该OWL文档中的OWL 类,即,在上面的OWL文档的例子中,用owl:Class定义的。然后,在步 骤210,基于所获得这些OWL类,创建相应的OWL个体(individual)。 在OWL中,个体是类的实例。这样,通过对OWL类进行实例化,就可以得到OWL个体。然后,在步骤215,对于每一个OWL文档,生成包 含有OWL类和相应的OWL个体的本体文档。这些本体文档将和其它非 OWL文档的SOA元数据文档一起生成上下文才莫型。
在步骤105,对于本体文档和其它非OWL文档的SOA元数据文档建 立文档间引用关系。然后,在步骤110,根据这些文档间引用关系,聚合 本体文档和其它非OWL文档的SOA元数据文档,以生成上下文才莫型。
图3示出了使用SOA元数据文档生成上下文模型的示意图。如图3 所示,SOA元数据文档有以BPEL、 WSDL和SCDL描述的与功能性描 述有关的文档、以WS-策略和SCA策略表示的与服务非功能属性要求有 关的文档、以业务对象/消息对象(Business Object / Message Object)和 SOAP消息表示的与运行时信息有关的文档、XML格式的上下文信息、以 及描述本体的OWL文档,例如描述医疗、保险等行业的OWL文档。OWL 文档经过解析和实例化后得到OWL个体(实例),然后与其它文档共同 构建上下文模型。
通过以上描述可以看出,本实施例的生成用于生成SOA策略的上下文 模型的方法能够进一步对描述行业域的知识的OWL文档进行处理,扩展 了 SOA策略的应用域的知识,从而能够生成更具语义和更复杂的策略。
在同一个发明构思下,图4是根据本发明的一个实施例的生成用于生 成SOA策略的上下文模型的装置的示意性方框图。下面结合附图,详细说 明本实施例,其中对于与前述的实施例相同的部分,适当省略其说明。
如图4所示,本实施例的生成用于生成SOA策略的上下文^=莫型的装置 400包括收集器401,其收集符合策略的应用范围的SOA元数据文档; 文档间引用关系建立单元402,其建立由收集器401收集的SOA元数据文 档的文档间引用关系;以及聚合器403,用于才艮据由文档间引用关系建立 单元402建立的文档间引用关系,聚合各个SOA元数据文档以生成上下文 模型。
具体地,收集器401根据SOA策略的应用范围,即SOA策略被应用 的领域,收集相关的SOA元数据文档。优选地,这些相关的SOA元数据文档可以由用户指定,因此,本实施例的生成上下文;jt型的装置400还可 包括指定单元,其允许用户指定符合策略的应用范围的SOA元数据文档。 指定单元可以通过向用户提供交互界面来实现。
然后,由收集器401将这些SOA元数据文档收集在一起。所收集的这 些SOA元数据文档被提供给对应关系建立单元402,并在文档间引用关系 建立单元402中,建立文档间引用关系,具体地,文档间引用关系建立单 元402可包括对应关系建立单元,其建立各个SOA元数据文档的统一资源 标识符URI与该SOA元数据文档所承担的角色之间的唯一的对应关系。 SOA元数据文档所承担的不同角色表明了该文档在整个上下文模型中承 担了不同的作用,提供了不同的用于生成策略的元素。通过建立该唯一的 对应关系,可以建立各个SOA元数据文档的才艮元素的文档间引用。另夕卜, SOA元数据文档中的其它元素也可以通过与根元素的相对路径来描述自 身的位置,这样SOA元数据文档中的各个元素之间都能够建立互相引用的 关系,从而使各个SOA元数据文档能够相互引用。
然后,聚合器403根据所建立的文档间引用关系,将这些SOA元数据 文档聚合为上下文模型。在本实施例中,上下文模型表现为采用文档列表 形式的XML格式文档。在所生成的上下文模型中,列有每个SOA元数 据文档的URI及其对应的角色。
图5是图4中的聚合器403在Eclipse平台上的具体实现的示意图。如 图5所示,在"Context Model Editor"的左侧一栏中是生成的基于XML 语言的上下文模型,其中列出了角色role与文档的URI的对应关系。
进一步地,本实施例的生成用于生成SOA策略的上下文模型的装置 400还包括检查单元404,其检查由收集器401所收集的SOA元数据文 档中是否存在OWL文档;OWL解析器405,其解析OWL文档,以获得 每个OWL文档中的OWL类;OWL个体创建单元406,其根据通过OWL 解析器404获得的OWL类,创建相应的OWL个体;以及本体文档生成 器407,其对每个OWL文档,生成包含OWL类和相应的OWL个体的本 体文档。这样,每个OWL文档经过OWL解析器405、 OWL个体创建单元406 和本体文档生成器407的处理,得到相应的本体文档。
这些本体文档用于与其它非OWL文档的SOA元数据文档一起构建上 下文才莫型。具体地,这些本体文档和非OWL文档的SOA元数据文档纟皮提 供给文档间引用关系建立单元402,以建立文档间引用关系,然后由聚合 器403才艮据所建立的文档间引用关系,聚合非OWL文档的SOA元数据文 档和本体文档,从而生成上下文模型。
应当指出,本实施例的生成用于生成SOA策略的上下文模型的装置 400及其组件可以由诸如超大^!^莫集成电路或门阵列、诸如逻辑芯片、晶 体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编 程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实 现,也可以由上述硬件电路和软件的结合实现。并且,本实施例的生成用 于生成SOA策略的上下文模型的装置400在操作上可以实现如图1所示的 实施例的生成用于生成SOA策略的上下文;f莫型的方法。
通过以上描述可以看出,采用本实施例的生成用于生成SOA策略的上 下文模型的装置,可以在相关的SOA元数据文档之间建立关系,并且将其 聚合为上下文模型,为生成具有统一格式的SOA策略提供了基础。此夕卜, 本实施例的生成用于生成SOA策略的上下文模型的装置还可以处理描述 行业域的知识的OWL文档,扩展了 SOA策略的应用域的知识,从而能够 生成更具语义和更复杂的SOA策略。
在同一个发明构思下,图6是才艮据本发明的一个实施例的基于上下文 模型生成SOA策略的方法的流程图,其中,与前述的实施例相同的部分, 适当省略其说明。下面结合附图,详细说明本实施例。
如图6所示,首先,在步骤601,产生将被生成的策略的应用范围。 如前所述,策略的应用范围是指策略将要应用的领域,其可以是策略的类 型,即,策略是业务策略、应用策略或者治理策略;也可以是策略所应用 的应用场景,例如帐户管理等;也可以是两者的结合。
接着,在步骤605,根据所产生的策略的应用范围,利用图1或图2所示的实施例的生成用于生成面向服务架构的策略的上下文模型的方法,
将符合策略的应用范围的SOA元数据文档聚合为上下文模型。在本实施例 中,选择XML语言实现上下文模型。
然后,在步骤610,基于由用户定制的动作语义模块,生成用于在步 骤605中生成的上下文模型的动作列表。
具体地,用户可以根据需要,定制所需的动作语义模块。这些动作语 义模块可以是任意格式的,然而,对于非XML格式的动作语义模块,需 要提供对应的XML描述文件,该XML描述文件描述了有关该动作语义 模块的格式、接口和调用方式等的信息。用户可以将所定制的动作语义模 块存储在特定的位置。通过用户定制动作语义模块,可以扩展策略的动作 语义。
然后,获取这些动作语义模块及其XML描述文件,并读取XML描 述文件以获得动作语义模块的相关信息。利用这些相关信息,将动作语义 才莫块导入动作列表中。
在建立了上下文模型和相应的动作列表后,在步骤615,根据上下文 模型中SOA元数据文档的结构和内容,生成策略的条件部分,以构建某些 动作将被执行的环境。通常,条件部分表示为逻辑表达式或者其组合。例 如,作为条件部分的逻辑表达式可以采用如下形式 ((<Left Term> <Operator> 〈Right Term> A) and (<Left Term> <Operator> 〈Right Term> B) or (<Left Term> <Operator> <Right Term> C) 具体地,从上下文模型中的SOA元数据文档中提取^Ht术语以及^Hf
术语之间的相互关系,例如继承关系、关联关系等。这些M术语是策略
的条件部分的"Left Term"和"Right Term"的候选,此外,"Right Term" 也可以是数值。然后,显示这些条件术语,并由用户选择所需的条件术语 和运算符,以构建策略的条件部分。
然后,在步骤620,根据在步骤610生成的动作列表,生成策略的动 作部分。具体地,显示动作列表中的所有动作语义模块,用户可以根据策略的条件部分,选择所希望的动作语义模块,并设置该动作语义模块中的 参数,从而得到策略的动作部分。策略的动作部分可以表示为格式化的字 符串或者可执行框架,以调用动作语义模块。
最后,在步骤625,合并在步骤615和620中生成的策略的条件部分 和动作部分,从而生成策略。所生成的策略是*-动作策略,其中条件部 分表示上下文模型中SOA元数据文档的结构和内容的匹配标准,动作部分 具有可扩展的动作语义。例如,如果上下文模型采用XML语法,那么策 略可以采用Schematron才莫式i吾言作为基J出语法。
图7示意性地示出了生成SOA策略的过程。如图7所示,SOA元数 据文档被聚合成上下文模型,然后依据该上下文模型生成策略的条件部分, 而由用户定制的动作语义模块,例如调用Web服务、记录日志、变量赋值 等,被用于生成策略的动作部分,最后条件部分与动作部分合并构成策略。
此外,本实施例的基于上下文模型生成SOA策略的方法还包括生成 上下文模型模板,其包含了在步骤605中生成的上下文模型和上下文模型 中的SOA元数据文档;并且,将该上下文模型^板和所生成的SOA策略 一起注册在SOA系统的策略注册存储库(Policy Registry/Repository)中, 用于未来的策#行。
下面给出供应链本体OWL文档和运行时元数据的示例以及生成的 SOA策略的示例。
< xml version-" 1.0" > <rdf:RDF
xnilns-"http:〃www.owl-ontologies.com/Ontologyll79712883.owl弁" xmlns:rdf="http:〃www,w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xsd="http:〃www,w3.org/2001/XMLSchema#" xmlns:rdfs="http:〃www,w3.org/2000/01/rdf-schema#" xmlns:owl="http:〃www.w3.org/2002/07/owl#" xmlns:pl="http:〃www.owl-ontologies,com/" xml:base="http:〃www.owl-ontologies.com/Ontologyl 179712883.owl"><owl:Ontology rdf:about="7> <owl:Class rdf:ID="CustomerType7> <owl:Class rdf:ID="Discount,7> <owl:DatatypeProperty rdf:ID=,,hasLiteralValue',>
<rdfs: domain rdf:resource="#CustomerType"/> </owl: DatatypeProperty〉 <owl:ObjectProperty rdf:ID="hasDiscount">
<rdfs:range rdf:resource="#Discount7>
<rdfs:domain rdf:resource=',#CustoTnerType,,/> </owl: Obj ectProperty〉
<owl:DatatypeProperty rdf:ID="hasDecimalValue">
<rdfs:domain rdf:resource="#Discount"/> </owl: DatatypeProperty〉
以上为描述例如客户类型(CustomerType)和折扣(Discount)等业 务术语的OWL文档,其中OWL类包括"CustomerType"和"Discount", 并且类"CustomerType"的数据类型属性为"hasLiteralValue",类
"CustomerType"和"Discount"具有对象属性"hasDiscount",类
"Discount"的数据类型属性为"hasDecimalValue"。
以下示出的;U現定不同的客户类型及其折扣的实例的OWL个体,该 OWL个体表明当客户类型"CustomerType"为"GOLDEN"时,折扣
"Discount"为"0.66",当客户类型"CustomerType"为"SILVER" 时,折扣"Discount"为"0.77",当客户类型"CustomerType"为"BRONZE" 时,折扣"Discount"为"0.88"。
<CustomerType rdf:ID="GOLDEN">
<hasLiteralValuerdf:datatype="http:〃www.w3.org/2001/XMLSchema#string">GOLDEN</hasLiteralValue> <hasDecimalValue rdf:datatype="http:〃www.w3.org/2001/XMLSchema#double">0.66</hasDecimalValue>
</CustomerType>
<CustomerType rdf:ID="SILVER"><hasLiteralValuerdf:datatype="http:〃www.w3.org/2001/XMLSchema#string">SILVER</hasLiteralValue> <hasDecimalValue rdf:datatype="http:〃www.w3,org/2001/XMLSchema#double">0.77</hasDecimarValue> </CustomerType>
<CustomerType rdf:ID="BRONZE">
<hasLiteralValuerdf:datatype="http:〃www.w3.org/2001/XMLSchema#string">BRONZE</hasLiteralValue> <hasDecimalValue rdf:datatype="http:〃www.w3.org/2001/XMLSchema#double">0.88</hasDecimalValue>
</CustomerType> </rdf:RDF>
下面的XML文档是包含诸如客户类型(customerType)和客户姓名 (customerName )的客户信息的运4亍时元数据。
< xml versktn-"l,0"甜cwing-瞎UTF-8" > -<Customef xmhs:xsi=ffhttp://www.¥if3.cjrg/2M}l/)QNILScheraa^nstance*xnrfns:biz="http://K^uleDeRro">
<custo'merType >SILVER^/custo,Type:>
<custofflerName>wxii</customerNaffie> </Custom:er>
下面的XML文档是根据动态客户类型规定折扣(discount)信息的运
行时元数据。
< xmi version:":LO11 encocfog="UTF-8n > -<Cfecotirtxrahs:xsi="http://iww.w3.< g/2iBl/XMLSchema-i:nstancen)(iiis:biz=nhttp://BfeRatefihBnwf> <discount>@.Wdiscount> </Discoutit>
将上述OWL类、OWL实体和XML文档聚合为上下文才莫型,可以基 于本体术语的业务语义,构建下面的策略,其中粗体部分分别表示策略的 条件部分和动作部分,动作语义模块M值动作。该策略的语义描述的是 不同的折扣值根据来自动态的运行时上下文的客户类型进行分配。
< xtnl version-"1. 0" encoding-"UTF-8 ,'?>
<schema xmlns="http://www.ascc.net/xml/schematron"
xmlns : cm="http : //contenttnodel" >
<title>route_policy</title>
<ns uri="http: // schemas . xmlsoap. org/wsdl/ ', prefix- "wsdl ,' / > <ns ur"i="http: // contentmodel " prefix-"fn" /> <ns uri="http://com.ibm.biz.policy/context/" prefix="ctx" /> <ns uri="http://schemas.xmlsoap.org/wsdl/soap/" prefix="wsdlsoap" /> <pattern name-"rule name">
23<rule context-" /ctx: Context/ctx: DocumentLjist" > <report id="endpoint0" test-"fn:deref(ctx:Document[@role= , rolel■])//*/CustomerType/hasLiteralValue/ text() = fn:deref(ctx-Document[@role='role2'])/customerType/text()">
Assign( fn:deref(ctx:Document[@role=■role3' ] )/discount/text() -fn:deref(ctx:Document[@role=■rolel'])//*/CustomerType/hasDecimalValue/text ()
</report> </rule> </pattern> </schema>
通过以上描述可以看出,采用本实施例的基于上下文模型生成soa策 略的方法,可以采用半自然的语言生成所有类型的soa策略,并且通it^
soa元数据文档中提取用于生成soa策略的a术语,扩展了 soa策略 的应用域的知识。本实施例通过对owl文档的处理,使得所生成的soa
策略在执行时无需复杂的本体引擎。另外,通过利用用户自行定制的动作 语义模块生成策略的动作部分,能够增强描述策略行为的能力。采用本实
施例的方法生成的soa策略完全符合标准,可以重复利用。
在同一个发明构思下,图8是根据本发明的一个实施例的基于上下文 模型生成soa策略的装置的示意性方框图,其中与前面实施例相同的部 分,适当省略其说明。下面结合附图,对本实施例进行详细描述。
如图8所示,本实施例的基于上下文模型生成soa策略的装置800 包括应用范围产生单元801,用于产生策略的应用范围;如图4所示的 实施例的生成上下文才莫型的装置400,其根据由应用范围产生单元801产 生的策略的应用范围,生成上下文模型;动作列表生成器802,其基于由 用户定制的动作语义模块,生成用于上下文模型的动作列表;条件生成单 元803,用于才艮据所生成的上下文模型,生成策略的条件部分;动作生成 单元804,用于根据所生成的动作列表,生成策略的动作部分;以及策略 生成器805,其合并策略的条件部分和动作部分,从而生成策略。
具体地,需要生成soa策略的用户利用应用范围产生单元801,产生 策略的应用范围,包括策略的类型和/或应用场景。应用范围产生单元801可以通过用户交互界面的形式实现。然后,根据所产生的策略的应用范围,
在生成上下文才莫型的装置400中,生成相应的上下文模型。
然后,用户根据需要定制相应的动作语义模块,如前所述,动作语义 模块可以是任意格式的,对于非XML格式的动作语义模块,还需要提供 相应的XML描述文件,其中描述了动作语义模块的相关信息,例如格式、 调用方式、接口等。用户定制的动作语义模块可以预先存储在特定的位置。 然后,由动作列表生成器802根据动作语义模块,生成动作列表。具体地, 在动作列表生成器802中,首先由获取单元获取所定制的动作语义模块及 其XML描述文件,然后读取单元读取XML描述文件,获得相关的信息, 再由导入单元根据这些信息,将动作语义模块导入动作列表中,从而生成 动作列表。
根据所生成的上下文模型,条件生成单元803生成策略的条件部分。 如前所述,条件部分可以表示为逻辑表达式或其组合。具体地,在条件生 成单元803中,提取单元从上下文模型中的SOA元数据文档中提取条件术 语以及这些M术语之间的相互关系,例如继承关系、关联关系等,其中, 条件术语是逻辑表达式中运算符两侧的项的候选,并且运算符右侧的项也 可以是数值。然后,由a术语显示单元显示这些条件术语,这样,用户 可以利用选择单元选择所需的^Ht术语和运算符,生成策略的条件部分。
图9是图8的实施例中条件生成单元803的一个例子的示意图,在该 例中,条件部分表达式是基于XPath和XML语法构建的。如图9所示, ^^部分表达式由"Left Term" 、 "Operator"和"Right Term"构成。
在条件生成单元803生成了策略的条件部分之后,由动作生成单元804 根据动作列表,生成相应的策略的动作部分。具体地,在动作生成单元804 中,通过模块显示单元显示出动作列表中的所有动作语义模块,然后用户 利用模块选择单元选择所希望的动作语义模块,并且通过参数设置单元设 置该动作语义模块中的参数。
图IO是图8的实施例中动作生成单元804的一个例子的示意图。如图 IO所示,在"Action Type"中通过下拉菜单显示了所有的动作语义模块,分别是用于调用一个Web服务的"WEBSERVICE"、用于执行日志操作 的"LOG"和用于变量赋值的"ASSIGN"。
进一步地,本实施例的基于上下文模型生成SOA策略的装置800还可 以包括模板生成器806,用于生成上下文模型模板,其包含了上下文模型 以及SOA元数据文档。上下文模型模板和所生成的笨略一起被注册到SOA 系统的策略管理器中,用于以后的策#行。
应当指出,本实施例的基于上下文模型生成SOA策略的装置800及其 组件可以由诸如超大皿集成电路或门阵列、诸如逻辑芯片、晶体管等的 半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设 备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可 以由上述硬件电路和软件的结合实现。并且,本实施例的基于上下文模型 生成SOA策略的装置800在操作上可以实现如图6所示的实施例的基于上 下文模型生成SOA策略的方法。
本实施例的基于上下文模型生成SOA策略的装置可以采用插件的形 式与现有的SOA应用组装开发环境相结合。
虽然以上结合具体实施方式
对本发明的生成用于生成SOA策略的上 下文模型的方法和装置以瓦基于上下文模型生成SOA策略的方法和装置 进行了详细描述,但是以上这些实施方式并不是穷举的,本领域技术人员 可以在本发明的精神和范围内实现各种变化和修改,本发明的范围仅由所 附的权利要求限定。
权利要求
1. 一种生成用于生成面向服务架构SOA的策略的上下文模型的方法,包括收集符合上述策略的应用范围的SOA元数据文档;建立上述SOA元数据文档的文档间引用关系;以及根据上述文档间引用关系,聚合各个SOA元数据文档以生成上下文模型。
2. 根据权利要求1所述的生成用于生成面向服务架构SOA的策略的 上下文模型的方法,还包括检查上述SOA元数据文档中是否存在釆用Web本体语言的OWL文档;如果存在OWL文档,则解析上述OWL文档的每一个以获得该OWL文档中的OWL类; 基于各个上述OWL文档的上述OWL类,创建OWL个体;以及对于各个上述OWL文档,生成包含上述OWL类和相应的上述 OWL个体的本体文档。
3. 根据权利要求1或2所述的生成用于生成面向服务架构SOA的策 略的上下文模型的方法,还包括在所述收集步骤之前,允许用户指定上 述SOA元数据文档。
4. 根据权利要求1至3任意一项所述的生成用于生成面向服务架构 SOA的策略的上下文模型的方法,其中,所述建立上述SOA元数据文档 的文档间引用关系的步骤包括建立上述SOA元数据文档的每一个的统一 资源标识符与该SOA元数据文档所承担的角色之间的唯一的对应关系。
5. —种基于上下文模型生成面向服务架构SOA的策略的方法,包括: 产生策略的应用范围;利用权利要求1至4的任意一项所述的生成用于生成面向服务架构的策略的上下文模型的方法,生成上下文模型;基于由用户定制的动作语义模块,生成用于上述上下文模型的动作列表;根据上述上下文模型,生成策略的条件部分; 根据上述动作列表,生成策略的动作部分;以及 合并上述策略的条件部分和动作部分以生成策略。
6. 根据权利要求5所述的基于上下文模型生成面向服务架构SOA的 策略的方法,其中,所述应用范围包括策略的类型和/或策略的应用场景。
7. 根据权利要求5或6所述的基于上下文模型生成面向服务架构 SOA的策略的方法,其中,所述生成用于上述上下文才莫型的动作列表的步 骤包括获取由用户定制的动作语义模块及其XML描述文件; 读取上述XML描述文件;以及根据上述XML描述文件,将上述动作语义模块导入动作列表。
8. 根据权利要求5至7任意一项所述的基于上下文模型生成面向服 务架构SOA的策略的方法,其中,所述根据上述上下文模型生成策略的条 件部分的步骤包括从上述上下文模型中的SOA元数据文档中提取^Ht术语以及上述条 件术语之间的相互关系;显示上述条件术语;以及选择上述^Ht术语和运算符,以生成策略的条件部分。
9. 根据权利要求5至8任意一项所述的基于上下文模型生成面向服 务架构SOA的策略的方法,其中,所述根据上述动作列表生成策略的动作 部分的步骤包括显示上述动作列表中的动作语义模块; 选择所希望的动作语义模块;以及 设置上述动作语义模块中的参数。
10. 根据权利要求5至9任意一项所述的基于上下文模型生成面向服务架构SOA的策略的方法,还包括生成上下文沖莫型模板,其包含上述上下文模型和上述SOA元数据文档。
11. 根据权利要求10所述的基于上下文模型生成面向服务架构SOA 的策略的方法,还包括在策略管理器中注册上述上下文模型模板和上述 策略。
12. —种生成用于生成面向服务架构SOA的策略的上下文模型的装 置,包括收集器,用于收集符合上述策略的应用范围的SOA元数据文档; 文档间引用关系建立单元,用于建立上述SOA元数据文档的文档间引 用关系;以及聚合器,用于才艮据上述文档间引用关系,聚合各个SOA元数据文档以 生成上下文模型。
13. 根据权利要求12所述的生成用于生成面向服务架构SOA的策略 的上下文模型的装置,还包括检查单元,用于检查上述SOA元数据文档中是否存在采用Web本体 语言的OWL文档;OWL解析器,用于对上述OWL文档的每一个进行解析,以获得各 个OWL文档中的OWL类;OWL个体创建单元,用于基于由上述OWL解析器获得的各个OWL 文档中的OWL类,创建各个OWL文档的OWL个体;以及本体文档生成器,用于对各个OWL文档,生成包含上述OWL类和 相应的上述OWL个体的本体文档。
14. 根据权利要求12或13所述的生成用于生成面向服务架构SOA的 策略的上下文模型的装置,还包括指定单元,用于允许用户指定上述SOA元数据文档。
15. 根据权利要求12至14任意一项所述的生成用于生成面向服务架构 SOA的策略的上下文模型的装置,其中,所述文档间引用关系建立单元包括对应关系建立单元,用于建立上述SOA元数据文档的每一个的统一资 源标识符与该SOA元数据文档所承担的角色之间的唯一的对应关系。
16. —种基于上下文模型生成面向服务架构SOA的策略的装置,包括 应用范围产生单元,用于产生策略的应用范围;权利要求12至15任意一项所述的生成用于生成面向服务架构的策略 的上下文模型的装置,用于生成上下文模型;动作列表生成器,用于基于由用户定制的动作语义模块,生成用于上 述上下文模型的动作列表;条件生成单元,用于根据上述上下文模型生成策略的条件部分;动作生成单元,用于根据所生成的上述动作列表生成策略的动作部分;以及策略生成器,用于合并上述策略的条件部分和动作部分以生成策略。
17. 根据权利要求16所述的基于上下文模型生成面向服务架构SOA 的策略的装置,其中,所述动作列表生成器包括获取单元,用于获取由用户定制的动作语义模块及其XML描述文件; 读取单元,用于读取上述XML描述文件;以及 导入单元,用于根据上述XML描述文件,将上述动作语义模块导入 动作列表。
18. 根据权利要求16或17所述的基于上下文模型生成面向服务架构 SOA的策略的装置,其中,所述条件生成单元包括提取单元,用于从上述上下文模型中的SOA元数据文档中提取条件术 语以及上述M术语之间的相互关系;条件术语显示单元,用于显示上述M术语;以及选择单元,用于选择上述M术语和运算符,以生成策略的条件部分。
19. 根据权利要求16至18任意一项所述的基于上下文模型生成面向服 务架构SOA的策略的装置,其中,所述动作生成单元包括模块显示单元,用于显示上述动作列表中的动作语义模块; 才莫块选择单元,用于选择所希望的动作语义模块;以及^t设置单元,用于设置上述动作语义模块中的参数。
20.根据权利要求16至19任意一项所述的基于上下文模型生成面向服 务架构SOA的策略的装置,还包括模板生成器,用于生成上下文模型模板,其包含上述上下文模型以及 上述SOA元数据文档。
全文摘要
一种基于上下文模型生成面向服务架构SOA的策略的方法,包括产生策略的应用范围;生成上下文模型;基于由用户定制的动作语义模块,生成用于该上下文模型的动作列表;根据该上下文模型,生成策略的条件部分;根据动作列表,生成策略的动作部分;合并策略的条件部分和动作部分以生成策略。采用本发明,可以用半自然的语言生成所有类型的SOA策略,并且利用包含OWL文档的SOA元数据文档生成上下文模型,可以扩展SOA策略的应用域的知识,而且所生成的SOA策略在执行时无需复杂的本体引擎。另外,通过利用用户自行定制的动作语义模块生成策略的动作部分,能够增强描述策略行为的能力。采用本发明生成的SOA策略完全符合标准,可以重复利用。
文档编号G06F17/30GK101441561SQ200710187088
公开日2009年5月27日 申请日期2007年11月23日 优先权日2007年11月23日
发明者刘昕鹏, 周宇辰, 王夕宁 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1