一種動態(tài)分布式調(diào)度方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供了一種基于hudson擴展功能的雙層終端節(jié)點的動態(tài)分布式調(diào)度方法,其特征在于以下方法,包括:a)構(gòu)建雙層終端節(jié)點結(jié)構(gòu),底層終端節(jié)點為移動終端,上層終端節(jié)點為PC機,所述底層終端節(jié)點與所述上層終端節(jié)點相連接;b)采用基于hudson系統(tǒng)的擴展功能服務(wù)器對所述雙層終端節(jié)點結(jié)構(gòu)進行動態(tài)調(diào)度。根據(jù)本發(fā)明的另一個方面,提供了一種基于hudson擴展功能的雙層終端節(jié)點的動態(tài)分布式調(diào)度系統(tǒng),包括以下模塊:守護進程模塊、代理模塊、管理模塊,完成上述方法所描述的功能。本發(fā)明克服了Hudson服務(wù)器的弊端,實現(xiàn)了任務(wù)的實時動態(tài)調(diào)度。此外,可利用本發(fā)明的特點,通過增加終端設(shè)備來提高項目運行的并行性。
【專利說明】一種動態(tài)分布式調(diào)度方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及動態(tài)分布式調(diào)度【技術(shù)領(lǐng)域】,尤其涉及一種基于hudson擴展功能的雙層終端節(jié)點的動態(tài)分布式調(diào)度方法和系統(tǒng)。
【背景技術(shù)】
[0002]Hudson是一款業(yè)界較流行的持續(xù)集成服務(wù)器,它擁有強大的插件框架,支持多插件開發(fā)與運行。同時,它也支持基于PC的分布式調(diào)度,只要指定機器的標簽,即可將具有同類標簽的任務(wù)分發(fā)給該機器運行。其實現(xiàn)方案為將PC掛接為自己的節(jié)點,并給PC賦予一個標簽;運行任務(wù)時,只需將任務(wù)的標簽值設(shè)置成與PC的標簽值一致,即可以使任務(wù)運行在指定的PC機上。然而,此方案存在以下兩個缺點,一是無法支持外接設(shè)備(比如手機)的調(diào)度;二是無法根據(jù)機器設(shè)備的屬性變化進行動態(tài)調(diào)度(比如隨著機器上的外接設(shè)備的插拔改變機器的屬性)。
[0003]隨著現(xiàn)代科技的發(fā)展,各種智能設(shè)備紛涌而出,比如智能手機等,這些智能設(shè)備亦具有強大的計算能力,完全可以作為目前廣泛應(yīng)用的PC機計算能力的強有力的補充,尤其在云計算、物聯(lián)網(wǎng)等新興技術(shù)的發(fā)展下,這種廣泛的計算能力的整合需求和應(yīng)用也會越來越多。面向這種需求,本發(fā)明提出了一種基于hudson擴展功能的雙層終端節(jié)點的動態(tài)分布式調(diào)度方法,并系統(tǒng)地實現(xiàn)了此方法,它使hudson服務(wù)器上的任務(wù)能夠運行于多樣化的智能設(shè)備之上。同時,為避免由于設(shè)備的多樣性而引發(fā)的不確定性,本發(fā)明亦有效克服了Hudson服務(wù)器的弊端,實現(xiàn)了任務(wù)的實時動態(tài)調(diào)度。
[0004]此外,針對很多相關(guān)項目,當時間為其關(guān)鍵屬性時,可利用本發(fā)明的特點,通過增加終端設(shè)備來提高項目運行的并行性。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于提供一種基于hudson擴展功能的雙層終端節(jié)點的動態(tài)分布式調(diào)度方法和系統(tǒng),可以實現(xiàn)對多樣化智能終端設(shè)備的動態(tài)調(diào)度。
[0006]根據(jù)本發(fā)明的一個方面,提供了一種基于hudson擴展功能的雙層終端節(jié)點的動態(tài)分布式調(diào)度方法,其特征在于以下方法,包括:
[0007]a)構(gòu)建雙層終端節(jié)點結(jié)構(gòu),底層終端節(jié)點為移動終端,上層終端節(jié)點為PC機,所述底層終端節(jié)點與所述上層終端節(jié)點相連接;
[0008]b)采用基于hudson系統(tǒng)的擴展功能服務(wù)器對所述雙層終端節(jié)點結(jié)構(gòu)進行動態(tài)調(diào)度。
[0009]其對服務(wù)器的功能擴展包括:
[0010]對hudson系統(tǒng)本身進行改造,在所述hudson系統(tǒng)中添加反映各終端節(jié)點狀態(tài)的狀態(tài)標簽;
[0011]在所述hudson系統(tǒng)中的原h(huán)udson隊列機制上添加新的緩沖隊列;
[0012]提供常駐線程用于查詢所述底層終端節(jié)點狀態(tài),并刷新所述狀態(tài)標簽[0013]為實現(xiàn)對終端節(jié)點的任務(wù)調(diào)度,其步驟為:
[0014]i)通過駐留在所述hudson系統(tǒng)上的永久線程時刻下發(fā)監(jiān)控指令給守護在所述上層終端節(jié)點上的代理程序來監(jiān)控所述底層終端節(jié)點的運行狀態(tài);
[0015]ii)通過守護在所述上層終端節(jié)點上的所述代理程序?qū)⑺龅讓咏K端的運行狀態(tài)反饋給所述hudson系統(tǒng);
[0016]iii)當所述運行狀態(tài)有變化時,所述hudson系統(tǒng)改變相應(yīng)的所述上層終端節(jié)點的屬性用以標識所述上層終端節(jié)點是否接有空閑的所述底層終端;
[0017]iv)所述hudson系統(tǒng)通過調(diào)度機制將需運行在所述底層終端節(jié)點上的任務(wù)分發(fā)給空閑的所述底層終端節(jié)點。
[0018]根據(jù)本發(fā)明的另一個方面,提供了一種基于hudson擴展功能的雙層終端節(jié)點的動態(tài)分布式調(diào)度系統(tǒng),其特征在于,包括以下模塊:
[0019]守護進程模塊,用于啟動永久線程,進行終端節(jié)點狀態(tài)的實時刷新,并增設(shè)終端狀態(tài)標簽和任務(wù)緩沖隊列;
[0020]代理模塊,用于對所述終端節(jié)點狀態(tài)進行查詢和反饋,并完成對底層節(jié)點任務(wù)的分發(fā)和反饋;
[0021]管理模塊,用于查詢的接收和反饋,并配合調(diào)度。
[0022]與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點:
[0023]I)克服了原h(huán)udson服務(wù)器可調(diào)度對象的單一性,使其可支持廣泛的智能外接設(shè)備,從而可有效地實施針對廣泛或特定外接設(shè)備的任務(wù)分配。一方面,它可以廣泛地利用眾多智能外接設(shè)備的計算能力,使現(xiàn)有資源效能得到充分的發(fā)揮。另一方面,它可以針對某特定智能外接設(shè)備,進行此設(shè)備的各項功能任務(wù)的實施。
[0024]2)克服了原h(huán)udson服務(wù)器無法根據(jù)機器設(shè)備的屬性變化進行動態(tài)調(diào)度的不足。由于原h(huán)udson服務(wù)器只針對單一且單層次的終端PC機來進行任務(wù)調(diào)度,其在功能上就沒有滿足動態(tài)調(diào)度的必須,然而,當需要在原h(huán)udson服務(wù)器基礎(chǔ)上開展對廣泛外接智能設(shè)備的調(diào)度,考慮到多樣化的外接設(shè)備有著多樣化的特性,其當前的設(shè)備狀態(tài)能否滿足調(diào)度執(zhí)行的需要就是一個非常重要的考量,因此,就需要根據(jù)設(shè)備的狀態(tài)動態(tài)地調(diào)整調(diào)度任務(wù)分配。而本發(fā)明則有效地實現(xiàn)了針對機器設(shè)備的屬性變化來進行動態(tài)調(diào)度。
【專利附圖】
【附圖說明】
[0025]通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本發(fā)明的其它特征、目的和優(yōu)點將會變得更明顯:
[0026]圖1是根據(jù)本發(fā)明的一種基于hudson擴展功能的雙層終端節(jié)點的動態(tài)分布式調(diào)度方法的網(wǎng)絡(luò)框架示意圖;
[0027]圖2是根據(jù)本發(fā)明方法的軟件架構(gòu)示意圖;
[0028]圖3是根據(jù)本發(fā)明方法的軟件執(zhí)行過程的時序流程示意圖;
[0029]圖4是本發(fā)明的應(yīng)用系統(tǒng)的網(wǎng)絡(luò)框架示意圖;
[0030]圖5是本發(fā)明的應(yīng)用系統(tǒng)的軟件架構(gòu)示意圖;
[0031]圖6是本發(fā)明的應(yīng)用系統(tǒng)的工作流程示意圖;
[0032]圖7是本發(fā)明的一個實施例的終端節(jié)點狀態(tài)查詢流程圖。【具體實施方式】
[0033]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明的實施例作詳細描述。
[0034]根據(jù)本發(fā)明的一個方面,提供了一種基于hudson擴展功能的雙層終端節(jié)點的動態(tài)分布式調(diào)度方法。
[0035]首先請參考圖1,圖1是本發(fā)明方法的網(wǎng)絡(luò)框架示意圖,體現(xiàn)該方法的網(wǎng)絡(luò)框架有以下重要部分構(gòu)成:
[0036]a)終端節(jié)點的多層次性結(jié)構(gòu),在本示意圖中為兩層,本發(fā)明也主要針對兩層來進行闡述,但其方法有拓展性,亦可適用兩層以上的多層次性結(jié)構(gòu)。
[0037]如圖所示的兩層終端節(jié)點結(jié)構(gòu)中,為描述方便將該兩層分為稱為上層和底層;其中的上層終端節(jié)點考慮到hudson服務(wù)器的應(yīng)用特性,其設(shè)備一般性地為PC機,但基于功能擴展的考慮,亦不限于PC機,亦可以是其它支持hudson服務(wù)器功能要求的智能終端;其中的底層終端節(jié)點設(shè)備可為多樣性的智能設(shè)備;這兩層終端設(shè)備間,通過通用或?qū)S媒涌谙噙B,一般可考慮采用USB 口 ;兩層終端節(jié)點之間可以是一對一的關(guān)系,亦可以是一對多的關(guān)系,即一個上層終端節(jié)點下接多個底層終端節(jié)點。如此,便構(gòu)成了終端節(jié)點的兩層結(jié)構(gòu)。
[0038]在這兩層結(jié)構(gòu)中,其上層終端節(jié)點除自己做為一個獨立終端外,還充當了下層終端節(jié)點和hudson服務(wù)器之間通信的媒介,這也是本發(fā)明的重要思考點,換個角度來說,也即為使多樣性的智能設(shè)備能簡便接入現(xiàn)有服務(wù)器,可將這些設(shè)備接入到服務(wù)器已經(jīng)支持的普通終端里,通過這樣一個間接渠道,實現(xiàn)兩者通信。
[0039]如圖1所示意,其中:
[0040]上層終端節(jié)點有3個,底層終端節(jié)點亦有3個;
[0041]上層終端節(jié)點I下接了底層終端節(jié)點I ;
[0042]上層終端節(jié)點2獨立存在,沒有下接底層終端節(jié)點;
[0043]上層終端節(jié)點3則下接了兩個底層終端節(jié)點2和3 ;
[0044]其中,底層終端節(jié)點I跟hudson服務(wù)器通信,需要借助上層終端節(jié)點I來完成;底層終端節(jié)點2和3跟hudson服務(wù)器通信,需要借助上層終端節(jié)點3來完成。
[0045]進一步地,當將節(jié)點的雙層結(jié)構(gòu)向多層結(jié)構(gòu)擴展時,可以想見,整個系統(tǒng)網(wǎng)絡(luò)拓撲為一個多層次的樹型結(jié)構(gòu)。
[0046]b)服務(wù)器端采用基于hudson的擴展功能服務(wù)器,在本發(fā)明中用以實現(xiàn)對上述兩層終端節(jié)點的動態(tài)調(diào)度。
[0047]Hudson是已流行的持續(xù)集成服務(wù)器,支持基于PC的分布式調(diào)度,但無法支持其它外接設(shè)備的調(diào)度,為使Hudson服務(wù)器能支持對手機等其它智能設(shè)備的調(diào)度,按照本發(fā)明,除了如上述內(nèi)容構(gòu)建雙層終端節(jié)點結(jié)構(gòu)外,還需要修改hudson服務(wù)器自身功能,使其能有效區(qū)別針對不同的上層終端節(jié)點和底層終端節(jié)點的調(diào)度。
[0048]進一步地,假如當上述hudson服務(wù)器能夠?qū)ο聦咏K端節(jié)點也進行調(diào)度時,第二個問題應(yīng)用而生,即hudson服務(wù)器不支持動態(tài)調(diào)度,也就是說不能根據(jù)終端節(jié)點的實時狀態(tài)及時調(diào)整調(diào)度策略,而底層終端設(shè)備往往不同于PC機,其設(shè)備開機、關(guān)機、在線、下線、忙碌等等的狀況不一而足,因此,為有效完成對底層終端節(jié)點的調(diào)度,還必須實時監(jiān)控并反饋底層終端節(jié)點的狀態(tài),hudson服務(wù)器需要支持此功能,并可根據(jù)收集來的實現(xiàn)狀況調(diào)整調(diào)度,也即需要支持動態(tài)調(diào)度。
[0049]為解決上述問題,本發(fā)明提出了一種擴展功能的hudson服務(wù)器,它包含兩部分內(nèi)容:
[0050]內(nèi)容一,對hudson系統(tǒng)本身進行改造,包括兩部分內(nèi)容,一是增加反映各終端節(jié)點狀態(tài)的標簽,二是在原h(huán)udson隊列機制上添加新的緩沖隊列。
[0051]其中,hudson系統(tǒng)中的上層終端節(jié)點已經(jīng)有對應(yīng)的標簽,在此是增加表明底層終端節(jié)點狀態(tài)的標簽,除此之外,亦可根據(jù)應(yīng)用場景需要,建立多標簽系統(tǒng),比如用以分別標注兩層終端節(jié)點設(shè)備的主狀態(tài)及附屬狀態(tài)的多標簽系統(tǒng),以滿足復雜應(yīng)用時的調(diào)度需要。
[0052]原h(huán)udson隊列機制上添加的新的緩沖隊列是用于緩沖hudson上需要底層終端節(jié)點資源的任務(wù)。類似地,如果底層終端設(shè)備種類多且情況復雜時,此任務(wù)緩沖隊列亦可不只一個,結(jié)合具體需求可調(diào)整。
[0053]此外,由于增加的標簽和增加的隊列與原有的并不沖突,所以本發(fā)明在對底層終端節(jié)點進行任務(wù)分配的同時,仍保留對上層終端節(jié)點的調(diào)度能力,即兩層終端節(jié)點都可參與任務(wù)調(diào)度,都可由hudson服務(wù)器分派適合自己執(zhí)行的任務(wù)。
[0054]內(nèi)容二,在hudson服務(wù)器上開發(fā)一個新的插件,此插件提供常駐線程用于查詢各從屬節(jié)點上的底層終端節(jié)點狀態(tài),并刷新狀態(tài)標簽。
[0055]Hudson擁有強大的插件框架,支持多插件開發(fā)與運行,對于基于PC的分布式調(diào)度,只需將任務(wù)的標簽值設(shè)置成與PC的標簽值一致,即可以使任務(wù)運行在指定的PC機上。在內(nèi)容一中所述的物質(zhì)基礎(chǔ)上,為使相應(yīng)功能能運轉(zhuǎn)起來,就可通過創(chuàng)建一個插件來運轉(zhuǎn)一個常駐線程,以實現(xiàn)功能的運轉(zhuǎn)。
[0056]然而,僅僅依靠hudson服務(wù)器功能擴展并不能完成整個系統(tǒng)功能,還需要其它軟件部件的支持。
[0057]如圖2所示,本發(fā)明方法其完整的軟件架構(gòu)包括以下三個部分:
[0058]I) Hudson服務(wù)器上的擴展程序,用于啟動永久線程,進行終端節(jié)點狀態(tài)的實時刷新,并增設(shè)設(shè)備狀態(tài)標簽和任務(wù)緩沖隊列;
[0059]2)上層終端節(jié)點上的hudson代理程序,用于對終端狀態(tài)的查詢和反饋,并完成對底層節(jié)點任務(wù)的分發(fā)和反饋;
[0060]3)底層終端節(jié)點上的服務(wù)管理程序,用于查詢的接收和反饋,并配合調(diào)度。
[0061]上述三部分密切配合,共同完成基于hudson擴展功能的雙層終端節(jié)點的動態(tài)分布式調(diào)度。其工作的方法和步驟是:
[0062]i)通過駐留在hudson服務(wù)器上的永久線程時刻下發(fā)監(jiān)控指令給守護在各上層終端節(jié)點上的代理程序來監(jiān)控底層終端節(jié)點的運行狀態(tài);
[0063]ii)借助守護在上層終端節(jié)點上的hudson代理程序?qū)⒌讓咏K端的運行狀態(tài)反饋給hudson服務(wù)器;
[0064]iii) 一旦監(jiān)控到狀態(tài)變化,hudson服務(wù)器立刻改變相應(yīng)的上層終端的屬性用以標識該上層終端是否接有空閑的底層終端,或針對多標簽系統(tǒng)進行標識;
[0065]iv) hudson服務(wù)器再通過自身的調(diào)度機制將需運行在底層終端上的任務(wù)分發(fā)給空閑的底層終端服務(wù)管理程序來推動執(zhí)行。[0066]具體地,可參見圖3,圖3為本發(fā)明軟件執(zhí)行過程的時序流程示意圖,按照圖中從上到下的順序可見以下步驟:
[0067]Dhudson服務(wù)器新建插件啟動的查詢線程開始查詢終端狀態(tài),于是,由查詢線程分別向各掛接于服務(wù)器的上層終端節(jié)點上駐留的hudson代理程序,發(fā)出終端節(jié)點狀態(tài)查詢指令;
[0068]2)駐留于上層終端節(jié)點的hudson代理程序收到此指令后,根據(jù)自己下層外接設(shè)備情況,分別向各外接設(shè)備發(fā)出底層設(shè)備查詢指令;
[0069]此處,有以下細節(jié)需要關(guān)注:
[0070]如果底層終端設(shè)備已連接在上層終端上并且已開機,則進入步驟3)執(zhí)行;
[0071]如果底層終端設(shè)備已連接但關(guān)機,貝U返回download狀態(tài);
[0072]如果未連接底層終端設(shè)備,則不返回;
[0073]3)底層終端服務(wù)管理程序收到步驟2)發(fā)來的查詢指令后,根據(jù)自身設(shè)備實際狀態(tài),準備狀態(tài)數(shù)據(jù),并向駐留于上層終端節(jié)點的hudson代理程序發(fā)出底層設(shè)備狀態(tài)反饋消息;
[0074]此處,有以下細節(jié)需要關(guān)注:
[0075]此上層終端節(jié)點可能下接了多個底層終端節(jié)點,因此從步驟2)到步驟3)可能會反復針對多個底層終端節(jié)點進行;
[0076]此上層終端節(jié)點收到來自底層終端節(jié)點的狀態(tài)反饋后,可結(jié)合實際場景應(yīng)用需要考慮是否保留一份底層終端設(shè)備狀態(tài)信息在上層終端節(jié)點中;
[0077]4)駐留于上層終端節(jié)點的hudson代理程序收到步驟3)發(fā)來的反饋消息后,根據(jù)底層終端設(shè)備狀況向服務(wù)器查詢線程發(fā)出終端節(jié)點狀態(tài)反饋消息;
[0078]此處,有以下細節(jié)需要關(guān)注:
[0079]此上層終端節(jié)點可能下接了多個底層終端節(jié)點,因此對收到的步驟3)的反饋消息,可采用收到一個底層設(shè)備的狀態(tài)就上報一個到服務(wù)器的方式,亦可采用收到所有下接底層終端設(shè)備的狀態(tài)反饋消息后,進行匯總后才一次性向服務(wù)器上報的方式;
[0080]考慮到多標簽系統(tǒng),針對不同具體應(yīng)用場景,此處上報服務(wù)器的反饋消息,其內(nèi)容可以只是底層終端節(jié)點的狀態(tài),亦可是包括上層和底層的兩層終端節(jié)點的狀態(tài),還可以是兩層終端節(jié)點各自的主狀態(tài)、附屬狀態(tài)等多種狀態(tài);
[0081]5)服務(wù)器查詢線程收到步驟4)反饋的終端節(jié)點狀態(tài)后,刷新設(shè)備標簽;
[0082]此處,有以下細節(jié)需要關(guān)注:
[0083]無論是否是多標簽體系,只要某底層終端設(shè)備有空閑,則與它相連接的上層終端設(shè)備所對應(yīng)的標簽值即為可用;
[0084]6)服務(wù)器任務(wù)調(diào)度線程獲取任務(wù)隊列中的任務(wù)信息;
[0085]7 )服務(wù)器任務(wù)調(diào)度線程獲取設(shè)備狀態(tài)信息;
[0086]此處,有以下細節(jié)需要關(guān)注:即6)與7)的順序可以交換;
[0087]8)任務(wù)與標簽值均為可用,則分配任務(wù)給終端節(jié)點,由調(diào)度線程將任務(wù)分發(fā)給對應(yīng)的上層終端節(jié)點的代理程序;
[0088]此處,有以下細節(jié)需要關(guān)注:
[0089]新增緩沖隊列中的需要底層終端節(jié)點資源的任務(wù),其屬性值將與可用的底層設(shè)備的狀態(tài)標簽值同值,當調(diào)度線程進行調(diào)度時,發(fā)現(xiàn)兩者的值均為可用時,則將任務(wù)分發(fā)給此標簽值為可用的底層終端節(jié)點來執(zhí)行;
[0090]服務(wù)器調(diào)度線程和服務(wù)器查詢線程,是兩個分別獨立運行的線程,其對共享數(shù)據(jù)讀寫的前后順序或與圖3并不完全相符;此外,當查詢線程獲得終端設(shè)備狀態(tài)改變時,亦可采用線程間通信機制,提請調(diào)度線程進行調(diào)度;
[0091]由于前述兩獨立線程各自工作的情況存在,以及由于底層終端設(shè)備的多樣性、狀態(tài)的復雜性、和反映的延遲性,本發(fā)明設(shè)置了任務(wù)調(diào)度間隔的暫停機制,以解決面向同一終端設(shè)備的相臨兩個調(diào)度任務(wù)間,可能存在的底層終端設(shè)備的狀態(tài)變化的反應(yīng)時間過長問題,從而避免在這段反應(yīng)時間內(nèi)底層終端設(shè)備狀態(tài)被誤讀的情況;
[0092]9)駐留于上層終端節(jié)點的hudson代理程序接收該任務(wù),并負責將該任務(wù)分發(fā)給相應(yīng)的底層終端節(jié)點;
[0093]此處,有以下細節(jié)需要關(guān)注:
[0094]若此上層終端節(jié)點下接了幾個同樣的、均為空閑的底層終端節(jié)點,則此任務(wù)可能由上層終端節(jié)點的hudson代理程序根據(jù)內(nèi)設(shè)方法,分給某個底層終端節(jié)點來執(zhí)行;也可能基于多標簽系統(tǒng),由服務(wù)器就指定好了某特定底層終端節(jié)點來執(zhí)行,此時上層終端節(jié)點只是做簡單的轉(zhuǎn)發(fā)工作;
[0095]上層終端節(jié)點進行任務(wù)的分發(fā)時,可參照步驟3)中所述的保存在上層終端節(jié)點的底層終端節(jié)點的狀態(tài)來進行。
[0096]以上即為本發(fā)明方法的整體運行時序流程。
[0097]根據(jù)本發(fā)明的另一個方面,還提供了一種基于hudson擴展功能的雙層終端節(jié)點的動態(tài)分布式調(diào)度系統(tǒng)。
[0098]如圖4所示,為本發(fā)明應(yīng)用系統(tǒng)的網(wǎng)絡(luò)框架示意圖,它包括:hudson服務(wù)器、PC機、手機三個組成部分,其中PC機處于上層終端節(jié)點層,手機為底層終端節(jié)點。注意,本圖僅為示意圖,即圖中PC機的臺數(shù),及PC機下接手機的臺數(shù),可根據(jù)實際情況具體變動。
[0099]根據(jù)圖5所示,本發(fā)明應(yīng)用系統(tǒng)的軟件架構(gòu)包括以下幾個模塊:
[0100]Hudson服務(wù)器上的daemon plugin模塊,用于啟動永久線程,進行終端節(jié)點狀態(tài)的實時刷新,并增設(shè)設(shè)備狀態(tài)標簽和任務(wù)緩沖隊列;
[0101]PC機上的的agent模塊,作為上層終端節(jié)點上的Hudson代理模塊用于對終端狀態(tài)的查詢和反饋,并完成對底層節(jié)點任務(wù)的分發(fā)和反饋;
[0102]手機上的manager模塊,作為底層終端節(jié)點上的服務(wù)管理模塊用于查詢的接收和反饋,并配合調(diào)度。
[0103]圖6為本發(fā)明所述系統(tǒng)的基本工作流程,通過上述三個模塊密切配合,共同完成基于hudson擴展功能的PC機、手機雙層終端節(jié)點的動態(tài)分布式調(diào)度。其步驟如下:
[0104]I)下發(fā)手機狀態(tài)查詢命令給PC agent,通過駐留在hudson服務(wù)器上的永久線程模塊Deamon Plugin下發(fā)查詢指令給守護在各上層終端節(jié)點PC機上的代理程序模塊agent,以便查詢底層終端節(jié)點手機的運行狀態(tài);
[0105]2)下發(fā)查詢命令給手機,守護在PC機上的hudson代理程序模塊agent將查詢命令進一步轉(zhuǎn)發(fā)給手機;
[0106]3)手機給agent反饋狀態(tài),手機上的服務(wù)管理模塊manager將手機狀態(tài)反饋給PCagent ;
[0107]4) PC agent向服務(wù)器查詢線程模塊Deamon Plugin反饋當前是否有空閑手機。
[0108]對本系統(tǒng)尚有以下說明:
[0109]針對圖3的步驟8)所述的暫停時間間隔,在本系統(tǒng)中考慮到底層終端節(jié)點設(shè)備為手機,因此,實際中任務(wù)調(diào)度暫停間隔采用15秒的間隔;
[0110]對于Hudson服務(wù)器擴展功能啟動的永久線程查詢終端設(shè)備狀態(tài)的方式,采用的是軟件輪詢的方式;
[0111]在系統(tǒng)實施中,自定義空閑或忙碌值來表示底層終端設(shè)備的運行狀態(tài),并用于上層終端節(jié)點和服務(wù)器之間,以及底層終端節(jié)點和上層終端節(jié)點之間的設(shè)備狀態(tài)傳輸表示。
[0112]圖7為本發(fā)明的一個實施例的終端節(jié)點狀態(tài)查詢流程,此實例例采用了輪詢機制進行采詢,具體步驟如下:
[0113]步驟S710,Hudson服務(wù)器擴展功能的初始化,包括查詢線程上下文環(huán)境的初始化,新增狀態(tài)標簽和新增任務(wù)列隊的初始化;
[0114]步驟S711,查詢線程啟動,本實施例的線程采用輪詢機制進行查詢,首先向第一個終端節(jié)點發(fā)出終端節(jié)點狀態(tài)查詢命令;
[0115]步驟S720,上層終端節(jié)點的agent接收步驟S711發(fā)出的命令,并向自身下接的某個底層終端節(jié)點的manager發(fā)出底層設(shè)備狀態(tài)查詢命令;
[0116]步驟S730,底層終端節(jié)點的manager接收步驟S720發(fā)出的命令,并向上層終端節(jié)點的agent反饋自狀態(tài),發(fā)出底層設(shè)備狀態(tài)反饋命令;
[0117]步驟S721,上層終端節(jié)點的agent接收步驟S730發(fā)出的狀態(tài)反饋命令,并在本地存儲獲得的狀態(tài);
[0118]步驟S722,上層終端節(jié)點的agent進行一個判斷,是否自身下接的所有底層終端節(jié)點都已查詢完畢,如果沒有,則向下一個底層終端節(jié)點發(fā)出查詢命令,類似重復步驟S720到S722針對底層終端的部分;若所有底層終端節(jié)點均已查詢完畢,則進行步驟S723 ;
[0119]步驟S723,上層終端節(jié)點的agent將自身下接的所有底層終端節(jié)點的狀態(tài)組成反饋命令,發(fā)往Hudson服務(wù)器的查詢線程;
[0120]步驟S712,Hudson服務(wù)器的查詢線程接收終端節(jié)點狀態(tài)反饋命令,獲取終端節(jié)點設(shè)備狀態(tài),并刷新設(shè)備對應(yīng)的標簽的值;
[0121]步驟S713,Hudson服務(wù)器的查詢線程進行一個判斷,是否自身下接的所有終端節(jié)點都已查詢完畢,如果沒有,則向下一個終端節(jié)點發(fā)出終端節(jié)點狀態(tài)查詢命令,重復步驟S711以后的相應(yīng)過程;若所有終端節(jié)點都已查詢完畢,則轉(zhuǎn)到步驟S711以后,針對第一個終端節(jié)點開始重新一輪的查詢過程。
[0122]本發(fā)明的具體應(yīng)用,可以有多種方法,比如:
[0123]I)提高資源的共享性和利用率,即實現(xiàn)對現(xiàn)有多種智能設(shè)備的計算能力的充分利用,以執(zhí)行各類任務(wù);
[0124]2)當時間為項目關(guān)鍵屬性時,可以空間換取時間,即針對個別設(shè)備需要執(zhí)行的大量任務(wù),為獲取時間上的收益,可以通過增加多個同類設(shè)備接入本系統(tǒng),從而分擔任務(wù)的執(zhí)行,提聞時間效率。
[0125]以下作為本發(fā)明的另一個實施例,即體現(xiàn)了上述以空間換時間的應(yīng)用方法,此實施例的網(wǎng)絡(luò)圖可類似圖4所示,此實施例的基本內(nèi)容是:對手機產(chǎn)品(包括手機軟硬件功能產(chǎn)品)進行測試時,為使大量測試用例能在較短時間完成,可利用本發(fā)明的方法和系統(tǒng),增加多個手機為底層終端節(jié)點設(shè)備,以便于進行并行測試,縮短測試時間。
[0126]具體地,假設(shè)有一批手機測試用例(case)集合(假如說1000個),并且可用于測試的手機A、B、C共3部,分別掛載在P1、P2、P3這3臺PC上。利用本發(fā)明,可以先從測試用例集合中取一個case分發(fā)給手機A,并通知hudson將Pl置為非空閑狀態(tài)(unAvailable);類似,繼續(xù)取第2、3個case運行在B和C上。當其中的一個case跑完以后,將該PC置為空閑狀態(tài)(Available);然后繼續(xù)從case集合中申請新的case運行。依此跑完所有的case,以達到分布式測試。
[0127]針對多標簽系統(tǒng)的應(yīng)用,本發(fā)明的具體實施例可以是很簡單地賦予手機僅有兩種狀態(tài),空閑和忙碌;亦可以是面向使用場景更復雜的情況,可以給手機賦予更多的狀態(tài)用于調(diào)度,比如有些手機只能適用于某種特殊的場景下(假設(shè)dangerous場景),這樣手機反饋回來的狀態(tài)就是dangerous,這樣本發(fā)明就能使用于更多的場景,比如手機軟件更新過程等
坐寸ο
[0128]本發(fā)明提供的一種基于hudson擴展功能的雙層終端節(jié)點的動態(tài)分布式調(diào)度方法和系統(tǒng)可以使用可編程邏輯器件結(jié)合來實現(xiàn),也可以實施為計算機程序軟件,例如根據(jù)本發(fā)明的實施例可以是一種計算機程序產(chǎn)品,運行該程序產(chǎn)品使計算機執(zhí)行用于所示范的方法。所述計算機程序產(chǎn)品包括計算機可讀存儲介質(zhì),該介質(zhì)上包含計算機程序邏輯或代碼部分,用于實現(xiàn)所述移動終端的消息的內(nèi)容的處理方法。所述計算機可讀存儲介質(zhì)可以是被安裝在計算機中的內(nèi)置介質(zhì)或者可從計算機主體拆卸的可移動介質(zhì)(例如熱拔插技術(shù)存儲設(shè)備)。所述內(nèi)置介質(zhì)包括但不限于可重寫的非易失性存儲器,例如RAM、ROM、快閃存儲器和硬盤。所述可移動介質(zhì)包括但不限于:光存儲媒體(例如⑶-ROM和DVD)、磁光存儲媒體(例如MO)、磁存儲媒體(例如盒帶或移動硬盤)、具有內(nèi)置的可重寫的非易失性存儲器的媒體(例如存儲卡)和具有內(nèi)置ROM的媒體(例如ROM盒)。
[0129]本領(lǐng)域技術(shù)人員應(yīng)當理解,任何具有適當編程裝置的計算機系統(tǒng)都將能夠執(zhí)行包含在程序產(chǎn)品中的本發(fā)明的方法的諸步驟。盡管本說明書中描述的多數(shù)【具體實施方式】都側(cè)重于軟件程序,但是作為固件和硬件實現(xiàn)本發(fā)明提供的方法的替代實施例同樣在本發(fā)明要求保護的范圍之內(nèi)。
[0130]以上所揭露的僅為本發(fā)明的一些較佳實施例而已,當然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
【權(quán)利要求】
1.一種基于hudson擴展功能的雙層終端節(jié)點的動態(tài)分布式調(diào)度方法,其特征在于以下方法,包括: a)構(gòu)建雙層終端節(jié)點結(jié)構(gòu),底層終端節(jié)點為移動終端,上層終端節(jié)點為PC機,所述底層終端節(jié)點與所述上層終端節(jié)點相連接; b)采用基于hudson系統(tǒng)的擴展功能服務(wù)器對所述雙層終端節(jié)點結(jié)構(gòu)進行動態(tài)調(diào)度。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述步驟b)還包括: 在所述hudson系統(tǒng)中添加反映各終端節(jié)點狀態(tài)的狀態(tài)標簽; 在所述hudson系統(tǒng)中的原h(huán)udson隊列機制上添加新的緩沖隊列; 提供常駐線程用于查詢所述底層終端節(jié)點狀態(tài),并刷新所述狀態(tài)標簽。
3.根據(jù)權(quán)利要求2所述的方法,其中,所述在所述hudson系統(tǒng)中的原h(huán)udson隊列機制上添加新的緩沖隊列用于緩沖所述hudson系統(tǒng)中需要所述底層終端節(jié)點資源的任務(wù)。
4.根據(jù)權(quán)利要求3所述的方法,其中,采用任務(wù)調(diào)度間隔的暫停機制對所述底層終端節(jié)點資源進行調(diào)度。
5.根據(jù)權(quán)利要求2所述,其中,根據(jù)應(yīng)用場景需要,在所述hudson系統(tǒng)中建立多標簽系統(tǒng),以分別標注所述雙層終端節(jié)點的主狀態(tài)及附屬狀態(tài)。
6.根據(jù)權(quán)利要求2所述的方法,其中,所述提供常駐線程用于查詢所述底層終端節(jié)點狀態(tài),并刷新所述狀態(tài)標簽,包括: i)通過駐留在所述hudson系統(tǒng)上的永久線程時刻下發(fā)監(jiān)控指令給守護在所述上層終端節(jié)點上的代理程序來監(jiān)控所述底層終端節(jié)點的運行狀態(tài); ii)通過守護在所述上層終端節(jié)點上的所述代理程序?qū)⑺龅讓咏K端的運行狀態(tài)反饋給所述hudson系統(tǒng); iii)當所述運行狀態(tài)有變化時,所述hudson系統(tǒng)改變相應(yīng)的所述上層終端節(jié)點的屬性用以標識所述上層終端節(jié)點是否接有空閑的所述底層終端; iv)所述hudson系統(tǒng)通過調(diào)度機制將需運行在所述底層終端節(jié)點上的任務(wù)分發(fā)給空閑的所述底層終端節(jié)點。
7.根據(jù)權(quán)利要求6所述的方法,所述步驟ii)進一步包括: 通過所述上層終端節(jié)點上的所述代理程序執(zhí)行查詢命令; 如果所述底層終端節(jié)點已連接在所述上層終端節(jié)點上并且已開機,則獲取所述底層終端節(jié)點的當前狀態(tài)并返回所述當前狀態(tài); 如果所述底層終端節(jié)點已連接但關(guān)機,則返回下載狀態(tài); 如果未連接所述底層終端節(jié)點,則不返回。
8.根據(jù)權(quán)利要求7所述的方法,所述通過所述上層終端節(jié)點上的所述代理程序執(zhí)行查詢命令包括:: 將所述查詢命令傳輸至所述底層終端節(jié)點上的服務(wù)管理程序; 所述底層終端節(jié)點的服務(wù)管理程序?qū)⒆陨頎顟B(tài)傳輸至所述代理程序; 所述代理程序?qū)⑺龅讓咏K端節(jié)點的狀態(tài)反饋給所述hudson系統(tǒng)的新增線程。
9.根據(jù)權(quán)利要求6所述的方法,其中,所述步驟iii)進一步為: 根據(jù)反饋信息修改所述hudson系統(tǒng)上反映終端節(jié)點狀態(tài)的標簽,如果某一底層終端節(jié)點有空閑,則與它相連接的上層終端節(jié)點所對應(yīng)的標簽值為可用。
10.根據(jù)權(quán)利要求3或權(quán)利要求9所述的方法,其中,通過調(diào)度分發(fā)給標簽值為可用的底層終端節(jié)點來執(zhí)行緩沖所述hudson系統(tǒng)中需要所述底層終端節(jié)點資源的任務(wù)。
11.根據(jù)權(quán)利要求2或6所述的方法,其中,根據(jù)實時變化的狀態(tài)來進行任務(wù)的調(diào)度。
12.根據(jù)權(quán)利要求6所述的方法,其特征在于,在對底層終端節(jié)點進行任務(wù)分配的同時,保留對上層終端節(jié)點的調(diào)度能力。
13.一種基于hudson擴展功能的雙層終端節(jié)點的動態(tài)分布式調(diào)度系統(tǒng),其特征在于,包括以下模塊: 守護進程模塊,用于啟動永久線程,進行終端節(jié)點狀態(tài)的實時刷新,并增設(shè)終端狀態(tài)標簽和任務(wù)緩沖隊列; 代理模塊,用于對所述終端節(jié)點狀態(tài)進行查詢和反饋,并完成對底層節(jié)點任務(wù)的分發(fā)和反饋; 管理模塊,用于查詢的接收和反饋,并配合調(diào)度。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),其中,新建緩沖隊列的任務(wù)調(diào)度暫停間隔為15秒。
15.根據(jù)權(quán)利要求13所述的系統(tǒng),其中,所述守護進程模塊啟動的永久線程采用輪詢的方式來查詢終端節(jié)點的狀態(tài)。
16.根據(jù)權(quán)利要求13所述的系統(tǒng),其中,所述終端節(jié)點狀態(tài)包括忙碌和/或空閑。
17.根據(jù)權(quán)利要求13所述的系統(tǒng),其中,所述代理模塊進一步用于,在所述上層終端節(jié)點建立標識區(qū),保存通過查詢獲知的所述底層終端節(jié)點狀態(tài)。
【文檔編號】H04L12/863GK103685066SQ201210348283
【公開日】2014年3月26日 申請日期:2012年9月18日 優(yōu)先權(quán)日:2012年9月18日
【發(fā)明者】林榮文, 董海峰 申請人:百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司