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

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

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

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

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

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

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

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

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

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

3.2 學院導師管理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>
    打開學院導師管理Web Service軟件,以學院導師用戶身份登陸,如圖10所示。點擊學生申請管理欄目,導師就可對自己所帶學生的實習申請進行審核處理,也可以用學號對學生的申請進行篩選,然后進行快速審核。

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

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