專利名稱:一種基于云服務總線的應用QoS管理系統及其操作方法
一種基于云服務總線的應用QoS管理系統及其操作方法技術領域
本發明屬于云計算平臺的應用QoS管理領域,更具體地,涉及一種基于云服務總線的應用QoS管理系統及其操作方法。
背景技術:
隨著云計算時代的到來,出現了各種云平臺。根據層次不同,通常分為IaaS、 PaaS、SaaS。IaaS指基礎設施即服務,業界主要有Amazon EC2。SaaS指軟件即服務,主要由Salesforce、800APP等一些提供客戶關系管理的平臺。而PaaS則是指平臺及服務,它提供了一套應用開發和托管環境,使得開發應用變得相當簡單,一些中小企業可以節約硬件成本,僅需支付較少的費用就可以將所開發應用托管與PaaS中,同時也省去了系統維護的麻煩。PaaS受到廣泛關注,隨著PaaS的發展,應用數量急劇增加,平臺需要對應用進行良好的管理。在典型 PaaS 如 Google App Engine, Sina AppEngine, AppScale, Facebook 等都有專門的應用控制面板,用來查看應用的運行狀態。然而對于應用的QoS關注,一些簡單的參數并不能確定應用運行狀況的好壞。特別是很多平臺都是使用系統的CPU和內存利用率來判斷應用負載情況,顯然不夠精確。因為應用服務器的關系,某些系統的系統負載并不高的時候,應用服務器中部署的應用QoS已經大幅降低,甚至應用已經不能訪問。
除了在業界受到廣泛關注,應用QoS管理也一直是學術界的研究熱點。有文章提出應用軟件即服務的概念,即應用軟件以Web服務的形式發布與云平臺中,通過服務組合等手段組合成新的應用,達到軟件可重用的目的。但是,該文章并未考慮到應用的QoS管理和云平臺的資源優化配置。有文章提出根據系統CPU和內存負載來增減應用實例,這跟業界的方法類似,存在QoS度量不精確的缺陷。還有文章提出使用分布式的 服務總線來對服務進行集成與管理。但是其采用的是主-從式架構,存在著單點故障和性能瓶頸。同時該文章中也并未提出切實可行的應用管理方案,更沒有指出應用QoS的度量和監測方案。此外, 還有諸多文獻和著作中提到過相關的應用管理方案,但是它們都是從系統級度量應用QoS, 度量并不精準,而且并沒有提出一套完善的應用QoS管理機制。
總而言之,業界當前主流云平臺有些對應用QoS缺少關注,有些則對應用QoS度量不夠準確。學術界對于應用QoS管理越來越關注,但是目前云平臺下應用QoS管理的研究并不是很成熟,缺乏一個整體的架構和真正可測試的環境。發明內容
針對現有技術的缺陷,本發明的目的在于提供一種基于云服務總線的應用QoS管理系統,其為應用QoS管理提供了一套良好的分布式架構和服務管理環境,本發明從應用級別對應用QoS進行度量,改善了由系統級度量導致結果不準確的問題,為云平臺環境應用QoS管理的研究構建了一個完整的平臺和可測試的環境,此外,本發明從應用級管理應用QoS,根據用戶需求和應用訪問情況動態增減應用所對應的服務實例數目,保證應用QoS 的同時提高資源利用率。
為實現上述目的,本發明提供了一種基于云服務總線的應用QoS管理系統,包括用戶訪問模塊、用戶管理模塊、應用管理模塊、云服務總線模塊、服務池模塊、以及數據中心模塊,用戶訪問模塊用于給用戶提供一個統一的訪問接口,用戶管理模塊用于提供用戶認證功能,如果用戶的身份認證成功,則將用戶信息傳送到應用管理模塊,否則,用戶管理模塊提醒用戶進行注冊,應用管理模塊用于根據用戶管理模塊傳送的用戶信息為用戶提供統一的應用管理界面,以供用戶選擇應用發布、應用調用或應用QoS可視化功能,并在用戶選擇相應功能后將用戶請求傳送到云服務總線模塊,云服務總線模塊用于在用戶選擇應用發布、應用調用或應用QoS可視化功能后,從應用級對該應用所對應的服務實例數目進行動態調整,從而完成應用QoS管理功能,服務池模塊用于存儲云服務總線模塊動態調整后的服務實例,數據中心模塊用于存儲服務實例所操作的數據集合。用戶訪問模塊包括用戶注冊子模塊、用戶登錄子模塊和用戶數據庫子模塊,用戶注冊子模塊用于為用戶提供注冊功能,用戶認證子模塊用于為用戶提供登錄認證功能,若 認證通過則將用戶信息傳送到應用管理模塊,若認證失敗則轉入用戶注冊子模塊處理,用戶數據庫子模塊用于在用戶注冊成功后存儲用戶信息,并在用戶登錄時讀取該用戶信息用于認證。應用管理模塊包括應用發布子模塊、應用QoS可視化子模塊和應用調用子模塊,應用發布子模塊用于為用戶提供應用的發布功能,應用QoS可視化子模塊用于接收用戶查看應用QoS的請求,將應用QoS可視化請求發送至云服務總線模塊獲取應用QoS數據,實時展示應用QoS的狀況,完成應用QoS可視化功能,應用調用子模塊用于接收其它用戶對該應用的調用請求并將應用調用請求發送至云服務總線模塊。云服務總線模塊包括消息路由子模塊、請求處理子模塊、服務管理子模塊、服務發布子模塊、服務卸載子模塊、QoS信息讀取子模塊、服務調用子模塊、QoS信息收集子模塊、QoS信息數據庫子模塊、服務實例管理子模塊、JMX子模塊,消息路由子模塊用于實現云服務總線模塊中各個節點間的消息通信,接收其他節點的消息路由模塊的消息,將消息發送至請求處理子模塊,接收服務管理子模塊和服務實例管理子模塊的消息,并將消息路由到目標節點集,請求處理子模塊用于接收應用管理模塊發送過來的用戶請求或其他節點的消息路由模塊發送過來的消息,并對用戶請求或消息進行解析后提交到服務管理子模塊進行處理,服務管理子模塊用于接收請求處理子模塊的用戶請求或消息,如果是用戶請求,則判斷該用戶請求是應用發布請求、應用調用請求還是QoS可視化請求,如果是應用發布請求,則根據用戶在服務級協議中的需求,根據排隊論相關理論計算出應用發布后的服務實例數目,并將服務發布消息經消息路由子模塊發送至目標節點集。如果是應用調用請求,則調用QoS信息讀取子模塊讀取應用所對應所有服務實例的QoS信息,根據QoS確定應用調用的服務實例所在的目標節點,將服務調用消息經消息路由子模塊發送至目標節點,如果是應用QoS可視化請求,則確定目標節點集,并將QoS信息讀取消息經消息路由子模塊發送至目標節點集的某一個節點,因為對應同一個應用的不同服務實例都會保存有該應用所對應的全部服務實例的QoS信息,所以只需要讀取其中一個節點即可得到該應用的QoS信息;如果是消息,則判斷消息是服務發布消息、服務卸載消息、服務調用消息還是服務QoS讀取消息。如果是服務發布消息,則將服務發布消息發送到服務發布子模塊,如果是服務卸載消息,則將服務卸載消息發送到服務卸載子模塊,如果是服務調用消息,則將服務調用請求發送到服務調用子模塊,如果是服務QoS讀取消息,則發送到QoS信息讀取子模塊,服務發布子模塊用于接收服務管理子模塊的服務發布消息,根據服務發布消息完成服務發布功能并返回響應消息給請求節點,服務卸載子模塊用于接收服務管理子模塊的服務卸載消息,根據服務卸載消息完成服務卸載功能并返回響應消息給請求節點,QoS信息讀取子模塊用于接收服務管理子模塊的服務QoS信息讀取消息,根據服務QoS信息讀取消息讀取QoS信息數據庫子模塊中的信息并返回給請求節點,服務調用子模塊用于接收服務管理子模塊的服務調用消息,根據服務調用消息完成調用后返回服務調用結果給請求節點,QoS信息收集子模塊用于對服務調用子模塊的過程進行監控,以收集服務調用的QoS信息,并將QoS信息寫入到 QoS信息數據庫子模塊中,QoS信息數據庫子模塊用于存儲來自QoS信息收集子模塊的QoS 信息,服務實例管理子模塊用于根據服務級協議和QoS信息數據庫子模塊中的QoS信息決定是否調整服務實例的數目,JMX子模塊用于使用JMX管理框架管理云服務總線模塊的節點集群以及服務部署相關信息。
云服務總線模塊采用P2P分布式架構。
通過本發明所構思的以上技術方案,與現有技術相比,本發明具有以下的有益效果:
I)服務的可用性高
由于采用了基于P2P架構的云服務總線模塊對服務實例進行管理,解決了單一服務總線和主一從架構的分布式服務總線的單點故障問題,保證了 Web服務的高可用性。
2)應用的可配置性好
由于采用了應用管理模塊,其提供服務等級協議功能,提高了應用的可配置性。開發應 用的用戶可以在該平臺中聲明所開發的應用所需要達到的QoS水平,如每秒能接受多少個請求,響應時間應保持在幾秒之內等。云服務總線模塊基于用戶需求,根據排隊論理論,預先生成所需要的服務實例數目,以保證應用的QoS需求,減少資源浪費,提高系統資源利用率。
3)應用QoS度量的精確性高
由于采用了云服務總線模塊從應用級對應用QoS進行度量,根據應用QoS情況對應用所對應的服務實例數目進行動態調整,相對于傳統的系統級進行度量,大幅提高了對應用QoS度量的精確性。
本發明的另一目的在于提供一種基于云服務總線的應用QoS管理系統的操作方法,其使得用戶對系統的操作非常簡捷,用戶可以通過系統界面直觀的進行應用QoS管理, 省去了繁冗的命令行操作,提高了操作效率和用戶體驗。
為實現上述目的,本發明提供了一種基于云服務總線的應用QoS管理系統的操作方法,包括以下步驟
(I)用戶通過瀏覽器訪問統一訪問模塊;
(2)用戶管理模塊對用戶身份進行認證,如果認證通過,則轉入步驟⑶,否則,提醒用戶注冊;
(3)用戶管理模塊將用戶信息傳送到應用管理模塊;
(4)應用管理模塊根據用戶管理模塊傳送的用戶信息為用戶提供統一的應用管理界面,以供用戶選擇應用發布、應用QoS可視化或應用調用功能;
(5)應用管理模塊在用戶選擇相應功能后將用戶請求傳送到云服務總線模塊;(6)云服務總線模塊從應用級對該應用所對應的服務實例數目進行動態調整,從而完成應用QoS管理功能;(7)服務池模塊存儲云服務總線模塊動態調整后的服務實例。步驟(5)包括以下子步驟(5-1)用戶在應用管理界面選擇應用發布、應用QoS可視化或者應用調用功能;(5-2)應用管理模塊根據用戶選擇的功能,將請求發送給不同子模塊處理。如果用戶選擇應用發布功能,則轉向步驟(5-3);如果用戶選擇應用QoS可視化功能,則轉向步驟(5-4);如果用戶選擇應用調用功能,則轉向步驟(5-5);(5-3)應用發布子模塊接收請求,提示用戶將自己開發好的應用上傳,并填寫應用 的描述信息和QoS信息。應用發布子模塊存儲應用描述信息和QoS需求信息并將應用發布請求發送至云服務總線模塊;(5-4)應用QoS管理子模塊接收用戶查看應用QoS的請求,將應用QoS可視化請求發送至云服務總線模塊獲取應用QoS數據,實時展示應用QoS的狀況;(5-5)應用調用子模塊將應用調用請求發送至云服務總線模塊。步驟(6)包括以下子步驟(6-1)請求處理子模塊接收應用管理模塊發送過來的用戶請求并解析請求;(6-2)請求處理子模塊根據不同的用戶請求執行不同的步驟。如果是應用發布請求,則轉向步驟¢-3);如果是應用QoS可視化請求,則轉向步驟¢-9);如果是應用調用請求,則轉向步驟(6-15)(6-3)服務管理子模塊根據用戶填寫的應用QoS信息,由排隊論算法生成應用發布成Web服務的實例數目;(6-4)目標節點的消息路由子模塊接收服務發布消息,并將消息傳送至請求處理子模塊;(6-5)目標節點的請求處理子模塊對消息進行解析,將解析后的消息發送給服務管理子模塊;(6-6)目標節點的服務管理子模塊處理服務發布消息,將服務發布消息傳送至服務發布子模塊;(6-7)服務發布子模塊完成服務發布功能并返回響應消息給請求節點;(6-8)如果請求節點收到所有目標節點集的成功響應消息,則應用發布成功;否貝U,則返回失敗信息,提示用戶重新發布。至此,應用發布功能結束,轉向步驟(6-24);(6-9)服務管理子模塊根據服務部署策略確定目標節點集;(6-10)目標節點的消息路由子模塊接收查看應用QoS消息,將應用QoS可視化消息發送至請求處理子模塊;(6-11)請求處理子模塊處理消息后將其發送至服務管理子模塊;(6-12)目標節點的服務管理子模塊接收消息,將其轉發至QoS信息讀取子模塊;(6-13) QoS信息讀取子模塊讀取QoS信息并返回給請求節點;(6-14)請求節點的QoS可視化子模塊接收應用QoS信息,經過客戶端處理提供應用QoS的圖表展示功能。至此,應用QoS可視化功能結束,轉向步驟(6-24);
(6-15)請求節點服務管理子模塊經步驟(6-9)至(6_13)讀取應用QoS消息;
(6-16)服務管理子模塊根據各個服務實例的QoS信息和相應的調度算法,確定需要路由的服務實例所在節點,然后將應用調用消息發送至目標節點;
(6-17)目標節點的消息子模塊接收應用調用消息,將消息發送至請求處理子模塊處理;
(6-18)目標節點的請求處理子模塊解析消息后將處理后的消息發送至服務管理子模塊;
(6-19)目標節點服務管理子模塊將服務調用消息發送至服務調用子模塊;
(6-20)服務調用子模塊完成服務的功能并返回服務執行結果給請求節點;
(6-21)Qos信息收集子模塊收集應用調用過程的響應時間,通過QoS信息寫入到 QoS信息據庫子模塊中;
(6-22)服務實例管理子模塊根據QoS信息數據庫和用戶服務級協議,對服務實例數目進行動態調整。并向服務發布子模塊或服務卸載子模塊發送調整消息;
(6-23)服務發布子模塊或服務卸載子模塊接收服務實例管理子模塊的調整消息, 完成服務發布或者服務卸載,至此,應用調用功能完成,轉向步驟¢-24);
(6-24)用戶操作完成,退出系統。
通過本發明所構思的以上技術方案,與現有技術相比,本發明具有以下的有益效果
(I)效率高
由于采用了步驟(5)對用戶操作提供統一的操作界面,省去了繁冗的命令行操作,用戶只需要在界面上進行簡單操作即可完成應用QoS管理功能,大幅提高了用戶的操作效率和用戶體驗。
(2)透明性強
由于采用了步驟(6)對應用QoS管理進行分階段處理,用戶對應用QoS管理過程更加透明。用戶發布應用后不用管理應用QoS狀況,也不用知曉應用所對應的服務實例數目,這些都是由系統自動調整,應用QoS由系統保證,增強了用戶操作的透明性。
圖1是本發明基于云服務總線的應用QoS管理系統的示意框圖。
圖2是本發明基于云服務總線的應用QoS管理系統的細化框圖。
圖3是本發明系統中云服務總線模塊的細化框圖。
圖4是本發明基于云服務總線的應用QoS管理系統的操作方法的流程圖。
圖5是本發明方法中步驟(5)的細化流程圖。
圖6是本發明方法中步驟(6)的細化流程圖。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
如圖1所示,本發明基于云服務總線的應用QoS管理系統包括用戶訪問模塊1、用戶管理模塊2、應用管理模塊3、云服務總線模塊4、服務池模塊5、以及數據中心模塊6。用戶訪問模塊I用于給用戶提供一個統一的訪問接口。統一的訪問接口提供系統功能說明和操作指南,以方便用戶的使用。用戶管理模塊2用于提供用戶認證功能,如果用戶的身份認證成功,則將用戶信息傳送到應用管理模塊3,否則,用戶管理模塊2提醒用戶進行注冊。 應用管理模塊3用于根據用戶管理模塊2傳送的用戶信息為用戶提供統一的應用管理界面,以供用戶選擇應用發布、應用調用或應用QoS可視化功能,并在用戶選擇相應功能后將用戶請求傳送到云服務總線模塊4。云服務總線模塊4用于在用戶選擇應用發布、應用調用或應用QoS可視化功能后,從應用級對該應用所對應的服務實例數目進行動態調整,從而完成應用QoS管理功能,云服務總線模塊4采用P2P分布式架構,相對于現在流行的單一服務總線和主-從式分布式服務總線,云服務總線采用P2P分布式架構解決了單點故障問題和性能瓶頸。服務池模塊5用于存儲云服務總線模塊4動態調整后的服務實例。這些服務實例可以運行在物理機上,也可以運行在虛擬機上。每個節點都有自己的服務集合,所有的節點服務集合共同構成服務池。服務發布時,服務實例會添加到目標節點的服務集合中。服務卸載時,服務實例會從目標節點的服務集合中移除。服務調用會從目標節點的服務集合中選取相應服務實例完成調用。數據中心模塊6用于存儲服務實例所操作的數據集合。在本實施方式中,數據集合包括關系型數據庫和非關系數據庫。如圖2所示,用戶訪問模塊2包括用戶注冊子模塊21、用戶登錄子模塊22和用戶數據庫子模塊23。用戶注冊子模塊21用于為用戶提供注冊功能。用戶認證子模塊22用于為用戶提供登錄認證功能,若認證通過則將用戶信息傳送到應用管理模塊3,若認證失敗則轉入用戶注冊子模塊21處理。用戶數據庫子模塊23用于在用戶注冊成功后存儲用戶信息,并在用戶登錄時讀取該用戶信息用于認證。應用管理模塊3包括應用發布子模塊31、應用QoS可視化子模塊32和應用調用子模塊33。應用發布子模塊31用于為用戶提供應用的發布功能。具體而言,用戶將自己開發好的應用上傳,并填寫應用的描述信息和QoS需求,應用發布子模塊31將應用發布請求發送至云服務總線模塊4。應用QoS可視化子模塊32用于接收用戶查看應用QoS的請求,將應用QoS可視化請求發送至云服務總線模塊4獲取應用QoS數據,實時展示應用QoS的狀況,完成應用QoS可視化功能。其中應用QoS指標包括應用的平均響應時間和訪問量信息。應用調用子模塊33用于接收其它用戶對該應用的調用請求并將應用調用請求發送至云服務總線模塊4。如圖3所示,云服務總線模塊4包括消息路由子模塊41、請求處理子模塊42、服務管理子模塊43、服務發布子模塊44、服務卸載子模塊45、QoS信息讀取子模塊46、服務調用子模塊47、QoS信息收集子模塊48、QoS信息數據庫子模塊49、服務實例管理子模塊50、 Java 管理擴展(JavaManagement Extensions,簡稱 JMX)子模塊 51。
消息路由子模塊41用于實現云服務總線模塊4中各個節點間的消息通信,接收其他節點的消息路由模塊41的消息,將消息發送至請求處理子模塊42,接收服務管理子模塊 43和服務實例管理子模塊50的消息,并將消息路由到目標節點集。具體而言,消息通信過程包括狀態的監測與同步,請求消息路由等,且采用Gossip協議。
請求處理子模塊42用于接收應用管理模塊3發送過來的用戶請求或其他節點的消息路由模塊41發送過來的消息。并對用戶請求或消息進行解析后提交到服務管理子模塊43進行處理;
服務管理子模塊43用于接收請求處理子模塊42的用戶請求或消息,如果是用戶請求,則判斷該用戶請求是應用發布請求、應用調用請求還是QoS可視化請求,如果是應用發布請求,則根據用戶在服務級協議中的需求,根據排隊論相關理論計算出應用發布后的服務實例數目,并將服務發布消息經消息路由子模塊41發送至目標節點集。如果是應用調用請求,則調用QoS信息讀取子模塊46讀取應用所對應所有服務實例的QoS信息,根據 QoS確定應用調用的服務實例所在的目標節點,將服務調用消息經消息路由子模塊41發送至目標節點,如果是應用QoS可視化請求,則確定目標節點集,并將QoS信息讀取消息經消息路由子模塊41發送至目標節點集的某一個節點,因為對應同一個應用的不同服務實例都會保存有該應用所對應的全部服務實例的QoS信息,所以只需要讀取其中一個節點即可得到該應用的QoS信息;如果是消息,則判斷消息是服務發布消息、服務卸載消息、服務調用消息還是服務QoS讀取消息。如果是服務發布消息,則將服務發布消息發送到服務發布子模塊44,如果是服務卸載消息,則將服務卸載消息發送到服務卸載子模塊45,如果是服 務調用消息,則將服務調用請求發送到服務調用子模塊47,如果是服務QoS讀取消息,則發送到QoS信息讀取子模塊46。
服務發布子模塊44用于接收服務管理子模塊43的服務發布消息,根據服務發布消息完成服務發布功能并返回響應消息給請求節點。
服務卸載子模塊45用于接收服務管理子模塊43的服務卸載消息,根據服務卸載消息完成服務卸載功能并返回響應消息給請求節點。
QoS信息讀取子模塊46用于接收服務管理子模塊43的服務QoS信息讀取消息,根據服務QoS信息讀取消息讀取QoS信息數據庫子模塊49中的信息并返回給請求節點。
服務調用子模塊47用于接收服務管理子模塊43的服務調用消息,根據服務調用消息完成調用后返回服務調用結果給請求節點。
QoS信息收集子模塊48用于對服務調用子模塊47的過程進行監控,以收集服務調用的QoS信息(如響應時間等),并將QoS信息寫入到QoS信息數據庫子模塊49中。
QoS信息數據庫子模塊49用于存儲來自QoS信息收集子模塊48的QoS信息。同一個應用的所有服務實例的QoS信息構成應用的QoS信息。同一個應用的所有服務實例的 QoS信息在每個節點上都會保存一份副本,這樣可以加速服務調用過程。服務管理子模塊 43接收到應用調用請求時,會根據應用QoS信息來確定目標節點并將應用調用請求經消息路由子模塊41路由至目標節點。
服務實例管理子模塊50用于根據服務級協議和QoS信息數據庫子模塊49中的QoS信息決定是否調整服務實例的數目。如果需要調整服務實例的數目,即應用QoS不能滿足服務級協議中的需求,則增加服務實例,并通過消息路由子模塊41發送服務發布命令至目標節點集,否則,如果應用QoS超過了服務級協議的需求,則減少服務實例,并通過消息路由子模塊41發送服務卸載命令至目標節點集。JMX子模塊51用于使用JMX管理框架管理云服務總線模塊4的節點集群以及服務部署相關信息。JMX子模塊51提供各種接口,用戶可以通過遠程調用獲取集群狀態,節點資源占用信息以及服務部署的相關信息。如圖4所示,本發明基于云服務總線的應用QoS管理系統的操作方法包括以下步驟(I)用戶通過瀏覽器訪問統一訪問模塊; (2)用戶管理模塊對用戶身份進行認證,如果認證通過,則轉入步驟(3),否則,提醒用戶注冊;(3)用戶管理模塊將用戶信息傳送到應用管理模塊;(4)應用管理模塊根據用戶管理模塊傳送的用戶信息為用戶提供統一的應用管理界面,以供用戶選擇應用發布、應用QoS可視化或應用調用功能;(5)應用管理模塊在用戶選擇相應功能后將用戶請求傳送到云服務總線模塊;(6)云服務總線模塊從應用級對該應用所對應的服務實例數目進行動態調整,從而完成應用QoS管理功能;(7)服務池模塊存儲云服務總線模塊動態調整后的服務實例。如圖5所示,本發明操作方法中步驟(5)包括以下子步驟(5-1)用戶在應用管理界面選擇應用發布、應用QoS可視化或者應用調用功能;(5-2)應用管理模塊根據用戶選擇的功能,將請求發送給不同子模塊處理;如果用戶選擇應用發布功能,則轉向步驟(5-3);如果用戶選擇應用QoS可視化功能,則轉向步驟(5-4);如果用戶選擇應用調用功能,則轉向步驟(5-5);(5-3)應用發布子模塊接收請求,提示用戶將自己開發好的應用上傳,并填寫應用的描述信息和QoS信息;應用發布子模塊存儲應用描述信息和QoS需求信息并將應用發布請求發送至云服務總線模塊;(5-4)應用QoS管理子模塊接收用戶查看應用QoS的請求,將應用QoS可視化請求發送至云服務總線模塊獲取應用QoS數據,實時展示應用QoS的狀況;(5-5)應用調用子模塊將應用調用請求發送至云服務總線模塊。如圖6所示,本發明操作方法(6)包括以下子步驟(6-1)請求處理子模塊接收應用管理模塊發送過來的用戶請求并解析請求;(6-2)請求處理子模塊根據不同的用戶請求執行不同的步驟;如果是應用發布請求,則轉向步驟¢-3);如果是應用QoS可視化請求,則轉向步驟¢-9);如果是應用調用請求,則轉向步驟(6-15);(6-3)服務管理子模塊根據用戶填寫的應用QoS信息,由排隊論算法生成應用發布成Web服務的實例數目;根據云服務總線的服務部署策略(可以是機架相關或者機架無關策略),將服務發布消息經由消息路由子模塊發送至目標節點集;(6-4)目標節點的消息路由子模塊接收服務發布消息,并將消息傳送至請求處理子模塊;
(6-5)目標節點的請求處理子模塊對消息進行解析,將解析后的消息發送給服務管理子模塊;
(6-6)目標節點的服務管理子模塊處理服務發布消息,將服務發布消息傳送至服務發布子模塊;
(6-7)服務發布子模塊完成服務發布功能并返回響應消息給請求節點;
(6-8)如果請求節點收到所有目標節點集的成功響應消息,則應用發布成功;否貝U,則返回失敗信息,提示用戶重新發布;至此,應用發布功能結束,轉向步驟(6-24);
(6-9)服務管理子模塊根據服務部署策略確定目標節點集;因為每一個目標節點都有該應用所有服務實例的QoS信息,所以服務管理模塊只需要將應用QoS可視化消息發送至目標節點集的某一個目標節點;
(6-10)目標節點的消息路由子模塊接收查看應用QoS消息,將應用QoS可視化消息發送至請求處理子模塊;
(6-11)請求處理子模塊處理消息后將其發送至服務管理子模塊;
(6-12)目標節點的服務管理子模塊接收消息,將其轉發至QoS信息讀取子模塊;
(6-13) QoS信息讀取子模塊讀取QoS信息并返回給請求節點;
(6-14)請求節點的QoS可視化子模塊接收應用QoS信息,經過客戶端處理提供應用QoS的圖表展示功能;至此,應用QoS可視化功能結束,轉向步驟(6-24);
(6-15)請求節點服務管理子模塊經步驟(6-9)至(6_13)讀取應用QoS消息;
(6-16)服務管理子模塊根據各個服務實例的QoS信息和相應的調度算法,確定需要路由的服務實例所在節點,然后將應用調用消息發送至目標節點;
(6-17)目標節點的消息子模塊接收應用調用消息,將消息發送至請求處理子模塊處理;
(6-18)目標節點的請求處理子模塊解析消息后將處理后的消息發送至服務管理子模塊;
(6-19)目標節點服務管理子模塊將服務調用消息發送至服務調用子模塊;
(6-20)服務調用子模塊完成服務的功能并返回服務執行結果給請求節點;
(6-21)Qos信息收集子模塊收集應用調用過程的響應時間,通過QoS信息寫入到 QoS信息據庫子模塊中;
(6-22)服務實例管理子模塊根據QoS信息數據庫和用戶服務級協議,對服務實例數目進行動態調整;并向服務發布子模塊或服務卸載子模塊發送調整消息;
(6-23)服務發布子模塊或服務卸載子模塊接收服務實例管理子模塊的調整消息, 完成服務發布或者服務卸載;至此,應用調用功能完成,轉向步驟¢-24);
(6-24)用戶操作完成,退出系統。
實例
本發明基于云服務總線應用QoS管理系統是采用P2P架構的分布式系統,所以需要服務器節點較多,一般至少配置3-5臺服務器節點。系統各個模塊在每個服務器節點上都要安裝,一起構成一個分布式系統。系統為多線程程序,主要開發語言為JAVA,所以可以運行在windows或者Iinux系統上。每臺服務器節點的硬件配置如下表I所示
權利要求
1.一種基于云服務總線的應用QoS管理系統,包括用戶訪問模塊、用戶管理模塊、應用管理模塊、云服務總線模塊、服務池模塊、以及數據中心模塊,其特征在于, 用戶訪問模塊用于給用戶提供一個統一的訪問接口; 用戶管理模塊用于提供用戶認證功能,如果用戶的身份認證成功,則將用戶信息傳送到應用管理模塊,否則,用戶管理模塊提醒用戶進行注冊; 應用管理模塊用于根據用戶管理模塊傳送的用戶信息為用戶提供統一的應用管理界面,以供用戶選擇應用發布、應用調用或應用QoS可視化功能,并在用戶選擇相應功能后將用戶請求傳送到云服務總線模塊; 云服務總線模塊用于在用戶選擇應用發布、應用調用或應用QoS可視化功能后,從應用級對該應用所對應的服務實例數目進行動態調整,從而完成應用QoS管理功能; 服務池模塊用于存儲云服務總線模塊動態調整后的服務實例,數據中心模塊用于存儲服務實例所操作的數據集合。
2.根據權利要求1所述的應用QoS管理系統,其特征在于, 用戶訪問模塊包括用戶注冊子模塊、用戶登錄子模塊和用戶數據庫子模塊; 用戶注冊子模塊用于為用戶提供注冊功能; 用戶認證子模塊用于為用戶提供登錄認證功能,若認證通過則將用戶信息傳送到應用管理模塊,若認證失敗則轉入用戶注冊子模塊處理; 用戶數據庫子模塊用于在用戶注冊成功后存儲用戶信息,并在用戶登錄時讀取該用戶信息用于認證。
3.根據權利要求1所述的應用QoS管理系統,其特征在于, 應用管理模塊包括應用發布子模塊、應用QoS可視化子模塊和應用調用子模塊; 應用發布子模塊用于為用戶提供應用的發布功能; 應用QoS可視化子模塊用于接收用戶查看應用QoS的請求,將應用QoS可視化請求發送至云服務總線模塊獲取應用QoS數據,實時展示應用QoS的狀況,完成應用QoS可視化功倉泛; 應用調用子模塊用于接收其它用戶對該應用的調用請求并將應用調用請求發送至云服務總線模塊。
4.根據權利要求1所述的應用QoS管理系統,其特征在于, 云服務總線模塊包括消息路由子模塊、請求處理子模塊、服務管理子模塊、服務發布子模塊、服務卸載子模塊、QoS信息讀取子模塊、服務調用子模塊、QoS信息收集子模塊、QoS信息數據庫子模塊、服務實例管理子模塊、JMX子模塊; 消息路由子模塊用于實現云服務總線模塊中各個節點間的消息通信,接收其他節點的消息路由模塊的消息,將消息發送至請求處理子模塊,接收服務管理子模塊和服務實例管理子模塊的消息,并將消息路由到目標節點集;請求處理子模塊用于接收應用管理模塊發送過來的用戶請求或其他節點的消息路由模塊發送過來的消息,并對用戶請求或消息進行解析后提交到服務管理子模塊進行處理;服務管理子模塊用于接收請求處理子模塊的用戶請求或消息,如果是用戶請求,則判斷該用戶請求是應用發布請求、應用調用請求還是QoS可視化請求,如果是應用發布請求,則根據用戶在服務級協議中的需求,根據排隊論相關理論計算出應用發布后的服務實例數目,并將服務發布消息經消息路由子模塊發送至目標節點集,如果是應用調用請求,則調用QoS信息讀取子模塊讀取應用所對應所有服務實例的QoS信息,根據QoS確定應用調用的服務實例所在的目標節點,將服務調用消息經消息路由子模塊發送至目標節點,如果是應用QoS可視化請求,則確定目標節點集,并將QoS信息讀取消息經消息路由子模塊發送至目標節點集的某一個節點;如果是消息,則判斷消息是服務發布消息、服務卸載消息、服務調用消息還是服務QoS讀取消息。如果是服務發布消息,則將服務發布消息發送到服務發布子模塊,如果是服務卸載消息,則將服務卸載消息發送到服務卸載子模塊,如果是服務調用消息,則將服務調用請求發送到服務調用子模塊,如果是服務QoS讀取消息,則發送到QoS信息讀取子模塊; 服務發布子模塊用于接收服務管理子模塊的服務發布消息,根據服務發布消息完成服務發布功能并返回響應消息給請求節點; 服務卸載子模塊用于接收服務管理子模塊的服務卸載消息,根據服務卸載消息完成服務卸載功能并返回響應消息給請求節點; QoS信息讀取子模塊用于接收服務管理子模塊的服務QoS信息讀取消息,根據服務QoS信息讀取消息讀取QoS信息數據庫子模塊中的信息并返回給請求節點; 服務調用子模塊用于接收服務管理子模塊的服務調用消息,根據服務調用消息完成調用后返回服務調用結果給請求節點; QoS信息收集子模塊用于對服務調用子模塊的過程進行監控,以收集服務調用的QoS信息,并將QoS信息寫入到QoS信息數據庫子模塊中; QoS信息數據庫子模塊用于存儲來自QoS信息收集子模塊的QoS信息; 服務實例管理子模塊用于根據服務級協議和QoS信息數據庫子模塊中的QoS信息決定是否調整服務實例的數目; JMX子模塊用于使用JMX管理框架管理云服務總線模塊的節點集群以及服務部署相關信息。
5.根據權利要求1所述的應用QoS管理系統,其特征在于,云服務總線模塊采用P2P分布式架構。
6.一種基于云服務總線的應用QoS管理系統的操作方法,其特征在于,包括以下步驟 (1)用戶通過瀏覽器訪問統一訪問模塊; (2)用戶管理模塊對用戶身份進行認證,如果認證通過,則轉入步驟(3),否則,提醒用戶注冊; (3)用戶管理模塊將用戶信息傳送到應用管理模塊; (4)應用管理模塊根據用戶管理模塊傳送的用戶信息為用戶提供統一的應用管理界面,以供用戶選擇應用發布、應用QoS可視化或應用調用功能; (5)應用管理模塊在用戶選擇相應功能后將用戶請求傳送到云服務總線模塊; (6)云服務總線模塊從應用級對該應用所對應的服務實例數目進行動態調整,從而完成應用QoS管理功能; (7)服務池模塊存儲云服務總線模塊動態調整后的服務實例。
7.根據權利要求6所述的操作方法,其特征在于,步驟(5)包括以下子步驟 (5-1)用戶在應用管理界面選擇應用發布、應用QoS可視化或者應用調用功能;(5-2)應用管理模塊根據用戶選擇的功能,將請求發送給不同子模塊處理。如果用戶選擇應用發布功能,則轉向步驟(5-3 );如果用戶選擇應用QoS可視化功能,則轉向步驟(5-4 );如果用戶選擇應用調用功能,則轉向步驟(5-5); (5-3)應用發布子模塊接收請求,提示用戶將自己開發好的應用上傳,并填寫應用的描述信息和QoS信息。應用發布子模塊存儲應用描述信息和QoS需求信息并將應用發布請求發送至云服務總線模塊; (5-4)應用QoS管理子模塊接收用戶查看應用QoS的請求,將應用QoS可視化請求發送至云服務總線模塊獲取應用QoS數據,實時展示應用QoS的狀況; (5-5)應用調用子模塊將應用調用請求發送至云服務總線模塊。
8.根據權利要求6所述的操作方法,其特征在于,步驟(6)包括以下子步驟 (6-1)請求處理子模塊接收應用管理模塊發送過來的用戶請求并解析請求; (6-2)請求處理子模塊根據不同的用戶請求執行不同的步驟。如果是應用發布請求,則轉向步驟(6-3);如果是應用QoS可視化請求,則轉向步驟(6-9);如果是應用調用請求,則轉向步驟(6-15); (6-3)服務管理子模塊根據用戶填寫的應用QoS信息,由排隊論算法生成應用發布成Web服務的實例數目; (6-4)目標節點的消息路由子模塊接收服務發布消息,并將消息傳送至請求處理子模塊; (6-5)目標節點的請求處理子模塊對消息進行解析,將解析后的消息發送給服務管理子模塊; (6-6)目標節點的服務管理子模塊處理服務發布消息,將服務發布消息傳送至服務發布子模塊; (6-7)服務發布子模塊完成服務發布功能并返回響應消息給請求節點; (6-8)如果請求節點收到所有目標節點集的成功響應消息,則應用發布成功;否則,則返回失敗信息,提示用戶重新發布。至此,應用發布功能結束,轉向步驟(6-24); (6-9)服務管理子模塊根據服務部署策略確定目標節點集; (6-10)目標節點的消息路由子模塊接收查看應用QoS消息,將應用QoS可視化消息發送至請求處理子模塊; (6-11)請求處理子模塊處理消息后將其發送至服務管理子模塊; (6-12)目標節點的服務管理子模塊接收消息,將其轉發至QoS信息讀取子模塊; (6-13) QoS信息讀取子模塊讀取QoS信息并返回給請求節點; (6-14)請求節點的QoS可視化子模塊接收應用QoS信息,經過客戶端處理提供應用QoS的圖表展示功能。至此,應用QoS可視化功能結束,轉向步驟(6-24); (6-15)請求節點服務管理子模塊經步驟(6-9)至(6-13)讀取應用QoS消息; (6-16)服務管理子模塊根據各個服務實例的QoS信息和相應的調度算法,確定需要路由的服務實例所在節點,然后將應用調用消息發送至目標節點; (6-17)目標節點的消息子模塊接收應用調用消息,將消息發送至請求處理子模塊處理; (6-18)目標節點的請求處理子模塊解析消息后將處理后的消息發送至服務管理子模塊; (6-19)目標節點服務管理子模塊將服務調用消息發送至服務調用子模塊; (6-20)服務調用子模塊完成服務的功能并返回服務執行結果給請求節點; (6-21) Qos信息收集子模塊收集應用調用過程的響應時間,通過QoS信息寫入到QoS信息據庫子模塊中; (6-22)服務實例管理子模塊根據QoS信息數據庫和用戶服務級協議,對服務實例數目進行動態調整。并向服務發布子模塊或服務卸載子模塊發送調整消息; (6-23)服務發布子模塊或服務卸載子模塊接收服務實例管理子模塊的調整消息,完成服務發布或者服務卸載,至此,應用調用功能完成,轉向步驟(6-24); (6-24)用戶操作完成,退出系統。
全文摘要
本發明公開了一種基于云服務總線的應用QoS管理系統,包括用戶訪問模塊、用戶管理模塊、應用管理模塊、云服務總線模塊、服務池模塊、以及數據中心模塊,用戶訪問模塊用于給用戶提供一個統一的訪問接口,用戶管理模塊用于提供用戶認證功能,如果用戶的身份認證成功,則將用戶信息傳送到應用管理模塊,否則,用戶管理模塊提醒用戶進行注冊,應用管理模塊用于根據用戶管理模塊傳送的用戶信息為用戶提供統一的應用管理界面,以供用戶選擇應用發布、應用調用或應用QoS可視化功能,并在用戶選擇相應功能后將用戶請求傳送到云服務總線模塊。本發明根據用戶需求和應用訪問情況動態增減應用所對應的服務實例數目,保證應用QoS的同時提高資源利用率。
文檔編號H04L29/06GK103002034SQ20121051337
公開日2013年3月27日 申請日期2012年12月3日 優先權日2012年12月3日
發明者石宣化, 金海 , 吳松, 石書鵑 申請人:華中科技大學