專利名稱:基于上下文模型生成面向服務架構的策略的方法和裝置的制作方法
技術領域:
本發(fā)明涉及計算機網(wǎng)絡系統(tǒng)的面向服務架構(Service-Oriented Architecture,簡稱SOA)4支術,具體地說,涉及生成用于生成SOA策略 的上下文模型的方法和裝置、以及基于上下文模型生成SOA策略的方法和 裝置。
背景技術:
面向服務架構SOA是指為了解決因特網(wǎng)環(huán)境下業(yè)務集成的需要而通 過連接能完成特定任務的獨立功能實體來實現(xiàn)的一種軟件系統(tǒng)架構。換句 話說,SOA是一個組件模型,它將應用程序的不同功能單元(稱為服務) 通過這些服務之間定義良好的接口和契約聯(lián)系起來,其中接口的定義是獨 立于實現(xiàn)服務的硬件平臺、操作系統(tǒng)和編程語言的。SOA采用面向服務的 建模技術和WEB服務技術,實現(xiàn)系統(tǒng)之間的松耦合,從而實現(xiàn)系統(tǒng)之間 的整合與協(xié)同。
SOA策略是SOA系統(tǒng)的一個重要組成部分,其用于SOA系統(tǒng)的行為 的聲明性描述和執(zhí)行。在SOA系統(tǒng)中,SOA策略的使用貫穿SOA的整個 生命周期,包括設計時校驗、部署時策略發(fā)布和打包、以及運行時服務選 擇、變化管理和影響分析。
一般地,SOA策略在不同的層級上可以分為以下幾種類型
-業(yè)務策略,用于制定業(yè)務決策和遵循行業(yè)指導等;
-應用策略,用于在服務調用期間的服務選擇等;
-治理策略,用于執(zhí)行遵循標準的規(guī)則、定義治理過程的系統(tǒng)行為等。
SOA技術的一個主要特點在于,所有的數(shù)據(jù)和上下文都采用XML格式描述,包含這樣的數(shù)據(jù)和上下文的文檔稱為SOA元數(shù)據(jù)(Metadata) 文檔。 一般地,SOA元數(shù)據(jù)文檔可以包括用于描述與服務相關的內容的 服務元數(shù)據(jù)文檔、用于描述與運行時信息相關的內容的運行時信息文檔、 或者用于描述其它業(yè)務內容的文檔。例如,服務元數(shù)據(jù)文檔可以采用Web 服務描述語言(Web Service Description Language,簡稱WSDL) 、 XML 模式定義語言(XML Schema Definition,簡稱XSD) 、 Web月艮務策略
(WS-Policy )、月良務組件定義語言(Service Component Definition Language,簡稱SCDL )、業(yè)務流程執(zhí)行語言(Business Process Execution Language,簡稱BPEL)、月艮務組件架構(Service Component Architecture, 簡稱SCA)策略等;運行時信息文檔可以采用筒單對象訪問協(xié)議(Simple Object Access Protocol,簡稱SOAP)、表示性狀態(tài)傳輸(Representational State Transfer,簡稱REST)等;描述其它業(yè)務內容的文檔可以采用服務 數(shù)據(jù)對象(Service Data Object,簡稱SDO )、 Web本體語言(Web Ontology Language,簡稱OWL)等。
下面簡要介紹現(xiàn)有技術中的幾種用于生成SOA策略的技術方案。 ( 一 )傳統(tǒng)的業(yè)務策略/規(guī)則定義工具和轉換機制 通常,這樣的業(yè)^NSL則定義工具使用建模語言或者半自然語言表示策 略或規(guī)則,并且在執(zhí)行這些策略或規(guī)則之前,需要將其轉換成可執(zhí)行代碼, 例如Java、 .NET等。
諸如ILOG乂/^司的JRules和Blaze公司的Advisor等的業(yè)^N現(xiàn)則定義 工具,能夠幫助業(yè)務分析人員使用基于業(yè)務詞匯表和業(yè)務規(guī)則的語義
(Semantics of Business Vocabulary and Business Rules, 簡稱SBVR)規(guī) 范的結構化英語句子和短語來編寫和管理表達業(yè)務邏輯的業(yè)^則。
利用這種業(yè)^Mo,j定義工具定義的策略或者規(guī)則,根據(jù)復雜的模型驅 動架構可以分層為不同的級別,例如,業(yè)務級別、平臺無關的級別、平臺 有關的級別等。
WebSphere Business Modeler是國際商業(yè)機器(IBM)公司提供的一 個用于對業(yè)務流程建^f莫的工具,也包含了可定義業(yè)務策略/規(guī)則的功能,其中,業(yè)務規(guī)則可在業(yè)務流程中被插入。然而,該工具僅僅在概念水平上進 行定義,并且僅僅生成抽象的規(guī)則框架和文本描述。
WebSphere Integration Developer (WID )是IBM公司提供的一個基 于Eclipse技術的集成開發(fā)環(huán)境,它提供了用于構建和部署基于標準的業(yè) 務流程應用程序的開發(fā)服務。利用WID工具,可以定義決^和規(guī)則對 象,其中決策表是業(yè)務規(guī)則定義的最筒單的形式,而規(guī)則對象最終將用 JAVA實現(xiàn),因此,會失去聲明性策略的靈活性。
上述的傳統(tǒng)的業(yè)務策略/規(guī)則定義工具具有下述的局限性
1、 這些業(yè)務策略/規(guī)則定義工具通常支持復雜的模型驅動架構,并且 用戶需要人工地基于規(guī)則詞匯表編寫策略,然后利用業(yè)務策略/規(guī)則定義工 具生成不同級別的策略/規(guī)則。由于在不同級別的策略/規(guī)則之間^^保持無 縫關系,因此,該業(yè)務策略/規(guī)則定義工具在本質上不能執(zhí)行不同級別之間 的轉換而不丟失語義和完整性。因此,用戶必須自己改進最后所生成的結 果,造成該業(yè)務策略/規(guī)則定義工具使用復雜。
2、 由于最后的用于執(zhí)行的策略都是通過可執(zhí)行代碼表示,例如 Java、 .NET程序,并且反映業(yè)務策略或規(guī)則的業(yè)務邏輯也內嵌于可執(zhí)行代 碼中,因此,當策略需要隨著業(yè)務要求改變時,用戶必須重建更新后的策 略,并再次進行轉換。這樣,會失去聲明性策略的靈活性。
3、 利用上述業(yè)務策略/規(guī)則定義工具生成的策略/規(guī)則不符合標準,因 此不能復用。
(二)基于本體的策略和相應的定義工具
Web本體語言(Web Ontology Language,簡稱OWL)是萬維網(wǎng)聯(lián) 合會(W3C)推薦的一種本體的標準描述語言,它是關于與特定行業(yè)有關 的知識的一個或者多個域的概念化規(guī)范,其包括三個子語言OWLLite、 OWL DL和OWL Full。
語義網(wǎng)規(guī)則語言(Semantics Web Rule Language,簡稱SWRL)是結 合OWL語言的OWL DL、 OWL Lite子語言和規(guī)則標記語言(Rule Markup Language,簡稱RuleML)的一元/二元數(shù)據(jù)i己錄RuleML子語言而形成的,其包括在OWL語言的OWL DL和OWL Lite子語言中用于"霍 恩式(Horn-like),,規(guī)則的高級摘要語法,并且提供了模型論語義以對包 括用該摘要語法編寫的規(guī)則/策略的OWL本,供正式的含義。
WebSphere Business Services Fabric (WBSF)是IBM公司提供的支
持業(yè)務領域服務;sji務策略建模、開發(fā)和運行時支持的工具。該工具提供 了 一種可動態(tài)裝配用于選擇服務端點的可接受的規(guī)則的機制。策略在概念
上以IF (M ) THEN (斷言)的格式進行聲明如果滿足指定的務降(上 下文和內容),則產(chǎn)生指定的契約(以組合斷言的形式),以匹配在可用 端點中定義的功能,其中,這些策略和策略斷言都表示為OWL元素。 然而,這樣的基于本體的策略定義工具具有以下的局限性
1、 該策略定義工具在很大程度上依賴于本體,而本體依賴于一組復 雜的本體標準,例如OWL等,因此,該策略定義工具只能用于概念和對 象的結構描述,其描述行為的能力很弱。
2、 策略的定義僅僅基于OWL描述的實體進行,并且這些實體之間的 關系沒有在策略的定義中使用。
3、 由于所有的策略都表示為OWL元素,因此策略的定義和執(zhí)行在很 大程度上依賴于OWL引擎。
(三)服務建才莫語言(Service Modeling Language,簡稱SML)規(guī) 則和Schematron模式i吾言
SML語言是由IBM、微軟、BEA、 Intel等聯(lián)合定義的用于基于XML 的IT服務管理的語言,它提供了豐富的用于描述復雜IT服務和系統(tǒng)的模 型的構件集合。SML模型是相關的XML文檔的集合,這些XML文檔包 含關于一個IT服務的多個部分的信息、以及為了使該IT服務正常運行而 每個部分必須滿足的約束,其中,約束可以以下述兩種方式表達
1 、模式(Schema )—是關于模型中的文檔的結構和內容的約束。SML 語言使用XML Schema 1.0的概要作為模式語言,并且定義XML Schema 的擴展集合以支持文檔間引用。
2、規(guī)則一是約束模型中的文檔的結構和內容的布爾表達式。為此,SML語言使用Schematron模式語言的概要和XPath語言1.0。
XML Schema支持多個內置的基于語法的約束,但是它不支持用于定 義任意的用于約束文檔的結構和內容的規(guī)則的語言。Schematron模式語言 是用于定義與XML文檔的集合有關的斷言的ISO標準。SML語言使用 Schematron模式的概要以增加對用戶定義的約束的支持。SML語言使用 XPath語言l.O(其增加了 smlfn:deref()擴展功能)作為其約束語言。用于 定義的約束可以使用Schematron模式語言中的sch:assert和sch:report元 素規(guī)定。
社區(qū)驅動的開源系統(tǒng)管理(COSMOS)的資源建模子項目是SML建 模的開源項目,其旨在對建立通用模型以代表在系統(tǒng)管理場景中共享的信 息提供支持。該項目計劃使用SML作為XML模式語言,以定義該通用模 型。月良務建模語言互換格式(Service Modeling Language — Interchange Format,簡稱SML-IF)將用于在系統(tǒng)管理活動所涉及的工具之間共享模 型元件。
然而,SML語言僅僅用于確認XML文檔集合并產(chǎn)生文本報告,其對 于策略的動作部分沒有有力的表達機制以描述和擴展系統(tǒng)行為。并且, SML對于用戶來說很難人工地定義策略/規(guī)則,尤其對于非IT用戶定義業(yè) 務相關的策略。此外,無論在規(guī)范中還是在已有的策略定義工具中,在SML 和本體之間都不存在聯(lián)系。
綜上所述,現(xiàn)有的定義SOA策略的工具都存在局限性,需要一種新的 生成SOA策略的技術方案以解決現(xiàn)有的定義SOA策略的工具存在的問 題。
發(fā)明內容
本發(fā)明正是基于上述技術問題而提出的,其目的在于提供一種生成用 于生成SOA策略的上下文模型的方法和裝置,可以擴大用于生成策略的知 識域。另夕卜,本發(fā)明還提供一種基于上下文模型生成SOA策略的方法和裝 置,可以保持聲明性策略的靈活性,并提高策略生成的使用性。根據(jù)本發(fā)明的第一個方面,提供一種生成用于生成面向服務架構SOA 的策略的上下文模型的方法,包括收集符合上述策略的應用范圍的SOA 元數(shù)據(jù)文檔;建立上述SOA元數(shù)據(jù)文檔的文檔間引用關系;以及根據(jù)上述 文檔間引用關系,聚合各個SOA元數(shù)據(jù)文檔以生成上下文模型。
根據(jù)本發(fā)明的第二個方面,提供一種基于上下文模型生成面向服務架 構的策略的方法,包括產(chǎn)生策略的應用范圍;利用上述的生成用于生成 面向服務架構的策略的上下文模型的方法,生成上下文才莫型;基于由用戶 定制的動作語義才莫塊,生成用于該上下文模型的動作列表;才艮據(jù)上述上下 文模型,生成策略的條件部分;根據(jù)上述動作列表,生成策略的動作部分; 以及合并上述策略的條件部分和動作部分以生成策略。
根據(jù)本發(fā)明的第三個方面,提供一種生成用于生成面向服務架構的策 略的上下文模型的裝置,包括收集器,用于收集符合上述策略的應用范 圍的SOA元數(shù)據(jù)文檔;文檔間引用關系建立單元,用于建立上述SOA元 數(shù)據(jù)文檔的文檔間引用關系;以及聚合器,用于根據(jù)上述文檔間引用關系, 聚合各個SOA元數(shù)據(jù)文檔以生成上下文模型。
根據(jù)本發(fā)明的第四個方面,提供一種基于上下文模型生成面向服務架 構的策略的裝置,包括應用范圍產(chǎn)生單元,用于產(chǎn)生策略的應用范圍; 上述的生成用于生成面向服務架構的策略的上下文模型的裝置,用于生成 上下文模型;動作列表生成器,用于基于由用戶定制的動作語義;f莫塊,生 成用于上述上下文模型的動作列表;條件生成單元,用于根據(jù)上述上下文 才莫型生成策略的條件部分;動作生成單元,用于根據(jù)所生成的上述動作列 表生成策略的動作部分;以及策略生成器,用于合并上述策略的條件部分 和動作部分以生成策略。
圖l是根據(jù)本發(fā)明的一個實施例的生成用于生成SOA策略的上下文模 型的方法的流程圖2是根據(jù)本發(fā)明的另 一個實施例的生成用于生成SOA策略的上下文
12模型的方法的流程圖3是圖2的實施例中使用SOA元數(shù)據(jù)文檔生成上下文模型的示意
圖4是根據(jù)本發(fā)明的一個實施例的生成用于生成SOA策略的上下文模 型的裝置的示意性方框圖5是圖4中的聚合器在Eclipse平臺上的具體實現(xiàn)的示意圖6是根據(jù)本發(fā)明的一個實施例的基于上下文模型生成SOA策略的方 法的流程圖7是圖6中生成SOA策略的過程的示意圖8是根據(jù)本發(fā)明的一個實施例的基于上下文才莫型生成SOA策略的裝 置的示意性方^f匡圖9是圖8的實施例中條件生成單元的示意圖; 圖IO是圖8的實施例中動作生成單元的示意圖。
具體實施例方式
相信通過以下結合附圖對本發(fā)明的具體實施例的詳細描述,本發(fā)明的 上述和其它目的、特征和優(yōu)點將更加明顯。
圖l是根據(jù)本發(fā)明的一個實施例的生成用于生成SOA策略的上下文模 型的方法的流程圖。下面結合附圖,詳細說明本實施例。
如圖1所示,首先,在步驟101,收集符合策略的應用范圍的SOA元 數(shù)據(jù)文檔。如前所述,SOA元數(shù)據(jù)文檔包括服務元數(shù)據(jù)文檔、運行時信息 文檔或者例如OWL文檔的用于描述其它業(yè)務內容的文檔。在本實施例中, 策略的應用范圍是指策略會被應用的領域,具體的內容將在后面詳細描述。 根據(jù)策略的應用范圍,相關的SOA元數(shù)據(jù)文檔4皮收集。在收集這些SOA 元數(shù)據(jù)文檔之前,可以由用戶指定符^^要求的SOA元lt據(jù)文檔。
然后,在步驟105,對于所收集的SOA元數(shù)據(jù)文檔進行處理,即,建 立SOA元數(shù)據(jù)文檔的文檔間引用關系。XML模式本身并不支持文檔間的 引用,然而,本實施例通過擴展XML模式以支持在不同的SOA元數(shù)據(jù)文檔中的XML元素之間建立互相引用的關系,例如,增加新的屬性或數(shù)據(jù) 類型,用于說明一個元素對另外一個元素的引用。在本實施例中,文檔間 引用關系可以通過在每一個SOA元數(shù)據(jù)文檔的統(tǒng)一資源標識符(URI)與 該SOA元數(shù)據(jù)文檔所承擔的角色之間建立唯一的對應關系來建立。由于所 收集的SOA元數(shù)據(jù)文檔相互之間不一定存在關系,例如WSDL文檔中定 義的元素和運行時SOAP消息中的元素,因此,通過如上所述地建立唯一 的對應關系的操作,可以建立每個文檔的根元素的文檔間引用,從而使得 所有的文檔可以相互引用。
然后,在步驟110,根據(jù)在步驟105中建立的文檔間引用關系,聚合 各個SOA元數(shù)據(jù)文檔,從而生成上下文模型。未建立引用關系的SOA元 數(shù)據(jù)文檔之間是孤立的,在執(zhí)行了步驟110之后,所有建立了引用關系的 SOA元數(shù)據(jù)文檔能夠共同形成一個上下文,從而使得這些SOA元數(shù)據(jù)文 檔之間能夠互相依賴,共同描述用于生成策略的上下文才莫型。
在本實施例中,上下文模型表現(xiàn)為采用文檔列表形式的XML格式的 文檔。在所生成的上下文模型中,列有每個SOA元數(shù)據(jù)文檔的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"體現(xiàn)。
當然,本領域的普通技術人員能夠理解,上下文模型還可以基于其它 的能夠使SOA元數(shù)據(jù)文檔相互引用并且能夠描述發(fā)汪SOA元數(shù)據(jù)文檔的 結構和內容的策略/規(guī)則的可執(zhí)行的語言。
通過以上描述可以看出,本實施例的生成用于生成SOA策略的上下文 模型的方法通過在相關的SOA元數(shù)據(jù)文檔之間建立關系,并且按一定的格 式聚合這些SOA元數(shù)據(jù)文檔,能夠生成上下文模型,為生成具有統(tǒng)一格式 的SOA策,供了基礎。
圖2是根據(jù)本發(fā)明的另一個實施例的生成用于生成SOA策略的上下文 模型的方法的流程圖,其中與前面的實施例相同的部分采用相同的標記, 并適當省略其說明。下面結合附圖,對本實施例進行詳細描述。
如前所述,OWL語言是本體的標準描述語言,其用預定義的格式描 述對象之間的關系。OWL語言是基于XMLt艮的,與XML語言相比, 其能夠描述語義信息。OWL文檔可以看作是包含一定業(yè)務語義信息的 XML文檔。
OWL的基本組成部分包括類、屬性和個體(實例)。下面是OWL 文檔的一個例子,其中描述了 一些業(yè)務術語,例如帳戶大小(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文檔包含有業(yè)務語義信息,因此在生成上下文模型的過程 中,在收集了相關的SOA元數(shù)據(jù)文檔之后并在對每個SOA元數(shù)據(jù)文檔進 行建立文檔間引用關系的操作之前,還需對OWL文檔進行處理。
具體地,在步驟201,檢查所收集的SOA元數(shù)據(jù)文檔中是否存在OWL 文檔,如果不存在OWL文檔,則繼續(xù)執(zhí)行步驟105。如果存在OWL文 檔,則在步驟205,解析每一個OWL文檔,以獲得該OWL文檔中的OWL 類,即,在上面的OWL文檔的例子中,用owl:Class定義的。然后,在步 驟210,基于所獲得這些OWL類,創(chuàng)建相應的OWL個體(individual)。 在OWL中,個體是類的實例。這樣,通過對OWL類進行實例化,就可以得到OWL個體。然后,在步驟215,對于每一個OWL文檔,生成包 含有OWL類和相應的OWL個體的本體文檔。這些本體文檔將和其它非 OWL文檔的SOA元數(shù)據(jù)文檔一起生成上下文才莫型。
在步驟105,對于本體文檔和其它非OWL文檔的SOA元數(shù)據(jù)文檔建 立文檔間引用關系。然后,在步驟110,根據(jù)這些文檔間引用關系,聚合 本體文檔和其它非OWL文檔的SOA元數(shù)據(jù)文檔,以生成上下文才莫型。
圖3示出了使用SOA元數(shù)據(jù)文檔生成上下文模型的示意圖。如圖3 所示,SOA元數(shù)據(jù)文檔有以BPEL、 WSDL和SCDL描述的與功能性描 述有關的文檔、以WS-策略和SCA策略表示的與服務非功能屬性要求有 關的文檔、以業(yè)務對象/消息對象(Business Object / Message Object)和 SOAP消息表示的與運行時信息有關的文檔、XML格式的上下文信息、以 及描述本體的OWL文檔,例如描述醫(yī)療、保險等行業(yè)的OWL文檔。OWL 文檔經(jīng)過解析和實例化后得到OWL個體(實例),然后與其它文檔共同 構建上下文模型。
通過以上描述可以看出,本實施例的生成用于生成SOA策略的上下文 模型的方法能夠進一步對描述行業(yè)域的知識的OWL文檔進行處理,擴展 了 SOA策略的應用域的知識,從而能夠生成更具語義和更復雜的策略。
在同一個發(fā)明構思下,圖4是根據(jù)本發(fā)明的一個實施例的生成用于生 成SOA策略的上下文模型的裝置的示意性方框圖。下面結合附圖,詳細說 明本實施例,其中對于與前述的實施例相同的部分,適當省略其說明。
如圖4所示,本實施例的生成用于生成SOA策略的上下文^=莫型的裝置 400包括收集器401,其收集符合策略的應用范圍的SOA元數(shù)據(jù)文檔; 文檔間引用關系建立單元402,其建立由收集器401收集的SOA元數(shù)據(jù)文 檔的文檔間引用關系;以及聚合器403,用于才艮據(jù)由文檔間引用關系建立 單元402建立的文檔間引用關系,聚合各個SOA元數(shù)據(jù)文檔以生成上下文 模型。
具體地,收集器401根據(jù)SOA策略的應用范圍,即SOA策略被應用 的領域,收集相關的SOA元數(shù)據(jù)文檔。優(yōu)選地,這些相關的SOA元數(shù)據(jù)文檔可以由用戶指定,因此,本實施例的生成上下文;jt型的裝置400還可 包括指定單元,其允許用戶指定符合策略的應用范圍的SOA元數(shù)據(jù)文檔。 指定單元可以通過向用戶提供交互界面來實現(xiàn)。
然后,由收集器401將這些SOA元數(shù)據(jù)文檔收集在一起。所收集的這 些SOA元數(shù)據(jù)文檔被提供給對應關系建立單元402,并在文檔間引用關系 建立單元402中,建立文檔間引用關系,具體地,文檔間引用關系建立單 元402可包括對應關系建立單元,其建立各個SOA元數(shù)據(jù)文檔的統(tǒng)一資源 標識符URI與該SOA元數(shù)據(jù)文檔所承擔的角色之間的唯一的對應關系。 SOA元數(shù)據(jù)文檔所承擔的不同角色表明了該文檔在整個上下文模型中承 擔了不同的作用,提供了不同的用于生成策略的元素。通過建立該唯一的 對應關系,可以建立各個SOA元數(shù)據(jù)文檔的才艮元素的文檔間引用。另夕卜, SOA元數(shù)據(jù)文檔中的其它元素也可以通過與根元素的相對路徑來描述自 身的位置,這樣SOA元數(shù)據(jù)文檔中的各個元素之間都能夠建立互相引用的 關系,從而使各個SOA元數(shù)據(jù)文檔能夠相互引用。
然后,聚合器403根據(jù)所建立的文檔間引用關系,將這些SOA元數(shù)據(jù) 文檔聚合為上下文模型。在本實施例中,上下文模型表現(xiàn)為采用文檔列表 形式的XML格式文檔。在所生成的上下文模型中,列有每個SOA元數(shù) 據(jù)文檔的URI及其對應的角色。
圖5是圖4中的聚合器403在Eclipse平臺上的具體實現(xiàn)的示意圖。如 圖5所示,在"Context Model Editor"的左側一欄中是生成的基于XML 語言的上下文模型,其中列出了角色role與文檔的URI的對應關系。
進一步地,本實施例的生成用于生成SOA策略的上下文模型的裝置 400還包括檢查單元404,其檢查由收集器401所收集的SOA元數(shù)據(jù)文 檔中是否存在OWL文檔;OWL解析器405,其解析OWL文檔,以獲得 每個OWL文檔中的OWL類;OWL個體創(chuàng)建單元406,其根據(jù)通過OWL 解析器404獲得的OWL類,創(chuàng)建相應的OWL個體;以及本體文檔生成 器407,其對每個OWL文檔,生成包含OWL類和相應的OWL個體的本 體文檔。這樣,每個OWL文檔經(jīng)過OWL解析器405、 OWL個體創(chuàng)建單元406 和本體文檔生成器407的處理,得到相應的本體文檔。
這些本體文檔用于與其它非OWL文檔的SOA元數(shù)據(jù)文檔一起構建上 下文才莫型。具體地,這些本體文檔和非OWL文檔的SOA元數(shù)據(jù)文檔纟皮提 供給文檔間引用關系建立單元402,以建立文檔間引用關系,然后由聚合 器403才艮據(jù)所建立的文檔間引用關系,聚合非OWL文檔的SOA元數(shù)據(jù)文 檔和本體文檔,從而生成上下文模型。
應當指出,本實施例的生成用于生成SOA策略的上下文模型的裝置 400及其組件可以由諸如超大^!^莫集成電路或門陣列、諸如邏輯芯片、晶 體管等的半導體、或者諸如現(xiàn)場可編程門陣列、可編程邏輯設備等的可編 程硬件設備的硬件電路實現(xiàn),也可以用由各種類型的處理器執(zhí)行的軟件實 現(xiàn),也可以由上述硬件電路和軟件的結合實現(xiàn)。并且,本實施例的生成用 于生成SOA策略的上下文模型的裝置400在操作上可以實現(xiàn)如圖1所示的 實施例的生成用于生成SOA策略的上下文;f莫型的方法。
通過以上描述可以看出,采用本實施例的生成用于生成SOA策略的上 下文模型的裝置,可以在相關的SOA元數(shù)據(jù)文檔之間建立關系,并且將其 聚合為上下文模型,為生成具有統(tǒng)一格式的SOA策略提供了基礎。此夕卜, 本實施例的生成用于生成SOA策略的上下文模型的裝置還可以處理描述 行業(yè)域的知識的OWL文檔,擴展了 SOA策略的應用域的知識,從而能夠 生成更具語義和更復雜的SOA策略。
在同一個發(fā)明構思下,圖6是才艮據(jù)本發(fā)明的一個實施例的基于上下文 模型生成SOA策略的方法的流程圖,其中,與前述的實施例相同的部分, 適當省略其說明。下面結合附圖,詳細說明本實施例。
如圖6所示,首先,在步驟601,產(chǎn)生將被生成的策略的應用范圍。 如前所述,策略的應用范圍是指策略將要應用的領域,其可以是策略的類 型,即,策略是業(yè)務策略、應用策略或者治理策略;也可以是策略所應用 的應用場景,例如帳戶管理等;也可以是兩者的結合。
接著,在步驟605,根據(jù)所產(chǎn)生的策略的應用范圍,利用圖1或圖2所示的實施例的生成用于生成面向服務架構的策略的上下文模型的方法,
將符合策略的應用范圍的SOA元數(shù)據(jù)文檔聚合為上下文模型。在本實施例 中,選擇XML語言實現(xiàn)上下文模型。
然后,在步驟610,基于由用戶定制的動作語義模塊,生成用于在步 驟605中生成的上下文模型的動作列表。
具體地,用戶可以根據(jù)需要,定制所需的動作語義模塊。這些動作語 義模塊可以是任意格式的,然而,對于非XML格式的動作語義模塊,需 要提供對應的XML描述文件,該XML描述文件描述了有關該動作語義 模塊的格式、接口和調用方式等的信息。用戶可以將所定制的動作語義模 塊存儲在特定的位置。通過用戶定制動作語義模塊,可以擴展策略的動作 語義。
然后,獲取這些動作語義模塊及其XML描述文件,并讀取XML描 述文件以獲得動作語義模塊的相關信息。利用這些相關信息,將動作語義 才莫塊導入動作列表中。
在建立了上下文模型和相應的動作列表后,在步驟615,根據(jù)上下文 模型中SOA元數(shù)據(jù)文檔的結構和內容,生成策略的條件部分,以構建某些 動作將被執(zhí)行的環(huán)境。通常,條件部分表示為邏輯表達式或者其組合。例 如,作為條件部分的邏輯表達式可以采用如下形式 ((<Left Term> <Operator> 〈Right Term> A) and (<Left Term> <Operator> 〈Right Term> B) or (<Left Term> <Operator> <Right Term> C) 具體地,從上下文模型中的SOA元數(shù)據(jù)文檔中提取^Ht術語以及^Hf
術語之間的相互關系,例如繼承關系、關聯(lián)關系等。這些M術語是策略
的條件部分的"Left Term"和"Right Term"的候選,此外,"Right Term" 也可以是數(shù)值。然后,顯示這些條件術語,并由用戶選擇所需的條件術語 和運算符,以構建策略的條件部分。
然后,在步驟620,根據(jù)在步驟610生成的動作列表,生成策略的動 作部分。具體地,顯示動作列表中的所有動作語義模塊,用戶可以根據(jù)策略的條件部分,選擇所希望的動作語義模塊,并設置該動作語義模塊中的 參數(shù),從而得到策略的動作部分。策略的動作部分可以表示為格式化的字 符串或者可執(zhí)行框架,以調用動作語義模塊。
最后,在步驟625,合并在步驟615和620中生成的策略的條件部分 和動作部分,從而生成策略。所生成的策略是*-動作策略,其中條件部 分表示上下文模型中SOA元數(shù)據(jù)文檔的結構和內容的匹配標準,動作部分 具有可擴展的動作語義。例如,如果上下文模型采用XML語法,那么策 略可以采用Schematron才莫式i吾言作為基J出語法。
圖7示意性地示出了生成SOA策略的過程。如圖7所示,SOA元數(shù) 據(jù)文檔被聚合成上下文模型,然后依據(jù)該上下文模型生成策略的條件部分, 而由用戶定制的動作語義模塊,例如調用Web服務、記錄日志、變量賦值 等,被用于生成策略的動作部分,最后條件部分與動作部分合并構成策略。
此外,本實施例的基于上下文模型生成SOA策略的方法還包括生成 上下文模型模板,其包含了在步驟605中生成的上下文模型和上下文模型 中的SOA元數(shù)據(jù)文檔;并且,將該上下文模型^板和所生成的SOA策略 一起注冊在SOA系統(tǒng)的策略注冊存儲庫(Policy Registry/Repository)中, 用于未來的策#行。
下面給出供應鏈本體OWL文檔和運行時元數(shù)據(jù)的示例以及生成的 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)等業(yè) 務術語的OWL文檔,其中OWL類包括"CustomerType"和"Discount", 并且類"CustomerType"的數(shù)據(jù)類型屬性為"hasLiteralValue",類
"CustomerType"和"Discount"具有對象屬性"hasDiscount",類
"Discount"的數(shù)據(jù)類型屬性為"hasDecimalValue"。
以下示出的;U現(xiàn)定不同的客戶類型及其折扣的實例的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亍時元數(shù)據(jù)。
< 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文檔是根據(jù)動態(tài)客戶類型規(guī)定折扣(discount)信息的運
行時元數(shù)據(jù)。
< 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文檔聚合為上下文才莫型,可以基 于本體術語的業(yè)務語義,構建下面的策略,其中粗體部分分別表示策略的 條件部分和動作部分,動作語義模塊M值動作。該策略的語義描述的是 不同的折扣值根據(jù)來自動態(tài)的運行時上下文的客戶類型進行分配。
< 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元數(shù)據(jù)文檔中提取用于生成soa策略的a術語,擴展了 soa策略 的應用域的知識。本實施例通過對owl文檔的處理,使得所生成的soa
策略在執(zhí)行時無需復雜的本體引擎。另外,通過利用用戶自行定制的動作 語義模塊生成策略的動作部分,能夠增強描述策略行為的能力。采用本實
施例的方法生成的soa策略完全符合標準,可以重復利用。
在同一個發(fā)明構思下,圖8是根據(jù)本發(fā)明的一個實施例的基于上下文 模型生成soa策略的裝置的示意性方框圖,其中與前面實施例相同的部 分,適當省略其說明。下面結合附圖,對本實施例進行詳細描述。
如圖8所示,本實施例的基于上下文模型生成soa策略的裝置800 包括應用范圍產(chǎn)生單元801,用于產(chǎn)生策略的應用范圍;如圖4所示的 實施例的生成上下文才莫型的裝置400,其根據(jù)由應用范圍產(chǎn)生單元801產(chǎn) 生的策略的應用范圍,生成上下文模型;動作列表生成器802,其基于由 用戶定制的動作語義模塊,生成用于上下文模型的動作列表;條件生成單 元803,用于才艮據(jù)所生成的上下文模型,生成策略的條件部分;動作生成 單元804,用于根據(jù)所生成的動作列表,生成策略的動作部分;以及策略 生成器805,其合并策略的條件部分和動作部分,從而生成策略。
具體地,需要生成soa策略的用戶利用應用范圍產(chǎn)生單元801,產(chǎn)生 策略的應用范圍,包括策略的類型和/或應用場景。應用范圍產(chǎn)生單元801可以通過用戶交互界面的形式實現(xiàn)。然后,根據(jù)所產(chǎn)生的策略的應用范圍,
在生成上下文才莫型的裝置400中,生成相應的上下文模型。
然后,用戶根據(jù)需要定制相應的動作語義模塊,如前所述,動作語義 模塊可以是任意格式的,對于非XML格式的動作語義模塊,還需要提供 相應的XML描述文件,其中描述了動作語義模塊的相關信息,例如格式、 調用方式、接口等。用戶定制的動作語義模塊可以預先存儲在特定的位置。 然后,由動作列表生成器802根據(jù)動作語義模塊,生成動作列表。具體地, 在動作列表生成器802中,首先由獲取單元獲取所定制的動作語義模塊及 其XML描述文件,然后讀取單元讀取XML描述文件,獲得相關的信息, 再由導入單元根據(jù)這些信息,將動作語義模塊導入動作列表中,從而生成 動作列表。
根據(jù)所生成的上下文模型,條件生成單元803生成策略的條件部分。 如前所述,條件部分可以表示為邏輯表達式或其組合。具體地,在條件生 成單元803中,提取單元從上下文模型中的SOA元數(shù)據(jù)文檔中提取條件術 語以及這些M術語之間的相互關系,例如繼承關系、關聯(lián)關系等,其中, 條件術語是邏輯表達式中運算符兩側的項的候選,并且運算符右側的項也 可以是數(shù)值。然后,由a術語顯示單元顯示這些條件術語,這樣,用戶 可以利用選擇單元選擇所需的^Ht術語和運算符,生成策略的條件部分。
圖9是圖8的實施例中條件生成單元803的一個例子的示意圖,在該 例中,條件部分表達式是基于XPath和XML語法構建的。如圖9所示, ^^部分表達式由"Left Term" 、 "Operator"和"Right Term"構成。
在條件生成單元803生成了策略的條件部分之后,由動作生成單元804 根據(jù)動作列表,生成相應的策略的動作部分。具體地,在動作生成單元804 中,通過模塊顯示單元顯示出動作列表中的所有動作語義模塊,然后用戶 利用模塊選擇單元選擇所希望的動作語義模塊,并且通過參數(shù)設置單元設 置該動作語義模塊中的參數(shù)。
圖IO是圖8的實施例中動作生成單元804的一個例子的示意圖。如圖 IO所示,在"Action Type"中通過下拉菜單顯示了所有的動作語義模塊,分別是用于調用一個Web服務的"WEBSERVICE"、用于執(zhí)行日志操作 的"LOG"和用于變量賦值的"ASSIGN"。
進一步地,本實施例的基于上下文模型生成SOA策略的裝置800還可 以包括模板生成器806,用于生成上下文模型模板,其包含了上下文模型 以及SOA元數(shù)據(jù)文檔。上下文模型模板和所生成的笨略一起被注冊到SOA 系統(tǒng)的策略管理器中,用于以后的策#行。
應當指出,本實施例的基于上下文模型生成SOA策略的裝置800及其 組件可以由諸如超大皿集成電路或門陣列、諸如邏輯芯片、晶體管等的 半導體、或者諸如現(xiàn)場可編程門陣列、可編程邏輯設備等的可編程硬件設 備的硬件電路實現(xiàn),也可以用由各種類型的處理器執(zhí)行的軟件實現(xiàn),也可 以由上述硬件電路和軟件的結合實現(xiàn)。并且,本實施例的基于上下文模型 生成SOA策略的裝置800在操作上可以實現(xiàn)如圖6所示的實施例的基于上 下文模型生成SOA策略的方法。
本實施例的基于上下文模型生成SOA策略的裝置可以采用插件的形 式與現(xiàn)有的SOA應用組裝開發(fā)環(huán)境相結合。
雖然以上結合具體實施方式
對本發(fā)明的生成用于生成SOA策略的上 下文模型的方法和裝置以瓦基于上下文模型生成SOA策略的方法和裝置 進行了詳細描述,但是以上這些實施方式并不是窮舉的,本領域技術人員 可以在本發(fā)明的精神和范圍內實現(xiàn)各種變化和修改,本發(fā)明的范圍僅由所 附的權利要求限定。
權利要求
1. 一種生成用于生成面向服務架構SOA的策略的上下文模型的方法,包括收集符合上述策略的應用范圍的SOA元數(shù)據(jù)文檔;建立上述SOA元數(shù)據(jù)文檔的文檔間引用關系;以及根據(jù)上述文檔間引用關系,聚合各個SOA元數(shù)據(jù)文檔以生成上下文模型。
2. 根據(jù)權利要求1所述的生成用于生成面向服務架構SOA的策略的 上下文模型的方法,還包括檢查上述SOA元數(shù)據(jù)文檔中是否存在釆用Web本體語言的OWL文檔;如果存在OWL文檔,則解析上述OWL文檔的每一個以獲得該OWL文檔中的OWL類; 基于各個上述OWL文檔的上述OWL類,創(chuàng)建OWL個體;以及對于各個上述OWL文檔,生成包含上述OWL類和相應的上述 OWL個體的本體文檔。
3. 根據(jù)權利要求1或2所述的生成用于生成面向服務架構SOA的策 略的上下文模型的方法,還包括在所述收集步驟之前,允許用戶指定上 述SOA元數(shù)據(jù)文檔。
4. 根據(jù)權利要求1至3任意一項所述的生成用于生成面向服務架構 SOA的策略的上下文模型的方法,其中,所述建立上述SOA元數(shù)據(jù)文檔 的文檔間引用關系的步驟包括建立上述SOA元數(shù)據(jù)文檔的每一個的統(tǒng)一 資源標識符與該SOA元數(shù)據(jù)文檔所承擔的角色之間的唯一的對應關系。
5. —種基于上下文模型生成面向服務架構SOA的策略的方法,包括: 產(chǎn)生策略的應用范圍;利用權利要求1至4的任意一項所述的生成用于生成面向服務架構的策略的上下文模型的方法,生成上下文模型;基于由用戶定制的動作語義模塊,生成用于上述上下文模型的動作列表;根據(jù)上述上下文模型,生成策略的條件部分; 根據(jù)上述動作列表,生成策略的動作部分;以及 合并上述策略的條件部分和動作部分以生成策略。
6. 根據(jù)權利要求5所述的基于上下文模型生成面向服務架構SOA的 策略的方法,其中,所述應用范圍包括策略的類型和/或策略的應用場景。
7. 根據(jù)權利要求5或6所述的基于上下文模型生成面向服務架構 SOA的策略的方法,其中,所述生成用于上述上下文才莫型的動作列表的步 驟包括獲取由用戶定制的動作語義模塊及其XML描述文件; 讀取上述XML描述文件;以及根據(jù)上述XML描述文件,將上述動作語義模塊導入動作列表。
8. 根據(jù)權利要求5至7任意一項所述的基于上下文模型生成面向服 務架構SOA的策略的方法,其中,所述根據(jù)上述上下文模型生成策略的條 件部分的步驟包括從上述上下文模型中的SOA元數(shù)據(jù)文檔中提取^Ht術語以及上述條 件術語之間的相互關系;顯示上述條件術語;以及選擇上述^Ht術語和運算符,以生成策略的條件部分。
9. 根據(jù)權利要求5至8任意一項所述的基于上下文模型生成面向服 務架構SOA的策略的方法,其中,所述根據(jù)上述動作列表生成策略的動作 部分的步驟包括顯示上述動作列表中的動作語義模塊; 選擇所希望的動作語義模塊;以及 設置上述動作語義模塊中的參數(shù)。
10. 根據(jù)權利要求5至9任意一項所述的基于上下文模型生成面向服務架構SOA的策略的方法,還包括生成上下文沖莫型模板,其包含上述上下文模型和上述SOA元數(shù)據(jù)文檔。
11. 根據(jù)權利要求10所述的基于上下文模型生成面向服務架構SOA 的策略的方法,還包括在策略管理器中注冊上述上下文模型模板和上述 策略。
12. —種生成用于生成面向服務架構SOA的策略的上下文模型的裝 置,包括收集器,用于收集符合上述策略的應用范圍的SOA元數(shù)據(jù)文檔; 文檔間引用關系建立單元,用于建立上述SOA元數(shù)據(jù)文檔的文檔間引 用關系;以及聚合器,用于才艮據(jù)上述文檔間引用關系,聚合各個SOA元數(shù)據(jù)文檔以 生成上下文模型。
13. 根據(jù)權利要求12所述的生成用于生成面向服務架構SOA的策略 的上下文模型的裝置,還包括檢查單元,用于檢查上述SOA元數(shù)據(jù)文檔中是否存在采用Web本體 語言的OWL文檔;OWL解析器,用于對上述OWL文檔的每一個進行解析,以獲得各 個OWL文檔中的OWL類;OWL個體創(chuàng)建單元,用于基于由上述OWL解析器獲得的各個OWL 文檔中的OWL類,創(chuàng)建各個OWL文檔的OWL個體;以及本體文檔生成器,用于對各個OWL文檔,生成包含上述OWL類和 相應的上述OWL個體的本體文檔。
14. 根據(jù)權利要求12或13所述的生成用于生成面向服務架構SOA的 策略的上下文模型的裝置,還包括指定單元,用于允許用戶指定上述SOA元數(shù)據(jù)文檔。
15. 根據(jù)權利要求12至14任意一項所述的生成用于生成面向服務架構 SOA的策略的上下文模型的裝置,其中,所述文檔間引用關系建立單元包括對應關系建立單元,用于建立上述SOA元數(shù)據(jù)文檔的每一個的統(tǒng)一資 源標識符與該SOA元數(shù)據(jù)文檔所承擔的角色之間的唯一的對應關系。
16. —種基于上下文模型生成面向服務架構SOA的策略的裝置,包括 應用范圍產(chǎn)生單元,用于產(chǎn)生策略的應用范圍;權利要求12至15任意一項所述的生成用于生成面向服務架構的策略 的上下文模型的裝置,用于生成上下文模型;動作列表生成器,用于基于由用戶定制的動作語義模塊,生成用于上 述上下文模型的動作列表;條件生成單元,用于根據(jù)上述上下文模型生成策略的條件部分;動作生成單元,用于根據(jù)所生成的上述動作列表生成策略的動作部分;以及策略生成器,用于合并上述策略的條件部分和動作部分以生成策略。
17. 根據(jù)權利要求16所述的基于上下文模型生成面向服務架構SOA 的策略的裝置,其中,所述動作列表生成器包括獲取單元,用于獲取由用戶定制的動作語義模塊及其XML描述文件; 讀取單元,用于讀取上述XML描述文件;以及 導入單元,用于根據(jù)上述XML描述文件,將上述動作語義模塊導入 動作列表。
18. 根據(jù)權利要求16或17所述的基于上下文模型生成面向服務架構 SOA的策略的裝置,其中,所述條件生成單元包括提取單元,用于從上述上下文模型中的SOA元數(shù)據(jù)文檔中提取條件術 語以及上述M術語之間的相互關系;條件術語顯示單元,用于顯示上述M術語;以及選擇單元,用于選擇上述M術語和運算符,以生成策略的條件部分。
19. 根據(jù)權利要求16至18任意一項所述的基于上下文模型生成面向服 務架構SOA的策略的裝置,其中,所述動作生成單元包括模塊顯示單元,用于顯示上述動作列表中的動作語義模塊; 才莫塊選擇單元,用于選擇所希望的動作語義模塊;以及^t設置單元,用于設置上述動作語義模塊中的參數(shù)。
20.根據(jù)權利要求16至19任意一項所述的基于上下文模型生成面向服 務架構SOA的策略的裝置,還包括模板生成器,用于生成上下文模型模板,其包含上述上下文模型以及 上述SOA元數(shù)據(jù)文檔。
全文摘要
一種基于上下文模型生成面向服務架構SOA的策略的方法,包括產(chǎn)生策略的應用范圍;生成上下文模型;基于由用戶定制的動作語義模塊,生成用于該上下文模型的動作列表;根據(jù)該上下文模型,生成策略的條件部分;根據(jù)動作列表,生成策略的動作部分;合并策略的條件部分和動作部分以生成策略。采用本發(fā)明,可以用半自然的語言生成所有類型的SOA策略,并且利用包含OWL文檔的SOA元數(shù)據(jù)文檔生成上下文模型,可以擴展SOA策略的應用域的知識,而且所生成的SOA策略在執(zhí)行時無需復雜的本體引擎。另外,通過利用用戶自行定制的動作語義模塊生成策略的動作部分,能夠增強描述策略行為的能力。采用本發(fā)明生成的SOA策略完全符合標準,可以重復利用。
文檔編號G06F17/30GK101441561SQ200710187088
公開日2009年5月27日 申請日期2007年11月23日 優(yōu)先權日2007年11月23日
發(fā)明者劉昕鵬, 周宇辰, 王夕寧 申請人:國際商業(yè)機器公司