張上++江超
摘要:伴隨著互聯網絡的發展,具有相同功能不同服務質量的Web服務隨之大量涌現。服務質量成為客戶選擇服務的重要依據,與企業的盈利息息相關。然而當前的Web服務常面向全國范圍,對于企業的運維來說如何監控全國各地區的客戶訪問Web服務的質量,并在出現問題時,第一時間向運維人員預警,成為亟待解決的問題。為此本文以分布于全國各地區的云基礎設施服務為依托,使用RPC分布式遠程調用技術,針對以上問題,實現了一種云計算環境下Web服務質量探測與預警方法。
關鍵詞:云計算; Web服務; 服務質量
中圖分類號: TP393.02
文獻標志碼:A
文章編號: 2095-2163(2016)06-0051-04
0引言
隨著互聯網絡的發展,Web服務隨之大量涌現。所謂Web服務是指一種通過互聯網絡提供自描述的自適應的模塊化的軟件組件,可以在互聯網絡中得到描述、發現和調用\[1\]。Web服務一般依托于Web服務應用程序進行發布和管理,通過聚類不同的Web服務可以構成功能復雜的組合服務,以此來滿足當前企業日益繁多的事務邏輯需求。然而隨著Web服務技術的成熟,互聯網上開始出現大量功能相近的服務,此時服務質量就必然成為客戶選擇相關Web服務的重要依據。而Web服務的目標常為全國范圍的對象,那么如何在不同地區探測企業Web服務的質量,并對服務質量不滿足構建提供及時預警,即已成為目前亟待解決的關鍵問題。基于此,本文即依托于分布在全國不同區域的云計算基礎設施,使用RPC分布式遠程過程調用框架,研發設計了一種云環境下Web服務質量的探測與預警方法。
[BT4]1相關工作
時下,有關Web服務質量的研究多是圍繞Web服務質量預測方向延伸展開。而對于Web服務質量的預測,Shao等針對未使用過的Web服務的服務質量,率先提出使用協同過濾策略,進行Web服務質量預測的方法\[2\]。[JP3]在此基礎上,Zheng等致力于技術改進,繼而提出了一種基于鄰接矩陣分解的混合協同過濾算法的Web質量預測方法\[3\]。Luo等又通過結合模糊神經網絡和自適應動態規劃重點實現了更加穩定和較為精確的服務質量預測\[4\]。而Ma等則基于真實的Web服務質量數據和一系列實驗,確定了服務質量相關的特征指標。通過這些指標可以增加服務質量預測的精度\[5\]。另外,還有Madi等又通過進一步使用概率的潛在模型來統計服務質量的相關預測\[6\]。綜上研究發現,目前大部分的研究內容仍然是以預測為主,卻尚未推出一種能夠在不同地理位置對于某類Web服務的服務質量進行實時監測和預警的方法,為此本文即有針對性地設計提出了一種依托云計算基礎設施的Web服務質量的實時監控和預警方法。[JP]
[BT4]2系統設計
[BT5]2.1整體框架設計
為實現分布式的Web服務質量的探測和預警,本次研發系統可由以下模塊建設構成:服務質量探測模塊、遠程過程調用模塊、電子郵件告警模塊、數據庫存儲模塊、報表生成模塊。系統中模塊間的關系與架構則如圖1所示。[FL)]
為在不同地區能夠有效支持做到對于Web服務質量的探測與預警,需要向云計算基礎設施服務提供商在不同地區租用服務器,以阿里云為例,其可選的地區在華北、華東有2個,在華南、香港、新加坡、美國西部與美國東部則各有一個。其他的基礎設施提供商所指定的位置也不盡相同,因此可通過在不同地區租用不同的服務器,實現多區域的Web服務質量的探測,在主控端加入預警閾值,當達到閾值時,系統即會通過電子郵件向運維人員發出預警提示。
2.2功能模塊設計
該系統整體主要包含5個功能模塊,各模塊間的互聯關系已由圖1呈現給出,在此將針對每種功能模塊的現實優化設計展開如下解析描述:
1)探測模塊。主要功能是在不同區域租用的服務器上,完成對于目標系統的服務質量探測功能,其具體獲取與服務質量相關數據包括:DNS解析時間、連接建立時間、傳輸準備時間、傳輸起始時間、傳輸總時間、http狀態、傳輸數據包大小、頭數據大小、請求包大小、傳輸內容長度、傳輸速度、測試時間。該模塊可以由主控模塊通過RPC協議控制調用,并將采集結果傳回主控模塊。
2)數據庫模塊。該模塊一般使用傳統的Mysql數據庫,其定制功能是將探測到的數據以歷史記錄的形式存儲起來,以供后期的服務質量分析使用。模塊中主要涉及的表結構有2個,分別如表1、表2所示。
3)RRDTOOL數據庫模塊。該模塊的主要功能就是通過跟蹤目標對象相關參數的變化情況,繼而將這些變化生成實時數據圖,并推送給運維人員。RRDTOOL其實是一種環狀的數據庫,運行時是通過Round Robin的方式來處理定量數據,當前已被多家流行的平臺采納使用,例如:Ganglia、Cacti和Monitorix等等。
4)電子郵件模塊。該模塊的主要功能是向運維人員發送郵件,以提醒運維人員已出現的告警類型,請求運維人員介入調控。在這里,研究使用了Python的smtplib模塊完成郵件功能的發送。
5)主控模塊。該模塊的主要功能是通過RPC遠程過程調用方法,[JP2]調用已部署到租用云服務器中的探測模塊,進行Web服務質量的探測。同時,還將負責接收探測模塊發來的探測結果數據,調用數據庫模塊將數據保存到數據庫中,并更新RRDTOOL數據庫信息。最后依據探測任務設定的告警條件和告警類型,確定是否需要向運維人員發出告警。如果需要,則調用電子郵件模塊,生成告警郵件并將其發送至告警郵箱。[JP]
[BT5]2.3通信協議設計
在通信過程中重點啟用了RPC遠程過程調用協議。RPC(Remote Procedure Call Protocol)是一種流行的遠程過程調用協議,其主要功能可描述為就是通過網絡向遠程服務器上應用程序請求程序調用服務,而無需精確了解底層的網絡協議或拓撲結構。在RPC協議中,請求端(又稱為客戶)在設定的傳輸協議下,發送一段帶有參數的信息到服務提供端。此時服務提供端配備的服務提供應用程序,在接收到該參數后將會進行設計指定的解析操作,并依照解析結果,調用相關的功能模塊執行請求操作。當完成操作后,再將函數調用結果返回給請求端的調用程序。
圖2為RPC遠程過程調用的流程圖。從圖2中可知,遠程過程調用整體上可以分為10步,對其概述如下:
1)主控模塊調用客戶端句柄進行參數傳遞,參數如:探測任務的ID和探測的目標;
2)客戶端句柄調用客戶端服務器操作系統內核的網絡模塊,生成輸出參數編碼和數據發送操作;
3)參數數據通過網絡發送到遠程服務器(即所租用的云服務器)操作系統內核的網絡模塊;
4)遠程服務端的服務器句柄獲得參數數據并解析出其中的參數;
5)遠程服務器句柄依據獲取到的參數,調用探測模塊的相關函數,切換至探測任務;
6)探測模塊將執行結果返回給作為調用方的遠程服務器句柄;
[LL]
7)遠程服務器句柄調用該服務器操作系統內核的網絡模塊進行結果數據的編碼和數據發送操作;
8)探測數據通過網絡發送給客戶端服務器操作系統內核的網絡模塊;
9)客戶端服務器的服務器句柄接收探測數據并送入解析處理;
10)客戶端服務器句柄將解析后的數據以函數值的形式返回給主控模塊,從而完成整個遠程服務調用過程。
3云環境下實驗驗證
[BT5]3.1實驗環境
實驗的本地部分由超云R6240-G9刀片服務器的4個物理節點構成,其中每個節點的配置信息為:CPU為24核,內存為32GB,硬盤2T,千兆網卡。[JP2]而4個服務器上將分別部署主控模塊、數據塊模塊、RRDTOOL數據庫模塊和電子郵件模塊。探測服務器為租用的阿里云服務器,同時選擇華北1(青島市)、華北2(北京市)、華東1(杭州市)和華南1(深圳市)的云服務器各一臺,每種服務器都選擇最低配置的ecs.t1.small類型,[JP]該類型具有單核CPU和2GB內存,以及百兆帶寬。測試的目標為哈爾濱工業大學網站的首頁,可得該網站的URL為:www.hit.edu.cn。
[BT5]3.2實驗結果
實驗結果即為各質量監控點采集到的監控數據,其中以杭州地區的數據質量監控數據為例進行說明,如圖3所示。
由圖3可知,杭州地區訪問校園網首頁的傳輸總時間、連接建立時間和DNS解析時間都相對比較穩定。在某些時刻DNS的解析時間為0,這是由于DNS解析是可以被緩存造成的。圖4則為從阿里云租用的4個不同城市的服務器中采集到的質量信息數據。由于不同地區與目標系統之間經過的網絡路徑不同,因此最終得到的訪問質量也相差較大。
4結束語
通過在阿里云環境下租用4臺不同地區的云服務器進行測試,由此提出了系統在不同地區分布式探測Web服務質量的思想,并證明了不同地區、同一Web服務的服務質量可能存在差異,這就使得租用不同云基礎設施服務商不同地區的服務器,進行Web服務質量的實時監控具備了高度可行的現實必要性。
參考文獻: SHAIKH A. The impact of SOA on a system design for a telemedicine [JP3]healthcare system[J]. Network Modeling Analysis in Health Informatics & Bioinformatics, 2015, 4(1):1-16.[JP]
[2]SHAO L, ZHANG J, WEI Y, et al. Personalized QoS prediction for Web Services via collaborative filtering[C]// IEEE International Conference on Web Services. Salt Lake City, Utah, USA:IEEE, 2007:439-446.
[3]ZHENG Z, MA H, LYU M R, et al. Collaborative Web Service QoS prediction via neighborhood integrated matrix factorization[J]. IEEE Transactions on Services Computing, 2013, 6(3):289-299.
[4]LUO X, LV Y, LI R, et al. Web service QoS prediction based on adaptive dynamic programming using fuzzy neural networks for cloud services[J]. Access IEEE, 2015, 3:2260-2269.
[5]MA Y, WANG S, HUNG P C K, et al. A highly accurate prediction algorithm for unknown Web service QoS values[J]. IEEE Transactions on Services Computing, 2016, 9(4):511-523.
[6]MADI B M A, SHENG Q Z, YAO L, et al. PLMwsp: Probabilistic latent model for Web Service QoS prediction[C]// IEEE International Conference on Web Services. San Francisco,USA:IEEE Computer Society, 2016:623-630.[ZK)]