《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于SOA的Web Service組合研究及應(yīng)用
基于SOA的Web Service組合研究及應(yīng)用
來源:微型機與應(yīng)用2013年第10期
屈崇博, 蔡國永
(桂林電子科技大學(xué) 計算機科學(xué)與工程學(xué)院, 廣西 桂林 541004)
摘要: 針對目前SOA研究現(xiàn)狀,對SOA,、Web Service和Web Service組合模式予以分析研究,構(gòu)建出基于SOA的Web Service組合模式及運行時架構(gòu),,以實現(xiàn)對互聯(lián)網(wǎng)上相關(guān)子系統(tǒng)資源共享、平臺獨立和松散耦合,,為互聯(lián)網(wǎng)上信息系統(tǒng)開發(fā)提供新的解決方案,。最后,應(yīng)用此組合模式及架構(gòu)開發(fā)項目“研究生實習(xí)實踐綜合管理信息系統(tǒng)”中學(xué)院導(dǎo)師管理模塊Web服務(wù),說明此架構(gòu)在Web Service及信息系統(tǒng)中的適用性,。
Abstract:
Key words :

摘  要: 針對目前SOA研究現(xiàn)狀,對SOA,、Web Service和Web Service組合模式予以分析研究,構(gòu)建出基于SOA的Web Service組合模式及運行時架構(gòu),,以實現(xiàn)對互聯(lián)網(wǎng)上相關(guān)子系統(tǒng)資源共享,、平臺獨立和松散耦合,為互聯(lián)網(wǎng)上信息系統(tǒng)開發(fā)提供新的解決方案,。最后,應(yīng)用此組合模式及架構(gòu)開發(fā)項目“研究生實習(xí)實踐綜合管理信息系統(tǒng)”中學(xué)院導(dǎo)師管理模塊Web服務(wù),,說明此架構(gòu)在Web Service及信息系統(tǒng)中的適用性。
關(guān)鍵詞: 面向服務(wù); XML; Web服務(wù); SOA; 組合模式

    近年來,,大量的Web Service已經(jīng)在基于互聯(lián)網(wǎng)的軟件開發(fā)中出現(xiàn),,Web Service正發(fā)展為一個集成信息資源的分布式計算環(huán)境[1]。隨著信息技術(shù)的發(fā)展,,用戶對軟件的功能需求日益多元化,,單獨的Web Service已很難滿足用戶的需求[2]。為了滿足用戶的多元化需求,,尋求一種基于面向服務(wù)架構(gòu),、動態(tài)服務(wù)組合的Web Service開發(fā)模型已成為計算機學(xué)科領(lǐng)域研究的熱點問題,。動態(tài)服務(wù)組合是按需利用已有Web Service組合成新服務(wù)的技術(shù)[3],可以迅速地構(gòu)建起新的Web Service或應(yīng)用系統(tǒng),更好地滿足用戶的需求,。
    隨著Web Service組合技術(shù)的發(fā)展,出現(xiàn)了不少基于各種架構(gòu)的Web Service組合模型,。參考文獻(xiàn)[4]提出基于聚類的Web Service組合模式,該模式滿足組合服務(wù)按功能的粗糙分類,,不滿足服務(wù)時實精確匹配,可能造成服務(wù)冗余,。參考文獻(xiàn)[5]提出基于生成樹的Web Service組合模式,,該模式把具有一定聯(lián)系的服務(wù)看作是樹的一個結(jié)點進(jìn)行合并,最后形成一個完整的服務(wù)系統(tǒng),,但各服務(wù)之間耦合度過高,,不利于新服務(wù)的加入。參考文獻(xiàn)[6]提出基于服務(wù)組鏈的Web Service組合模式,,該模式擴展了基于服務(wù)鏈有順序服務(wù)組合方法[7],能以統(tǒng)一的方式解決順序和并發(fā)服務(wù)組合問題,。而面向服務(wù)架構(gòu)(SOA)是松散耦合的,可以重用已有的服務(wù),,并可按需定制新的服務(wù)集成到原系統(tǒng)中, 靈活地組建應(yīng)用系統(tǒng),。因此,應(yīng)用SOA是構(gòu)建松散耦合Web Service組合系統(tǒng)的一個有效途徑[8],。
    在分析總結(jié)以往對SOA,、Web Service和Web Service組合研究基礎(chǔ)上,首先,,對SOA,、Web Service和Web Service的組合模式予以分析研究;其次,,提出基于SOA的Web Service組合模式,,并在此組合模式中,利用Petri網(wǎng)對系統(tǒng)工作流程建模,,完成Web Service分層設(shè)計,;最后,基于此Web Service組合模式實現(xiàn)了“研究生實習(xí)實踐綜合管理信息系統(tǒng)”中學(xué)院導(dǎo)師管理模塊Web Service,,證明了此模式的可行性,。
1 面向服務(wù)架構(gòu)
    服務(wù)可以定義為:一個服務(wù)是一個能實現(xiàn)良好業(yè)務(wù)功能的模塊,可以被服務(wù)使用者通過服務(wù)已發(fā)布的接口進(jìn)行調(diào)用來重新構(gòu)建新的應(yīng)用或業(yè)務(wù)流程[8],。面向服務(wù)架構(gòu)是一個組件模型,它將應(yīng)用程序的不同功能單元服務(wù)化,通過服務(wù)間定義良好的接口和協(xié)約聯(lián)系起來,。接口采用中立的方式定義,獨立于具體實現(xiàn)服務(wù)的硬件平臺、操作系統(tǒng)和編程語言,使得構(gòu)建在此系統(tǒng)中的服務(wù)可以使用統(tǒng)一和標(biāo)準(zhǔn)的方式進(jìn)行通信[9],。面向服務(wù)架構(gòu)(SOA)是一種特定環(huán)境下采用的一種軟件開發(fā)架構(gòu),,SOA的參考架構(gòu)如圖1所示,。

    (1)服務(wù)組件層:服務(wù)組件層包括組件、模塊,、程序等元素,,這一層中的元素滿足了服務(wù)層中的服務(wù)所定義的契約。服務(wù)由組件,、模塊和程序組成,。
    (2)服務(wù)層:這一層包含了所有在服務(wù)組合中定義的服務(wù)。每個服務(wù)的定義由語法和語義信息組成,,都在這一層中定義,。
    (3)業(yè)務(wù)過程層:業(yè)務(wù)過程層描述了業(yè)務(wù)執(zhí)行的方式。
    (4)消費者層:這一層描述了不同的渠道,,IT的功能通過這些渠道交付,。
    (5)QOS層:這一層關(guān)注實現(xiàn)和管理非功能性需求及服務(wù)的安全。
2 Web Service
    Web Service是建立可互操作的分布式應(yīng)用程序的新平臺,,它是對一些松散耦合的服務(wù)的抽象集合,。具體來說,Web Service是一種模塊化的軟件應(yīng)用程序,,他們通過網(wǎng)絡(luò)注冊并發(fā)布到注冊中心,,其他應(yīng)用程序可以通過注冊中心獲得這些Web Service的調(diào)用規(guī)范,一般使用WSDL描述,,然后按照調(diào)用規(guī)范的定義使用SOAP協(xié)議綁定來訪問和調(diào)用這些Web Service,。
    Web Service基于XML技術(shù)標(biāo)準(zhǔn),為運行在不同平臺、不同架構(gòu)以及使用不同語言編寫的各種軟件應(yīng)用程序之間的互操作提供了一種解決方案,。目的是為了讓計算機應(yīng)用程序自動識別和運用所提供的服務(wù),。Web Service的體系架構(gòu)如圖2所示。

    在圖2的Web Service體系結(jié)構(gòu)中共有3種角色:(1)服務(wù)提供者(Service Provider)發(fā)布自己的服務(wù),并且對使用自身服務(wù)的請求者進(jìn)行響應(yīng);(2)服務(wù)代理(Service Broker)注冊與發(fā)布服務(wù)及其提供者,對其進(jìn)行分類,并提供搜索服務(wù),;(3)服務(wù)使用者(Service Requester)利用服務(wù)代理查找所需的服務(wù),進(jìn)而根據(jù)需要使用該服務(wù),。
2.1 SOA和Web Service的關(guān)系
    W3C在2004年2月發(fā)布的面向服務(wù)架構(gòu)規(guī)范中指出SOA是Web服務(wù)的架構(gòu),換言之,Web服務(wù)實現(xiàn)了面向服務(wù)的架構(gòu)(SOA)。SOA是一套面向服務(wù)架構(gòu)的標(biāo)準(zhǔn)規(guī)范,Web服務(wù)則是一套技術(shù)體系,可以用來建立應(yīng)用解決方案,解決特定的消息通信和應(yīng)用集成問題,。SOA與Web Service之間的關(guān)系可以用數(shù)據(jù)結(jié)構(gòu)中的森林和樹符號化表示,。
    定義1:Web Service=(T,A1,A1...An)是具有n個結(jié)點的樹,1,、2,、...是結(jié)點編號,根結(jié)點即為服務(wù)代理,,結(jié)點之間的關(guān)系即為服務(wù)之間的綁定關(guān)系,。此定義的圖形化表示,如圖3所示。

    定義2:SOA=(T,,T1…Tn)是具有n棵樹的森林,,1,2,,…n是每課樹的編號,,每棵樹為一種Web Service,樹由服務(wù)代理,、服務(wù)提供者,、服務(wù)使用者組成,服務(wù)代理即為根結(jié)點,,樹根之間的關(guān)系即為不同Web Service之間關(guān)系,而樹結(jié)點之間的關(guān)系即為不同服務(wù)之間的層次關(guān)系,。此關(guān)系可用圖4形式化地表示,。

    (3)條件模式
  條件模式指在滿足某個條件下才執(zhí)行某個Web Service,如圖7所示,。

3 基于SOA的Web Service組合應(yīng)用
3.1 Petril網(wǎng)建模

    首先, 利用Petri網(wǎng)對服務(wù)組合流程建模, 該模型包含順序,、并行和循環(huán)三種組合模式,整個組合系統(tǒng)主要由5種服務(wù)組成,,如圖8所示,。

    圖8中,s1是企業(yè)創(chuàng)建的申請,,s2是學(xué)生申請過程,,s3是學(xué)生的申請,s4是導(dǎo)師審核,。t1是登陸系統(tǒng),,用于驗證用戶身份;t2是判斷企業(yè)申請是否通過的條件,;t3是判斷學(xué)生能否申請此實習(xí)單位的條件,;t4是判斷學(xué)生是否申請成功該實習(xí)單位;t5是循環(huán)條件,,判斷導(dǎo)師是否要繼續(xù)執(zhí)行此審核,。
    根據(jù)Petri網(wǎng)模型將學(xué)院導(dǎo)師管理組合Web Service 轉(zhuǎn)化為相應(yīng)的XML文件,XML文件中定義了調(diào)用Web Service相應(yīng)欄目的功能,。下面為學(xué)院導(dǎo)師管理Web Service的主頁面,將其命名為Supervisor,在調(diào)用學(xué)院導(dǎo)師管理Web Service時,利用SOAP調(diào)用文件Supervisor.xml,。
    學(xué)院導(dǎo)師管理組合Web Service軟件主界面如圖9所示。

3.2 學(xué)院導(dǎo)師管理Web Service軟件核心功能
     核心算法:
  <script language="javascript">   
        <!--讀取欄目的值-->
        XmlDocument doc = new XmlDocument(); 
              doc.Load("Supervisor.xml");    
    XmlNodexnserver= doc.SelectSingleNode
       ("resourcesdata/dataconnection/server");
  <!--操作欄目功能>
     XmlDocumentdoc=new XmlDocument();  
             doc.Load("Supervisor.xml");
       XmlNode xnuser=doc.SelectSingleNode
         ("resourcesdata");  
    xnuser.Attributes["createuser"].InnerText="false";       
     doc.Save("Supervisor..xml");      
     <!--添加欄目功能-->      
  XmlDocumentdoc= new XmlDocument();
           XmlTextReader reader=new  
           XmlTextReader("Supervisor.xml");       
    XmlElement root = doc.DocumentElement;
        <!--獲取欄目的值-->
        XmlElementtagMessage=doc.
            CreateElement("Rootnet");    
        XmlElementtagText= doc.CreateElement
           ("Catalog");  
    <!--保存Supervisor.xml文件-->
        doc.Save("Supervisor.xml");
         </script>
    打開學(xué)院導(dǎo)師管理Web Service軟件,以學(xué)院導(dǎo)師用戶身份登陸,,如圖10所示,。點擊學(xué)生申請管理欄目,導(dǎo)師就可對自己所帶學(xué)生的實習(xí)申請進(jìn)行審核處理,,也可以用學(xué)號對學(xué)生的申請進(jìn)行篩選,,然后進(jìn)行快速審核,。

    在面向服務(wù)的軟件開發(fā)范型中,強調(diào)以聚合網(wǎng)絡(luò)資源和滿足用戶多元化需求為出發(fā)點,,以服務(wù)用戶為核心,。文章以SOA及Web Service的基本概念為出發(fā)點,分析了以往Web Service的組合模式,并給出了基于SOA的Web Service的組合模式,。該模式以Petri網(wǎng)[11]為服務(wù)工作流的建模工具,,對軟件服務(wù)按層松散組合,形成了完整的軟件原型,。最后,以此組合模式實現(xiàn)了“學(xué)院導(dǎo)師管理”這個簡單的Web Service案例,。實驗表明,運用基于SOA的Web Service組合模式可以有效地將網(wǎng)絡(luò)上的資源進(jìn)行整合重用,,用戶不用再考慮軟件本身的復(fù)雜性,,只需要根據(jù)需求選擇需要的服務(wù)即可,同時此案例也體現(xiàn)了面向服務(wù)體系架構(gòu)以服務(wù)用戶為核心的先進(jìn)理念,。目前,,Web Service在架構(gòu)上趨于穩(wěn)定,但是Web Service的關(guān)鍵技術(shù)還有待解決,,如通過對基于語義的查找技術(shù),、基于語義的智能Web Service組合等問題進(jìn)行研究[12],實現(xiàn)用基于語義的查找技術(shù)來替換現(xiàn)有Web Service基于關(guān)鍵字查找的方法,進(jìn)一步體現(xiàn)面向服務(wù)體系架構(gòu)“服務(wù)用戶”的思想。
參考文獻(xiàn)
[1] FENSEL D, BISSLER C, MAEDCHE A. Semantic Web enable Web services[C]. Proceedings of the First Interational Semantic Web Conference on the Semantic Web,2002(8):1-2.
[2] 李景霞,侯紫峰.Web 服務(wù)組合綜述[J].計算機應(yīng)用研究,2005(12):4-7.
[3] 張佩云,,孫亞民.動態(tài)Web服務(wù)組合研究[J].計算機科學(xué),2007,34(5):4-7.
[4] 石彥華,,李蜀瑜.基于聚類Web服務(wù)的組合服務(wù)模式規(guī)約[J].計算機應(yīng)用研究,2011,28(2):598-601.
[5] 劉安豐,陳志剛,桂衛(wèi)華,等.基于生成樹的Web服務(wù)組合模型[J].計算機工程,2008,34(10):108-110.
[6] 劉思培,劉大有,齊紅,等.基于服務(wù)組鏈的Web服務(wù)組合方法[J].吉林大學(xué)學(xué)報,2010,40(1):148-154.
[7] 付燕寧,劉磊,,金成植.基于服務(wù)鏈的Web服務(wù)組合方法[J].通信學(xué)報,2007,28(7):92-97.
[8] 王成良,馮欣.基于目標(biāo)遞進(jìn)的Web服務(wù)組合方法[J].計算機工程,2011(6):52-54.
[9] 邢少敏,周伯生.SOA研究進(jìn)展[J].計算機科學(xué),,2008,35(9):13-20.
[10] 趙松,王紅,閻嫕.Web服務(wù)組合工作流中擴展UDDI的設(shè)計與實現(xiàn)[J].計算機工程與設(shè)計,2009,30(1):216-218.
[11] 黃瑜岳, 李克清. 基于Petri網(wǎng)的工作流合法性驗證綜述[J].計算機應(yīng)用研究,2013,30(1):26-29.
[12] 葉蕾, 張斌. 基于功能語義的Web服務(wù)發(fā)現(xiàn)方法[J].計算機研究與發(fā)展,2007,44(8):1357-1364.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。