用于加速工作流的執(zhí)行的裝置和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及私有云的工作流執(zhí)行,尤其涉及一種用于加速工作流的執(zhí)行的裝置、方法和電子設(shè)備。
【背景技術(shù)】
[0002]私有云作為一種云計(jì)算架構(gòu)可以為各個(gè)企業(yè)提供獨(dú)立的操作空間。這種架構(gòu)方式比傳統(tǒng)的IT環(huán)境花費(fèi)少,而與公有云相比,它又更安全。因此,很多企業(yè)喜歡擁有自己的私有云,并且將內(nèi)部的應(yīng)用服務(wù)部署在私有云中。這些應(yīng)用服務(wù)是部署在私有云的虛擬機(jī)上的,可以整合后構(gòu)成一個(gè)工作流。大多數(shù)的工作流都是數(shù)據(jù)密集型的,計(jì)算時(shí)非常耗時(shí)。所以對(duì)于企業(yè)來(lái)說(shuō),如何加快私有云中的工作流的執(zhí)行速度是非常有必要的。
【發(fā)明內(nèi)容】
[0003]在下文中給出了關(guān)于本發(fā)明的簡(jiǎn)要概述,以便提供關(guān)于本發(fā)明的某些方面的基本理解。應(yīng)當(dāng)理解,這個(gè)概述并不是關(guān)于本發(fā)明的窮舉性概述。它并不是意圖確定本發(fā)明的關(guān)鍵或重要部分,也不是意圖限定本發(fā)明的范圍。其目的僅僅是以簡(jiǎn)化的形式給出某些概念,以此作為稍后論述的更詳細(xì)描述的前序。
[0004]鑒于現(xiàn)有技術(shù)的上述缺陷,本發(fā)明的目的之一是提供一種用于加速工作流的執(zhí)行的裝置、方法和電子設(shè)備,以至少克服現(xiàn)有的問(wèn)題。
[0005]根據(jù)本公開(kāi)的一個(gè)方面,提供一種用于加速工作流的執(zhí)行的裝置,所述工作流由至少一個(gè)網(wǎng)絡(luò)服務(wù)構(gòu)成,所述裝置包括:網(wǎng)絡(luò)服務(wù)模式劃分單元,用于根據(jù)網(wǎng)絡(luò)服務(wù)的輸入數(shù)據(jù)和輸出數(shù)據(jù)的數(shù)量關(guān)系,將所述網(wǎng)絡(luò)服務(wù)劃分為特定網(wǎng)絡(luò)服務(wù)模式;以及調(diào)度單元,用于調(diào)度所述網(wǎng)絡(luò)服務(wù),以便根據(jù)與被調(diào)度的網(wǎng)絡(luò)服務(wù)相應(yīng)的網(wǎng)絡(luò)服務(wù)模式執(zhí)行操作。
[0006]根據(jù)本公開(kāi)的另一方面,提供一種用于加速工作流的執(zhí)行的方法,所述工作流由至少一個(gè)網(wǎng)絡(luò)服務(wù)構(gòu)成,所述方法包括:根據(jù)所述網(wǎng)絡(luò)服務(wù)的輸入數(shù)據(jù)和輸出數(shù)據(jù)的數(shù)量關(guān)系,將所述網(wǎng)絡(luò)服務(wù)劃分為特定網(wǎng)絡(luò)服務(wù)模式;以及調(diào)度所述網(wǎng)絡(luò)服務(wù),以便根據(jù)與被調(diào)度的網(wǎng)絡(luò)服務(wù)相應(yīng)的網(wǎng)絡(luò)服務(wù)模式執(zhí)行操作。
[0007]根據(jù)本公開(kāi)的另一個(gè)方面,還提供了一種電子設(shè)備,該電子設(shè)備包括如上所述的用于加速工作流的執(zhí)行的裝置。
[0008]依據(jù)本公開(kāi)的其它方面,還提供了一種使得計(jì)算機(jī)用作如上所述的用于加速工作流的執(zhí)行的裝置的程序。
[0009]依據(jù)本公開(kāi)的又一方面,還提供了相應(yīng)的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有能夠由計(jì)算設(shè)備執(zhí)行的計(jì)算機(jī)程序,該計(jì)算機(jī)程序在執(zhí)行時(shí)能夠使計(jì)算設(shè)備執(zhí)行上述信息處理方法。
[0010]上述根據(jù)本公開(kāi)實(shí)施例的用于加速工作流的執(zhí)行的裝置和方法,至少能夠獲得以下益處之一:能夠更高效地執(zhí)行對(duì)網(wǎng)絡(luò)服務(wù)執(zhí)行的加速;能夠更準(zhǔn)確的找到有必要被加速的網(wǎng)絡(luò)服務(wù);能夠動(dòng)態(tài)地加速網(wǎng)絡(luò)服務(wù)的執(zhí)行。
[0011]通過(guò)以下結(jié)合附圖對(duì)本公開(kāi)的最佳實(shí)施例的詳細(xì)說(shuō)明,本公開(kāi)的這些以及其他優(yōu)點(diǎn)將更加明顯。
【附圖說(shuō)明】
[0012]本公開(kāi)可以通過(guò)參考下文中結(jié)合附圖所給出的描述而得到更好的理解,其中在所有附圖中使用了相同或相似的附圖標(biāo)記來(lái)表示相同或者相似的部件。所述附圖連同下面的詳細(xì)說(shuō)明一起包含在本說(shuō)明書中并且形成本說(shuō)明書的一部分,而且用來(lái)進(jìn)一步舉例說(shuō)明本公開(kāi)的優(yōu)選實(shí)施例和解釋本公開(kāi)的原理和優(yōu)點(diǎn)。其中:
[0013]圖1是示意性地示出根據(jù)本公開(kāi)實(shí)施例的用于加速工作流的執(zhí)行的裝置的一種示例結(jié)構(gòu)的框圖。
[0014]圖2是示出采用Map-Reduce操作的工作流的結(jié)構(gòu)的示意圖。
[0015]圖3是示意性地示出圖1中的調(diào)度單元的一種可能的示例結(jié)構(gòu)的框圖。
[0016]圖4是示意性地示出圖1中的調(diào)度單元的另一種可能的示例結(jié)構(gòu)的框圖。
[0017]圖5是示意性地示出根據(jù)本公開(kāi)實(shí)施例的用于加速工作流的執(zhí)行的裝置的另一種示例結(jié)構(gòu)的框圖。
[0018]圖6是示意性地示出根據(jù)本公開(kāi)實(shí)施例的確定單元20的另一種示例結(jié)構(gòu)的框圖。
[0019]圖7a和圖7b分別示出了用于表示工作流的有向圖和梯度圖。
[0020]圖7c和圖7d分別示出了以順序部分樹(shù)結(jié)構(gòu)表示的工作流的各個(gè)網(wǎng)絡(luò)服務(wù)以及各個(gè)網(wǎng)絡(luò)服務(wù)的執(zhí)行歷史。
[0021]圖8是示意性地示出根據(jù)本公開(kāi)實(shí)施例的用于加速工作流的執(zhí)行的裝置的另一種示例結(jié)構(gòu)的框圖。
[0022]圖9是示意性示出根據(jù)本公開(kāi)實(shí)施例的用于加速工作流的執(zhí)行的方法的流程圖。
[0023]圖10是示出了可用來(lái)實(shí)現(xiàn)根據(jù)本公開(kāi)實(shí)施例的異常信息確定裝置和方法的一種可能的信息處理設(shè)備的硬件配置的結(jié)構(gòu)簡(jiǎn)圖。
【具體實(shí)施方式】
[0024]在下文中將結(jié)合附圖對(duì)本發(fā)明的示范性實(shí)施例進(jìn)行描述。為了清楚和簡(jiǎn)明起見(jiàn),在說(shuō)明書中并未描述實(shí)際實(shí)施方式的所有特征。然而,應(yīng)該了解,在開(kāi)發(fā)任何這種實(shí)際實(shí)施例的過(guò)程中必須做出很多特定于實(shí)施方式的決定,以便實(shí)現(xiàn)開(kāi)發(fā)人員的具體目標(biāo),例如,符合與系統(tǒng)及業(yè)務(wù)相關(guān)的那些限制條件,并且這些限制條件可能會(huì)隨著實(shí)施方式的不同而有所改變。此外,還應(yīng)該了解,雖然開(kāi)發(fā)工作有可能是非常復(fù)雜和費(fèi)時(shí)的,但對(duì)得益于本公開(kāi)內(nèi)容的本領(lǐng)域技術(shù)人員來(lái)說(shuō),這種開(kāi)發(fā)工作僅僅是例行的任務(wù)。
[0025]在此,還需要說(shuō)明的一點(diǎn)是,為了避免因不必要的細(xì)節(jié)而模糊了本發(fā)明,在附圖中僅僅示出了與根據(jù)本發(fā)明的方案密切相關(guān)的裝置結(jié)構(gòu)和/或處理步驟,而省略了與本發(fā)明關(guān)系不大的其他細(xì)節(jié)。
[0026]圖1是示意性地示出根據(jù)本公開(kāi)實(shí)施例的用于加速工作流的執(zhí)行的裝置的一種示例結(jié)構(gòu)的框圖。
[0027]根據(jù)本公開(kāi)實(shí)施例的用于加速工作流的執(zhí)行的裝置用于加速由至少一個(gè)網(wǎng)絡(luò)服務(wù)構(gòu)成的工作流的執(zhí)行。如圖1所示,用于加速工作流的執(zhí)行的裝置I包括:網(wǎng)絡(luò)服務(wù)模式劃分單元10,用于根據(jù)網(wǎng)絡(luò)服務(wù)的輸入數(shù)據(jù)和輸出數(shù)據(jù)之間的數(shù)量關(guān)系,將至少一個(gè)網(wǎng)絡(luò)服務(wù)劃分為特定網(wǎng)絡(luò)服務(wù)模式;調(diào)度單元20,用于調(diào)度網(wǎng)絡(luò)服務(wù),以便根據(jù)與被調(diào)度的網(wǎng)絡(luò)服務(wù)相應(yīng)的網(wǎng)絡(luò)服務(wù)模式執(zhí)行操作。
[0028]本公開(kāi)引入了 4種模式來(lái)區(qū)分網(wǎng)絡(luò)服務(wù)。根據(jù)本公開(kāi)的實(shí)施例,特定網(wǎng)絡(luò)服務(wù)模式包括:對(duì)于每個(gè)輸入數(shù)據(jù)產(chǎn)生一個(gè)輸出數(shù)據(jù)的1:1網(wǎng)絡(luò)服務(wù)模式;對(duì)于一個(gè)輸入數(shù)據(jù)產(chǎn)生N個(gè)輸出數(shù)據(jù)的1:N網(wǎng)絡(luò)服務(wù)模式;對(duì)于N個(gè)輸入數(shù)據(jù)產(chǎn)生M個(gè)輸出數(shù)據(jù)的N:M網(wǎng)絡(luò)服務(wù)模式;以及對(duì)于N個(gè)輸入數(shù)據(jù)產(chǎn)生一個(gè)輸出數(shù)據(jù)的N:1網(wǎng)絡(luò)服務(wù)模式;其中,N和M都是大于I的整數(shù)。
[0029]例如,針對(duì)所有輸入數(shù)據(jù)進(jìn)行求和操作的網(wǎng)絡(luò)服務(wù)是針對(duì)多個(gè)輸入數(shù)據(jù)產(chǎn)生一個(gè)輸入數(shù)據(jù)的N:1網(wǎng)絡(luò)服務(wù)模式;針對(duì)多個(gè)輸入數(shù)據(jù)中的每個(gè)輸入數(shù)據(jù)乘以特定系數(shù)的操作的網(wǎng)絡(luò)服務(wù)可以認(rèn)為是針對(duì)多個(gè)輸入數(shù)據(jù)產(chǎn)生多個(gè)輸出數(shù)據(jù)的N:M網(wǎng)絡(luò)服務(wù)模式。
[0030]根據(jù)本公開(kāi)的一個(gè)實(shí)施例,網(wǎng)絡(luò)服務(wù)模式劃分單元10根據(jù)網(wǎng)絡(luò)服務(wù)的輸入數(shù)據(jù)和輸出數(shù)據(jù)的數(shù)量關(guān)系,將工作流中包括的每個(gè)網(wǎng)絡(luò)服務(wù)劃分為例如上述1:1網(wǎng)絡(luò)服務(wù)模式、1: N網(wǎng)絡(luò)服務(wù)模式、N: M網(wǎng)絡(luò)服務(wù)模式以及N:1網(wǎng)絡(luò)服務(wù)模式之一。
[0031]如圖1所示,在網(wǎng)絡(luò)服務(wù)模式劃分單元10根據(jù)網(wǎng)絡(luò)服務(wù)的輸入數(shù)據(jù)和輸出數(shù)據(jù)的數(shù)量關(guān)系,將工作流中包括的各個(gè)網(wǎng)絡(luò)服務(wù)劃分為特定網(wǎng)絡(luò)服務(wù)模式之后,調(diào)度單元20基于與各個(gè)網(wǎng)絡(luò)服務(wù)相對(duì)應(yīng)的網(wǎng)絡(luò)服務(wù)模式,對(duì)各個(gè)網(wǎng)絡(luò)服務(wù)進(jìn)行調(diào)度。
[0032]針對(duì)不同的網(wǎng)絡(luò)服務(wù)模式,調(diào)度單元20采取不同的調(diào)度策略對(duì)網(wǎng)絡(luò)服務(wù)進(jìn)行調(diào)度。根據(jù)本公開(kāi)的實(shí)施例,可以采用的調(diào)度策略包括:針對(duì)網(wǎng)絡(luò)服務(wù)進(jìn)行Map-Reduce (映射-化簡(jiǎn))級(jí)別的克隆以及擴(kuò)展網(wǎng)絡(luò)服務(wù)實(shí)例所占用的內(nèi)存。
[0033]具體地,根據(jù)本公開(kāi)的一個(gè)實(shí)施例,調(diào)度單元20配置為執(zhí)行以下操作(i )至(iii )中至少之一:
[0034](i)對(duì)于N:M網(wǎng)絡(luò)服務(wù)模式的網(wǎng)絡(luò)服務(wù),利用Map操作將該網(wǎng)絡(luò)服務(wù)的輸入數(shù)據(jù)虛擬分割為若干部分,并將該網(wǎng)絡(luò)服務(wù)的實(shí)例克隆為多份,分發(fā)到不同的虛擬機(jī)上并行執(zhí)行;
[0035](ii)對(duì)于N:1網(wǎng)絡(luò)服務(wù)模式的網(wǎng)絡(luò)服務(wù),利用Map操作將該網(wǎng)絡(luò)服務(wù)的輸入數(shù)據(jù)虛擬分割為若干部分,并將該網(wǎng)絡(luò)服務(wù)的實(shí)例克隆為多份,分發(fā)到不同的虛擬機(jī)上并行執(zhí)行,然后利用執(zhí)行Reduce操作的克隆的網(wǎng)絡(luò)服務(wù)將在Map操作中產(chǎn)生的中間文件進(jìn)行匯總;以及
[0036](iii)對(duì)于1:1網(wǎng)絡(luò)服務(wù)模式和1:N網(wǎng)絡(luò)服務(wù)模式的網(wǎng)絡(luò)服務(wù),擴(kuò)大網(wǎng)絡(luò)服務(wù)實(shí)例所占用的內(nèi)存的大小。
[0037]更具體地,針對(duì)N:M網(wǎng)絡(luò)服務(wù)模式,假設(shè)該網(wǎng)絡(luò)服務(wù)模式的輸入格式是多個(gè)輸入數(shù)據(jù),并且各個(gè)輸入數(shù)據(jù)可以分開(kāi)進(jìn)行處理(例如對(duì)每個(gè)輸入數(shù)據(jù)執(zhí)行乘以特定系數(shù)的操作的網(wǎng)絡(luò)服務(wù)),而網(wǎng)絡(luò)服務(wù)每次只處理一個(gè)輸入數(shù)據(jù)。在此情況下,調(diào)度單元20利用Map操作將該網(wǎng)絡(luò)服務(wù)的多個(gè)輸入數(shù)據(jù)虛擬分割為若干份(從而包括多個(gè)輸入數(shù)據(jù)部分),將網(wǎng)絡(luò)服務(wù)的實(shí)例克隆為多份,并將虛擬分割后的輸入數(shù)據(jù)和克隆的網(wǎng)絡(luò)服務(wù)實(shí)例分發(fā)到不同的虛擬機(jī)上并行執(zhí)行,以在虛擬機(jī)上對(duì)分發(fā)的輸入數(shù)據(jù)部分并行執(zhí)行克隆的網(wǎng)絡(luò)服務(wù)的實(shí)例。也就是說(shuō),由于N:M網(wǎng)絡(luò)服務(wù)模式的網(wǎng)絡(luò)服務(wù)的輸出是多個(gè)數(shù)據(jù),因此針對(duì)N:M網(wǎng)絡(luò)服務(wù)模式,調(diào)度單元20被配置為執(zhí)行Map操作,包括調(diào)度克隆后的網(wǎng)絡(luò)服務(wù)的實(shí)例在虛擬機(jī)上并行執(zhí)行。
[0038]在私有云中,為了抵御數(shù)據(jù)災(zāi)難,數(shù)據(jù)通常備份3份,因此根據(jù)本公開(kāi)的實(shí)施例,將網(wǎng)絡(luò)服務(wù)的示例例如也克隆為3份。但是本發(fā)明不限于此,例如也可以根據(jù)輸入數(shù)據(jù)的虛擬分割而將網(wǎng)絡(luò)服務(wù)的實(shí)例克隆為2份或者4份以上。
[0039]針對(duì)N:1網(wǎng)絡(luò)服務(wù)模式,調(diào)度單元20除了與N:M網(wǎng)絡(luò)服務(wù)模式下類似地進(jìn)行利用Map操作將該網(wǎng)絡(luò)服務(wù)的輸入數(shù)據(jù)虛擬分割為若干部分并將該網(wǎng)絡(luò)服務(wù)的實(shí)例克隆為多份、分發(fā)到不同的虛擬機(jī)上并行執(zhí)行的操作之外,調(diào)度單元20還被配置為利用執(zhí)行Reduce操作的克隆的網(wǎng)絡(luò)服務(wù)將在Map操作中產(chǎn)生的