對(duì)等網(wǎng)絡(luò)中的任務(wù)分發(fā)的制作方法
【專利說明】對(duì)等網(wǎng)絡(luò)中的任務(wù)分發(fā)
【背景技術(shù)】
[0001] 在可以是非集中式且分布式的網(wǎng)絡(luò)體系結(jié)構(gòu)的對(duì)等(P2P)網(wǎng)絡(luò)中,各個(gè)節(jié)點(diǎn)可以 既是資源的提供者又是消耗者。這與其中節(jié)點(diǎn)請(qǐng)求對(duì)中央服務(wù)器所提供的資源進(jìn)行訪問的 集中式客戶端-服務(wù)器模型相反。因此,在這種分布式網(wǎng)絡(luò)中,可以在多個(gè)節(jié)點(diǎn)之中共享任 務(wù),每個(gè)節(jié)點(diǎn)使得它們的諸如處理能力、磁盤存儲(chǔ)或網(wǎng)絡(luò)帶寬之類的資源的一部分直接地 可用于其他節(jié)點(diǎn),而無需由服務(wù)器集中協(xié)調(diào)。
【附圖說明】
[0002] 參照以下附圖描述一些示例:
[0003] 圖1是示出了根據(jù)一些示例的向?qū)Φ染W(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)分發(fā)任務(wù)的方法的流程 圖;
[0004] 圖2是根據(jù)一些示例的對(duì)等網(wǎng)絡(luò)的示意性圖示;
[0005] 圖3是示出了根據(jù)一些示例的生成對(duì)等網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)的對(duì)等節(jié)點(diǎn)列表的方法 的流程圖;
[0006] 圖4 一圖5分別是根據(jù)一些示例的其中生成了對(duì)等網(wǎng)絡(luò)中節(jié)點(diǎn)的對(duì)等節(jié)點(diǎn)列表的 對(duì)等網(wǎng)絡(luò)的示意性圖示;
[0007] 圖5是根據(jù)一些示例的其中生成了圖4的對(duì)等網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的對(duì)等節(jié)點(diǎn)列表的 對(duì)等網(wǎng)絡(luò)的不意性圖不;
[0008] 圖6-圖8分別是根據(jù)一些示例的其中生成了對(duì)等網(wǎng)絡(luò)中節(jié)點(diǎn)的對(duì)等節(jié)點(diǎn)列表的 對(duì)等網(wǎng)絡(luò)的不意性圖不;
[0009] 圖9是根據(jù)一些示例的其中生成了對(duì)等網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的圖6-圖8的對(duì)等節(jié)點(diǎn)列 表的對(duì)等網(wǎng)絡(luò)的示意性圖示;
[0010] 圖10是示出了根據(jù)一些示例的將任務(wù)分發(fā)至對(duì)等網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)的方法的流 程圖;以及
[0011] 圖11 一圖12分別是根據(jù)一些示例的其中任務(wù)被分發(fā)至對(duì)等網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn)的 對(duì)等網(wǎng)絡(luò)的示意性圖示。
【具體實(shí)施方式】
[0012] 在公開并描述本公開的特定示例之前,應(yīng)該理解的是本公開不限于本文公開的特 定示例,因?yàn)檫@種示例在某種程度上可以改變。也應(yīng)該理解的是本文使用的術(shù)語僅是用于 描述特定示例的目的而并非意在限制,因?yàn)楸竟_的范圍將僅由所附權(quán)利要求及其等價(jià)物 限定。
[0013] 盡管如前所述,當(dāng)由說明書或權(quán)利要求引用時(shí)以下術(shù)語應(yīng)該理解為意味著以下含 義。單數(shù)形式"一"和"該"意在意味著"一個(gè)或多個(gè)"。例如,"一處理器"包括涉及一個(gè)或多個(gè) 處理器。此外,術(shù)語"包含"和"具有"意在具有與術(shù)語"包括"在專利法中具有的含義相同的 含義。此外,術(shù)語"耦接"意在意味著間接或直接的電連接。因此,如果第一設(shè)備耦接至第二 設(shè)備,則該連接可以是通過直接電連接,或者通過經(jīng)由其他設(shè)備和連接的間接電連接。"節(jié) 點(diǎn)"在此被定義為對(duì)等網(wǎng)絡(luò)中的計(jì)算設(shè)備。
[0014] 許多系統(tǒng)具有大量節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)可以執(zhí)行給定的任務(wù)或任務(wù)的一部分。然而,這 些系統(tǒng)可能是低效的,并且可能具有相互過度通信的節(jié)點(diǎn),且/或可能基于關(guān)于哪些節(jié)點(diǎn)在 線的陳舊信息而工作。因此,本公開關(guān)注分發(fā)任務(wù)的對(duì)等網(wǎng)絡(luò)、計(jì)算機(jī)可讀介質(zhì)、和方法。在 一些示例中,任務(wù)可以以很好地適應(yīng)包括大數(shù)目的任意數(shù)目節(jié)點(diǎn)的系統(tǒng)的方式,被分發(fā)至 對(duì)等網(wǎng)絡(luò)中的節(jié)點(diǎn),并可以從節(jié)點(diǎn)收集結(jié)果。在一些示例中,可以通過對(duì)節(jié)點(diǎn)的工作負(fù)荷進(jìn) 行負(fù)載均衡,最小化節(jié)點(diǎn)之間的通信,并因此最小化處理開銷,而且關(guān)于哪些節(jié)點(diǎn)在線的信 息可以例如總是最新,因此任務(wù)可以快速正確地被分發(fā)。在一些示例中,每個(gè)節(jié)點(diǎn)可以接收 一次任務(wù),因此其可以不必超過一次地指示節(jié)點(diǎn)不執(zhí)行任務(wù)。另外,本文的公開可以實(shí)施為 使得系統(tǒng)中可以不存在單個(gè)故障點(diǎn),因此其對(duì)于單個(gè)節(jié)點(diǎn)故障可以是健壯的。
[0015] 圖1是示出了根據(jù)一些示例的向?qū)Φ染W(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)分發(fā)任務(wù)的方法100的流 程圖。方法100可以是計(jì)算機(jī)實(shí)施的。針對(duì)對(duì)等網(wǎng)絡(luò)中包括多個(gè)節(jié)點(diǎn)中的第一節(jié)點(diǎn)和第二節(jié) 點(diǎn)的每個(gè)成對(duì)排列,如果第一節(jié)點(diǎn)和第二節(jié)點(diǎn)之間的距離比第一節(jié)點(diǎn)和多個(gè)節(jié)點(diǎn)中具有與 第一節(jié)點(diǎn)和第二節(jié)點(diǎn)之間的范圍相同范圍的任意其他節(jié)點(diǎn)之間的距離更近,則第二節(jié)點(diǎn)可 以是第一節(jié)點(diǎn)的對(duì)等節(jié)點(diǎn)。術(shù)語"對(duì)等網(wǎng)絡(luò)中包括多個(gè)節(jié)點(diǎn)中的第一節(jié)點(diǎn)和第二節(jié)點(diǎn)的每 個(gè)成對(duì)排列"在此被定義為包括對(duì)等網(wǎng)絡(luò)中的兩個(gè)不同節(jié)點(diǎn)的任意排列。這包括作為相同 組合的不同排列,諸如{節(jié)點(diǎn)1,節(jié)點(diǎn)2}以及{節(jié)點(diǎn)2,節(jié)點(diǎn)1}。例如,如果對(duì)等網(wǎng)絡(luò)具有16個(gè)節(jié) 點(diǎn)η,則可以存在n!/(n-r)! = 240個(gè)成對(duì)排列,其中r = 2表示每對(duì)中的節(jié)點(diǎn)的數(shù)目。
[0016] 在方框102處,可以將用于執(zhí)行并分發(fā)任務(wù)的指令從多個(gè)節(jié)點(diǎn)的根節(jié)點(diǎn)發(fā)送至根 節(jié)點(diǎn)的對(duì)等節(jié)點(diǎn)中的每一個(gè)。在方框104處,針對(duì)除了根節(jié)點(diǎn)之外的每個(gè)節(jié)點(diǎn),如果每個(gè)節(jié) 點(diǎn)與每個(gè)節(jié)點(diǎn)的對(duì)等節(jié)點(diǎn)中的每個(gè)對(duì)等節(jié)點(diǎn)之間的范圍小于每個(gè)節(jié)點(diǎn)與從其接收指令的 節(jié)點(diǎn)之間的范圍,則可以由所述每個(gè)對(duì)等節(jié)點(diǎn)接收指令。
[0017] 圖2是根據(jù)一些示例的系統(tǒng)200的示意性圖示。可以在系統(tǒng)200中實(shí)施并控制在此 所公開的任意操作和方法。系統(tǒng)200可以是對(duì)等網(wǎng)絡(luò),并且可以包括多個(gè)(η個(gè))節(jié)點(diǎn),諸如η 個(gè)計(jì)算設(shè)備202,如所示。數(shù)目η可以例如以十計(jì)或以千計(jì)。每個(gè)計(jì)算設(shè)備202可以是臺(tái)式計(jì) 算機(jī)、膝上型計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)、蜂窩電話、智能電話、或其他計(jì)算設(shè)備。在一些示 例中,對(duì)等網(wǎng)絡(luò)可以被實(shí)施為分布式哈希表(DHT)。
[0018] 每個(gè)計(jì)算設(shè)備202可以包括處理器204。處理器204可以例如是微處理器、微控制 器、可編程門陣列、專用集成電路(ASIC)或計(jì)算機(jī)處理器等。處理器204可以例如包括芯片 上的多個(gè)內(nèi)核、跨越多個(gè)芯片的多個(gè)內(nèi)核、跨越多個(gè)設(shè)備的多個(gè)內(nèi)核、或其組合。在一些示 例中,處理器204可以包括至少一個(gè)集成電路(1C)、其他控制邏輯、其他電子電路、或其組 合。
[0019] 處理器204可以經(jīng)由通信總線209與計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)206通信。計(jì)算機(jī)可讀介 質(zhì)206可以包括單個(gè)介質(zhì)或多個(gè)介質(zhì)。例如,計(jì)算機(jī)可讀介質(zhì)206可以包括ASIC的存儲(chǔ)器、計(jì) 算設(shè)備202中的系統(tǒng)存儲(chǔ)器、以及計(jì)算設(shè)備202中的固件存儲(chǔ)介質(zhì)中的一個(gè)或多個(gè)。計(jì)算機(jī) 可讀介質(zhì)206可以是任意電子的、磁的、光學(xué)的或其他物理的存儲(chǔ)設(shè)備。例如,計(jì)算機(jī)可讀存 儲(chǔ)介質(zhì)206可以是例如隨機(jī)存取存儲(chǔ)器(RAM)、靜態(tài)存儲(chǔ)器、只讀存儲(chǔ)器、電可擦除可編程只 讀存儲(chǔ)器(EEPR0M)、硬盤驅(qū)動(dòng)、光盤驅(qū)動(dòng)、存儲(chǔ)驅(qū)動(dòng)、CD和DVD等。計(jì)算機(jī)可讀介質(zhì)206可以是 非暫時(shí)性的。計(jì)算機(jī)可讀介質(zhì)206可以存儲(chǔ)、編碼或承載計(jì)算機(jī)可執(zhí)行指令208,計(jì)算機(jī)可執(zhí) 行指令208在由處理器204執(zhí)行時(shí)可以使處理器204執(zhí)行根據(jù)各個(gè)示例在此公開的方法或操 作中的任意一個(gè)或多個(gè)。
[0020] 每個(gè)計(jì)算設(shè)備202可以包括耦接至處理器202的用戶輸入設(shè)備214,諸如鍵盤、觸摸 板、按鈕、小鍵區(qū)、撥號(hào)盤、鼠標(biāo)、軌跡球、讀卡器、或其他輸入設(shè)備中的一個(gè)或多個(gè)。每個(gè)計(jì) 算設(shè)備202可以包括耦接至處理器202的輸出設(shè)備216,諸如液晶顯示器(IXD)、打印機(jī)、視頻 監(jiān)控器、觸摸屏顯示器、發(fā)光二極管(LED)或其他輸出設(shè)備中的一個(gè)或多個(gè)。因此,每個(gè)計(jì)算 設(shè)備202可以支持直接用戶交互。在一些示例中,每個(gè)計(jì)算設(shè)備202可以不支持直接用戶交 互,例如其可以是替代地經(jīng)由其他設(shè)備可訪問的無頭(headless)服務(wù)器。每個(gè)計(jì)算設(shè)備202 可以包括輸入/輸出(I /〇)端口 212以連接至另一設(shè)備。
[0021] 每個(gè)計(jì)算設(shè)備202可以包括管理處理器218,例如基板管理控制器,其可以在計(jì)算 設(shè)備202內(nèi)部或外部。在一些示例中,管理處理器218可以具有與處理器204類似的部件。另 外,在一些示例中,即使處理器204斷電時(shí),管理處理器218也可以保持供電和激活。在一些 示例中,管理處理器218可以是獨(dú)立的處理器,而在其他示例中,管理處理器218可以是具有 至少一個(gè)處理器內(nèi)核以及諸如存儲(chǔ)器和網(wǎng)絡(luò)接口設(shè)備的其他部件的專用集成電路(ASIC)。 在一些示例中,管理處理器218可以由位于諸如耦接在計(jì)算設(shè)備202內(nèi)的電路板上的物理地 分組在一起的多個(gè)單獨(dú)部件形成。在一些示例中,管理處理器218可以不與處理器204獨(dú)立, 因?yàn)樘幚砥?04可以執(zhí)行否則由獨(dú)立的管理處理器218所執(zhí)行的、在此所述的所有管理任 務(wù)。
[0022]管理處理器218可以耦接至并且可能夠訪問計(jì)算機(jī)可讀介質(zhì)206,其如之前所述可 以包括固件存儲(chǔ)介質(zhì)。另外,管理處理器218可以包括多個(gè)內(nèi)部網(wǎng)絡(luò)接口控制器,例如以使 得管理處理器218能夠耦接至網(wǎng)絡(luò)210。因此,每個(gè)計(jì)算設(shè)備202可以通過管理處理器218與 管理員計(jì)算設(shè)備222通信。管理員計(jì)算設(shè)備222可以通過網(wǎng)絡(luò)210或者通過至管理處理器218 的直接連接,諸如通過管理員計(jì)算設(shè)備222的輸入/輸出(I/O)端口 232,而與每個(gè)管理處理 器218和計(jì)算設(shè)備202通信。
[0023] 網(wǎng)絡(luò)210可以例如是局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、互聯(lián)網(wǎng)、或任何其他網(wǎng)絡(luò)。從管理 員計(jì)算設(shè)備222傳輸至管理處理器218的數(shù)據(jù)可以從一種通信協(xié)議(例如諸如TCP/IP的網(wǎng)絡(luò) 協(xié)議)轉(zhuǎn)換為另一通信協(xié)議(例如USB協(xié)議),供計(jì)算設(shè)備202使用。網(wǎng)絡(luò)210可以是例如被用 于轉(zhuǎn)發(fā)管理任務(wù)的管理網(wǎng)絡(luò)。在一些示例中,網(wǎng)絡(luò)210也可以用于計(jì)算設(shè)備202之間的通用 通信。
[0024]管理員計(jì)算設(shè)備222可以包括與計(jì)算設(shè)備202類似的部件。其可以包括類似于處理 器204的處理器224,類似于計(jì)算機(jī)可讀介質(zhì)206的計(jì)算機(jī)可讀介質(zhì)226,類似于輸入設(shè)備214 的輸入設(shè)備234,類似于輸出設(shè)備216的輸出設(shè)備236,以及類似于總線209的總線228。在一 些示例中,代替包括分立的管理員計(jì)算設(shè)備222,系統(tǒng)200可以替代地允許任意計(jì)算設(shè)備222 操作在此所述的管理員功能。在一些