專利名稱:執(zhí)行基于上下文模型的面向服務(wù)架構(gòu)的策略的方法和策略引擎的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)的面向服務(wù)架構(gòu)(Service-Oriented Architecture,簡(jiǎn)稱SOA)的技術(shù),具體地說,涉瓦基于上下文模型的SOA 策略的執(zhí)行方法和策略引擎。
背景技術(shù):
面向服務(wù)架構(gòu)SOA是指為了解決因特網(wǎng)環(huán)境下業(yè)務(wù)集成的需要而通 過連接能完成特定任務(wù)的獨(dú)立功能實(shí)體來實(shí)現(xiàn)的一種軟件系統(tǒng)架構(gòu)。換句 話說,SOA是一個(gè)組件模型,它將應(yīng)用程序的不同功能單元(稱為服務(wù)) 通過這些服務(wù)之間定義良好的接口和契約聯(lián)系起來,其中接口的定義是獨(dú) 立于實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語言的。SOA采用面向服務(wù)的 建才莫技術(shù)和WEB服務(wù)技術(shù),實(shí)現(xiàn)系統(tǒng)之間的松耦合,從而實(shí)現(xiàn)系統(tǒng)之間 的整合與協(xié)同。
SOA策略是SOA系統(tǒng)的一個(gè)重要組成部分,其用于SOA系統(tǒng)的行為 的聲明性描述和執(zhí)行。在SOA系統(tǒng)中,SOA策略的使用貫穿SOA的整個(gè) 生命周期,包括設(shè)計(jì)時(shí)校驗(yàn)、部署時(shí)策略發(fā)布和打包、以及運(yùn)行時(shí)服務(wù)選 擇、變化管理和影響分析。
一般地,SOA策略在不同的層級(jí)上可以分為以下幾種類型 畫業(yè)務(wù)策略,用于制定業(yè)務(wù)決策和遵循行業(yè)指導(dǎo)等; -應(yīng)用策略,用于在服務(wù)調(diào)用期間的服務(wù)選擇等; -治理策略,用于執(zhí)行遵循標(biāo)準(zhǔn)的規(guī)則、定義治理過程的系統(tǒng)行為等。 SOA技術(shù)的一個(gè)主要特點(diǎn)在于,所有的數(shù)據(jù)和上下文都采用XML語 言描述,包含這樣的數(shù)據(jù)和上下文的文檔稱為SOA元數(shù)據(jù)(Metadata)文檔。 一般地,SOA元數(shù)據(jù)文檔可以包括用于描述與服務(wù)相關(guān)的內(nèi)容的 服務(wù)元數(shù)據(jù)文檔、用于描述與運(yùn)行時(shí)信息相關(guān)的內(nèi)容的運(yùn)行時(shí)信息文檔、 或者用于描述其它業(yè)務(wù)內(nèi)容的文檔。例如,服務(wù)元數(shù)據(jù)文檔可以采用Web 月艮務(wù)描述語言(Web Service Description Language,筒稱WSDL) 、 XML 模式定義語言(XML Schema Definition,簡(jiǎn)稱XSD ) 、 Web月艮務(wù)策略 (WS誦Policy )、月艮務(wù)組件定義語言(Service Component Definition Language,簡(jiǎn)稱SCDL )、業(yè)務(wù)流程執(zhí)行語言(Business Process Execution Language,簡(jiǎn)稱BPEL )、服務(wù)組件架構(gòu)(Service Component Architecture, 簡(jiǎn)稱SCA)策略等,運(yùn)行時(shí)信息文檔可以采用簡(jiǎn)單對(duì)象訪問協(xié)議(Simple Object Access Protocol,簡(jiǎn)稱SOAP)、表示性狀態(tài)傳輸(Representational State Transfer,筒稱REST)等,描述其它業(yè)務(wù)內(nèi)容的文檔可以采用服務(wù) 數(shù)據(jù)對(duì)象(Service Data Object,簡(jiǎn)稱SDO )、 Web本體語言(Web Ontology Language,簡(jiǎn)稱OWL)等。
下面筒要介紹現(xiàn)有技術(shù)中的策略引擎。 (一)業(yè)務(wù)策略引擎
在現(xiàn)有技術(shù)中,有許多業(yè)務(wù)策略引擎,例如,ILOG JRule引擎、Drools 引擎、Mandarax引擎、幾isa引擎、JEOPS引擎、OpenRules引擎等。
ILOG JRule引擎是適合于與J2SE或J2EE應(yīng)用程序單獨(dú)使用的靈活 的高性能執(zhí)行平臺(tái)。該引擎支持策略/規(guī)則語言定制,例如,業(yè)務(wù)操作語言 (Business Action Language,簡(jiǎn)稱BAL,其4吏用自然語言語法定義策略/ 規(guī)則)、ILOG策略/規(guī)則語言(ILOG Rule Language,簡(jiǎn)稱IRL,其使用 類似Java或XML的語法定義策略/規(guī)則)、業(yè)務(wù)策略/規(guī)則語言定義框架、 或Java語言集成(其直接在IRL中使用Java表達(dá)式)等。
Drools S1擎是Java的開放源面向?qū)ο蟮牟呗?規(guī)則引擎,其提供聲明 性邏輯編程,并且能夠很靈活地匹配用戶所考慮的域的語法。Drools引擎 是JSR94規(guī)范的具體實(shí)現(xiàn)。相關(guān)的詳細(xì)描述可參見 http:〃iava-source.net/oDen-source/rule-engines/drools。
Mandarax引擎是用于演繹策略/規(guī)則的開放源Java類庫(kù),其提供用于定義、管理和查詢策略/規(guī)則庫(kù)的體系,相關(guān)的詳細(xì)描述可參見
http:〃i ava-source.net/open-source/rule-engines/mandarax。
JLisa引擎是用于建立可訪問Java的業(yè)務(wù)策略/規(guī)則的開放源框架,其 遵循 JSR94 規(guī)范,相關(guān)的詳細(xì)描述可參見 http:〃iava-source.net/oDen-source/rule國(guó)engines/ilisa。
Java嵌入對(duì)象產(chǎn)生系統(tǒng)(Java Embedded Object Production System, 簡(jiǎn)稱JEOPS )引擎是基于開放源Java的演繹法/正向推理鏈(Forwarding Chaining)策略/規(guī)則引擎,其用于使用Java應(yīng)用服務(wù)器中的規(guī)則、客戶 端應(yīng)用程序和Servlets啟動(dòng)業(yè)務(wù)過程。相關(guān)的詳細(xì)描述可以參見 http:〃iava-source.net/open-source/rule-engines/ieoDs國(guó)the-iava-embedded國(guó)o b i ect-production-svstem 。
OpenRules引擎是全面的開放源業(yè)務(wù)策略/規(guī)則管理框架,其有效地使 用MS Excel、 Eclipse集成開發(fā)環(huán)境(IDE)和開放源Java庫(kù)以創(chuàng)建、部 署、執(zhí)行和維護(hù)不同的具有復(fù)雜的業(yè)務(wù)邏輯的策略/規(guī)則引擎,相關(guān)的詳細(xì) 描述可參見http:〃iava-source.net/open國(guó)source/rule-engines/onenrules 。
某些策略/規(guī)則引擎可支持用于推理一個(gè)應(yīng)用于特定策略主體的策略/ 規(guī)則集合的演繹法/正向推理鏈(Forwarding Chaining)。所謂Forwarding Chaining是指規(guī)則系統(tǒng)中對(duì)規(guī)則集合的正向推理鏈。具體地,如果規(guī)則1 的執(zhí)行改變了當(dāng)前規(guī)則集合所作用的目標(biāo)系統(tǒng)的狀態(tài),并導(dǎo)致規(guī)則2的匹 配執(zhí)行,那么從規(guī)則l"^規(guī)則2的推理稱為正向推理。以此類推,如果存 在規(guī)則1">規(guī)則2"^…^規(guī)則n的推理鏈,則將規(guī)則引擎在整個(gè)鏈路上的推 理稱為Forwarding Chaining,正向推理鏈?zhǔn)且环N允許應(yīng)用于同一個(gè)知識(shí)空 間的策略/規(guī)則相互觸發(fā)的機(jī)制,即,根據(jù)一個(gè)策略/規(guī)則的執(zhí)行觸發(fā)另 一個(gè) 策略/規(guī)則。
在正向推理鏈機(jī)制中,策略/規(guī)則被解析為內(nèi)存模型(memory model), 而在策略/規(guī)則的條件部分和動(dòng)作部分中引用的變量備表示為內(nèi)存變量。當(dāng) 執(zhí)行正向推理鏈時(shí),通過在不同的策略/規(guī)則中更新內(nèi)存變量和互換狀態(tài)進(jìn) 行演繹。圖l是現(xiàn)有的正向推理鏈機(jī)制的一個(gè)例子的示意圖。如圖l所示,
iiWM表示工作內(nèi)存,其可被當(dāng)作策略/規(guī)則的變量的存儲(chǔ)單元,其中,變量 可由另 一個(gè)策略/規(guī)則的執(zhí)行而改變。在正向推理鏈機(jī)制中最費(fèi)時(shí)的步驟是 用策略/規(guī)則的條件部分匹配WM,該步驟是用于發(fā)現(xiàn)有效的WM,這些 有效的WM已經(jīng)由一個(gè)策略/規(guī)則的執(zhí)行而改變并且將觸發(fā)另一個(gè)策略/規(guī) 則。
現(xiàn)有技術(shù)中有許多正向推理鏈算法,最有名的是RETE算法,該算法 的主要特征在于1.狀態(tài)保存,即,在每次WM發(fā)生改變后,匹配過程 的狀態(tài)(結(jié)果)被保存在a和/3存儲(chǔ)器中;而在下一次WM發(fā)生改變后, 許多結(jié)果通常不發(fā)生改變,因此RETE算法通過在連續(xù)的WM改變之間 保存這些結(jié)果而避免了許多重復(fù)計(jì)算。2.在具有類似的條件的結(jié)果之間共 享節(jié)點(diǎn),即,在a網(wǎng)絡(luò)的輸出端,當(dāng)兩個(gè)或多個(gè)結(jié)果具有一個(gè)共同的M 時(shí),RETE算法使用一個(gè)a存儲(chǔ)器用于條件,而不是對(duì)創(chuàng)建每個(gè)結(jié)果創(chuàng)建 相同的存儲(chǔ)器;而在網(wǎng)絡(luò)的/3部分,當(dāng)兩個(gè)或多個(gè)結(jié)果具有相同的條件時(shí), 使用相同的節(jié)點(diǎn)以匹配這些條件,從而避免重復(fù)匹配。
然而,現(xiàn)有的業(yè)務(wù)策略/規(guī)則引擎具有下述的局限性
1. 現(xiàn)有的業(yè)務(wù)策略/規(guī)則集中在執(zhí)行業(yè)務(wù)策略/規(guī)則,而對(duì)于其它類型 的SOA策略不能執(zhí)行。
2. 現(xiàn)有的業(yè)務(wù)策略/規(guī)則引擎對(duì)于SOA系統(tǒng)的特點(diǎn)-使用XML格式-沒有專門的解決方案。例如RETE算法假設(shè)策略/規(guī)則和被驗(yàn)證的內(nèi)容被解 析為內(nèi)存模型以在不同的策略/規(guī)則的執(zhí)行之間互換狀態(tài)。而在XML中, 由于文檔對(duì)fjt莫型(Document Object Model,簡(jiǎn)稱為DOM)消擬艮多內(nèi) 存,并且很難在大型XML文檔中定位特定元素,因此,策略/規(guī)則以及所 應(yīng)用的XML格式的模型并不適合于定期裝載為內(nèi)存模型。另外, XML 內(nèi)容的傳統(tǒng)方式不需要內(nèi)存模型,因此,也不需要RETE算法。
3. 現(xiàn)有的業(yè)務(wù)策略/規(guī)則引擎總是定義自己的策略/規(guī)則格式,因此, 為一個(gè)引擎定義的規(guī)則/策略很難被廣泛采用,不能重復(fù)使用。
4. 由于現(xiàn)有的業(yè)務(wù)策略/規(guī)則引擎不能處理SOA系統(tǒng)的使用XML語 言的特點(diǎn),因此,需要復(fù)雜的機(jī)制來轉(zhuǎn)換信息,并且被集成在SOA系統(tǒng)中,例如,ILOG策略/規(guī)則引擎作為策略/規(guī)則服務(wù)封裝在FileNet工作流系統(tǒng) 中。
5.在現(xiàn)有的業(yè)務(wù)策略/規(guī)則引擎中,策略/規(guī)則表達(dá)式具有固定的術(shù)語, 例如,Java專用表達(dá)式或保留的XML結(jié)構(gòu)或術(shù)語(RuleML、 SWRL等), 這會(huì)導(dǎo)致剛性的引擎實(shí)現(xiàn)或推理體系結(jié)構(gòu)。另外,應(yīng)用策略/規(guī)則的應(yīng)用域 和上下文也是固定的。
(二)應(yīng)用策略引擎
在現(xiàn)有技術(shù)中有許多應(yīng)用策略引擎可用于SOA系統(tǒng)。通常,這些應(yīng)用 策略引擎都是基于本體論的,例如,IBM公司的WebSphere Business Service Fabric (WBSF)工具、基于語義網(wǎng)規(guī)則語言(Semantic Web Rule Language,簡(jiǎn)稱SWRL)的引擎、SweetRules引擎、TRIPLE引擎、SEW
引擎等。
WBSF工具是用于選擇服務(wù)端點(diǎn)本體的動(dòng)態(tài)裝配程序,其僅使用OWL 文檔中的術(shù)語定義策略的條件部分。
SWRL語言是結(jié)合Web本體語言(Web Ontology Language,筒稱 OWL)的OWL DL、 OWL Lite子語言和規(guī)則標(biāo)記語言(Rule Markup Language,簡(jiǎn)稱RuleML )的一元/二元數(shù)據(jù)記錄RuleML子語言而形成的, 其擴(kuò)展OWL公理的集合以包括霍恩式(Horn-like)策略/規(guī)則,從而使霍 恩式策略/規(guī)則能夠與OWL知識(shí)庫(kù)結(jié)合。
SweetRules引擎是用于語義網(wǎng)規(guī)則和本體的開放源集成工具的集合, 其以用于語義網(wǎng)規(guī)則的規(guī)則標(biāo)記/建模語言(Rule Markup/Modeling Language,簡(jiǎn)稱RuleML )標(biāo)準(zhǔn)為中心,并支持相關(guān)的SWRL語言和用于 語義網(wǎng)本體的 OWL標(biāo)準(zhǔn)。相關(guān)的詳細(xì)描述可以參見 httD:〃i ava-source.net/open-source/rule-engines/sweetrules。
TRIPLE引擎是支持RDF和OWL Lite的子集的語義網(wǎng)引擎,其語法 是基于F邏輯并支持一階邏輯的重要片斷。相關(guān)的詳細(xì)描述可以參見 httD:〃triDle.semanticw eb.org。
SEW引擎是RDF模式引擎的具體實(shí)現(xiàn),包括某些XML模式數(shù)據(jù)類
13型支持,其能夠讀取以RDF/XML和N-TRIPLES格式串接的RDF圖。
然而,這樣的應(yīng)用策略引擎只支持一步推理,并且適用于特定行業(yè), 而對(duì)于具體的策略主體不適用,例如計(jì)劃、應(yīng)用程序或服務(wù)。另外,還涉 及^^多復(fù)雜的標(biāo)準(zhǔn),造成應(yīng)用策略引擎復(fù)雜。
(三)基于服務(wù)建模語言(Service Modeling Language,簡(jiǎn)稱SML) 的引擎
SML語言是由IBM、微軟、BEA、 Intel等聯(lián)合定義的用于基于XML 的IT服務(wù)管理的語言,它提供了豐富的用于描述復(fù)雜IT服務(wù)和系統(tǒng)的模 型的構(gòu)件集合。SML模型是相關(guān)的XML文檔的集合,這些XML文檔包 含關(guān)于一個(gè)IT服務(wù)的多個(gè)部分的信息、以及為了使該IT服務(wù)正常運(yùn)行而 每個(gè)部分必須滿足的約束。
SML模型中的文檔包含定義文檔和實(shí)例文檔。
定義文檔是4吏用XML模式定義(XML Schema Definition,筒稱XSD) 語言和Schematron模式語言描述的文檔,是SML模型中描述了模式以及 管理模型中的文檔的結(jié)構(gòu)和內(nèi)容的策略/規(guī)則的文檔子集。SML語言規(guī)范 定義了兩種定義文檔,即符合XML模式的SML概要的XML模式文檔和 符合Schematron模式語言的SML概要的策略/規(guī)則文檔,其中,策略/規(guī) 則文檔是約束模型中的文檔的結(jié)構(gòu)和內(nèi)容的布爾表達(dá)式。
實(shí)例文檔是XML格式的文檔,是SML模型中描述了模型化實(shí)體的結(jié) 構(gòu)和內(nèi)容的文檔子集。
然而,基于SML的引擎僅用于IT系統(tǒng)管理,因?yàn)镾ML語言的設(shè)計(jì) 初衷是用于系統(tǒng)管理、模型驅(qū)動(dòng)模塊化、再利用和標(biāo)準(zhǔn)化,例如微軟的系 統(tǒng)管理服務(wù)器。另外,基于SML的引擎僅用于系統(tǒng)配置的一步^和報(bào) 告。SML語言使用Schematron模式語言作為策略/規(guī)則表達(dá)式以驗(yàn)證其實(shí) 例文檔。根據(jù)Schematron模式語言規(guī)范,在標(biāo)準(zhǔn)Schematron模式語言內(nèi)
息。SML語言規(guī)范擴(kuò)展了4Hi報(bào)告引入結(jié)構(gòu)化輸出的能力,但是這種擴(kuò)展 僅提供元素或?qū)傩缘臉?biāo)準(zhǔn)輸出,而沒有進(jìn)一步的語義。
發(fā)明內(nèi)容
本發(fā)明正是基于上述技術(shù)問題而提出的,其目的在于提供一種執(zhí)行基
于上下文模型的SOA策略的方法及策略引擎,能夠根據(jù)策略執(zhí)行的場(chǎng)景和 目的靈活地構(gòu)成策略范圍,并且適用于各種類型的SOA策略。
根據(jù)本發(fā)明的一個(gè)方面,提供一種執(zhí)行基于上下文4莫型的SOA策略的 方法,包括根據(jù)業(yè)務(wù)要求,搜集與策略執(zhí)行相關(guān)的實(shí)例文檔;利用所搜 集的實(shí)例文檔,生成實(shí)例化上下文模型;才艮據(jù)所搜集的實(shí)例文檔,生成將 要執(zhí)行的策略集合;確定策略集合中的策略的執(zhí)行順序;以及按照上述執(zhí) 行順序,將上述策略應(yīng)用于上述實(shí)例化上下文才莫型。
根據(jù)本發(fā)明的另一個(gè)方面,提供一種執(zhí)行基于上下文模型的SOA策略 的策略引擎,包括搜集單元,用于搜集與策⑩行相關(guān)的實(shí)例文檔;上 下文模型生成單元,用于利用所搜集的實(shí)例文檔,生成實(shí)例化上下文模型; 策略集合生成單元,用于根據(jù)所搜集的實(shí)例文檔,生成將要執(zhí)行的策略集 合;順序確定單元,用于確定策略集合中的策略的執(zhí)行順序;以及策略應(yīng) 用單元,用于將上述策略應(yīng)用于上述實(shí)例化上下文模型。
圖l是現(xiàn)有的正向推理鏈機(jī)制的一個(gè)例子的示意圖; 圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的執(zhí)行基于上下文模型的SOA策略的 方法的流程圖3是圖2的實(shí)施例中將策略應(yīng)用于實(shí)例化上下文模型的步驟的流程
圖4是根據(jù)本發(fā)明的另 一個(gè)實(shí)施例的執(zhí)行基于上下文模型的SOA策略 的方法的流禾呈圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施例的執(zhí)行基于上下文模型的SOA策略的 策略引擎的示意性方框圖6是圖5的實(shí)施例中策略應(yīng)用單元的示意性方框圖;圖7是根據(jù)本發(fā)明的另 一個(gè)實(shí)施例的執(zhí)行基于上下文模型的SOA策略 的策略引擎的示意性方框圖。
具體實(shí)施例方式
相信通過以下結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施例的詳細(xì)描述,本發(fā)明的 上述和其它目的、特征和優(yōu)點(diǎn)將會(huì)更加明顯。
圖1已經(jīng)在背景技術(shù)部分進(jìn)行了描述,此處省略說明。
圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的執(zhí)行基于上下文模型的SOA策略的 方法的流程圖。下面結(jié)合附圖,詳細(xì)說明本實(shí)施例。
如圖2所示,在步驟100,根據(jù)業(yè)務(wù)要求,搜集與策略執(zhí)行相關(guān)的實(shí) 例文檔,作為將要執(zhí)行的策略的上下文。
具體地,當(dāng)策,行開始時(shí),用戶可以才艮據(jù)業(yè)務(wù)要求和現(xiàn)有的應(yīng)用才莫 塊,確定與策#行相關(guān)的實(shí)例文檔的范圍,并且根據(jù)此范圍,選擇符合 要求的文檔并進(jìn)行實(shí)例化,從而得到實(shí)例文檔。這些文檔可以來自在基于 上下文模型生成SOA策略的過程中生成的上下文模型模板、包括Web應(yīng) 用服務(wù)器的運(yùn)行時(shí)平臺(tái)、工作流引擎、業(yè)務(wù)分析工具等,典型地,這些文 檔可以是SOA元數(shù)據(jù)文檔,例如WSDL文檔、XSD文檔、WS-策略文檔、 SOAP消息和OWL文檔等,也可以是包含對(duì)象信息的非XML格式的文 檔。
實(shí)際上,實(shí)例文檔與SOA策略之間的相關(guān)性在策略生成階段已經(jīng)指 定。即,在生成SOA策略時(shí),相應(yīng)的與策略相關(guān)聯(lián)的上下文模型已經(jīng)確定, 此時(shí),該上下文模型中的文檔是使用XML Schema定義語言的文檔。而當(dāng) 執(zhí)行SOA策略時(shí),上述XML Schema定義語言的文檔需要用符合該XML Schema定義的XML實(shí)例文檔替換,而采用哪個(gè)實(shí)例文檔進(jìn)^t^換則根據(jù) 具體的應(yīng)用語義確定。
具體地,XML實(shí)例文檔可以基于策略生成過程中的與策略相關(guān)聯(lián)的上 下文模型搜集。具體地,根據(jù)業(yè)務(wù)要求,對(duì)相應(yīng)的與策略相關(guān)聯(lián)的上下文 模型中的每一個(gè)XML Schema文檔指定一個(gè)實(shí)例文檔,其中該實(shí)例文檔在結(jié)構(gòu)上符合對(duì)應(yīng)的XML Schema文檔的定義。
然后,檢查實(shí)例文檔的格式是否是XML格式,如果不是XML格式, 則將非XML格式的實(shí)例文檔轉(zhuǎn)換成相應(yīng)的符合某些預(yù)定義的XML模式 的XML實(shí)例文檔。例如,某些業(yè)務(wù)場(chǎng)景中,應(yīng)當(dāng)被業(yè)務(wù)策略約束的文檔 可能最初沒有采用XML格式,這就需要進(jìn)行文檔格式轉(zhuǎn)換并且保持相同 的語義。因此,所搜集的所有與策略執(zhí)行相關(guān)的實(shí)例文檔都是基于XML 格式的。
然后,在步驟200,利用所搜集的實(shí)例文檔,生成實(shí)例化上下文模型。 具體地,對(duì)所搜集的每一個(gè)實(shí)例文檔都建立其與其它實(shí)例文檔的文檔間引 用關(guān)系,然后,通過所建立的文檔間引用關(guān)系聚合這些實(shí)例文檔,以生成 實(shí)例化上下文模型。
在本實(shí)施例中,"實(shí)例化上下文模型"也可以是在生成SOA策略的過 程中使用的與策略相關(guān)聯(lián)的上下文模型的一個(gè)實(shí)例。如上所述,用于生成 策略的上下文模型中的每個(gè)文檔是抽象的XML文檔,可以用XML Schema定義語言描述;而在搜集實(shí)例文檔時(shí),每個(gè)這樣的XML Schema 文檔用對(duì)應(yīng)的XML實(shí)例文檔替換。相應(yīng)地,抽象的上下文模型通過實(shí)例 文檔的替換而成為能夠在其上執(zhí)行策略的實(shí)例化上下文模型。
具體地,從XML的層面看,在使用XML規(guī)范定義的語法描述實(shí)例 化上下文模型時(shí),基于策略生成過程中的上下文模型,將該上下文模型中 對(duì)抽象的XML文檔的引用標(biāo)識(shí)修改為對(duì)相應(yīng)的實(shí)例文檔的引用標(biāo)識(shí),這 樣,在策略生成階段的抽象XML文檔之間的聚合關(guān)系轉(zhuǎn)變?yōu)樗鸭膶?shí) 例文檔之間的聚合關(guān)系,通過該聚合關(guān)系得到的新模型是實(shí)例化上下文模 型。從SML的層面看,在使用SML規(guī)范定義的語法描述實(shí)例化上下文模 型時(shí),將在策略生成過程中生成的SML聚合文檔中對(duì)每個(gè)XML Schema 文檔的統(tǒng)一 資源標(biāo)識(shí)符URI的引用修改為對(duì)相應(yīng)的所搜集的實(shí)例文檔的統(tǒng) 一資源標(biāo)識(shí)符URI的引用,從而生成新的SML聚合文檔。該新的SML 聚合文檔和所搜集的XML實(shí)例文檔一起構(gòu)成使用SML語法描述的實(shí)例化 上下文模型。在本實(shí)施例中,選擇SML語言實(shí)現(xiàn)實(shí)例化上下文模型。在步驟300,根據(jù)所搜集的實(shí)例文檔,生成將要執(zhí)行的策略集合,該 策略集合將應(yīng)用于在步驟200生成的實(shí)例化上下文模型。具體地,根據(jù)所 搜集的實(shí)例文檔的范圍,確定相關(guān)的策略。這些策略是預(yù)先生成的基于上 下文模型的策略,并且存儲(chǔ)在本地或遠(yuǎn)程服務(wù)器上。策略采用條件/動(dòng)作格 式,在本實(shí)施例中,策略是基于SML語言的,具體地,采用Schematron 模式語言并具有可擴(kuò)展的動(dòng)作部分。下面給出一個(gè)基于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')">; 策略的動(dòng)作部分為
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。
在確定了相關(guān)的策略后,集合所確定的策略,從而形成策略集合。 進(jìn)一步地,在確定了相關(guān)的策略后,還可以才艮據(jù)預(yù)先確定的文檔-策略 綁定,過濾所確定的策略,以進(jìn)一步精煉策略,再將過濾后的策略集合成 策略集合??蛇x地,文檔-策略綁定也可以根據(jù)應(yīng)用邏輯產(chǎn)生。
當(dāng)生成策略集合之后,在步驟400,確定策略集合中的策略的執(zhí)行順 序。具體地,首先設(shè)置策略的優(yōu)先級(jí)。通常,如果策略彼此獨(dú)立,則這些 策略的優(yōu)先^M目同,如果某些策略之間存在關(guān)聯(lián)關(guān)系,則這些策略的優(yōu)先 級(jí)不相同。當(dāng)然,用戶也可以根據(jù)需要對(duì)策略設(shè)置不同的優(yōu)先級(jí),但不能 改變策略之間的關(guān)聯(lián)關(guān)系。然后,根據(jù)優(yōu)先級(jí),對(duì)策略集合中的策略進(jìn)行 排序。
最后,在步驟500,按照在步驟400中確定的策略的執(zhí)行順序,將這 些策略應(yīng)用于在步驟200中生成的實(shí)例化上下文模型。圖3示出了該策略 應(yīng)用步驟500的流程圖。
如圖3所示,首先在步驟501,將一個(gè)策略應(yīng)用于該實(shí)例化上下文才莫 型,以發(fā)汪該實(shí)例化上下文模型中的實(shí)例文檔是否匹配,該驗(yàn)證包括兩個(gè) 方面 一方面是使用該策略中的模式文檔驗(yàn)證實(shí)例文檔的結(jié)構(gòu),另一方面 是使用該策略的條件部分驗(yàn)證實(shí)例文檔的內(nèi)容。在策略是基于SML語言 的情況下,使用XML模式文檔進(jìn)行實(shí)例文檔的結(jié)構(gòu)驗(yàn)汪,使用Schematron 格式的策略的M部分進(jìn)行實(shí)例文檔的內(nèi)$*^。
如果實(shí)例文檔的結(jié)構(gòu)驗(yàn)ii和內(nèi)^iHi都匹配,則表明該實(shí)例文檔匹配該策略,在步驟505,產(chǎn)生g報(bào)告。例如,使用Schematron描述的策略 的mi報(bào)告的語法是動(dòng)作名稱{動(dòng)作名稱空間URI)l參數(shù)ll…l參數(shù)n,其 沖每個(gè)參數(shù)的表達(dá)式可以是常量字符串或者是下面表示的SML模型上下 文的Schematron允i午的標(biāo)簽
<valu-of select=" SML模型文檔元素或?qū)傩曰蚱渌腦Path表達(dá)式"> , 其用于獲得XPath規(guī)定的XML元素/屬性值;
<name path="SML模型文檔元素或?qū)傩曰蚱渌腦Path表達(dá)式">, 其用于獲得XPath規(guī)定的XML元素/屬性標(biāo)簽名稱。
在本實(shí)施例中,B報(bào)告與策略的動(dòng)作部分相同。在上面的基于SML 的策略的例子中,B報(bào)告為
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。
如果沒有實(shí)例文檔匹配,則產(chǎn)生提示信息。
然后,在步驟510,根據(jù)所產(chǎn)生的^報(bào)告,執(zhí)行該策略的動(dòng)作部分。 具體地,從B報(bào)告中獲得將要執(zhí)行的動(dòng)作語義模塊的信息,并裝載該動(dòng) 作語義模塊。在本實(shí)施例中,動(dòng)作語義模塊的信息包括動(dòng)作名稱及參數(shù)。 動(dòng)作語義模塊可以是系統(tǒng)提供的常用的動(dòng)作語義模塊,也可以是用戶定義 的動(dòng)作語義模塊,并且,這些動(dòng)作語義模塊可采用插件形式,在運(yùn)行時(shí)進(jìn) 行調(diào)用。然后,設(shè)置所裝載的動(dòng)作語義模塊中的參數(shù)并運(yùn)行該動(dòng)作語義模 塊,其中,所設(shè)置的M值可以是常量字符串或者實(shí)例文檔中的特定值。
然后,在步驟515,判斷該策略是否是最后一個(gè)策略,如果是,則結(jié) 束此次策略執(zhí)行過程。如果不是,則選擇下一個(gè)策略(步驟520),并返 回步驟501。
通過以上描述可以看出,本實(shí)施例的執(zhí)行基于上下文^f莫型的SOA策略 的方法可以才艮據(jù)策略執(zhí)行的場(chǎng)景和目的靈活地搜集實(shí)例文檔以限定策略范 圍,例如計(jì)劃、應(yīng)用、服務(wù)等,并且可以應(yīng)用于各種類型的SOA策略。
與現(xiàn)有的業(yè)務(wù)策 ^行纟支術(shù)方案相比,本實(shí)施例的執(zhí)行基于上下文模型的SOA策略的方法具有如下的優(yōu)點(diǎn)
1. 提供專用于SOA系統(tǒng)的解決方案,可以處理基于XML語言的SOA
策略;
2. 遵循SOA^L術(shù)的相關(guān)標(biāo)準(zhǔn),例如SML、 XPath、 Schematron等標(biāo)
準(zhǔn);
3. 適用于各種類型的SOA策略,并且結(jié)合了業(yè)務(wù)和IT信息。
與現(xiàn)有的基于本體的應(yīng)用策B^L行技術(shù)方案相比,本實(shí)施例的執(zhí)行基 于上下文才莫型的SOA策略的方法具有如下的優(yōu)點(diǎn)
1. 提供SML模型中用于特定應(yīng)用場(chǎng)景的自包含的術(shù)語和關(guān)系,其中 內(nèi)置的XML元素作為術(shù)語的自然定義,內(nèi)置的XML文檔結(jié)構(gòu)和 XML/SML引用作為描述元素之間的關(guān)系的自然方式,因此,不需要預(yù)定 義本體,可以重復(fù)使用XML文檔中的域?qū)S玫恼Z義和關(guān)系,例如WS-策 略文檔、WS-RM策略文檔等;
2. 提供靈活的策略范圍,例如計(jì)劃、應(yīng)用、服務(wù)等,而不僅限于特定
域;
3. 由于基于簡(jiǎn)單的SOA/XML標(biāo)準(zhǔn),例如SML、 Schematron、 XPath 等,因此易于使用,具有實(shí)用性。
4. 能夠容易地集成在采用SML的工具中。
與現(xiàn)有的WBSF技術(shù)相比,本實(shí)施例的執(zhí)行基于上下文模型的SOA 策略的方法具有如下的優(yōu)點(diǎn)
1. 更強(qiáng)的語義表達(dá)能力能夠描述任意要求的關(guān)于特定的SML上下 文模型結(jié)構(gòu)和內(nèi)容以及可擴(kuò)展的動(dòng)作模塊的策略/規(guī)則內(nèi)容,而在WBSF 技術(shù)中,由于不同的業(yè)務(wù)要求和IT服務(wù)質(zhì)量,只能提供處理運(yùn)行時(shí)服務(wù)選 擇的策略。
2. 更靈活的策略上下文模型可以根據(jù)所需SML模型的范圍重新利 用現(xiàn)有的IT系統(tǒng)元數(shù)據(jù),而在WBSF技術(shù)中,策略只能基于WBSF的專 用OWL核心本體進(jìn)行定制和擴(kuò)展。
與現(xiàn)有的基于標(biāo)準(zhǔn)SML的策e^行技術(shù)方案相比,在本實(shí)施例的執(zhí)
21說明書第14/23頁
行基于上下文模型的SOA策略的方法中,動(dòng)作語義模塊采用插件形式,使 得策略的動(dòng)作部分能夠擴(kuò)展,并且可以被重復(fù)使用。
圖4是根據(jù)本發(fā)明的另一個(gè)實(shí)施例的執(zhí)行基于上下文模型的SOA策略 的方法的流程圖,其中與前面實(shí)施例相同的部分采用相同的標(biāo)記,并適當(dāng) 省略其說明。下面結(jié)合附圖,對(duì)本實(shí)施例進(jìn)行詳細(xì)的描述。
本實(shí)施例與圖3所示的實(shí)施例的區(qū)別在于引入了正向推理鏈機(jī)制。
如圖4所示,在執(zhí)行了策略的動(dòng)作部分(步驟510)之后,在步驟520, 確定該實(shí)例化上下文模型是否需要更新,即確定所執(zhí)行的策略的動(dòng)作部分 是否會(huì)使實(shí)例化上下文模型發(fā)生變化,例如,添加新的實(shí)例文檔、修改原 有的實(shí)例文檔或者刪除原有的實(shí)例文檔。如果不需要更新,則繼續(xù)執(zhí)行步 驟515。如果需要更新,則在步驟525,執(zhí)行更新操作,即,添加新的實(shí)例 文檔、修改原有的實(shí)例文檔或者刪除原有的實(shí)例文檔或者其組合。
然后在步驟530,檢測(cè)并解決由更新^作引起的沖突。在本實(shí)施例中, 更新操作所引起的沖突可包括
(1)對(duì)于原有的實(shí)例化上下文模型中的某個(gè)文檔只進(jìn)行修改操作,但 是兩個(gè)以上的修改操作的內(nèi)M在沖突;
(2 )對(duì)于原有的實(shí)例化上下文模型中的某個(gè)文檔同時(shí)進(jìn)行修改操作和 刪除操作。
對(duì)于沖突(l):如果存在沖突的內(nèi)^l此兼容,則選擇修改內(nèi)容最多 的修改操作,其中,兼容是指一個(gè)修改操作所修改的內(nèi)容等于或者包含另 一個(gè)修改操作的內(nèi)容;如果存在沖突的內(nèi)^L此不兼容,則通過執(zhí)行相應(yīng) 的應(yīng)用邏輯來自動(dòng)判斷,或者通itA機(jī)交互進(jìn)行決策。如果上述^作都不 能解決該沖突,則報(bào)告該文檔的修改操作失敗,忽略所有引起沖突的操作。
對(duì)于沖突(2),刪除操作優(yōu)先于修改操作,因?yàn)樵谝淮尾呗缘膱?zhí)行過 程中,無論修改操作如何,只要有刪除操作,所有的修改操作都自動(dòng)失效。
在步驟535,根據(jù)更新后的實(shí)例文檔和原有的實(shí)例化上下文模型,生 成新的實(shí)例化上下文模型,然后返回步驟501,將策略集合中的策略重新 應(yīng)用于該新的實(shí)例化上下文^=莫型。
22進(jìn)一步地,在將策略重新應(yīng)用于新的實(shí)例化上下文模型時(shí),也可以只 對(duì)新的實(shí)例化上下文模型中更新后的實(shí)例文檔進(jìn)行發(fā)汪。
通過以上描述可以看出,本實(shí)施例的執(zhí)行基于上下文;f莫型的SOA策略 的方法進(jìn)一步提供了基于上下文模型的正向推理鏈,具有更強(qiáng)的策略/規(guī)則 推理能力,能夠?qū)⒉煌牟呗员舜岁P(guān)聯(lián)以進(jìn)行基于上下文模型的策略推理、 模型自更新和多策略觸發(fā),從而提高系統(tǒng)的自愈合和自發(fā)展能力。
下面給出一個(gè)具體使用SML語言描述的上下文模型的例子說明上述 實(shí)施例的執(zhí)行基于上下文模型的SOA策略的方法。
在該例子中,所搜集的實(shí)例文檔有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〉
根據(jù)所搜集的實(shí)例文檔,生成實(shí)例化上下文模型Contextxml。具體地, 首先獲得上述的每個(gè)實(shí)例文檔的URL路徑(例如file:/…/ Userlnfos.xml), 然后,生成如下的XML文檔,作為實(shí)例化上下文模型,該文檔使用 DocumentList元素下的每個(gè)Document元素來引用相應(yīng)的實(shí)例文檔。在引 用時(shí),使用SML規(guī)范定義的屬性sml:ref-"true"來標(biāo)識(shí)每個(gè)Document元 素,實(shí)現(xiàn)對(duì)與sml:uri中所給出的URL對(duì)應(yīng)的實(shí)例文檔的跨文檔引用,即, 從語義上看,在每個(gè)Document元素下嵌有URL對(duì)應(yīng)的實(shí)例文檔的XML 子元素。由于DocumentList元素列舉了對(duì)所有實(shí)例文檔的引用,因此,如 下的文檔在SML規(guī)范所定義的語義上是對(duì)所有實(shí)例文檔的聚合。
實(shí)例化上下文模型Context.xml的內(nèi)容如下
< 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>
根據(jù)所搜集的實(shí)例文檔,可以確定相關(guān)的策略集合。在本例子中,在 上述的實(shí)例化上下文模型中應(yīng)用哪些策略是根據(jù)應(yīng)用的要求確定的。在本 例中,引入了下面兩個(gè)策略u(píng)pdateRole.sch和updateHRservice.sch。 當(dāng) 然,也可以根據(jù)應(yīng)用的要求增減策略。
當(dāng)確定了策略集合后,將該策略集合與實(shí)例化上下文模型相關(guān)聯(lián)。具 體地,在實(shí)例化上下文才莫型所聚合的實(shí)例文檔中,利用與聚合實(shí)例文檔相 似的方式,在DocumentList元素下添加相應(yīng)的Document子元素,從而完 成對(duì)每個(gè)策略文檔的聚合。這樣,在實(shí)例化上下文模型中聚合有實(shí)例文檔 和作用在實(shí)例文檔上的策略文檔,根據(jù)所聚合的文檔,可以識(shí)別需要執(zhí)行 的策略集合。
在本例中,策略u(píng)pdateRole.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〉
當(dāng)將上述兩個(gè)策略應(yīng)用于實(shí)例化上下文模型Context.xml時(shí),如果 updateRole.sch策略被首先匹配,那么執(zhí)行該策略的動(dòng)作的結(jié)果是在 UserPrivileges.xml文檔中,ID為000001的用戶的角色將被更新為 "SeniorManager",從而使得實(shí)例化上下文模型Context.xml被更新。然 后,對(duì)新的實(shí)例化上下文模型Context.xml應(yīng)用上述策略,使得 updateHRservice.sch策略被匹配,執(zhí)行該策略的動(dòng)作,將HRService端點(diǎn) 更新到HRService4StaffManagement.wsdl文檔中包含的一個(gè)HRService。 在同一個(gè)發(fā)明構(gòu)思下,圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施例的執(zhí)行基于上 下文模型的SOA策略的策略引擎的示意性方框圖。在本實(shí)施例中,對(duì)于與 前面實(shí)施例相同的部分,適當(dāng)省略其說明。下面結(jié)合附圖,詳細(xì)說明本實(shí) 施例。
如圖5所示,本實(shí)施例的執(zhí)行基于上下文模型的SOA策略的策略引擎 600包括搜集單元601,其搜集與策略的執(zhí)行相關(guān)的實(shí)例文檔;上下文模 型生成單元602,其利用所搜集的實(shí)例文檔,生成實(shí)例化上下文模型;策 略集合生成單元603,其根據(jù)所搜集的實(shí)例文檔,生成將要執(zhí)行的策略集 合;順序確定單元604,用于確定策略集合中的策略的執(zhí)行順序;以及策 略應(yīng)用單元605,其將策略集合中的策略應(yīng)用于上述實(shí)例化上下文模型。
當(dāng)使用策略引擎600執(zhí)行基于上下文模型的SOA策略時(shí),用戶可以根 據(jù)業(yè)務(wù)要求和當(dāng)前的應(yīng)用模塊,確定相關(guān)的實(shí)例文檔的范圍,并利用搜集 單元601搜集相關(guān)的實(shí)例文檔。具體地,在搜集單元601中,利用選擇單 元選擇符合要求的文檔并進(jìn)行實(shí)例化,從而得到實(shí)例文檔,然后由檢查單 元檢查這些實(shí)例文檔的格式是否是XML格式,對(duì)于非XML格式的實(shí)例 文檔,由轉(zhuǎn)換單元將其轉(zhuǎn)換成XML格式的實(shí)例文檔。這樣,所搜集的所有實(shí)例文檔都是XML格式的。
可選地,在搜集單元601中,也可以根據(jù)業(yè)務(wù)要求,通過文檔指定單 元對(duì)符合業(yè)務(wù)要求的與策略相關(guān)聯(lián)的上下文模型中的每一個(gè)XML Schema 文檔指定一個(gè)實(shí)例文檔,其中該實(shí)例文檔在結(jié)構(gòu)上符合對(duì)應(yīng)的XML Schema文檔的定義。
所搜集的實(shí)例文檔被傳送到上下文模型生成單元602中,以生成實(shí)例 化上下文模型。在上下文模型生成單元602中,利用引用關(guān)系建立單元對(duì) 每一個(gè)實(shí)例文檔建立該實(shí)例文檔與其它實(shí)例文檔的文檔間引用關(guān)系。然后, 聚合單元通過所建立的文檔間引用關(guān)系聚合這些實(shí)例文檔,從而生成實(shí)例 化上下文模型。在本實(shí)施例中,選擇SML語言實(shí)現(xiàn)實(shí)例化上下文模型。
在本實(shí)施例中,"實(shí)例化上下文才莫型"也可以是在生成SOA策略的過 程中使用的與策略相關(guān)聯(lián)的上下文模型的一個(gè)實(shí)例。這樣,在上下文模型 生成單元602中,當(dāng)使用XML規(guī)范定義的語法描述實(shí)例化上下文模型時(shí), 根據(jù)策略生成過程中的上下文模型,將該上下文模型中對(duì)抽象的XML文 檔的引用標(biāo)識(shí)修改為對(duì)相應(yīng)的實(shí)例文檔的引用標(biāo)識(shí),這樣,在策略生成階 段的抽象XML文檔之間的聚合關(guān)系轉(zhuǎn)變?yōu)樗鸭膶?shí)例文檔之間的聚合 關(guān)系,通過該聚合關(guān)系得到的新模型是實(shí)例化上下文模型。
可選地,在上下文模型生成單元602中,當(dāng)使用SML規(guī)范定義的語 法描述實(shí)例化上下文模型時(shí),將在策略生成過程中生成的SML聚合文檔 中對(duì)每個(gè)XML Schema文檔的統(tǒng)一資源標(biāo)識(shí)符URI的引用修改為對(duì)相應(yīng) 的所搜集的實(shí)例文檔的統(tǒng)一資源標(biāo)識(shí)符URI的引用,從而生成新的SML 聚合文檔。該新的SML聚合文檔和所搜集的XML實(shí)例文檔一起構(gòu)成4吏用 SML語法描述的實(shí)例化上下文模型。
然后,根據(jù)所搜集的實(shí)例文檔,用戶利用策略集合生成單元603生成 策略集合。具體地,在策略集合生成單元603中,用戶使用策略確定單元 確定相關(guān)的策略,這些策略是預(yù)先生成的基于上下文模型的SOA策略,采 用^H中/動(dòng)作格式。然后,由集合單元將所確定的策略集合為策略集合。
進(jìn)一步地,在通過策略確定單元確定了相關(guān)的策略后,由過濾單元根據(jù)文檔-策略綁定,過濾所確定的策略,以精煉策略,其中,文檔-策略綁 定是預(yù)先確定的或者根據(jù)應(yīng)用邏輯產(chǎn)生。然后由集合單元集合過濾后的策 略以形成策略集合。
在確定了策略集合后,通過順序確定單元604確定策略集合中策略的 執(zhí)行順序。在順序確定單元604中,利用優(yōu)先級(jí)設(shè)置單元,可以設(shè)置策略 的優(yōu)先級(jí)。通常,如果策略彼此獨(dú)立,則這些策略的優(yōu)先級(jí)相同,如果策 略之間存在關(guān)聯(lián)關(guān)系,則這些策略的優(yōu)先級(jí)不相同。當(dāng)然,用戶也可以根 據(jù)需要對(duì)策略設(shè)置不同的優(yōu)先級(jí),但不能改變策略之間的關(guān)聯(lián)關(guān)系。然后, 通過排序單元對(duì)策略集合中的所有策略進(jìn)行排序。
然后,實(shí)例化上下文模型和排序后的策略集合被傳送到策略應(yīng)用單元 605,以將策略集合中的策略應(yīng)用于實(shí)例化上下文模型。圖6示出了策略應(yīng) 用單元605的示意性方框圖。
如圖6所示,在策略應(yīng)用單元605中,文檔驗(yàn)證器6051將策略應(yīng)用于 實(shí)例化上下文模型中的實(shí)例文檔以發(fā)汪實(shí)例文檔是否匹配。具體地,文檔 驗(yàn)汪器6051中的結(jié)構(gòu)驗(yàn)證單元(未示出)使用策略中的模式文檔發(fā)汪實(shí)例 文檔的結(jié)構(gòu),然后,文檔驗(yàn)證器6051中的內(nèi) 證單元(未示出)使用策 略中的條件部分驗(yàn)證實(shí)例文檔的內(nèi)容。如果發(fā)汪結(jié)果是實(shí)例文檔匹配,則 由^報(bào)告生成單元6052產(chǎn)生B報(bào)告,該^E報(bào)告包含將要執(zhí)行的策略 的動(dòng)作部分的信息,包括動(dòng)作名稱及參數(shù)。然后,才艮據(jù)該mi報(bào)告,動(dòng)作 執(zhí)行單元6053執(zhí)行相應(yīng)的策略的動(dòng)作。具體地,在動(dòng)作執(zhí)行單元6053中, 裝載單元裝載相應(yīng)的動(dòng)作語義模塊,在本實(shí)施例中,動(dòng)作語義模塊可以是 系統(tǒng)提供的常用的動(dòng)作語義模塊,也可以是用戶定義的動(dòng)作語義模塊,并 且這些動(dòng)作語義模塊可采用插件形式集成到策略引擎600中,在運(yùn)行時(shí)進(jìn) 行調(diào)用。然后,通過參數(shù)設(shè)置單元對(duì)動(dòng)作語義模塊進(jìn)行參數(shù)設(shè)置并由運(yùn)行 單元運(yùn)行動(dòng)作語義模塊,其中,所設(shè)置的參數(shù)值可以是常量字符串或者實(shí) 例文檔中的特定值。
應(yīng)當(dāng)指出,本實(shí)施例的執(zhí)行基于上下文模型的SOA策略的策略引擎 600及其組件可以由諸如超大M^莫集成電路或門陣列、諸如邏輯芯片、晶說明書第22/23頁
體管等的半導(dǎo)體、或者諸如現(xiàn)場(chǎng)可編程門陣列、可編程邏輯設(shè)備等的可編 程硬件設(shè)備的硬件電路實(shí)現(xiàn),也可以用由各種類型的處理器執(zhí)行的軟件實(shí) 現(xiàn),也可以由上述硬件電路和軟件的結(jié)合實(shí)現(xiàn)。并且,本實(shí)施例的執(zhí)行基
于上下文模型的SOA策略的策略引擎600在操作上可以實(shí)現(xiàn)如圖2所示的 實(shí)施例的執(zhí)行基于上下文模型的SOA策略的方法。
通過以上描述可以看出,釆用本實(shí)施例的執(zhí)行基于上下文模型的SOA 策略的策略引擎,可以根據(jù)策略執(zhí)行的場(chǎng)景和目的靈活地搜集實(shí)例文檔以 限定策略范圍,例如計(jì)劃、應(yīng)用、服務(wù)等,并且可以應(yīng)用于各種類型的SOA 策略。
圖7是根據(jù)本發(fā)明的另一個(gè)實(shí)施例的執(zhí)行基于上下文模型的SOA策略 的策略引擎700的方框圖,其中,與前面實(shí)施例相同的部分采用相同的標(biāo) 記,并適當(dāng)省略其說明。下面結(jié)合附圖,對(duì)本實(shí)施例進(jìn)行詳細(xì)描述。
本實(shí)施例與圖5所示的實(shí)施例的區(qū)別在于引入了正向推理鏈機(jī)制。
如圖7所示,在策略應(yīng)用單元605中,當(dāng)動(dòng)作執(zhí)行單元6053執(zhí)行了所 匹配的策略的動(dòng)作之后,由更新判斷單元6054判斷實(shí)例化上下文模型是否 需要更新,即判斷所匹配的策略的執(zhí)行結(jié)果是否引起實(shí)例化上下文模型的 改變,例如,添加實(shí)例文檔、修改實(shí)例文檔、刪除實(shí)例文檔或者其組合。 如果更新判斷單元6054的判斷結(jié)果是實(shí)例化上下文模型需要更新,則由更 新單元6055執(zhí)行相應(yīng)的更新操作。具體地,在更新單元6055中,通過添 加單元可以添加實(shí)例文檔,通過修改單元可以修改實(shí)例文檔,通過刪除單 元可以刪除實(shí)例文檔。在更新單元6055執(zhí)行了更新操作后,沖突檢測(cè)和解 決單元6056檢測(cè)是否存在由于更新操作而引起的沖突,并解決相應(yīng)的沖 突。然后,更新后的實(shí)例文檔凈皮傳送到上下文模型生成單元602,與原有 的實(shí)例化上下文模型相結(jié)合,生成新的實(shí)例化上下文模型,再由策略應(yīng)用 單元605將策略集合中的策略應(yīng)用于該新的實(shí)例化上下文模型。
進(jìn)一步地,當(dāng)策略應(yīng)用單元605對(duì)新的實(shí)例化上下文模型應(yīng)用策略時(shí), 可以僅對(duì)新的實(shí)例化上下文模型中的更新后的實(shí)例文檔進(jìn)行!Hi。
應(yīng)當(dāng)指出,本實(shí)施例的執(zhí)行基于上下文模型的面向服務(wù)架構(gòu)(SOA)
30以由諸如超大^f莫集成電路或門陣列、 諸如邏輯芯片、晶體管等的半導(dǎo)體、或者諸如現(xiàn)場(chǎng)可編程門陣列、可編程 邏輯設(shè)備等的可編程硬件設(shè)備的硬件電路實(shí)現(xiàn),也可以用由各種類型的處 理器執(zhí)行的軟件實(shí)現(xiàn),也可以由上述硬件電路和軟件的結(jié)合實(shí)現(xiàn)。并且, 本實(shí)施例的執(zhí)行基于上下文模型的SOA策略的策略引擎700在操作上可以 實(shí)現(xiàn)如圖4所示的實(shí)施例的執(zhí)行基于上下文模型的SOA策略的方法。
通過以上描述可以看出,本實(shí)施例的執(zhí)行基于上下文模型的SOA策略 的策略引擎進(jìn)一步提供了基于上下文模型的正向推理鏈,具有更強(qiáng)的策略/ 規(guī)則推理能力,能夠?qū)⒉煌牟呗员舜岁P(guān)聯(lián)以進(jìn)行基于上下文模型的策略 推理、模型自更新和多策略觸發(fā),從而提高系統(tǒng)的自愈合和自iU艮能力。
以上雖然通過一些示例性的實(shí)施例詳細(xì)描述了本發(fā)明的執(zhí)行基于上下 文模型的SOA策略的方法和策略引擎,但是以上這些實(shí)施例并不是窮舉 的,本領(lǐng)域技術(shù)人員可以在本發(fā)明的精神和范圍內(nèi)實(shí)現(xiàn)各種變化和修改。 因此,本發(fā)明并不限于這些實(shí)施例,本發(fā)明的范圍僅由所附的權(quán)利要求限 定。
3權(quán)利要求
1. 一種執(zhí)行基于上下文模型的面向服務(wù)架構(gòu)SOA的策略的方法,包括根據(jù)業(yè)務(wù)要求,搜集與策略執(zhí)行相關(guān)的實(shí)例文檔;利用所搜集的實(shí)例文檔,生成實(shí)例化上下文模型;根據(jù)所搜集的實(shí)例文檔,生成將要執(zhí)行的策略集合;確定上述策略集合中的策略的執(zhí)行順序;以及按照上述執(zhí)行順序,將上述策略應(yīng)用于上述實(shí)例化上下文模型。
2. 根據(jù)權(quán)利要求1所述的執(zhí)行基于上下文模型的面向服務(wù)架構(gòu) (SOA)的策略的方法,其中,所述搜集與策⑩行相關(guān)的實(shí)例文檔的步驟包括選擇并實(shí)例化符合上述業(yè)務(wù)要求的文檔,以獲得實(shí)例文檔; 檢查上述實(shí)例文檔的格式是否是XML格式;以及 如果不是XML格式,則將非XML格式的實(shí)例文檔轉(zhuǎn)換成XML格式 的實(shí)例文檔。
3. 根據(jù)權(quán)利要求1所述的執(zhí)行基于上下文模型的面向服務(wù)架構(gòu) (SOA)的策略的方法,其中,所述搜集與策s^l行相關(guān)的實(shí)例文檔的步驟包括對(duì)符合上述業(yè)務(wù)要求的上述上下文模型中的每一個(gè)XML文檔指定一 個(gè)實(shí)例文檔,其中該實(shí)例文檔在結(jié)構(gòu)上符合對(duì)應(yīng)的XML文檔的定義。
4. 根據(jù)權(quán)利要求1至3任意一項(xiàng)所述的執(zhí)行基于上下文模型的面向 服務(wù)架構(gòu)(SOA)的策略的方法,其中,所述生成實(shí)例化上下文模型的步 驟包括對(duì)上述實(shí)例文檔的每一個(gè)建立其與其它實(shí)例文檔的文檔間引用關(guān)系;以及通過上述文檔間引用關(guān)系聚合上述實(shí)例文檔。
5. 根據(jù)權(quán)利要求1至3任意一項(xiàng)所述的執(zhí)行基于上下文模型的面向服務(wù)架構(gòu)(SOA)的策略的方法,其中,當(dāng)上述上下文模型使用XML規(guī) 范定義的語法描述時(shí),所述生成實(shí)例化上下文模型的步驟包括將符合上述業(yè)務(wù)要求的上述上下文模型中對(duì)每一個(gè)XML文檔的引用 標(biāo)識(shí)^"改為對(duì)相應(yīng)的所搜集的實(shí)例文檔的引用標(biāo)識(shí)。
6. 根據(jù)權(quán)利要求1至3任意一項(xiàng)所述的執(zhí)行基于上下文模型的面向 服務(wù)架構(gòu)(SOA)的策略的方法,其中,當(dāng)上述上下文模型使用SML規(guī) 范定義的語法描述時(shí),所述生成實(shí)例化上下文^f莫型的步驟包括將符合上述業(yè)務(wù)要求的上述上下文模型中的SML聚合文檔中對(duì)每個(gè) XML文檔的統(tǒng)一資源標(biāo)識(shí)符的引用替換為對(duì)相應(yīng)的所搜集的實(shí)例文檔的 統(tǒng)一資源標(biāo)識(shí)符的引用,以生成新的SML聚合文檔;其中,上述新的SML聚合文檔和上述所搜集的實(shí)例文檔一起構(gòu)成上 述實(shí)例化上下文模型。
7. 根據(jù)權(quán)利要求1至6任意一項(xiàng)所述的執(zhí)行基于上下文模型的面向 服務(wù)架構(gòu)(SOA)的策略的方法,其中,所述生成將要執(zhí)行的策略集合的 步驟包括確定與所搜集的實(shí)例文檔相關(guān)的策略;以及 集合上述所確定的策略以形成策略集合。
8. 根據(jù)權(quán)利要求1至6任意一項(xiàng)所述的執(zhí)行基于上下文模型的面向 服務(wù)架構(gòu)(SOA)的策略的方法,其中,所述生成將要執(zhí)行的策略集合的 步驟包括確定與所搜集的實(shí)例文檔相關(guān)的策略; 根據(jù)文檔-策略綁定,過濾所確定的策略;以及 集合過濾后的策略以形成策略集合。
9. 根據(jù)權(quán)利要求8所述的執(zhí)行基于上下文模型的面向服務(wù)架構(gòu) (SOA)的策略的方法,其中,上述文檔-策略綁定是預(yù)先確定的。
10. 根據(jù)權(quán)利要求8所述的執(zhí)行基于上下文模型的面向服務(wù)架構(gòu) (SOA)的策略的方法,其中,上述文檔-策略綁定;l:才艮據(jù)應(yīng)用邏輯產(chǎn)生的。
11. 根據(jù)權(quán)利要求1至10任意一項(xiàng)所述的執(zhí)行基于上下文模型的面向服務(wù)架構(gòu)(SOA)的策略的方法,其中,所述確定上述策略集合中的策略 的執(zhí)行順序的步驟包括設(shè)置上述策略的優(yōu)先級(jí);以及根據(jù)上述優(yōu)先級(jí),對(duì)上述策略進(jìn)行排序。
12.根據(jù)權(quán)利要求1至11任意一項(xiàng)所述的執(zhí)行基于上下文模型的面向 服務(wù)架構(gòu)(SOA)的策略的方法,其中,所述將上述策略應(yīng)用于上述實(shí)例 化上下文^=莫型的步驟包括使用上述策略的每一個(gè)驗(yàn)證上述實(shí)例化上下文模型中的實(shí)例文檔是否 匹配;如果匹配,則產(chǎn)生mi才艮告;以及 根據(jù)上述4HiH報(bào)告,執(zhí)行該匹配的策略的動(dòng)作部分。
13,根據(jù)權(quán)利要求12所述的執(zhí)行基于上下文模型的面向服務(wù)架構(gòu) (SOA)的策略的方法,其中,所述驗(yàn)證上述實(shí)例化上下文模型中的實(shí)例文檔是否匹配的步驟包括使用上述策略中的模式文檔驗(yàn)證上述實(shí)例化上下文模型中的實(shí)例文檔的結(jié)構(gòu);以及使用上述策略中的條件部分驗(yàn)證上述實(shí)例化上下文模型中的實(shí)例文檔 的內(nèi)容。
14. 根據(jù)權(quán)利要求12或13所述的執(zhí)行基于上下文模型的面向服務(wù)架構(gòu) (SOA)的策略的方法,其中,所述執(zhí)行該匹配的策略的動(dòng)作部分包括裝載上述動(dòng)作部分中的動(dòng)作語義才莫塊; 設(shè)置上述動(dòng)作語義模塊中的參數(shù);以及 運(yùn)行上述動(dòng)作語義^莫塊。
15. 根據(jù)權(quán)利要求12至14任意一項(xiàng)所述的執(zhí)行基于上下文模型的面向 服務(wù)架構(gòu)(SOA)的策略的方法,其中,所述將上述策略應(yīng)用于上述實(shí)例 化上下文^=莫型的步驟還包括確定上述實(shí)例化上下文模型是否需要更新; 如果是,則執(zhí)行更新操作;檢測(cè)并解決由上述更新操作引起的沖突; 根據(jù)更新后的實(shí)例文檔和原實(shí)例化上下文模型,生成新的實(shí)例化 上下文模型;以及將上述策略應(yīng)用于新的實(shí)例化上下文模型。
16. 根據(jù)權(quán)利要求12至15任意一項(xiàng)所述的執(zhí)行基于上下文模型的面向 服務(wù)架構(gòu)(SOA)的策略的方法,其中,所述更新操作包括添加實(shí)例文 檔、修改實(shí)例文檔和刪除實(shí)例文檔中的至少一個(gè)或其組合。
17. 根據(jù)權(quán)利要求15或16所述的執(zhí)行基于上下文模型的面向服務(wù)架構(gòu) (SOA)的策略的方法,其中,所述將上述策略應(yīng)用于新的實(shí)例化上下文模型步驟僅對(duì)上述新的實(shí)例化上下文模型中更新后的實(shí)例文檔進(jìn)行。
18. —種執(zhí)4亍基于上下文模型的面向服務(wù)架構(gòu)(SOA)的策略的策略 引擎,包括搜集單元,用于搜集與策,行相關(guān)的實(shí)例文檔; 上下文模型生成單元,用于利用所搜集的實(shí)例文檔,生成實(shí)例化上下 文模型;策略集合生成單元,用于根據(jù)所搜集的實(shí)例文檔,生成將要執(zhí)行的策 略集合;順序確定單元,用于確定上述策略集合中的策略的執(zhí)行順序;以及 策略應(yīng)用單元,用于將上述策略應(yīng)用于上述實(shí)例化上下文模型。
19. 根據(jù)權(quán)利要求18所述的執(zhí)行基于上下文模型的面向服務(wù)架構(gòu) (SOA)的策略的策略引擎,其中,所述搜集單元包括選擇單元,用于選擇并實(shí)例化符合上述業(yè)務(wù)要求的文檔,以獲得實(shí)例 文檔;檢查單元,用于檢查上述實(shí)例文檔的格式是否是XML格式;以及 轉(zhuǎn)換單元,用于將非XML格式的實(shí)例文檔轉(zhuǎn)換成XML格式的實(shí)例 文檔。
20. 根據(jù)權(quán)利要求18所述的執(zhí)行基于上下文模型的面向服務(wù)架構(gòu)(SOA)的策略的策略引擎,其中,所述搜集單元包括文檔指定單元,用于對(duì)符合上述業(yè)務(wù)要求上述上下文模型中的每一個(gè) XML文檔指定一個(gè)實(shí)例文檔,其中該實(shí)例文檔在結(jié)構(gòu)上符合對(duì)應(yīng)的XML 文檔的定義。
21. 根據(jù)權(quán)利要求18或19所述的執(zhí)行基于上下文模型的面向服務(wù)架構(gòu) (SOA)的策略的策略引擎,其中,所述上下文才莫型生成單元包括引用關(guān)系建立單元,用于對(duì)上述實(shí)例文檔的每一個(gè)建立其與其它實(shí)例 文檔的文檔間引用關(guān)系;以及聚合單元,用于通過上述文檔間引用關(guān)系聚合上述實(shí)例文檔。
22. 根據(jù)權(quán)利要求18或20所述的執(zhí)行基于上下文模型的面向服務(wù)架構(gòu) (SOA)的策略的策略引擎,其中,當(dāng)上述上下文模型使用XML規(guī)范定義的語法描述時(shí),所述上下文模型生成單元包括引用標(biāo)識(shí)修改單元,用于將符合上述業(yè)務(wù)要求的上述上下文才莫型中對(duì) 每一個(gè)XML文檔的引用標(biāo)識(shí)修改為對(duì)相應(yīng)的實(shí)例文檔的引用標(biāo)識(shí)。
23. 根據(jù)權(quán)利要求18或20所述的執(zhí)行基于上下文模型的面向服務(wù)架構(gòu) (SOA)的策略的策略引擎,其中,當(dāng)上述上下文才莫型4吏用SML規(guī)范定義的語法描述時(shí),所述上下文模型生成單元包括引用修改單元,用于將符合上述業(yè)務(wù)要求的上述上下文模型中的SML 聚合文檔中對(duì)每個(gè)XML文檔的統(tǒng)一資源標(biāo)識(shí)符的引用修改為對(duì)相應(yīng)的實(shí) 例文檔的統(tǒng)一資源標(biāo)識(shí)符的引用,以生成新的SML聚合文檔;其中,上述新的SML聚合文檔和所搜集的實(shí)例文檔一起構(gòu)成上述實(shí) 例化上下文模型。
24. 根據(jù)權(quán)利要求18至23任意一項(xiàng)所述的執(zhí)行基于上下文模型的面向 服務(wù)架構(gòu)(SOA)的策略的策略引擎,其中,所述策略集合生成單元包括:策略確定單元,用于確定與所搜集的實(shí)例文檔相關(guān)的策略;以及 集合單元,用于集合上述所確定的策略以形成策略集合。
25. 根據(jù)權(quán)利要求18至23任意一項(xiàng)所述的執(zhí)行基于上下文模型的面向 服務(wù)架構(gòu)(SOA)的策略的策略引擎,其中,所述策略集合生成單元包括:策略確定單元,用于確定與所搜集的實(shí)例文檔相關(guān)的策略; 過濾單元,用于根據(jù)文檔-策略綁定,過濾所確定的策略;以及 集合單元,用于集合過濾后的策略以形成策略集合。
26. 根據(jù)權(quán)利要求25所述的執(zhí)行基于上下文模型的面向服務(wù)架構(gòu) (SOA)的策略的策略引擎,其中,上述文檔-策略綁定是預(yù)先確定的。
27. 根據(jù)權(quán)利要求25所述的執(zhí)行基于上下文模型的面向服務(wù)架構(gòu) (SOA)的策略的策略引擎,其中,上述文檔-策略綁定是才艮據(jù)應(yīng)用邏輯產(chǎn)生的。
28. 根據(jù)權(quán)利要求18至27任意一項(xiàng)所述的執(zhí)行基于上下文模型的面向 服務(wù)架構(gòu)(SOA)的策略的策略引擎,其中,所述順序確定單元包括優(yōu)先級(jí)設(shè)置單元,用于設(shè)置上述策略的優(yōu)先級(jí);以及 排序單元,用于根據(jù)上述優(yōu)先級(jí),對(duì)上述策略排序。
29. 根據(jù)權(quán)利要求18至28任意一項(xiàng)所述的執(zhí)行基于上下文模型的面向 服務(wù)架構(gòu)(SOA)的策略的策略引擎,其中,所述策略應(yīng)用單元包括文檔驗(yàn)證器,用于使用上述策略驗(yàn)證上述實(shí)例化上下文模型中的實(shí)例 文檔是否匹配;mi才艮告生成單元,用于在上述實(shí)例文檔匹配的情況下,產(chǎn)生^i報(bào) 告;以及動(dòng)作執(zhí)行單元,用于根據(jù)上述te報(bào)告,執(zhí)行該匹配的策略的動(dòng)作部分。
30. 根據(jù)權(quán)利要求29所述的執(zhí)行基于上下文模型的面向服務(wù)架構(gòu) (SOA)的策略的策略引擎,其中,所述文檔驗(yàn)證器包括結(jié)構(gòu)驗(yàn)證單元,用于使用上述策略中的模式文檔驗(yàn)證上述實(shí)例化上下 文模型中的實(shí)例文檔的結(jié)構(gòu);以及內(nèi) 證單元,用于使用上述策略中的條件部分驗(yàn)證上述實(shí)例化上下 文模型中的實(shí)例文檔的內(nèi)容。
31. 根據(jù)權(quán)利要求29或30所述的執(zhí)行基于上下文模型的面向服務(wù)架構(gòu) (SOA)的策略的策略引擎,其中,所述動(dòng)作執(zhí)行單元包括裝載單元,用于裝載上述動(dòng)作部分中的動(dòng)作語義模塊; 參數(shù)設(shè)置單元,用于設(shè)置上述動(dòng)作語義模塊中的參數(shù);以及 運(yùn)行單元,用于運(yùn)行上述動(dòng)作語義模塊。
32. 根據(jù)權(quán)利要求29至32任意一項(xiàng)所述的執(zhí)行基于上下文模型的面向 服務(wù)架構(gòu)(SOA)的策略的策略引擎,其中,所述策略應(yīng)用單元還包括更新判斷單元,用于判斷上述實(shí)例化上下文模型是否需要更新; 更新單元,用于執(zhí)行更新操作;以及沖突檢測(cè)和解決單元,用于檢測(cè)并解決由上述更新操作引起的沖突; 并且,所述上下文4莫型生成單元才艮據(jù)更新后的實(shí)例文檔和原實(shí)例化上 下文模型,生成新的實(shí)例化上下文模型;所述策略應(yīng)用單元對(duì)上述新的實(shí)例化上下文4莫型應(yīng)用上述策略。
33. 根據(jù)權(quán)利要求32所述的執(zhí)行基于上下文模型的面向服務(wù)架構(gòu) (SOA)的策略的策略引擎,其中,所述更新單元包括添力。單元,用于添力n實(shí)例文檔; 修改單元,用于修改實(shí)例文檔;以及 刪除單元,用于刪除實(shí)例文檔。
34. 根據(jù)權(quán)利要求32或33所述的執(zhí)行基于上下文模型的面向服務(wù)架構(gòu) (SOA)的策略的策略引擎,其中,所述策略應(yīng)用單元僅對(duì)上述新的實(shí)例化上下文模型中的更新后的實(shí)例文檔應(yīng)用所述策略。
全文摘要
一種執(zhí)行基于上下文模型的面向服務(wù)架構(gòu)的策略的方法,包括根據(jù)業(yè)務(wù)要求,搜集與策略執(zhí)行相關(guān)的實(shí)例文檔;利用所搜集的實(shí)例文檔,生成實(shí)例化上下文模型;根據(jù)所搜集的實(shí)例文檔,生成將要執(zhí)行的策略集合;確定上述策略集合中的策略的執(zhí)行順序;以及按照上述執(zhí)行順序,將上述策略應(yīng)用于上述實(shí)例化上下文模型。本發(fā)明的執(zhí)行基于上下文模型的SOA策略的方法可以根據(jù)策略執(zhí)行的場(chǎng)景和目的靈活地搜集實(shí)例文檔以限定策略范圍,例如計(jì)劃、應(yīng)用、服務(wù)等,并且可以應(yīng)用于各種類型的SOA策略。此外,本發(fā)明還提供了一種執(zhí)行基于上下文模型的面向服務(wù)架構(gòu)的策略的策略引擎。
文檔編號(hào)G06F9/44GK101441560SQ20071018708
公開日2009年5月27日 申請(qǐng)日期2007年11月23日 優(yōu)先權(quán)日2007年11月23日
發(fā)明者劉昕鵬, 周可馨, 周宇辰, 王夕寧, 亮 薛 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司