專利名稱:用于重構(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ù)對齊的中心焦點。當為不同客戶提供SOA解決方案時,由于客戶的需求不盡相同,因此需要構(gòu)建可重用的SOA解決方案的方法,以最小的額外努力滿足不同客戶的需求。
在面對不同客戶時,服務(wù)模型中最常變化的4J艮務(wù)的消息、服務(wù)操作,例如添加字段到現(xiàn)有輸入/輸出消息的定義;從現(xiàn)有的消息定義刪除字段;添加/刪除/修^J艮務(wù)操作,在提供可重用SOA解決方案的同時需JH^持整個SOA解決方案仍表現(xiàn)得連貫一致。
在所有這些變化要求中, 一些消息字段或服務(wù)操作是整個SOA解決方案中業(yè)務(wù)流程或業(yè)務(wù)監(jiān)控的關(guān)鍵,用戶不能刪除或修改這些消息字段或服務(wù)操作。
對于這種情況,現(xiàn)有技術(shù)中使用的方法有
1. 為每個客戶定制整個解決方案,重新i殳計或重新構(gòu)建。
2. 使用MDD (模型驅(qū)動開發(fā))方法憑借同一個復(fù)雜模型生成整個解決方案。
3. 使用傳統(tǒng)的面向變化的設(shè)計(例如配置文件或業(yè)M則)來支持未來可能的變化。
然而,以上方法分別具有如下的缺點
1.修改現(xiàn)有的SOA解決方案需要對整個SOA解決方案的連貫一致的深入理解,包括服務(wù)和服務(wù)消息之間的關(guān)系。修改每個服務(wù)實現(xiàn)需要非常小心并且消耗時間,因此降低了 SOA解決方案實際的可重用性。2。 MDD是自上而下的方法,通過對模型組件的變換來實現(xiàn)源代碼的修改。這種MDD方法嚴重依賴于代碼生成,盡管可以解決一些簡單的問題,但是由于所有代碼變化都能從模型生成,因此該MDD方法并不支持包含了大量服務(wù)、業(yè)務(wù)流程和有關(guān)服務(wù)元件與服務(wù)的內(nèi)部復(fù)雜關(guān)系的復(fù)雜SOA解決方案。
3. 傳統(tǒng)的面向變化的^1計不考慮服務(wù)契約級的變化。
發(fā)明內(nèi)容
本發(fā)明旨在提供一種全新的用于重構(gòu)面向服務(wù)的應(yīng)用的技術(shù)方案,以期克服以上現(xiàn)有技術(shù)中存在的至少 一種缺陷。
根據(jù)本發(fā)明的一個方面,一種提,對面向服務(wù)的應(yīng)用的重構(gòu)方案的方法,所述面向服務(wù)的應(yīng)用包括服務(wù)模型和與所^良務(wù)模型相關(guān)的服務(wù)模型源代碼,該方法包括以下步驟
識別所^J良務(wù)模型中的可變化服務(wù)元件;
基于可變化的服務(wù)元件,構(gòu)建用于定義有關(guān)所述可變化服務(wù)元件的可選擇變>(匕點信息的變>^模型;以及
創(chuàng)建支持變化實現(xiàn)的源代碼,所述支持變化實現(xiàn)的源代碼定義了為實現(xiàn)有關(guān)可變化服務(wù)元件的變化點信息而需要的服務(wù)模型和服務(wù)模型源代碼的變化,用于使用對所述變化模型中有關(guān)可變化服務(wù)元件的變化點信息的選^r作為輸入,才艮據(jù)所述源代碼中支持所述變化點實現(xiàn)的變化定義對所
述服務(wù)模型和服務(wù)模型源代碼進行預(yù)定的重構(gòu)處理。
所述提供重構(gòu)方案的方法可以在提供面向服務(wù)的應(yīng)用的同時或之后進行。
所述可變化服務(wù)元件,通常包括服務(wù)模型中服務(wù)契約級的變化,例如業(yè)務(wù)流程、服務(wù)、服務(wù)描述、月l務(wù)通信協(xié)議和/或傳輸?shù)裙δ軐嶓w;和/或包括策略、安全性、事務(wù)和/或管理等有關(guān)服務(wù)質(zhì)量的非功能性實體。
所述有關(guān)可變化服務(wù)元件的變化點信息包括用于定義服務(wù)元件是否可變以及變化范圍的可變性信息,具體包括消息字段的增刪或修改、服務(wù)操作(包括發(fā)布、發(fā)現(xiàn)、綁定和調(diào)用)的增刪或修改、和/或服務(wù)的非功能性需要(事務(wù)、安全性)等的增刪或修改.消息字段的增刪或修改例如有添加字段到現(xiàn)有輸"輸出消息的定義;從現(xiàn)有的消息定義刪除字段等。所述變化模型是基于變化元模型完成,所述變化元模型定義了所有的有關(guān)可變化服務(wù)元件的變化點信息(變化點)的定義格式。變化模型本身也可以包含變化元模型的所有信息,即也可以定義所有的有關(guān)可變化服務(wù)元件的變化點信息。
所述支持變化實現(xiàn)的源代碼用于在服務(wù)模型級以及代碼級實現(xiàn)服務(wù)元件本身的變化以及對服務(wù)契約影響的變化定義,該服務(wù)契約影響變化定
義用于定義所述服務(wù)元件變化所引發(fā)的其它服務(wù)元件的變化,例如,如果一條服務(wù)的消息變化, 一些其他的服務(wù)或流程的消息也應(yīng)變化。
才艮據(jù)本發(fā)明的第二方面, 一種用于重構(gòu)面向服務(wù)的應(yīng)用的方法,包括
以下步驟
準備用于定義有關(guān)服務(wù)模型中可變化服務(wù)元件的可選擇變化點信息的變化模型、以及支持變化實現(xiàn)的源代碼,所述支持變化實現(xiàn)的源代碼定義了實現(xiàn)有關(guān)服務(wù)元件的變化點信息而需要的服務(wù)模型和服務(wù)模型源代碼的變化;
選擇所述變化模型中有關(guān)可變化服務(wù)元件的變化點信息;
使用所選擇的變化點信息作為輸入,由所述支持變化實現(xiàn)的源代碼對所述服務(wù)模型和服務(wù)模型源4戈碼ii行預(yù)定的重構(gòu)處理。
所述預(yù)定的重構(gòu)處理基于所述支持變化實現(xiàn)的源代碼中的變化定義,包括修^Ul務(wù)模型和修改部署腳本、以及以下步驟中的至少一個在代碼級修^艮務(wù)元件實現(xiàn);在配置級修^J3艮務(wù)實現(xiàn);修改受影響的業(yè)務(wù)流程;修改面向服務(wù)應(yīng)用中的服務(wù)調(diào)用客戶存根進程;或者修改受到月l務(wù)元件改變的影響的用戶界面部分。
本發(fā)明的第 一方面涉及如何定義變化模型和如何提供變化支持的實現(xiàn)的方法。使用該方法,可以在向客戶提供SOA解決方案(服務(wù)模型)及其實現(xiàn)的同時,提供解決方案的可能變化(即變化模型)及支持以上可能變化的實現(xiàn)(即變化支持實現(xiàn)),使SOA解決方案對不同客戶更有靈活性。本發(fā)明的第二方面涉及使用服務(wù)契約級的變化模型來控制服務(wù)的業(yè)務(wù)功能的可能變化,而且根據(jù)從變化模型選擇的每個變化點,使用變化支持的實現(xiàn)來重構(gòu)面向服務(wù)的整個應(yīng)用,以適應(yīng)不同客戶的變化。由此提出了對不同客戶有最大的可重用性/適應(yīng)性的SOA解決方案的系統(tǒng)。
由于本發(fā)明的方法是中間對齊的方法,具體地首先通itl艮務(wù)契約變化模型來控制服務(wù)模型的可變性,而JL基于針對SOA解決方案的標準實現(xiàn)來完成對面向服務(wù)的應(yīng)用的重構(gòu)/再用,因此本發(fā)明的方法不依賴于代碼生成,而是主要調(diào)節(jié)代碼/配置的修^/重構(gòu),由此為解決方案提供商提供了更大的自由和處理變化的能力,使得可以以被控制的和標準化的方式進行定制,并且使定制所需的努力最小化。
根據(jù)本發(fā)明再一個方面, 一種針對面向服務(wù)的應(yīng)用的重構(gòu)方案提供設(shè)
備,包括
識別裝置,被配置為識別所述服務(wù)模型中的可變化服務(wù)元件;
變化模型構(gòu)建裝置,被配置為基于可變化的服務(wù)元件,構(gòu)建用于定義有關(guān)所述可變化服務(wù)元件的可選擇變化點信息的變化模型;以及
代碼創(chuàng)建裝置,被配置為創(chuàng)建支持變化實現(xiàn)的源代碼,
所述支持變化實現(xiàn)的源代碼定義了為實現(xiàn)有關(guān)可變化服務(wù)元件的變化點信息而需要的服務(wù)模型和服務(wù)模型源代碼的變化,用于使用對所述變化模型中有關(guān)可變化服務(wù)元件的變化點信息的選擇作為輸入,根據(jù)其中支持所述變化點實現(xiàn)的變化定義對所述服務(wù)模型和服務(wù)模型源代碼進行預(yù)定的重構(gòu)處理。
根據(jù)本發(fā)明再一個方面, 一種面向服務(wù)的應(yīng)用的重構(gòu)該:備,包括
確定裝置,被配置為從定義了有關(guān)服務(wù)模型中可變化服務(wù)元件的變化點信息的變化模型中確定有關(guān)可變化服務(wù)元件的變化點信息;以及
修改裝置,被配置為接收所確定的變化點信息作為輸入,基于支持變化實現(xiàn)的源代碼對所iO艮務(wù)模型和服務(wù)模型源代碼進行預(yù)定的重構(gòu)處理,所述支持變化實現(xiàn)的源代碼定義了實現(xiàn)有關(guān)服務(wù)元件的變化點信息而需要的服務(wù)模型和服務(wù)模型源代碼的變化。
參照下面結(jié)合附圖對本發(fā)明實施例的說明,會更加容易地理解本發(fā)明的以上和其它目的、特點和優(yōu)點。在附圖中,相同的或?qū)?yīng)的技術(shù)特征或部件將采用相同或?qū)?yīng)的附圖標記來表示。
圖1示出了根據(jù)本發(fā)明的提掩計對面向服務(wù)的應(yīng)用的重構(gòu)方案的方法以及該重構(gòu)方案的應(yīng)用;
圖2示出了圖1中步驟108的詳細過程。
8圖3示出了才艮據(jù)本發(fā)明的重構(gòu)方案提供i殳備。
圖4示出了根據(jù)本發(fā)明的面向服務(wù)的應(yīng)用的重構(gòu)設(shè)備.
圖5A和5B是分別示出了根據(jù)本發(fā)明優(yōu)選實施例的可變化服務(wù)元件的變化前后的示意圖。
圖6示出了應(yīng)用本發(fā)明的計算機系統(tǒng)。
具體實施例方式
下面參照附圖來il明本發(fā)明的實施例。應(yīng)當注意,為了清楚的目的,附圖和說明中省略了與本發(fā)明無關(guān)的、本領(lǐng)域普通技術(shù)人員已知的部件和處理的表示和描述。
在以下的詳細說明中使用了如下的術(shù)語。
面向服務(wù)的體系結(jié)構(gòu)是一個組件模型,本質(zhì)上是相互通信的服務(wù)集,這種通信可能是簡單的數(shù)據(jù)傳送或者兩個以上的服務(wù)組合活動。具體地,
些服務(wù)之間定義良好的接口和契約聯(lián)系起來。
服務(wù)服務(wù)由資源(如數(shù)據(jù)、程序或設(shè)備)、服務(wù)邏輯和消息處理構(gòu)成。當消息到達一個服務(wù)時激活使用資源的服務(wù)邏輯。在面向服務(wù)的體系結(jié)構(gòu)中服務(wù)映射到業(yè)務(wù)單元,相應(yīng)地服務(wù)通常包括服務(wù)注冊中心;例如業(yè)務(wù)流程、服務(wù)、服務(wù)描述、服務(wù)通信協(xié)議和傳輸?shù)裙δ軐嶓w;以及包括策略、安全性、事務(wù)和管理等有關(guān)服務(wù)質(zhì)量方面的非功能性實體。
接口定義了服務(wù)請求者和服務(wù)提供者之間的契約,以便通過接口發(fā)現(xiàn)、發(fā)布和調(diào)用服務(wù)。
;^發(fā)明的方法和該:備
根據(jù)本發(fā)明, 一種提,對面向服務(wù)的應(yīng)用的重構(gòu)方案的方法,所述面向服務(wù)的應(yīng)用包括服務(wù)模型和與所述服務(wù)模型相關(guān)的服務(wù)模型源代碼,該方法包括以下步驟識別所^艮務(wù)模型中的可變化服務(wù)元件;基于可變化的服務(wù)元件,構(gòu)建用于定義有關(guān)所述可變化服務(wù)元件的可選擇變化點信息的變化模型;以及創(chuàng)建支持變化實現(xiàn)的源代碼,所述支持變化實現(xiàn)的源代碼定義了為實現(xiàn)有關(guān)可變化服務(wù)元件的變化點信息而需要的服務(wù)模型和服務(wù)模型源代碼的變化,用于使用對所述變化模型中有關(guān)可變化服務(wù)元件的變化點信息的選#^作為輸入,根據(jù)所述源代碼中支持所述變化點實現(xiàn)的變化定義對所^艮務(wù)模型和服務(wù)模型源代碼進行預(yù)定的重構(gòu)處理。
本發(fā)明還涉及一種用于重構(gòu)面向服務(wù)的應(yīng)用的方法,該方法包括以下
步驟準備用于定義有關(guān)服務(wù)模型中可變化服務(wù)元件的可選擇變化點信息
的變化模型、以及支持變化實現(xiàn)的源代碼,所述支持變化實現(xiàn)的源代碼定義了實現(xiàn)有關(guān)服務(wù)元件的變化點信息而需要的服務(wù)模型和服務(wù)模型源代
碼的變化;選擇所述變化模型中有關(guān)可變化服務(wù)元件的變化點信息;使用所選擇的變化點信息作為輸入,由所述支持變化實現(xiàn)的源代碼對所述服務(wù)模型和服務(wù)模型源代碼進行預(yù)定的重構(gòu)處理。
圖1示出了根據(jù)本發(fā)明的提,對面向服務(wù)的應(yīng)用的重構(gòu)方案的方法以及該重構(gòu)方案的應(yīng)用100。
步驟101表示在設(shè)計級提供服務(wù)模型。該服務(wù)模型代表了面向服務(wù)的解決方案,是一組在某一特定工商業(yè)/事業(yè)領(lǐng)域中相關(guān)的服務(wù)和業(yè)務(wù)流程,例如政府部門的案例管理。
步驟102表示提供代碼級的服務(wù)模型實現(xiàn)。
服務(wù)模型實現(xiàn)即服務(wù)模型的源代碼,可以是包括以人類可讀的計算機語言(如C, C++, C#, assembler, Fortran, BASIC, Pascal, Java,LISP, ML, Objective-C, Perl, PHP, Python, Matlab, Visual Basic,SQL, HTML, XML或其他任何計算機語言)編程的一系列陳述的文件,也可以包括定義了 一些由圖形元件表示的人類可讀計算機語言的圖形信息。
服務(wù)模型是其源代碼的抽M示,可以是圖形模型或例如樹形結(jié)構(gòu)、關(guān)系表等任何類型的模型,也可以是文4型。
包括源代碼的文件和/或相關(guān)的源代碼(服務(wù)模型)都可以存儲在存^i殳備和/或內(nèi)存中,也都可以在顯示器上顯示。
服務(wù)模型源代碼中的元件和服務(wù)模型中的元件通過注釋等方式彼此鏈接,如本領(lǐng)域普通技術(shù)人員所了解,可以通過變換由模型的定義產(chǎn)生用以調(diào)用函數(shù)的源代碼或者由源代碼產(chǎn)生模型。因此本發(fā)明對步驟101和102的順序不作限制。
在步驟103為服務(wù)模型(SOA解決方案)準備變化模型,變化模型定義了可能在服務(wù)模型中變化的范圍。注意步驟103雖然與步驟101同屬設(shè)計級,但步驟103無需與步驟101同步進行,因為可以在已經(jīng)為客戶提供服務(wù)模型之后的不定時間內(nèi)再提供包括變化模型的重構(gòu)工具(重構(gòu)方案)。
設(shè)計變化模型首先需要在分析級確定服務(wù)模型中通用的以及可變化服務(wù)元件??勺兓?wù)元件^J艮務(wù)契約級的,通常包括服務(wù)中的例如業(yè)務(wù)流程、服務(wù)、服務(wù)描述、服務(wù)通信協(xié)議和/或傳輸?shù)裙δ軐嶓w;和/或包括策略、安全性(規(guī)則集)、事務(wù)(屬性集)和/或管理(屬性集)等有關(guān)服務(wù)質(zhì)量方面的非功能性實體。
其次,基于確定的可變化服務(wù)元件,創(chuàng)建預(yù)定義的接口變化協(xié)議,即用于定義有關(guān)服務(wù)模型中可變化服務(wù)元件的可選擇變化點信息的變化模型,具體地變化模型定義了哪個服務(wù)的哪個接口可變以及可如何變,由此使得服務(wù)可變區(qū)域變得標準化并提供了可管理/可控的變化定義。針對不同的領(lǐng)域、不同的客戶以及不同的需求,需要在服務(wù)契約級識別各種可能的和合理的變化,確定可能需要變化的服務(wù)元件。需要的變化越多,則變化模型就越復(fù)雜。
所述有關(guān)可變化服務(wù)元件的變化點信息包括用于定義服務(wù)元件是否可變以及變化范圍的可變性信息,具體包括消息字段的增刪或修改、服務(wù)操作(包括發(fā)布、發(fā)現(xiàn)、綁定和調(diào)用)的增刪或修改、和/或服務(wù)的非功能性需要(事務(wù)、安全性)等的增刪或修改。消息字段的增刪或修改例如有添加字段到現(xiàn)有輸X/輸出消息的定義;從現(xiàn)有的消息定義刪除字段等。
步驟104在代碼級準^4h對每個變化點的變化支持實現(xiàn)。在提供標準服務(wù)模型的同時或者^,需要基于對服務(wù)模型源代碼的一致性理解為變化模型中的每個變化點提供變化支持實現(xiàn)。
該變化支持實現(xiàn)即支持變化實現(xiàn)的代碼或腳本集(源代碼),同樣可以是包括以人類可讀的計算機語言編程的一系列陳述的文件,也可以包括定義了一些由圖形元件表示的人類可讀計算機語言的圖形信息。包括支持變化實現(xiàn)的源代碼的文件和變化模型都可以存儲在存儲設(shè)備和/或內(nèi)存中,也都可以在顯示器上顯示。
所述支持變化實現(xiàn)的源代碼定義了為實現(xiàn)有關(guān)可變化服務(wù)元件的變化點信息而需要的服務(wù)模型和服務(wù)模型源代碼的變化,即定義了在服務(wù)模型級以及代碼級實現(xiàn)服務(wù)元件本身的變化、以及對服務(wù)契約影響的變化定義,用于在執(zhí)行時使用對所述變化模型中有關(guān)可變化服務(wù)元件的變化點信息的選擇作為輸入,按照所述源代碼中支持所選擇變化點實現(xiàn)的相應(yīng)變化定義對所述服務(wù)模型和服務(wù)模型源代碼進行修改,實現(xiàn)預(yù)定的重構(gòu)處理。即所述重構(gòu)處理已在所述支持變化實現(xiàn)的源代碼加以預(yù)定義。本公開說明書將在以下對重構(gòu)處理進行詳細描述。
以上所述的服務(wù)契約影響變化定義定義了所述服務(wù)元件變化所引發(fā)的其它服務(wù)元件的變化,例如如果服務(wù)消息變化,必然導(dǎo)致其它一些服務(wù)或業(yè)務(wù)流程的變化。
由此步驟102和104構(gòu)成了定義變化模型以及提供變化支持的實現(xiàn)的方法。使用該方法,可以在向客戶提供SOA解決方案(服務(wù)模型)及其實現(xiàn)的同時,提供解決方案的可能變化(即變化模型)及支持以上可能變化的實現(xiàn)(即變化支持實現(xiàn)),使面向服務(wù)的應(yīng)用對不同客戶更具靈活性。
在步驟105評估變化模型的可用性,即客戶在需要重構(gòu)面向服務(wù)的應(yīng)用時通過例如人機界面判斷變化模型所提供的可選擇變化點信息是否包括了客戶所需的變化點,即判斷變化模型是否支持客戶希望的對面向服務(wù)應(yīng)用的改變。
如果在步驟106判斷為變化模型可以提供客戶所需的變化點,則在步驟107由客戶通過例如A^界面選擇得到了支持的變化點信息。
所選擇的變化點信息作為符合變化模型的變化模型實例,定義了服務(wù)契約在客戶環(huán)境中實際如何改變。例如,在變化模型中定義了三個服務(wù)消息字段可被刪除。而在變化模型實例中只有一個或兩個字段要被刪除。
根據(jù)步驟107輸出的所選擇的變化點信息作為輸入的定制信息,在步驟108使用所述支持變化實現(xiàn)的源代碼中支持所選擇變化點的相應(yīng)變化定義對所述服務(wù)模型和服務(wù)模型源代碼進行自動修改,實現(xiàn)預(yù)定的重構(gòu)處理,由此為客戶獲得了定制的面向月良務(wù)應(yīng)用。
具體地,圖2示出了圖1中步驟108的詳細過程,即詳細的重構(gòu)處理。
在步驟201讀取基于變化模型定義的變化模型實例信息;在步驟202獲取服務(wù)模型變化點(若客戶僅選擇了 一個變化點,則變化模型實例信息僅包括一個變化點信息);在步驟203對所^艮務(wù)模型和服務(wù)模型源代碼進行自動修改,實現(xiàn)預(yù)定的重構(gòu)處理;在步驟204判斷是否已處理所有已選擇的服務(wù)變化點?若已處理所有已選擇的服務(wù)變化點,則在步驟205進行清理并重建面向服務(wù)的應(yīng)用。
所述預(yù)定的重構(gòu)處理(步驟203 )基于所述支持變化實現(xiàn)的源代碼中的預(yù)定的變化定義,可以包括以下不受順序限制的步驟
修2tJi良務(wù)模型,通常修giJ艮務(wù)注冊中心的WSDL, XSD(BO)定義、規(guī)劃或者屬性;
修改面向服務(wù)應(yīng)用的部署腳本,例如數(shù)據(jù)模型改變的DB腳本、以及一些在服務(wù)契約中需要中間件平臺等的部署支持的非功能性需求改變(例如安全性和事務(wù)改變);以及
以下處理步驟中的至少一個在代碼級修^J艮務(wù)元件實現(xiàn),對新的服務(wù)IMt只生成程序骨架;在配置級修^J艮務(wù)實現(xiàn),例如配置文件和業(yè)^MJ,J定義等;
修改受影響的業(yè)務(wù)流程,以便合并整個過程中的改變。通常需要普改BPEL定義文件或其它工作流程定義語言;
僅修改面向服務(wù)應(yīng)用中的服務(wù)調(diào)用客戶存根進程(stub)(通常需要修^J良務(wù)調(diào)用代碼和客戶存根),但不包括修改其他服務(wù)實現(xiàn);或
修改受到服務(wù)契約改變的影響的用戶界面部分。
圖3示出了重構(gòu)方案提供設(shè)備300,包括識別裝置310,被配置為識別所iii良務(wù)模型中的可變化服務(wù)元件;變化模型構(gòu)建裝置320,被配置為基于可變化的月l務(wù)元件,構(gòu)建用于定義有關(guān)所述可變化服務(wù)元件的可選擇變化點信息的變化模型321;以及代碼創(chuàng)建裝置330,被配置為創(chuàng)建支持變化實現(xiàn)的源代碼331。
圖4相應(yīng)地示出了一種面向服務(wù)的應(yīng)用的重構(gòu)設(shè)備400,包括
確定裝置410,被配置為在從變化模型321選擇了變化點后通it^變化模型401讀取變化點信息(或由多個變化點信息構(gòu)成的變化模型實例信息)來確定有關(guān)可變化服務(wù)元件的變化點信息;以及
修改裝置420,被配置為接收所確定的變化點信息作為輸入,基于支持變化實現(xiàn)的源代碼331對所述服務(wù)模型和服務(wù)模型源代碼進行預(yù)定的重構(gòu)處理,所述支持變化實現(xiàn)的源代碼定義了實現(xiàn)有關(guān)服務(wù)元件的變化點信息而需要的服務(wù)模型和服務(wù)模型源代碼的變化。
修改裝置420包括服務(wù)模型修改單元421、部署腳本修改單元427以及以下修改單元中的至少一個服務(wù)元件實現(xiàn)修改單元422、服務(wù)實現(xiàn)配置修改單元423;業(yè)務(wù)流程修改單元424、客戶存根進程修改單元425或
13用戶界面《務(wù)改單元426,分別用于處理如如上所述步驟203的具體處理步驟。
實現(xiàn)以上重構(gòu)處理的支持變化實現(xiàn)的源代碼是針對特定服務(wù)的。不同的服務(wù)元件變化需要不同的具體重構(gòu)處理步驟(如圖2步驟203所示)或修改單元(如圖4修改裝置420所示)或其組合,這一點可根據(jù)面向服務(wù)應(yīng)用中具體的服務(wù)元件及其變化引發(fā)的影響來由設(shè)計人員進行分析判斷。
例如,通常服務(wù)元件的任何變化(包括功能性和非功能性需求改變),都需要服務(wù)模型修改單元421和部署腳本修改單元427對服務(wù)模型以及部署腳本進行修改;在改變服務(wù)消息時還需要服務(wù)元件實現(xiàn)修改單元422和客戶存根進程修改單元425對服務(wù)元件實現(xiàn)和服務(wù)調(diào)用客戶存根進程進行修改;如果改變服務(wù)消息并且該服務(wù)消息出現(xiàn)在某些業(yè)務(wù)過程中或工作流程定義中時則還需要業(yè)務(wù)流程修改單元424對受影響的業(yè)務(wù)流程進行修改;如果服務(wù)使用了配置機制或規(guī)則引擎,則還需要服務(wù)實現(xiàn)配置修改單元423;而如果存在與改變消息的服務(wù)相關(guān)的用戶界面,則還需要用戶界面修改單元426。而如果僅僅是非功能性需求改變,則僅需要服務(wù)模型修改單元421和部署腳本修改單元427對服務(wù)模型以及部署腳本進行修改。
變化元模型
變化模型是基于變化元模型完成的,即作為變化元模型的一個實例,而變化元模型定義了所有的有關(guān)可變化服務(wù)元件的變化點信息(變化點)的定義格式。所述變化模型本身也可以包含變化元模型的所有信息,即其本身也可定義所有的有關(guān)可變化服務(wù)元件的變化點信息。
變化元模型定義了控制如何定義變化模型。根據(jù)不同面向服務(wù)應(yīng)用的不同要求,變化元模型可以簡單也可以復(fù)雜,可以是圖形模型或例如樹形結(jié)構(gòu)、關(guān)系表等任何類型的模型,也可以是文M型。如下示出了以XML語言編寫的定義了所有的有關(guān)可變化服務(wù)元件的變化點信息的變化元模型示例。
< 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 "> 〃變眾點游定乂, 一凝新差x^5 J^一個贗多。<aff〃';bute name='se/v/'ceA/ame' fype='sfr7'ng^> 〃嚴多游名字
<aff〃'ibt;te name="se/v/'ceA/amespace" fype="sfr7'ng"></e/emenf> 〃一個變眾,d,對應(yīng)贗多游名字S河
〈aft廠/6wte na/7 e="serw'cePo/t7ype"(Kpe="sf〃'ng"></e/emenf>〃 一^^眾點^f對il I多游端/7^^, 這個浙J:,尉;f微定XW僧儒魏點
<e/eA7 errf name=7npt/WWessage/a〃'af/'on" (ype="fr s:Messagfe/a〃'aft'on"></e/eme/^> 〃 一個
變眾點^激乂撒I游
<e/emenf name="oi//pt/WWessage/an'aton" fype=' ns.'Message/a〃af/'on"></e/eAneA f> # —
個,眾點^翰幼樣息游^,化點
<e/emenf naA7 e="se/v/ce/a〃'aM/ /'> 〃賴束鲞體定義這個資眾點游^^絲
<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"> 〃驗A撒唐^變絲游定J6激
<e/e/r enf name='77e/c//aA7'af/on" fype='Yns:Re/d/a〃'aft'on" 〃一個翰乂將,息游^",絲屋^它游字虔游 輕勝邀成
maxOcct//*s=""nbowcted" m/>70ccuA*s= "0 ">
</fco/7 p/e;f Type >
《comp/狄7ypename 'F/e/c/V^7'aft'on、 〃 一個將乂息字虔游^^絲定乂
<e/emenf name="f/'e/GWddajWe" fype="6oo/ean" maxOco/rs="" m/nOco/A*s="0"> <yetemenf> 〃 以^i 個^^^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> //這個字
靜柳録
<e/emenf name=7 e/afMocW7ajb/e" fype="jboo/eaA " max0cayrs="7" m/nOccwrs="0"></e/emenf> //這
個字虔TO録
<e/emenf name:'7/e/d/ emovec/" fype="boo/ean" maxOcct//*s="7" m/>7Occtyrs="0"> </e/emenf> #這個
<e/emenf name="/7e/aWdctecr (ype二7lcfatecF/e/d" maxOcct/rs=" unbowctecT m/nOcct/rs="0"> <e/emenf>〃這個字虔之后譜》/77—個字虔'字虔定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財
<e/emenf name="fi'e/o7/ame" fype="sfr/ng" maxOccu廠s-"7" m/> Occurs="0"></e/emenf> 〃這個^^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 ^多個_^眾點資成
</comp/ex7>p6>
優(yōu)選實施例
以下參考面向服務(wù)應(yīng)用中的一個服務(wù),,CreateOrganization(新建一 個部門)"的服務(wù)元件發(fā)生變化為例,詳細說明本發(fā)明的優(yōu)選實施例。
圖5A示出面向服務(wù)應(yīng)用中的一個服務(wù)"CreateOrganization(新建一 個部門)",其輸入消息是作為擴展集(Superset)的Organization的實體, 其包含的屬性如圖所示,包括字符串型的effectiveDate (有效日期)、整 數(shù)型的numberOfMember (成員數(shù)量)等等。
基于對面向服務(wù)應(yīng)用的服務(wù)模型的認識來識別其中的可變化服務(wù)元 件,例如針對服務(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)建變化模型的同時基于對面向服務(wù)應(yīng)用的服務(wù)及業(yè)務(wù)流程的理 解構(gòu)建用于實現(xiàn)"增加消息字段"的源代碼。
當用戶需求變化后,比如需要加入兩個新的屬性:organizationType(部門類型)和preferredLanguage (優(yōu)選語言),這樣organization包含 的屬性如圖5B所示,在尾部增加了兩個屬性。
用戶通過變化模型選擇增加兩個消息字段作為變化模型實例。該變化 模型實例包含兩個變化點,如下所示。
<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門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è)備接收變化模型實例信息并實施預(yù)定的用 于實現(xiàn)"增加消息字段"的源代碼,具體地通過修改服務(wù)注冊中心的
WSDL, XSD (BO)定義、規(guī)劃或者屬性來修^J艮務(wù)模型;在代碼級修改 服務(wù)元件實現(xiàn);修改面向服務(wù)應(yīng)用中的服務(wù)調(diào)用客戶存根進程(例如服務(wù) 調(diào)用代碼和客戶存根);以及修改面向服務(wù)應(yīng)用的部署腳本(如DB腳本), 從而對所述服務(wù)模型和服務(wù)模型源代碼都進行了重構(gòu)處理,使得重構(gòu)后的 服務(wù)模型和服務(wù)模型源代碼都支持增加了以上兩個消息字段的服務(wù)元件 "CreateOrganization",從而提供了定制的面向服務(wù)的應(yīng)用。
另夕卜還應(yīng)該指出的是,上述系列處理和裝置也可以通過軟件和固件 實現(xiàn)。在通過軟件或固件實現(xiàn)的情況下,從存儲介質(zhì)或網(wǎng)絡(luò)向具有專用硬 件結(jié)構(gòu)的計算機,例如圖6所示的通用計算機600安裝構(gòu)成該軟件的程序, 該計算機在安裝有各種程序時能夠執(zhí)行各種功能等等。
在圖6中,中央處理單元(CPU)601才艮據(jù)只讀存儲器(ROM)602中存 儲的程序或從存儲部分608加載到隨M取存儲器(RAM)603的程序執(zhí)行 各種處理。在RAM 603中,也根據(jù)需要存儲當CPU 601執(zhí)行各種處理等 等時所需的數(shù)據(jù)。
17CPU 601、 ROM 602和RAM 603經(jīng)由總線604彼此連接。輸"輸 出接口 605也連接到總線604。
下述部件連接到輸"輸出接口 605:輸入部分606,包括M、鼠標 等等;輸出部分607,包括顯示器,比如陰;feL射線管(CRT)、液晶顯示器 (LCD)等等,和揚聲器等等;存儲部分608,包括硬盤等等;和通信部分 609,包括網(wǎng)絡(luò)接口卡比如LAN卡、調(diào)制解調(diào)器等等。通信部分609經(jīng)由 網(wǎng)絡(luò)比如因特網(wǎng)執(zhí)行通信處理。
根據(jù)需要,驅(qū)動器610也連接到輸X/輸出接口 605??刹鹦督橘|(zhì)611 比如磁盤、光盤、磁光盤、半導(dǎo)體存儲器等等根據(jù)需要被安裝在驅(qū)動器 610上,使得從中讀出的計算M序根據(jù)需要被安裝到存儲部分608中。
在通過軟件實現(xiàn)上述系列處理的情況下,從網(wǎng)絡(luò)比如因特網(wǎng)或存儲介 質(zhì)比如可拆卸介質(zhì)611安裝構(gòu)成軟件的程序。
本領(lǐng)域的技術(shù)人員應(yīng)當理解,這種存儲介質(zhì)不局限于圖6所示的其中 存儲有程序、與設(shè)備相分離地分發(fā)以向用戶提供程序的可拆卸介質(zhì)611。 可拆卸介質(zhì)611的例子包含磁盤(包含軟盤)、光盤(包含光盤只讀存儲器 (CD-ROM)和數(shù)字通用盤(DVD))、磁光盤(包含迷你盤(MD))和半導(dǎo)體存 儲器?;蛘撸鎯橘|(zhì)可以是ROM 602、存儲部分608中包含的硬盤等 等,其中存有程序,并且與包含它們的設(shè)備一起被分發(fā)給用戶。
還需要指出的是,執(zhí)行上述系列處理的步驟可以自然地按照說明的順 序按時間順序執(zhí)行,但是并不需要一定按照時間順序執(zhí)行。某些步驟可以 并行或彼此獨立地執(zhí)行。
雖然已經(jīng)詳細說明了本發(fā)明及其優(yōu)點,但是應(yīng)當理解在不脫離由所附 的權(quán)利要求所限定的本發(fā)明的精神和范圍的情況下可以進行各種改變、替 代和變換。而且,本申請的范圍不僅限于說明書所描述的過程、設(shè)備、制 造、物質(zhì)的結(jié)構(gòu)、手段、方法和步驟的具體實施例。本領(lǐng)域內(nèi)的普通技術(shù) 人員從本發(fā)明的公開內(nèi)容將容易理解,根據(jù)本發(fā)明可以使用執(zhí)行與在此所 述的相應(yīng)實施例基^f目同的功能或者獲得與其基4^目同的結(jié)果的、現(xiàn)有和 將來要被開發(fā)的過程、設(shè)備、制造、物質(zhì)的結(jié)構(gòu)、手段、方法或者步驟。 因此,所附的權(quán)利要求旨在它們的范圍內(nèi)包括這樣的過程、設(shè)備、制造、 物質(zhì)的結(jié)構(gòu)、手段、方法或者步驟。
權(quán)利要求
1. 一種提供針對面向服務(wù)的應(yīng)用的重構(gòu)方案的方法,所述面向服務(wù)的應(yīng)用包括服務(wù)模型和與所述服務(wù)模型相關(guān)的服務(wù)模型源代碼,該方法包括以下步驟識別所述服務(wù)模型中的可變化服務(wù)元件;基于可變化的服務(wù)元件,構(gòu)建用于定義有關(guān)所述可變化服務(wù)元件的可選擇變化點信息的變化模型;以及創(chuàng)建支持變化實現(xiàn)的源代碼,所述支持變化實現(xiàn)的源代碼定義了為實現(xiàn)有關(guān)可變化服務(wù)元件的變化點信息而需要的服務(wù)模型和服務(wù)模型源代碼的變化,用于使用對所述變化模型中有關(guān)可變化服務(wù)元件的變化點信息的選擇作為輸入,根據(jù)所述源代碼中支持所述變化點實現(xiàn)的變化定義對所述服務(wù)模型和服務(wù)模型源代碼進行預(yù)定的重構(gòu)處理。
2. 根據(jù)權(quán)利要求1所述的提供針對面向服務(wù)的應(yīng)用的重構(gòu)方案的方 法,在提供面向服務(wù)的應(yīng)用的同時或之后進行。
3. 根據(jù)權(quán)利要求1所述的提##對面向服務(wù)的應(yīng)用的重構(gòu)方案的方 法,其中所述可變化服務(wù)元件包括業(yè)務(wù)流程、服務(wù)、服務(wù)描述、服務(wù)通信 協(xié)議和/或傳輸功能實體;和/或包括策略、安全性、事務(wù)和/或管理在內(nèi)的 有關(guān)服務(wù)質(zhì)量的非功能性實體。
4. 根據(jù)權(quán)利要求1所述的提供針對面向服務(wù)的應(yīng)用的重構(gòu)方案的方 法,其中所述有關(guān)可變化服務(wù)元件的變化點信息包括用于定義服務(wù)元件是 否可變以及變化范圍的可變性信息。
5. 根據(jù)權(quán)利要求4所述的提供計對面向服務(wù)的應(yīng)用的重構(gòu)方案的方 法,其中所述可變性信息包括消息字段的增刪或修改、服務(wù)操作的增刪或 修改、和/或服務(wù)的非功能性需要的增刪或修改。
6. 根據(jù)權(quán)利要求5所述的提供針對面向服務(wù)的應(yīng)用的重構(gòu)方案的方 法,其中消息字段的增刪或修改包括添加字段到現(xiàn)有輸入/輸出消息的定 義、或從現(xiàn)有的消息定義刪除字段。
7. 根據(jù)權(quán)利要求1所述的提,對面向服務(wù)的應(yīng)用的重構(gòu)方案的方 法,其中所述變化模型是基于變化元模型完成的,所述變化元模型定義了 所有的有關(guān)可變化服務(wù)元件的變化點信息的定義格式。
8. 根據(jù)權(quán)利要求1所述的提,對面向服務(wù)的應(yīng)用的重構(gòu)方案的方法,其中所述支持變化實現(xiàn)的源代碼用于在服務(wù)模型級以及代碼級實現(xiàn)服 務(wù)元件本身的變化以及對服務(wù)契約影響的變化定義,該服務(wù)契約影響變化 定義用于定義所iil艮務(wù)元件變化所引發(fā)的其它服務(wù)元件的變化。
9. 一種用于重構(gòu)面向服務(wù)的應(yīng)用的方法,所述面向服務(wù)的應(yīng)用包括 服務(wù)模型和與所述服務(wù)模型相關(guān)的服務(wù)模型源代碼,該方法包括以下步 驟準備用于定義有關(guān)所述服務(wù)模型中可變化服務(wù)元件的可選擇變化點 信息的變化模型、以及支持變化實現(xiàn)的源代碼,所述支持變化實現(xiàn)的源代 碼定義了實現(xiàn)有關(guān)服務(wù)元件的變化點信息而需要的服務(wù)模型和服務(wù)模型 源代碼的變化;選擇所述變化模型中有關(guān)可變化服務(wù)元件的變化點信息;以及使用所選擇的變化點信息作為輸入,由所述支持變化實現(xiàn)的源代碼對 所i^艮務(wù)模型和月艮務(wù)模型源4戈碼ii行預(yù)定的重構(gòu)處理。
10. 根據(jù)權(quán)利要求9所述的用于重構(gòu)面向服務(wù)的應(yīng)用的方法,其中所 述預(yù)定的重構(gòu)處理基于所述支持變化實現(xiàn)的源代碼中的變化定義,包括 修^Ul務(wù)模型和修改部署腳本;以及以下步驟中的至少一個在代碼級修^J艮務(wù)元件實現(xiàn);在配置級修^Ji艮務(wù)實現(xiàn);修改受影響的 業(yè)務(wù)流程;修改面向服務(wù)應(yīng)用中的服務(wù)調(diào)用客戶存根進程;或者修改受到 服務(wù)元件改變的影響的用戶界面部分。
11. 根據(jù)權(quán)利要求10所述的用于重構(gòu)面向服務(wù)的應(yīng)用的方法,其中 所述變化點信息是消息字段的增刪或修改,所述重構(gòu)處理包括修^JJ艮務(wù)模 型、在代碼級修^tl艮務(wù)元件實現(xiàn)、修改面向服務(wù)應(yīng)用中的服務(wù)調(diào)用客戶存 根進程、以及修改面向服務(wù)應(yīng)用的部署腳本。
12. —種針對面向服務(wù)的應(yīng)用的重構(gòu)方案提供設(shè)備,所述面向服務(wù)的 應(yīng)用包括服務(wù)模型和與所iO艮務(wù)模型相關(guān)的服務(wù)模型源代碼,該重構(gòu)方案 提供設(shè)備包括識別裝置,被配置為識別所述服務(wù)模型中的可變化服務(wù)元件;變化模型構(gòu)建裝置,被配置為基于可變化的服務(wù)元件,構(gòu)建用于定義 有關(guān)所述可變化服務(wù)元件的可選擇變化點信息的變化模型;以及代碼創(chuàng)建裝置,被配置為創(chuàng)建支持變化實現(xiàn)的源代碼,所述支持變化實現(xiàn)的源代碼定義了為實現(xiàn)有關(guān)可變化服務(wù)元件的變化點信息而需要的服務(wù)模型和服務(wù)模型源代碼的變化,用于使用對所述變 化模型中有關(guān)可變化服務(wù)元件的變化點信息的選擇作為輸入,根據(jù)其中支 持所述變化點實現(xiàn)的變化定義對所述服務(wù)模型和服務(wù)模型源代碼進行預(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ù)元件 的變化點信息的變化模型中確定有關(guān)可變化服務(wù)元件的變化點信息;以及修改裝置,被配置為接收所確定的變化點信息作為輸入,基于支持變 化實現(xiàn)的源代碼對所iil艮務(wù)模型和服務(wù)模型源代碼進行預(yù)定的重構(gòu)處理, 所述支持變化實現(xiàn)的源代碼定義了實現(xiàn)有關(guān)服務(wù)元件的變化點信息而需 要的服務(wù)模型和服務(wù)模型源代碼的變化。
14. 根據(jù)權(quán)利要求13所述的面向服務(wù)的應(yīng)用的重構(gòu)i殳備,其中所述 修改裝置包括被配置為修^U良務(wù)模型的服務(wù)模型修改單元、被配置為修改 部署腳本的部署腳本《奮改單元、以及以下單元中的至少一種被配置為在代碼級修^J3良務(wù)元件實現(xiàn)的服務(wù)元件實現(xiàn)修改單元、被配置為在配置級修^y良務(wù)實現(xiàn)的服務(wù)實現(xiàn)配置修改單元;被配置為修改受影響的業(yè)務(wù)流程的業(yè)務(wù)流程修改單元、被配置為修^*務(wù)調(diào)用客戶存根進程 的客戶存根進程修改單元、和被配置為修改受到服務(wù)元件改變的影響的用 戶界面部分的用戶界面修改單元。
15. 根據(jù)權(quán)利要求14所述的面向服務(wù)的應(yīng)用的重構(gòu)設(shè)備,其中所述 變化點信息是消息字段的增刪或修改,所述修^置包括服務(wù)模型修改單 元;服務(wù)元件實現(xiàn)修改單元;客戶存根進程修改單元和部署腳本修改單元。
全文摘要
本發(fā)明公開了用于重構(gòu)面向服務(wù)的應(yīng)用的方法及其設(shè)備,所述面向服務(wù)的應(yīng)用包括服務(wù)模型和與所述服務(wù)模型相關(guān)的服務(wù)模型源代碼。用于重構(gòu)面向服務(wù)的應(yīng)用的方法包括準備用于定義有關(guān)服務(wù)模型中可變化服務(wù)元件的可選擇變化點信息的變化模型、以及支持變化實現(xiàn)的源代碼,所述支持變化實現(xiàn)的源代碼定義了實現(xiàn)有關(guān)服務(wù)元件的變化點信息而需要的服務(wù)模型和服務(wù)模型源代碼的變化;選擇所述變化模型中有關(guān)可變化服務(wù)元件的變化點信息;使用所選擇的變化點信息作為輸入,由所述支持變化實現(xiàn)的源代碼對所述服務(wù)模型和服務(wù)模型源代碼進行預(yù)定的重構(gòu)處理。
文檔編號G06F9/44GK101546260SQ20081008983
公開日2009年9月30日 申請日期2008年3月28日 優(yōu)先權(quán)日2008年3月28日
發(fā)明者周志榮, 佳 譚, 戈 金 申請人:國際商業(yè)機器公司