專利名稱:用于重構(gòu)面向服務(wù)的應(yīng)用的方法及其設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及面向服務(wù)的體系構(gòu)架的服務(wù)處理技術(shù)領(lǐng)域,尤其涉及用于重構(gòu)面向服務(wù)的應(yīng)用的方法及其設(shè)備。
背景技術(shù):
在面向服務(wù)的(SOA)解決方案中,服務(wù)是使業(yè)務(wù)與IT技術(shù)對(duì)齊的中心焦點(diǎn)。當(dāng)為不同客戶提供SOA解決方案時(shí),由于客戶的需求不盡相同,因此需要構(gòu)建可重用的SOA解決方案的方法,以最小的額外努力滿足不同客戶的需求。
在面對(duì)不同客戶時(shí),服務(wù)模型中最常變化的4J艮務(wù)的消息、服務(wù)操作,例如添加字段到現(xiàn)有輸入/輸出消息的定義;從現(xiàn)有的消息定義刪除字段;添加/刪除/修^J艮務(wù)操作,在提供可重用SOA解決方案的同時(shí)需JH^持整個(gè)SOA解決方案仍表現(xiàn)得連貫一致。
在所有這些變化要求中, 一些消息字段或服務(wù)操作是整個(gè)SOA解決方案中業(yè)務(wù)流程或業(yè)務(wù)監(jiān)控的關(guān)鍵,用戶不能刪除或修改這些消息字段或服務(wù)操作。
對(duì)于這種情況,現(xiàn)有技術(shù)中使用的方法有
1. 為每個(gè)客戶定制整個(gè)解決方案,重新i殳計(jì)或重新構(gòu)建。
2. 使用MDD (模型驅(qū)動(dòng)開(kāi)發(fā))方法憑借同一個(gè)復(fù)雜模型生成整個(gè)解決方案。
3. 使用傳統(tǒng)的面向變化的設(shè)計(jì)(例如配置文件或業(yè)M則)來(lái)支持未來(lái)可能的變化。
然而,以上方法分別具有如下的缺點(diǎn)
1.修改現(xiàn)有的SOA解決方案需要對(duì)整個(gè)SOA解決方案的連貫一致的深入理解,包括服務(wù)和服務(wù)消息之間的關(guān)系。修改每個(gè)服務(wù)實(shí)現(xiàn)需要非常小心并且消耗時(shí)間,因此降低了 SOA解決方案實(shí)際的可重用性。2。 MDD是自上而下的方法,通過(guò)對(duì)模型組件的變換來(lái)實(shí)現(xiàn)源代碼的修改。這種MDD方法嚴(yán)重依賴于代碼生成,盡管可以解決一些簡(jiǎn)單的問(wèn)題,但是由于所有代碼變化都能從模型生成,因此該MDD方法并不支持包含了大量服務(wù)、業(yè)務(wù)流程和有關(guān)服務(wù)元件與服務(wù)的內(nèi)部復(fù)雜關(guān)系的復(fù)雜SOA解決方案。
3. 傳統(tǒng)的面向變化的^1計(jì)不考慮服務(wù)契約級(jí)的變化。
發(fā)明內(nèi)容
本發(fā)明旨在提供一種全新的用于重構(gòu)面向服務(wù)的應(yīng)用的技術(shù)方案,以期克服以上現(xiàn)有技術(shù)中存在的至少 一種缺陷。
根據(jù)本發(fā)明的一個(gè)方面,一種提,對(duì)面向服務(wù)的應(yīng)用的重構(gòu)方案的方法,所述面向服務(wù)的應(yīng)用包括服務(wù)模型和與所^良務(wù)模型相關(guān)的服務(wù)模型源代碼,該方法包括以下步驟
識(shí)別所^J良務(wù)模型中的可變化服務(wù)元件;
基于可變化的服務(wù)元件,構(gòu)建用于定義有關(guān)所述可變化服務(wù)元件的可選擇變>(匕點(diǎn)信息的變>^模型;以及
創(chuàng)建支持變化實(shí)現(xiàn)的源代碼,所述支持變化實(shí)現(xiàn)的源代碼定義了為實(shí)現(xiàn)有關(guān)可變化服務(wù)元件的變化點(diǎn)信息而需要的服務(wù)模型和服務(wù)模型源代碼的變化,用于使用對(duì)所述變化模型中有關(guān)可變化服務(wù)元件的變化點(diǎn)信息的選^r作為輸入,才艮據(jù)所述源代碼中支持所述變化點(diǎn)實(shí)現(xiàn)的變化定義對(duì)所
述服務(wù)模型和服務(wù)模型源代碼進(jìn)行預(yù)定的重構(gòu)處理。
所述提供重構(gòu)方案的方法可以在提供面向服務(wù)的應(yīng)用的同時(shí)或之后進(jìn)行。
所述可變化服務(wù)元件,通常包括服務(wù)模型中服務(wù)契約級(jí)的變化,例如業(yè)務(wù)流程、服務(wù)、服務(wù)描述、月l務(wù)通信協(xié)議和/或傳輸?shù)裙δ軐?shí)體;和/或包括策略、安全性、事務(wù)和/或管理等有關(guān)服務(wù)質(zhì)量的非功能性實(shí)體。
所述有關(guān)可變化服務(wù)元件的變化點(diǎn)信息包括用于定義服務(wù)元件是否可變以及變化范圍的可變性信息,具體包括消息字段的增刪或修改、服務(wù)操作(包括發(fā)布、發(fā)現(xiàn)、綁定和調(diào)用)的增刪或修改、和/或服務(wù)的非功能性需要(事務(wù)、安全性)等的增刪或修改.消息字段的增刪或修改例如有添加字段到現(xiàn)有輸"輸出消息的定義;從現(xiàn)有的消息定義刪除字段等。所述變化模型是基于變化元模型完成,所述變化元模型定義了所有的有關(guān)可變化服務(wù)元件的變化點(diǎn)信息(變化點(diǎn))的定義格式。變化模型本身也可以包含變化元模型的所有信息,即也可以定義所有的有關(guān)可變化服務(wù)元件的變化點(diǎn)信息。
所述支持變化實(shí)現(xiàn)的源代碼用于在服務(wù)模型級(jí)以及代碼級(jí)實(shí)現(xiàn)服務(wù)元件本身的變化以及對(duì)服務(wù)契約影響的變化定義,該服務(wù)契約影響變化定
義用于定義所述服務(wù)元件變化所引發(fā)的其它服務(wù)元件的變化,例如,如果一條服務(wù)的消息變化, 一些其他的服務(wù)或流程的消息也應(yīng)變化。
才艮據(jù)本發(fā)明的第二方面, 一種用于重構(gòu)面向服務(wù)的應(yīng)用的方法,包括
以下步驟
準(zhǔn)備用于定義有關(guān)服務(wù)模型中可變化服務(wù)元件的可選擇變化點(diǎn)信息的變化模型、以及支持變化實(shí)現(xiàn)的源代碼,所述支持變化實(shí)現(xiàn)的源代碼定義了實(shí)現(xiàn)有關(guān)服務(wù)元件的變化點(diǎn)信息而需要的服務(wù)模型和服務(wù)模型源代碼的變化;
選擇所述變化模型中有關(guān)可變化服務(wù)元件的變化點(diǎn)信息;
使用所選擇的變化點(diǎn)信息作為輸入,由所述支持變化實(shí)現(xiàn)的源代碼對(duì)所述服務(wù)模型和服務(wù)模型源4戈碼ii行預(yù)定的重構(gòu)處理。
所述預(yù)定的重構(gòu)處理基于所述支持變化實(shí)現(xiàn)的源代碼中的變化定義,包括修^Ul務(wù)模型和修改部署腳本、以及以下步驟中的至少一個(gè)在代碼級(jí)修^艮務(wù)元件實(shí)現(xiàn);在配置級(jí)修^J3艮務(wù)實(shí)現(xiàn);修改受影響的業(yè)務(wù)流程;修改面向服務(wù)應(yīng)用中的服務(wù)調(diào)用客戶存根進(jìn)程;或者修改受到月l務(wù)元件改變的影響的用戶界面部分。
本發(fā)明的第 一方面涉及如何定義變化模型和如何提供變化支持的實(shí)現(xiàn)的方法。使用該方法,可以在向客戶提供SOA解決方案(服務(wù)模型)及其實(shí)現(xiàn)的同時(shí),提供解決方案的可能變化(即變化模型)及支持以上可能變化的實(shí)現(xiàn)(即變化支持實(shí)現(xiàn)),使SOA解決方案對(duì)不同客戶更有靈活性。本發(fā)明的第二方面涉及使用服務(wù)契約級(jí)的變化模型來(lái)控制服務(wù)的業(yè)務(wù)功能的可能變化,而且根據(jù)從變化模型選擇的每個(gè)變化點(diǎn),使用變化支持的實(shí)現(xiàn)來(lái)重構(gòu)面向服務(wù)的整個(gè)應(yīng)用,以適應(yīng)不同客戶的變化。由此提出了對(duì)不同客戶有最大的可重用性/適應(yīng)性的SOA解決方案的系統(tǒng)。
由于本發(fā)明的方法是中間對(duì)齊的方法,具體地首先通itl艮務(wù)契約變化模型來(lái)控制服務(wù)模型的可變性,而JL基于針對(duì)SOA解決方案的標(biāo)準(zhǔn)實(shí)現(xiàn)來(lái)完成對(duì)面向服務(wù)的應(yīng)用的重構(gòu)/再用,因此本發(fā)明的方法不依賴于代碼生成,而是主要調(diào)節(jié)代碼/配置的修^/重構(gòu),由此為解決方案提供商提供了更大的自由和處理變化的能力,使得可以以被控制的和標(biāo)準(zhǔn)化的方式進(jìn)行定制,并且使定制所需的努力最小化。
根據(jù)本發(fā)明再一個(gè)方面, 一種針對(duì)面向服務(wù)的應(yīng)用的重構(gòu)方案提供設(shè)
備,包括
識(shí)別裝置,被配置為識(shí)別所述服務(wù)模型中的可變化服務(wù)元件;
變化模型構(gòu)建裝置,被配置為基于可變化的服務(wù)元件,構(gòu)建用于定義有關(guān)所述可變化服務(wù)元件的可選擇變化點(diǎn)信息的變化模型;以及
代碼創(chuàng)建裝置,被配置為創(chuàng)建支持變化實(shí)現(xiàn)的源代碼,
所述支持變化實(shí)現(xiàn)的源代碼定義了為實(shí)現(xiàn)有關(guān)可變化服務(wù)元件的變化點(diǎn)信息而需要的服務(wù)模型和服務(wù)模型源代碼的變化,用于使用對(duì)所述變化模型中有關(guān)可變化服務(wù)元件的變化點(diǎn)信息的選擇作為輸入,根據(jù)其中支持所述變化點(diǎn)實(shí)現(xiàn)的變化定義對(duì)所述服務(wù)模型和服務(wù)模型源代碼進(jìn)行預(yù)定的重構(gòu)處理。
根據(jù)本發(fā)明再一個(gè)方面, 一種面向服務(wù)的應(yīng)用的重構(gòu)該:備,包括
確定裝置,被配置為從定義了有關(guān)服務(wù)模型中可變化服務(wù)元件的變化點(diǎn)信息的變化模型中確定有關(guān)可變化服務(wù)元件的變化點(diǎn)信息;以及
修改裝置,被配置為接收所確定的變化點(diǎn)信息作為輸入,基于支持變化實(shí)現(xiàn)的源代碼對(duì)所iO艮務(wù)模型和服務(wù)模型源代碼進(jìn)行預(yù)定的重構(gòu)處理,所述支持變化實(shí)現(xiàn)的源代碼定義了實(shí)現(xiàn)有關(guān)服務(wù)元件的變化點(diǎn)信息而需要的服務(wù)模型和服務(wù)模型源代碼的變化。
參照下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例的說(shuō)明,會(huì)更加容易地理解本發(fā)明的以上和其它目的、特點(diǎn)和優(yōu)點(diǎn)。在附圖中,相同的或?qū)?yīng)的技術(shù)特征或部件將采用相同或?qū)?yīng)的附圖標(biāo)記來(lái)表示。
圖1示出了根據(jù)本發(fā)明的提掩計(jì)對(duì)面向服務(wù)的應(yīng)用的重構(gòu)方案的方法以及該重構(gòu)方案的應(yīng)用;
圖2示出了圖1中步驟108的詳細(xì)過(guò)程。
8圖3示出了才艮據(jù)本發(fā)明的重構(gòu)方案提供i殳備。
圖4示出了根據(jù)本發(fā)明的面向服務(wù)的應(yīng)用的重構(gòu)設(shè)備.
圖5A和5B是分別示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的可變化服務(wù)元件的變化前后的示意圖。
圖6示出了應(yīng)用本發(fā)明的計(jì)算機(jī)系統(tǒng)。
具體實(shí)施例方式
下面參照附圖來(lái)il明本發(fā)明的實(shí)施例。應(yīng)當(dāng)注意,為了清楚的目的,附圖和說(shuō)明中省略了與本發(fā)明無(wú)關(guān)的、本領(lǐng)域普通技術(shù)人員已知的部件和處理的表示和描述。
在以下的詳細(xì)說(shuō)明中使用了如下的術(shù)語(yǔ)。
面向服務(wù)的體系結(jié)構(gòu)是一個(gè)組件模型,本質(zhì)上是相互通信的服務(wù)集,這種通信可能是簡(jiǎn)單的數(shù)據(jù)傳送或者兩個(gè)以上的服務(wù)組合活動(dòng)。具體地,
些服務(wù)之間定義良好的接口和契約聯(lián)系起來(lái)。
服務(wù)服務(wù)由資源(如數(shù)據(jù)、程序或設(shè)備)、服務(wù)邏輯和消息處理構(gòu)成。當(dāng)消息到達(dá)一個(gè)服務(wù)時(shí)激活使用資源的服務(wù)邏輯。在面向服務(wù)的體系結(jié)構(gòu)中服務(wù)映射到業(yè)務(wù)單元,相應(yīng)地服務(wù)通常包括服務(wù)注冊(cè)中心;例如業(yè)務(wù)流程、服務(wù)、服務(wù)描述、服務(wù)通信協(xié)議和傳輸?shù)裙δ軐?shí)體;以及包括策略、安全性、事務(wù)和管理等有關(guān)服務(wù)質(zhì)量方面的非功能性實(shí)體。
接口定義了服務(wù)請(qǐng)求者和服務(wù)提供者之間的契約,以便通過(guò)接口發(fā)現(xiàn)、發(fā)布和調(diào)用服務(wù)。
;^發(fā)明的方法和該:備
根據(jù)本發(fā)明, 一種提,對(duì)面向服務(wù)的應(yīng)用的重構(gòu)方案的方法,所述面向服務(wù)的應(yīng)用包括服務(wù)模型和與所述服務(wù)模型相關(guān)的服務(wù)模型源代碼,該方法包括以下步驟識(shí)別所^艮務(wù)模型中的可變化服務(wù)元件;基于可變化的服務(wù)元件,構(gòu)建用于定義有關(guān)所述可變化服務(wù)元件的可選擇變化點(diǎn)信息的變化模型;以及創(chuàng)建支持變化實(shí)現(xiàn)的源代碼,所述支持變化實(shí)現(xiàn)的源代碼定義了為實(shí)現(xiàn)有關(guān)可變化服務(wù)元件的變化點(diǎn)信息而需要的服務(wù)模型和服務(wù)模型源代碼的變化,用于使用對(duì)所述變化模型中有關(guān)可變化服務(wù)元件的變化點(diǎn)信息的選#^作為輸入,根據(jù)所述源代碼中支持所述變化點(diǎn)實(shí)現(xiàn)的變化定義對(duì)所^艮務(wù)模型和服務(wù)模型源代碼進(jìn)行預(yù)定的重構(gòu)處理。
本發(fā)明還涉及一種用于重構(gòu)面向服務(wù)的應(yīng)用的方法,該方法包括以下
步驟準(zhǔn)備用于定義有關(guān)服務(wù)模型中可變化服務(wù)元件的可選擇變化點(diǎn)信息
的變化模型、以及支持變化實(shí)現(xiàn)的源代碼,所述支持變化實(shí)現(xiàn)的源代碼定義了實(shí)現(xiàn)有關(guān)服務(wù)元件的變化點(diǎn)信息而需要的服務(wù)模型和服務(wù)模型源代
碼的變化;選擇所述變化模型中有關(guān)可變化服務(wù)元件的變化點(diǎn)信息;使用所選擇的變化點(diǎn)信息作為輸入,由所述支持變化實(shí)現(xiàn)的源代碼對(duì)所述服務(wù)模型和服務(wù)模型源代碼進(jìn)行預(yù)定的重構(gòu)處理。
圖1示出了根據(jù)本發(fā)明的提,對(duì)面向服務(wù)的應(yīng)用的重構(gòu)方案的方法以及該重構(gòu)方案的應(yīng)用100。
步驟101表示在設(shè)計(jì)級(jí)提供服務(wù)模型。該服務(wù)模型代表了面向服務(wù)的解決方案,是一組在某一特定工商業(yè)/事業(yè)領(lǐng)域中相關(guān)的服務(wù)和業(yè)務(wù)流程,例如政府部門(mén)的案例管理。
步驟102表示提供代碼級(jí)的服務(wù)模型實(shí)現(xiàn)。
服務(wù)模型實(shí)現(xiàn)即服務(wù)模型的源代碼,可以是包括以人類可讀的計(jì)算機(jī)語(yǔ)言(如C, C++, C#, assembler, Fortran, BASIC, Pascal, Java,LISP, ML, Objective-C, Perl, PHP, Python, Matlab, Visual Basic,SQL, HTML, XML或其他任何計(jì)算機(jī)語(yǔ)言)編程的一系列陳述的文件,也可以包括定義了 一些由圖形元件表示的人類可讀計(jì)算機(jī)語(yǔ)言的圖形信息。
服務(wù)模型是其源代碼的抽M示,可以是圖形模型或例如樹(shù)形結(jié)構(gòu)、關(guān)系表等任何類型的模型,也可以是文4型。
包括源代碼的文件和/或相關(guān)的源代碼(服務(wù)模型)都可以存儲(chǔ)在存^i殳備和/或內(nèi)存中,也都可以在顯示器上顯示。
服務(wù)模型源代碼中的元件和服務(wù)模型中的元件通過(guò)注釋等方式彼此鏈接,如本領(lǐng)域普通技術(shù)人員所了解,可以通過(guò)變換由模型的定義產(chǎn)生用以調(diào)用函數(shù)的源代碼或者由源代碼產(chǎn)生模型。因此本發(fā)明對(duì)步驟101和102的順序不作限制。
在步驟103為服務(wù)模型(SOA解決方案)準(zhǔn)備變化模型,變化模型定義了可能在服務(wù)模型中變化的范圍。注意步驟103雖然與步驟101同屬設(shè)計(jì)級(jí),但步驟103無(wú)需與步驟101同步進(jìn)行,因?yàn)榭梢栽谝呀?jīng)為客戶提供服務(wù)模型之后的不定時(shí)間內(nèi)再提供包括變化模型的重構(gòu)工具(重構(gòu)方案)。
設(shè)計(jì)變化模型首先需要在分析級(jí)確定服務(wù)模型中通用的以及可變化服務(wù)元件。可變化服務(wù)元件^J艮務(wù)契約級(jí)的,通常包括服務(wù)中的例如業(yè)務(wù)流程、服務(wù)、服務(wù)描述、服務(wù)通信協(xié)議和/或傳輸?shù)裙δ軐?shí)體;和/或包括策略、安全性(規(guī)則集)、事務(wù)(屬性集)和/或管理(屬性集)等有關(guān)服務(wù)質(zhì)量方面的非功能性實(shí)體。
其次,基于確定的可變化服務(wù)元件,創(chuàng)建預(yù)定義的接口變化協(xié)議,即用于定義有關(guān)服務(wù)模型中可變化服務(wù)元件的可選擇變化點(diǎn)信息的變化模型,具體地變化模型定義了哪個(gè)服務(wù)的哪個(gè)接口可變以及可如何變,由此使得服務(wù)可變區(qū)域變得標(biāo)準(zhǔn)化并提供了可管理/可控的變化定義。針對(duì)不同的領(lǐng)域、不同的客戶以及不同的需求,需要在服務(wù)契約級(jí)識(shí)別各種可能的和合理的變化,確定可能需要變化的服務(wù)元件。需要的變化越多,則變化模型就越復(fù)雜。
所述有關(guān)可變化服務(wù)元件的變化點(diǎn)信息包括用于定義服務(wù)元件是否可變以及變化范圍的可變性信息,具體包括消息字段的增刪或修改、服務(wù)操作(包括發(fā)布、發(fā)現(xiàn)、綁定和調(diào)用)的增刪或修改、和/或服務(wù)的非功能性需要(事務(wù)、安全性)等的增刪或修改。消息字段的增刪或修改例如有添加字段到現(xiàn)有輸X/輸出消息的定義;從現(xiàn)有的消息定義刪除字段等。
步驟104在代碼級(jí)準(zhǔn)^4h對(duì)每個(gè)變化點(diǎn)的變化支持實(shí)現(xiàn)。在提供標(biāo)準(zhǔn)服務(wù)模型的同時(shí)或者^(guò),需要基于對(duì)服務(wù)模型源代碼的一致性理解為變化模型中的每個(gè)變化點(diǎn)提供變化支持實(shí)現(xiàn)。
該變化支持實(shí)現(xiàn)即支持變化實(shí)現(xiàn)的代碼或腳本集(源代碼),同樣可以是包括以人類可讀的計(jì)算機(jī)語(yǔ)言編程的一系列陳述的文件,也可以包括定義了一些由圖形元件表示的人類可讀計(jì)算機(jī)語(yǔ)言的圖形信息。包括支持變化實(shí)現(xiàn)的源代碼的文件和變化模型都可以存儲(chǔ)在存儲(chǔ)設(shè)備和/或內(nèi)存中,也都可以在顯示器上顯示。
所述支持變化實(shí)現(xiàn)的源代碼定義了為實(shí)現(xiàn)有關(guān)可變化服務(wù)元件的變化點(diǎn)信息而需要的服務(wù)模型和服務(wù)模型源代碼的變化,即定義了在服務(wù)模型級(jí)以及代碼級(jí)實(shí)現(xiàn)服務(wù)元件本身的變化、以及對(duì)服務(wù)契約影響的變化定義,用于在執(zhí)行時(shí)使用對(duì)所述變化模型中有關(guān)可變化服務(wù)元件的變化點(diǎn)信息的選擇作為輸入,按照所述源代碼中支持所選擇變化點(diǎn)實(shí)現(xiàn)的相應(yīng)變化定義對(duì)所述服務(wù)模型和服務(wù)模型源代碼進(jìn)行修改,實(shí)現(xiàn)預(yù)定的重構(gòu)處理。即所述重構(gòu)處理已在所述支持變化實(shí)現(xiàn)的源代碼加以預(yù)定義。本公開(kāi)說(shuō)明書(shū)將在以下對(duì)重構(gòu)處理進(jìn)行詳細(xì)描述。
以上所述的服務(wù)契約影響變化定義定義了所述服務(wù)元件變化所引發(fā)的其它服務(wù)元件的變化,例如如果服務(wù)消息變化,必然導(dǎo)致其它一些服務(wù)或業(yè)務(wù)流程的變化。
由此步驟102和104構(gòu)成了定義變化模型以及提供變化支持的實(shí)現(xiàn)的方法。使用該方法,可以在向客戶提供SOA解決方案(服務(wù)模型)及其實(shí)現(xiàn)的同時(shí),提供解決方案的可能變化(即變化模型)及支持以上可能變化的實(shí)現(xiàn)(即變化支持實(shí)現(xiàn)),使面向服務(wù)的應(yīng)用對(duì)不同客戶更具靈活性。
在步驟105評(píng)估變化模型的可用性,即客戶在需要重構(gòu)面向服務(wù)的應(yīng)用時(shí)通過(guò)例如人機(jī)界面判斷變化模型所提供的可選擇變化點(diǎn)信息是否包括了客戶所需的變化點(diǎn),即判斷變化模型是否支持客戶希望的對(duì)面向服務(wù)應(yīng)用的改變。
如果在步驟106判斷為變化模型可以提供客戶所需的變化點(diǎn),則在步驟107由客戶通過(guò)例如A^界面選擇得到了支持的變化點(diǎn)信息。
所選擇的變化點(diǎn)信息作為符合變化模型的變化模型實(shí)例,定義了服務(wù)契約在客戶環(huán)境中實(shí)際如何改變。例如,在變化模型中定義了三個(gè)服務(wù)消息字段可被刪除。而在變化模型實(shí)例中只有一個(gè)或兩個(gè)字段要被刪除。
根據(jù)步驟107輸出的所選擇的變化點(diǎn)信息作為輸入的定制信息,在步驟108使用所述支持變化實(shí)現(xiàn)的源代碼中支持所選擇變化點(diǎn)的相應(yīng)變化定義對(duì)所述服務(wù)模型和服務(wù)模型源代碼進(jìn)行自動(dòng)修改,實(shí)現(xiàn)預(yù)定的重構(gòu)處理,由此為客戶獲得了定制的面向月良務(wù)應(yīng)用。
具體地,圖2示出了圖1中步驟108的詳細(xì)過(guò)程,即詳細(xì)的重構(gòu)處理。
在步驟201讀取基于變化模型定義的變化模型實(shí)例信息;在步驟202獲取服務(wù)模型變化點(diǎn)(若客戶僅選擇了 一個(gè)變化點(diǎn),則變化模型實(shí)例信息僅包括一個(gè)變化點(diǎn)信息);在步驟203對(duì)所^艮務(wù)模型和服務(wù)模型源代碼進(jìn)行自動(dòng)修改,實(shí)現(xiàn)預(yù)定的重構(gòu)處理;在步驟204判斷是否已處理所有已選擇的服務(wù)變化點(diǎn)?若已處理所有已選擇的服務(wù)變化點(diǎn),則在步驟205進(jìn)行清理并重建面向服務(wù)的應(yīng)用。
所述預(yù)定的重構(gòu)處理(步驟203 )基于所述支持變化實(shí)現(xiàn)的源代碼中的預(yù)定的變化定義,可以包括以下不受順序限制的步驟
修2tJi良務(wù)模型,通常修giJ艮務(wù)注冊(cè)中心的WSDL, XSD(BO)定義、規(guī)劃或者屬性;
修改面向服務(wù)應(yīng)用的部署腳本,例如數(shù)據(jù)模型改變的DB腳本、以及一些在服務(wù)契約中需要中間件平臺(tái)等的部署支持的非功能性需求改變(例如安全性和事務(wù)改變);以及
以下處理步驟中的至少一個(gè)在代碼級(jí)修^J艮務(wù)元件實(shí)現(xiàn),對(duì)新的服務(wù)IMt只生成程序骨架;在配置級(jí)修^J艮務(wù)實(shí)現(xiàn),例如配置文件和業(yè)^MJ,J定義等;
修改受影響的業(yè)務(wù)流程,以便合并整個(gè)過(guò)程中的改變。通常需要普改BPEL定義文件或其它工作流程定義語(yǔ)言;
僅修改面向服務(wù)應(yīng)用中的服務(wù)調(diào)用客戶存根進(jìn)程(stub)(通常需要修^J良務(wù)調(diào)用代碼和客戶存根),但不包括修改其他服務(wù)實(shí)現(xiàn);或
修改受到服務(wù)契約改變的影響的用戶界面部分。
圖3示出了重構(gòu)方案提供設(shè)備300,包括識(shí)別裝置310,被配置為識(shí)別所iii良務(wù)模型中的可變化服務(wù)元件;變化模型構(gòu)建裝置320,被配置為基于可變化的月l務(wù)元件,構(gòu)建用于定義有關(guān)所述可變化服務(wù)元件的可選擇變化點(diǎn)信息的變化模型321;以及代碼創(chuàng)建裝置330,被配置為創(chuàng)建支持變化實(shí)現(xiàn)的源代碼331。
圖4相應(yīng)地示出了一種面向服務(wù)的應(yīng)用的重構(gòu)設(shè)備400,包括
確定裝置410,被配置為在從變化模型321選擇了變化點(diǎn)后通it^變化模型401讀取變化點(diǎn)信息(或由多個(gè)變化點(diǎn)信息構(gòu)成的變化模型實(shí)例信息)來(lái)確定有關(guān)可變化服務(wù)元件的變化點(diǎn)信息;以及
修改裝置420,被配置為接收所確定的變化點(diǎn)信息作為輸入,基于支持變化實(shí)現(xiàn)的源代碼331對(duì)所述服務(wù)模型和服務(wù)模型源代碼進(jìn)行預(yù)定的重構(gòu)處理,所述支持變化實(shí)現(xiàn)的源代碼定義了實(shí)現(xiàn)有關(guān)服務(wù)元件的變化點(diǎn)信息而需要的服務(wù)模型和服務(wù)模型源代碼的變化。
修改裝置420包括服務(wù)模型修改單元421、部署腳本修改單元427以及以下修改單元中的至少一個(gè)服務(wù)元件實(shí)現(xiàn)修改單元422、服務(wù)實(shí)現(xiàn)配置修改單元423;業(yè)務(wù)流程修改單元424、客戶存根進(jìn)程修改單元425或
13用戶界面《務(wù)改單元426,分別用于處理如如上所述步驟203的具體處理步驟。
實(shí)現(xiàn)以上重構(gòu)處理的支持變化實(shí)現(xiàn)的源代碼是針對(duì)特定服務(wù)的。不同的服務(wù)元件變化需要不同的具體重構(gòu)處理步驟(如圖2步驟203所示)或修改單元(如圖4修改裝置420所示)或其組合,這一點(diǎn)可根據(jù)面向服務(wù)應(yīng)用中具體的服務(wù)元件及其變化引發(fā)的影響來(lái)由設(shè)計(jì)人員進(jìn)行分析判斷。
例如,通常服務(wù)元件的任何變化(包括功能性和非功能性需求改變),都需要服務(wù)模型修改單元421和部署腳本修改單元427對(duì)服務(wù)模型以及部署腳本進(jìn)行修改;在改變服務(wù)消息時(shí)還需要服務(wù)元件實(shí)現(xiàn)修改單元422和客戶存根進(jìn)程修改單元425對(duì)服務(wù)元件實(shí)現(xiàn)和服務(wù)調(diào)用客戶存根進(jìn)程進(jìn)行修改;如果改變服務(wù)消息并且該服務(wù)消息出現(xiàn)在某些業(yè)務(wù)過(guò)程中或工作流程定義中時(shí)則還需要業(yè)務(wù)流程修改單元424對(duì)受影響的業(yè)務(wù)流程進(jìn)行修改;如果服務(wù)使用了配置機(jī)制或規(guī)則引擎,則還需要服務(wù)實(shí)現(xiàn)配置修改單元423;而如果存在與改變消息的服務(wù)相關(guān)的用戶界面,則還需要用戶界面修改單元426。而如果僅僅是非功能性需求改變,則僅需要服務(wù)模型修改單元421和部署腳本修改單元427對(duì)服務(wù)模型以及部署腳本進(jìn)行修改。
變化元模型
變化模型是基于變化元模型完成的,即作為變化元模型的一個(gè)實(shí)例,而變化元模型定義了所有的有關(guān)可變化服務(wù)元件的變化點(diǎn)信息(變化點(diǎn))的定義格式。所述變化模型本身也可以包含變化元模型的所有信息,即其本身也可定義所有的有關(guān)可變化服務(wù)元件的變化點(diǎn)信息。
變化元模型定義了控制如何定義變化模型。根據(jù)不同面向服務(wù)應(yīng)用的不同要求,變化元模型可以簡(jiǎn)單也可以復(fù)雜,可以是圖形模型或例如樹(shù)形結(jié)構(gòu)、關(guān)系表等任何類型的模型,也可以是文M型。如下示出了以XML語(yǔ)言編寫(xiě)的定義了所有的有關(guān)可變化服務(wù)元件的變化點(diǎn)信息的變化元模型示例。
< xm/ /ers/'on=".0" encoaf/'ng="L/7F-8" >
(schema fargef/Vamespace=7jHp.'〃wi/\w./'ib/r7. comAVSVa〃'af/'on" e/emenfFormOefat//^ "qrua//77eoTxm/ns=77ftp.'//www. w3. org/200lOCMLSchema" xm/ns:fns=77ftp.v/wmv./'ibm. com/l/l/SVar/'af/'on ">
〃XML 定乂 7變眾元漠歪游名字^^7^ttpy/www./'ibm.com/lVSVarZatoA^
<comp/ex7>pe name="Se/v/'ceVa〃'aton "> 〃變眾點(diǎn)游定乂, 一凝新差x^5 J^一個(gè)贗多。<aff〃';bute name='se/v/'ceA/ame' fype='sfr7'ng^> 〃嚴(yán)多游名字
<aff〃'ibt;te name="se/v/'ceA/amespace" fype="sfr7'ng"></e/emenf> 〃一個(gè)變眾,d,對(duì)應(yīng)贗多游名字S河
〈aft廠/6wte na/7 e="serw'cePo/t7ype"(Kpe="sf〃'ng"></e/emenf>〃 一^^眾點(diǎn)^f對(duì)il I多游端/7^^, 這個(gè)浙J:,尉;f微定XW僧儒魏點(diǎn)
<e/eA7 errf name=7npt/WWessage/a〃'af/'on" (ype="fr s:Messagfe/a〃'aft'on"></e/eme/^> 〃 一個(gè)
變眾點(diǎn)^激乂撒I游
<e/emenf name="oi//pt/WWessage/an'aton" fype=' ns.'Message/a〃af/'on"></e/eAneA f> # —
個(gè),眾點(diǎn)^翰幼樣息游^,化點(diǎn)
<e/emenf naA7 e="se/v/ce/a〃'aM/ /'> 〃賴束鲞體定義這個(gè)資眾點(diǎn)游^^絲
<resfr7cf/on jbase="sfr*/ng">
<e/7t/meraf/on \za/we="£d/te6/e"></entyme/*af/on>// ^T編獰,但是不^T"J/y^ <eni/meraf/'on /a/ue=7 emo/ajb/e"></enumeraf/o/ >// ^7"^/#/尿貪
</s/mp/67>pe> </comp/ex7ype>
<comp/exrypename='7Wessasfe/ar/af/on"> 〃驗(yàn)A撒唐^變絲游定J6激
<e/e/r enf name='77e/c//aA7'af/on" fype='Yns:Re/d/a〃'aft'on" 〃一個(gè)翰乂將,息游^",絲屋^它游字虔游 輕勝邀成
maxOcct//*s=""nbowcted" m/>70ccuA*s= "0 ">
</fco/7 p/e;f Type >
《comp/狄7ypename 'F/e/c/V^7'aft'on、 〃 一個(gè)將乂息字虔游^^絲定乂
<e/emenf name="f/'e/GWddajWe" fype="6oo/ean" maxOco/rs="" m/nOco/A*s="0"> <yetemenf> 〃 以^i 個(gè)^^^yg^/7^^虔嗎
<e/emenf name=7fe/c/f emoai)/e" fype="6oo/ean" maxOcct//*s="f" m/nOca//*s="0"></e/e/r enf> //這
付脾婦駒
<6/6msnf / 3/7 6二"/ 6/Gf/^/xec/" fyp6="boo/6sr " m3x0cct/A*s=""/" m/nOccu/"s="0"></e/6m6nf> //這個(gè)字
靜柳録
<e/emenf name=7 e/afMocW7ajb/e" fype="jboo/eaA " max0cayrs="7" m/nOccwrs="0"></e/emenf> //這
個(gè)字虔TO録
<e/emenf name:'7/e/d/ emovec/" fype="boo/ean" maxOcct//*s="7" m/>7Occtyrs="0"> </e/emenf> #這個(gè)
<e/emenf name="/7e/aWdctecr (ype二7lcfatecF/e/d" maxOcct/rs=" unbowctecT m/nOcct/rs="0"> <e/emenf>〃這個(gè)字虔之后譜》/77—個(gè)字虔'字虔定J^在Acfdec/Re/cy ^
<e/emenf A7ame=7/e/Gf/Wod/77eoT (ype="Mod/7/eaF/e/d" maxOcct/rs="" m/A7Occwrs="0"></e/emeA7f> 〃 這仲凝變改:r,嫩/^絲MocW7ecF/e財(cái)
<e/emenf name="fi'e/o7/ame" fype="sfr/ng" maxOccu廠s-"7" m/> Occurs="0"></e/emenf> 〃這個(gè)^^y^ 名字
</comp/ex7yp6>
<Comp/e;r7>pe name='iAcWeaF/'e/Qf' 6ase='sfr7> Sf'> <aff〃'jbi7te name-TfeWrype' fype='sfr*/"g'々 <yC0Ar p/ex7ype> //做字虔麟娜名字
<Comp/ex7"ype name二'Mod折ed' jbase='sfr7V7g'>
<att〃'jbt7te /7ame=7fe/dAtew7>pe' fype='sfr7>7g> 〃體改字虔游^^^7名字
<affr*"te /7ame=7/e/afAtewA/ame' type='sfr7'ng'々 〃 録字段游箭名字
<e/e/77enf A ame="nesteGF/'e/(T fype='7Woaf/7 ecr /77/nOccurs="0"> </e/emenf> 〃^"辨練^^虔游參改
</Comp/ex7>p6><e/emenf name="so/u〖/on/ar/af/'on" fype="fns:Se/v/ce/a〃'af/'onCo//ecf/on"></e/emenf> //體改字度游 勉頓名字
<comp/axT>pe name="Serw'ce/a〃'aftonCo//ecf,on"> 〃,化漠星〃定乂
<e/emenf name="serw'ce Va〃'af/on" (ype="fns.Se/v/ce /a〃'a〃on" m/nOcci/rs="0" maxOcayrs="un6ounctecf"></e/emenf>//;^^#^^J6f ^多個(gè)_^眾點(diǎn)資成
</comp/ex7>p6>
優(yōu)選實(shí)施例
以下參考面向服務(wù)應(yīng)用中的一個(gè)服務(wù),,CreateOrganization(新建一 個(gè)部門(mén))"的服務(wù)元件發(fā)生變化為例,詳細(xì)說(shuō)明本發(fā)明的優(yōu)選實(shí)施例。
圖5A示出面向服務(wù)應(yīng)用中的一個(gè)服務(wù)"CreateOrganization(新建一 個(gè)部門(mén))",其輸入消息是作為擴(kuò)展集(Superset)的Organization的實(shí)體, 其包含的屬性如圖所示,包括字符串型的effectiveDate (有效日期)、整 數(shù)型的numberOfMember (成員數(shù)量)等等。
基于對(duì)面向服務(wù)應(yīng)用的服務(wù)模型的認(rèn)識(shí)來(lái)識(shí)別其中的可變化服務(wù)元 件,例如針對(duì)服務(wù),,CreateOrganization,,增加消息字段,則創(chuàng)建變化模型。 該變化模型例如基于以上示例的變化元模型,如下所示。
< xm/ vers/'on="7.0" encoc//'ng="L/TF-8" >
<se/v/'ceVar/'afr'o/7Co//ecf/'on xm/ns:vvs/=77ttp;〃www.Zjbm.com/WS/a〃'a//on"> <S6/v/'c6 /ar/'a//on
serw'ceA/ame="C/-eateOgan/'zaf/'onSe/v/'ce"'se/v/'ceA/amespace=77ftp://mvw./'ibm.com/C/"eateOrga/i/'zaf /'or Se/v/'ce"' se/v/'cePortType='7 ftp;//www./'jb/7r com/OeateOgan/'zaf/'onSe/v/'cePorf Type "> <serv/ce \ZarZat)ZWy>£cWaib/e<serv7'ce \Zar/'a£)/Wy>
<fZe/c//a〃-a&'on>
<ffeWA/ame>stocfcAva//aWe</^eWA/ame> 〃^""在該字虔后厫譜^7字虔
<f/-e/aWcfQfa;b/e>fri/e</fi'e/cWcWaiWe>
We/c//a〃'af/'or >
</Sen/7'ce VarZaft'on > </Se/v/ce/a〃'aWor Co//ecto/7>
在創(chuàng)建變化模型的同時(shí)基于對(duì)面向服務(wù)應(yīng)用的服務(wù)及業(yè)務(wù)流程的理 解構(gòu)建用于實(shí)現(xiàn)"增加消息字段"的源代碼。
當(dāng)用戶需求變化后,比如需要加入兩個(gè)新的屬性:organizationType(部門(mén)類型)和preferredLanguage (優(yōu)選語(yǔ)言),這樣organization包含 的屬性如圖5B所示,在尾部增加了兩個(gè)屬性。
用戶通過(guò)變化模型選擇增加兩個(gè)消息字段作為變化模型實(shí)例。該變化 模型實(shí)例包含兩個(gè)變化點(diǎn),如下所示。
<serw'ce/a〃'aft'o/7Co//ecf/on xm/ns:ws/=77ftp://iviw^/jbm,com/lVS/a〃'af/'OA ">
serw'ceA/ame="OeateOgan/za"onSerw'ce"'se/v/ceA/amespace=77flp.,//vvwiv./jbm.com/CA*eateOA*gan/zaf
/'0門(mén)56/"17'(^",56^/7(^尸0/^7>)06='7 ^)0,/^^1^./)&^7.(;0/77/063 6093^ /23〖/0/ 56/*//(;6尸0"7>)06">
^■e/af /a〃'aft'or >
<A GfoteoF/'e/cy name="organizationType ", fype="sfrVngf //^》〃字,審星^^^度"organizationType "
《c/ctec/He/Gf name="preferredLanguage ", fype="sfr/ng 7i> //譜》〃字,審星"字虔"preferredLanguage" </7 6/d/a〃'af/o/ >
</Serw'ce /a〃af/'on> </Se/v/ce/a〃'aft'onCo//ecfton>
面向服務(wù)的應(yīng)用的重構(gòu)設(shè)備接收變化模型實(shí)例信息并實(shí)施預(yù)定的用 于實(shí)現(xiàn)"增加消息字段"的源代碼,具體地通過(guò)修改服務(wù)注冊(cè)中心的
WSDL, XSD (BO)定義、規(guī)劃或者屬性來(lái)修^J艮務(wù)模型;在代碼級(jí)修改 服務(wù)元件實(shí)現(xiàn);修改面向服務(wù)應(yīng)用中的服務(wù)調(diào)用客戶存根進(jìn)程(例如服務(wù) 調(diào)用代碼和客戶存根);以及修改面向服務(wù)應(yīng)用的部署腳本(如DB腳本), 從而對(duì)所述服務(wù)模型和服務(wù)模型源代碼都進(jìn)行了重構(gòu)處理,使得重構(gòu)后的 服務(wù)模型和服務(wù)模型源代碼都支持增加了以上兩個(gè)消息字段的服務(wù)元件 "CreateOrganization",從而提供了定制的面向服務(wù)的應(yīng)用。
另夕卜還應(yīng)該指出的是,上述系列處理和裝置也可以通過(guò)軟件和固件 實(shí)現(xiàn)。在通過(guò)軟件或固件實(shí)現(xiàn)的情況下,從存儲(chǔ)介質(zhì)或網(wǎng)絡(luò)向具有專用硬 件結(jié)構(gòu)的計(jì)算機(jī),例如圖6所示的通用計(jì)算機(jī)600安裝構(gòu)成該軟件的程序, 該計(jì)算機(jī)在安裝有各種程序時(shí)能夠執(zhí)行各種功能等等。
在圖6中,中央處理單元(CPU)601才艮據(jù)只讀存儲(chǔ)器(ROM)602中存 儲(chǔ)的程序或從存儲(chǔ)部分608加載到隨M取存儲(chǔ)器(RAM)603的程序執(zhí)行 各種處理。在RAM 603中,也根據(jù)需要存儲(chǔ)當(dāng)CPU 601執(zhí)行各種處理等 等時(shí)所需的數(shù)據(jù)。
17CPU 601、 ROM 602和RAM 603經(jīng)由總線604彼此連接。輸"輸 出接口 605也連接到總線604。
下述部件連接到輸"輸出接口 605:輸入部分606,包括M、鼠標(biāo) 等等;輸出部分607,包括顯示器,比如陰;feL射線管(CRT)、液晶顯示器 (LCD)等等,和揚(yáng)聲器等等;存儲(chǔ)部分608,包括硬盤(pán)等等;和通信部分 609,包括網(wǎng)絡(luò)接口卡比如LAN卡、調(diào)制解調(diào)器等等。通信部分609經(jīng)由 網(wǎng)絡(luò)比如因特網(wǎng)執(zhí)行通信處理。
根據(jù)需要,驅(qū)動(dòng)器610也連接到輸X/輸出接口 605??刹鹦督橘|(zhì)611 比如磁盤(pán)、光盤(pán)、磁光盤(pán)、半導(dǎo)體存儲(chǔ)器等等根據(jù)需要被安裝在驅(qū)動(dòng)器 610上,使得從中讀出的計(jì)算M序根據(jù)需要被安裝到存儲(chǔ)部分608中。
在通過(guò)軟件實(shí)現(xiàn)上述系列處理的情況下,從網(wǎng)絡(luò)比如因特網(wǎng)或存儲(chǔ)介 質(zhì)比如可拆卸介質(zhì)611安裝構(gòu)成軟件的程序。
本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,這種存儲(chǔ)介質(zhì)不局限于圖6所示的其中 存儲(chǔ)有程序、與設(shè)備相分離地分發(fā)以向用戶提供程序的可拆卸介質(zhì)611。 可拆卸介質(zhì)611的例子包含磁盤(pán)(包含軟盤(pán))、光盤(pán)(包含光盤(pán)只讀存儲(chǔ)器 (CD-ROM)和數(shù)字通用盤(pán)(DVD))、磁光盤(pán)(包含迷你盤(pán)(MD))和半導(dǎo)體存 儲(chǔ)器。或者,存儲(chǔ)介質(zhì)可以是ROM 602、存儲(chǔ)部分608中包含的硬盤(pán)等 等,其中存有程序,并且與包含它們的設(shè)備一起被分發(fā)給用戶。
還需要指出的是,執(zhí)行上述系列處理的步驟可以自然地按照說(shuō)明的順 序按時(shí)間順序執(zhí)行,但是并不需要一定按照時(shí)間順序執(zhí)行。某些步驟可以 并行或彼此獨(dú)立地執(zhí)行。
雖然已經(jīng)詳細(xì)說(shuō)明了本發(fā)明及其優(yōu)點(diǎn),但是應(yīng)當(dāng)理解在不脫離由所附 的權(quán)利要求所限定的本發(fā)明的精神和范圍的情況下可以進(jìn)行各種改變、替 代和變換。而且,本申請(qǐng)的范圍不僅限于說(shuō)明書(shū)所描述的過(guò)程、設(shè)備、制 造、物質(zhì)的結(jié)構(gòu)、手段、方法和步驟的具體實(shí)施例。本領(lǐng)域內(nèi)的普通技術(shù) 人員從本發(fā)明的公開(kāi)內(nèi)容將容易理解,根據(jù)本發(fā)明可以使用執(zhí)行與在此所 述的相應(yīng)實(shí)施例基^f目同的功能或者獲得與其基4^目同的結(jié)果的、現(xiàn)有和 將來(lái)要被開(kāi)發(fā)的過(guò)程、設(shè)備、制造、物質(zhì)的結(jié)構(gòu)、手段、方法或者步驟。 因此,所附的權(quán)利要求旨在它們的范圍內(nèi)包括這樣的過(guò)程、設(shè)備、制造、 物質(zhì)的結(jié)構(gòu)、手段、方法或者步驟。
權(quán)利要求
1. 一種提供針對(duì)面向服務(wù)的應(yīng)用的重構(gòu)方案的方法,所述面向服務(wù)的應(yīng)用包括服務(wù)模型和與所述服務(wù)模型相關(guān)的服務(wù)模型源代碼,該方法包括以下步驟識(shí)別所述服務(wù)模型中的可變化服務(wù)元件;基于可變化的服務(wù)元件,構(gòu)建用于定義有關(guān)所述可變化服務(wù)元件的可選擇變化點(diǎn)信息的變化模型;以及創(chuàng)建支持變化實(shí)現(xiàn)的源代碼,所述支持變化實(shí)現(xiàn)的源代碼定義了為實(shí)現(xiàn)有關(guān)可變化服務(wù)元件的變化點(diǎn)信息而需要的服務(wù)模型和服務(wù)模型源代碼的變化,用于使用對(duì)所述變化模型中有關(guān)可變化服務(wù)元件的變化點(diǎn)信息的選擇作為輸入,根據(jù)所述源代碼中支持所述變化點(diǎn)實(shí)現(xiàn)的變化定義對(duì)所述服務(wù)模型和服務(wù)模型源代碼進(jìn)行預(yù)定的重構(gòu)處理。
2. 根據(jù)權(quán)利要求1所述的提供針對(duì)面向服務(wù)的應(yīng)用的重構(gòu)方案的方 法,在提供面向服務(wù)的應(yīng)用的同時(shí)或之后進(jìn)行。
3. 根據(jù)權(quán)利要求1所述的提##對(duì)面向服務(wù)的應(yīng)用的重構(gòu)方案的方 法,其中所述可變化服務(wù)元件包括業(yè)務(wù)流程、服務(wù)、服務(wù)描述、服務(wù)通信 協(xié)議和/或傳輸功能實(shí)體;和/或包括策略、安全性、事務(wù)和/或管理在內(nèi)的 有關(guān)服務(wù)質(zhì)量的非功能性實(shí)體。
4. 根據(jù)權(quán)利要求1所述的提供針對(duì)面向服務(wù)的應(yīng)用的重構(gòu)方案的方 法,其中所述有關(guān)可變化服務(wù)元件的變化點(diǎn)信息包括用于定義服務(wù)元件是 否可變以及變化范圍的可變性信息。
5. 根據(jù)權(quán)利要求4所述的提供計(jì)對(duì)面向服務(wù)的應(yīng)用的重構(gòu)方案的方 法,其中所述可變性信息包括消息字段的增刪或修改、服務(wù)操作的增刪或 修改、和/或服務(wù)的非功能性需要的增刪或修改。
6. 根據(jù)權(quán)利要求5所述的提供針對(duì)面向服務(wù)的應(yīng)用的重構(gòu)方案的方 法,其中消息字段的增刪或修改包括添加字段到現(xiàn)有輸入/輸出消息的定 義、或從現(xiàn)有的消息定義刪除字段。
7. 根據(jù)權(quán)利要求1所述的提,對(duì)面向服務(wù)的應(yīng)用的重構(gòu)方案的方 法,其中所述變化模型是基于變化元模型完成的,所述變化元模型定義了 所有的有關(guān)可變化服務(wù)元件的變化點(diǎn)信息的定義格式。
8. 根據(jù)權(quán)利要求1所述的提,對(duì)面向服務(wù)的應(yīng)用的重構(gòu)方案的方法,其中所述支持變化實(shí)現(xiàn)的源代碼用于在服務(wù)模型級(jí)以及代碼級(jí)實(shí)現(xiàn)服 務(wù)元件本身的變化以及對(duì)服務(wù)契約影響的變化定義,該服務(wù)契約影響變化 定義用于定義所iil艮務(wù)元件變化所引發(fā)的其它服務(wù)元件的變化。
9. 一種用于重構(gòu)面向服務(wù)的應(yīng)用的方法,所述面向服務(wù)的應(yīng)用包括 服務(wù)模型和與所述服務(wù)模型相關(guān)的服務(wù)模型源代碼,該方法包括以下步 驟準(zhǔn)備用于定義有關(guān)所述服務(wù)模型中可變化服務(wù)元件的可選擇變化點(diǎn) 信息的變化模型、以及支持變化實(shí)現(xiàn)的源代碼,所述支持變化實(shí)現(xiàn)的源代 碼定義了實(shí)現(xiàn)有關(guān)服務(wù)元件的變化點(diǎn)信息而需要的服務(wù)模型和服務(wù)模型 源代碼的變化;選擇所述變化模型中有關(guān)可變化服務(wù)元件的變化點(diǎn)信息;以及使用所選擇的變化點(diǎn)信息作為輸入,由所述支持變化實(shí)現(xiàn)的源代碼對(duì) 所i^艮務(wù)模型和月艮務(wù)模型源4戈碼ii行預(yù)定的重構(gòu)處理。
10. 根據(jù)權(quán)利要求9所述的用于重構(gòu)面向服務(wù)的應(yīng)用的方法,其中所 述預(yù)定的重構(gòu)處理基于所述支持變化實(shí)現(xiàn)的源代碼中的變化定義,包括 修^Ul務(wù)模型和修改部署腳本;以及以下步驟中的至少一個(gè)在代碼級(jí)修^J艮務(wù)元件實(shí)現(xiàn);在配置級(jí)修^Ji艮務(wù)實(shí)現(xiàn);修改受影響的 業(yè)務(wù)流程;修改面向服務(wù)應(yīng)用中的服務(wù)調(diào)用客戶存根進(jìn)程;或者修改受到 服務(wù)元件改變的影響的用戶界面部分。
11. 根據(jù)權(quán)利要求10所述的用于重構(gòu)面向服務(wù)的應(yīng)用的方法,其中 所述變化點(diǎn)信息是消息字段的增刪或修改,所述重構(gòu)處理包括修^JJ艮務(wù)模 型、在代碼級(jí)修^tl艮務(wù)元件實(shí)現(xiàn)、修改面向服務(wù)應(yīng)用中的服務(wù)調(diào)用客戶存 根進(jìn)程、以及修改面向服務(wù)應(yīng)用的部署腳本。
12. —種針對(duì)面向服務(wù)的應(yīng)用的重構(gòu)方案提供設(shè)備,所述面向服務(wù)的 應(yīng)用包括服務(wù)模型和與所iO艮務(wù)模型相關(guān)的服務(wù)模型源代碼,該重構(gòu)方案 提供設(shè)備包括識(shí)別裝置,被配置為識(shí)別所述服務(wù)模型中的可變化服務(wù)元件;變化模型構(gòu)建裝置,被配置為基于可變化的服務(wù)元件,構(gòu)建用于定義 有關(guān)所述可變化服務(wù)元件的可選擇變化點(diǎn)信息的變化模型;以及代碼創(chuàng)建裝置,被配置為創(chuàng)建支持變化實(shí)現(xiàn)的源代碼,所述支持變化實(shí)現(xiàn)的源代碼定義了為實(shí)現(xiàn)有關(guān)可變化服務(wù)元件的變化點(diǎn)信息而需要的服務(wù)模型和服務(wù)模型源代碼的變化,用于使用對(duì)所述變 化模型中有關(guān)可變化服務(wù)元件的變化點(diǎn)信息的選擇作為輸入,根據(jù)其中支 持所述變化點(diǎn)實(shí)現(xiàn)的變化定義對(duì)所述服務(wù)模型和服務(wù)模型源代碼進(jìn)行預(yù) 定的重構(gòu)處理。
13. —種面向服務(wù)的應(yīng)用的重構(gòu)設(shè)備,所述面向服務(wù)的應(yīng)用包括服務(wù) 模型和與所述服務(wù)模型相關(guān)的服務(wù)模型源代碼,該重構(gòu)i殳備包括確定裝置,被配置為從用于定義有關(guān)所iO艮務(wù)模型中可變化服務(wù)元件 的變化點(diǎn)信息的變化模型中確定有關(guān)可變化服務(wù)元件的變化點(diǎn)信息;以及修改裝置,被配置為接收所確定的變化點(diǎn)信息作為輸入,基于支持變 化實(shí)現(xiàn)的源代碼對(duì)所iil艮務(wù)模型和服務(wù)模型源代碼進(jìn)行預(yù)定的重構(gòu)處理, 所述支持變化實(shí)現(xiàn)的源代碼定義了實(shí)現(xiàn)有關(guān)服務(wù)元件的變化點(diǎn)信息而需 要的服務(wù)模型和服務(wù)模型源代碼的變化。
14. 根據(jù)權(quán)利要求13所述的面向服務(wù)的應(yīng)用的重構(gòu)i殳備,其中所述 修改裝置包括被配置為修^U良務(wù)模型的服務(wù)模型修改單元、被配置為修改 部署腳本的部署腳本《奮改單元、以及以下單元中的至少一種被配置為在代碼級(jí)修^J3良務(wù)元件實(shí)現(xiàn)的服務(wù)元件實(shí)現(xiàn)修改單元、被配置為在配置級(jí)修^y良務(wù)實(shí)現(xiàn)的服務(wù)實(shí)現(xiàn)配置修改單元;被配置為修改受影響的業(yè)務(wù)流程的業(yè)務(wù)流程修改單元、被配置為修^*務(wù)調(diào)用客戶存根進(jìn)程 的客戶存根進(jìn)程修改單元、和被配置為修改受到服務(wù)元件改變的影響的用 戶界面部分的用戶界面修改單元。
15. 根據(jù)權(quán)利要求14所述的面向服務(wù)的應(yīng)用的重構(gòu)設(shè)備,其中所述 變化點(diǎn)信息是消息字段的增刪或修改,所述修^置包括服務(wù)模型修改單 元;服務(wù)元件實(shí)現(xiàn)修改單元;客戶存根進(jìn)程修改單元和部署腳本修改單元。
全文摘要
本發(fā)明公開(kāi)了用于重構(gòu)面向服務(wù)的應(yīng)用的方法及其設(shè)備,所述面向服務(wù)的應(yīng)用包括服務(wù)模型和與所述服務(wù)模型相關(guān)的服務(wù)模型源代碼。用于重構(gòu)面向服務(wù)的應(yīng)用的方法包括準(zhǔn)備用于定義有關(guān)服務(wù)模型中可變化服務(wù)元件的可選擇變化點(diǎn)信息的變化模型、以及支持變化實(shí)現(xiàn)的源代碼,所述支持變化實(shí)現(xiàn)的源代碼定義了實(shí)現(xiàn)有關(guān)服務(wù)元件的變化點(diǎn)信息而需要的服務(wù)模型和服務(wù)模型源代碼的變化;選擇所述變化模型中有關(guān)可變化服務(wù)元件的變化點(diǎn)信息;使用所選擇的變化點(diǎn)信息作為輸入,由所述支持變化實(shí)現(xiàn)的源代碼對(duì)所述服務(wù)模型和服務(wù)模型源代碼進(jìn)行預(yù)定的重構(gòu)處理。
文檔編號(hào)G06F9/44GK101546260SQ20081008983
公開(kāi)日2009年9月30日 申請(qǐng)日期2008年3月28日 優(yōu)先權(quán)日2008年3月28日
發(fā)明者周志榮, 佳 譚, 戈 金 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司