(合肥職業(yè)技術(shù)學院,安徽 合肥 238000)
Web services可以對各種異構(gòu)的應(yīng)用系統(tǒng)進行整合,實現(xiàn)互操作。如將公司的客戶、商業(yè)伙伴以及供貨商的應(yīng)用程序進行有效整合來完成特定的業(yè)務(wù)。Web Services的工作機制[1]如圖1所示,服務(wù)提供者通過網(wǎng)絡(luò)向UDDI服務(wù)器注冊網(wǎng)絡(luò)服務(wù),UDDI服務(wù)器以WSDL文檔格式發(fā)布網(wǎng)絡(luò)服務(wù)的內(nèi)容及網(wǎng)絡(luò)地址,并通過SOAP協(xié)議提供服務(wù)端程序,WSDL描述文件與服務(wù)端的程序所在的地址可由服務(wù)提供者決定。用戶可通過UDDI服務(wù)器查找所需的網(wǎng)絡(luò)服務(wù),從UDDI服務(wù)器所指向的網(wǎng)絡(luò)地址中,取得描述網(wǎng)絡(luò)服務(wù)的WSDL文件以及服務(wù)接口信息,之后便可通過SOAP技術(shù)取得該網(wǎng)絡(luò)服務(wù)。
圖1 Web Services的工作機制
由于大部份網(wǎng)絡(luò)服務(wù)采用SOAP通信機制,而在SOAP通信中并沒有提供先后順序的信息。因此網(wǎng)絡(luò)服務(wù)執(zhí)行順序就必須利用工作流程來實現(xiàn),而流程的構(gòu)建也是在做網(wǎng)絡(luò)服務(wù)組合所必須考慮的。除此之外,在網(wǎng)絡(luò)服務(wù)組合過程中網(wǎng)絡(luò)服務(wù)彼此間需相互操作,服務(wù)之間溝通、傳遞信息都是影響流程運作是否順利完成的重要環(huán)節(jié),由于不同的服務(wù)提供者所提供的服務(wù)存在異構(gòu)型,會導致應(yīng)用程序溝通或信息轉(zhuǎn)換不正確。此外,因為根據(jù)用戶需求轉(zhuǎn)換產(chǎn)生流程時,可能有多個流程產(chǎn)生,這些都是網(wǎng)絡(luò)服務(wù)組合機制要解決的問題。
網(wǎng)絡(luò)服務(wù)組合是指組合一些獨立存在的網(wǎng)絡(luò)服務(wù)去實現(xiàn)新功能性的服務(wù)。就目前而言,要求使用者查找最合適的服務(wù)、確認數(shù)據(jù)型態(tài)是否一致及請求每一個服務(wù)來組合成一工作流程或新功能是相當復雜的,需要一種自動化的方法來進行工作流程的組合[2]。
目前比較流行的網(wǎng)絡(luò)服務(wù)組合規(guī)范[2]如表1所示,主要針對流程建模是否支持語義、QoS及與WSDL的關(guān)系來做比較??梢钥闯瞿壳熬W(wǎng)絡(luò)服務(wù)組合規(guī)范大部分都不支持QoS及語義描述。而QoS提供相關(guān)信息來表示網(wǎng)絡(luò)服務(wù)的質(zhì)量,因此單以目前的標準語法無法了解這些非功能性的數(shù)據(jù)。需考慮如何將QoS信息記錄下來以達到較好的推薦效果。
表1 網(wǎng)絡(luò)服務(wù)組合規(guī)范比較表
網(wǎng)絡(luò)服務(wù)組合可分為手動組合、半自動組合、自動組合三種[3]。所謂的手動組合架構(gòu),指其用戶可以通過圖形化接口或文本編輯器產(chǎn)生工作流程描述,此描述已決定要執(zhí)行的服務(wù),最后將產(chǎn)生的工作流程傳送到工作流執(zhí)行引擎執(zhí)行;半自動組合技術(shù)主要在服務(wù)選擇時提供語義建議,而使用者仍需從建議的服務(wù)列表中選擇最適合的服務(wù),并根據(jù)自己業(yè)務(wù)需求,對服務(wù)進行編排;自動組合技術(shù)指利用人工智能規(guī)劃或類似技術(shù),達到整個流程組合的自動化。表2匯集了目前相關(guān)網(wǎng)絡(luò)服務(wù)組合系統(tǒng)架構(gòu)待解決的問題。針對這些缺陷,提出一種更實用、效率更好的網(wǎng)絡(luò)服務(wù)組合系統(tǒng)架構(gòu)。
表2 常用網(wǎng)絡(luò)服務(wù)組合架構(gòu)問題匯總表
構(gòu)建一種服務(wù)組合機制,將分布在不同地理位置的服務(wù)按照用戶需求進行組合。主要從三個方面進行探索,一是利用語義分類技術(shù),當網(wǎng)絡(luò)服務(wù)提供者提供服務(wù)時,系統(tǒng)針對網(wǎng)絡(luò)服務(wù)描述作為分類基礎(chǔ),將網(wǎng)絡(luò)服務(wù)依功能分屬多個類別,以利于查找服務(wù)時加速找到相似功能的服務(wù)。二是提供一個圖形化的接口供流程提供者構(gòu)建工作流程,并且將工作流程轉(zhuǎn)換成法則形式存于數(shù)據(jù)庫中,以便于進行自動化網(wǎng)絡(luò)服務(wù)組合時,能以推論方式自動產(chǎn)生符合用戶需求的流程。最后建構(gòu)一種自動化網(wǎng)絡(luò)服務(wù)組合架構(gòu),以尋找符合服務(wù)流程的網(wǎng)絡(luò)服務(wù),并協(xié)助服務(wù)間的相互溝通,解決因網(wǎng)絡(luò)服務(wù)快速增加而導致服務(wù)查找選擇的問題,圖2所示。
為滿足用戶需求,結(jié)合服務(wù)流程,自動選擇合適服務(wù)提供給用戶,提高網(wǎng)絡(luò)服務(wù)重用性,設(shè)計一種架構(gòu)模型如圖3所示。架構(gòu)模型包含了三個角色,分別為流程需求者、服務(wù)提供者、流程構(gòu)建者,其說明定義如下:
圖2 自動化網(wǎng)絡(luò)服務(wù)組合圖
(1)流程需求者:流程需求者依據(jù)其不同需求,直接通過以組件服務(wù)技術(shù)為基礎(chǔ)的平臺,得到動態(tài)組合的服務(wù)流程,以完成其需求目的。
(2)服務(wù)提供者:服務(wù)提供者將特定應(yīng)用程序,利用WSDL加以描述,然后發(fā)布到UDDI服務(wù)器上,服務(wù)請求者可通過網(wǎng)絡(luò)查找到該服務(wù)。
(3)流程構(gòu)建者:流程構(gòu)建者針對特定領(lǐng)域,建構(gòu)該領(lǐng)域的服務(wù)操作或計劃活動的執(zhí)行順序,以利于之后進行服務(wù)流程建構(gòu)使用。
此外通過代理機制與數(shù)據(jù)庫、工作流程來與UDDI相互運作進而得到一種動態(tài)組合的流程服務(wù),以完成用戶需求,此代理機制包含六個模塊[4],分別定義及說明如下:
圖3 自動化網(wǎng)絡(luò)服務(wù)組合架構(gòu)模型
(1)分類分析器:當服務(wù)提供者將特定應(yīng)用程序發(fā)布到UDDI服務(wù)器時,分類分析器分析服務(wù)提供者所提供的網(wǎng)絡(luò)服務(wù)描述,消除不具信息價值的常用字詞,移除重復的字詞以取得服務(wù)功能的字詞,接著將取得的字詞采用詞干提取算法作詞性正規(guī)化,并利用WordNet擴張字義以取得功能性字詞,來將網(wǎng)絡(luò)服務(wù)加以分類,以利于在進行網(wǎng)絡(luò)服務(wù)查找時,過濾功能不相似的服務(wù),加速查找效率及正確性。
(2)規(guī)則轉(zhuǎn)換器:流程構(gòu)建者通過瀏覽器構(gòu)建流程時,會提供圖形化接口,以便流程構(gòu)建者建構(gòu)流程且利用規(guī)則轉(zhuǎn)換器機制將流程轉(zhuǎn)換成法則結(jié)構(gòu),并利用網(wǎng)絡(luò)服務(wù)組合規(guī)范描述特定領(lǐng)域服務(wù)操作或計劃活動的執(zhí)行順序,以利于之后進行服務(wù)流程建構(gòu)或執(zhí)行使用。
(3)請求轉(zhuǎn)換器:將經(jīng)由瀏覽器接收到的服務(wù)功能需求轉(zhuǎn)置成WSDL描述格式。
(4)流程控制器:將請求轉(zhuǎn)換器所產(chǎn)生的WSDL描述轉(zhuǎn)換成網(wǎng)絡(luò)服務(wù)流程,用以表示網(wǎng)絡(luò)服務(wù)執(zhí)行次序的控制,其分為抽象web流程和具體web流程兩種,差異在于具體web流程明確指出所鏈接的網(wǎng)絡(luò)服務(wù)。
(5)流程選擇器:主要功能是從多個具有相同功能的具體web流程中選擇最合適的流程。
(6)執(zhí)行控制器:其包含兩部分,分別為執(zhí)行代碼及故障處理機制。執(zhí)行代碼主要將系統(tǒng)所產(chǎn)生的具體web流程轉(zhuǎn)置成網(wǎng)絡(luò)服務(wù)組合規(guī)范的文件,利用工作流程引擎直接解譯并執(zhí)行此文件,而故障處理機制主要在當應(yīng)用程序溝通或信息轉(zhuǎn)換上的不正確而導致失敗或提供服務(wù)的鏈接無效時,提供一種容錯機制自動選擇合適的網(wǎng)絡(luò)服務(wù)替代。
接下來,從流程需求者的角度來描述其本架構(gòu)模型如何執(zhí)行運作,如圖4所示。
圖4 自動化網(wǎng)絡(luò)服務(wù)組合運作架構(gòu)
在系統(tǒng)運作部分,將代理機制中的請求轉(zhuǎn)換器、流程控制器、流程選擇器、執(zhí)行控制器等四個模塊劃分到后四個階段中。網(wǎng)絡(luò)服務(wù)組合生命周期五階段如下所示:
(1)規(guī)劃階段:用戶可通過瀏覽器選擇流程所需的服務(wù)操作以及相關(guān)信息數(shù)據(jù)。
(2)定義階段:利用請求轉(zhuǎn)換器功能模塊將流程需求者所決定的服務(wù)操作及提供的相關(guān)信息轉(zhuǎn)置成WSDL格式的需求規(guī)格。
(3)計劃階段:利用流程控制器將需求規(guī)格,經(jīng)規(guī)則庫及抽象 web流程數(shù)據(jù)庫自動產(chǎn)生抽象服務(wù)組合流程,建構(gòu)抽象服務(wù)組合流程如圖5所示,首先檢查是否有相同服務(wù)流程已建立,若有則直接重用該服務(wù)流程,否則以法則進行推論得到流程。但可能因法則庫中的法則建立不足,以致不能產(chǎn)生滿足用戶需求的服務(wù)流程,此時采用回溯算法,根據(jù)使用者提供的輸入及輸出結(jié)果構(gòu)建服務(wù)流程。此方法可避免用戶設(shè)計無效的流程也可節(jié)省流程設(shè)計時間。無效工作流程包含設(shè)計上的錯誤,例如流程沒有終止點或死結(jié)等情況。
(4)構(gòu)建階段:主要在產(chǎn)生一個具體且不含糊的服務(wù)組合流程,明確的指出所要鏈接的服務(wù)。此階段又細分為匹配階段和推薦階段兩階段如圖6,其說明如下:
匹配階段:主要在查找符合抽象服務(wù)組合流程中每一服務(wù)操作或計劃活動的服務(wù)。由于使用者對于服務(wù)的偏好如“使用服務(wù)費用”、“服務(wù)執(zhí)行響應(yīng)時間”因人而異,所以將針對服務(wù)偏好相同且已有具體服務(wù)流程存在具體web流程數(shù)據(jù)庫中者直接重用該流程,其余則利用組合機制構(gòu)建具體服務(wù)流程組合。
圖5 建構(gòu)抽象服務(wù)組合流程
推薦階段:主要利用流程選擇器模塊提供一種機制,針對匹配階段所產(chǎn)生的可行的具體服務(wù)流程組合,選擇一種最合適的流程組合,進而供運行時間執(zhí)行。
圖6 自動化網(wǎng)絡(luò)服務(wù)組合運作架構(gòu)─建構(gòu)階段
(5)執(zhí)行階段:將具體服務(wù)流程組合轉(zhuǎn)置成網(wǎng)絡(luò)服務(wù)組合規(guī)范的文件,這里采用BPEL4WS規(guī)范描述流程并利用執(zhí)行控制器來執(zhí)行流程。
工作流程是指企業(yè)流程自動化,根據(jù)程序規(guī)則,傳遞參與者之間的文件、信息及工作,使其順利完成。當工作流程系統(tǒng)要求執(zhí)行某一工作時,其須包含如工作名字、參數(shù)、相關(guān)數(shù)據(jù)及和執(zhí)行的應(yīng)用程序,因為網(wǎng)絡(luò)服務(wù)也包含相同的信息,因此網(wǎng)絡(luò)流程可視為工作流程,而流程內(nèi)的工作可以用網(wǎng)絡(luò)服務(wù)替代。這里描述的工作流程是由tasks、networks及transitions所組成的。tasks以圓形表示,其可視為一個網(wǎng)絡(luò)服務(wù),為工作流程中的基本元素;networks以圓矩形表示,其表示一子工作流程;transitions以箭頭表示,決定下一個所要啟動的網(wǎng)絡(luò)服務(wù),控制整個工作流程執(zhí)行順序[5]。
組合機制主要以抽象服務(wù)組合流程為基礎(chǔ),通過UDDI找尋符合的網(wǎng)絡(luò)服務(wù)并且將其串連起來,所以,此機制分成兩大部分,第一部分主要針對流程內(nèi)的工作與網(wǎng)絡(luò)服務(wù)進行比對,而另一部分則根據(jù)網(wǎng)絡(luò)服務(wù)與網(wǎng)絡(luò)服務(wù)的可組合性來探討。
就網(wǎng)絡(luò)服務(wù)基礎(chǔ)架構(gòu)而言,可采用多維方法來選擇網(wǎng)絡(luò)服務(wù),利用句法、語義及網(wǎng)絡(luò)服務(wù)質(zhì)量等三方面來比對流程內(nèi)的工作與具有相同功能的服務(wù)相似度,以增加其正確性。
(1)句法相似度
即使描述相同網(wǎng)絡(luò)服務(wù),用文字描述就可能產(chǎn)生多種結(jié)果,所以需要一種相似度準則計算句法相似度,主要采用q-grams來比對服務(wù)名稱與流程工作名稱的相似度,而不考慮語義相關(guān)信息。
(2)語義相似度
在語義相似度部份,開發(fā)一個機制能自動地計算網(wǎng)絡(luò)服務(wù)與流程工作的相似度,采用描述一般性字詞的通用知識本體,利用本體來描述網(wǎng)絡(luò)服務(wù)規(guī)格字詞的模糊,可解決服務(wù)提供者與服務(wù)使用者語義之間落差所引起查找效率不佳或精確度的問題。在語義相似度計算上,建立一比對方法。比對流程工作與網(wǎng)絡(luò)服務(wù)名稱、input、output、input constraints及output constraints以期達到最大的整合效果。
(3)網(wǎng)絡(luò)服務(wù)質(zhì)量相似度
由于不同QoS屬性其值的高低影響整個QoS評估結(jié)果,所以針對不同性質(zhì)的QoS采用不同計算方式。使用時間、成本、可靠性等QoS屬性作為評估項目并假設(shè)服務(wù)提供者及服務(wù)需求者皆提供相關(guān)QoS屬性值。在計算網(wǎng)絡(luò)服務(wù)質(zhì)量相似度時只針對經(jīng)過句法相似度及語義相似度計算后所得的相似功能的網(wǎng)絡(luò)服務(wù)來加以計算。
在定義一個合成服務(wù)時,分析該合成服務(wù)中部分服務(wù)是否可組合,即是否可將多個網(wǎng)絡(luò)服務(wù)進行組合產(chǎn)生新的服務(wù)功能。所以除了進行相似度評估,也考慮網(wǎng)絡(luò)服務(wù)彼此是否能互相溝通組合。網(wǎng)絡(luò)服務(wù)間的組合將比對網(wǎng)絡(luò)服務(wù)的相關(guān)參數(shù)以及服務(wù)連接。
針對目前網(wǎng)絡(luò)服務(wù)動態(tài)流程整合所面臨的問題,提出一種服務(wù)組合系統(tǒng)架構(gòu),使用匹配功能選取最合適的網(wǎng)絡(luò)服務(wù)并通過服務(wù)功能分類加速網(wǎng)絡(luò)服務(wù)查找的效率及正確性。這種自動化網(wǎng)絡(luò)服務(wù)組合系統(tǒng)將大大地強化網(wǎng)絡(luò)服務(wù)組合的管理,依據(jù)儲存的抽象化程度不同,對服務(wù)流程進行重用,可降低服務(wù)流程開發(fā)的時間,達到快速整合及自動整合的目的。