專利名稱:一種基于云節(jié)點(diǎn)實(shí)現(xiàn)云服務(wù)控制的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及大規(guī)模節(jié)點(diǎn)服務(wù)的控制技術(shù)領(lǐng)域,特別是涉及一種基于云節(jié)點(diǎn)實(shí)現(xiàn)云服務(wù)控制的方法和系統(tǒng)。
背景技術(shù):
隨著云計(jì)算時(shí)代的到來,大型乃至超大型系統(tǒng)將不斷出現(xiàn)。如何有效快速控制部署的計(jì)算節(jié)點(diǎn),協(xié)調(diào)各個(gè)節(jié)點(diǎn)更加有效的工作以及降低維護(hù)成本等問題,是大型系統(tǒng)將面臨的主要問題之一,本發(fā)明的技術(shù)方案即是為了有效地解決這個(gè)問題。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種基于云節(jié)點(diǎn)實(shí)現(xiàn)云服務(wù)控制的方法和系統(tǒng),用于解決如何有效快速控制部署的計(jì)算節(jié)點(diǎn)、協(xié)調(diào)各個(gè)節(jié)點(diǎn)更加有效的工作、降低維護(hù)成本等問題本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下一種基于云節(jié)點(diǎn)實(shí)現(xiàn)云服務(wù)控制的方法,包括步驟1,統(tǒng)一對(duì)控制指令進(jìn)行配置和分配,使各云節(jié)點(diǎn)的控制指令在云服務(wù)中唯步驟2,啟動(dòng)云節(jié)點(diǎn),且各云節(jié)點(diǎn)向云節(jié)點(diǎn)控制服務(wù)器進(jìn)行指令注冊,明確各云節(jié)點(diǎn)能執(zhí)行的指令;步驟3,前端服務(wù) 器發(fā)送控制指令給云節(jié)點(diǎn)控制服務(wù)器,云節(jié)點(diǎn)控制服務(wù)器根據(jù)指令注冊結(jié)果將控制指令發(fā)送給相應(yīng)的云節(jié)點(diǎn);步驟4,云節(jié)點(diǎn)對(duì)控制指令進(jìn)行處理,并將處理結(jié)果通過云節(jié)點(diǎn)控制服務(wù)器返回給前端服務(wù)器。在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。進(jìn)一步,步驟I中的控制指令采用Json數(shù)據(jù)格式進(jìn)行配置。Json數(shù)據(jù)格式(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,它是基于JavaScript(Standard ECMA-262 3rd Edition-December 1999)的一個(gè)子集。進(jìn)一步,所述步驟2還包括云節(jié)點(diǎn)控制服務(wù)器要對(duì)自身的指令進(jìn)行指令注冊。進(jìn)一步,前端服務(wù)器與云節(jié)點(diǎn)控制服務(wù)器之間采用HTTP協(xié)議進(jìn)行通信。進(jìn)一步,云節(jié)點(diǎn)控制服務(wù)器和各云節(jié)點(diǎn)之間采用socket通信方式和/或與消息隊(duì)列通信方式。進(jìn)一步,若云節(jié)點(diǎn)控制服務(wù)器與云節(jié)點(diǎn)部署在同一臺(tái)機(jī)器上,則采用消息隊(duì)列通信方式;若云節(jié)點(diǎn)控制服務(wù)器與云節(jié)點(diǎn)部署在不同機(jī)器上,則采用socket通信方式,通訊方式可配置。進(jìn)一步,所述方法還包括云節(jié)點(diǎn)定時(shí)向云節(jié)點(diǎn)控制服務(wù)器發(fā)送心跳指令。對(duì)應(yīng)于上述方法,本發(fā)明的技術(shù)方案還包括一種基于云節(jié)點(diǎn)服務(wù)控制的系統(tǒng),包括一個(gè)前端服務(wù)器、一個(gè)云節(jié)點(diǎn)控制服務(wù)器和至少一個(gè)云節(jié)點(diǎn)所述前端服務(wù)器,其與所述云節(jié)點(diǎn)控制服務(wù)器通信,用于統(tǒng)一對(duì)控制指令進(jìn)行配置和分配,并將控制指令發(fā)送給所述云節(jié)點(diǎn)控制服務(wù)器;所述云節(jié)點(diǎn)控制服務(wù)器,其與各云節(jié)點(diǎn)均通信,用于進(jìn)行各云節(jié)點(diǎn)的指令注冊,還用于根據(jù)指令注冊結(jié)果將前端服務(wù)器發(fā)送的控制指令發(fā)送給相應(yīng)的云節(jié)點(diǎn);所述云節(jié)點(diǎn),其與所述云節(jié)點(diǎn)控制服務(wù)器通信,用于進(jìn)行處理控制指令,并將處理結(jié)果通過云節(jié)點(diǎn)控制服務(wù)器返回給前端服務(wù)器。進(jìn)一步,前端服務(wù)器采用Json數(shù)據(jù)格式配置控制指令。進(jìn)一步,前端服務(wù)器與云節(jié)點(diǎn)控制服務(wù)器之間采用HTTP協(xié)議進(jìn)行通信,云節(jié)點(diǎn)控制服務(wù)器和各云節(jié)點(diǎn)之間采用socke·t通信方式和/或消息隊(duì)列通信方式。本發(fā)明的有益效果是本發(fā)明有效快速地控制部署的計(jì)算節(jié)點(diǎn),協(xié)調(diào)各個(gè)節(jié)點(diǎn)更加有效地進(jìn)行工作,降低了維護(hù)成本。本發(fā)明架構(gòu)簡單,適用于大規(guī)模節(jié)點(diǎn)服務(wù)的控制,如云存儲(chǔ)服務(wù)中心控節(jié)點(diǎn)、云服務(wù)指令控制節(jié)點(diǎn)搭建等。本發(fā)明的方法及系統(tǒng)操作簡單,對(duì)于運(yùn)維者來說,只需要提出要做什么,至于是那個(gè)節(jié)點(diǎn)來做不需要關(guān)注,直接在前端服務(wù)器發(fā)送指令即可。綜合地說,本發(fā)明為云服務(wù)系統(tǒng)提供高效、低成本的控制與維護(hù)方案。
圖1為本發(fā)明所述基于云節(jié)點(diǎn)實(shí)現(xiàn)云服務(wù)控制的方法的流程示意圖;圖2為本發(fā)明所述基于云節(jié)點(diǎn)實(shí)現(xiàn)云服務(wù)控制的系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式以下結(jié)合附圖對(duì)本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。如圖1所不,實(shí)施例一是一種基于云節(jié)點(diǎn)實(shí)現(xiàn)云服務(wù)控制的方法,包括步驟1,統(tǒng)一對(duì)控制指令進(jìn)行配置和分配,使各云節(jié)點(diǎn)的控制指令在云服務(wù)中唯一。指令格式采用的Json數(shù)據(jù)格式,具體格式為指令+資源的方式+參數(shù)內(nèi)容。步驟2,啟動(dòng)云節(jié)點(diǎn),且各云節(jié)點(diǎn)向云節(jié)點(diǎn)控制服務(wù)器進(jìn)行指令注冊,明確各云節(jié)點(diǎn)能執(zhí)行的指令,以表明該節(jié)點(diǎn)可以做什么動(dòng)作。此外,云節(jié)點(diǎn)控制服務(wù)器也要被看成一個(gè)特殊云節(jié)點(diǎn),也需要注冊自身的指令。步驟3,前端服務(wù)器發(fā)送控制指令給云節(jié)點(diǎn)控制服務(wù)器,云節(jié)點(diǎn)控制服務(wù)器根據(jù)指令注冊結(jié)果將控制指令發(fā)送給相應(yīng)的云節(jié)點(diǎn)。云節(jié)點(diǎn)需定時(shí)向服務(wù)器發(fā)送心跳指令,以表示該節(jié)點(diǎn)是處于活動(dòng)狀態(tài),云節(jié)點(diǎn)服務(wù)器根據(jù)云節(jié)點(diǎn)發(fā)送過來的心跳來判斷該節(jié)點(diǎn)是否還是活動(dòng)狀態(tài),如果發(fā)現(xiàn)該節(jié)點(diǎn)處于不活動(dòng)狀態(tài),將其測試的指令刪除。步驟4,云節(jié)點(diǎn)對(duì)控制指令進(jìn)行處理,并將處理結(jié)果通過云節(jié)點(diǎn)控制服務(wù)器返回給前端服務(wù)器。對(duì)于上述方案,前端服務(wù)器與云節(jié)點(diǎn)控制服務(wù)器之間采用HTTP協(xié)議進(jìn)行通信,且云節(jié)點(diǎn)控制服務(wù)器和各云節(jié)點(diǎn)之間采用socket與消息隊(duì)列共存的通信方式,如果控制服務(wù)器與云節(jié)點(diǎn)部署在同一臺(tái)機(jī)器上,則采用消息隊(duì)列通訊;如果控制服務(wù)器與云節(jié)點(diǎn)部署在不同機(jī)器上,則采用socket通訊,通訊方式可配置。
如圖2所示,對(duì)應(yīng)上述方案,實(shí)施例一還提供了一種基于云節(jié)點(diǎn)服務(wù)控制的系統(tǒng),其包括一個(gè)前端服務(wù)器、一個(gè)云節(jié)點(diǎn)控制服務(wù)器和至少一個(gè)云節(jié)點(diǎn)(如圖所示的云節(jié)點(diǎn)1、云節(jié)點(diǎn)2、云節(jié)點(diǎn)3、云節(jié)點(diǎn)m、云節(jié)點(diǎn)n-2、云節(jié)點(diǎn)n_l、云節(jié)點(diǎn)n)所述前端服務(wù)器,其與所述云節(jié)點(diǎn)控制服務(wù)器通信,用于統(tǒng)一對(duì)控制指令進(jìn)行配置和分配,并將控制指令發(fā)送給所述云節(jié)點(diǎn)控制服務(wù)器;所述云節(jié)點(diǎn)控制服務(wù)器,其與各云節(jié)點(diǎn)均通信,用于進(jìn)行各云節(jié)點(diǎn)的指令注冊,還用于根據(jù)指令注冊結(jié)果將前端服務(wù)器發(fā)送的控制指令發(fā)送給相應(yīng)的云節(jié)點(diǎn);所述云節(jié)點(diǎn),其與所述云節(jié)點(diǎn)控制服務(wù)器通信,用于進(jìn)行處理控制指令,并將處理結(jié)果通過云節(jié)點(diǎn)控制服務(wù)器返回給前端服務(wù)器。對(duì)于實(shí)施例一中統(tǒng)一對(duì)控制指令進(jìn)行配置和分配,以下面的程序段為例,具體為其通過前端服務(wù)器統(tǒng)一規(guī)劃配置以保證指令跟資源的唯一性。指令格式采用指令+資源的方式+參數(shù)內(nèi)容(采用Json數(shù)據(jù)格式傳遞)。發(fā)送的函數(shù)參數(shù)類型如下
enum Method {POST = I,DELETE = 2,PUT = 4,
GET = 8,
};Method定義了四種操作方法,為方便用位于運(yùn)算,分別定義成1、2、4、8。調(diào)用函數(shù)聲明如下
std::auto_ptr<Json::Value>sendCommand(const char* resource, Methodmethod, const Json:: Value氺 root);輸入指令+資源+參數(shù)內(nèi)容。輸出返回結(jié)果。舉個(gè)例子假設(shè)getmachineinfo_l, getmachineinfo_2, getmachineinfo_3 分別表示節(jié)點(diǎn)I,節(jié)點(diǎn)2,節(jié)點(diǎn)3的三個(gè)資源。在指令統(tǒng)一分配服務(wù)里就可能有如下指令getmachineinfo_l#8#cpugetmachineinfo_l#8#memgetmachineinfo_2#8#cpugetmachineinfo_2#8#memgetmachineinfo_3#8#cpugetmachineinfo_3#8#mem在這些命令中資源跟指令為統(tǒng)一分配,各個(gè)節(jié)點(diǎn)不會(huì)重復(fù),最后一個(gè)參數(shù)根據(jù)具體需求有不同的輸入。以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何 修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種基于云節(jié)點(diǎn)實(shí)現(xiàn)云服務(wù)控制的方法,其特征在于,包括 步驟1,統(tǒng)一對(duì)控制指令進(jìn)行配置和分配,使各云節(jié)點(diǎn)的控制指令在云服務(wù)中唯一; 步驟2,啟動(dòng)云節(jié)點(diǎn),且各云節(jié)點(diǎn)向云節(jié)點(diǎn)控制服務(wù)器進(jìn)行指令注冊,明確各云節(jié)點(diǎn)能執(zhí)行的指令; 步驟3,前端服務(wù)器發(fā)送控制指令給云節(jié)點(diǎn)控制服務(wù)器,云節(jié)點(diǎn)控制服務(wù)器根據(jù)指令注冊結(jié)果將控制指令發(fā)送給相應(yīng)的云節(jié)點(diǎn); 步驟4,云節(jié)點(diǎn)對(duì)控制指令進(jìn)行處理,并將處理結(jié)果通過云節(jié)點(diǎn)控制服務(wù)器返回給前端服務(wù)器。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟I中的控制指令采用Json數(shù)據(jù)格式進(jìn)行配置。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟2還包括云節(jié)點(diǎn)控制服務(wù)器要對(duì)自身的指令進(jìn)行指令注冊。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,前端服務(wù)器與云節(jié)點(diǎn)控制服務(wù)器之間采用HTTP協(xié)議進(jìn)行通信。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,云節(jié)點(diǎn)控制服務(wù)器和各云節(jié)點(diǎn)之間采用socket通信方式和/或與消息隊(duì)列通信方式。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,若云節(jié)點(diǎn)控制服務(wù)器與云節(jié)點(diǎn)部署在同一臺(tái)機(jī)器上,則采用消息隊(duì)列通信方式;若云節(jié)點(diǎn)控制服務(wù)器與云節(jié)點(diǎn)部署在不同機(jī)器上,則采用socket方式。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括云節(jié)點(diǎn)定時(shí)向云節(jié)點(diǎn)控制服務(wù)器發(fā)送心跳指令。
8.一種基于云節(jié)點(diǎn)服務(wù)控制的系統(tǒng),其特征在于,包括一個(gè)前端服務(wù)器、一個(gè)云節(jié)點(diǎn)控制服務(wù)器和至少一個(gè)云節(jié)點(diǎn) 所述前端服務(wù)器,其與所述云節(jié)點(diǎn)控制服務(wù)器通信,用于統(tǒng)一對(duì)控制指令進(jìn)行配置和分配,并將控制指令發(fā)送給所述云節(jié)點(diǎn)控制服務(wù)器; 所述云節(jié)點(diǎn)控制服務(wù)器,其與各云節(jié)點(diǎn)均通信,用于進(jìn)行各云節(jié)點(diǎn)的指令注冊,還用于根據(jù)指令注冊結(jié)果將前端服務(wù)器發(fā)送的控制指令發(fā)送給相應(yīng)的云節(jié)點(diǎn); 所述云節(jié)點(diǎn),其與所述云節(jié)點(diǎn)控制服務(wù)器通信,用于進(jìn)行處理控制指令,并將處理結(jié)果通過云節(jié)點(diǎn)控制服務(wù)器返回給前端服務(wù)器。
9.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,前端服務(wù)器采用Json數(shù)據(jù)格式配置控制指令。
10.根據(jù)權(quán)利要求1所述的方法,其特征在于,前端服務(wù)器與云節(jié)點(diǎn)控制服務(wù)器之間采用HTTP協(xié)議進(jìn)行通信,云節(jié)點(diǎn)控制服務(wù)器和各云節(jié)點(diǎn)之間采用socket通信方式和/或消息隊(duì)列通信方式。
全文摘要
本發(fā)明涉及一種基于云節(jié)點(diǎn)實(shí)現(xiàn)云服務(wù)控制的方法,包括步驟1,統(tǒng)一對(duì)控制指令進(jìn)行配置和分配,使各云節(jié)點(diǎn)的控制指令在云服務(wù)中唯一;步驟2,啟動(dòng)云節(jié)點(diǎn),且各云節(jié)點(diǎn)向云節(jié)點(diǎn)控制服務(wù)器進(jìn)行指令注冊,明確各云節(jié)點(diǎn)能執(zhí)行的指令;步驟3,前端服務(wù)器發(fā)送控制指令給云節(jié)點(diǎn)控制服務(wù)器,云節(jié)點(diǎn)控制服務(wù)器根據(jù)指令注冊結(jié)果將控制指令發(fā)送給相應(yīng)的云節(jié)點(diǎn);步驟4,云節(jié)點(diǎn)對(duì)控制指令進(jìn)行處理,并將處理結(jié)果通過云節(jié)點(diǎn)控制服務(wù)器返回給前端服務(wù)器。本發(fā)明還給出相應(yīng)的系統(tǒng)。本發(fā)明為云服務(wù)系統(tǒng)提供高效、低成本的控制與維護(hù)方案。
文檔編號(hào)H04L29/08GK103051697SQ20121054515
公開日2013年4月17日 申請(qǐng)日期2012年12月14日 優(yōu)先權(quán)日2012年12月14日
發(fā)明者謝元?jiǎng)?申請(qǐng)人:北京思特奇信息技術(shù)股份有限公司