本發(fā)明涉及實(shí)例系統(tǒng)應(yīng)用的預(yù)安裝方法。
背景技術(shù):
某種操作系統(tǒng)(例如安卓操作系統(tǒng))加上運(yùn)行該操作系統(tǒng)所需的必要硬件(例如處理器、存儲(chǔ)器等),可以視為一個(gè)實(shí)例系統(tǒng),實(shí)例系統(tǒng)中可以運(yùn)行各種應(yīng)用(應(yīng)用指能夠在實(shí)例系統(tǒng)的操作系統(tǒng)中運(yùn)行的軟件或程序)。將若干個(gè)實(shí)例系統(tǒng)按照一定的架構(gòu)方式(例如分布式)集中管理,可以形成云系統(tǒng)。通常云系統(tǒng)由運(yùn)營(yíng)商負(fù)責(zé)日常運(yùn)營(yíng),為用戶(hù)提供服務(wù)。用戶(hù)可以在云系統(tǒng)的實(shí)例系統(tǒng)上運(yùn)行某個(gè)應(yīng)用,對(duì)于游戲等需要較高硬件配置支持的應(yīng)用,用戶(hù)選擇在云系統(tǒng)的實(shí)例系統(tǒng)而不是本地設(shè)備上運(yùn)行非常普遍。
實(shí)例系統(tǒng)在同一時(shí)刻只能運(yùn)行一款應(yīng)用,但可以預(yù)先安裝多個(gè)應(yīng)用。最理想的狀態(tài),用戶(hù)希望運(yùn)行某一個(gè)應(yīng)用時(shí),恰好有一臺(tái)空閑的實(shí)例系統(tǒng)安裝了該應(yīng)用。運(yùn)營(yíng)商在云系統(tǒng)的用戶(hù)普遍下線(xiàn)時(shí)(例如凌晨)采用合適的預(yù)裝策略,能夠大大減少應(yīng)用的安裝次數(shù),提高用戶(hù)體驗(yàn)。
對(duì)于存儲(chǔ)空間足夠大的實(shí)例系統(tǒng),一次性預(yù)裝所有的應(yīng)用完全可行。但很多實(shí)例系統(tǒng)的存儲(chǔ)空間較小,一次性預(yù)裝所有的應(yīng)用并不現(xiàn)實(shí)。對(duì)于這類(lèi)實(shí)例系統(tǒng),如何制訂合理的預(yù)裝策略,盡可能降低應(yīng)用的安裝次數(shù),尚未見(jiàn)報(bào)道。
在說(shuō)明書(shū)“背景技術(shù)”部分公開(kāi)的內(nèi)容,有助于本領(lǐng)域技術(shù)人員理解本發(fā)明的技術(shù)方案,但不應(yīng)據(jù)此認(rèn)為這些內(nèi)容一定屬于現(xiàn)有技術(shù)或公知常識(shí)。
技術(shù)實(shí)現(xiàn)要素:
為了克服“背景技術(shù)”部分所反映的缺陷,為存儲(chǔ)空間較小的實(shí)例系統(tǒng)制訂合理的預(yù)裝策略,盡可能降低應(yīng)用的安裝次數(shù),本發(fā)明提供實(shí)例系統(tǒng)應(yīng)用的預(yù)安裝方法。
實(shí)例系統(tǒng)應(yīng)用的預(yù)安裝方法,包括:
將[N/M)設(shè)定為預(yù)安裝的輪數(shù),其中N為所有應(yīng)用的期望并發(fā)數(shù)累加得到的總期望并發(fā)數(shù),M為實(shí)例系統(tǒng)的總數(shù),[N/M)表示大于或等于N/M的最小整數(shù)。
進(jìn)一步的,預(yù)安裝的第一輪到第[N/M)-1輪的安裝方法為,遍歷所有的實(shí)例系統(tǒng),每個(gè)實(shí)例系統(tǒng)安裝一個(gè)應(yīng)用;
預(yù)安裝的第[N/M)輪的安裝方法為,選取[(N/M+1-[N/M))×M)個(gè)實(shí)例系統(tǒng),每個(gè)實(shí)例系統(tǒng)安裝一個(gè)的應(yīng)用;
每個(gè)應(yīng)用安裝的數(shù)量等于該應(yīng)用的期望并發(fā)數(shù)。
進(jìn)一步的,每個(gè)應(yīng)用安裝的數(shù)量依照該應(yīng)用的期望并發(fā)數(shù)同比例增加。
進(jìn)一步的,N/M不得超過(guò)設(shè)定的閾值。
進(jìn)一步的,預(yù)安裝的每一輪根據(jù)應(yīng)用占用存儲(chǔ)空間的大小確定安裝的優(yōu)先級(jí)次。
進(jìn)一步的,預(yù)安裝的第一輪按照應(yīng)用占用存儲(chǔ)空間從大到小的順序安裝,以后各輪依次交替。
進(jìn)一步的,根據(jù)期望并發(fā)數(shù)與實(shí)際并發(fā)數(shù)的差異卸載或者安裝應(yīng)用。
進(jìn)一步的,實(shí)例系統(tǒng)的操作系統(tǒng)為安卓系統(tǒng),應(yīng)用為游戲。
本發(fā)明技術(shù)方案中,“包括”、“用于”等詞語(yǔ)應(yīng)按照開(kāi)放式表達(dá)方式理解。本領(lǐng)域技術(shù)人員通過(guò)閱讀本說(shuō)明書(shū)并結(jié)合現(xiàn)有技術(shù)或公知常識(shí)能夠獲知的內(nèi)容,本說(shuō)明書(shū)中不再贅述。
本發(fā)明提供的實(shí)例系統(tǒng)應(yīng)用的預(yù)安裝方法,通過(guò)總期望并發(fā)數(shù)與實(shí)例系統(tǒng)總數(shù)的比例設(shè)定預(yù)安裝的輪數(shù),進(jìn)行多輪的預(yù)安裝。對(duì)于存儲(chǔ)空間較小的實(shí)例系統(tǒng)而言,不需要在每個(gè)實(shí)例系統(tǒng)上都安裝所有的應(yīng)用,有效節(jié)約了存儲(chǔ)空間。本方法為線(xiàn)性時(shí)間復(fù)雜度的算法,基本達(dá)到了問(wèn)題的最優(yōu)解,以最少的安裝次數(shù)滿(mǎn)足用戶(hù)的需求。
附圖說(shuō)明
圖1為具體實(shí)施方式中實(shí)例系統(tǒng)應(yīng)用的預(yù)安裝方法的示例圖。
具體實(shí)施方式
下面對(duì)本發(fā)明的實(shí)施方式進(jìn)行進(jìn)一步的具體說(shuō)明。但應(yīng)注意,本發(fā)明的范圍并不局限于所描述的具體技術(shù)方案。任何對(duì)所描述的具體技術(shù)方案中的技術(shù)要素進(jìn)行相同或等同替換獲得的技術(shù)方案或本領(lǐng)域技術(shù)人員在所描述的具體技術(shù)方案的基礎(chǔ)上不經(jīng)過(guò)創(chuàng)造性勞動(dòng)就可以獲得的技術(shù)方案,都應(yīng)當(dāng)視為落入本發(fā)明的保護(hù)范圍。
某種操作系統(tǒng)加上運(yùn)行該操作系統(tǒng)所需的必要硬件(例如處理器、存儲(chǔ)器等),可以構(gòu)成一個(gè)實(shí)例系統(tǒng)。將若干個(gè)實(shí)例系統(tǒng)按照一定的架構(gòu)方式集中管理,可以形成云系統(tǒng)。對(duì)于一些實(shí)例系統(tǒng)而言,其存儲(chǔ)器的存儲(chǔ)空間非常大,完全可以一次性預(yù)裝所有用戶(hù)可能使用的應(yīng)用。但對(duì)于一些實(shí)例系統(tǒng)而言,例如,操作系統(tǒng)為安卓(Android)系統(tǒng)的實(shí)例系統(tǒng),這類(lèi)實(shí)例系統(tǒng)的成本較低,但存儲(chǔ)空間也比較小,主要用于運(yùn)行游戲等特定的應(yīng)用(每個(gè)安卓游戲占用的存儲(chǔ)空間一般在100MB到600MB之間),在這些實(shí)例系統(tǒng)上預(yù)裝所有的應(yīng)用并不現(xiàn)實(shí)。
為了在存儲(chǔ)空間較小的實(shí)例系統(tǒng)上合理預(yù)裝應(yīng)用,需要確定應(yīng)用的總期望并發(fā)數(shù)N。所述的總期望并發(fā)數(shù),指的是所有應(yīng)用的期望并發(fā)數(shù)累加得到的總數(shù)。而對(duì)于每一個(gè)應(yīng)用,運(yùn)營(yíng)商可以基于該應(yīng)用并發(fā)數(shù)的歷史統(tǒng)計(jì)、排隊(duì)等待云系統(tǒng)分配該應(yīng)用的用戶(hù)數(shù)量、該應(yīng)用的市場(chǎng)營(yíng)銷(xiāo)或推廣力度等因素綜合考慮,合理預(yù)測(cè)該應(yīng)用的期望并發(fā)數(shù)(并發(fā)數(shù)即云系統(tǒng)中能同時(shí)運(yùn)行該應(yīng)用的人數(shù))。本發(fā)明技術(shù)方案需要假設(shè)不同應(yīng)用的運(yùn)行時(shí)間段不存在顯著不重疊的情形,這可以保證n個(gè)應(yīng)用被安裝到同一個(gè)實(shí)例系統(tǒng)上時(shí),每個(gè)應(yīng)用的并發(fā)數(shù)是1/n,該實(shí)例系統(tǒng)上所有應(yīng)用累加的并發(fā)數(shù)是1。如果不滿(mǎn)足這個(gè)假設(shè),例如應(yīng)用A總是在上午運(yùn)行而應(yīng)用B總是在下午運(yùn)行,則應(yīng)用A和應(yīng)用B被安裝到同一個(gè)實(shí)例系統(tǒng)時(shí),每個(gè)應(yīng)用的并發(fā)數(shù)是1,實(shí)例系統(tǒng)累加的并發(fā)數(shù)是2。之所以這樣假設(shè),是因?yàn)檫\(yùn)營(yíng)商很難進(jìn)行不同應(yīng)用在時(shí)間段上重疊的相關(guān)性分析,而且這種相關(guān)性也往往不穩(wěn)定,可能今天兩個(gè)應(yīng)用的時(shí)間段不重疊,明天又幾乎全部重疊。
基于上述假設(shè),每個(gè)實(shí)例系統(tǒng)上不管安裝多少個(gè)應(yīng)用,累加的并發(fā)數(shù)總是1,因此實(shí)例系統(tǒng)的總數(shù)M就是實(shí)際上能支持的總并發(fā)數(shù)。如果N≤M,每個(gè)實(shí)例系統(tǒng)上只安裝一個(gè)應(yīng)用就可以滿(mǎn)足要求,但顯然,這是對(duì)實(shí)例系統(tǒng)資源的嚴(yán)重浪費(fèi)。
通常都是N>M,這時(shí)需要進(jìn)行多輪的預(yù)安裝,將[N/M)設(shè)定為預(yù)安裝的輪數(shù)。其中N如前所述,為所有應(yīng)用的期望并發(fā)數(shù)累加得到的總期望并發(fā)數(shù)。M如前所述,為實(shí)例系統(tǒng)的總數(shù)。本發(fā)明技術(shù)方案中出現(xiàn)的所有符號(hào)[x)都表示大于或等于x的最小整數(shù)。
第一輪到第[N/M)-1輪的安裝方法為,遍歷所有的實(shí)例系統(tǒng),每個(gè)實(shí)例系統(tǒng)安裝一個(gè)應(yīng)用。而第[N/M)輪的安裝方法為,選取[(N/M+1-[N/M))×M)個(gè)實(shí)例系統(tǒng),每個(gè)實(shí)例系統(tǒng)安裝一個(gè)的應(yīng)用。每個(gè)應(yīng)用安裝的數(shù)量等于該應(yīng)用的期望并發(fā)數(shù)。
為了具體說(shuō)明預(yù)安裝方法,給出一個(gè)示例,如圖1所示。簡(jiǎn)單起見(jiàn),該示例假設(shè)云系統(tǒng)中只有5個(gè)實(shí)例系統(tǒng),即M=5。有4個(gè)應(yīng)用需要安裝,應(yīng)用1的期望并發(fā)數(shù)為4,應(yīng)用2的期望并發(fā)數(shù)為2,應(yīng)用3和應(yīng)用4的期望并發(fā)數(shù)都為3,這樣N=4+2+3+3=12。計(jì)算可知,N/M=2.4,[N/M)=3,需要進(jìn)行3輪預(yù)安裝。
第1輪和第2輪,遍歷所有的實(shí)例系統(tǒng),每個(gè)實(shí)例系統(tǒng)安裝一個(gè)應(yīng)用。從圖1可以看出,第1輪將應(yīng)用1安裝到了實(shí)例系統(tǒng)1—4,應(yīng)用2安裝到了實(shí)例系統(tǒng)5。由于應(yīng)用1的期望并發(fā)數(shù)為4,應(yīng)用1已經(jīng)安裝完畢。第二輪將應(yīng)用4安裝到實(shí)例系統(tǒng)1—3,應(yīng)用3安裝到了實(shí)例系統(tǒng)4—5。應(yīng)用3的期望并發(fā)數(shù)為3,應(yīng)用3也已經(jīng)安裝完畢。
第3輪,[(N/M+1-[N/M))×M)=[(2.4+1-3)×5)=2,選取2個(gè)實(shí)例系統(tǒng),用于安裝尚未安裝的應(yīng)用2和應(yīng)用3各一個(gè)。選取的方法,可以是隨機(jī)選取,也可以是按照一定的規(guī)則選取(例如優(yōu)選剩余存儲(chǔ)空間較大的實(shí)例系統(tǒng))。圖1中,隨機(jī)選取實(shí)例系統(tǒng)2和3,實(shí)例系統(tǒng)2安裝應(yīng)用2,實(shí)例系統(tǒng)3安裝應(yīng)用3。
在N>M的情況下,由于云系統(tǒng)實(shí)際支持的并發(fā)數(shù)有限,每個(gè)應(yīng)用都可能達(dá)不到期望的并發(fā)數(shù)。本發(fā)明提供的預(yù)安裝方法,每個(gè)應(yīng)用的實(shí)際安裝數(shù)量等于其期望并發(fā)數(shù),而不是在云系統(tǒng)實(shí)際支持的并發(fā)數(shù)不變的前提下同比例減少不同應(yīng)用的實(shí)際安裝數(shù),這可以保證某一應(yīng)用的用戶(hù)數(shù)量達(dá)到預(yù)期的并發(fā)峰值導(dǎo)致排隊(duì)時(shí),安裝了該應(yīng)用的實(shí)例系統(tǒng)一旦空閑就能直接使用,減少了為應(yīng)付峰值而臨時(shí)安裝應(yīng)用的次數(shù)。該預(yù)安裝方法在實(shí)例系統(tǒng)的總數(shù)不足以支撐總期望并發(fā)數(shù)的時(shí)候,由每個(gè)應(yīng)用平攤并發(fā)數(shù)的損失,這在不區(qū)分應(yīng)用優(yōu)先級(jí)的情形下是最優(yōu)解。
如果每個(gè)應(yīng)用的實(shí)際安裝數(shù)等于其期望并發(fā)數(shù)還是不能滿(mǎn)足需求,安裝數(shù)量可以依照該應(yīng)用的期望并發(fā)數(shù)同比例增加。例如,圖1中應(yīng)用1、應(yīng)用2、應(yīng)用3、應(yīng)用4的安裝數(shù)量,可以在滿(mǎn)足4:2:3:3這一比例的前提下適當(dāng)增加,此時(shí)N值也會(huì)相應(yīng)增加。
考慮到實(shí)例系統(tǒng)的存儲(chǔ)空間較小,安裝過(guò)多的應(yīng)用可能導(dǎo)致存儲(chǔ)空間不足,可以對(duì)N/M設(shè)定閾值,要求N/M不得超過(guò)設(shè)定的閾值。如果N/M超過(guò)了設(shè)定的閾值,則應(yīng)當(dāng)合理降低N的值(例如合理調(diào)減應(yīng)用的期望并發(fā)數(shù))。
另一方面,由于實(shí)例系統(tǒng)的存儲(chǔ)空間較小,為了使不同實(shí)例系統(tǒng)的存儲(chǔ)空間占用盡可能均勻,可以在預(yù)安裝方法中設(shè)定安裝策略。例如,策略為每一輪根據(jù)應(yīng)用占用存儲(chǔ)空間的大小確定安裝的優(yōu)先級(jí)次。一種可選擇的方式,第一輪按照應(yīng)用占用存儲(chǔ)空間從大到小的順序安裝,以后各輪依次交替,第二輪按照應(yīng)用占用存儲(chǔ)空間從小到大的順序安裝,第三輪再按照應(yīng)用占用存儲(chǔ)空間從大到小的順序安裝,依此類(lèi)推。
在圖1的示例中,各應(yīng)用占用存儲(chǔ)空間的大小是應(yīng)用1>應(yīng)用2>應(yīng)用3>應(yīng)用4。第一輪安裝按照應(yīng)用占用存儲(chǔ)空間從大到小的順序安裝,安裝的優(yōu)先級(jí)次是應(yīng)用1、應(yīng)用2、應(yīng)用3、應(yīng)用4。第二輪,按照應(yīng)用占用存儲(chǔ)空間從小到大的順序安裝,由于應(yīng)用1已經(jīng)安裝完畢,安裝的優(yōu)先級(jí)次是應(yīng)用4、應(yīng)用3、應(yīng)用2。第三輪,再按照應(yīng)用占用存儲(chǔ)空間從大到小的順序安裝,由于應(yīng)用1和應(yīng)用4都已經(jīng)安裝完畢,安裝的優(yōu)先級(jí)次是應(yīng)用2、應(yīng)用3。
通常,完成預(yù)安裝,云系統(tǒng)運(yùn)營(yíng)一段時(shí)間后,運(yùn)營(yíng)商可以得到比較準(zhǔn)確的各個(gè)應(yīng)用的實(shí)際并發(fā)數(shù)。如果實(shí)際并發(fā)數(shù)和期望并發(fā)數(shù)差異較大,最好根據(jù)實(shí)際并發(fā)數(shù)重新安裝應(yīng)用。而如果實(shí)際并發(fā)數(shù)和期望并發(fā)數(shù)差異不大,作為預(yù)安裝方法的延伸,可以根據(jù)期望并發(fā)數(shù)與實(shí)際并發(fā)數(shù)的差異卸載或者安裝應(yīng)用。如果有的應(yīng)用的實(shí)際并發(fā)數(shù)小于期望并發(fā)數(shù),則卸載相應(yīng)數(shù)量的應(yīng)用。如果有的應(yīng)用的實(shí)際并發(fā)數(shù)大于期望并發(fā)數(shù),則隨機(jī)或者按照一定的規(guī)則(例如優(yōu)選剩余存儲(chǔ)空間較大的實(shí)例系統(tǒng))選取實(shí)例系統(tǒng)安裝相應(yīng)數(shù)量的應(yīng)用。如果同時(shí)存在有的應(yīng)用(例如應(yīng)用A)的實(shí)際并發(fā)數(shù)小于期望并發(fā)數(shù)而有的應(yīng)用(例如應(yīng)用B)的實(shí)際并發(fā)數(shù)大于期望并發(fā)數(shù),可以?xún)?yōu)先選擇卸載掉應(yīng)用A的實(shí)例系統(tǒng)安裝應(yīng)用B。如果實(shí)際并發(fā)數(shù)和期望并發(fā)數(shù)差異不大,這樣的調(diào)整不會(huì)嚴(yán)重影響云系統(tǒng)的運(yùn)行效率。
本領(lǐng)域技術(shù)人員在以上所描述的具體技術(shù)方案的基礎(chǔ)上,完全可以構(gòu)造出其他方案。例如,將[N/M)之外其他合理的數(shù)值設(shè)定為預(yù)安裝的輪數(shù)。在此不一一列舉。