容器進(jìn)程控件的構(gòu)建方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及web平臺(tái)技術(shù)領(lǐng)域,特別是涉及一種容器進(jìn)程控件的構(gòu)建方法及裝置。
【背景技術(shù)】
[0002]為了能夠節(jié)省硬件資源,虛擬化技術(shù)得到越來(lái)越多的認(rèn)可及使用。虛擬化技術(shù)是一種資源管理技術(shù),是將計(jì)算機(jī)的各種實(shí)體資源,如服務(wù)器,予以抽象、轉(zhuǎn)換后呈現(xiàn)出來(lái),打破實(shí)體機(jī)構(gòu)間不可分割的障礙。目前,為了節(jié)省服務(wù)器資源,通過(guò)Xen虛擬化技術(shù)將一臺(tái)服務(wù)器虛擬出多臺(tái)服務(wù)器,虛擬出的多臺(tái)服務(wù)器之間共享包括內(nèi)核在內(nèi)的一個(gè)完整的系統(tǒng)鏡像,同時(shí)一個(gè)服務(wù)器上能夠允許多個(gè)進(jìn)程同時(shí)運(yùn)行,以滿足不同業(yè)務(wù)的應(yīng)用需求。在通過(guò)Xen虛擬化技術(shù)虛擬服務(wù)器時(shí),需要在實(shí)體服務(wù)器上構(gòu)建一個(gè)虛擬化層,基于虛擬化層虛擬多個(gè)服務(wù)器,確保了虛擬的多個(gè)服務(wù)器之間運(yùn)行空間的隔離,但是,由于虛擬化層的構(gòu)建,導(dǎo)致虛擬服務(wù)器與系統(tǒng)內(nèi)核不是直接進(jìn)行交互,因此,使得虛擬服務(wù)器的性能不能滿足不同業(yè)務(wù)的更多需求。
[0003]為了解決上述問(wèn)題,可以將服務(wù)器上的不同業(yè)務(wù)分離到容器中,容器的構(gòu)建無(wú)需構(gòu)建虛擬化層,就能提供隔離的運(yùn)行空間,即每個(gè)容器內(nèi)都包含一個(gè)獨(dú)享的完整運(yùn)行空間,構(gòu)建后的容器可以與系統(tǒng)內(nèi)核直接進(jìn)行交互,提高了中央處理器(Central ProcessingUnit,CPU)、內(nèi)存等硬件資源的處理效率。但是,容器一次往往允許運(yùn)行一個(gè)進(jìn)程,而執(zhí)行一個(gè)業(yè)務(wù)往往需要多個(gè)進(jìn)程的支持,從而導(dǎo)致在業(yè)務(wù)執(zhí)行過(guò)程中需要使用多個(gè)容器,造成資源的浪費(fèi)。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明提供的一種容器進(jìn)程控件的構(gòu)建方法及裝置,主要目的在于構(gòu)建一個(gè)容器進(jìn)程控件,能夠使容器在調(diào)用一個(gè)進(jìn)程時(shí),實(shí)現(xiàn)多個(gè)子進(jìn)程的調(diào)用。
[0005]依據(jù)本發(fā)明一個(gè)方面,本發(fā)明提供了一種容器進(jìn)程控件的構(gòu)建方法,所述方法包括:
[0006]獲取第一容器中的功能服務(wù),所述功能服務(wù)能夠通過(guò)調(diào)用一個(gè)進(jìn)程實(shí)現(xiàn)多個(gè)子進(jìn)程的調(diào)用;
[0007]在第二容器中啟動(dòng)所述功能服務(wù);
[0008]若所述功能服務(wù)無(wú)法在所述第二容器中啟動(dòng),則對(duì)所述功能服務(wù)的使用環(huán)境進(jìn)行適配,生成適用于所述第二容器的容器進(jìn)程控件;其中,所述功能服務(wù)的使用環(huán)境為所述第一容器的容器環(huán)境。
[0009]依據(jù)本發(fā)明另一個(gè)方面,本發(fā)明提供了一種容器進(jìn)程控件的構(gòu)建裝置,所述裝置包括:
[0010]獲取單元,用于獲取第一容器中的功能服務(wù),所述功能服務(wù)能夠通過(guò)調(diào)用一個(gè)進(jìn)程實(shí)現(xiàn)多個(gè)子進(jìn)程的調(diào)用;
[0011]啟動(dòng)單元,在第二容器中啟動(dòng)所述獲取單元獲取的所述功能服務(wù);
[0012]適配單元,當(dāng)所述功能服務(wù)無(wú)法在所述啟動(dòng)單元的所述第二容器中啟動(dòng)時(shí),對(duì)所述功能服務(wù)的使用環(huán)境進(jìn)行適配,生成適用于所述第二容器的容器進(jìn)程控件;其中,所述功能服務(wù)的使用環(huán)境為所述第一容器的容器環(huán)境。
[0013]借由上述技術(shù)方案,本發(fā)明提供的容器進(jìn)程控件的構(gòu)建方法及裝置,首先獲取第一容器中的功能服務(wù),該功能服務(wù)可以通過(guò)調(diào)用一個(gè)進(jìn)程實(shí)現(xiàn)多個(gè)子進(jìn)程的調(diào)用,將獲取后的功能服務(wù)在第一容器中進(jìn)行啟動(dòng),當(dāng)該功能服務(wù)在第二容器中無(wú)法啟動(dòng)時(shí),對(duì)該功能服務(wù)的使用環(huán)境進(jìn)程適配,生成適用于第二容器的容器進(jìn)程控件,將該功能服務(wù)“移植”到第二容器中構(gòu)建一個(gè)容器進(jìn)程控件,能夠使容器在調(diào)用一個(gè)進(jìn)程時(shí),實(shí)現(xiàn)多個(gè)子進(jìn)程的調(diào)用。
[0014]上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
【附圖說(shuō)明】
[0015]通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
[0016]圖1示出了本發(fā)明實(shí)施例提供的一種容器進(jìn)程控件的構(gòu)建方法的流程圖;
[0017]圖2示出了本發(fā)明實(shí)施例提供的一種容器進(jìn)程控件的構(gòu)建裝置的組成框圖;
[0018]圖3示出了本發(fā)明實(shí)施例提供的另一種容器進(jìn)程控件的構(gòu)建裝置的組成框圖;
[0019]圖4示出了本發(fā)明實(shí)施例提供的另一種容器進(jìn)程控件的構(gòu)建裝置的組成框圖;
[0020]圖5示出了本發(fā)明實(shí)施例提供的另一種容器進(jìn)程控件的構(gòu)建裝置的組成框圖。
【具體實(shí)施方式】
[0021]下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0022]本發(fā)明實(shí)施例提供一種容器進(jìn)程控件的構(gòu)建方法,如圖1所示,該方法包括:
[0023]101、獲取第一容器中的功能服務(wù)。
[0024]基于不同的Linux發(fā)行版本,基于Linux發(fā)行版本開(kāi)發(fā)的容器也存在差異,在開(kāi)發(fā)容器對(duì)應(yīng)的功能服務(wù)時(shí),往往使用不同的編程語(yǔ)言,從而使得功能服務(wù)的使用環(huán)境存在差異,可能導(dǎo)致一種容器內(nèi)的功能服務(wù)不能直接應(yīng)用到其他的容器中,即功能服務(wù)在不同容器間的兼容性較差。在具體實(shí)施時(shí),容器的類型包括但不局限于以下的內(nèi)容,例如,烏班圖Ubuntu 類型、社區(qū)企業(yè)操作系統(tǒng)(Community Enterprise Operating System, CentOS)類型;或者,DebianGNU/Linux類型,F(xiàn)edora類型等等。本發(fā)明實(shí)施例對(duì)容器的具體類型不進(jìn)行限定。
[0025]為了達(dá)到在一個(gè)容器內(nèi)同時(shí)啟動(dòng)多個(gè)子進(jìn)程的目的,首先,獲取第一容器中的功能服務(wù),該功能服務(wù)能夠通過(guò)調(diào)用一個(gè)進(jìn)程實(shí)現(xiàn)多個(gè)子進(jìn)程的調(diào)用。
[0026]102、在第二容器中啟動(dòng)功能服務(wù)。
[0027]將獲取后的功能服務(wù)在第二容器中進(jìn)行啟動(dòng),若該功能服務(wù)能夠在第二容器中啟動(dòng),則無(wú)需執(zhí)行步驟103,直接將獲取的功能服務(wù)“移植”到第二容器中即可。但是,在實(shí)際操作過(guò)程中,由于功能服務(wù)兼容性較差,一個(gè)容器內(nèi)的功能服務(wù)往往不能在另一種容器內(nèi)進(jìn)行直接啟動(dòng);若該功能服務(wù)無(wú)法在第二容器中啟動(dòng),則執(zhí)行步驟103。
[0028]103、對(duì)功能服務(wù)的使用環(huán)境進(jìn)行適配,生成適用于第二容器的容器進(jìn)程控件。
[0029]其中,功能服務(wù)的使用環(huán)境為第一容器的容器環(huán)境,第一容器的容器環(huán)境為計(jì)算機(jī)程序編程語(yǔ)言,由于不同的容器支持不同的計(jì)算機(jī)程序編程語(yǔ)言,因此,導(dǎo)致不同的容器中容器環(huán)境存在差異。本發(fā)明實(shí)施例提供的計(jì)算機(jī)程序編程語(yǔ)言包括但不僅限于下列內(nèi)容,例如,PythoruC語(yǔ)言、JAVA、ASP、ASP.NET、Visual Basic,Visual Basic.NET ;或者,C++、C#、Perl、PHP, SQL、FoRTRAN、Visual Foxpro等等。本發(fā)明實(shí)施例對(duì)計(jì)算機(jī)程序編程語(yǔ)言的具體類型不進(jìn)行限定,計(jì)算機(jī)程序編程語(yǔ)言要依據(jù)其所在容器內(nèi)是否支持來(lái)確定。
[0030]對(duì)步驟101中獲取的功能服務(wù)的使用環(huán)境進(jìn)程適配之后,生成適用于第二容器的容器進(jìn)程控件,在本質(zhì)上第二容器的容器進(jìn)程控件與第一容器中的功能服務(wù)具備相同的功能,即都能夠?qū)崿F(xiàn)調(diào)用一個(gè)進(jìn)程實(shí)現(xiàn)多個(gè)子進(jìn)程的調(diào)用。當(dāng)容器進(jìn)程控件進(jìn)行啟動(dòng)時(shí),容器進(jìn)程控件調(diào)用的進(jìn)程能夠調(diào)用多個(gè)子進(jìn)程,可以接收子進(jìn)程發(fā)送的請(qǐng)求信息,也可以向子進(jìn)程發(fā)送控制信息等,從而實(shí)