此申請(qǐng)案為非臨時(shí)的且依據(jù)35U.S.C.§119(e)要求標(biāo)題為“分布式處理的容錯(cuò)通信策略(Fault-Tolerant Communication Strategies for Distributed Processing)”的美國(guó)臨時(shí)申請(qǐng)案第62/019,426號(hào)的益處和優(yōu)先權(quán)。所述美國(guó)臨時(shí)申請(qǐng)案申請(qǐng)于2014年7月1日且出于所有目的以引用的方式并入本文中。
技術(shù)領(lǐng)域
本發(fā)明涉及用于容許通信網(wǎng)格中的錯(cuò)誤的計(jì)算機(jī)技術(shù)。具體來說,提供各種技術(shù)和系統(tǒng)以用于檢測(cè)通信網(wǎng)格中計(jì)算機(jī)節(jié)點(diǎn)的網(wǎng)絡(luò)中的節(jié)點(diǎn)的錯(cuò)誤或失效;調(diào)整所述網(wǎng)格以避免網(wǎng)格失效;以及基于所述失效采取行動(dòng)。
背景技術(shù):
在包含執(zhí)行作業(yè)的計(jì)算機(jī)節(jié)點(diǎn)的網(wǎng)絡(luò)的通信網(wǎng)格中,節(jié)點(diǎn)可失效。節(jié)點(diǎn)的失效可引起整個(gè)網(wǎng)格的失效,并且因此整個(gè)作業(yè)的失效,從而從起點(diǎn)重新開始作業(yè)。對(duì)于包含較大數(shù)據(jù)集或可能花費(fèi)長(zhǎng)時(shí)間段完成的作業(yè),此失效可尤其難以解決。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明涉及用于容許通信網(wǎng)格中的錯(cuò)誤的計(jì)算機(jī)技術(shù)。具體來說,提供各種技術(shù)和系統(tǒng)以用于檢測(cè)通信網(wǎng)格中計(jì)算機(jī)節(jié)點(diǎn)的網(wǎng)絡(luò)中的節(jié)點(diǎn)的錯(cuò)誤或失效;調(diào)整所述網(wǎng)格以避免網(wǎng)格失效;以及基于所述失效采取行動(dòng)。在實(shí)施例中,計(jì)算機(jī)程序產(chǎn)品可有形地體現(xiàn)在非暫時(shí)性機(jī)器可讀存儲(chǔ)媒體中。非暫時(shí)性機(jī)器可讀存儲(chǔ)媒體可包含經(jīng)配置以使得數(shù)據(jù)處理設(shè)備進(jìn)行以下操作的指令:在通信網(wǎng)格上連接到主要控制節(jié)點(diǎn)和工作者節(jié)點(diǎn)的備份控制節(jié)點(diǎn)處接收網(wǎng)格狀態(tài)信息,所述網(wǎng)格狀態(tài)信息包含主要控制節(jié)點(diǎn)的項(xiàng)目狀態(tài)或工作者節(jié)點(diǎn)的項(xiàng)目狀態(tài),其中主要控制節(jié)點(diǎn)的項(xiàng)目狀態(tài)和工作者節(jié)點(diǎn)的項(xiàng)目狀態(tài)包含正由通信網(wǎng)格中的主要節(jié)點(diǎn)和工作者節(jié)點(diǎn)執(zhí)行的項(xiàng)目的一或多個(gè)部分的狀態(tài);將網(wǎng)格狀態(tài)信息存儲(chǔ)在備份控制節(jié)點(diǎn)內(nèi);接收包含主要控制節(jié)點(diǎn)已失效的指示的失效通信;在接收到失效通信時(shí)基于失效通信將備份控制節(jié)點(diǎn)指定為新主要控制節(jié)點(diǎn);基于主要控制節(jié)點(diǎn)已失效的所述指示而接收經(jīng)更新的網(wǎng)格狀態(tài)信息,其中經(jīng)更新的網(wǎng)格狀態(tài)信息包含主要控制節(jié)點(diǎn)的經(jīng)更新的項(xiàng)目狀態(tài)或工作者節(jié)點(diǎn)的經(jīng)更新的項(xiàng)目狀態(tài);以及基于經(jīng)更新的網(wǎng)格狀態(tài)信息傳輸指令集,其中指令集包含使工作者節(jié)點(diǎn)在主要控制節(jié)點(diǎn)的失效之后繼續(xù)致力于所述項(xiàng)目的指令。
在一個(gè)方面中,計(jì)算機(jī)程序產(chǎn)品可進(jìn)一步包括經(jīng)配置以使得數(shù)據(jù)處理設(shè)備在備份控制節(jié)點(diǎn)處接收包含備份控制節(jié)點(diǎn)為新主要控制節(jié)點(diǎn)的指示的主要節(jié)點(diǎn)通信的指令。在另一方面中,在接收到失效通信時(shí),備份控制節(jié)點(diǎn)基于備份控制節(jié)點(diǎn)的唯一標(biāo)識(shí)符或級(jí)別確定是否應(yīng)將備份節(jié)點(diǎn)指定為新主要控制節(jié)點(diǎn);和分配新主要控制節(jié)點(diǎn)。在另一方面中,在接收到失效通信時(shí),備份控制節(jié)點(diǎn)確定備份控制節(jié)點(diǎn)為通信網(wǎng)格上的唯一備份控制節(jié)點(diǎn)。在另一方面中,主要控制節(jié)點(diǎn)控制每一工作者節(jié)點(diǎn)負(fù)責(zé)執(zhí)行的項(xiàng)目的各部分。在另一方面中,給通信網(wǎng)格上的每一控制節(jié)點(diǎn)和工作者節(jié)點(diǎn)分配所存儲(chǔ)的唯一標(biāo)識(shí)符,其中節(jié)點(diǎn)的唯一標(biāo)識(shí)符指示在通信網(wǎng)格內(nèi)節(jié)點(diǎn)的層級(jí),且其中每一控制節(jié)點(diǎn)和每一工作者節(jié)點(diǎn)存儲(chǔ)通信網(wǎng)格上的所有其它控制節(jié)點(diǎn)和工作者節(jié)點(diǎn)的唯一標(biāo)識(shí)符。在另一方面中,工作者節(jié)點(diǎn)的工作者節(jié)點(diǎn)執(zhí)行項(xiàng)目的不同部分。在另一方面中,網(wǎng)格狀態(tài)信息包含指示在主要控制節(jié)點(diǎn)的失效之前項(xiàng)目的進(jìn)展階段的項(xiàng)目檢查點(diǎn)(或進(jìn)展檢查點(diǎn))。在另一方面中,基于經(jīng)更新的網(wǎng)格狀態(tài)信息傳輸指令集包含傳輸來自項(xiàng)目檢查點(diǎn)的指示在主要控制節(jié)點(diǎn)的失效之前所述項(xiàng)目的進(jìn)展階段的狀態(tài)。在另一方面中,計(jì)算機(jī)程序產(chǎn)品可進(jìn)一步包括經(jīng)配置以使得數(shù)據(jù)處理設(shè)備進(jìn)行以下操作的指令:確定主要控制節(jié)點(diǎn)已失效,其中確定主要控制節(jié)點(diǎn)已失效包含確定備份控制節(jié)點(diǎn)未接收到預(yù)期檢測(cè)信號(hào)通信,其中檢測(cè)信號(hào)通信指示主要控制節(jié)點(diǎn)為可操作的。在另一方面中,確定主要控制節(jié)點(diǎn)已失效包含確定備份控制節(jié)點(diǎn)在預(yù)定時(shí)間段之后未從主要控制節(jié)點(diǎn)接收到檢測(cè)信號(hào)通信。
在另一實(shí)施例中,計(jì)算裝置可包括一或多個(gè)處理器,和上面存儲(chǔ)有指令的存儲(chǔ)器,所述指令由一或多個(gè)處理器執(zhí)行。處理器可使得計(jì)算裝置執(zhí)行包含以下各者的操作:在通信網(wǎng)格上連接到主要控制節(jié)點(diǎn)和工作者節(jié)點(diǎn)的備份控制節(jié)點(diǎn)處接收網(wǎng)格狀態(tài)信息,所述網(wǎng)格狀態(tài)信息包含主要控制節(jié)點(diǎn)的項(xiàng)目狀態(tài)或工作者節(jié)點(diǎn)的項(xiàng)目狀態(tài),其中主要控制節(jié)點(diǎn)的項(xiàng)目狀態(tài)和工作者節(jié)點(diǎn)的項(xiàng)目狀態(tài)包含正由通信網(wǎng)格中的主要節(jié)點(diǎn)和工作者節(jié)點(diǎn)執(zhí)行的項(xiàng)目的一或多個(gè)部分的狀態(tài);將網(wǎng)格狀態(tài)信息存儲(chǔ)在備份控制節(jié)點(diǎn)內(nèi);接收包含主要控制節(jié)點(diǎn)已失效的指示的失效通信;在接收到失效通信時(shí)基于失效通信將備份控制節(jié)點(diǎn)指定為新主要控制節(jié)點(diǎn);基于主要控制節(jié)點(diǎn)已失效的所述指示而接收經(jīng)更新的網(wǎng)格狀態(tài)信息,其中經(jīng)更新的網(wǎng)格狀態(tài)信息包含主要控制節(jié)點(diǎn)的經(jīng)更新的項(xiàng)目狀態(tài)或工作者節(jié)點(diǎn)的經(jīng)更新的項(xiàng)目狀態(tài);以及基于經(jīng)更新的網(wǎng)格狀態(tài)信息傳輸指令集,其中所述指令集包含使工作者節(jié)點(diǎn)在主要控制節(jié)點(diǎn)失效之后繼續(xù)致力于所述項(xiàng)目的指令。
在一方面中,計(jì)算裝置可進(jìn)一步包括指令,所述指令在由一或多個(gè)處理器執(zhí)行時(shí)使得計(jì)算裝置執(zhí)行包含以下各者的操作:在備份控制節(jié)點(diǎn)處接收包含備份控制節(jié)點(diǎn)為新主要控制節(jié)點(diǎn)的指示的主要節(jié)點(diǎn)通信。在另一方面中,在接收到失效通信時(shí),備份控制節(jié)點(diǎn)基于備份控制節(jié)點(diǎn)的唯一標(biāo)識(shí)符或級(jí)別確定是否應(yīng)將備份節(jié)點(diǎn)指定為新主要控制節(jié)點(diǎn);和分配新主要控制節(jié)點(diǎn)。在另一方面中,在接收到失效通信時(shí),備份控制節(jié)點(diǎn)確定備份控制節(jié)點(diǎn)為通信網(wǎng)格上的唯一備份控制節(jié)點(diǎn)。在另一方面中,主要控制節(jié)點(diǎn)控制每一工作者節(jié)點(diǎn)負(fù)責(zé)執(zhí)行的項(xiàng)目的各部分。在另一方面中,給通信網(wǎng)格上的每一控制節(jié)點(diǎn)和工作者節(jié)點(diǎn)分配所存儲(chǔ)的唯一標(biāo)識(shí)符,其中節(jié)點(diǎn)的唯一標(biāo)識(shí)符指示在通信網(wǎng)格內(nèi)節(jié)點(diǎn)的層級(jí),且其中每一控制節(jié)點(diǎn)和每一工作者節(jié)點(diǎn)存儲(chǔ)通信網(wǎng)格上的所有其它控制節(jié)點(diǎn)和工作者節(jié)點(diǎn)的唯一標(biāo)識(shí)符。在另一方面中,工作者節(jié)點(diǎn)的工作者節(jié)點(diǎn)執(zhí)行項(xiàng)目的不同部分。在另一方面中,網(wǎng)格狀態(tài)信息包含指示在主要控制節(jié)點(diǎn)失效之前項(xiàng)目的進(jìn)展階段的項(xiàng)目檢查點(diǎn)。在另一方面中,基于經(jīng)更新的網(wǎng)格狀態(tài)信息傳輸指令集包含傳輸來自項(xiàng)目檢查點(diǎn)的指示在主要控制節(jié)點(diǎn)的失效之前所述項(xiàng)目的進(jìn)展階段的狀態(tài)。在另一方面中,計(jì)算裝置可進(jìn)一步包括指令,所述指令在由一或多個(gè)處理器執(zhí)行時(shí)使得計(jì)算裝置執(zhí)行包含以下各者的操作:確定主要控制節(jié)點(diǎn)已失效,其中確定主要控制節(jié)點(diǎn)已失效包含確定備份控制節(jié)點(diǎn)未接收到預(yù)期檢測(cè)信號(hào)通信,其中檢測(cè)信號(hào)通信指示主要控制節(jié)點(diǎn)為可操作的。在另一方面中,確定主要控制節(jié)點(diǎn)已失效包含確定備份控制節(jié)點(diǎn)在預(yù)定時(shí)間段之后未從主要控制節(jié)點(diǎn)接收到檢測(cè)信號(hào)通信。
在另一實(shí)施例中,計(jì)算機(jī)實(shí)施方法可包括:在通信網(wǎng)格上連接到主要控制節(jié)點(diǎn)和工作者節(jié)點(diǎn)的備份控制節(jié)點(diǎn)處接收網(wǎng)格狀態(tài)信息,所述網(wǎng)格狀態(tài)信息包含主要控制節(jié)點(diǎn)的項(xiàng)目狀態(tài)或工作者節(jié)點(diǎn)的項(xiàng)目狀態(tài),其中主要控制節(jié)點(diǎn)的項(xiàng)目狀態(tài)和工作者節(jié)點(diǎn)的項(xiàng)目狀態(tài)包含正由通信網(wǎng)格中的主要節(jié)點(diǎn)和工作者節(jié)點(diǎn)執(zhí)行的項(xiàng)目的一或多個(gè)部分的狀態(tài);將網(wǎng)格狀態(tài)信息存儲(chǔ)在備份控制節(jié)點(diǎn)內(nèi);接收包含主要控制節(jié)點(diǎn)已失效的指示的失效通信;在接收到失效通信時(shí)基于失效通信將備份控制節(jié)點(diǎn)指定為新主要控制節(jié)點(diǎn);基于主要控制節(jié)點(diǎn)已失效的所述指示接收經(jīng)更新的網(wǎng)格狀態(tài)信息,其中經(jīng)更新的網(wǎng)格狀態(tài)信息包含主要控制節(jié)點(diǎn)的經(jīng)更新的項(xiàng)目狀態(tài)或工作者節(jié)點(diǎn)的經(jīng)更新的項(xiàng)目狀態(tài);以及基于經(jīng)更新的網(wǎng)格狀態(tài)信息傳輸指令集,其中所述指令集包含使工作者節(jié)點(diǎn)在主要控制節(jié)點(diǎn)失效之后繼續(xù)致力于所述項(xiàng)目的指令。
在一方面中,所述方法可進(jìn)一步包括在備份控制節(jié)點(diǎn)處接收包含備份控制節(jié)點(diǎn)為新主要控制節(jié)點(diǎn)的指示的主要節(jié)點(diǎn)通信。在另一方面中,在接收到失效通信時(shí),備份控制節(jié)點(diǎn)基于備份控制節(jié)點(diǎn)的唯一標(biāo)識(shí)符或級(jí)別確定是否應(yīng)將備份節(jié)點(diǎn)指定為新主要控制節(jié)點(diǎn);和分配新主要控制節(jié)點(diǎn)。在另一方面中,在接收到失效通信時(shí),備份控制節(jié)點(diǎn)確定備份控制節(jié)點(diǎn)為通信網(wǎng)格上的唯一備份控制節(jié)點(diǎn)。在另一方面中,主要控制節(jié)點(diǎn)控制每一工作者節(jié)點(diǎn)負(fù)責(zé)執(zhí)行的項(xiàng)目的各部分。在另一方面中,給通信網(wǎng)格上的每一控制節(jié)點(diǎn)和工作者節(jié)點(diǎn)分配所存儲(chǔ)的唯一標(biāo)識(shí)符,其中節(jié)點(diǎn)的唯一標(biāo)識(shí)符指示在通信網(wǎng)格內(nèi)節(jié)點(diǎn)的層級(jí),且其中每一控制節(jié)點(diǎn)和每一工作者節(jié)點(diǎn)存儲(chǔ)通信網(wǎng)格上的所有其它控制節(jié)點(diǎn)和工作者節(jié)點(diǎn)的唯一標(biāo)識(shí)符。在另一方面中,工作者節(jié)點(diǎn)的工作者節(jié)點(diǎn)執(zhí)行項(xiàng)目的不同部分。在另一方面中,網(wǎng)格狀態(tài)信息包含指示在主要控制節(jié)點(diǎn)失效之前項(xiàng)目的進(jìn)展階段的項(xiàng)目檢查點(diǎn)。在另一方面中,基于經(jīng)更新的網(wǎng)格狀態(tài)信息傳輸指令集包含傳輸來自項(xiàng)目檢查點(diǎn)的指示在主要控制節(jié)點(diǎn)的失效之前所述項(xiàng)目的進(jìn)展階段的狀態(tài)。在另一方面中,所述方法可進(jìn)一步包括確定主要控制節(jié)點(diǎn)已失效,其中確定主要控制節(jié)點(diǎn)已失效包含確定備份控制節(jié)點(diǎn)未接收到預(yù)期檢測(cè)信號(hào)通信,其中檢測(cè)信號(hào)通信指示主要控制節(jié)點(diǎn)為可操作的。在另一方面中,確定主要控制節(jié)點(diǎn)已失效包含確定備份控制節(jié)點(diǎn)在預(yù)定時(shí)間段之后未從主要控制節(jié)點(diǎn)接收到檢測(cè)信號(hào)通信。
在另一實(shí)施例中,計(jì)算機(jī)程序產(chǎn)品可有形地體現(xiàn)在非暫時(shí)性機(jī)器可讀存儲(chǔ)媒體中。非暫時(shí)性機(jī)器可讀存儲(chǔ)媒體可包含經(jīng)配置以使得數(shù)據(jù)處理設(shè)備進(jìn)行以下操作的指令:從通信網(wǎng)格上連接到一或多個(gè)工作者節(jié)點(diǎn)的主要控制節(jié)點(diǎn)傳輸與正由一或多個(gè)工作者節(jié)點(diǎn)執(zhí)行的項(xiàng)目相關(guān)的工作者指令;產(chǎn)生通信網(wǎng)格的快照,其中通信網(wǎng)格的快照包含一或多個(gè)工作者節(jié)點(diǎn)中的每一者的項(xiàng)目狀態(tài),其中工作者節(jié)點(diǎn)的項(xiàng)目狀態(tài)包含正由通信網(wǎng)格中的工作者節(jié)點(diǎn)執(zhí)行的項(xiàng)目的一部分的狀態(tài);確定一或多個(gè)工作者節(jié)點(diǎn)中的失效工作者節(jié)點(diǎn)已失效,其中一或多個(gè)工作者節(jié)點(diǎn)在失效時(shí)間處已失效;使用通信網(wǎng)格的快照識(shí)別失效工作者節(jié)點(diǎn)的項(xiàng)目狀態(tài),其中失效工作者節(jié)點(diǎn)的項(xiàng)目狀態(tài)包含正由失效工作者節(jié)點(diǎn)在失效時(shí)間處執(zhí)行的項(xiàng)目的一部分的狀態(tài);以及傳輸經(jīng)更新的工作者指令,其中經(jīng)更新的工作者指令包含失效工作者節(jié)點(diǎn)的項(xiàng)目狀態(tài)和與正由一或多個(gè)工作者節(jié)點(diǎn)執(zhí)行的項(xiàng)目相關(guān)的經(jīng)更新的指令,其中經(jīng)更新的工作者指令促進(jìn)正由失效工作者節(jié)點(diǎn)執(zhí)行的所述項(xiàng)目的所述部分的執(zhí)行。
在一方面中,計(jì)算機(jī)程序產(chǎn)品可進(jìn)一步包括經(jīng)配置以使得數(shù)據(jù)處理設(shè)備識(shí)別一或多個(gè)工作者節(jié)點(diǎn)中的起作用工作者節(jié)點(diǎn)以完成正由失效工作者節(jié)點(diǎn)執(zhí)行的所述項(xiàng)目的所述部分的指令。在另一方面中,給通信網(wǎng)格上的每一工作者節(jié)點(diǎn)分配唯一標(biāo)識(shí)符,其中工作者節(jié)點(diǎn)的唯一標(biāo)識(shí)符指示在通信網(wǎng)格內(nèi)與每一唯一標(biāo)識(shí)符相關(guān)聯(lián)的工作者節(jié)點(diǎn)的層級(jí)。在另一方面中,經(jīng)更新的工作者指令促進(jìn)一或多個(gè)工作者節(jié)點(diǎn)中的起作用工作者節(jié)點(diǎn)開始執(zhí)行正由失效工作者節(jié)點(diǎn)執(zhí)行的所述項(xiàng)目的所述部分。在另一方面中,計(jì)算機(jī)程序產(chǎn)品可進(jìn)一步包括經(jīng)配置以使得數(shù)據(jù)處理設(shè)備確定失效工作者節(jié)點(diǎn)為通信網(wǎng)格上的唯一工作者節(jié)點(diǎn)以及將新工作者節(jié)點(diǎn)添加到通信網(wǎng)格的指令。在另一方面中,主要控制節(jié)點(diǎn)管理每一工作者節(jié)點(diǎn)負(fù)責(zé)執(zhí)行的項(xiàng)目的各部分的分布。在另一方面中,確定一或多個(gè)工作者節(jié)點(diǎn)中的失效工作者節(jié)點(diǎn)已失效包含確定主要控制節(jié)點(diǎn)在傳輸與正由一或多個(gè)工作者節(jié)點(diǎn)執(zhí)行的所述項(xiàng)目相關(guān)的工作者指令之后未接收到檢測(cè)信號(hào)通信。
在另一實(shí)施例中,計(jì)算裝置可包括一或多個(gè)處理器,和上面存儲(chǔ)有指令的存儲(chǔ)器,所述指令由一或多個(gè)處理器執(zhí)行。處理器可使得計(jì)算裝置執(zhí)行包含以下各者的操作:從通信網(wǎng)格上連接到一或多個(gè)工作者節(jié)點(diǎn)的主要控制節(jié)點(diǎn)傳輸與正由一或多個(gè)工作者節(jié)點(diǎn)執(zhí)行的項(xiàng)目相關(guān)的工作者指令;產(chǎn)生通信網(wǎng)格的快照,其中通信網(wǎng)格的快照包含一或多個(gè)工作者節(jié)點(diǎn)中的每一者的項(xiàng)目狀態(tài),其中工作者節(jié)點(diǎn)的項(xiàng)目狀態(tài)包含正由通信網(wǎng)格中的工作者節(jié)點(diǎn)執(zhí)行的項(xiàng)目的一部分的狀態(tài);確定一或多個(gè)工作者節(jié)點(diǎn)中的失效工作者節(jié)點(diǎn)已失效,其中一或多個(gè)工作者節(jié)點(diǎn)在失效時(shí)間處已失效;使用通信網(wǎng)格的快照識(shí)別失效工作者節(jié)點(diǎn)的項(xiàng)目狀態(tài),其中失效工作者節(jié)點(diǎn)的項(xiàng)目狀態(tài)包含正由失效工作者節(jié)點(diǎn)在失效時(shí)間處執(zhí)行的項(xiàng)目的一部分的狀態(tài);以及傳輸經(jīng)更新的工作者指令,其中經(jīng)更新的工作者指令包含失效工作者節(jié)點(diǎn)的項(xiàng)目狀態(tài)和與正由一或多個(gè)工作者節(jié)點(diǎn)執(zhí)行的項(xiàng)目相關(guān)的經(jīng)更新的指令,其中經(jīng)更新的工作者指令促進(jìn)正由失效工作者節(jié)點(diǎn)執(zhí)行的所述項(xiàng)目的所述部分的執(zhí)行。
在一方面中,計(jì)算裝置可進(jìn)一步包括指令,所述指令在由一或多個(gè)處理器執(zhí)行時(shí)使得計(jì)算裝置執(zhí)行包含以下各者的操作:識(shí)別一或多個(gè)工作者節(jié)點(diǎn)中的起作用工作者節(jié)點(diǎn)以完成正由失效工作者節(jié)點(diǎn)執(zhí)行的所述項(xiàng)目的所述部分。在另一方面中,給通信網(wǎng)格上的每一工作者節(jié)點(diǎn)分配唯一標(biāo)識(shí)符,其中工作者節(jié)點(diǎn)的唯一標(biāo)識(shí)符指示在通信網(wǎng)格內(nèi)與每一唯一標(biāo)識(shí)符相關(guān)聯(lián)的工作者節(jié)點(diǎn)的層級(jí)。在另一方面中,經(jīng)更新的工作者指令促進(jìn)一或多個(gè)工作者節(jié)點(diǎn)中的起作用工作者節(jié)點(diǎn)開始執(zhí)行正由失效工作者節(jié)點(diǎn)執(zhí)行的所述項(xiàng)目的所述部分。在另一方面中,計(jì)算裝置可進(jìn)一步包括指令,所述指令在由一或多個(gè)處理器執(zhí)行時(shí)使得計(jì)算裝置執(zhí)行包含以下各者的操作:確定失效工作者節(jié)點(diǎn)為通信網(wǎng)格上的唯一工作者節(jié)點(diǎn)和將新工作者節(jié)點(diǎn)添加到通信網(wǎng)格。在另一方面中,主要控制節(jié)點(diǎn)管理每一工作者節(jié)點(diǎn)負(fù)責(zé)執(zhí)行的項(xiàng)目的各部分的分布。在另一方面中,確定一或多個(gè)工作者節(jié)點(diǎn)中的失效工作者節(jié)點(diǎn)已失效包含確定主要控制節(jié)點(diǎn)在傳輸與正由一或多個(gè)工作者節(jié)點(diǎn)執(zhí)行的所述項(xiàng)目相關(guān)的工作者指令之后未接收到檢測(cè)信號(hào)通信。
在另一實(shí)施例中,計(jì)算機(jī)實(shí)施方法可包括:從通信網(wǎng)格上連接到一或多個(gè)工作者節(jié)點(diǎn)的主要控制節(jié)點(diǎn)傳輸與正由一或多個(gè)工作者節(jié)點(diǎn)執(zhí)行的項(xiàng)目相關(guān)的工作者指令;產(chǎn)生通信網(wǎng)格的快照,其中通信網(wǎng)格的快照包含一或多個(gè)工作者節(jié)點(diǎn)中的每一者的項(xiàng)目狀態(tài),其中工作者節(jié)點(diǎn)的項(xiàng)目狀態(tài)包含正由通信網(wǎng)格中的工作者節(jié)點(diǎn)執(zhí)行的項(xiàng)目的一部分的狀態(tài);確定一或多個(gè)工作者節(jié)點(diǎn)中的失效工作者節(jié)點(diǎn)已失效,其中一或多個(gè)工作者節(jié)點(diǎn)在失效時(shí)間處已失效;使用通信網(wǎng)格的快照識(shí)別失效工作者節(jié)點(diǎn)的項(xiàng)目狀態(tài),其中失效工作者節(jié)點(diǎn)的項(xiàng)目狀態(tài)包含正由失效工作者節(jié)點(diǎn)在失效時(shí)間處執(zhí)行的項(xiàng)目的一部分的狀態(tài);以及傳輸經(jīng)更新的工作者指令,其中經(jīng)更新的工作者指令包含失效工作者節(jié)點(diǎn)的項(xiàng)目狀態(tài)和與正由一或多個(gè)工作者節(jié)點(diǎn)執(zhí)行的項(xiàng)目相關(guān)的經(jīng)更新的指令,其中經(jīng)更新的工作者指令促進(jìn)正由失效工作者節(jié)點(diǎn)執(zhí)行的所述項(xiàng)目的所述部分的執(zhí)行。
在一方面中,所述方法可進(jìn)一步包括識(shí)別一或多個(gè)工作者節(jié)點(diǎn)中的起作用工作者節(jié)點(diǎn)以完成正由失效工作者節(jié)點(diǎn)執(zhí)行的所述項(xiàng)目的所述部分。在另一方面中,給通信網(wǎng)格上的每一工作者節(jié)點(diǎn)分配唯一標(biāo)識(shí)符,其中工作者節(jié)點(diǎn)的唯一標(biāo)識(shí)符指示在通信網(wǎng)格內(nèi)與每一唯一標(biāo)識(shí)符相關(guān)聯(lián)的工作者節(jié)點(diǎn)的層級(jí)。在另一方面中,經(jīng)更新的工作者指令促進(jìn)一或多個(gè)工作者節(jié)點(diǎn)中的起作用工作者節(jié)點(diǎn)開始執(zhí)行正由失效工作者節(jié)點(diǎn)執(zhí)行的所述項(xiàng)目的所述部分。在另一方面中,所述方法可進(jìn)一步包括確定失效工作者節(jié)點(diǎn)為通信網(wǎng)格上的唯一工作者節(jié)點(diǎn)和將新工作者節(jié)點(diǎn)添加到通信網(wǎng)格。在另一方面中,主要控制節(jié)點(diǎn)管理每一工作者節(jié)點(diǎn)負(fù)責(zé)執(zhí)行的項(xiàng)目的各部分的分布。在另一方面中,確定一或多個(gè)工作者節(jié)點(diǎn)中的失效工作者節(jié)點(diǎn)已失效包含確定主要控制節(jié)點(diǎn)在傳輸與正由一或多個(gè)工作者節(jié)點(diǎn)執(zhí)行的所述項(xiàng)目相關(guān)的工作者指令之后未接收到檢測(cè)信號(hào)通信。
本發(fā)明內(nèi)容并不意圖識(shí)別所要求的標(biāo)的物的關(guān)鍵特征或基本特征,也并非意圖單獨(dú)用于確定所要求的標(biāo)的物的范圍。標(biāo)的物應(yīng)參考此專利的整個(gè)說明書的適當(dāng)部分、任何或所有圖式以及每一權(quán)利要求來理解。
在參考以下說明書、權(quán)利要求書以及附圖之后,前述內(nèi)容連同其它特征和實(shí)施例將變得更顯而易見。
附圖說明
圖1說明根據(jù)本發(fā)明技術(shù)的實(shí)施例的提供對(duì)通信網(wǎng)格的硬件和軟件組件的一般化說明的框圖總線的實(shí)例。
圖2說明根據(jù)本發(fā)明技術(shù)的實(shí)施例的包含控制節(jié)點(diǎn)和一或多個(gè)工作者節(jié)點(diǎn)的通信網(wǎng)格的實(shí)例。
圖3說明根據(jù)本發(fā)明技術(shù)的實(shí)施例的包含兩個(gè)控制節(jié)點(diǎn)和一或多個(gè)工作者節(jié)點(diǎn)的通信網(wǎng)格的實(shí)例。
圖4說明根據(jù)本發(fā)明技術(shù)的實(shí)施例的包含三個(gè)控制節(jié)點(diǎn)和一或多個(gè)工作者節(jié)點(diǎn)的通信網(wǎng)格的實(shí)例。
圖5說明根據(jù)本發(fā)明技術(shù)的實(shí)施例的包含兩個(gè)控制節(jié)點(diǎn)(其包含具有所存儲(chǔ)的網(wǎng)格快照的備份控制節(jié)點(diǎn))和一或多個(gè)工作者節(jié)點(diǎn)的通信網(wǎng)格的實(shí)例。
圖6說明根據(jù)本發(fā)明技術(shù)的實(shí)施例的包含兩個(gè)控制節(jié)點(diǎn)(其包含具有所存儲(chǔ)的網(wǎng)格快照的備份控制節(jié)點(diǎn))和一或多個(gè)工作者節(jié)點(diǎn)的通信網(wǎng)格的實(shí)例。
圖7說明根據(jù)本發(fā)明技術(shù)的實(shí)施例的包含兩個(gè)控制節(jié)點(diǎn)(其包含具有所存儲(chǔ)的網(wǎng)格快照的備份控制節(jié)點(diǎn))和一或多個(gè)工作者節(jié)點(diǎn)的通信網(wǎng)格的實(shí)例。
圖8說明根據(jù)本發(fā)明技術(shù)的實(shí)施例的包含新主要控制節(jié)點(diǎn)和前者備份控制節(jié)點(diǎn)以及一或多個(gè)工作者節(jié)點(diǎn)的通信網(wǎng)格的實(shí)例。
圖9說明根據(jù)本發(fā)明技術(shù)的實(shí)施例的包含主要控制節(jié)點(diǎn)和一或多個(gè)工作者節(jié)點(diǎn)的通信網(wǎng)格的實(shí)例。
圖10說明根據(jù)本發(fā)明技術(shù)的實(shí)施例的包含控制節(jié)點(diǎn)和一或多個(gè)工作者節(jié)點(diǎn)的通信網(wǎng)格的實(shí)例。
圖11說明根據(jù)本發(fā)明技術(shù)的實(shí)施例的包含控制節(jié)點(diǎn)和一或多個(gè)工作者節(jié)點(diǎn)的通信網(wǎng)格的實(shí)例。
圖12說明根據(jù)本發(fā)明技術(shù)的實(shí)施例的包含控制節(jié)點(diǎn)和一或多個(gè)工作者節(jié)點(diǎn)的通信網(wǎng)格的實(shí)例。
圖13為根據(jù)本發(fā)明技術(shù)的實(shí)施例的展示用于從通信網(wǎng)格中的主要控制節(jié)點(diǎn)失效恢復(fù)的實(shí)例過程的流程圖。
圖14為根據(jù)本發(fā)明技術(shù)的實(shí)施例的展示用于在工作者節(jié)點(diǎn)的失效之后從通信網(wǎng)格中的工作者節(jié)點(diǎn)失效恢復(fù)的實(shí)例過程的流程圖。
圖15為根據(jù)本發(fā)明技術(shù)的實(shí)施例的展示用于從通信網(wǎng)格中的控制節(jié)點(diǎn)失效恢復(fù)的實(shí)例過程的流程圖。
圖16為根據(jù)本發(fā)明技術(shù)的實(shí)施例的展示用于從網(wǎng)格服務(wù)器的角度驗(yàn)證節(jié)點(diǎn)之間的連接的實(shí)例過程的流程圖。
圖17為根據(jù)本發(fā)明技術(shù)的實(shí)施例的展示用于從網(wǎng)格客戶端的角度驗(yàn)證節(jié)點(diǎn)之間的連接的實(shí)例過程的流程圖。
圖18為根據(jù)本發(fā)明技術(shù)的實(shí)施例的展示將一系列節(jié)點(diǎn)(經(jīng)m到n編號(hào))分配為一節(jié)點(diǎn)(例如,控制節(jié)點(diǎn))的子節(jié)點(diǎn)的實(shí)例過程的流程圖。
圖19為根據(jù)本發(fā)明技術(shù)的實(shí)施例的展示主要控制節(jié)點(diǎn)在通信網(wǎng)格中的其它節(jié)點(diǎn)之間分布客戶端項(xiàng)目的工作的實(shí)例過程的流程圖。
圖20為根據(jù)本發(fā)明技術(shù)的實(shí)施例的展示備份控制節(jié)點(diǎn)接收經(jīng)更新的狀態(tài)信息和將其存儲(chǔ)在通信網(wǎng)格中的實(shí)例過程的流程圖。
圖21為根據(jù)本發(fā)明技術(shù)的實(shí)施例的展示工作者節(jié)點(diǎn)在通信網(wǎng)格計(jì)算期間處理作業(yè)的實(shí)例方法的流程圖。
圖22為根據(jù)本發(fā)明技術(shù)的實(shí)施例的展示用于在通信網(wǎng)格內(nèi)廣播數(shù)據(jù)的實(shí)例過程的流程圖。
圖23為根據(jù)本發(fā)明技術(shù)的實(shí)施例的展示用于通信網(wǎng)格內(nèi)的約簡(jiǎn)的實(shí)例過程的流程圖。
具體實(shí)施方式
在以下描述中,出于解釋的目的,闡述特定細(xì)節(jié)以便提供對(duì)本技術(shù)的實(shí)施例的透徹理解。然而,將顯而易見的是,可在無這些特定細(xì)節(jié)的情況下實(shí)踐各種實(shí)施例。圖式和描述并不意圖為限制性的。
以下描述僅提供實(shí)例實(shí)施例,且并不意圖限制本發(fā)明的范圍、適用性或配置。相反地,實(shí)例實(shí)施例的以下描述將為所屬領(lǐng)域的技術(shù)人員提供用于實(shí)施實(shí)例實(shí)施例的啟發(fā)性描述。應(yīng)理解,在不脫離如在所附權(quán)利要求書中所闡述的本技術(shù)的精神和范圍的情況下,可對(duì)元件的功能和布置進(jìn)行各種改變。
在以下描述中給出特定細(xì)節(jié)以提供對(duì)實(shí)施例的透徹理解。然而,所屬領(lǐng)域的一般技術(shù)人員應(yīng)理解,所述實(shí)施例可在沒有這些特定細(xì)節(jié)的情況下實(shí)踐。舉例來說,電路、系統(tǒng)、網(wǎng)絡(luò)、過程和其它組件可以框圖形式展示為組件以免以不必要的細(xì)節(jié)混淆實(shí)施例。在其它情況下,可以在沒有不必要的細(xì)節(jié)的情況下展示熟知的電路、過程、算法、結(jié)構(gòu)以及技術(shù)以免混淆實(shí)施例。
并且,應(yīng)注意,個(gè)別實(shí)施例可描述為經(jīng)描繪為流程圖、作業(yè)圖、數(shù)據(jù)作業(yè)圖、結(jié)構(gòu)圖或框圖的過程。盡管流程圖可將操作描述為順序過程,但是許多操作可并行或同時(shí)執(zhí)行。另外,操作的次序可以重新布置。過程在其操作完成時(shí)終止,但是可以具有不包含在圖中的額外步驟。過程可對(duì)應(yīng)于方法、函數(shù)、程序、子例程、子程序等。當(dāng)過程對(duì)應(yīng)于函數(shù)時(shí),過程的終止可對(duì)應(yīng)于函數(shù)返回到調(diào)用函數(shù)或主函數(shù)。
術(shù)語(yǔ)“機(jī)器可讀存儲(chǔ)媒體”或“計(jì)算機(jī)可讀存儲(chǔ)媒體”包含(但不限于)便攜式或非便攜式存儲(chǔ)裝置、光學(xué)存儲(chǔ)裝置和能夠存儲(chǔ)、含有或攜載指令和/或數(shù)據(jù)的各種其它媒體。機(jī)器可讀媒體可包含非暫時(shí)性媒體,其中可存儲(chǔ)數(shù)據(jù)。非暫時(shí)性媒體的實(shí)例可包含(但不限于)磁盤或磁帶、光學(xué)存儲(chǔ)媒體,例如光盤(CD)或數(shù)字通用光盤(DVD)、快閃存儲(chǔ)器、存儲(chǔ)器或存儲(chǔ)器裝置。計(jì)算機(jī)程序產(chǎn)品可包含可表示程序、函數(shù)、子程序、程序、例程、子例程、模塊、軟件包、類別的代碼和/或機(jī)器可執(zhí)行指令,或指令、數(shù)據(jù)結(jié)構(gòu)或程序語(yǔ)句的任何組合。代碼段可以通過傳遞和/或接收信息、數(shù)據(jù)、自變量、參數(shù)或存儲(chǔ)器內(nèi)容而耦合到另一代碼段或硬件電路。信息、自變量、參數(shù)、數(shù)據(jù)等可經(jīng)由包含存儲(chǔ)器共享、消息傳遞、令牌傳遞、網(wǎng)絡(luò)傳輸?shù)热魏魏线m的方式傳遞、轉(zhuǎn)發(fā)或傳輸。
此外,實(shí)施例可以由硬件、軟件、固件、中間件、微碼、硬件描述語(yǔ)言或其任何組合來實(shí)施。當(dāng)以軟件、固件、中間件或微碼實(shí)施時(shí),執(zhí)行必要任務(wù)的程序代碼或代碼段(例如,計(jì)算機(jī)程序產(chǎn)品)可存儲(chǔ)于機(jī)器可讀媒體中。處理器可以執(zhí)行必要任務(wù)。
一些圖中所描繪的系統(tǒng)可以各種配置提供。在一些實(shí)施例中,所述系統(tǒng)可經(jīng)配置為分布式系統(tǒng),其中所述系統(tǒng)的一或多個(gè)組件跨越云計(jì)算系統(tǒng)中的一或多個(gè)網(wǎng)絡(luò)分布。
圖1展示可用于含有和/或?qū)嵤┍景l(fā)明的系統(tǒng)實(shí)施例的程序指令的獨(dú)立計(jì)算機(jī)架構(gòu)100的實(shí)例硬件的框圖。更具體來說,架構(gòu)100可包含在通信網(wǎng)格的節(jié)點(diǎn)內(nèi),如在本文中進(jìn)一步參考圖2到23所描述??偩€152可充當(dāng)互連硬件的其它所說明的組件的信息高速公路。標(biāo)記為CPU(中央處理單元)的處理系統(tǒng)154(例如,一或多個(gè)計(jì)算機(jī)處理器)可執(zhí)行執(zhí)行程序所需的計(jì)算和邏輯操作。處理器可讀存儲(chǔ)媒體(例如,只讀存儲(chǔ)器(ROM)156和隨機(jī)存取存儲(chǔ)器(RAM)158)可與處理系統(tǒng)154通信且可含有一或多個(gè)編程指令。任選地,程序指令可存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)媒體上,例如磁盤、光盤、可記錄存儲(chǔ)器裝置、快閃存儲(chǔ)器或其它物理存儲(chǔ)媒體。還可經(jīng)由通信傳輸、數(shù)據(jù)流或經(jīng)調(diào)制載波傳達(dá)計(jì)算機(jī)指令。
磁盤控制器160將一或多個(gè)任選磁盤驅(qū)動(dòng)器介接到系統(tǒng)總線152。這些磁盤驅(qū)動(dòng)器可為外部或內(nèi)部軟盤驅(qū)動(dòng)器(例如162)、外部或內(nèi)部CD-ROM、CD-R、CD-RW或DVD驅(qū)動(dòng)器(例如164)或外部或內(nèi)部硬盤驅(qū)動(dòng)器166。如先前所指示,這些各種磁盤驅(qū)動(dòng)器和磁盤控制器為任選裝置。
元件管理器、實(shí)時(shí)數(shù)據(jù)緩沖器、輸送機(jī)、文件輸入處理器、數(shù)據(jù)庫(kù)索引共享接入存儲(chǔ)器載入器、參考數(shù)據(jù)緩沖器和數(shù)據(jù)管理器中的每一者可包含存儲(chǔ)于連接到磁盤控制器160的磁盤驅(qū)動(dòng)器、ROM 156和/或RAM 158中的一或多者中的軟件應(yīng)用程序。處理系統(tǒng)154可視需要接入每一組件。
顯示接口168可準(zhǔn)許來自總線156的信息以音頻、圖形或字母數(shù)字的格式顯示在顯示器170上。與外部裝置的通信可任選地使用各種通信端口178進(jìn)行。
除標(biāo)準(zhǔn)計(jì)算機(jī)類型的組件之外,硬件還可包含數(shù)據(jù)輸入裝置,例如鍵盤172;或其它輸入裝置174,例如麥克風(fēng)、遙控器、觸摸板、小鍵盤、觸控筆、運(yùn)動(dòng)和/或手勢(shì)傳感器、位置傳感器、照相機(jī)和/或攝像機(jī)、指示器、鼠標(biāo)及/或操縱桿。
本發(fā)明涉及用于容許通信網(wǎng)格中的故障的計(jì)算機(jī)技術(shù)。具體來說,提供各種技術(shù)和系統(tǒng)以用于在通信網(wǎng)格中檢測(cè)計(jì)算機(jī)節(jié)點(diǎn)的網(wǎng)絡(luò)中的節(jié)點(diǎn)的故障或失效;調(diào)整所述網(wǎng)格以避免網(wǎng)格失效;以及基于所述失效采取行動(dòng)。更具體來說,本文中所描述的方法和系統(tǒng)的實(shí)施例包含識(shí)別或檢測(cè)通信網(wǎng)格中的主要控制節(jié)點(diǎn)的失效;和使用網(wǎng)格狀態(tài)或檢查點(diǎn)信息以允許備份節(jié)點(diǎn)接替為主要控制節(jié)點(diǎn)。新主要控制節(jié)點(diǎn)可接著控制連接到其的工作者節(jié)點(diǎn)以完成由網(wǎng)格執(zhí)行的項(xiàng)目。替代實(shí)施例包含識(shí)別或檢測(cè)通信網(wǎng)格中的工作者節(jié)點(diǎn)的失效;和使用網(wǎng)格狀態(tài)或檢查點(diǎn)信息以允許另一工作者節(jié)點(diǎn)在控制節(jié)點(diǎn)的控制和監(jiān)督下接替由失效工作者節(jié)點(diǎn)執(zhí)行的工作。所述工作可在可操作工作者節(jié)點(diǎn)當(dāng)中重新分布。替代實(shí)施例包含使用閾值以確定在預(yù)定量的時(shí)間之后應(yīng)在何時(shí)證實(shí)或假設(shè)節(jié)點(diǎn)已失效。此確定可允許備份控制節(jié)點(diǎn)接替失效主要控制節(jié)點(diǎn)或允許控制節(jié)點(diǎn)將由失效工作者節(jié)點(diǎn)執(zhí)行的工作重新分布到另一工作者節(jié)點(diǎn)。通信網(wǎng)格內(nèi)的節(jié)點(diǎn)可能夠檢測(cè)層級(jí)或執(zhí)行用于確定哪些節(jié)點(diǎn)應(yīng)在失效之后采取行動(dòng)的其它方法。在本文中參考圖2到23描述本發(fā)明技術(shù)的此類實(shí)施例。
本文中所描述的各種通信網(wǎng)格被描述為包含一或多個(gè)控制節(jié)點(diǎn)(例如,主要控制節(jié)點(diǎn)、備份控制節(jié)點(diǎn)等)和一或多個(gè)工作者節(jié)點(diǎn)。舉例來說,節(jié)點(diǎn)可為計(jì)算裝置,例如計(jì)算機(jī);或不同類型的網(wǎng)絡(luò)或電子裝置,例如服務(wù)器或路由器??刂乒?jié)點(diǎn)可維持關(guān)于網(wǎng)格中的節(jié)點(diǎn)的狀態(tài)的知識(shí)(例如,網(wǎng)格狀態(tài)信息);接受來自客戶端的工作請(qǐng)求;跨越工作者節(jié)點(diǎn)細(xì)分工作(在最初和在工作者節(jié)點(diǎn)失效之后兩種情況下);協(xié)調(diào)工作者節(jié)點(diǎn);以及其它職責(zé)。工作者節(jié)點(diǎn)可接受來自控制節(jié)點(diǎn)的工作請(qǐng)求且為控制節(jié)點(diǎn)提供由工作者節(jié)點(diǎn)執(zhí)行的工作的結(jié)果。網(wǎng)格可從單個(gè)節(jié)點(diǎn)(例如,機(jī)器、計(jì)算機(jī)、服務(wù)器等)開始。此第一節(jié)點(diǎn)可經(jīng)分配為主要控制節(jié)點(diǎn)或可作為主要控制節(jié)點(diǎn)開始,主要控制節(jié)點(diǎn)將控制進(jìn)入網(wǎng)格的任何額外節(jié)點(diǎn)。
為了將另一節(jié)點(diǎn)或機(jī)器添加到網(wǎng)格,主要控制節(jié)點(diǎn)可例如打開一對(duì)監(jiān)聽套接字。套接字可出于與控制節(jié)點(diǎn)的工作相關(guān)的不同原因而使用。這些套接字中的第一者可用于接受來自客戶端的工作請(qǐng)求,且第二套接字可用于接受來自其它網(wǎng)格節(jié)點(diǎn)(例如,工作者節(jié)點(diǎn)或其它控制節(jié)點(diǎn))的連接??蔀橹饕刂乒?jié)點(diǎn)提供將參與到網(wǎng)格中的其它節(jié)點(diǎn)(例如,其它機(jī)器、計(jì)算機(jī)、服務(wù)器)的列表和每一節(jié)點(diǎn)將在網(wǎng)格中充當(dāng)?shù)慕巧?。主要控制?jié)點(diǎn)可維持網(wǎng)格中的所有經(jīng)配置節(jié)點(diǎn)的數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)可呈各種形式,包含例如配置服務(wù)器上的存儲(chǔ)器表格、簡(jiǎn)單文本文件、滿配置文件以及其它形式。在啟動(dòng)主要控制節(jié)點(diǎn)(例如,網(wǎng)格上的第一節(jié)點(diǎn))之后,主要控制節(jié)點(diǎn)可使用網(wǎng)絡(luò)協(xié)議(例如,安全外殼協(xié)議或SSH)以開始網(wǎng)格中每一其它節(jié)點(diǎn)上的服務(wù)器進(jìn)程。舉例來說,命令線參數(shù)可告知每一節(jié)點(diǎn)一或多個(gè)條信息,例如:節(jié)點(diǎn)將在網(wǎng)格中具有的角色、主要控制節(jié)點(diǎn)的主機(jī)名、端口編號(hào)(基于所述端口編號(hào)主要控制節(jié)點(diǎn)接受來自對(duì)等節(jié)點(diǎn)的連接)以及其它。信息還可提供于配置文件中;經(jīng)由安全外殼隧道傳輸;從配置服務(wù)器恢復(fù);以及其它操作。盡管網(wǎng)格中的其它機(jī)器最初可并不知道網(wǎng)格的配置,但信息還可通過主要控制節(jié)點(diǎn)發(fā)送到每一其它節(jié)點(diǎn)。網(wǎng)格信息的更新隨后也可發(fā)送到那些節(jié)點(diǎn)。
對(duì)于除添加到網(wǎng)格的主要控制節(jié)點(diǎn)之外的任何控制節(jié)點(diǎn),控制節(jié)點(diǎn)可打開三個(gè)套接字。第一套接字可接受來自客戶端的工作請(qǐng)求;第二套接字可接受來自其它網(wǎng)格成員的連接;以及第三套接字可連接(例如,永久地)到主要控制節(jié)點(diǎn)。當(dāng)控制節(jié)點(diǎn)(例如,主要控制節(jié)點(diǎn))從另一控制節(jié)點(diǎn)接收連接時(shí),其首先檢查以查看對(duì)等節(jié)點(diǎn)是否處于網(wǎng)格中經(jīng)配置節(jié)點(diǎn)的列表中。如果對(duì)等節(jié)點(diǎn)不在所述列表上,那么控制節(jié)點(diǎn)可清除連接。如果對(duì)等節(jié)點(diǎn)在所述列表上,那么其可接著試圖驗(yàn)證連接。在本文中進(jìn)一步參考圖16和17來描述節(jié)點(diǎn)的驗(yàn)證。如果驗(yàn)證成功,那么驗(yàn)證節(jié)點(diǎn)可將信息傳輸?shù)狡鋵?duì)等節(jié)點(diǎn),所述信息例如端口編號(hào)(基于其節(jié)點(diǎn)監(jiān)聽連接)、節(jié)點(diǎn)的主機(jī)名、關(guān)于如何驗(yàn)證節(jié)點(diǎn)的信息以及其它信息。當(dāng)節(jié)點(diǎn)(例如,新控制節(jié)點(diǎn))接收關(guān)于另一活動(dòng)節(jié)點(diǎn)的信息時(shí),所述節(jié)點(diǎn)將檢查以查看是否其已經(jīng)具有到所述另一節(jié)點(diǎn)的連接。如果其并不具有到所述節(jié)點(diǎn)的連接,那么其可接著建立到所述控制節(jié)點(diǎn)的連接。
添加到網(wǎng)格的任何工作者節(jié)點(diǎn)可建立到網(wǎng)格上的主要控制節(jié)點(diǎn)和任何其它控制節(jié)點(diǎn)的連接。在建立連接之后,其可相對(duì)于網(wǎng)格驗(yàn)證自身(例如,任何控制節(jié)點(diǎn),包含主要和備份兩者;或控制網(wǎng)格的服務(wù)器或用戶)。在本文中進(jìn)一步參考圖16和17描述節(jié)點(diǎn)的驗(yàn)證。在成功驗(yàn)證之后,工作者節(jié)點(diǎn)可接受來自控制節(jié)點(diǎn)的配置信息。
網(wǎng)格可從任何控制節(jié)點(diǎn)起始在任何時(shí)間處添加新機(jī)器。在將新節(jié)點(diǎn)添加到網(wǎng)格之后,控制節(jié)點(diǎn)可首先將新節(jié)點(diǎn)添加到其網(wǎng)格節(jié)點(diǎn)表??刂乒?jié)點(diǎn)接著還可通知每一其它控制節(jié)點(diǎn)關(guān)于新節(jié)點(diǎn)。接收通知的節(jié)點(diǎn)可確認(rèn)其已更新其配置信息。
圖2說明根據(jù)本發(fā)明技術(shù)的實(shí)施例的包含控制節(jié)點(diǎn)和一或多個(gè)工作者節(jié)點(diǎn)的通信網(wǎng)格200。通信網(wǎng)格200包含控制節(jié)點(diǎn)202,標(biāo)記為控制節(jié)點(diǎn)A。通信網(wǎng)格200還包含一或多個(gè)工作者節(jié)點(diǎn)。圖2中所展示的為六個(gè)工作者節(jié)點(diǎn):工作者節(jié)點(diǎn)210(標(biāo)記為工作者節(jié)點(diǎn)1)、工作者節(jié)點(diǎn)212(標(biāo)記為工作者節(jié)點(diǎn)2)、工作者節(jié)點(diǎn)214(標(biāo)記為工作者節(jié)點(diǎn)3)、工作者節(jié)點(diǎn)216(標(biāo)記為工作者節(jié)點(diǎn)n-2)、工作者節(jié)點(diǎn)218(標(biāo)記為工作者節(jié)點(diǎn)n-1)以及工作者節(jié)點(diǎn)220(標(biāo)記為工作者節(jié)點(diǎn)n)。盡管圖2展示六個(gè)工作者節(jié)點(diǎn),但根據(jù)本發(fā)明技術(shù)的實(shí)施例的通信網(wǎng)格可包含多于或少于六個(gè)工作者節(jié)點(diǎn)。舉例來說,通信網(wǎng)格可包含一個(gè)、兩個(gè)或任何其它數(shù)目個(gè)工作者節(jié)點(diǎn)。通信網(wǎng)格200內(nèi)的每一工作者節(jié)點(diǎn)連接(有線或無線地,以及直接或間接地)到控制節(jié)點(diǎn)202。因此,每一工作者節(jié)點(diǎn)可從控制節(jié)點(diǎn)202接收信息(例如,執(zhí)行致力于項(xiàng)目的指令)且可將信息傳輸?shù)娇刂乒?jié)點(diǎn)202(例如,來自對(duì)項(xiàng)目執(zhí)行的工作的結(jié)果)。然而,在某些實(shí)施例中,工作者節(jié)點(diǎn)可例如不連接(以通信方式或以其它方式)到其它工作者節(jié)點(diǎn)。舉例來說,工作者節(jié)點(diǎn)可僅能夠與控制其的控制節(jié)點(diǎn)通信,且可能并不能夠與通信網(wǎng)格中的其它工作者節(jié)點(diǎn)通信,無論所述工作者節(jié)點(diǎn)為由控制工作者節(jié)點(diǎn)的控制節(jié)點(diǎn)控制的其它工作者節(jié)點(diǎn)或由通信網(wǎng)格中的其它控制節(jié)點(diǎn)控制的工作者節(jié)點(diǎn)。在替代實(shí)施例中,工作者節(jié)點(diǎn)可與彼此通信(直接或間接地)。舉例來說,工作者節(jié)點(diǎn)可在彼此之間傳輸與經(jīng)執(zhí)行的作業(yè)或由所述工作者節(jié)點(diǎn)執(zhí)行的作業(yè)內(nèi)的個(gè)別任務(wù)相關(guān)的數(shù)據(jù)?;蛘?,工作者節(jié)點(diǎn)可與彼此通信以執(zhí)行廣播或約簡(jiǎn)操作,例如分別參考圖22和23在本文中所論述的那些操作。
控制節(jié)點(diǎn)(例如,控制節(jié)點(diǎn)202)可與外部裝置(控制節(jié)點(diǎn)可與所述外部裝置通信)連接(例如,網(wǎng)格用戶,例如服務(wù)器或計(jì)算機(jī),可連接到網(wǎng)格的主要控制器)。舉例來說,服務(wù)器或計(jì)算機(jī)可連接到控制節(jié)點(diǎn)202且可將項(xiàng)目或作業(yè)傳輸?shù)焦?jié)點(diǎn)。所述項(xiàng)目可包含數(shù)據(jù)集。所述數(shù)據(jù)集可為任何大小。一旦控制節(jié)點(diǎn)接收包含較大數(shù)據(jù)集的此項(xiàng)目,控制節(jié)點(diǎn)就可分布數(shù)據(jù)集或與數(shù)據(jù)集相關(guān)的項(xiàng)目由工作者節(jié)點(diǎn)執(zhí)行?;蛘?,對(duì)于包含較大數(shù)據(jù)集的項(xiàng)目,可通過除控制節(jié)點(diǎn)之外的機(jī)器(例如,Hadoop數(shù)據(jù)節(jié)點(diǎn))接收或存儲(chǔ)數(shù)據(jù)集。此結(jié)構(gòu)可防止瓶頸問題。
當(dāng)項(xiàng)目起始于通信網(wǎng)格200上時(shí),控制節(jié)點(diǎn)202控制項(xiàng)目的待執(zhí)行的工作(例如,基于數(shù)據(jù)集)。由于通信網(wǎng)格200中的工作者節(jié)點(diǎn)將執(zhí)行所述工作以完成所述項(xiàng)目?jī)?nèi)的每一任務(wù),因此控制節(jié)點(diǎn)202將來自所述項(xiàng)目的工作分配到每一工作者節(jié)點(diǎn)。控制節(jié)點(diǎn)協(xié)調(diào)所述工作使得每一工作者節(jié)點(diǎn)具有工作者節(jié)點(diǎn)可處置且可執(zhí)行且呈由用戶或控制節(jié)點(diǎn)所需的時(shí)間量的項(xiàng)目的一部分。舉例來說,控制節(jié)點(diǎn)可基于各種因數(shù)(例如,可最高效地且以正確時(shí)間量完成項(xiàng)目的哪些子集或部分)將工作分布到工作者節(jié)點(diǎn)。舉例來說,工作者節(jié)點(diǎn)可對(duì)已經(jīng)為本地的(例如,存儲(chǔ)在工作者節(jié)點(diǎn)上)的數(shù)據(jù)的一部分執(zhí)行分析??刂乒?jié)點(diǎn)還在每一工作者節(jié)點(diǎn)執(zhí)行和完成其作業(yè)之后協(xié)調(diào)由每一工作者節(jié)點(diǎn)執(zhí)行的工作的結(jié)果。舉例來說,控制節(jié)點(diǎn)可從一或多個(gè)工作者節(jié)點(diǎn)接收結(jié)果,且控制節(jié)點(diǎn)可組織所接收到的結(jié)果且編譯所述結(jié)果以產(chǎn)生從終端用戶所接收到的項(xiàng)目的完整結(jié)果。
通信網(wǎng)格200內(nèi)的工作者節(jié)點(diǎn)執(zhí)行致力于由控制節(jié)點(diǎn)202分配給工作者節(jié)點(diǎn)的所述項(xiàng)目的所述部分。在工作者節(jié)點(diǎn)從控制節(jié)點(diǎn)接收指令或項(xiàng)目(或項(xiàng)目的部分)之后,工作者節(jié)點(diǎn)執(zhí)行如所分配的指令,且可產(chǎn)生結(jié)果。工作者節(jié)點(diǎn)可接著將結(jié)果傳輸回到控制節(jié)點(diǎn)202(或如由來自伴隨分配或在分配之后經(jīng)遞送的控制節(jié)點(diǎn)202的分配或指令所指定的任何其它網(wǎng)絡(luò)裝置或外部裝置)。
當(dāng)節(jié)點(diǎn)加入通信網(wǎng)格200時(shí)(例如,當(dāng)節(jié)點(diǎn)經(jīng)開啟或連接到網(wǎng)格上的現(xiàn)有節(jié)點(diǎn)或這兩者時(shí)),給所述節(jié)點(diǎn)分配(例如,通過網(wǎng)格的操作系統(tǒng))通用唯一標(biāo)識(shí)符(UUID)。此唯一標(biāo)識(shí)符可幫助其它節(jié)點(diǎn)和外部實(shí)體(裝置、用戶等)識(shí)別節(jié)點(diǎn)且將其與其它節(jié)點(diǎn)區(qū)分開。當(dāng)節(jié)點(diǎn)連接到網(wǎng)格時(shí),節(jié)點(diǎn)可將其唯一標(biāo)識(shí)符與網(wǎng)格中的其它節(jié)點(diǎn)共享。由于每一節(jié)點(diǎn)可共享其唯一標(biāo)識(shí)符,因此每一節(jié)點(diǎn)可知道網(wǎng)格上的每一其它節(jié)點(diǎn)的唯一標(biāo)識(shí)符。唯一標(biāo)識(shí)符還可指定網(wǎng)格內(nèi)的節(jié)點(diǎn)(例如,備份控制節(jié)點(diǎn))中的每一者的層級(jí)。舉例來說,備份控制節(jié)點(diǎn)中的每一者的唯一標(biāo)識(shí)符可存儲(chǔ)于一系列備份控制節(jié)點(diǎn)中以指示備份控制節(jié)點(diǎn)將接替失效主要控制節(jié)點(diǎn)從而變?yōu)樾轮饕刂乒?jié)點(diǎn)的次序。然而,還可使用除使用節(jié)點(diǎn)的唯一標(biāo)識(shí)符之外的方法來確定節(jié)點(diǎn)的層級(jí)。舉例來說,層級(jí)可經(jīng)預(yù)先確定或可基于其它預(yù)先確定的因數(shù)而分配。
當(dāng)認(rèn)為項(xiàng)目(例如,由客戶端或網(wǎng)格的控制器)執(zhí)行時(shí),其可分配給節(jié)點(diǎn)集合。控制節(jié)點(diǎn)中的一者可被分配為作業(yè)的主要控制節(jié)點(diǎn)。任何剩余控制節(jié)點(diǎn)可被分配為項(xiàng)目的備份控制節(jié)點(diǎn)。所有活動(dòng)工作者節(jié)點(diǎn)可分配到所述項(xiàng)目。然而,在一些實(shí)施例中,工作者節(jié)點(diǎn)的子集可由于項(xiàng)目需要較低資源而分配到所述項(xiàng)目。在節(jié)點(diǎn)分配到項(xiàng)目之后,可形成數(shù)據(jù)結(jié)構(gòu)(即,通信器)。通信器可由所述項(xiàng)目使用以供信息在每一節(jié)點(diǎn)上運(yùn)行的項(xiàng)目代碼之間共享。通信句柄可形成于每一節(jié)點(diǎn)上。舉例來說,句柄為對(duì)在單個(gè)節(jié)點(diǎn)上的單個(gè)進(jìn)程內(nèi)有效的通信器的參考,且句柄可在請(qǐng)求節(jié)點(diǎn)之間的通信時(shí)使用。
在通信器內(nèi),每一工作者節(jié)點(diǎn)和主要控制節(jié)點(diǎn)可各自分配有級(jí)別。舉例來說,每一級(jí)別可為非負(fù)的整數(shù)。當(dāng)與通信器句柄組合時(shí),節(jié)點(diǎn)的級(jí)別可用于與在另一節(jié)點(diǎn)上的相同項(xiàng)目中運(yùn)行的代碼通信。不同于分配到節(jié)點(diǎn)的唯一標(biāo)識(shí)符,級(jí)別可僅在通信器內(nèi)為唯一的。因此,相同的級(jí)別數(shù)目可跨越不同項(xiàng)目指代網(wǎng)格中的不同節(jié)點(diǎn)。當(dāng)項(xiàng)目代碼識(shí)別網(wǎng)格中的特定節(jié)點(diǎn)時(shí),其可使用分配到節(jié)點(diǎn)的UUID,由于此類UUIDs可為永久性的。
如所提到,通信網(wǎng)格200包含單個(gè)控制節(jié)點(diǎn),控制節(jié)點(diǎn)202。因此,如果控制節(jié)點(diǎn)202失效(例如,如果控制節(jié)點(diǎn)202關(guān)閉、中斷或以其它方式失效;或變得不可用于控制和協(xié)調(diào)連接到其的工作者節(jié)點(diǎn)),那么通信網(wǎng)格200可失效。換句話說,如果控制節(jié)點(diǎn)202失效,那么運(yùn)行于通信網(wǎng)格200上的任何項(xiàng)目或作業(yè)可失效且可未完成。盡管項(xiàng)目可再次運(yùn)行,但此失效可在完成項(xiàng)目時(shí)產(chǎn)生延遲(在一些狀況下嚴(yán)重延遲,例如整夜延遲)。因此,具有多個(gè)控制節(jié)點(diǎn)(包含備份控制節(jié)點(diǎn))的容錯(cuò)系統(tǒng)可為有益的。
圖3說明根據(jù)本發(fā)明技術(shù)的實(shí)施例的包含兩個(gè)控制節(jié)點(diǎn)和一或多個(gè)工作者節(jié)點(diǎn)的通信網(wǎng)格300。通信網(wǎng)格300包含控制節(jié)點(diǎn)302和控制節(jié)點(diǎn)304??刂乒?jié)點(diǎn)302和控制節(jié)點(diǎn)304經(jīng)由通信路徑351以通信方式連接。因此,控制節(jié)點(diǎn)302和控制節(jié)點(diǎn)304可將信息(包含與通信網(wǎng)格或通知相關(guān)的信息)傳輸?shù)奖舜饲覐谋舜私邮招畔?。盡管通信網(wǎng)格300在圖3中展示為包含兩個(gè)控制節(jié)點(diǎn),但通信網(wǎng)格可包含多于兩個(gè)控制節(jié)點(diǎn)(例如,如圖7中所展示)或小于兩個(gè)控制節(jié)點(diǎn)(如例如圖5中所展示)。
通信網(wǎng)格300還包含一或多個(gè)工作者節(jié)點(diǎn)。圖3中所展示的為六個(gè)工作者節(jié)點(diǎn):工作者節(jié)點(diǎn)310(或工作者節(jié)點(diǎn)1)、工作者節(jié)點(diǎn)312(或工作者節(jié)點(diǎn)2)、工作者節(jié)點(diǎn)314(或工作者節(jié)點(diǎn)3)、工作者節(jié)點(diǎn)316(或工作者節(jié)點(diǎn)n-2)、工作者節(jié)點(diǎn)318(或工作者節(jié)點(diǎn)n-1)以及工作者節(jié)點(diǎn)320(或工作者節(jié)點(diǎn)n)。盡管圖3展示六個(gè)工作者節(jié)點(diǎn),但根據(jù)本發(fā)明技術(shù)的實(shí)施例的通信網(wǎng)格可包含多于或少于六個(gè)工作者節(jié)點(diǎn)。舉例來說,通信網(wǎng)格可包含一個(gè)、兩個(gè)或任何其它數(shù)目個(gè)工作者節(jié)點(diǎn)。舉例來說,包含于通信網(wǎng)格中的工作者節(jié)點(diǎn)的數(shù)目可取決于多大的項(xiàng)目或數(shù)據(jù)集正由通信網(wǎng)格實(shí)施。包含于通信網(wǎng)格中的工作者節(jié)點(diǎn)的數(shù)目還可取決于其它因數(shù),例如每一工作者節(jié)點(diǎn)的能力、通信網(wǎng)格將想要完成項(xiàng)目的時(shí)間以及其它因數(shù)。
如所提到,通信網(wǎng)格300內(nèi)的每一工作者節(jié)點(diǎn)可連接到控制節(jié)點(diǎn)302(盡管在其它實(shí)施例中,僅一些工作者節(jié)點(diǎn)可連接到控制節(jié)點(diǎn)302)。因此,每一工作者節(jié)點(diǎn)可從控制節(jié)點(diǎn)302接收信息(例如,執(zhí)行致力于項(xiàng)目的指令)且可將信息傳輸?shù)娇刂乒?jié)點(diǎn)302(例如,來自對(duì)項(xiàng)目執(zhí)行的工作的結(jié)果)。然而,在某些實(shí)施例中,工作者節(jié)點(diǎn)可不連接(以通信方式或以其它方式)到其它工作者節(jié)點(diǎn)。舉例來說,工作者節(jié)點(diǎn)僅可連接到控制其的控制節(jié)點(diǎn),且可并不連接到通信網(wǎng)格中的其它工作者節(jié)點(diǎn),無論所述其它工作者節(jié)點(diǎn)是否共享控制節(jié)點(diǎn)。通信網(wǎng)格300內(nèi)的每一工作者節(jié)點(diǎn)還連接到控制節(jié)點(diǎn)304。因此,每一工作者節(jié)點(diǎn)可從控制節(jié)點(diǎn)304接收信息且可將信息傳輸?shù)娇刂乒?jié)點(diǎn)304。
控制節(jié)點(diǎn)(例如,控制節(jié)點(diǎn)302)可被指定為主要控制節(jié)點(diǎn)。服務(wù)器、計(jì)算機(jī)或其它外部裝置可連接到主要控制節(jié)點(diǎn),例如控制節(jié)點(diǎn)302。一旦控制節(jié)點(diǎn)接收項(xiàng)目,主要控制節(jié)點(diǎn)就可將項(xiàng)目的各部分分布到其工作者節(jié)點(diǎn)以供執(zhí)行。舉例來說,當(dāng)項(xiàng)目起始于通信網(wǎng)格300上時(shí),主要控制節(jié)點(diǎn)302控制項(xiàng)目的待執(zhí)行的工作以便按請(qǐng)求或指示完成項(xiàng)目。由于通信網(wǎng)格300中的工作者節(jié)點(diǎn)將執(zhí)行工作以完成項(xiàng)目?jī)?nèi)的每一任務(wù),主要控制節(jié)點(diǎn)302可將來自項(xiàng)目的工作分配到每一工作者節(jié)點(diǎn)。主要控制節(jié)點(diǎn)協(xié)調(diào)工作使得每一工作者節(jié)點(diǎn)具有工作者節(jié)點(diǎn)可處置且可完全高效地執(zhí)行的項(xiàng)目的一部分。主要控制節(jié)點(diǎn)還在每一工作者節(jié)點(diǎn)執(zhí)行和完成其作業(yè)之后協(xié)調(diào)和處理由每一工作者節(jié)點(diǎn)執(zhí)行的工作的結(jié)果。舉例來說,主要控制節(jié)點(diǎn)可從一或多個(gè)工作者節(jié)點(diǎn)接收結(jié)果,且控制節(jié)點(diǎn)可組織(例如,收集和匯編)所接收到的結(jié)果且編譯所述結(jié)果以產(chǎn)生從終端用戶所接收到的項(xiàng)目的完整結(jié)果。
另一控制節(jié)點(diǎn)(例如,控制節(jié)點(diǎn)304)可被指定為備份控制節(jié)點(diǎn)。備份控制節(jié)點(diǎn)304可不控制由通信網(wǎng)格300實(shí)施的項(xiàng)目的任何部分。替代地,備份控制節(jié)點(diǎn)304可充當(dāng)主要控制節(jié)點(diǎn)302的備份。舉例來說,備份控制節(jié)點(diǎn)304可能夠接替為主要控制節(jié)點(diǎn),如果主要控制節(jié)點(diǎn)302失效的話。舉例來說,主要控制節(jié)點(diǎn)302可將一或多個(gè)通信傳輸?shù)絺浞菘刂乒?jié)點(diǎn)304(和例如通信網(wǎng)格內(nèi)的其它控制或工作者節(jié)點(diǎn))??稍陧?xiàng)目的執(zhí)行的已知固定階段之間在固定的時(shí)間間隔處周期性地發(fā)送此類通信,以及其它協(xié)議。通過主要控制節(jié)點(diǎn)302傳輸?shù)耐ㄐ趴蔀椴煌愋颓铱砂鞣N類型的信息。舉例來說,主要控制節(jié)點(diǎn)302可傳輸通信網(wǎng)格的快照(例如,狀態(tài)信息)以使得備份控制節(jié)點(diǎn)304始終具有通信網(wǎng)格的最新的快照。快照或網(wǎng)格狀態(tài)可包含網(wǎng)格的結(jié)構(gòu)(包含例如網(wǎng)格中的工作者節(jié)點(diǎn)、節(jié)點(diǎn)的唯一標(biāo)識(shí)符或其與主要控制節(jié)點(diǎn)的關(guān)系)、項(xiàng)目的狀態(tài)(包含例如項(xiàng)目的每一工作者節(jié)點(diǎn)的部分的狀態(tài))以及與通信網(wǎng)格或其節(jié)點(diǎn)相關(guān)的其它信息。快照還可包含從通信網(wǎng)格中的工作者節(jié)點(diǎn)所接收到的對(duì)于項(xiàng)目的全部部分中的任一部分的分析或結(jié)果。備份控制節(jié)點(diǎn)304可接收和存儲(chǔ)從主要控制節(jié)點(diǎn)302所接收到的備份數(shù)據(jù)。備份控制節(jié)點(diǎn)304可請(qǐng)求來自主要控制節(jié)點(diǎn)的此快照(或其它信息),或主要控制節(jié)點(diǎn)可將此類信息周期性地發(fā)送到備份控制節(jié)點(diǎn)。
如所提到,備份數(shù)據(jù)可允許備份控制節(jié)點(diǎn)在主要控制節(jié)點(diǎn)失效的情況下接替為主要控制節(jié)點(diǎn)。更具體來說,備份數(shù)據(jù)可允許備份控制節(jié)點(diǎn)在主要控制節(jié)點(diǎn)失效之后繼續(xù)由主要控制節(jié)點(diǎn)實(shí)施和控制的項(xiàng)目而不必從頭開始項(xiàng)目。如果主要控制節(jié)點(diǎn)失效,那么備份控制節(jié)點(diǎn)304可檢索從主要控制節(jié)點(diǎn)302所接收到的最新版本的快照且使用所述快照以從由備份數(shù)據(jù)所指示的項(xiàng)目的階段繼續(xù)項(xiàng)目。
備份控制節(jié)點(diǎn)304可使用各種方法以確定主要控制節(jié)點(diǎn)302已失效。在此方法的一個(gè)實(shí)例中,主要控制節(jié)點(diǎn)302可將指示主要控制節(jié)點(diǎn)302正在工作且尚未失效的通信(例如,檢測(cè)信號(hào)通信)傳輸?shù)絺浞菘刂乒?jié)點(diǎn)304。此類型的通信可通過主要控制節(jié)點(diǎn)周期性地傳輸(例如,每秒一次、每五秒一次、每毫秒一次或任何其它間隔)。如果備份控制節(jié)點(diǎn)304在某一預(yù)定時(shí)間段(即,時(shí)間或檢測(cè)信號(hào)閾值)內(nèi)尚未接收到檢測(cè)信號(hào)通信,或換句話說,尚未接收到預(yù)期在經(jīng)過一定量的時(shí)間之前接收到的檢測(cè)信號(hào)通信,那么備份控制節(jié)點(diǎn)304可能夠確定主要控制節(jié)點(diǎn)302是否已失效。舉例來說,主要控制節(jié)點(diǎn)302每六十秒可傳輸檢測(cè)信號(hào)消息。如果備份控制節(jié)點(diǎn)304在大于六十秒(例如,七十秒)的時(shí)間段內(nèi)尚未從主要控制節(jié)點(diǎn)302接收到檢測(cè)信號(hào)消息,那么備份控制節(jié)點(diǎn)304可確定或假設(shè)主要控制節(jié)點(diǎn)302已失效。
作為方法的另一實(shí)例,備份控制節(jié)點(diǎn)304可用以確定或假設(shè)主要控制節(jié)點(diǎn)302已失效;備份控制節(jié)點(diǎn)304可從一或多個(gè)工作者節(jié)點(diǎn)接收主要控制節(jié)點(diǎn)302已失效的通信,所述工作者節(jié)點(diǎn)可連接到主要控制節(jié)點(diǎn)302和備份控制節(jié)點(diǎn)304兩者。舉例來說,工作者節(jié)點(diǎn)可已辨別出主要控制節(jié)點(diǎn)302未能與工作者節(jié)點(diǎn)通信。舉例來說,主要控制節(jié)點(diǎn)302可未能對(duì)通過工作者節(jié)點(diǎn)傳輸?shù)街饕刂乒?jié)點(diǎn)的查詢或請(qǐng)求作出響應(yīng)。在另一實(shí)例中,主要控制節(jié)點(diǎn)302可未能在工作者節(jié)點(diǎn)發(fā)送通信(例如,包含來自由工作者節(jié)點(diǎn)所致力于的作業(yè)的一部分的結(jié)果的通信)之后將確認(rèn)(例如,ACK)消息傳輸回到工作者節(jié)點(diǎn)。備份控制節(jié)點(diǎn)304還可已從另一裝置(例如,通信網(wǎng)格外部的裝置)接收到例如主要控制節(jié)點(diǎn)失效的通信。舉例來說,外部裝置(例如,控制器)可已從一或多個(gè)工作者節(jié)點(diǎn)接收到主要控制節(jié)點(diǎn)失效的指示,且外部裝置可已將主要控制節(jié)點(diǎn)失效的通信傳輸?shù)絺浞菘刂乒?jié)點(diǎn)。備份控制節(jié)點(diǎn)304還可已直接從主要控制節(jié)點(diǎn)302(或其它地方)接收到主要控制節(jié)點(diǎn)已失效或?qū)⒁У闹甘?。舉例來說,主要控制節(jié)點(diǎn)(或另一裝置)可能夠基于歷史數(shù)據(jù)或所檢測(cè)到的圖案預(yù)測(cè)主要控制節(jié)點(diǎn)將要失效。然而,在其失效之前,主要控制節(jié)點(diǎn)可將包含其已失效或?qū)⒁У闹甘镜耐ㄐ艂鬏?例如,廣播或經(jīng)由直接消息)到其它節(jié)點(diǎn)。
如所提到,在備份控制節(jié)點(diǎn)304檢測(cè)到或被通知主要控制節(jié)點(diǎn)302已失效之后,備份控制節(jié)點(diǎn)304可接替主要控制節(jié)點(diǎn)的職責(zé)。此外,控制節(jié)點(diǎn)304可在其失效之前通過使用從主要控制節(jié)點(diǎn)所接收到的數(shù)據(jù)(例如,狀態(tài)信息)繼續(xù)由通信網(wǎng)格300實(shí)施且由控制節(jié)點(diǎn)302控制的項(xiàng)目。因而,通信網(wǎng)格可能夠避免項(xiàng)目歸因于主要控制節(jié)點(diǎn)的失效而失效。
圖4說明根據(jù)本發(fā)明技術(shù)的實(shí)施例的包含三個(gè)控制節(jié)點(diǎn)和一或多個(gè)工作者節(jié)點(diǎn)的通信網(wǎng)格400。通信網(wǎng)格400包含控制節(jié)點(diǎn)402、控制節(jié)點(diǎn)404和控制節(jié)點(diǎn)406。控制節(jié)點(diǎn)402和控制節(jié)點(diǎn)404經(jīng)由通信路徑451以通信方式連接。因此,控制節(jié)點(diǎn)402和控制節(jié)點(diǎn)404可經(jīng)由通信路徑451將信息(包含與通信網(wǎng)格或通知相關(guān)的信息)傳輸?shù)奖舜饲覐谋舜私邮招畔???刂乒?jié)點(diǎn)402和控制節(jié)點(diǎn)406經(jīng)由通信路徑453以通信方式連接。因此,控制節(jié)點(diǎn)402和控制節(jié)點(diǎn)406可經(jīng)由通信路徑453將信息(包含與通信網(wǎng)格或通知相關(guān)的信息)傳輸?shù)奖舜饲覐谋舜私邮招畔???刂乒?jié)點(diǎn)404和控制節(jié)點(diǎn)406經(jīng)由通信路徑455以通信方式連接。因此,控制節(jié)點(diǎn)404和控制節(jié)點(diǎn)406可經(jīng)由通信路徑455將信息(包含與通信網(wǎng)格或通知相關(guān)的信息)傳輸?shù)奖舜撕蛷谋舜私邮招畔?。盡管通信網(wǎng)格600在圖6中展示為包含三個(gè)控制節(jié)點(diǎn),但通信網(wǎng)格可包含多于三個(gè)控制節(jié)點(diǎn)或小于兩個(gè)控制節(jié)點(diǎn)(如例如圖5和6中所展示)。
通信網(wǎng)格400還包含一或多個(gè)工作者節(jié)點(diǎn)。圖4中所展示的為六個(gè)工作者節(jié)點(diǎn):工作者節(jié)點(diǎn)410(或工作者節(jié)點(diǎn)1)、工作者節(jié)點(diǎn)412(或工作者節(jié)點(diǎn)2)、工作者節(jié)點(diǎn)414(或工作者節(jié)點(diǎn)3)、工作者節(jié)點(diǎn)416(或工作者節(jié)點(diǎn)n-2)、工作者節(jié)點(diǎn)418(或工作者節(jié)點(diǎn)n-1)以及工作者節(jié)點(diǎn)420(或工作者節(jié)點(diǎn)n)。盡管圖4展示六個(gè)工作者節(jié)點(diǎn),但根據(jù)本發(fā)明技術(shù)的實(shí)施例的通信網(wǎng)格可包含多于或少于六個(gè)工作者節(jié)點(diǎn)。舉例來說,通信網(wǎng)格可包含一個(gè)、兩個(gè)或任何其它數(shù)目個(gè)工作者節(jié)點(diǎn)。舉例來說,包含于通信網(wǎng)格中的工作者節(jié)點(diǎn)的數(shù)目可取決于多大的項(xiàng)目或數(shù)據(jù)集正由通信網(wǎng)格實(shí)施。包含于通信網(wǎng)格中的工作者節(jié)點(diǎn)的數(shù)目還可取決于其它因數(shù),例如每一工作者節(jié)點(diǎn)的能力、通信網(wǎng)格完成項(xiàng)目所指定的時(shí)間以及其它因數(shù)。
類似于圖6中的控制節(jié)點(diǎn)602,控制節(jié)點(diǎn)(例如,控制節(jié)點(diǎn)402)可在通信網(wǎng)格400中被指定為主要控制節(jié)點(diǎn)。主要控制節(jié)點(diǎn)402可經(jīng)配置以在通信網(wǎng)格400中具有與如參考圖6所描述的通信網(wǎng)格600中的主要控制節(jié)點(diǎn)602(和與圖5中的控制節(jié)點(diǎn)502)類似的角色(和執(zhí)行相同或類似功能)。通信網(wǎng)格400中的其它兩個(gè)控制節(jié)點(diǎn)(例如,控制節(jié)點(diǎn)404和406)可被指定為備份控制節(jié)點(diǎn)。控制節(jié)點(diǎn)404和406可在本文中被稱作備份控制節(jié)點(diǎn)。然而,在其它實(shí)施例中,控制節(jié)點(diǎn)404和406可為主要控制節(jié)點(diǎn)。在控制節(jié)點(diǎn)404和406為備份控制節(jié)點(diǎn)的此實(shí)施例中,備份控制節(jié)點(diǎn)404和406中的每一者可個(gè)別地或以組合形式執(zhí)行類似于通信網(wǎng)格300中的備份控制節(jié)點(diǎn)304的功能。舉例來說,備份控制節(jié)點(diǎn)404和406可各自從主要控制節(jié)點(diǎn)402接收關(guān)于通信網(wǎng)格400的信息,包含周期性快照或關(guān)于通信網(wǎng)格的其它信息。
備份控制節(jié)點(diǎn)404或備份控制節(jié)點(diǎn)406可類似于通信網(wǎng)格300中的備份控制節(jié)點(diǎn)304接替或取代主要控制節(jié)點(diǎn)402,如果主要控制節(jié)點(diǎn)402失效的話。接替失效主要控制節(jié)點(diǎn)402的備份控制節(jié)點(diǎn)可在主要控制節(jié)點(diǎn)302失效之后這么做使得其可與通信網(wǎng)格300中的備份控制節(jié)點(diǎn)304執(zhí)行類似功能,且因此可繼續(xù)由失效主要控制節(jié)點(diǎn)402執(zhí)行的功能或項(xiàng)目。舉例來說,備份控制節(jié)點(diǎn)(備份控制節(jié)點(diǎn)404或備份控制節(jié)點(diǎn)406)可控制在主要控制節(jié)點(diǎn)402失效之前連接到主要控制節(jié)點(diǎn)402的工作者節(jié)點(diǎn)(且如所提到,工作者節(jié)點(diǎn)還可連接到控制節(jié)點(diǎn)404和406)且控制由那些工作者節(jié)點(diǎn)執(zhí)行的項(xiàng)目。
可執(zhí)行不同方法以確定備份控制節(jié)點(diǎn)集合中的哪一備份控制節(jié)點(diǎn)(例如,備份控制節(jié)點(diǎn)404和406)將接替失效主要控制節(jié)點(diǎn)402且變?yōu)樾轮饕刂乒?jié)點(diǎn)。舉例來說,可基于分配給每一備份控制節(jié)點(diǎn)的唯一標(biāo)識(shí)符(例如,無論哪個(gè)備份控制節(jié)點(diǎn)具有較高或較低唯一標(biāo)識(shí)符)選擇新主要控制節(jié)點(diǎn)。唯一標(biāo)識(shí)符的此分級(jí)可被稱為備份控制節(jié)點(diǎn)的“層級(jí)”。在替代實(shí)施例中,可通過通信網(wǎng)格中的另一裝置(例如,失效主要控制節(jié)點(diǎn)402)或由外部裝置(例如,控制通信網(wǎng)格的系統(tǒng)基礎(chǔ)設(shè)施或終端用戶,例如服務(wù)器或計(jì)算機(jī))將備份控制節(jié)點(diǎn)分配為新主要控制節(jié)點(diǎn)。在另一替代實(shí)施例中,可基于帶寬或關(guān)于通信網(wǎng)格的其它統(tǒng)計(jì)數(shù)據(jù)指定接替為新主要控制節(jié)點(diǎn)的備份控制節(jié)點(diǎn)。舉例來說,決策可基于哪一節(jié)點(diǎn)具有較大帶寬、哪一節(jié)點(diǎn)包含通信網(wǎng)格的更新版本的快照、哪一節(jié)點(diǎn)經(jīng)更好地裝備(例如,使用關(guān)于所述節(jié)點(diǎn)或通信網(wǎng)格的其余節(jié)點(diǎn)的統(tǒng)計(jì)數(shù)據(jù))以處置正由通信網(wǎng)格執(zhí)行的當(dāng)前項(xiàng)目以及其它因素。由于備份控制節(jié)點(diǎn)可與彼此通信(例如,經(jīng)由通信路徑451、453和455),因此可執(zhí)行內(nèi)部算法或可在備份控制節(jié)點(diǎn)之間共享信息以將備份控制節(jié)點(diǎn)中的一者指定為新主要控制節(jié)點(diǎn)。
圖5說明根據(jù)本發(fā)明技術(shù)的實(shí)施例的包含兩個(gè)控制節(jié)點(diǎn)和一或多個(gè)工作者節(jié)點(diǎn)的通信網(wǎng)格500。通信網(wǎng)格500包含主要控制節(jié)點(diǎn)502和備份控制節(jié)點(diǎn)504。主要控制節(jié)點(diǎn)502和備份控制節(jié)點(diǎn)504可在通信網(wǎng)格500中具有分別與圖6中的通信網(wǎng)格600中的控制節(jié)點(diǎn)602和604類似的角色。主要控制節(jié)點(diǎn)502和備份控制節(jié)點(diǎn)504經(jīng)由通信路徑551以通信方式連接。因此,主要控制節(jié)點(diǎn)502和備份控制節(jié)點(diǎn)504可將信息(包含與通信網(wǎng)格或通知相關(guān)的信息)傳輸?shù)奖舜撕蛷谋舜私邮招畔?。盡管通信網(wǎng)格500在圖5中展示為包含兩個(gè)控制節(jié)點(diǎn),但通信網(wǎng)格可包含多于兩個(gè)控制節(jié)點(diǎn)(例如,如圖4中所展示)或小于兩個(gè)控制節(jié)點(diǎn)(如例如圖5中所展示)。
通信網(wǎng)格500還包含一或多個(gè)工作者節(jié)點(diǎn)。圖5中所展示的為四個(gè)工作者節(jié)點(diǎn):工作者節(jié)點(diǎn)510(或工作者節(jié)點(diǎn)1)、工作者節(jié)點(diǎn)512(或工作者節(jié)點(diǎn)2)、工作者節(jié)點(diǎn)514(或工作者節(jié)點(diǎn)3)以及工作者節(jié)點(diǎn)516(或工作者節(jié)點(diǎn)4)。盡管圖5展示四個(gè)工作者節(jié)點(diǎn),但根據(jù)本發(fā)明技術(shù)的實(shí)施例的通信網(wǎng)格可包含多于或小于四個(gè)工作者節(jié)點(diǎn)。
如所提到,主要控制節(jié)點(diǎn)(例如,主要控制節(jié)點(diǎn)502)可傳輸通信網(wǎng)格的快照以使得備份控制節(jié)點(diǎn)(例如,備份控制節(jié)點(diǎn)504)始終具有通信網(wǎng)格的最新的快照。舉例來說,如圖5中所展示,主要控制節(jié)點(diǎn)502可將通信網(wǎng)格快照540傳輸?shù)絺浞菘刂乒?jié)點(diǎn)504??煺湛砂W(wǎng)格中的工作者節(jié)點(diǎn)和其與主要控制節(jié)點(diǎn)的關(guān)系的網(wǎng)格結(jié)構(gòu)、項(xiàng)目的狀態(tài)(包含例如項(xiàng)目的每一工作者節(jié)點(diǎn)的部分的狀態(tài))以及其它信息??煺者€可包含從通信網(wǎng)格中的工作者節(jié)點(diǎn)所接收到的對(duì)于項(xiàng)目的全部部分中的任一部分的分析或結(jié)果??煺者€可包含輔助備份控制節(jié)點(diǎn)在主要控制節(jié)點(diǎn)失效之后從作業(yè)的已知狀態(tài)繼續(xù)處理作業(yè)的任何其它信息。備份控制節(jié)點(diǎn)504可接收和存儲(chǔ)從主要控制節(jié)點(diǎn)502所接收到的快照540。備份控制節(jié)點(diǎn)504可通過請(qǐng)求來自主要控制節(jié)點(diǎn)的此快照(或其它信息)起始通信網(wǎng)格的快照的接收,或主要控制節(jié)點(diǎn)可將此類信息周期性地發(fā)送到備份控制節(jié)點(diǎn)。備份控制節(jié)點(diǎn)504可將快照540存儲(chǔ)在存儲(chǔ)裝置中(例如存儲(chǔ)在本地存儲(chǔ)裝置525中)。本地存儲(chǔ)裝置525可為備份控制節(jié)點(diǎn)504內(nèi)的短期存儲(chǔ)裝置(例如高速緩沖存儲(chǔ)器)或較長(zhǎng)期存儲(chǔ)裝置。在替代實(shí)施例中,備份控制節(jié)點(diǎn)504可將快照540(或其它數(shù)據(jù))存儲(chǔ)在遠(yuǎn)程位置中。舉例來說,備份控制節(jié)點(diǎn)504可在從主要控制節(jié)點(diǎn)502接收通信網(wǎng)格快照540之后將快照540傳輸?shù)絺浞菘刂乒?jié)點(diǎn)504外部的存儲(chǔ)裝置。備份控制節(jié)點(diǎn)504可接著在接收或檢測(cè)到主要控制節(jié)點(diǎn)失效的通知之后從存儲(chǔ)裝置檢索所存儲(chǔ)的網(wǎng)格快照,例如快照540。
圖6說明根據(jù)本發(fā)明技術(shù)的實(shí)施例的包含兩個(gè)控制節(jié)點(diǎn)(其包含具有所存儲(chǔ)的網(wǎng)格快照的備份控制節(jié)點(diǎn))和一或多個(gè)工作者節(jié)點(diǎn)的通信網(wǎng)格600。更具體來說,圖6說明主要控制節(jié)點(diǎn)602可失效(通過虛線指示)并且因此說明通信網(wǎng)格上的主要控制節(jié)點(diǎn)602與其它節(jié)點(diǎn)之間的通信路徑(例如,主要控制節(jié)點(diǎn)602與備份控制節(jié)點(diǎn)604之間的路徑651以及主要控制節(jié)點(diǎn)602與工作者節(jié)點(diǎn)610到616之間的那些路徑)可由于此失效而被切斷。然而,如通信網(wǎng)格600中所展示,備份控制節(jié)點(diǎn)604可以通信方式連接(例如,有線或無線地)到通信網(wǎng)格600內(nèi)的工作者節(jié)點(diǎn)中的每一者。如所提到,備份數(shù)據(jù)可允許備份控制節(jié)點(diǎn)在主要控制節(jié)點(diǎn)失效的情況下接替為主要控制節(jié)點(diǎn)。更具體來說,備份數(shù)據(jù)可允許備份控制節(jié)點(diǎn)在主要控制節(jié)點(diǎn)失效之后繼續(xù)由主要控制節(jié)點(diǎn)實(shí)施和控制的項(xiàng)目而不必從頭開始項(xiàng)目。如果主要控制節(jié)點(diǎn)失效,那么備份控制節(jié)點(diǎn)504可檢索從主要控制節(jié)點(diǎn)502所接收到的最新版本(或另一所存儲(chǔ)的版本,如果適用的話)的快照且使用所述快照(和其它備份數(shù)據(jù))以從由備份數(shù)據(jù)所指示的項(xiàng)目階段繼續(xù)項(xiàng)目。
圖7說明根據(jù)本發(fā)明技術(shù)的實(shí)施例的包含兩個(gè)控制節(jié)點(diǎn)(其包含具有所存儲(chǔ)的網(wǎng)格快照的備份控制節(jié)點(diǎn))和一或多個(gè)工作者節(jié)點(diǎn)的通信網(wǎng)格700。通信網(wǎng)格700類似于通信網(wǎng)格600,但進(jìn)一步說明備份控制節(jié)點(diǎn)704可從若干不同來源接收主要控制節(jié)點(diǎn)702失效的通知。如所提到,備份控制節(jié)點(diǎn)(例如,備份控制節(jié)點(diǎn)704)可在主要控制節(jié)點(diǎn)失效之后替代主要控制節(jié)點(diǎn)(例如,主要控制節(jié)點(diǎn)702)作為通信網(wǎng)格(例如,通信網(wǎng)格700)內(nèi)的新主要控制節(jié)點(diǎn)??梢愿鞣N不同方式通知備份控制節(jié)點(diǎn)704主要控制節(jié)點(diǎn)702已失效。舉例來說,備份控制節(jié)點(diǎn)704可接收包含通知的通信(例如,通信745),其包含主要控制節(jié)點(diǎn)702已失效或?qū)⒃谝欢康臅r(shí)間內(nèi)失效的指示。備份控制節(jié)點(diǎn)704可從主要控制節(jié)點(diǎn)702自身接收此通知。主要控制節(jié)點(diǎn)702可識(shí)別其已失效或?qū)⑹译S后或同時(shí)將具有此問題的通知傳輸?shù)絺浞菘刂乒?jié)點(diǎn)704;傳輸?shù)骄W(wǎng)格上的另一節(jié)點(diǎn)或節(jié)點(diǎn)組或傳輸?shù)椒?wù)器或管理員(例如,服務(wù)器/管理員760)或通信網(wǎng)格內(nèi)部或外部的另一系統(tǒng)基礎(chǔ)設(shè)施。備份控制節(jié)點(diǎn)可接著從服務(wù)器或管理員760接收通信745。舉例來說,此通知可在服務(wù)器或管理員760已從主要控制節(jié)點(diǎn)702接收到此通知之后出現(xiàn)?;蛘?,服務(wù)器或管理員760可已從網(wǎng)格內(nèi)的工作者節(jié)點(diǎn)或從另一來源接收到此通知。在另一替代實(shí)例中,服務(wù)器或管理員760可將周期性檢測(cè)信號(hào)消息傳輸?shù)街饕刂乒?jié)點(diǎn)702以確定主要控制節(jié)點(diǎn)702是否正在工作(即,尚未失效),且可由于其確定主要控制節(jié)點(diǎn)702失效(由于其在某一預(yù)定時(shí)間段內(nèi)未接收到對(duì)其檢測(cè)信號(hào)消息中的一或多者的響應(yīng))而已起始將通知傳輸?shù)絺浞菘刂乒?jié)點(diǎn)704。備份控制節(jié)點(diǎn)704可接著直接從工作者節(jié)點(diǎn)(例如,從如圖7中所展示的工作者節(jié)點(diǎn)716)接收主要控制節(jié)點(diǎn)失效的通知。
圖8說明根據(jù)本發(fā)明技術(shù)的實(shí)施例的包含新主要控制節(jié)點(diǎn)和前者備份控制節(jié)點(diǎn)以及一或多個(gè)工作者節(jié)點(diǎn)的通信網(wǎng)格800。通信網(wǎng)格800包含新主要控制節(jié)點(diǎn)804,其可在先前主要控制節(jié)點(diǎn)失效之前已從前者備份控制節(jié)點(diǎn)轉(zhuǎn)變。如圖8中所展示,新主要控制節(jié)點(diǎn)804(在其為備份控制節(jié)點(diǎn)時(shí)保持原樣)連接到一或多個(gè)工作者節(jié)點(diǎn)。在通信網(wǎng)格800中,新主要控制節(jié)點(diǎn)804連接到工作者節(jié)點(diǎn)810、812、814和816。然而,新主要控制節(jié)點(diǎn)804可連接到相較于圖8中所展示的四個(gè)工作者節(jié)點(diǎn)的較低或較高數(shù)目個(gè)工作者節(jié)點(diǎn)。新主要控制節(jié)點(diǎn)804可取代或接替先前主要控制節(jié)點(diǎn)以與前者、現(xiàn)失效的主要控制節(jié)點(diǎn)呈相同能力或功能性。換句話說,新主要控制節(jié)點(diǎn)804可控制通信網(wǎng)格800上運(yùn)行的項(xiàng)目,并且因此可控制連接到其且執(zhí)行項(xiàng)目的不同部分的工作者節(jié)點(diǎn)。
新主要控制節(jié)點(diǎn)804在變?yōu)橥ㄐ啪W(wǎng)格800內(nèi)的主要控制節(jié)點(diǎn)之后可重新開始項(xiàng)目(例如,如果如由新主要控制節(jié)點(diǎn)所存儲(chǔ)的網(wǎng)格的上一個(gè)已知狀態(tài)為項(xiàng)目的起點(diǎn)的話)。在另一實(shí)施例中,新主要控制節(jié)點(diǎn)804可在正執(zhí)行的項(xiàng)目的進(jìn)展期間通過在某一時(shí)刻在檢查點(diǎn)處恢復(fù)致力于項(xiàng)目而回滾到檢查點(diǎn)。在實(shí)施例中,新主要控制節(jié)點(diǎn)804可連同連接到其的工作者節(jié)點(diǎn)一起從前者主要控制節(jié)點(diǎn)停止的確切時(shí)刻恢復(fù)項(xiàng)目的執(zhí)行。在另一實(shí)施例中,新主要控制節(jié)點(diǎn)804可從在前一主要控制節(jié)點(diǎn)停止的時(shí)刻之前的項(xiàng)目中的一時(shí)刻處的檢查點(diǎn)恢復(fù)項(xiàng)目的執(zhí)行(即,回滾到檢查點(diǎn))。新主要控制節(jié)點(diǎn)804可使用從新主要控制節(jié)點(diǎn)804內(nèi)的存儲(chǔ)裝置或從另一節(jié)點(diǎn)或另一裝置內(nèi)的存儲(chǔ)裝置所檢索到的網(wǎng)格的快照獲得關(guān)于此檢查點(diǎn)的信息。
圖9說明根據(jù)本發(fā)明技術(shù)的實(shí)施例的包含主要控制節(jié)點(diǎn)和一或多個(gè)工作者節(jié)點(diǎn)的通信網(wǎng)格900。通信網(wǎng)格900包含新主要控制節(jié)點(diǎn)902和工作者節(jié)點(diǎn)910、912、914和916。如所提到,主要控制節(jié)點(diǎn)902可將正執(zhí)行的項(xiàng)目?jī)?nèi)的工作分布到通信網(wǎng)格內(nèi)的工作者節(jié)點(diǎn)中的每一者使得每一工作者節(jié)點(diǎn)執(zhí)行項(xiàng)目的一部分。舉例來說,如圖9中所展示,工作者節(jié)點(diǎn)910、912、914和916各自可被分配正由通信網(wǎng)格900執(zhí)行且由主要控制節(jié)點(diǎn)902控制的項(xiàng)目的四分之一部分。舉例來說,主要控制節(jié)點(diǎn)902可例如分別經(jīng)由通信路徑960、962、964和966將指令傳輸?shù)焦ぷ髡吖?jié)點(diǎn)。此外,工作者節(jié)點(diǎn)還可將信息傳輸?shù)街饕刂乒?jié)點(diǎn)902。舉例來說,工作者節(jié)點(diǎn)可產(chǎn)生(和例如本地存儲(chǔ))且將項(xiàng)目?jī)?nèi)其進(jìn)展的檢查點(diǎn)或項(xiàng)目的其所分配的部分傳輸?shù)街饕刂乒?jié)點(diǎn)902,以使得主要控制節(jié)點(diǎn)902接收和存儲(chǔ)工作者節(jié)點(diǎn)中的每一者的進(jìn)展的周期性檢查點(diǎn)或狀態(tài)。每一工作者節(jié)點(diǎn)的所接收到的檢查點(diǎn)可允許主要控制節(jié)點(diǎn)902編譯通信網(wǎng)格上正執(zhí)行的項(xiàng)目的進(jìn)展?fàn)顟B(tài)。檢查點(diǎn)可允許主要控制節(jié)點(diǎn)902產(chǎn)生通信網(wǎng)格的快照,或檢查點(diǎn)可經(jīng)處理為由主要控制節(jié)點(diǎn)用于其它能力中的單獨(dú)、獨(dú)立數(shù)據(jù)。在接收到檢查點(diǎn)之后,可由主要控制節(jié)點(diǎn)將所述檢查點(diǎn)存儲(chǔ)在存儲(chǔ)裝置925中。主要控制節(jié)點(diǎn)902還可存儲(chǔ)由檢查點(diǎn)產(chǎn)生的任何數(shù)據(jù),包含例如通信網(wǎng)格的快照。
檢查點(diǎn)可在項(xiàng)目的一階段已完成(例如,在項(xiàng)目為多階段操作的情況下)之后由工作者節(jié)點(diǎn)(或控制節(jié)點(diǎn))產(chǎn)生?;蛘撸瑱z查點(diǎn)可在項(xiàng)目的一定量(例如,某一百分比)已經(jīng)完成(例如,在所述項(xiàng)目包含較大數(shù)據(jù)集的情況下)之后產(chǎn)生。可基于項(xiàng)目和/或情形由主要控制節(jié)點(diǎn)(或在其它實(shí)施例中,由網(wǎng)格上的其它節(jié)點(diǎn)或由網(wǎng)格外部的用戶)選擇產(chǎn)生和保存或傳輸檢查點(diǎn)信息的方法。
在一些情形中,可在工作者節(jié)點(diǎn)處出現(xiàn)失效。圖10到12說明根據(jù)本發(fā)明技術(shù)的實(shí)施例的包含控制節(jié)點(diǎn)和一或多個(gè)工作者節(jié)點(diǎn)的通信網(wǎng)格。通信網(wǎng)格1000包含主要控制節(jié)點(diǎn)1002和工作者節(jié)點(diǎn)1010、1012、1014和1016。如所提到,主要控制節(jié)點(diǎn)1002可將正執(zhí)行的項(xiàng)目或數(shù)據(jù)集內(nèi)的工作分布到通信網(wǎng)格內(nèi)的工作者節(jié)點(diǎn)中的每一者使得每一工作者節(jié)點(diǎn)執(zhí)行項(xiàng)目的一部分。舉例來說,如圖10中所展示,工作者節(jié)點(diǎn)1010、1012、1014和1016各自可被分配正由通信網(wǎng)格1000執(zhí)行且由主要控制節(jié)點(diǎn)1002控制的項(xiàng)目的四分之一部分。工作者節(jié)點(diǎn)可將項(xiàng)目?jī)?nèi)的其進(jìn)展的檢查點(diǎn)或項(xiàng)目的其所分配的部分傳輸?shù)街饕刂乒?jié)點(diǎn)1002,以使得主要控制節(jié)點(diǎn)1002接收和存儲(chǔ)工作者節(jié)點(diǎn)中的每一者的進(jìn)展的周期性檢查點(diǎn)或狀態(tài)。通信網(wǎng)格1000還展示工作者節(jié)點(diǎn)中的一者,工作者節(jié)點(diǎn)1012可失效(通過圖10中的虛線指示),并且因此展示通信網(wǎng)格上的工作者節(jié)點(diǎn)1012與其它節(jié)點(diǎn)之間的通信路徑(例如,主要控制節(jié)點(diǎn)1002與工作者節(jié)點(diǎn)1012之間的路徑1062)可由于此失效而被切斷。
然而,通信網(wǎng)格1000可考慮工作者節(jié)點(diǎn)(例如,工作者節(jié)點(diǎn)1012)的失效。如所提到,工作者節(jié)點(diǎn)1012以通信方式連接到主要控制節(jié)點(diǎn)1002,主要控制節(jié)點(diǎn)1002可控制工作者節(jié)點(diǎn)1012和/或由工作者節(jié)點(diǎn)1012所執(zhí)行的工作。如果工作者節(jié)點(diǎn)1012失效,那么主要控制節(jié)點(diǎn)1002可檢測(cè)到工作者節(jié)點(diǎn)1012已失效或可接收到工作者節(jié)點(diǎn)1012已失效的通知。舉例來說,可通過另一工作者節(jié)點(diǎn)(例如,工作者節(jié)點(diǎn)1010、1014和/或1016,其還以通信方式連接到主要控制節(jié)點(diǎn)1002)或如果存在一個(gè)控制節(jié)點(diǎn),那么通過通信網(wǎng)格1000上的另一控制節(jié)點(diǎn)(例如,備份控制節(jié)點(diǎn))通知主要控制節(jié)點(diǎn)1002工作者節(jié)點(diǎn)1012已失效?;蛘?,可通過用戶(例如,經(jīng)由網(wǎng)格的通信1172的圖11中的服務(wù)器或管理員1170,如圖11中的通信網(wǎng)格1100內(nèi)所示,在本文中進(jìn)一步論述)通知主要控制節(jié)點(diǎn)1002。替代實(shí)施例包含使用閾值以確定在預(yù)定量的時(shí)間之后應(yīng)在何時(shí)建立或假設(shè)工作者節(jié)點(diǎn)已失效。舉例來說,如果在大于預(yù)定閾值的一定量的時(shí)間內(nèi)工作者節(jié)點(diǎn)尚未傳輸確認(rèn)通信(例如,ACK)或另一預(yù)期通信,如由預(yù)期接收此通信的控制節(jié)點(diǎn)或其它節(jié)點(diǎn)所注意到,那么可假設(shè)所述工作者節(jié)點(diǎn)已失效。此確定可允許控制節(jié)點(diǎn)將由失效工作者節(jié)點(diǎn)所執(zhí)行的工作重新分布到另一工作者節(jié)點(diǎn)。
為了在工作者節(jié)點(diǎn)1012失效之后彌補(bǔ)其損耗,或換句話說為了彌補(bǔ)分配到工作者節(jié)點(diǎn)1012的工作,主要控制節(jié)點(diǎn)1002可將由工作者節(jié)點(diǎn)1012所執(zhí)行的工作重新分布到通信網(wǎng)格1000上的其它工作者節(jié)點(diǎn)。舉例來說,在主要控制節(jié)點(diǎn)1002知道工作者節(jié)點(diǎn)1012已失效之后,主要控制節(jié)點(diǎn)1002可將通信(例如,消息或通知)傳輸?shù)狡渌ぷ髡吖?jié)點(diǎn)(例如,仍連接到主要控制節(jié)點(diǎn)1002且在通信網(wǎng)格1000上的全部或部分工作者節(jié)點(diǎn))中的每一者,所述通信包含其經(jīng)分配以致力于的從工作者節(jié)點(diǎn)1012重新分布的工作的部分。舉例來說,如圖12的通信網(wǎng)格1200中所展示(在本文中進(jìn)一步論述),主要控制節(jié)點(diǎn)1002可將通信1274傳輸?shù)焦ぷ髡吖?jié)點(diǎn)1010;將通信1576傳輸?shù)焦ぷ髡吖?jié)點(diǎn)1014;以及將通信1278傳輸?shù)焦ぷ髡吖?jié)點(diǎn)1016,所述通信包含此類信息。在接收到此通信之后,工作者節(jié)點(diǎn)1010、1014和1016可將在其所接收到的通信中所識(shí)別的工作添加到將對(duì)項(xiàng)目執(zhí)行的工作。舉例來說,如果來自失效工作者節(jié)點(diǎn)1012的剩余工作在工作者節(jié)點(diǎn)1010、1014和1016之間經(jīng)相等地重新分布,那么工作者節(jié)點(diǎn)1010、1014和1016中的每一者可在此工作已經(jīng)重新分布之后被分配所述項(xiàng)目剩余的總工作的三分之一。然而,工作的其它部分或分類也是可能的。舉例來說,替代方案可包含將新工作者節(jié)點(diǎn)添加到網(wǎng)格以呈現(xiàn)額外工作。
在替代實(shí)施例中,主要控制節(jié)點(diǎn)1002可將包含工作者節(jié)點(diǎn)中的每一者還應(yīng)有目的地失效的消息的通信(例如,斷開通信器消息)傳輸?shù)饺栽谕ㄐ啪W(wǎng)格1000上的工作者節(jié)點(diǎn)中的每一者。換句話說,消息可包含或引起每一工作者節(jié)點(diǎn)內(nèi)的通信錯(cuò)誤以使得仍在網(wǎng)格上的工作者節(jié)點(diǎn)中的每一者失效。在工作者節(jié)點(diǎn)中的每一者失效之后,其可各自檢索其狀態(tài)的最新保存的檢查點(diǎn)。每一工作者節(jié)點(diǎn)還可檢索第一失效工作者節(jié)點(diǎn),工作者節(jié)點(diǎn)1012的狀態(tài)或檢查點(diǎn)。舉例來說,如圖12中所展示,主要控制節(jié)點(diǎn)1002可將失效工作者節(jié)點(diǎn)1012的檢查點(diǎn)1242傳輸?shù)焦ぷ髡吖?jié)點(diǎn)1010、1014和1016。此可允許仍存在(例如,非失效)工作者節(jié)點(diǎn)中的每一者同時(shí)從其最新檢查點(diǎn)繼續(xù)致力于項(xiàng)目,并且因此所述工作者節(jié)點(diǎn)不會(huì)錯(cuò)漏待對(duì)項(xiàng)目執(zhí)行的工作中的任一者。此還可允許工作者節(jié)點(diǎn)在工作者節(jié)點(diǎn)1012在執(zhí)行工作時(shí)失效的時(shí)刻處繼續(xù)致力于從失效工作者節(jié)點(diǎn)重新分布的工作。使用此檢查點(diǎn)可允許工作者節(jié)點(diǎn)為高效的,以免重復(fù)已經(jīng)完成的工作或錯(cuò)漏需要完成的工作。此類檢查點(diǎn)可存儲(chǔ)在每一工作者節(jié)點(diǎn)內(nèi)或可從另一裝置或來源(例如,另一工作者節(jié)點(diǎn)、控制節(jié)點(diǎn)、云網(wǎng)絡(luò)或其它位置)所檢索到。將檢查點(diǎn)存儲(chǔ)在除備份控制節(jié)點(diǎn)處之外的裝置中可為有幫助的,以防出于一些原因備份控制節(jié)點(diǎn)尚未存儲(chǔ)檢查點(diǎn)或以防備份控制節(jié)點(diǎn)失效且新控制節(jié)點(diǎn)稍后加入網(wǎng)格。在此實(shí)施例中,已存儲(chǔ)檢查點(diǎn)的工作者節(jié)點(diǎn)或其它裝置或網(wǎng)絡(luò)可將檢查點(diǎn)或其它狀態(tài)信息傳輸?shù)叫驴刂乒?jié)點(diǎn)。
圖13為根據(jù)本發(fā)明技術(shù)的實(shí)施例的展示用于在控制節(jié)點(diǎn)失效之后調(diào)整通信網(wǎng)格中的工作項(xiàng)目的實(shí)例過程的流程圖1300。所述過程可包含例如在通信網(wǎng)格上連接到主要控制節(jié)點(diǎn)和工作者節(jié)點(diǎn)的備份控制節(jié)點(diǎn)處接收網(wǎng)格狀態(tài)信息,所述網(wǎng)格狀態(tài)信息包含主要控制節(jié)點(diǎn)的項(xiàng)目狀態(tài)或工作者節(jié)點(diǎn)的項(xiàng)目狀態(tài),其中主要控制節(jié)點(diǎn)的項(xiàng)目狀態(tài)和工作者節(jié)點(diǎn)的項(xiàng)目狀態(tài)包含正由通信網(wǎng)格中的主要節(jié)點(diǎn)和工作者節(jié)點(diǎn)執(zhí)行的項(xiàng)目的一或多個(gè)部分的狀態(tài)(步驟1302)。所述過程還可包含將網(wǎng)格狀態(tài)信息存儲(chǔ)在備份控制節(jié)點(diǎn)內(nèi)(步驟1304)。所述過程還可包含接收包含主要控制節(jié)點(diǎn)已失效的指示的失效通信(步驟1306)。所述過程還可包含在接收到失效通信時(shí)基于失效通信將備份控制節(jié)點(diǎn)指定為新主要控制節(jié)點(diǎn)(步驟1308)。所述過程還可包含基于主要控制節(jié)點(diǎn)已失效的所述指示接收經(jīng)更新的網(wǎng)格狀態(tài)信息,其中經(jīng)更新的網(wǎng)格狀態(tài)信息包含主要控制節(jié)點(diǎn)的經(jīng)更新的項(xiàng)目狀態(tài)或工作者節(jié)點(diǎn)的經(jīng)更新的項(xiàng)目狀態(tài)(步驟1310)。所述過程還可包含基于經(jīng)更新的網(wǎng)格狀態(tài)信息傳輸指令集,其中所述指令集包含使工作者節(jié)點(diǎn)在主要控制節(jié)點(diǎn)失效之后繼續(xù)致力于項(xiàng)目的指令(步驟1312)。
圖14為根據(jù)本發(fā)明技術(shù)的實(shí)施例的展示用于在工作者節(jié)點(diǎn)失效之后調(diào)整通信網(wǎng)格中的工作項(xiàng)目的實(shí)例過程的流程圖1400。所述過程可包含例如在通信網(wǎng)格上連接到一或多個(gè)工作者節(jié)點(diǎn)的主要控制節(jié)點(diǎn)處傳輸與正由一或多個(gè)工作者節(jié)點(diǎn)執(zhí)行的項(xiàng)目相關(guān)的工作者指令(步驟1402)。所述過程還可包含產(chǎn)生通信網(wǎng)格的快照,其中通信網(wǎng)格的快照包含一或多個(gè)工作者節(jié)點(diǎn)中的每一者的項(xiàng)目狀態(tài),其中工作者節(jié)點(diǎn)的項(xiàng)目狀態(tài)包含正由通信網(wǎng)格中的工作者節(jié)點(diǎn)執(zhí)行的項(xiàng)目的一部分的項(xiàng)目檢查點(diǎn)(步驟1404)。所述過程還可包含確定一或多個(gè)工作者節(jié)點(diǎn)中的失效工作者節(jié)點(diǎn)在失效時(shí)間處已失效(步驟1406)。所述過程還可包含使用通信網(wǎng)格的快照確定失效工作者節(jié)點(diǎn)的項(xiàng)目狀態(tài),其中失效工作者節(jié)點(diǎn)的項(xiàng)目狀態(tài)包含在失效工作者節(jié)點(diǎn)的失效時(shí)間處的失效工作者節(jié)點(diǎn)的項(xiàng)目檢查點(diǎn)(步驟1408)。所述過程還可包含傳輸經(jīng)更新的工作者指令,其中所述經(jīng)更新的工作者指令包含失效工作者節(jié)點(diǎn)的項(xiàng)目狀態(tài)和與正由一或多個(gè)工作者節(jié)點(diǎn)執(zhí)行的項(xiàng)目相關(guān)的經(jīng)更新的指令,其中當(dāng)接收到經(jīng)更新的工作者指令時(shí),起作用工作者節(jié)點(diǎn)完成正由失效工作者節(jié)點(diǎn)執(zhí)行的所述項(xiàng)目的所述部分(步驟1410)。
圖15為根據(jù)本發(fā)明技術(shù)的實(shí)施例的展示用于在控制節(jié)點(diǎn)失效之后調(diào)整通信網(wǎng)格中的工作項(xiàng)目的實(shí)例過程的流程圖1500。所述過程可包含例如通過通信網(wǎng)格中的備份控制節(jié)點(diǎn)接收包含主要控制節(jié)點(diǎn)連接到通信網(wǎng)格的指示的初始通信(步驟1502)。所述過程還可包含接收通信網(wǎng)格的快照,其中通信網(wǎng)格的快照包含連接到主要控制節(jié)點(diǎn)和備份控制節(jié)點(diǎn)的多個(gè)工作者節(jié)點(diǎn)中的每一者的工作者狀態(tài)(步驟1504)。所述過程還可包含確定自從接收到初始通信的時(shí)間段(步驟1506)。所述過程還可包含將所述時(shí)間段與閾值時(shí)間段相比較以確定主要控制節(jié)點(diǎn)已失效,其中在接收到失效通信時(shí),備份控制節(jié)點(diǎn)為新主要控制節(jié)點(diǎn)(步驟1508)。所述過程還可包含基于多個(gè)工作者節(jié)點(diǎn)中的一或多個(gè)工作者節(jié)點(diǎn)的工作者狀態(tài)傳輸指令集,其中所述指令集包含在主要控制節(jié)點(diǎn)失效之后繼續(xù)致力于項(xiàng)目的指令(步驟1510)。
圖16為根據(jù)本發(fā)明技術(shù)的實(shí)施例的展示用于從網(wǎng)格服務(wù)器的角度(例如,從網(wǎng)格上的經(jīng)建立節(jié)點(diǎn))驗(yàn)證節(jié)點(diǎn)之間的連接的實(shí)例過程的流程圖1600。如所提到,當(dāng)控制節(jié)點(diǎn)(例如,主要控制節(jié)點(diǎn))從另一控制節(jié)點(diǎn)接收連接時(shí),其可首先檢查以查看對(duì)等節(jié)點(diǎn)是否處于網(wǎng)格中經(jīng)配置節(jié)點(diǎn)的所存儲(chǔ)的列表中。如果對(duì)等節(jié)點(diǎn)不在列表上,那么其可清除(即,拒絕)連接。如果對(duì)等節(jié)點(diǎn)在列表上,那么其可接著試圖驗(yàn)證所述連接以便確保新節(jié)點(diǎn)屬于網(wǎng)格上??山?jīng)由允許單向或雙向驗(yàn)證的不同類型的消息的交換展示驗(yàn)證。舉例來說,不同類型的消息可包含:
-MSG_AUTH_TOKEN_RSP(“ATR”)。此消息可意味著驗(yàn)證數(shù)據(jù)塊經(jīng)發(fā)送,且回復(fù)應(yīng)包含數(shù)據(jù)塊。所述消息可包含算法標(biāo)識(shí)符。預(yù)期響應(yīng)可為MSG_AUTH_TOKEN_RSP、MSG_AUTH_TOKEN_NO_RSP或MSG_AUTH_FAILED。
-MSG_AUTH_TOKEN_NO_RSP(“ATNR”)。此消息可意味著提供驗(yàn)證數(shù)據(jù)塊,且不需要另外的驗(yàn)證數(shù)據(jù)作為響應(yīng)。所述消息可包含算法標(biāo)識(shí)符。實(shí)例ATNR消息可包含用戶名和/或口令,或其它類型的消息。
-MSG_AUTH_COMPLETE(“ATC”)。此消息可包含驗(yàn)證已成功地完成的指示。
-MSG_AUTH_FAILED(“ATF”)。此消息可指示驗(yàn)證失敗。所述消息可包含診斷失敗代碼。
如圖16中所展示,驗(yàn)證節(jié)點(diǎn)可等待消息(框1602)和接收消息(框1604)。當(dāng)接收到消息時(shí),節(jié)點(diǎn)可確定所述消息是否為ATR或ATNR消息(框1606)。如果所述消息既不是ATR也不是ATNR消息,那么節(jié)點(diǎn)可傳輸ATF消息且過程可結(jié)束。如果確定所述消息為ATR或ATNR消息,那么驗(yàn)證節(jié)點(diǎn)可在1610和1612處確認(rèn)所接收到的數(shù)據(jù)有效。如果數(shù)據(jù)有效,且消息為ATR(如在框1614處所確定),那么節(jié)點(diǎn)可由于ATR消息需要響應(yīng)而在框1616處產(chǎn)生對(duì)ATR的響應(yīng)。接著,節(jié)點(diǎn)可在框1618處確定是否需要較多驗(yàn)證數(shù)據(jù),且如果是的話在1630處發(fā)送ATR。如果為否的話,那么節(jié)點(diǎn)可在1620處傳輸ATNR且在1622處等待響應(yīng)。在1624處,節(jié)點(diǎn)可確定所接收到的響應(yīng)(在框1622處)是否為ATC。如果是,那么驗(yàn)證成功,如框1640中所展示。如果否,那么節(jié)點(diǎn)可在框1632處發(fā)送ATF作為響應(yīng)(由于驗(yàn)證失敗,如框1634和1638中所展示)。
圖17為根據(jù)本發(fā)明技術(shù)的實(shí)施例的展示用于從網(wǎng)格客戶端的角度(例如,從網(wǎng)格上的新節(jié)點(diǎn))驗(yàn)證節(jié)點(diǎn)之間的連接的實(shí)例過程的流程圖1700。圖17中所展示的流程圖1700極其類似于圖16中所展示的流程圖1600,除了流程圖1700包含框1702、1704、1706和1708以確定是否將需要驗(yàn)證數(shù)據(jù)作為響應(yīng)。在框1702中,節(jié)點(diǎn)可產(chǎn)生初始驗(yàn)證數(shù)據(jù),且接著在框1704處,確定是否需要驗(yàn)證數(shù)據(jù)作為響應(yīng)。如果是,那么節(jié)點(diǎn)可在1706處傳輸ATR以需要驗(yàn)證數(shù)據(jù)作為響應(yīng)。如果否,那么節(jié)點(diǎn)可在1728處傳輸ATNR。
如所提到,如果需要驗(yàn)證數(shù)據(jù)作為響應(yīng),那么驗(yàn)證節(jié)點(diǎn)可等待消息(框1712)和接收消息。當(dāng)接收到消息時(shí),節(jié)點(diǎn)可確定所述消息為ATR還是ATNR消息(框1714)。如果所述消息既不是ATR消息也不是ATNR消息,那么節(jié)點(diǎn)可傳輸ATF消息(框1736)且過程可由于所述過程失敗(如節(jié)點(diǎn)1738和1740中所展示)而結(jié)束。如果確定所述消息為ATR或ATNR消息,那么驗(yàn)證節(jié)點(diǎn)可在1718和1720處確認(rèn)所接收到的數(shù)據(jù)有效。如果數(shù)據(jù)有效,且消息為ATR(如在框1722處所確定),那么節(jié)點(diǎn)可由于ATR消息需要響應(yīng)而在框1724處產(chǎn)生對(duì)ATR的響應(yīng)。接著,節(jié)點(diǎn)可在框1726處確定是否需要較多驗(yàn)證數(shù)據(jù),且如果是的話在1715處發(fā)送ATR。如果否,那么節(jié)點(diǎn)可在1728處傳輸ATNR且在1730處等待響應(yīng)。在1732處,節(jié)點(diǎn)可確定所接收到的響應(yīng)是否為ATC。如果是,那么驗(yàn)證成功,如框1742中所展示。如果否,那么節(jié)點(diǎn)可在1636框處發(fā)送ATF作為響應(yīng)。返回參考節(jié)點(diǎn)1722,如果確定消息不是ATR,那么可由于驗(yàn)證成功(如圖1742中所展示)發(fā)送ATC消息(在節(jié)點(diǎn)1740處)
圖18為根據(jù)本發(fā)明技術(shù)的實(shí)施例的展示將一系列節(jié)點(diǎn)(經(jīng)m到n編號(hào))分配為一節(jié)點(diǎn)(例如,控制節(jié)點(diǎn))的子節(jié)點(diǎn)的實(shí)例過程的流程圖1800。在框1802處,節(jié)點(diǎn)m可被分配為左側(cè)子(例如,工作者)節(jié)點(diǎn)。接著,為了檢查以查看是否存在其它子節(jié)點(diǎn),可在框1804處確定n-m是否=1,或換句話說所分配的上一個(gè)子節(jié)點(diǎn)(m)是否小于或等于子節(jié)點(diǎn)的總數(shù)目(n)。如果是,那么所述過程可結(jié)束。如果否,那么節(jié)點(diǎn)m+1可在框1806處被分配為右側(cè)子節(jié)點(diǎn)。檢查以查看是否存在其它子節(jié)點(diǎn)的過程通過檢查以查看m-n是否=2而在框1808中再現(xiàn)。如果是,那么所述過程可結(jié)束。如果否,那么算法m+2+((m-n-2)/2)可在框1810處用于確定“mid”子節(jié)點(diǎn)值。可遞歸地使用所述算法以將節(jié)點(diǎn)m+2直到mid分配為左側(cè)子節(jié)點(diǎn)的子節(jié)點(diǎn)且將節(jié)點(diǎn)mid+1直到n分配為左側(cè)子節(jié)點(diǎn)的子節(jié)點(diǎn)。在計(jì)算出“mid”之后,可再兩次調(diào)用所述算法。調(diào)用算法的第一次,可在new_m=old_m+2和new_n=mid時(shí)調(diào)用所述算法。調(diào)用算法的第二次,可在new_m=mid+1和new_n=old_n時(shí)調(diào)用算法。
圖19為根據(jù)本發(fā)明技術(shù)的實(shí)施例的展示主要控制節(jié)點(diǎn)在通信網(wǎng)格中的其它節(jié)點(diǎn)之間分布客戶端項(xiàng)目的工作的實(shí)例過程的流程圖1900。在框1902中,主要控制節(jié)點(diǎn)確定如何將工作分布到工作者節(jié)點(diǎn)(和此種分布是否可能)。舉例來說,此步驟可發(fā)生在已經(jīng)分配和驗(yàn)證網(wǎng)格上的工作者節(jié)點(diǎn)之后,如圖16到18中所描述。主要控制節(jié)點(diǎn)可接著在框1904處確定網(wǎng)格是否包含足夠工作者節(jié)點(diǎn)以完成所述工作階段。如果否,那么可在框1906處確定操作或階段已失敗。如果是,那么主要控制節(jié)點(diǎn)可在框1908處保存狀態(tài)且在框1910處將網(wǎng)格快照或狀態(tài)信息傳輸?shù)絺浞菘刂乒?jié)點(diǎn)。主要控制節(jié)點(diǎn)可接著在框1912處跨越工作者節(jié)點(diǎn)分布工作(從工作的某一階段,在所述工作呈多階段的情況下),且在框1914處等待工作者節(jié)點(diǎn)完成階段或失效??山又诳?916處確定任何工作者是否失效。如果一或多個(gè)工作者失效,那么可進(jìn)行若干過程中的一者以補(bǔ)救所述失效。舉例來說,主要控制節(jié)點(diǎn)可在工作者節(jié)點(diǎn)中的其余工作者節(jié)點(diǎn)當(dāng)中重新分布工作。在另一實(shí)例中,主要控制節(jié)點(diǎn)可誘發(fā)所有工作者節(jié)點(diǎn)的失效(例如,在框1918處)以使得每一工作者節(jié)點(diǎn)可在致力于項(xiàng)目的網(wǎng)格的最新快照處重新開始其工作。舉例來說,工作者節(jié)點(diǎn)可在框1920處接著將其繼續(xù)工作狀態(tài)恢復(fù)到所保存的狀態(tài)(例如,使用所保存的快照),且接著在框1922處重試?yán)^續(xù)工作階段(在所述階段上失效工作者節(jié)點(diǎn)失效)。返回參考框1916,如果工作者未失效,那么主要控制節(jié)點(diǎn)可在框1924處考慮所述階段是否為所述項(xiàng)目的最后一個(gè)階段。如果是,那么主要控制節(jié)點(diǎn)可在框1928處報(bào)告成功完成。如果否,那么主要控制節(jié)點(diǎn)可在框1926處將工作分配到項(xiàng)目中的下一階段的工作者節(jié)點(diǎn)。
圖20為根據(jù)本發(fā)明技術(shù)的實(shí)施例的展示備份控制節(jié)點(diǎn)接收經(jīng)更新的狀態(tài)信息和將其存儲(chǔ)在通信網(wǎng)格中的實(shí)例過程的流程圖2000。如本文中所提到,通信網(wǎng)格可具有一個(gè)、兩個(gè)、三個(gè)或更多個(gè)控制節(jié)點(diǎn)。圖20可僅應(yīng)用于包含多于一個(gè)控制節(jié)點(diǎn)的通信網(wǎng)格。在步驟2002處,備份控制節(jié)點(diǎn)可等待狀態(tài)更新通過主要控制節(jié)點(diǎn)傳輸。在框2004、2014、2023和2022中,狀態(tài)或網(wǎng)格快照可經(jīng)更新。舉例來說,如果狀態(tài)具有預(yù)定時(shí)間,在所述預(yù)定時(shí)間之后狀態(tài)可停用或終止(例如在框2004處所確定),且已達(dá)到所述時(shí)間,那么可在框2014處確定所述狀態(tài)是否為經(jīng)更新的狀態(tài)(例如,在備份控制節(jié)點(diǎn)接收到經(jīng)更新的狀態(tài)信息的情況下,例如呈網(wǎng)格快照形式)。如果是,那么狀態(tài)信息可在框2023處經(jīng)保存,如果不再需要,那么舊的或過期狀態(tài)信息可經(jīng)丟棄,且備份控制節(jié)點(diǎn)可等待另一狀態(tài)更新(例如,來自主要控制節(jié)點(diǎn))。如果在框2004處狀態(tài)準(zhǔn)備好終止,那么狀態(tài)可在框2008、2010和2012中終止。如果狀態(tài)為正常(例如,經(jīng)調(diào)度)終止(如在框2008處所確定),那么所述過程可在框1212處終止。如果否,那么備份控制節(jié)點(diǎn)可在框2010處記錄錯(cuò)誤消息且接著在框2012處終止。返回參考框2014,如果狀態(tài)并不包含經(jīng)更新的狀態(tài),那么備份控制節(jié)點(diǎn)可在框2016處確定主要控制節(jié)點(diǎn)已失效。在框2026處,可在框2026處恢復(fù)最新存儲(chǔ)的狀態(tài)(例如,來自主要控制節(jié)點(diǎn)),且備份控制節(jié)點(diǎn)可在框2028和2018處接替為主要控制節(jié)點(diǎn)。
圖21為根據(jù)本發(fā)明技術(shù)的實(shí)施例的展示在通信網(wǎng)格計(jì)算期間的工作者節(jié)點(diǎn)的實(shí)例過程的流程圖2100。在步驟2104處,工作者節(jié)點(diǎn)可接受如從控制節(jié)點(diǎn)所分配的工作,且可執(zhí)行所分配的工作直到其已完成所述工作為止或直到所述工作者節(jié)點(diǎn)已失效為止(在框2106處),如在框2108處所確定。如果工作者節(jié)點(diǎn)失效,那么其可在框2114處恢復(fù)其最后一個(gè)所保存的狀態(tài)(例如,使用先前存儲(chǔ)的狀態(tài)或快照)且接受來自控制節(jié)點(diǎn)的下一工作項(xiàng)(例如,回到框2104)。如果工作者節(jié)點(diǎn)未失效,且未找到錯(cuò)誤,那么工作者節(jié)點(diǎn)可在框2110處確定完成狀態(tài)是否為項(xiàng)目的最后一個(gè)階段。如果是,那么工作者節(jié)點(diǎn)可在框2128處報(bào)告成功且終止所述過程。如果所述完成階段不是最后一個(gè)階段,那么工作者節(jié)點(diǎn)可在框2112處移動(dòng)到其所分配工作中的下一階段。在通過工作者節(jié)點(diǎn)開始任何階段之前,工作者節(jié)點(diǎn)可保存其當(dāng)前狀態(tài)(例如,在框2104處)以使得工作者節(jié)點(diǎn)將具有所存儲(chǔ)的其先前(和最新的)狀態(tài)以防工作者節(jié)點(diǎn)失效。工作者節(jié)點(diǎn)可通過例如控制節(jié)點(diǎn)在請(qǐng)求工作者節(jié)點(diǎn)這樣做的任何時(shí)間處傳輸其狀態(tài)且所述狀態(tài)可并入為網(wǎng)格快照的部分。
圖22為根據(jù)本發(fā)明技術(shù)的實(shí)施例的展示用于在通信網(wǎng)格內(nèi)廣播數(shù)據(jù)的實(shí)例過程的流程圖2200。在框2202中,節(jié)點(diǎn)可確定所述節(jié)點(diǎn)將想要廣播到網(wǎng)格中的節(jié)點(diǎn)中的其余節(jié)點(diǎn)的數(shù)據(jù)是否較大(例如,大于64KB)。如果確定數(shù)據(jù)并不較大,那么節(jié)點(diǎn)可在框2204中確定所述數(shù)據(jù)是否正在工作者節(jié)點(diǎn)上運(yùn)行(例如,并不在控制節(jié)點(diǎn)上運(yùn)行)。如果否,那么節(jié)點(diǎn)可在框2208處等待所有工作者節(jié)點(diǎn)準(zhǔn)備好接收數(shù)據(jù),并且在框2210處,將所述數(shù)據(jù)傳輸?shù)綄⑾胍\(yùn)行所述數(shù)據(jù)的每一工作者節(jié)點(diǎn)。如果是,那么節(jié)點(diǎn)可在框2210處將數(shù)據(jù)傳輸?shù)焦ぷ髡吖?jié)點(diǎn)。返回參考框2202,如果確定數(shù)據(jù)的廣播較大,那么節(jié)點(diǎn)可在框2214中確定所述數(shù)據(jù)是否運(yùn)行于工作者節(jié)點(diǎn)上。如果否,那么節(jié)點(diǎn)可在框2216處將其它節(jié)點(diǎn)組織成樹(例如,使用圖21中所展示的算法)。接著,節(jié)點(diǎn)可在框2220處等待所有工作者準(zhǔn)備好接收數(shù)據(jù)(類似于框2208),且接著在框2216處將所述數(shù)據(jù)發(fā)送到其直接工作者子節(jié)點(diǎn)。返回參考框2214,如果確定數(shù)據(jù)運(yùn)行于工作者節(jié)點(diǎn)上,那么節(jié)點(diǎn)可告知控制節(jié)點(diǎn)工作者節(jié)點(diǎn)已經(jīng)準(zhǔn)備好接收數(shù)據(jù)(在框2218處)。接著,節(jié)點(diǎn)可在框2222處等待來自其直接父節(jié)點(diǎn)(例如,控制節(jié)點(diǎn))的數(shù)據(jù)塊;在框2224處將數(shù)據(jù)復(fù)制到輸出緩沖器;以及在框2226處將數(shù)據(jù)重新發(fā)送到直接工作者子節(jié)點(diǎn)中的任一者。接著,可在框2228處確定是否所有數(shù)據(jù)已由工作者節(jié)點(diǎn)所接收到。如果是,那么所述過程可結(jié)束。如果否,那么所述過程可返回到框2222且再次等待來自其直接父節(jié)點(diǎn)的數(shù)據(jù)塊。
圖23為根據(jù)本發(fā)明技術(shù)的實(shí)施例的展示用于通信網(wǎng)格內(nèi)的約簡(jiǎn)算法的實(shí)例過程的流程圖2300。換句話說,流程圖2300展示用于從通信網(wǎng)格中的若干或每一節(jié)點(diǎn)獲得輸入數(shù)據(jù)且基于所述數(shù)據(jù)執(zhí)行操作以獲得單個(gè)結(jié)果塊的過程。如本文中所描述,本發(fā)明技術(shù)的實(shí)施例限制約簡(jiǎn)操作以使得需要每一節(jié)點(diǎn)上的數(shù)據(jù)塊為相同大小且所述操作并不取決于操作的次序??蓪?duì)每一節(jié)點(diǎn)上的單個(gè)對(duì)象或?qū)γ恳还?jié)點(diǎn)上的一系列對(duì)象執(zhí)行約簡(jiǎn)操作。共用約簡(jiǎn)操作可包含:相乘(例如,得出所有節(jié)點(diǎn)上的所有值的乘積);求和(例如,得出所有節(jié)點(diǎn)上的所有值的總和);最小值(例如,得出所有節(jié)點(diǎn)上的最小值);以及最大值(例如,得出所有節(jié)點(diǎn)上的最大值),以及其它操作。
流程圖2300可以確定約簡(jiǎn)是否較大開始(框2302)。如果是,網(wǎng)格可將節(jié)點(diǎn)組織成樹(框2304);將輸入緩沖器分裂成塊(框2306);以及將下一塊復(fù)制到約簡(jiǎn)緩沖器中(框2308)。舉例來說,節(jié)點(diǎn)可包含三個(gè)緩沖器:(1)輸入緩沖器,其可含有源自本地機(jī)器的數(shù)據(jù);(2)輸出緩沖器,其存在于控制節(jié)點(diǎn)上;以及(3)“約簡(jiǎn)緩沖器”,其可為可用于計(jì)算所述節(jié)點(diǎn)自身和連接到其的所有子節(jié)點(diǎn)的部分結(jié)果的每一節(jié)點(diǎn)上的暫時(shí)緩沖器。輸出緩沖器與輸入緩沖器可為相同大小(但大于約簡(jiǎn)緩沖器),且輸出緩沖器可表示跨越網(wǎng)格中的所有節(jié)點(diǎn)的約簡(jiǎn)操作的結(jié)果。在步驟2306中,輸入緩沖器可被細(xì)分成塊,以使得每一塊足夠的小以剛好放入約簡(jiǎn)緩沖器中。在實(shí)例實(shí)施例中,如果輸入和輸出緩沖器各自含有待通過添加操作減少的百萬個(gè)雙精度數(shù),那么約簡(jiǎn)緩沖器可足夠的大以含有5,000個(gè)雙精度數(shù)。在所述實(shí)例中,輸入緩沖器可被分成每5,000個(gè)雙精度數(shù)200個(gè)塊。
每次到達(dá)步驟2308,可將單個(gè)數(shù)據(jù)塊復(fù)制到輸入緩沖器之外且復(fù)制到約簡(jiǎn)緩沖器中。網(wǎng)格可接著確定所述塊是否具有任何直接子節(jié)點(diǎn)(框2326)。如果否,那么網(wǎng)格可檢查以查看所述塊是否具有父節(jié)點(diǎn)(框2332)。如果是,那么網(wǎng)格可將“準(zhǔn)備好接收”信號(hào)發(fā)送到直接子節(jié)點(diǎn)(框2328);等待從子節(jié)點(diǎn)發(fā)送數(shù)據(jù)塊(框2316);以及將子數(shù)據(jù)塊合并到緩沖器(例如,約簡(jiǎn)緩沖器)(框2317)。接著,網(wǎng)格可檢查以查看所述塊是否具有父節(jié)點(diǎn)(框2332)。如果否,那么網(wǎng)格可將約簡(jiǎn)緩沖器復(fù)制到輸出緩沖器(框2330)。舉例來說,由于約簡(jiǎn)緩沖器的內(nèi)容可含有數(shù)據(jù)的子集的結(jié)果,因此可接著將所述結(jié)果復(fù)制到輸出緩沖器的正確部分中。如果仍需要處理來自輸入緩沖器的任何更多數(shù)據(jù)塊(步驟2338),那么執(zhí)行可以步驟2308繼續(xù)。返回參考框2332,如果所述塊的確具有父節(jié)點(diǎn),那么網(wǎng)格可接著等待來自父節(jié)點(diǎn)的“準(zhǔn)備好接收”信號(hào)(框2328)且將約簡(jiǎn)緩沖器發(fā)送到父節(jié)點(diǎn)(框2336)。舉例來說,約簡(jiǎn)緩沖器可含有對(duì)以當(dāng)前節(jié)點(diǎn)為根的網(wǎng)格的子樹的單個(gè)數(shù)據(jù)塊的約簡(jiǎn)操作的結(jié)果。當(dāng)父節(jié)點(diǎn)準(zhǔn)備好接收更多信息時(shí),當(dāng)前節(jié)點(diǎn)的約簡(jiǎn)緩沖器的內(nèi)容可轉(zhuǎn)發(fā)到其父節(jié)點(diǎn),以使得其父節(jié)點(diǎn)可繼續(xù)操作。網(wǎng)格可接著在框2338處檢查以查看所有塊是否皆已經(jīng)處理。如果否,那么流程圖返回到框2308以將下一塊復(fù)制到約簡(jiǎn)緩沖器中。如果是,那么所述過程移動(dòng)到框2338以確定所有塊是否皆已經(jīng)處理。
返回參考框2302,如果確定約簡(jiǎn)并不較大,那么網(wǎng)格可在框2310處確定所述約簡(jiǎn)是否運(yùn)行于控制節(jié)點(diǎn)上。如果否,那么網(wǎng)格可等待來自控制節(jié)點(diǎn)的“準(zhǔn)備好接收”信號(hào)(框2314);將所有數(shù)據(jù)發(fā)送到控制節(jié)點(diǎn)(框2316);以及結(jié)束所述過程。如果是,那么網(wǎng)格可將本地?cái)?shù)據(jù)復(fù)制到輸出緩沖器中(框2312);且將“準(zhǔn)備好接收”信號(hào)發(fā)送到所有工作者節(jié)點(diǎn)(框2318);在可用時(shí)從工作者節(jié)點(diǎn)接收數(shù)據(jù)(框2320);以及將數(shù)據(jù)合并到輸出緩沖器中(框2322)。在框2324處,網(wǎng)格確定是否已接收到所有數(shù)據(jù)。如果否,那么所述過程返回到框2318。如果是,那么所述過程結(jié)束。
在節(jié)點(diǎn)(例如,控制節(jié)點(diǎn))的通信器句柄處可用的實(shí)例操作集合描述如下。
-send_state_to_backups:可用于主要控制節(jié)點(diǎn)。此將狀態(tài)數(shù)據(jù)塊發(fā)送到每一備份控制節(jié)點(diǎn)。此將允許主要控制節(jié)點(diǎn)在在主要節(jié)點(diǎn)失效之后可使用的備份控制節(jié)點(diǎn)中建立最后一個(gè)已知狀態(tài)。此調(diào)用將經(jīng)阻斷直到每一備份控制節(jié)點(diǎn)已接收到信息為止。如果不存在備份控制節(jié)點(diǎn),那么此調(diào)用毫無用處。
-get_state_from_primary:可用于備份控制節(jié)點(diǎn)。此將接收狀態(tài)信息。狀態(tài)將呈以下4個(gè)形式中的一者:a)準(zhǔn)備好正常終止;b)準(zhǔn)備好異常終止;c)主要控制節(jié)點(diǎn)已失效,且已選擇此控制節(jié)點(diǎn)充當(dāng)新主要節(jié)點(diǎn);d)主要控制節(jié)點(diǎn)狀態(tài)信息。第四個(gè)形式將包含來自主要控制節(jié)點(diǎn)的狀態(tài)數(shù)據(jù)塊。此塊應(yīng)用于備份節(jié)點(diǎn)接替為主要節(jié)點(diǎn)的事件中。此調(diào)用還將返回特定狀態(tài),如果曾將其選為新主要節(jié)點(diǎn)的話。
-takeover_communicator:僅可用于備份控制節(jié)點(diǎn)。此將使得備份控制節(jié)點(diǎn)假設(shè)主要控制節(jié)點(diǎn)在通信器中的角色。
-send:將數(shù)據(jù)塊發(fā)送到單個(gè)指定的對(duì)等節(jié)點(diǎn)
-recv:從單個(gè)指定的對(duì)等節(jié)點(diǎn)接收數(shù)據(jù)塊
-find_data:找到對(duì)等節(jié)點(diǎn),來自其的數(shù)據(jù)可用于接收。任選地,等待數(shù)據(jù)變?yōu)榭捎玫摹?/p>
-broadcast:將來自單個(gè)節(jié)點(diǎn)的數(shù)據(jù)塊分布到網(wǎng)格中的每一其它節(jié)點(diǎn)。廣播操作可為簡(jiǎn)單的或基于樹的。對(duì)于小數(shù)據(jù)塊,控制節(jié)點(diǎn)將整個(gè)數(shù)據(jù)塊發(fā)送到每一工作者節(jié)點(diǎn)。對(duì)于較大數(shù)據(jù)塊,將節(jié)點(diǎn)組織成樹,其中每一節(jié)點(diǎn)將數(shù)據(jù)轉(zhuǎn)播到最多兩個(gè)其它節(jié)點(diǎn)。可使用圖21中的算法產(chǎn)生所述樹??墒褂脠D22中所描述的算法或過程執(zhí)行廣播。
-reduce:接受網(wǎng)格中的每一節(jié)點(diǎn)上的鍵入數(shù)據(jù)的向量。對(duì)來自每一節(jié)點(diǎn)的陣列的每一元素執(zhí)行特定操作。將所得數(shù)據(jù)陣列發(fā)送到單個(gè)節(jié)點(diǎn)??墒褂脠D21中的算法產(chǎn)生樹。可使用圖23中所描述的算法或過程執(zhí)行廣播。
-reduce_all:與reduce相同的操作,除所得陣列可用于網(wǎng)格中的每一節(jié)點(diǎn)上以外。
-barrier:阻斷直到網(wǎng)格中的每一節(jié)點(diǎn)調(diào)用為止。
-list_broken_nodes:找到通信器中已失效的一系列節(jié)點(diǎn)
-on_failure:建立每次通信API失效時(shí)將調(diào)用的回調(diào)函數(shù)。此可通過具有處理所有失效的單個(gè)功能簡(jiǎn)化錯(cuò)誤處置。
-on_node_failure:建立將在網(wǎng)格中的任何對(duì)等節(jié)點(diǎn)已失效時(shí)調(diào)用的回調(diào)函數(shù)。此可允許集中化位置甚至在通信API尚未失效時(shí)以及時(shí)方式處理對(duì)等節(jié)點(diǎn)的損耗。
-root_rank:找到當(dāng)前主要控制節(jié)點(diǎn)的級(jí)別
-num_ranks:找到參與在通信器中的節(jié)點(diǎn)(并不包含備份控制節(jié)點(diǎn))的數(shù)目
-close:中斷參與到通信器中。任何其它節(jié)點(diǎn)將視此節(jié)點(diǎn)為失效的。
-break_communicator:使得網(wǎng)格中的每一節(jié)點(diǎn)遭遇通信失效。此可用于迫使每一節(jié)點(diǎn)中的錯(cuò)誤恢復(fù)路徑。
-duplicate_communicator:基于現(xiàn)存通信器產(chǎn)生新通信器。新通信器中的節(jié)點(diǎn)可包含當(dāng)前通信器中的每一節(jié)點(diǎn),或那些節(jié)點(diǎn)的子集。
在本文中所描述的一些實(shí)例中,系統(tǒng)和方法可包含經(jīng)由網(wǎng)絡(luò)(例如,局域網(wǎng)、廣域網(wǎng)、因特網(wǎng)或其組合等)、光纖媒體、載波、無線網(wǎng)絡(luò)等傳送的數(shù)據(jù)傳輸以供與一或多個(gè)數(shù)據(jù)處理裝置的通信。數(shù)據(jù)傳輸可攜載提供到裝置或來自裝置的本文中所揭示的數(shù)據(jù)中的任一者或全部。
一些方面可利用物聯(lián)網(wǎng)(IoT),其中事物(例如,機(jī)器、裝置、電話、傳感器)可連接到網(wǎng)絡(luò)且可收集來自這些事物的數(shù)據(jù)和將其在事物內(nèi)和/或事物外部進(jìn)行處理。舉例來說,在IoT的情況下,在許多不同裝置中可存在傳感器,且高值分析可應(yīng)用于識(shí)別隱藏關(guān)系和驅(qū)動(dòng)效率提高。此可應(yīng)用于大數(shù)據(jù)分析和實(shí)時(shí)(流化)分析。
另外,可通過包括可由裝置處理子系統(tǒng)執(zhí)行的程序指令的程序代碼在許多不同類型的處理裝置上實(shí)施本文中所描述的方法及和系統(tǒng)。軟件程序指令可包含源碼、目標(biāo)代碼、機(jī)器代碼或任何其它存儲(chǔ)數(shù)據(jù),其可操作以使處理系統(tǒng)執(zhí)行本文中所描述的方法和操作。然而,還可使用其它實(shí)施方案,例如經(jīng)配置以進(jìn)行本文中所描述的方法和系統(tǒng)的固件或甚至適當(dāng)設(shè)計(jì)的硬件。
系統(tǒng)和方法的數(shù)據(jù)(例如,關(guān)聯(lián)、映射、數(shù)據(jù)輸入、數(shù)據(jù)輸出、中間數(shù)據(jù)結(jié)果、最終數(shù)據(jù)結(jié)果等)可存儲(chǔ)和實(shí)施于一或多個(gè)不同類型的計(jì)算機(jī)實(shí)施數(shù)據(jù)存儲(chǔ)裝置中,例如不同類型的存儲(chǔ)裝置和編程構(gòu)造(例如,RAM、ROM、快閃存儲(chǔ)器、可移動(dòng)存儲(chǔ)器、平面文件、暫時(shí)存儲(chǔ)器、數(shù)據(jù)庫(kù)、編程數(shù)據(jù)結(jié)構(gòu)、編程變量、IF-THEN(或類似類型)語(yǔ)句構(gòu)造等)。應(yīng)注意,數(shù)據(jù)結(jié)構(gòu)可描述用于在數(shù)據(jù)庫(kù)、程序、存儲(chǔ)器或由計(jì)算機(jī)程序使用的其它計(jì)算機(jī)可讀媒體中組織和存儲(chǔ)數(shù)據(jù)的格式。
計(jì)算機(jī)程序(也被稱作程序、軟件、軟件應(yīng)用程序、腳本或代碼)可以任何形式的編程語(yǔ)言編寫,包含經(jīng)編譯或解譯語(yǔ)言;且其可以任何形式部署,包含作為獨(dú)立程序或作為適合于在計(jì)算環(huán)境中使用的模塊、組件、子例程或其它單元。計(jì)算機(jī)程序不一定與文件系統(tǒng)中的文件相對(duì)應(yīng)。程序可存儲(chǔ)在保持其它程序或數(shù)據(jù)(例如,存儲(chǔ)在標(biāo)記語(yǔ)言文檔中的一或多個(gè)腳本)的文件的一部分中、專用于所討論程序的單個(gè)文件中,或多個(gè)經(jīng)協(xié)調(diào)文件(例如,存儲(chǔ)一或多個(gè)模塊、子程序或代碼的部分的文件)中。計(jì)算機(jī)程序可經(jīng)部署以在一個(gè)計(jì)算機(jī)上或在位于一個(gè)位點(diǎn)或跨越多個(gè)位點(diǎn)分布并由通信網(wǎng)絡(luò)互連的多個(gè)計(jì)算機(jī)上執(zhí)行??赏ㄟ^一或多個(gè)可編程處理器執(zhí)行一或多個(gè)計(jì)算機(jī)程序以通過對(duì)輸入數(shù)據(jù)進(jìn)行操作和產(chǎn)生輸出而執(zhí)行功能來執(zhí)行本說明書中所描述和所展示的過程和邏輯流程和圖式。
一般來說,計(jì)算機(jī)還可包含用于存儲(chǔ)數(shù)據(jù)的一個(gè)或多個(gè)大容量存儲(chǔ)裝置,或以操作方式耦合以從所述大容量存儲(chǔ)裝置接收數(shù)據(jù)或向其傳送數(shù)據(jù)或進(jìn)行這兩種操作,所述大容量存儲(chǔ)裝置例如磁盤、磁光盤或光盤。然而,計(jì)算機(jī)無需具有此類裝置。此外,計(jì)算機(jī)可嵌入于另一裝置(例如,移動(dòng)電話、個(gè)人數(shù)字助理(PDA)、平板計(jì)算機(jī)、移動(dòng)查看裝置、移動(dòng)音頻播放器、全球定位系統(tǒng)(GPS)接收器,僅列舉一些)中。適合于存儲(chǔ)計(jì)算機(jī)程序指令和數(shù)據(jù)的計(jì)算機(jī)可讀媒體包含所有形式的非易失性存儲(chǔ)器、媒體和存儲(chǔ)器裝置,包含例如:半導(dǎo)體存儲(chǔ)器裝置,例如EPROM、EEPROM和快閃存儲(chǔ)器裝置;磁盤,例如內(nèi)部硬盤或可移動(dòng)的磁盤;磁光盤;以及CD ROM和DVD-ROM盤。處理器和存儲(chǔ)器可由專用邏輯電路補(bǔ)充或并入在專用邏輯電路中。
本文中所描述的計(jì)算機(jī)組件、軟件模塊、函數(shù)、數(shù)據(jù)存儲(chǔ)裝置和數(shù)據(jù)結(jié)構(gòu)可彼此直接或間接連接以便允許數(shù)據(jù)由于其操作所需而流動(dòng)。還應(yīng)注意,模塊或處理器包含(但不限于)執(zhí)行軟件操作的代碼單元,且可例如實(shí)施作為代碼的子例程單元,或作為代碼的軟件功能單元,或作為對(duì)象(如在面向?qū)ο蟮姆妒奖碇?,或作為小程序,或?qū)嵤┯谟?jì)算機(jī)腳本語(yǔ)言中,或作為另一類型的計(jì)算機(jī)代碼。軟件組件或功能性可取決于迫切情況而位于單個(gè)計(jì)算機(jī)上或跨越多個(gè)計(jì)算機(jī)分布。
計(jì)算機(jī)可包含執(zhí)行對(duì)數(shù)字以及文字、圖形、符號(hào)和聲音的高速處理的可編程機(jī)器。計(jì)算機(jī)可處理、產(chǎn)生或轉(zhuǎn)換數(shù)據(jù)。計(jì)算機(jī)包含解譯和執(zhí)行指令的中央處理單元;輸入裝置,例如鍵盤、小鍵盤或鼠標(biāo),經(jīng)由所述輸入裝置將數(shù)據(jù)和命令輸入計(jì)算機(jī);使得計(jì)算機(jī)能夠存儲(chǔ)程序和數(shù)據(jù)的存儲(chǔ)器;以及輸出裝置,例如打印機(jī)和顯示屏,其展示計(jì)算機(jī)已處理、產(chǎn)生或轉(zhuǎn)換數(shù)據(jù)之后的結(jié)果。
本說明書中描述的標(biāo)的物和功能操作的實(shí)施方案可在數(shù)字電子電路中或在計(jì)算機(jī)軟件、固件或硬件(包含本說明書中揭示的結(jié)構(gòu)和其結(jié)構(gòu)等效物)中或在其中的一或多者的組合中實(shí)施。本說明書中所描述的標(biāo)的物的實(shí)施方案可實(shí)施為編碼于計(jì)算機(jī)可讀媒體上以由數(shù)據(jù)處理設(shè)備執(zhí)行或控制數(shù)據(jù)處理設(shè)備的操作的一或多個(gè)計(jì)算機(jī)程序產(chǎn)品(即,計(jì)算機(jī)程序指令的一或多個(gè)模塊)。計(jì)算機(jī)可讀媒體可為機(jī)器可讀存儲(chǔ)裝置、機(jī)器可讀存儲(chǔ)襯底、存儲(chǔ)器裝置、實(shí)現(xiàn)機(jī)器可讀傳播、處理通信的物質(zhì)的組合物或其中的一或多者的組合。術(shù)語(yǔ)“數(shù)據(jù)處理設(shè)備”涵蓋用于處理數(shù)據(jù)的所有設(shè)備、裝置和機(jī)器,作為舉例,包含可編程處理器、計(jì)算機(jī)或多個(gè)處理器或計(jì)算機(jī)。除硬件之外,設(shè)備還可包含產(chǎn)生用于所討論計(jì)算機(jī)程序的執(zhí)行環(huán)境的代碼,例如構(gòu)成處理器固件、協(xié)議堆棧、圖形系統(tǒng)、數(shù)據(jù)庫(kù)管理系統(tǒng)、操作系統(tǒng)或其中的一或多者的組合的代碼。
上文所論述的方法、系統(tǒng)、裝置、實(shí)施方案和實(shí)施例為實(shí)例。各種配置可按需要省略、取代或添加各種程序或組件。舉例來說,在替代配置中,所述方法可以不同于所描述的順來執(zhí)行,或可添加、省略或組合各個(gè)階段。并且,可以各種其它配置組合關(guān)于某些配置所描述的特征??梢灶愃品绞浇M合配置的不同方面和元件。而且,技術(shù)發(fā)展,且因此,元件中的許多為實(shí)例且并不限制本發(fā)明或權(quán)利要求書的范圍。
一些系統(tǒng)可使用用于在分布式計(jì)算環(huán)境下存儲(chǔ)和分析大數(shù)據(jù)的開放源代碼框架。一些系統(tǒng)可使用云計(jì)算,其可實(shí)現(xiàn)對(duì)可在最少管理努力或服務(wù)提供商互動(dòng)的情況下快速供應(yīng)和釋放的可配置計(jì)算資源(例如,網(wǎng)絡(luò)、服務(wù)器、存儲(chǔ)裝置、應(yīng)用程序和服務(wù))的共享池的廣泛、方便、按需網(wǎng)絡(luò)訪問。一些網(wǎng)格系統(tǒng)可實(shí)施為多節(jié)點(diǎn)集群,如所屬領(lǐng)域的技術(shù)人員所理解。ApacheTM為用于分布式計(jì)算的開放源代碼軟件框架。一些系統(tǒng)可使用 LASRTM分析服務(wù)器以便在高度交互式編程環(huán)境下遞送統(tǒng)計(jì)模型化和機(jī)器學(xué)習(xí)能力,此可使得多個(gè)用戶能夠同時(shí)管理數(shù)據(jù)、轉(zhuǎn)換變量、執(zhí)行探索性分析、構(gòu)建和比較模型和分?jǐn)?shù)。一些系統(tǒng)可使用的SAS存儲(chǔ)器內(nèi)統(tǒng)計(jì)數(shù)據(jù)以讀取大數(shù)據(jù)一次且通過在整個(gè)會(huì)話中使其存留在存儲(chǔ)器內(nèi)而分析其若干次。一些系統(tǒng)可使用若干其它類型的系統(tǒng)或服務(wù)器(包含本文中所提到的那些系統(tǒng)和服務(wù)器)的組合。
在描述中給出特定細(xì)節(jié)以提供對(duì)配置(其包含實(shí)施方案)的實(shí)例的透徹理解。然而,可在無這些特定細(xì)節(jié)的情況下實(shí)踐配置。舉例來說,已在無不必要細(xì)節(jié)的情況下展示眾所周知的電路、過程、算法、結(jié)構(gòu)和技術(shù)以免混淆配置。此描述僅提供實(shí)例配置,且并不限制權(quán)利要求書的范圍、適用性或配置。確切地說,配置的先前描述將向所屬領(lǐng)域的技術(shù)人員提供用于實(shí)施所描述技術(shù)的啟發(fā)性描述。在不脫離本發(fā)明的精神或范圍的情況下可對(duì)元件的功能和布置作出各種改變。
并且,可將配置描述為描繪為流程圖或框圖的過程。盡管每一流程圖或框圖可將操作描述為順序過程,但許多操作可并行地或同時(shí)執(zhí)行。此外,可以重新布置操作的次序。過程可以具有不包含在圖中的額外步驟。此外,可通過硬件、軟件、固件、中間件、微碼、硬件描述語(yǔ)言或其任何組合實(shí)施所述方法的實(shí)例。當(dāng)以軟件、固件、中間件或微碼實(shí)施時(shí),用以執(zhí)行必要任務(wù)的程序代碼或代碼段可存儲(chǔ)在例如存儲(chǔ)媒體等非暫時(shí)性計(jì)算機(jī)可讀媒體中。處理器可執(zhí)行所描述的任務(wù)。
在已描述若干實(shí)例配置的情況下,可在不脫離本發(fā)明的精神的情況下使用各種修改、替代構(gòu)造和等效物。舉例來說,上述元件可為較大系統(tǒng)的組件,其中其它規(guī)則可優(yōu)先于本發(fā)明的應(yīng)用或以其它方式修改本發(fā)明的應(yīng)用。并且,可在考慮上述元件之前、期間或之后進(jìn)行多個(gè)操作。因此,以上描述并不約束權(quán)利要求書的范圍。
本文中“能夠”、“經(jīng)調(diào)適以”或“經(jīng)配置以”的使用打算是開放且包含性語(yǔ)言,其不將經(jīng)調(diào)適以或經(jīng)配置以執(zhí)行額外任務(wù)或步驟的裝置排除之外。另外,“基于”的使用打算是開放且包含性的,原因在于“基于”一或多個(gè)所列舉的條件或值的過程、步驟、計(jì)算或其它動(dòng)作可實(shí)際上基于超出那些所列舉的內(nèi)容的額外條件或值。本文中包含的標(biāo)題、列表和編號(hào)僅是為了易于解釋且不打算具有限制性。
應(yīng)理解,除非上下文另外明確規(guī)定,否則如在本文中的描述中以及貫穿所附的權(quán)利要求書所使用,“一(a/an)”和“所述(the)”的含義包含多個(gè)參考。并且,除非上下文另外明確規(guī)定,否則如在本文中的描述中以及貫穿所附的權(quán)利要求書所使用,“在……中(in)”的含義包含“在……中(in)”和“在……上(on)”。最后,除非上下文另外明確規(guī)定,否則如在本文中的描述中和貫穿所附權(quán)利要求書所使用,“和(and)”和“或(or)”的含義包含結(jié)合性和分離性兩者且可互換使用;詞組“異或(exclusive or)”可用于指示僅分離性含義可應(yīng)用的情形。
盡管已關(guān)于本發(fā)明的特定實(shí)施例詳細(xì)地描述了本發(fā)明的標(biāo)的物,但將了解,所屬領(lǐng)域的技術(shù)人員在理解前述內(nèi)容之后可即刻容易產(chǎn)生對(duì)此類實(shí)施例的更改、變化和等效物。因此,應(yīng)理解,已出于實(shí)例而非限制的目的呈現(xiàn)本發(fā)明,且如所屬領(lǐng)域的技術(shù)人員可易于顯而易見,本發(fā)明不排除包含對(duì)本發(fā)明的標(biāo)的物的所述修改、變化或添加。
盡管本發(fā)明可含有許多特性,但這些特性不應(yīng)理解為限制范圍或可能主張的內(nèi)容,而是應(yīng)理解為對(duì)特定于特定實(shí)施方案的特征的描述。在本說明書中在單獨(dú)實(shí)施方案的上下文中描述的某些特征還可在單個(gè)實(shí)施方案中組合地實(shí)施。相反地,在單個(gè)實(shí)施方案的上下文中描述的各種特征還可單獨(dú)地在多個(gè)實(shí)施方案中實(shí)施或以任何合適的子組合形式實(shí)施。此外,盡管上文可將特征描述為以某些組合形式起作用且甚至最初如此主張,但在一些狀況下,可將來自所主張的組合的一或多個(gè)特征從組合刪除,并且所主張的組合可針對(duì)子組合或子組合的變化。
類似地,盡管在圖式中按特定次序描繪操作,但此情形不應(yīng)被理解為要求按所示的特定次序或按順序次序執(zhí)行此類操作,或執(zhí)行所有所說明的操作,以實(shí)現(xiàn)所要結(jié)果。在某些情形下,多任務(wù)處理和并行處理可能是有利的。此外,上文所描述的實(shí)施方案中的各種系統(tǒng)組件的分離不應(yīng)被理解為在所有實(shí)施方案中要求此分離,且應(yīng)理解,所描述的程序組件和系統(tǒng)一般可一起集成在單個(gè)軟件產(chǎn)品或硬件產(chǎn)品中或封裝到多個(gè)軟件產(chǎn)品或硬件產(chǎn)品中。