針對(duì)可執(zhí)行程序的分布式云計(jì)算系統(tǒng)及針對(duì)可執(zhí)行程序的分布式云計(jì)算方法
【專利摘要】本發(fā)明公開(kāi)了通用的分布式云計(jì)算系統(tǒng)及通用的分布式云計(jì)算方法,使用戶通過(guò)一個(gè)統(tǒng)一的界面在連網(wǎng)的任意一臺(tái)機(jī)器上都可以發(fā)布任務(wù)和監(jiān)控任務(wù)的執(zhí)行,而不必對(duì)著運(yùn)行任務(wù)的機(jī)器操作,通過(guò)自動(dòng)調(diào)度,在有任務(wù)時(shí),使集群中每臺(tái)機(jī)器都能工作,充分利用硬件資源,任務(wù)處理采用多臺(tái)機(jī)器分布式并行計(jì)算,可通過(guò)擴(kuò)展計(jì)算服務(wù)器的數(shù)量大大提高處理的速度,另外,由于采用每個(gè)任務(wù)單獨(dú)分配給單獨(dú)的計(jì)算服務(wù)器進(jìn)行執(zhí)行,某臺(tái)計(jì)算服務(wù)器出現(xiàn)問(wèn)題時(shí),其他計(jì)算機(jī)也可以進(jìn)行替代執(zhí)行該任務(wù),該任務(wù)的出錯(cuò)不會(huì)影響到工程中其他任務(wù)的執(zhí)行,當(dāng)出現(xiàn)不可恢復(fù)的錯(cuò)誤時(shí),只需要對(duì)計(jì)算服務(wù)器進(jìn)行調(diào)整,從而將該任務(wù)插入至列表從而得到執(zhí)行。
【專利說(shuō)明】針對(duì)可執(zhí)行程序的分布式云計(jì)算系統(tǒng)及針對(duì)可執(zhí)行程序的分布式云計(jì)算方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及分布式云計(jì)算領(lǐng)域,具體來(lái)說(shuō),涉及在分布式環(huán)境下,利用云存儲(chǔ)在各節(jié)點(diǎn)之間完成數(shù)據(jù)交換、對(duì)任務(wù)進(jìn)行調(diào)度和自動(dòng)調(diào)用可執(zhí)行程序來(lái)自動(dòng)化處理任務(wù)的方法,尤其涉及針對(duì)可執(zhí)行程序的分布式云計(jì)算系統(tǒng)及針對(duì)可執(zhí)行程序的分布式云計(jì)算方法。
【背景技術(shù)】
[0002]傳統(tǒng)計(jì)算機(jī)程序的執(zhí)行需要用戶在程序所在的機(jī)器上輸入命令或通過(guò)圖形界面來(lái)完成,其中很多程序的任務(wù)都是處理文件系統(tǒng)中的文件。這種方式被廣泛地運(yùn)用于企業(yè)和科研機(jī)構(gòu),他們出于自己的業(yè)務(wù)需求或研究需要,要經(jīng)常運(yùn)行相同的程序。這些程序的處理流程基本都是相同的,即讀取文件、處理數(shù)據(jù)、最后以文件形式將結(jié)果輸出。然而,這種方式在擴(kuò)展性上有很大的問(wèn)題。當(dāng)數(shù)據(jù)量增大,處理時(shí)間變長(zhǎng)時(shí),一臺(tái)機(jī)器將沒(méi)有足夠的性能來(lái)完成任務(wù),那么勢(shì)必要增加新的機(jī)器來(lái)分?jǐn)側(cè)蝿?wù)。而當(dāng)機(jī)器變得很多的時(shí)候,在每臺(tái)機(jī)器上都要人工執(zhí)行及其相似的操作。這樣的工作繁瑣而機(jī)械,并且很不利于管理,將大大增加人力成本,另外容易出現(xiàn)某臺(tái)機(jī)器處于任務(wù)飽和狀態(tài),和其他機(jī)器處于空閑狀態(tài),其整體的計(jì)算機(jī)性能無(wú)法進(jìn)行優(yōu)化。而通過(guò)分布式計(jì)算方式,將一個(gè)任務(wù)進(jìn)行分配,然后讓多臺(tái)機(jī)器對(duì)同一個(gè)任務(wù)進(jìn)行計(jì)算,最后由一臺(tái)計(jì)算機(jī)進(jìn)行對(duì)任務(wù)處理結(jié)果的整合,優(yōu)先該處理方式需要解決任務(wù)處理的算法問(wèn)題,另外,當(dāng)任務(wù)處理中某臺(tái)機(jī)器出現(xiàn)無(wú)法響應(yīng)亦或者某臺(tái)機(jī)器出現(xiàn)問(wèn)題時(shí),則后續(xù)的任務(wù)無(wú)法進(jìn)行處理,即容易出現(xiàn)一個(gè)任務(wù)的執(zhí)行失敗,導(dǎo)致整個(gè)工程的執(zhí)行失敗,以及后續(xù)任務(wù)執(zhí)行的推延。
【發(fā)明內(nèi)容】
[0003]針對(duì)上述技術(shù)缺陷,本發(fā)明提出針對(duì)可執(zhí)行程序的分布式云計(jì)算系統(tǒng)及針對(duì)可執(zhí)行程序的分布式云計(jì)算方法。
[0004]為了解決上述技術(shù)問(wèn)題,本發(fā)明的技術(shù)方案如下:
針對(duì)可執(zhí)行程序的分布式云計(jì)算系統(tǒng),包括調(diào)度服務(wù)器、計(jì)算服務(wù)器和云存儲(chǔ)服務(wù)
器;
所述調(diào)度服務(wù)器用于創(chuàng)建工程及該工程包含的任務(wù),并將該任務(wù)分配至計(jì)算服務(wù)器;所述計(jì)算服務(wù)器用于接受調(diào)度服務(wù)器分配的任務(wù),并自動(dòng)調(diào)用事先配置的可執(zhí)行程序?qū)υ撊蝿?wù)進(jìn)行執(zhí)行處理;
所述云存儲(chǔ)服務(wù)器用于所述調(diào)度服務(wù)器創(chuàng)建工程及任務(wù)分配時(shí)資源文件的存儲(chǔ)、所述計(jì)算服務(wù)器獲取執(zhí)行任務(wù)需要的資源文件的存儲(chǔ)、所述計(jì)算服務(wù)器上傳執(zhí)行任務(wù)后的結(jié)果文件。
[0005]進(jìn)一步的,所述調(diào)度服務(wù)器根據(jù)工程的優(yōu)先級(jí)以及工程中任務(wù)的優(yōu)先級(jí)進(jìn)行分配,所述調(diào)度服務(wù)器實(shí)時(shí)監(jiān)控計(jì)算服務(wù)器,根據(jù)計(jì)算服務(wù)器的請(qǐng)求,將任務(wù)分配至空閑的計(jì)算機(jī)服務(wù)器中。
[0006]進(jìn)一步的,當(dāng)計(jì)算服務(wù)器出現(xiàn)執(zhí)行任務(wù)出錯(cuò)時(shí),如果出現(xiàn)的出錯(cuò)是可恢復(fù)的,則調(diào)度服務(wù)器重置該任務(wù),并分配該任務(wù)至其他空閑的計(jì)算服務(wù)器執(zhí)行該任務(wù);如果出現(xiàn)的出錯(cuò)是不可恢復(fù)的,則所述計(jì)算服務(wù)器停止執(zhí)行該任務(wù),所述調(diào)度服務(wù)器則停止分配該任務(wù);當(dāng)計(jì)算服務(wù)器執(zhí)行任務(wù)的時(shí)間超過(guò)閾值,調(diào)度服務(wù)器將重置該任務(wù),并分配該任務(wù)至其他空閑的計(jì)算服務(wù)器;如果調(diào)度服務(wù)器監(jiān)控得到計(jì)算服務(wù)器出現(xiàn)問(wèn)題無(wú)法執(zhí)行分配的任務(wù),則重置該任務(wù),并分配該任務(wù)至其他空閑的計(jì)算服務(wù)器。對(duì)于一個(gè)任務(wù),重置次數(shù)有限制,超過(guò)這個(gè)限制則所述調(diào)度服務(wù)器則停止重置和分配該任務(wù)
通用的分布式云計(jì)算方法,包括如下步驟:
41)調(diào)度服務(wù)器接受用戶創(chuàng)建工程的請(qǐng)求,創(chuàng)建出新的工程和與該工程關(guān)聯(lián)的若干個(gè)任務(wù),并設(shè)定該工程以及任務(wù)的優(yōu)先級(jí),從而得到任務(wù)及工程的排隊(duì)執(zhí)行列表;
42)調(diào)度服務(wù)器根據(jù)計(jì)算服務(wù)器的請(qǐng)求,根據(jù)優(yōu)先級(jí)從調(diào)度服務(wù)器領(lǐng)取任務(wù),此時(shí)調(diào)度服務(wù)器將該被領(lǐng)取的任務(wù)標(biāo)記為進(jìn)行中;
43)計(jì)算服務(wù)器從云存儲(chǔ)服務(wù)器上獲取執(zhí)行此任務(wù)需要的資源文件;
44)計(jì)算服務(wù)器運(yùn)行配置的可執(zhí)行程序,執(zhí)行此任務(wù);
45)完成此任務(wù)后,計(jì)算服務(wù)器向調(diào)度服務(wù)器請(qǐng)求將任務(wù)狀態(tài)標(biāo)為完成中,請(qǐng)求被調(diào)度服務(wù)器接受則上傳運(yùn)行結(jié)果到云存儲(chǔ)服務(wù)器;
46)運(yùn)行結(jié)果上傳完畢,任務(wù)狀態(tài)標(biāo)為完成。
[0007]進(jìn)一步的,所述步驟41)中的優(yōu)先級(jí)可進(jìn)行干預(yù),調(diào)度服務(wù)器可根據(jù)優(yōu)先級(jí)的高低,插入或者暫緩排隊(duì)執(zhí)行列表中的任務(wù)或者工程。
[0008]進(jìn)一步的,在所述步驟45)中,為了防止同一個(gè)任務(wù)被多次提交,只有當(dāng)任務(wù)的狀態(tài)不為完成或不為完成中時(shí),調(diào)度服務(wù)器才接受把狀態(tài)標(biāo)為完成中的請(qǐng)求。
[0009]進(jìn)一步的,當(dāng)計(jì)算服務(wù)器執(zhí)行任務(wù)時(shí)發(fā)生不可恢復(fù)的錯(cuò)誤,調(diào)度服務(wù)器將任務(wù)的狀態(tài)會(huì)被直接標(biāo)為失敗,此任務(wù)將不再被執(zhí)行;而當(dāng)計(jì)算服務(wù)器執(zhí)行任務(wù)時(shí)發(fā)生可恢復(fù)錯(cuò)誤,則調(diào)度服務(wù)器將任務(wù)重置為開(kāi)始,此任務(wù)將分配給其他的計(jì)算服務(wù)器執(zhí)行。
[0010]進(jìn)一步的,如果計(jì)算服務(wù)器執(zhí)行任務(wù)時(shí),一個(gè)任務(wù)長(zhǎng)時(shí)間處于進(jìn)行中的狀態(tài)且處理該任務(wù)的計(jì)算服務(wù)器沒(méi)有向調(diào)度服務(wù)器報(bào)告,則該任務(wù)被重置成開(kāi)始,調(diào)度服務(wù)器重新根據(jù)優(yōu)先級(jí)的高低進(jìn)行排隊(duì)執(zhí)行列表的排列,并讓其他計(jì)算服務(wù)器去執(zhí)行此任務(wù)。
[0011]進(jìn)一步的,當(dāng)計(jì)算服務(wù)器執(zhí)行任務(wù),調(diào)度服務(wù)器將該工程的狀態(tài)改變?yōu)檫M(jìn)行中,當(dāng)工程在進(jìn)行中狀態(tài)時(shí),可以人工停止工程,則該工程中的任務(wù)將不再被調(diào)度服務(wù)器安排分配執(zhí)行;也可以恢復(fù)已停止的項(xiàng)目,讓時(shí)調(diào)度服務(wù)器根據(jù)優(yōu)先級(jí)重新安排排隊(duì)執(zhí)行列表,此項(xiàng)目中的任務(wù)繼續(xù)執(zhí)行;當(dāng)工程內(nèi)部所有任務(wù)都執(zhí)行完畢后,如果全部成功,則工程的狀態(tài)會(huì)被設(shè)為完成;如果有失敗的任務(wù),那么這個(gè)工程的狀態(tài)就會(huì)被設(shè)置為出錯(cuò)。
[0012]本發(fā)明的有益效果在于:使用戶通過(guò)一個(gè)統(tǒng)一的界面在連網(wǎng)的任意一臺(tái)機(jī)器上都可以發(fā)布任務(wù)和監(jiān)控任務(wù)的執(zhí)行,而不必對(duì)著運(yùn)行任務(wù)的機(jī)器操作。通過(guò)自動(dòng)調(diào)度,在有任務(wù)時(shí),使集群中每臺(tái)機(jī)器都能工作,充分利用硬件資源。任務(wù)處理采用多臺(tái)機(jī)器分布式并行計(jì)算,可通過(guò)擴(kuò)展計(jì)算服務(wù)器的數(shù)量大大提高處理的速度,另外,由于采用每個(gè)任務(wù)單獨(dú)分配給單獨(dú)的計(jì)算服務(wù)器進(jìn)行執(zhí)行,某臺(tái)計(jì)算服務(wù)器出現(xiàn)問(wèn)題時(shí),其他計(jì)算機(jī)也可以進(jìn)行替代執(zhí)行該任務(wù),該任務(wù)的出錯(cuò)不會(huì)影響到工程中其他任務(wù)的執(zhí)行,當(dāng)出現(xiàn)不可恢復(fù)的錯(cuò)誤時(shí),只需要對(duì)計(jì)算服務(wù)器進(jìn)行調(diào)整,調(diào)度服務(wù)器自動(dòng)會(huì)根據(jù)優(yōu)先級(jí)重新安排排隊(duì)執(zhí)行列表,從而將該任務(wù)插入至列表從而得到執(zhí)行。
【專利附圖】
【附圖說(shuō)明】
[0013]圖1是本發(fā)明針對(duì)可執(zhí)行程序的分布式云計(jì)算系統(tǒng)的結(jié)構(gòu)組成圖;
圖2是本發(fā)明針對(duì)可執(zhí)行程序的分布式云計(jì)算系統(tǒng)中工程的狀態(tài)圖;
圖3是本發(fā)明針對(duì)可執(zhí)行程序的分布式云計(jì)算系統(tǒng)中任務(wù)的狀態(tài)圖。
【具體實(shí)施方式】
[0014]下面將結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步的說(shuō)明。
[0015]當(dāng)多臺(tái)電腦需要運(yùn)行相同的程序來(lái)處理大量的數(shù)據(jù)時(shí),為了使人員不必進(jìn)行大量重復(fù)而機(jī)械的操作,本發(fā)明提供了一種將任務(wù)分配到不同機(jī)器進(jìn)行自動(dòng)化處理的方法。本系統(tǒng)分為兩個(gè)部分:一是在調(diào)度服務(wù)器上的調(diào)度系統(tǒng);一是在每臺(tái)計(jì)算服務(wù)器上的自動(dòng)化處理系統(tǒng)。整個(gè)系統(tǒng)將包括一個(gè)調(diào)度服務(wù)器及若干個(gè)計(jì)算服務(wù)器,調(diào)度服務(wù)器負(fù)責(zé)維護(hù)整個(gè)任務(wù)執(zhí)行隊(duì)列,計(jì)算服務(wù)器負(fù)責(zé)對(duì)分配領(lǐng)取的任務(wù)的執(zhí)行。
[0016]調(diào)度服務(wù)器是整個(gè)系統(tǒng)的中樞,其維護(hù)的任務(wù)隊(duì)列有兩級(jí)的概念:工程和任務(wù),一個(gè)工程可以包括一個(gè)或多個(gè)任務(wù),每個(gè)工程和任務(wù)都有優(yōu)先級(jí)和狀態(tài)來(lái)用于調(diào)度。優(yōu)先級(jí)例如可以由無(wú)符號(hào)整數(shù)標(biāo)記,以較小的數(shù)字表示較高的優(yōu)先級(jí),也可以采用其他計(jì)算機(jī)可識(shí)別的方式進(jìn)行。
[0017]工程的狀態(tài)有五個(gè),分別是:
1.開(kāi)始:表示工程被新建,還未開(kāi)始執(zhí)行任務(wù);
2.進(jìn)行中:表示工程中的任務(wù)正在被執(zhí)行;
3.停止:表示工程被人工停止;
4.完成:表示工程中的任務(wù)以全部被成功得執(zhí)行;
5.出錯(cuò):表示工程中有出錯(cuò)的任務(wù);
任務(wù)的狀態(tài)有五個(gè),分別是:
1.開(kāi)始:表示任務(wù)被新建,等待被領(lǐng)??;
2.進(jìn)行中:表示任務(wù)正在被執(zhí)行;
3.失敗:表示任務(wù)失敗;
4.完成中:表不正在上傳任務(wù)結(jié)果;
5.完成:表不任務(wù)被成功執(zhí)行;
調(diào)度服務(wù)器通過(guò)對(duì)工程及任務(wù)的優(yōu)先級(jí)與狀態(tài)的改變,來(lái)實(shí)現(xiàn)整個(gè)調(diào)度過(guò)程。
[0018]在自動(dòng)處理任務(wù)時(shí),需要用到特定的可執(zhí)行程序,其可靠性是無(wú)法由本系統(tǒng)控制的,在運(yùn)行多次之后難免會(huì)出現(xiàn)錯(cuò)誤,如異常退出、死鎖、輸入文件錯(cuò)誤等。這些情況繁多而復(fù)雜,但從表現(xiàn)看,就分為兩種:一是程序不正常退出,一是程序長(zhǎng)時(shí)間不響應(yīng)。同時(shí)考慮到有的錯(cuò)誤是可以通過(guò)重試來(lái)解決的,而有的錯(cuò)誤則不行,于是將錯(cuò)誤的類型分為可恢復(fù)的和不可恢復(fù)的,如輸入文件錯(cuò)誤是不可恢復(fù)的,而程序長(zhǎng)時(shí)間不響應(yīng)通常是可恢復(fù)的。于是,當(dāng)出現(xiàn)不可恢復(fù)的錯(cuò)誤時(shí),將此任務(wù)標(biāo)為失?。划?dāng)出現(xiàn)可恢復(fù)錯(cuò)誤時(shí)則調(diào)度服務(wù)器將任務(wù)重置,分配由其他計(jì)算服務(wù)器重試此任務(wù)。當(dāng)重試次數(shù)達(dá)到一定限度時(shí),也將此任務(wù)標(biāo)為失敗以防止無(wú)謂的嘗試而浪費(fèi)性能。
[0019]本發(fā)明還開(kāi)放遵循HTTP協(xié)議的接口的方式來(lái)允許用戶查詢?nèi)蝿?wù)運(yùn)行的狀態(tài)和控制任務(wù)的調(diào)度。查詢功能將給出工程的狀態(tài)及工程中不同狀態(tài)任務(wù)的數(shù)目,通過(guò)已完成和未完成的任務(wù)的比例可以估算出這個(gè)任務(wù)的執(zhí)行進(jìn)度。而開(kāi)放的控制接口有以下幾個(gè):
1.新建工程:提供必要的數(shù)據(jù),在任務(wù)隊(duì)列中添加一個(gè)工程。
[0020]2.調(diào)整優(yōu)先級(jí):更改工程的優(yōu)先級(jí),優(yōu)先級(jí)較高的工程的任務(wù)會(huì)被先優(yōu)先領(lǐng)取執(zhí)行。
[0021]3.中斷工程:將當(dāng)前狀態(tài)為開(kāi)始或進(jìn)行中的工程標(biāo)為停止,使工程中的任務(wù)不再被領(lǐng)取執(zhí)行。
[0022]4.恢復(fù)工程:將當(dāng)前狀態(tài)為停止的工程重新標(biāo)為開(kāi)始,使工程繼續(xù)進(jìn)行。
[0023]如圖1所示,說(shuō)明了本實(shí)施例的結(jié)構(gòu)組成,本例中包括一臺(tái)調(diào)度服務(wù)器和三臺(tái)計(jì)算服務(wù)器。同時(shí),所有機(jī)器都連接上了同一個(gè)云存儲(chǔ)。圖2和圖3說(shuō)明了本發(fā)明中工程和任務(wù)的狀態(tài)變化。
[0024]首先,調(diào)度服務(wù)器接受到用戶的創(chuàng)建工程請(qǐng)求,創(chuàng)建出一個(gè)新的工程和若干個(gè)任務(wù)。這時(shí),工程和任務(wù)的狀態(tài)都為開(kāi)始。
[0025]在理想情況下,一個(gè)工程中的任務(wù)接下來(lái)將經(jīng)過(guò)以下幾個(gè)步驟:
a.每臺(tái)計(jì)算服務(wù)器根據(jù)優(yōu)先級(jí)從調(diào)度服務(wù)器領(lǐng)取一個(gè)任務(wù)。此時(shí),任務(wù)的狀態(tài)將會(huì)從開(kāi)始改變?yōu)檫M(jìn)行中;
b.計(jì)算服務(wù)器從云存儲(chǔ)上獲取執(zhí)行此任務(wù)需要的資源文件;
c.計(jì)算服務(wù)器運(yùn)行配置的程序,執(zhí)行此任務(wù);
d.計(jì)算服務(wù)器請(qǐng)求將任務(wù)狀態(tài)標(biāo)為完成中,請(qǐng)求被接受則上傳運(yùn)行結(jié)果到云存儲(chǔ);
e.運(yùn)行結(jié)果上傳完畢,任務(wù)狀態(tài)標(biāo)為完成。
[0026]步驟a根據(jù)優(yōu)先級(jí)來(lái)領(lǐng)取任務(wù),調(diào)度服務(wù)器會(huì)挑選出擁有最高優(yōu)先級(jí)的工程中擁有最高優(yōu)先級(jí)的任務(wù),優(yōu)先級(jí)可由調(diào)度服務(wù)器提供的API來(lái)改變。這樣,后添加進(jìn)來(lái)的緊急任務(wù)可以被優(yōu)先執(zhí)行即將后來(lái)的優(yōu)先級(jí)高的任務(wù)插入至調(diào)度服務(wù)器的任務(wù)執(zhí)行序列中。
[0027]在步驟d中,為了防止同一個(gè)任務(wù)被多次提交,只有當(dāng)任務(wù)的狀態(tài)不為完成和完成中時(shí),調(diào)度服務(wù)器才接受把狀態(tài)標(biāo)為完成中的請(qǐng)求。
[0028]上述過(guò)程發(fā)生在大多數(shù)情況下,即沒(méi)有任何錯(cuò)誤發(fā)生的情況下,當(dāng)發(fā)生錯(cuò)誤時(shí),流程將有所不同。
[0029]當(dāng)發(fā)生不可恢復(fù)的錯(cuò)誤時(shí),任務(wù)的狀態(tài)會(huì)被直接標(biāo)為失敗,此任務(wù)將不再被執(zhí)行。而當(dāng)發(fā)生可恢復(fù)錯(cuò)誤時(shí),則將任務(wù)重置為開(kāi)始,這樣此任務(wù)就可以被再次執(zhí)行。同時(shí),在調(diào)度服務(wù)器有超時(shí)檢查的機(jī)制:如果一個(gè)任務(wù)長(zhǎng)時(shí)間處于進(jìn)行中的狀態(tài)且處理改任務(wù)的計(jì)算服務(wù)器沒(méi)有向調(diào)度服務(wù)器報(bào)告,那么很可能在計(jì)算服務(wù)器出了問(wèn)題而不能完成此任務(wù),任務(wù)也會(huì)被重置成開(kāi)始以讓其他計(jì)算服務(wù)器去執(zhí)行此任務(wù),從而避免一個(gè)任務(wù)的失敗影響整個(gè)工程的執(zhí)行進(jìn)展。
[0030]發(fā)生可恢復(fù)錯(cuò)誤的概率本來(lái)就很低,重復(fù)出現(xiàn)的概率則更低。因此,任務(wù)被重置的次數(shù)是有限的。當(dāng)超過(guò)了這個(gè)限制,任務(wù)的狀態(tài)就會(huì)被設(shè)置為失敗。
[0031]工程的狀態(tài)變化和其任務(wù)的執(zhí)行情況有關(guān),同時(shí)還受人操作的影響。當(dāng)有任務(wù)開(kāi)始執(zhí)行時(shí),其狀態(tài)就會(huì)改變?yōu)檫M(jìn)行中。當(dāng)工程在進(jìn)行中狀態(tài)時(shí),可以人工停止工程,那么這個(gè)工程中的任務(wù)將不再被領(lǐng)取執(zhí)行;也可以恢復(fù)已停止的項(xiàng)目,讓此工程中的任務(wù)繼續(xù)執(zhí)行。當(dāng)其內(nèi)部所有任務(wù)都執(zhí)行完畢后,如果全部成功,則工程的狀態(tài)會(huì)被設(shè)為完成;如果有失敗的任務(wù),那么這個(gè)工程的狀態(tài)就會(huì)被設(shè)置為出錯(cuò)。這樣,整個(gè)工程的生命周期就結(jié)束了,然而,當(dāng)對(duì)該失敗任務(wù)進(jìn)行處理后,該任務(wù)將繼續(xù)進(jìn)行執(zhí)行,從而該任務(wù)完成后,整個(gè)工程也可以標(biāo)記完成,不影響其他已經(jīng)處理好的任務(wù),節(jié)省了重復(fù)計(jì)算的時(shí)間。
[0032]以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本【技術(shù)領(lǐng)域】的普通技術(shù)人員,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.針對(duì)可執(zhí)行程序的分布式云計(jì)算系統(tǒng),其特征在于,包括調(diào)度服務(wù)器、計(jì)算服務(wù)器和云存儲(chǔ)服務(wù)器; 所述調(diào)度服務(wù)器用于創(chuàng)建工程及該工程包含的任務(wù),并將該任務(wù)分配至計(jì)算服務(wù)器; 所述計(jì)算服務(wù)器用于接受調(diào)度服務(wù)器分配的任務(wù),通過(guò)自動(dòng)調(diào)用事先配置的可執(zhí)行程序?qū)υ撊蝿?wù)進(jìn)行執(zhí)行處理; 所述云存儲(chǔ)服務(wù)器用于所述調(diào)度服務(wù)器創(chuàng)建工程及任務(wù)分配時(shí)資源文件的存儲(chǔ),所述計(jì)算服務(wù)器獲取執(zhí)行任務(wù)需要的資源文件的存儲(chǔ)、所述計(jì)算服務(wù)器上傳執(zhí)行任務(wù)后的結(jié)果文件。
2.根據(jù)權(quán)利要求1所述的針對(duì)可執(zhí)行程序的分布式云計(jì)算系統(tǒng),其特征在于,所述調(diào)度服務(wù)器根據(jù)工程的優(yōu)先級(jí)以及工程中任務(wù)的優(yōu)先級(jí)進(jìn)行分配,所述調(diào)度服務(wù)器實(shí)時(shí)監(jiān)控計(jì)算服務(wù)器,根據(jù)計(jì)算服務(wù)器的請(qǐng)求,將任務(wù)分配至空閑的計(jì)算機(jī)服務(wù)器中。
3.根據(jù)權(quán)利要求2所述的針對(duì)可執(zhí)行程序的分布式云計(jì)算系統(tǒng),其特征在于,當(dāng)計(jì)算服務(wù)器出現(xiàn)執(zhí)行任務(wù)出錯(cuò)時(shí),如果出現(xiàn)的出錯(cuò)是可恢復(fù)的,則調(diào)度服務(wù)器重置該任務(wù),并分配該任務(wù)至其他空閑的計(jì)算服務(wù)器執(zhí)行該任務(wù);如果出現(xiàn)的出錯(cuò)是不可恢復(fù)的,則所述計(jì)算服務(wù)器停止執(zhí)行該任務(wù),所述調(diào)度服務(wù)器則停止分配該任務(wù);當(dāng)計(jì)算服務(wù)器執(zhí)行任務(wù)的時(shí)間超過(guò)閾值,調(diào)度服務(wù)器將重置該任務(wù),并分配該任務(wù)至其他空閑的計(jì)算服務(wù)器;如果調(diào)度服務(wù)器監(jiān)控得到計(jì)算服務(wù)器出現(xiàn)問(wèn)題無(wú)法執(zhí)行分配的任務(wù),則重置該任務(wù),并分配該任務(wù)至其他空閑的計(jì)算服務(wù)器。
4.針對(duì)可執(zhí)行程序的分布式云計(jì)算方法,其特征在于,包括如下步驟: 41)調(diào)度服務(wù)器接受用戶創(chuàng)建工程的請(qǐng)求,創(chuàng)建出新的工程和與該工程關(guān)聯(lián)的若干個(gè)任務(wù),并設(shè)定該工程以及任務(wù)的優(yōu)先級(jí),從而得到任務(wù)及工程的排隊(duì)執(zhí)行列表; 42)調(diào)度服務(wù)器根據(jù)計(jì)算服務(wù)器的請(qǐng)求,根據(jù)優(yōu)先級(jí)從調(diào)度服務(wù)器領(lǐng)取任務(wù),此時(shí)調(diào)度服務(wù)器將該被領(lǐng)取的任務(wù)標(biāo)記為進(jìn)行中; 43)計(jì)算服務(wù)器從云存儲(chǔ)服務(wù)器上獲取執(zhí)行此任務(wù)需要的資源文件; 44)計(jì)算服務(wù)器運(yùn)行配置的可執(zhí)行程序,執(zhí)行此任務(wù); 45)完成此任務(wù)后,計(jì)算服務(wù)器向調(diào)度服務(wù)器請(qǐng)求將任務(wù)狀態(tài)標(biāo)為完成中,請(qǐng)求被調(diào)度服務(wù)器接受則上傳運(yùn)行結(jié)果到云存儲(chǔ)服務(wù)器; 46)運(yùn)行結(jié)果上傳完畢,任務(wù)狀態(tài)標(biāo)為完成。
5.根據(jù)權(quán)利要求4所述的針對(duì)可執(zhí)行程序的分布式云計(jì)算方法,其特征在于,所述步驟41)中的優(yōu)先級(jí)可進(jìn)行干預(yù),調(diào)度服務(wù)器可根據(jù)優(yōu)先級(jí)的高低,插入或者暫緩排隊(duì)執(zhí)行列表中的任務(wù)或者工程。
6.根據(jù)權(quán)利要求5所述的針對(duì)可執(zhí)行程序的分布式云計(jì)算方法,其特征在于,在所述步驟45)中,為了防止同一個(gè)任務(wù)被多次提交,只有當(dāng)任務(wù)的狀態(tài)不為完成或不為完成中時(shí),調(diào)度服務(wù)器才接受把狀態(tài)標(biāo)為完成中的請(qǐng)求。
7.根據(jù)權(quán)利要求6所述的針對(duì)可執(zhí)行程序的分布式云計(jì)算方法,其特征在于,當(dāng)計(jì)算服務(wù)器執(zhí)行任務(wù)時(shí)發(fā)生不可恢復(fù)的錯(cuò)誤,調(diào)度服務(wù)器將任務(wù)的狀態(tài)會(huì)被直接標(biāo)為失敗,此任務(wù)將不再被執(zhí)行;而當(dāng)計(jì)算服務(wù)器執(zhí)行任務(wù)時(shí)發(fā)生可恢復(fù)錯(cuò)誤,則調(diào)度服務(wù)器將任務(wù)重置為開(kāi)始,此任務(wù)將分配給其他的計(jì)算服務(wù)器執(zhí)行。
8.根據(jù)權(quán)利要求7所述的針對(duì)可執(zhí)行程序 的分布式云計(jì)算方法,其特征在于,如果計(jì)算服務(wù)器執(zhí)行任務(wù)時(shí),一個(gè)任務(wù)長(zhǎng)時(shí)間處于進(jìn)行中的狀態(tài)且處理該任務(wù)的計(jì)算服務(wù)器沒(méi)有向調(diào)度服務(wù)器報(bào)告,則該任務(wù)被重置成開(kāi)始,調(diào)度服務(wù)器重新根據(jù)優(yōu)先級(jí)的高低進(jìn)行排隊(duì)執(zhí)行列表的排列,并讓其他計(jì)算服務(wù)器去執(zhí)行此任務(wù)。
9.根據(jù)權(quán)利要求8所述的針對(duì)可執(zhí)行程序的分布式云計(jì)算方法,其特征在于,當(dāng)計(jì)算服務(wù)器執(zhí)行任務(wù),調(diào)度服務(wù)器將該工程的狀態(tài)改變?yōu)檫M(jìn)行中,當(dāng)工程在進(jìn)行中狀態(tài)時(shí),可以人工停止工程,則該工程中的任務(wù)將不再被調(diào)度服務(wù)器安排分配執(zhí)行;也可以恢復(fù)已停止的項(xiàng)目,讓時(shí)調(diào)度服務(wù)器根據(jù)優(yōu)先級(jí)重新安排排隊(duì)執(zhí)行列表,此項(xiàng)目中的任務(wù)繼續(xù)執(zhí)行;當(dāng)工程內(nèi)部所有任務(wù)都執(zhí)行完畢后,如果全部成功,則工程的狀態(tài)會(huì)被設(shè)為完成;如果有失敗的任務(wù),那么這個(gè)工程的狀態(tài)就會(huì)被設(shè)`置為出錯(cuò)。
【文檔編號(hào)】H04L29/08GK103823719SQ201410068059
【公開(kāi)日】2014年5月28日 申請(qǐng)日期:2014年2月26日 優(yōu)先權(quán)日:2014年2月26日
【發(fā)明者】陸兵斌, 劉嘉睿, 陳蓉艷, 蔣啟翔 申請(qǐng)人:杭州群核信息技術(shù)有限公司