本發(fā)明屬于程序熱更新領(lǐng)域,具體是一種基于多服務(wù)不間斷的程序熱更新系統(tǒng)和更新方法。
背景技術(shù):
1、程序熱更新技術(shù)是一種在不中斷用戶使用的情況下,對程序代碼或數(shù)據(jù)進(jìn)行更新的技術(shù),尤其適用于需要高可用性和快速響應(yīng)的應(yīng)用場景,如游戲、企業(yè)應(yīng)用等,通過熱更新,開發(fā)者可以在不停止服務(wù)的情況下,動態(tài)地修改和替換程序的字節(jié)碼或資源文件,熱更新主要依賴于動態(tài)加載和替換類的字節(jié)碼,此外,反射機(jī)制也被廣泛應(yīng)用于熱更新過程中,通過反射獲取類的方法和字段信息,調(diào)用相應(yīng)的方法或修改字節(jié)碼。
2、當(dāng)前技術(shù)背景下,應(yīng)用程序在進(jìn)行更新時普遍使用整包更新模式,由于更新模式限制,用戶在進(jìn)行程序更新將不可避免的中斷當(dāng)前的使用進(jìn)程,同時,對未及時保存的數(shù)據(jù)還存在數(shù)據(jù)損壞或數(shù)據(jù)丟失的風(fēng)險;
3、為此,本發(fā)明提出一種基于多服務(wù)不間斷的程序熱更新系統(tǒng)和更新方法。
技術(shù)實現(xiàn)思路
1、針對現(xiàn)有技術(shù)存在的不足,本發(fā)明目的是提供一種基于多服務(wù)不間斷的程序熱更新系統(tǒng)和更新方法。
2、本發(fā)明所要解決的技術(shù)問題為:
3、如何基于應(yīng)用程序的運(yùn)行進(jìn)程數(shù)據(jù)實現(xiàn)更新方案的適應(yīng)性抉擇的問題。
4、為了實現(xiàn)上述目的,本發(fā)明采用了如下技術(shù)方案:
5、第一方面,一種基于多服務(wù)不間斷的程序熱更新系統(tǒng),包括內(nèi)容審查模塊、內(nèi)容干預(yù)模塊、服務(wù)管理模塊、更新抉擇模塊、更新執(zhí)行模塊和服務(wù)器;
6、所述內(nèi)容審查模塊用于審查應(yīng)用程序?qū)?yīng)更新包的包體內(nèi)容,審查得到應(yīng)用程序?qū)?yīng)更新包的內(nèi)容情況;
7、所述內(nèi)容干預(yù)模塊根據(jù)應(yīng)用程序?qū)?yīng)更新包的內(nèi)容情況執(zhí)行應(yīng)對措施;
8、所述服務(wù)管理模塊對應(yīng)用程序的服務(wù)使用情況進(jìn)行監(jiān)測,監(jiān)測得到應(yīng)用程序的服務(wù)進(jìn)程數(shù)據(jù);
9、所述更新抉擇模塊對應(yīng)用程序的更新任務(wù)進(jìn)行抉擇,抉擇得到應(yīng)用程序的更新模式;
10、所述更新執(zhí)行模塊用于根據(jù)更新模式執(zhí)行應(yīng)用程序的更新操作。
11、進(jìn)一步地,所述服務(wù)進(jìn)程數(shù)據(jù)包括應(yīng)用程序的服務(wù)功能以及應(yīng)用程序中各個服務(wù)功能的進(jìn)程占用量和存儲占用量。
12、進(jìn)一步地,所述內(nèi)容審查模塊的審查過程具體包括:
13、應(yīng)用程序?qū)?yīng)更新包上傳完畢后,對更新包進(jìn)行解包得到更新包的包體內(nèi)容數(shù)據(jù),還獲取數(shù)據(jù)庫中存儲的病毒樣本數(shù)據(jù);
14、將更新包的包體內(nèi)容數(shù)據(jù)與病毒樣本數(shù)據(jù)進(jìn)行遍歷比對;
15、若包體內(nèi)容數(shù)據(jù)與任一病毒樣本數(shù)據(jù)的比對結(jié)果為完全一致,則判定更新包的內(nèi)容情況為危險內(nèi)容;
16、若包體內(nèi)容數(shù)據(jù)與任一病毒樣本數(shù)據(jù)的比對結(jié)果均不一致,則判定更新包的內(nèi)容情況為安全內(nèi)容;
17、若包體內(nèi)容數(shù)據(jù)與任一病毒樣本數(shù)據(jù)的比對結(jié)果為部分一致,則計算包體內(nèi)容數(shù)據(jù)與病毒樣本數(shù)據(jù)的內(nèi)容重合度。
18、進(jìn)一步地,所述內(nèi)容審查模塊的審查過程具體還包括:
19、將包體內(nèi)容數(shù)據(jù)與病毒樣本數(shù)據(jù)的內(nèi)容重合度與標(biāo)準(zhǔn)重合度進(jìn)行比對;
20、若內(nèi)容重合度小于標(biāo)準(zhǔn)重合度,則判定更新包的內(nèi)容情況為疑似風(fēng)險內(nèi)容;
21、若內(nèi)容重合度大于等于標(biāo)準(zhǔn)重合度,則判定更新包的內(nèi)容情況為危險內(nèi)容。
22、進(jìn)一步地,所述內(nèi)容干預(yù)模塊的應(yīng)對措施具體如下:
23、若更新包的內(nèi)容情況為安全內(nèi)容,則不進(jìn)行額外操作;
24、若更新包的內(nèi)容情況為疑似風(fēng)險內(nèi)容,則暫緩更新包的上架進(jìn)程并向程序開發(fā)人員進(jìn)行內(nèi)容修改的反饋;
25、若更新包的內(nèi)容情況為危險內(nèi)容,則暫時下架更新包對應(yīng)的應(yīng)用程序。
26、進(jìn)一步地,所述服務(wù)管理模塊的監(jiān)測過程具體如下:
27、對應(yīng)用程序的服務(wù)進(jìn)程數(shù)據(jù)進(jìn)行實時監(jiān)測;
28、通過任務(wù)管理器獲取應(yīng)用程序中各個服務(wù)功能的進(jìn)程占用量;
29、通過流量監(jiān)控器獲取應(yīng)用程序中各個服務(wù)項目的存儲占用量。
30、進(jìn)一步地,所述更新抉擇模塊的工作過程具體包括:
31、獲取應(yīng)用程序的更新包,將更新包的包體內(nèi)容與應(yīng)用程序的程序內(nèi)容進(jìn)行映射,獲取應(yīng)用程序中待更新服務(wù)功能和各個待更新服務(wù)功能的更新數(shù)據(jù)量,
32、其中,待更新服務(wù)功能包含于應(yīng)用程序的服務(wù)功能,若應(yīng)用程序在熱更新中服務(wù)功能增加,則待更新服務(wù)功能和服務(wù)功能的數(shù)量同步增加;
33、獲取應(yīng)用程序中各個待更新服務(wù)功能的進(jìn)程占用量和存儲占用量,計算應(yīng)用程序的更新任務(wù)量。
34、進(jìn)一步地,所述更新抉擇模塊的工作過程具體還包括:
35、將應(yīng)用程序的更新任務(wù)量與標(biāo)準(zhǔn)任務(wù)量進(jìn)行比對;
36、若更新任務(wù)量小于等于第一標(biāo)準(zhǔn)任務(wù)量,則判定應(yīng)用程序的更新模式為即時整包更新;
37、若更新任務(wù)量大于第一標(biāo)準(zhǔn)任務(wù)量且小于等于第二標(biāo)準(zhǔn)任務(wù)量,則判定應(yīng)用程序的更新模式為即時分包更新;
38、若更新任務(wù)量大于第二標(biāo)準(zhǔn)任務(wù)量,則判定應(yīng)用程序的更新模式為延時整包更新;
39、其中,第一標(biāo)準(zhǔn)任務(wù)量和第二標(biāo)準(zhǔn)任務(wù)量的數(shù)值均大于零,第一標(biāo)準(zhǔn)任務(wù)量小于第二標(biāo)準(zhǔn)任務(wù)量。
40、進(jìn)一步地,所述更新執(zhí)行模塊的更新操作具體包括:
41、若應(yīng)用程序的更新模式為即時整包更新,則各個服務(wù)功能即刻同步進(jìn)行數(shù)據(jù)更新操作;
42、若應(yīng)用程序的更新模式為即時分包更新,則將更新操作依照服務(wù)功能劃分為若干個步驟,優(yōu)先對未使用狀態(tài)下的服務(wù)功能進(jìn)行數(shù)據(jù)更新操作,當(dāng)服務(wù)功能正在使用時則暫停數(shù)據(jù)更新操作,直至服務(wù)功能處于未使用狀態(tài)時繼續(xù)數(shù)據(jù)更新操作;
43、若應(yīng)用程序的更新模式為延時整包更新,則待用戶停止使用應(yīng)用程序時或下一次開啟應(yīng)用程序時進(jìn)行整包更新。
44、第二方面,本發(fā)明還提出一種基于多服務(wù)不間斷的程序熱更新方法,更新方法步驟具體包括:
45、步驟s101,程序開發(fā)人員將應(yīng)用程序的更新包上傳至應(yīng)用商店,用戶終端通過應(yīng)用商店進(jìn)行更新包的下載操作;
46、步驟s102,內(nèi)容審查模塊對應(yīng)用程序的更新包進(jìn)行包體內(nèi)容審查,審查得到更新包的內(nèi)容情況,內(nèi)容干預(yù)模塊根據(jù)內(nèi)容情況執(zhí)行應(yīng)對措施;
47、步驟s103,應(yīng)用程序?qū)?yīng)更新包審查完畢后,服務(wù)管理模塊對應(yīng)用程序的服務(wù)使用情況進(jìn)行監(jiān)測,監(jiān)測得到應(yīng)用程序的服務(wù)進(jìn)程數(shù)據(jù),更新抉擇模塊對應(yīng)用程序的更新任務(wù)進(jìn)行抉擇得到應(yīng)用程序的更新模式;
48、步驟s104,更新執(zhí)行模塊根據(jù)更新模式執(zhí)行應(yīng)用程序的更新操作。
49、綜上所述,由于采用了上述技術(shù)方案,本發(fā)明的有益效果是:
50、本發(fā)明首先通過內(nèi)容審查模塊對應(yīng)用程序的更新包進(jìn)行包體內(nèi)容審查得到更新包的內(nèi)容情況,然后經(jīng)由內(nèi)容干預(yù)模塊根據(jù)內(nèi)容情況執(zhí)行應(yīng)對措施,再利用服務(wù)管理模塊對應(yīng)用程序的服務(wù)使用情況進(jìn)行監(jiān)測得到應(yīng)用程序的服務(wù)進(jìn)程數(shù)據(jù),而后通過更新抉擇模塊對應(yīng)用程序的更新任務(wù)進(jìn)行抉擇得到應(yīng)用程序的更新模式,最終利用更新執(zhí)行模塊根據(jù)更新模式執(zhí)行應(yīng)用程序的更新操作,本發(fā)明實現(xiàn)了應(yīng)用程序的更新方案智能抉擇。