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