《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > 基于工作流的Web服務組合系統的設計與實現

基于工作流的Web服務組合系統的設計與實現

2009-05-25
作者:王一飛,吳素芹,王 榕

??? 摘 要:單個Web服務難以滿足實際應用的需求,為了解決互聯網應用的集成和協作問題,需要把獨立的Web服務組合起來以實現復雜的業務邏輯功能。通過分析工作流與Web服務流程執行的相同點,設計并實現了一個基于工作流的Web服務組合系統(WSCS)。該系統能在自治的、異構的、動態的環境下靈活、高效地組合Web服務。整個系統主要包括三個模塊:組合流程建模模塊、服務選取模塊、流程執行模塊。
??? 關鍵詞:服務組合;Web服務;工作流

?

??? 近年來,基于XML的Web服務技術迅速發展,為互聯網應用提供了一種共享數據的有效手段。Web服務的高效執行方式、Web服務與其他成熟技術的有機結合以及Web服務的組合是解決現實應用問題的重要技術。
??? Web服務是一種自包含、自描述、模塊化的程序,它吸收了分布式計算、Grid計算和XML等各種技術的優點,解決了異構分布式計算以及代碼與數據重用等問題,具有高度的互操作性、跨平臺性和松耦合性,引起了世界范圍內學術界和工業界的極大興趣[1-2]
??? 為滿足Web服務的技術需求,W3C等國際標準組織制定了一系列Web服務規范,如統一描述發現集成UDDI(Universal Description,Discovery and Integration),簡單對象訪問協議SOAP(Simple Object Access Protocol),Web服務描述語言WSDL(Web Service Description Language)等等,都是用于描述、發布、發現和調用Web服務的,這些規范共同構成了Web服務的技術體系[3]
??? Web服務所執行的功能可以是從簡單的請求到復雜的商業過程中的任何事,然而單個Web服務的功能有限,難以滿足實際應用中的多種多樣的需求,因此為了更加充分地利用共享的Web服務,有必要將共享的Web服務組合起來,提供功能更為強大的服務。Web服務組合是個非常復雜的問題[4-7],它涉及到Web服務的描述、Web服務的發現[8]、Web服務的選擇[9]、Web服務的匹配、Web服務的調度[10-11]、服務質量(QoS)[12-13]等一系列問題。
??? 本文通過參考傳統工作流的相關技術,基于Web服務分布式計算技術設計并實現了一個可擴展的Web服務組合系統(簡稱WSCS),為Web服務組合提供了一個運行、監控環境,能夠很好地解決Web服務之間的集成和協作問題。
1 總體設計
??? WSCS體系結構采用面向服務的體系結構,它所有的主要組成部件均實現為Web服務的形式。系統最終向用戶提供圖形用戶界面的建模工具,用戶通過建模工具定義流程模型和模型中所涉及到的Web服務(可能是一個簡單的Web服務,也可能為一個復雜的組合服務),并形成一個新的Web服務,用于客戶的應用程序中,以滿足客戶的需求。
??? WSCS總體設計流程如圖1所示,首先用戶建模,用戶通過圖形化界面進行建模,將建模后的組合流程傳給服務選取模塊;其次服務選取,查找業務流程中所要用到Web服務,它們可以在UDDI中查找,也可以在服務社區中進行查找。在Web 服務的標準體系中,UDDI是一套基于Web的、分布式的、為Web 服務提供信息中心的實現標準規范,同時也包含一組使企業能夠將自身Web 服務注冊,以使客戶能夠發現;再次將模型中每個業務活動同具體的業務應用進行綁定,獲得Web服務的本地接口,根據用戶的流程和選擇的服務進行服務調用;第四:調用Web服務,系統訪問Web 服務,客戶能夠找出關于WSDL和它要調用的服務信息,使用ServiceFactory類來創建服務。JAX-RPC ServiceFactory獲得JAX-RPC服務,它與廠商無關,能夠編寫可移植代碼。根據WSDL2Java生成的客戶端構件獲得服務的一個存根,最后在該存根上調用Web 服務總的操作;最后服務執行模塊將執行的結果返回給用戶,并用XML文件將其保存。

?

?

2 WSCS中各個模塊的設計
2.1 組合流程建模模塊

??? 組合流程建模模塊為Web服務組合系統對外提供了圖形化用戶界面,它可幫助用戶完成整個業務流程的設計,并動態生成服務選取模塊所需的組合Web服務流程的描述文檔。通過圖形化建模與用戶進行交互,組合流程建模模塊提供了一套簡單并有效的操作方法,使得用戶可以根據自身的需求設計個性化的Web服務組合流程模型。
??? 組合流程建模模塊的運行流程:首先用戶利用圖形化模型設計器設計流程,設置流程執行的順序;其次流程執行順序設計好后,用戶為流程中各圖元,尤其是節點配置相關屬性,設置合適的約束條件;再次保存設計流程的組合文檔和圖形文檔;最后如果需要對流程進行修改,則從文件夾中重新讀取相關文檔,來生成可視化信息,然后重復進行,直到修改完畢并存檔。
??? 當滿足用戶需求的業務流程被設計好以后,組合系統將會生成一個對這個業務流程進行詳細描述的XML文檔,以提交給Web服務動態選取模塊和流程執行模塊使用。組合Web服務模型文檔描述了組合整個流程中各個節點在流程中的約束關系,圖形文檔描述了流程中各圖元的位置。
??? 組合流程建模模塊在整個系統中是一個重要的模塊,下面討論模塊的內部功能結構,具體如圖2所示。

?

?

??? (1)組合服務模型設計中提供建模所需的各種圖元(節點和弧)的繪制,以實現業務流程模型的圖形化界面,設計者可以方便地對圖元進行拖放、選取、刪除等可視化操作。用戶可以通過拖拉(Drag-Drop)方式定義新的流程或者修改已有的業務流程。
??? (2)圖元屬性設置中,系統對流程中各圖元的屬性進行設置。
??? (3)模型文檔存儲、建模完成后,要對生成的組合服務模型進行保存,生成相應的文檔。該文檔以XML形式描述組合服務模型,要與組合模型進行同步更新(如用戶對該文件的修改、讀取等操作)。
??? (4)組合服務模型表示中包括文檔解析,它可以從保存的組合流程圖形文檔和Web服務組合文檔中提取信息,再次把流程圖形化地表示出來。
2.2 服務選取模塊
??? 服務選取模塊的主要功能是根據設計的組合流程,動態地選取滿足約束條件,并且服務質量最優的服務。即在整個流程投入運行前,根據流程設計時用戶的需求,為每個活動節點選擇合適的、可用的Web服務,生成可執行的Web服務序列。
??? Web服務的描述是發現和使用該服務的基礎,它需要能夠被人和機器理解。服務描述文檔中應包含功能性和非功能性需求(如響應時間,費用,可靠性,可用性等)信息,目前Web服務的描述采用WSDL。
??? 查找選取流程中所要用到的Web服務,可以從UDDI中進行查找,在Web服務標準體系中,UDDI是一套基于Web的、分布式的、為Web服務提供的信息注冊中心的實現標準規范,也可以從Web服務社區中查找。
??? Web服務社區是根據服務功能分類的UDDI,在服務選取模塊中起著重要的作用,它把功能相同或相似的服務聚集在一起,這樣服務選取就可以方便地到各服務社區中選取需要的服務,另外由于服務社區提供多個候選服務,服務選取就可以用上一章討論的算法,選擇服務質量優的服務。系統到各服務社區中選取滿足用戶需求的服務,Web服務發布在服務社區中,各個服務社區包含服務的描述文檔和綁定地址。
??? Web服務選取模塊主要根據建模傳過來的組合模型描述文檔,分析其中的執行順序和約束條件,然后采用Bellman-Ford算法依據QoS最優選出一組服務。服務選取模塊主要結構如圖3所示,流程如下:

?


??? (1)文檔解析器解析建模系統傳過來的組合服務模型文檔。
??? (2)服務選取接收到解析后的文檔按一定規則調用UDDI和服務社區中的查詢接口返回的符合要求的服務集,從全局優化的角度采用Bellman-Ford算法在服務社區中找到一組最優服務。
??? (3)服務選取模塊選取服務后,把節點與服務的地址相綁定,然后傳給服務執行模塊。
2.3 流程執行模塊
??? 流程執行模塊把流程節點與具體的Web服務相綁定,然后按照流程進行服務調用,當組合Web服務的條件滿足時,完成對服務的調度和執行,實現組合Web 服務的功能。具體的運行工作主要是組合Web服務的調用,并維護其整個生命周期(包括創建、活動、出錯、結束等)。
??? Web服務組合流程在真正的投入運行之前,首先要進行服務的選取,為每個活動節點選擇一個最佳的Web服務,這一功能由服務選取模塊來實現。服務選取結束后,返回給流程執行模塊一個用XML語言描述的組合流程文檔。
??? 執行流程的約束是對Web服務組合的整體限定,主要是對服務質量(QoS)的約束,對QoS的約束是指對Web服務組合整體性能的限定(如對Web服務組合的可用性、可靠性等性能的約束)。對Web服務組合QoS的約束直接影響了Web服務的選取。在選取Web服務時,既要滿足對單個Web服務QoS的約束,也要考慮到對整個Web服務組合QoS的約束。
??? 組合流程執行模塊的主要功能是:解釋流程定義、串行化流程、執行Web服務的調用,主要功能模塊如圖4所示:

?

?

??? 文檔解析器:從組合流程中選出所要執行的流程文檔,文檔解析器首先分析該文檔所描述的業務流程所代表的含義,各個服務的具體綁定地址,返回給服務調用并進而完成流程的實例化。
??? 服務調用:一個流程要投入運行必須要有一個先后的順序,在流程串行化時按照業務邏輯和一定的策略把一個流程串行化為Web服務調用序列,然后按照流程并行、串行、同步等待地調用各服務。
??? 執行日志:存放執行過程中調用各個服務的具體信息,如果系統出錯可以通過查看執行日志來幫助恢復系統。
??? 異常處理器:對于系統出現的故障,異常處理模塊提供恢復處理手段。流程的執行可能會遇到各種各樣的特殊情況發生(如網絡超時、服務不可用),而這些變化在流程設計時是無法預見的。
??? 組合流程執行模塊是整個運行系統的核心,它一方面為不同的SOAP引擎提供相應的調用接口;另一方面為不同的Web服務組合提供一個統一的運行環境;還為不同的Web服務的實現方式提供了統一的調用方式。
3 Web服務組合系統的實現
??? 目前,工程上科學計算的重要性顯得越來越明顯,大量的科學計算是普通機根本無法完成的,只有尋求大型機去解決。同時,大型機的用戶也總會有時間給其他用戶提供服務,以使大型機充分地被利用。如何才能更好地發揮大型機的效率,使普通的用戶也可以用大型機進行復雜的科學計算?可以把大型機上的科學計算封裝成Web服務的形式,發布在Web上,這樣用戶可以方面地調用,既發揮了大型機的作用,又使普通機用戶受益。
??? 本文假設一個工程需要一個復雜的科學計算,它由下列一些科學計算組成:極限計算(limit calculus)、微分方程計算(differential equation calculus)、級數計算(series calculus)、矩陣計算(matrix calculus)。整個工程需要這些科學計算的組合,先進行極限計算,把結果傳給下面微分方程計算和級數計算,然后再執行矩陣計算。把這4種計算封裝成Web服務,現在的問題就是要對基本服務進行組合。
??? WSCS先對組合服務進行建模,圖形用戶界面的建模工具對組合服務進行建模,建立基本服務的流程,特別的是一個同步節點,它要等待前面所有服務的結果都完成才進行下一個服務的執行,如圖5所示。服務組合模型建好后,Web服務組合系統自動把組合模型保存為XML文檔,以便服務的調用執行。文檔解析器就是用來保存和解析組合模型文檔。

?

?

??? 在上面的文檔中包含了需要的各個基本服務以及各服務之間的執行流程。系統還提供了另外一個XML文檔,它用來保存各個服務節點在圖形用戶界面中的位置,文檔解析器會根據XML文檔中信息,還原圖形化流程,以便于以后服務流程的修改。
??? 本文通過研究Web服務組合與工作流的異同點,借鑒工作流的參考模型及其體系結構設計了一個層次化的、統一的Web服務組合系統,為Web服務的集成和協作提供了有力的支持。同時對Web組合系統的各個子模塊進行設計,最后給出了Web服務組合系統(WSCS)的原型,并且用了科學計算服務進行了Web服務組合。
??? Web服務組合系統(WSCS)也存在一些不足之處,它首先沒有為流程中的事務、安全等其他非功能特性提供支持,也沒有支持靈活的異常處理機制,這在一定程度上限定了組合服務的能力;其次沒有提供一個Web服務的性能評估和性能預測模型,尚不能根據單個服務節點的執行效率預測組合后的服務執行效率,這將是筆者下一步的研究工作。
參考文獻
[1]?岳昆,王曉玲,周傲英. Web服務核心支撐技術:研究綜述[J].軟件學報,2004, 15(3): 428-442.
[2]?李曼,王大治,杜小勇,等. 基于領域本體的Web服務動態組合[J].計算機學報,2005,28(4):644-650.
[3]?DAVIES N J,FENSEL D ,RICHARDSON M. The Future of Web Services[J].BT Technology Journal, 2004, 22(1): 118-130.
[4] ?MILANOVIC N, MIROSLAW M. Current Solutions for Web Service Composition[J].IEEE Internet Computing, 2004, 26(5):51-59.
[5]?MEDHAHED B, BOUGUETTAYA A, ELMAGARMID A K. Composing Web Services on the Semantic Web [J].? The VLDB, 2003, 12(4):333-351.
[6]?STEFAN T, RANIA K, THOMAS M. Composition of Coordinated Web Services [C]. IFIP International Federation for Information Processing, 2004, 294-310.
[7]?BOUALEM B, MARLON D, QUAN Z. Declarative Composition and Peer-to-Peer Provisioning of Dynamic Web Services [C].In the Proceedings of the 18th International Conference on Data Engineering, 2002.
[8]?張智,李瑞軒. 基于對等網的Web服務發布和發現機制研究[J],計算機工程與設計,2006, 27(16): 2949-2951.
[9]?MASSIMO M, ALESSANDRA M, ALESSANDRO P. Declarative Policies for Web Service Selection [C]. In the Proceedings of the Sixth IEEE International Workshop on Policies for Distributed Systems and Networks, 2005.
[10]?谷清范,吳介一,張颯兵. 網格調度機制研究綜述[J], 計算機應用研究,2006,23(5):1-4.
[11] 官荷卿,張文博,魏俊,等. 一種應用敏感的Web服務請求調度策略[J],計算機學報,2006,29(7):1189-1198
[12] 單志廣,林闖,肖人毅,等.Web QoS控制研究綜述[J].計算機學報,2003, 27(2): 145-156.
[13] ZENG LangZhao,BENATALLAH B,DUMAS M. Quality Driven Web Services Composition[J].IEEE Transaction on Software Engineering, 2004, 30(5):311-327.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 五月婷婷激情综合网 | 久久久久久久久国产 | 成年做羞羞免费观看视频网站 | 亚洲国产免费 | 久久中文字幕免费 | 99re在线精品视频免费 | 2021天堂在线亚洲精品专区 | 久久精品免费全国观看国产 | 99久久精品免费看国产交换 | 91美女视频在线 | 久在草在线 | 狠狠干中文字幕 | 国产成人精品视频播放 | 日本不卡免费 | 国产精品香蕉在线观看 | 国产经典大片爱情片 | 欧美一区中文字幕 | 欧美激情综合亚洲一二区 | 久久天天 | 精品一区二区久久久久久久网站 | 亚洲综合在线视频 | 国产电影午夜成年免费视频 | 国产成人三级经典中文 | 日韩欧美成人免费中文字幕 | 久久99久久精品视频 | 四虎永久在线精品影院 | 2021在线永久免费视频 | 欧美另类杂交a | 免费看一级性生活片 | www.com欧美| 久久美女福利视频 | 国产视频久久久 | 免费黄色小视频在线观看 | 久久青草免费线观最新 | 国产一级免费视频 | 五月开心激情 | 久久看精品 | 免费一级毛片在播放视频 | 婷婷资源综合 | 就要爱综合 | 国产一区二区免费 |