甄一章(鷹潭市科技情報研究所,江西 鷹潭 335000)
?
Web信息系統的服務替換技術研究
甄一章
(鷹潭市科技情報研究所,江西鷹潭335000)
摘 要:本文對web信息系統服務替換技術進行了歸納和總結,簡單地概括和闡述了服務替換的整個流程;最后介紹了服務替換技術的研究現狀,重點討論了幾種替換方法,指出了目前服務替換技術中需要解決的一些關鍵問題。
關鍵詞:web信息系統;服務組合;服務替換
隨著Web服務技術的不斷應用與發展,特別是面向服務的體系結構(Service Oriented Architecture, SOA)的日益成熟,越來越多的企業在Web服務整合傳統應用的基礎上推出各式各樣的web服務。單個Web服務的功能有限,為適應用戶不斷變化發展的新需求,通過采用服務組合技術組合多個Web服務,實現服務增值和服務重用已經成為一個趨勢。本文主要對服務替換技術目前取得的一些研究工作進行了詳細的綜述和分析,重點介紹了幾種服務替換方法,最后指出了后續研究需要解決的一些關鍵性問題。
在開放、動態、多變的Internet環境下,服務替換是保證面向服務的軟件系統持續可信的重要手段。對于服務替換的定義,目前尚未有統一的嚴格表述。Web服務替換問題是指,在一個服務組合的上下文環境中,以新的候選服務替換掉應用中某個組件服務,同時還能保證替換后的服務保留系統原有屬性,可以實現特定的服務功能。當Web服務組合系統中的關鍵服務遇到來自網絡的威脅或自身的軟硬件故障,不能繼續提供服務時,需選取新的服務來替換,替換是否成功取決于替換之后的組合是否仍是正確的。在綜合以上觀點后,本文認為服務替換是指在Web服務組合的系統中,當單個或多個服務由于網絡環境、自身的軟硬件故障、版本更新等因素失效或者QoS退化,導致用戶需求無法滿足且服務組合無法繼續運行時,通過選擇新的更優質的Web服務來替換,確保替換后的服務組合能夠繼續正常運行,提高動態環境下服務組合可靠性、可用性的一種手段。
3.1基于服務復制的替換方法
最早的服務替換方法是當服務失效時,通過復制服務的方法,選擇備份服務進行替換。通常是采用主動復制和被動復制這兩種復制算法。主動復制算法的思想是:所有冗余副本在服務執行過程中同時響應客戶請求,當有副本失效時,系統將屏蔽該失效副本,其余副本并在失效副本缺席的情況下繼續正常工作。優點是失效恢復時間短,不影響服務正常執行;缺點是耗費大量系統資源,并要求成員的狀態是確定的,而且也可能導致重復嵌套呼叫問題。
被動復制算法思想是:冗余副本分為主從兩種,在服務執行過程中,只有主副本接收和處理用戶請求并實時更新從副本狀態。當主副本出現失效時,系統將從副本中的一個升級為主副本,以繼續提供服務。根據從副本狀態落后于主副本的程度,又分為冷備份和暖備份等模式。優點是節約系統資源,并且不要求服務的狀態是否確定;缺點是失效恢復時間長,而且還帶來主副本與從副本的狀態一致性問題,特別是當主副本突然失效,此時從副本的狀態一致性很難維護,處理不當將可能產生嚴重后果。
這種早期的服務替換方法在初期服務資源比較匱乏的情況下還是能夠有效的解決服務失效的問題,但隨著越來越多的Web服務應用被開發,這種僅從服務提供者的角度出發,采用簡單復制的方法,在犧牲大量硬件資源的同時,往往使得整個組合服務的性能質量停滯不前。因此,越來越多的研究者開始著眼于探索網絡中日益增多的Web服務資源,加大網絡資源地利用和Web服務地利用,通過搜索并調用較高更優質的的Web服務,及時、經濟、合理地替換失效服務,實現恢復組合服務系統的運行和功能。
3.2基于QoS的服務替換方法
在服務組合運行過程中,若出現服務失效,導致流程無法執行,最簡單的方法是尋找一個功能與失效服務一樣的Web服務進行替換。當然這樣的服務替換方法通常假設服務之間可以進行無縫的互操作。
隨著技術的進步及服務提供商的加入,當相同或更優QoS指標且功能等價Web服務的不斷出現,為維持或者提升現有組合服務的整體QoS指標提供了可能。服務替換的對象不再局限于失效的Web服務,對于Qos退化或版本升級的服務同樣需要及時進行替換更新。同樣,在選擇替換服務時需要考慮對現有組合服務整體QoS的維持或提升最優的Web服務。
這種方法的基本思想是:當被替換進組合服務的新服務會影響該組合服務的整體QoS時,為確保仍然達到或超出原來要求的指標,可以用QoS聚合方法來計算組合服務中的QoS,根據計算得出的QoS值來選擇最佳的替換服務。當新服務數量較多或Web服務組合的規模較大時,計算每個新服務代入服務組合后全局QoS引起的性能問題
3.3基于行為一致性的服務可替換性分析
隨著服務組合方法的不斷應用與推廣,網絡出現了大量的大粒度的服務。如果不考慮服務之間的交互特性,往往導致新的服務替換到原有的組合服務中后,會產生諸如消息傳遞不一致的情況。例如:電子商務中買家與賣家的Web服務:一個是賣家服務,有兩個調用接口,一個收錢,一個發貨,另外一個是買家服務,也是兩個接口,一個付錢,一個收貨。賣家的行為順序是等待買家服務付錢以后,然后對其發貨,買家服務的行為順序是從賣家服務收到要購買的貨物后,然后付錢。可以看到這兩個服務的接口是相容的,行為卻是不相容的,在實際應用過程中,這兩個服務將無法合成。因此,若只以操作為粒度對服務進行替換,將破壞操作間業務的關聯性,同時還需對服務的行為對象進行分析。
目前對服務的可替換性分析主要基于服務組合相容性的基礎之上,首先借助某種形式化方法,主要有基于有限狀態機的方法、基于進程代數(或PI-演算)的方法和基于Petri網的方法對Web服務流程進行建模,然后對組合中的行為特征進行推導,分析由于異步交互對Web服務組合行為產生的影響。同時提出一致性關系驗證的條件,若新服務與將要被替換的參與組合的服務之間存在這種關系,那么替換后的服務組合仍然是正確的,并且替換是上下文無關的。隨著參與組合服務數量的增加,Web服務組合驗證需花費的代價也在快速增長。若頻繁替換,不斷重復的組合正確性驗證必將會影響到系統運行的效率。為避免上述情況的發生,服務替換需是上下文無關的。上下文指的是組合系統中與要被替換的服務交互的所有部件服務。因此,基于上下文無關的行為可替換性分析是當前研究的熱點方向。
在研究服務替換的行為特性上,還有一些工作從其它方面對服務之間交互問題進行了探索。針對目前的BPEL規范只提供有限的服務替換功能,當與伙伴服務的交互涉及到一系列有狀態的會話操作時,服務替換就更加復雜。通過對面向方面的研究,提出面向BPEL語言的狀態方面擴展。記錄與伙伴服務交互過程中產生的會話信息。在伙伴服務失效時,通過替換服務,使得與當前的會話信息傳播到功能等價的另一個伙伴服務上,從而確保流程的正常執行。
服務運行過程中的可靠性和可用性,對于發揮企業信息系統的效能起著關鍵作用。如何有效地維護服務組合的運行并保證組合服務穩定性,是一個重要研究課題。服務替換是與Web服務組合密切相關的一個問題,“是一個硬幣的兩面”。已有研究表明,服務替換技術能夠很好地保持和提升系統穩定性。當前對服務替換技術的研究都基于一定的假設前提,針對的對象也僅限與單個服務的替換問題,存在一定的局限性。多數的研究基于服務已經失效的前提下,缺乏高效準確的對失效前服務的檢測機制。對于查找與失效服務匹配的替換服務時,查全率和差準率,以及自適應、用戶無感知的替換都是目前企業web信息系統服務替換技術要求解決的難點問題。此外,動態環境中服務之間的交互問題,其行為特性分析也是保證信息系統可用性和健壯性的關鍵性問題。
參考文獻:
[1]劉超(導師:楊金民).Web Services中基于服務替換的容錯方法研究[J].湖南大學碩士論文,2009(05)
[2]印瑩,張斌,張錫哲.基于具體事務的補償支持服務替換QoS模型[J].東北大學學報(自然科學版),2010(01).
作者簡介:甄一章(1979-),男,湖北黃岡人,本科,工程師,研究方向:信息技術。
DOI :10.16640/j.cnki.37-1222/t.2016.01.254