專(zhuān)利名稱(chēng):一種插件運(yùn)行的方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種插件運(yùn)行的方法、裝置及系統(tǒng)。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展, 一些網(wǎng)絡(luò)工具已經(jīng)被越來(lái)越廣泛的使用了,例如 即時(shí)通訊工具已逐漸成為用戶(hù)生活中不可或缺的網(wǎng)絡(luò)工具。同時(shí),隨著這些網(wǎng) 絡(luò)工作的普遍^f吏用,用戶(hù)也對(duì)它們產(chǎn)生了更多的需求。在這種背景下,往往這 些網(wǎng)絡(luò)工具的開(kāi)發(fā)商獨(dú)自開(kāi)發(fā)的軟件已經(jīng)不能滿(mǎn)足用戶(hù)的需求了 ,即這些網(wǎng)絡(luò) 工具的核心業(yè)務(wù)程序提供的服務(wù)已經(jīng)不能滿(mǎn)足客戶(hù)的需求了。因此,通過(guò)制定 規(guī)范,允許符合規(guī)范的程序模塊,即插件,接入對(duì)應(yīng)的網(wǎng)絡(luò)工具的軟件中,從 而,插件和核心業(yè)務(wù)程序共同為用戶(hù)提供更多的服務(wù)。這已經(jīng)成為了一種不可 阻擋的潮流。
目前,插件的運(yùn)行^^式有以下幾種方法
1、 插件和核心業(yè)務(wù)程序運(yùn)行于同一個(gè)進(jìn)程中,這樣,插件的支持體系筒 單,插件和核心業(yè)務(wù)程序交互效率高,但是因?yàn)樵谝粋€(gè)進(jìn)程內(nèi), 一旦插件出現(xiàn) 問(wèn)題,會(huì)直接導(dǎo)致核心業(yè)務(wù)程序出現(xiàn)異?;蛘弑罎?,并且由于核心業(yè)務(wù)程序內(nèi) 的模塊眾多,較難具體定位是哪個(gè)模塊或者插件出現(xiàn)了問(wèn)題;
2、 插件在核心業(yè)務(wù)程序運(yùn)行進(jìn)程之外運(yùn)行,并且每個(gè)插件一個(gè)進(jìn)程,這 樣,能夠防止因插件導(dǎo)致核心業(yè)務(wù)程序被影響,但是當(dāng)插件數(shù)量較多時(shí)候,將 大量占用客戶(hù)端的系統(tǒng)資源,降低用戶(hù)體驗(yàn);
3、 插件在核心業(yè)務(wù)程序運(yùn)行進(jìn)程之外運(yùn)行,并且全部插件運(yùn)行于一個(gè)特 定進(jìn)程中,這樣,能夠節(jié)省客戶(hù)端的系統(tǒng)資源,但是當(dāng)某個(gè)插件出現(xiàn)異常,有 可能導(dǎo)致所有的插件不可用或者異常,同時(shí)也不利于具體定位是哪個(gè)插件出現(xiàn)了問(wèn)題。
由此可見(jiàn),現(xiàn)有的插件運(yùn)行方式對(duì)插件穩(wěn)定性要求比較高,或者占用的客 戶(hù)端資源比較多。但是,隨著插件開(kāi)發(fā)者的增多,其技術(shù)水平良莠不齊,插件 的穩(wěn)定性也很難保證,通常都不如核心業(yè)務(wù)程序,插件會(huì)經(jīng)常崩潰或者出現(xiàn)故
障,這樣,采用上述方法1或3,會(huì)因?yàn)閭€(gè)別插件運(yùn)行不穩(wěn)定,從而導(dǎo)致核心 業(yè)務(wù)程序或者所有插件運(yùn)行不正常。同時(shí)客戶(hù)端的資源都是有限的,采用上述 方法2會(huì)過(guò)多的占用客戶(hù)端的資源,從而也會(huì)導(dǎo)致客戶(hù)端的運(yùn)行速度緩慢,甚 至?xí)?dǎo)致客戶(hù)端系統(tǒng)崩潰。
發(fā)明內(nèi)容
有鑒于此,本申請(qǐng)實(shí)施例提供一種插件運(yùn)行的方法,用以解決現(xiàn)有技術(shù)中 插件運(yùn)行方式帶來(lái)的系統(tǒng)運(yùn)行不穩(wěn)定的問(wèn)題。
本申請(qǐng)實(shí)施例提供的一種插件運(yùn)行的方法,包括 獲取待運(yùn)行插件的穩(wěn)定級(jí)別;
根據(jù)保存的穩(wěn)定級(jí)別與插件運(yùn)行模式的對(duì)應(yīng)關(guān)系,確定獲取的穩(wěn)定級(jí)別對(duì) 應(yīng)的插件運(yùn)行模式;
根據(jù)確定的插件運(yùn)行模式運(yùn)行所述待運(yùn)行插件。
本申請(qǐng)實(shí)施例提供的一種插件運(yùn)行的客戶(hù)端,包括
第一獲取單元,用于獲取待運(yùn)行插件的穩(wěn)定級(jí)別;
存儲(chǔ)單元,用于保存穩(wěn)定級(jí)別與運(yùn)行模式的對(duì)應(yīng)關(guān)系;
第一確定單元,用于根據(jù)存儲(chǔ)單元保存的穩(wěn)定級(jí)別與運(yùn)行模式的對(duì)應(yīng)關(guān) 系,確定獲取的穩(wěn)定級(jí)別對(duì)應(yīng)的插件運(yùn)行模式;
運(yùn)行單元,用于根據(jù)確定的插件運(yùn)行模式運(yùn)行所述待運(yùn)行插件。
本申請(qǐng)實(shí)施例提供的一種插件運(yùn)行的系統(tǒng),包括
客戶(hù)端,用于從服務(wù)器保存的插件的穩(wěn)定級(jí)別中,獲取待運(yùn)行插件的穩(wěn)定 級(jí)別,根據(jù)保存的穩(wěn)定級(jí)別與運(yùn)行模式的對(duì)應(yīng)關(guān)系,確定獲取的穩(wěn)定級(jí)別對(duì)應(yīng)的插件運(yùn)行模式,根據(jù)確定的插件運(yùn)行模式運(yùn)行所述待運(yùn)行插件; 服務(wù)器,用于保存插件的穩(wěn)定級(jí)別。
本申請(qǐng)實(shí)施例中,獲取待運(yùn)行插件的穩(wěn)定級(jí)別,才艮據(jù)保存的穩(wěn)定級(jí)別與運(yùn) 行模式的對(duì)應(yīng)關(guān)系,確定獲取的穩(wěn)定級(jí)別對(duì)應(yīng)的插件運(yùn)行模式,根據(jù)確定的插 件運(yùn)行模式運(yùn)行所述待運(yùn)行插件,這樣,根據(jù)插件的不同的穩(wěn)定級(jí)別,選擇不 同的插件運(yùn)行模式,從而可以提高系統(tǒng)運(yùn)行的穩(wěn)定性,也可以有效控制插件對(duì) 資源的占用。
圖1為本申請(qǐng)實(shí)施例插件運(yùn)行的流程圖2為本申請(qǐng)實(shí)施例插件運(yùn)行的具體方法流程圖3為本申請(qǐng)實(shí)施例獲取插件運(yùn)行的異常信息流程圖4為本申請(qǐng)實(shí)施例調(diào)整插件穩(wěn)定級(jí)別的流程圖5為本申請(qǐng)實(shí)施例運(yùn)行插件的客戶(hù)端的結(jié)構(gòu)圖6為本申請(qǐng)實(shí)施例運(yùn)行插件的系統(tǒng)的架構(gòu)圖。
具體實(shí)施例方式
本申請(qǐng)實(shí)施例中,當(dāng)在客戶(hù)端上運(yùn)行的網(wǎng)絡(luò)工具的核心業(yè)務(wù)程序提供的業(yè) 務(wù)不能滿(mǎn)足用戶(hù)的需求時(shí),需要運(yùn)行該網(wǎng)絡(luò)工具的插件來(lái)滿(mǎn)足用戶(hù)的需求,其 插件運(yùn)行的過(guò)程,參見(jiàn)圖1,具體包括
步驟101:獲取待運(yùn)行插件的穩(wěn)定級(jí)別。
這里,可以從服務(wù)器保存的插件的穩(wěn)定級(jí)別中,獲取待運(yùn)行插件的穩(wěn)定級(jí) 別。也可以從本地保存的插件的穩(wěn)定級(jí)別中,獲取待運(yùn)行插件的穩(wěn)定級(jí)別。插 件的穩(wěn)定級(jí)別可以根據(jù)設(shè)定時(shí)間內(nèi)插件的運(yùn)行狀態(tài)進(jìn)行劃分,例如,穩(wěn)定級(jí)別 劃分為三個(gè)級(jí)別,分別為穩(wěn)定,普通,不穩(wěn)定。這里,設(shè)定一個(gè)上限閾值,一 個(gè)下限閾值,當(dāng)設(shè)定時(shí)間內(nèi),該插件運(yùn)行出現(xiàn)異常的次數(shù)大于等于上限閾值時(shí),則該插件的穩(wěn)定級(jí)別為不穩(wěn)定;當(dāng)設(shè)定時(shí)間內(nèi),該插件運(yùn)行出現(xiàn)異常的次數(shù)小 于等于下限閾值時(shí),則該插件的穩(wěn)定級(jí)別為穩(wěn)定,當(dāng)設(shè)定時(shí)間內(nèi),該插件運(yùn)行 出現(xiàn)異常的次數(shù)處于下限閾值與上限閾值之間時(shí),則該插件的穩(wěn)定級(jí)別為普 通。當(dāng)然,穩(wěn)定級(jí)別也可以只劃分為兩個(gè)級(jí)別,穩(wěn)定與普通,那么只需設(shè)定一 個(gè)閾值,當(dāng)設(shè)定時(shí)間內(nèi),該插件運(yùn)行出現(xiàn)異常的次數(shù)大于該閾值時(shí),則該插件 的穩(wěn)定級(jí)別為普通,否則為穩(wěn)定。也可以將穩(wěn)定級(jí)別劃分為四個(gè)級(jí)別,穩(wěn)定, 比較穩(wěn)定,普通和不穩(wěn)定,那么就需要設(shè)定三個(gè)閾值,第一閾值,第二閾值, 第三閾值,其大小異常遞減,那么,當(dāng)設(shè)定時(shí)間內(nèi),該插件運(yùn)行出現(xiàn)異常的次 數(shù)大于等于第一閾值時(shí),則該插件的穩(wěn)定級(jí)別為不穩(wěn)定;當(dāng)設(shè)定時(shí)間內(nèi),該插 件運(yùn)行出現(xiàn)異常的次數(shù)大于等于第二閾值,且小于第一閾值時(shí),則該插件的穩(wěn) 定級(jí)別為普通;當(dāng)設(shè)定時(shí)間內(nèi),該插件運(yùn)行出現(xiàn)異常的次數(shù)大于等于第三閾值, 且小于第二閾值時(shí),則該插件的穩(wěn)定級(jí)別為比較穩(wěn)定;當(dāng)設(shè)定時(shí)間內(nèi),該插件
運(yùn)行出現(xiàn)異常的次數(shù)小于第三閾值時(shí),則該插件的穩(wěn)定級(jí)別為穩(wěn)定。
這里,服務(wù)器或本地客戶(hù)端可以建立插件與穩(wěn)定級(jí)別的對(duì)應(yīng)的關(guān)系,當(dāng)確 定了待運(yùn)行插件的插件信息后,例如標(biāo)識(shí)信息,就可以獲得該待運(yùn)行插件的穩(wěn) 定級(jí)別。
步驟102:根據(jù)保存的穩(wěn)定級(jí)別與運(yùn)行模式的對(duì)應(yīng)關(guān)系,確定獲取的穩(wěn)定 級(jí)別對(duì)應(yīng)的插件運(yùn)朽-才莫式。
這里,可以預(yù)先設(shè)置穩(wěn)定級(jí)別與運(yùn)行模式的對(duì)應(yīng)關(guān)系,并在客戶(hù)端的存儲(chǔ) 單元中進(jìn)行保存。其中,插件運(yùn)行模式包括針對(duì)插件的不同穩(wěn)定級(jí)別,啟動(dòng) 不同的加載器進(jìn)程運(yùn)行所述待運(yùn)行插件,穩(wěn)定級(jí)別與插件運(yùn)行模式的對(duì)應(yīng)關(guān)系 包括
穩(wěn)定級(jí)別為穩(wěn)定時(shí),插件運(yùn)行模式為放入共享的加載器進(jìn)程中運(yùn)行插件; 穩(wěn)定級(jí)別為普通時(shí),插件運(yùn)行模式為啟動(dòng)獨(dú)立的加載器進(jìn)程運(yùn)行插件。其中, 加載器進(jìn)程為可執(zhí)行的程序,可以由客戶(hù)端上運(yùn)行的網(wǎng)絡(luò)工具的的核心服務(wù)程 序創(chuàng)建,也可以由客戶(hù)端中的其他程序創(chuàng)建,包括共享的加載器進(jìn)程和獨(dú)立的
8加載器進(jìn)程。共享的加載器進(jìn)程可以運(yùn)行多個(gè)插件,獨(dú)立的加載器進(jìn)程只運(yùn)行 一個(gè)插件。這樣,多個(gè)穩(wěn)定級(jí)別為穩(wěn)定的插件運(yùn)行在一個(gè)共享的加載器進(jìn)程中,
可以減少對(duì)客戶(hù)端資源的占用;穩(wěn)定級(jí)別為普通的插件在獨(dú)立的加載器進(jìn)程中 運(yùn)行,可以減少該插件對(duì)核心業(yè)務(wù)程序,以及穩(wěn)定級(jí)別為穩(wěn)定的插件的影響, 提高系統(tǒng)的穩(wěn)定性。
這里,當(dāng)穩(wěn)定級(jí)別包括穩(wěn)定,普通與不穩(wěn)定時(shí),穩(wěn)定級(jí)別與插件運(yùn)行模式 的對(duì)應(yīng)關(guān)系還包括
穩(wěn)定級(jí)別為不穩(wěn)定時(shí),插件運(yùn)行模式為放棄運(yùn)行插件,或者通知用戶(hù)選擇 是否運(yùn)行該插件。當(dāng)用戶(hù)選擇運(yùn)行時(shí),啟動(dòng)獨(dú)立的加載器運(yùn)行該插件;當(dāng)用戶(hù) 選擇不運(yùn)行時(shí),放棄運(yùn)行插件。
當(dāng)穩(wěn)定級(jí)別包括穩(wěn)定,比較穩(wěn)定、普通與不穩(wěn)定時(shí),穩(wěn)定級(jí)別與插件運(yùn)行 模式的對(duì)應(yīng)關(guān)系還包括
穩(wěn)定級(jí)別為比較穩(wěn)定時(shí),插件運(yùn)行模式為放入共享的加載器進(jìn)程中運(yùn)行插 件,這里,共享的加載器可以是與穩(wěn)定級(jí)別為穩(wěn)定對(duì)應(yīng)的共享的加載器,也可 以是另外一個(gè)共享的加載器。
這樣,步驟101中獲取的待運(yùn)行插件的穩(wěn)定級(jí)別不同,其運(yùn)行模式就不同。
步驟103:根據(jù)步驟102確定的插件運(yùn)行模式運(yùn)行待運(yùn)行插件。
本實(shí)施例中,插件的運(yùn)行過(guò)程中,可能會(huì)出現(xiàn)異常,因此,本實(shí)施例插件 運(yùn)行的方法還包括當(dāng)插件運(yùn)行異常時(shí),客戶(hù)端獲取插件運(yùn)行的異常信息,保 存該異常信息,或者將該異常信息發(fā)送給服務(wù)器進(jìn)行保存,其中,所述異常信 息包括異常原因,以及運(yùn)行的插件的插件信息。異常原因又具體包括加載 器進(jìn)程崩潰,插件執(zhí)行線(xiàn)程僵死,或插件長(zhǎng)時(shí)間占用過(guò)高的內(nèi)存或者處理器。 插件信息又具體包括插件的標(biāo)識(shí)信息,名稱(chēng),版本等等。
這樣,客戶(hù)端或者服務(wù)器就可以根據(jù)插件運(yùn)行的異常信息確定插件的穩(wěn)定 級(jí)別,并可以定期進(jìn)行調(diào)整,也就是根據(jù)保存的異常信息,確定插件在設(shè)定時(shí) 間內(nèi)出現(xiàn)的異常次數(shù),并根據(jù)所述異常次數(shù)調(diào)整所述插件的穩(wěn)定級(jí)別。其具體的調(diào)整過(guò)程包括當(dāng)設(shè)定時(shí)間觸發(fā)后,也就是設(shè)定時(shí)間到達(dá)后,獲取所述設(shè)定 時(shí)間內(nèi)使用次數(shù)超過(guò)閾值的插件的插件信息,根據(jù)保存的異常信息,確定獲取 的插件信息在設(shè)定時(shí)間內(nèi)出現(xiàn)的異常次數(shù),根據(jù)所述異常次數(shù)自動(dòng)調(diào)整所述插 件的穩(wěn)定級(jí)別。當(dāng)然,為了下一次定期調(diào)整,需將異常次數(shù)以及使用次數(shù)進(jìn)行 復(fù)位。這里,還可以人工進(jìn)行調(diào)整,客月認(rèn)員統(tǒng)計(jì)一定時(shí)間內(nèi)插件的運(yùn)行狀態(tài), 當(dāng)設(shè)定時(shí)間內(nèi),插件運(yùn)行異常的次數(shù)超過(guò)設(shè)定值時(shí),修改該插件的穩(wěn)定級(jí)別。
在客戶(hù)端運(yùn)行網(wǎng)絡(luò)工具的插件運(yùn)行過(guò)程可以由該網(wǎng)絡(luò)工具的核心業(yè)務(wù)程 序來(lái)管理,也可以由客戶(hù)端中其他的程序來(lái)管理。其中,本實(shí)施例中,核心業(yè) 務(wù)程序不僅提供該網(wǎng)絡(luò)工具的核心業(yè)務(wù),也包括管理插件的程序。加載器進(jìn)程 是客戶(hù)端中的獨(dú)立的可執(zhí)行程序,核心業(yè)務(wù)程序也可以是一個(gè)加載進(jìn)程。
下面結(jié)合說(shuō)明書(shū)附圖對(duì)本申請(qǐng)實(shí)施例作進(jìn)一步詳細(xì)描述,參見(jiàn)圖2,插件 運(yùn)行的具體過(guò)程如下
步驟201:核心業(yè)務(wù)程序獲取待運(yùn)行插件的穩(wěn)定級(jí)別。
這里,當(dāng)核心業(yè)務(wù)程序向服務(wù)器請(qǐng)求獲取待運(yùn)行插件的穩(wěn)定級(jí)別時(shí),服務(wù) 器根據(jù)該請(qǐng)求,獲取該待運(yùn)行插件的插件信息,例如標(biāo)識(shí)信息,在保存的插件 與插件的穩(wěn)定級(jí)別的對(duì)應(yīng)關(guān)系中,查詢(xún)?cè)摌?biāo)識(shí)信息的對(duì)應(yīng)的待運(yùn)行插件的穩(wěn)定 級(jí)別,將查詢(xún)到的穩(wěn)定級(jí)別返回給核心業(yè)務(wù)程序,并將記錄的待運(yùn)行插件的使 用次數(shù)遞加。其中,穩(wěn)定級(jí)別包括穩(wěn)定,普通和不穩(wěn)定。
當(dāng)核心業(yè)務(wù)程序從本地客戶(hù)端獲取待運(yùn)行插件的穩(wěn)定級(jí)別時(shí),客戶(hù)端在保 存的插件的穩(wěn)定級(jí)別中,查詢(xún)?cè)摯\(yùn)行插件的穩(wěn)定級(jí)別,將查詢(xún)到的穩(wěn)定級(jí)別 返回給核心業(yè)務(wù)程序,并將記錄的待運(yùn)行插件的使用次數(shù)遞加。同樣,穩(wěn)定級(jí) 別包括穩(wěn)定,普通和不穩(wěn)定。
步驟202:核心業(yè)務(wù)程序判斷待運(yùn)行插件的穩(wěn)定級(jí)別是為穩(wěn)定,普通,或 不穩(wěn)定,當(dāng)穩(wěn)定級(jí)別為穩(wěn)定時(shí),執(zhí)行步驟203;當(dāng)穩(wěn)定級(jí)別為普通時(shí),執(zhí)行步 驟206;當(dāng)穩(wěn)定級(jí)別為不穩(wěn)定時(shí),執(zhí)行步驟207。
步驟203:核心業(yè)務(wù)程序判斷共享的加載器進(jìn)程是否存在,當(dāng)存在時(shí),執(zhí)行步驟205,當(dāng)不存在時(shí),執(zhí)行步驟204。
步驟204:核心業(yè)務(wù)程序創(chuàng)建一個(gè)共享的加載器進(jìn)程。 步驟205:共享的加載器進(jìn)程運(yùn)行待運(yùn)行的插件。
步驟206:核心業(yè)務(wù)程序?yàn)榉€(wěn)定級(jí)別為普通的待運(yùn)行插件建立一個(gè)獨(dú)立的 加載進(jìn)程,該加載進(jìn)程運(yùn)行待運(yùn)行的插件。 步驟207:插件運(yùn)行過(guò)程結(jié)束。
上述實(shí)施例中,當(dāng)不存在共享的加載器進(jìn)程時(shí),步驟204創(chuàng)建了一個(gè)共享 的加載器進(jìn)程,這里,也可以直接把核心業(yè)務(wù)程序作為共享的加載器,在核心 業(yè)務(wù)程序進(jìn)程中運(yùn)行穩(wěn)定級(jí)別為穩(wěn)定的插件。
本申請(qǐng)實(shí)施例中,當(dāng)插件運(yùn)行出現(xiàn)異常時(shí),客戶(hù)端還可以獲取該插件的異 常信息,并保存這些異常信息,或者發(fā)送給服務(wù)器。插件都是在加載器進(jìn)程中 運(yùn)行的,因此,插件運(yùn)行出現(xiàn)異常,也就是加載器進(jìn)程出現(xiàn)異常時(shí),客戶(hù)端獲 取到加載器進(jìn)程的異常信息,并保存這些異常信息,或者發(fā)送給服務(wù)器,參見(jiàn) 圖3,其體過(guò)程如下
步驟301:獲取加載器進(jìn)程的異常信息,異常信息包括加載器進(jìn)程的異 常原因,以及在該加載器進(jìn)程中運(yùn)行的插件的插件信息。
這里,當(dāng)加載器進(jìn)程為獨(dú)立的加載器進(jìn)程時(shí),則異常信息包括異常原因, 以及在該獨(dú)立的加載器進(jìn)程中運(yùn)行的插件的插件信息,當(dāng)加載器進(jìn)程為共享的 加載器進(jìn)程時(shí),則異常信息包括異常原因,以及在該共享的加載器進(jìn)程中運(yùn) 行的所有插件的插件信息。異常信息還可以包括加載器進(jìn)程的異常上下文。 這里,異常上下文包括加載器進(jìn)程的內(nèi)存影像,函數(shù)堆棧上下文,加載器進(jìn) 程加載的插件等技術(shù)信息。通過(guò)對(duì)這些信息的分析可以知道上下文對(duì)應(yīng)的時(shí) 刻,加載器進(jìn)程內(nèi)所運(yùn)行的插件,當(dāng)前正在執(zhí)行的指令等等。
客戶(hù)端可以通過(guò)4企測(cè)獲得加載器進(jìn)程的異常原因。異常原因有可能是加載 器進(jìn)程崩潰了,插件執(zhí)行線(xiàn)程僵死了,或者插件長(zhǎng)時(shí)間占用過(guò)高的內(nèi)存或者處 理器。這里,加載器進(jìn)程可以自檢發(fā)現(xiàn)異常原因,也可以由客戶(hù)端的其他檢查程序?qū)虞d器進(jìn)程進(jìn)行檢測(cè),發(fā)現(xiàn)異常原因。
客戶(hù)端還可以通過(guò)周期性的心跳報(bào)告的形式,得到加載器進(jìn)程的異常信 息,即加載器進(jìn)程周期性向核心業(yè)務(wù)程序發(fā)送一個(gè)消息,就是所謂的心跳,當(dāng) 客戶(hù)端核心業(yè)務(wù)程序在設(shè)定時(shí)間內(nèi)沒(méi)有收到加栽器進(jìn)程的心跳報(bào)告,則表明加 載器進(jìn)程出現(xiàn)異常。
步驟302:將獲取到的異常信息,發(fā)送給服務(wù)器。
這里,客戶(hù)端可以直接將獲得的異常信息發(fā)送給服務(wù)器,也可以對(duì)設(shè)定時(shí) 間內(nèi)的異常信息進(jìn)行處理,例如統(tǒng)計(jì)設(shè)定時(shí)間內(nèi)每個(gè)插件出現(xiàn)的異常次數(shù), 然后再發(fā)送給服務(wù)器。
本步驟當(dāng)然也可是只是保存獲取到的異常信息,并不發(fā)送給服務(wù)器,直接 對(duì)對(duì)設(shè)定時(shí)間內(nèi)的異常信息進(jìn)行處理。
客戶(hù)端或者服務(wù)器收集到異常信息后,可以根據(jù)收集到的異常信息,定期 對(duì)插件的穩(wěn)定級(jí)別進(jìn)行調(diào)整,參見(jiàn)圖4,定期調(diào)整任一插件的穩(wěn)定級(jí)別的過(guò)程 如下
步驟401:到達(dá)設(shè)定的時(shí)間后,獲取在該設(shè)定時(shí)間內(nèi)插件的使用次數(shù)。 在設(shè)定的時(shí)間內(nèi),當(dāng)客戶(hù)端每訪(fǎng)問(wèn)一次服務(wù)器,獲取待運(yùn)行插件的穩(wěn)定等
級(jí)時(shí),服務(wù)器就會(huì)遞加一次該待運(yùn)行插件的使用次數(shù),這樣,服務(wù)器會(huì)保存了
每一個(gè)插件在設(shè)定時(shí)間內(nèi)的使用次數(shù)。或者,
當(dāng)客戶(hù)端每次從本地獲取待運(yùn)行插件的穩(wěn)定等級(jí)時(shí),就會(huì)遞加一次該待運(yùn)
行插件的使用次數(shù),這樣,客戶(hù)端會(huì)保存了每一個(gè)插件在設(shè)定時(shí)間內(nèi)的使用次數(shù)。
這里,本實(shí)施例中需調(diào)整的插件在設(shè)定的一個(gè)月內(nèi)運(yùn)行了 120次。 步驟402:將獲取的使用次數(shù)與設(shè)定的閾值相比較,當(dāng)獲取的使用次數(shù)大
于等于設(shè)定的閾值時(shí),執(zhí)行步驟403,否則,流程結(jié)束,該插件使用率不高,
不需要調(diào)整穩(wěn)定級(jí)別。
步驟403:才艮據(jù)保存的異常信息,獲取該插件出現(xiàn)的異常次數(shù)客戶(hù)端或服務(wù)器每次獲取的異常信息中包括了插件信息,因此,可以查詢(xún)
該插件的插件信息在設(shè)定的時(shí)間內(nèi)的異常信息中出現(xiàn)的異常次數(shù),例如 一個(gè) 月內(nèi)出現(xiàn)了30次。
步驟404:根據(jù)獲取的該插件的使用次數(shù)以及異常次數(shù),調(diào)整該插件的穩(wěn) 定級(jí)別。
這里,穩(wěn)定級(jí)別劃分為三個(gè)級(jí)別,分別為穩(wěn)定,普通,不穩(wěn)定。設(shè)定一個(gè) 上限閾值, 一個(gè)下限閾值,例如上限閾值為20°/。,下限閾值為5%,當(dāng)異常次 數(shù)除以使用次數(shù)得到的值大于等于上限閾值時(shí),則該插件的穩(wěn)定級(jí)別為不穩(wěn) 定;當(dāng)異常次數(shù)除以使用次數(shù)得到的值小于等于下限閾值時(shí),則該插件的穩(wěn)定 級(jí)別為穩(wěn)定,當(dāng)異常次數(shù)除以使用次數(shù)得到的值處于下限閾值與上限閾值之間 時(shí),則該插件的穩(wěn)定級(jí)別為普通。例如該插件初始的穩(wěn)定級(jí)別為普通,而在本 次調(diào)整周期內(nèi),即設(shè)定的一個(gè)月內(nèi),使用次數(shù)是120次,異常次數(shù)為30次, 那么,30/120=25%, 25°/。>20%,則將該插件的穩(wěn)定級(jí)別調(diào)整為不穩(wěn)定。
當(dāng)然,穩(wěn)定級(jí)別也可以只劃分為兩個(gè)級(jí)別,穩(wěn)定與普通,那么只需設(shè)定一 個(gè)閾值,當(dāng)異常次數(shù)除以使用次數(shù)得到的值大于該閾值時(shí),則該插件的穩(wěn)定級(jí) 別為普通,否則為穩(wěn)定。也可以將穩(wěn)定級(jí)別劃分為四個(gè)級(jí)別,穩(wěn)定,比較穩(wěn)定, 普通和不穩(wěn)定,那么就需要設(shè)定三個(gè)閾值,第一閾值,第二閾值,第三閾值, 其大小異常遞減,那么,當(dāng)異常次數(shù)除以使用次數(shù)得到的值大于等于第一閾值 時(shí),則該插件的穩(wěn)定級(jí)別為不穩(wěn)定;當(dāng)異常次數(shù)除以使用次數(shù)得到的值大于等 于第二閾值,且小于第一閾值時(shí),則該插件的穩(wěn)定級(jí)別為普通;當(dāng)異常次數(shù)除 以使用次數(shù)得到的值大于等于第三閾值,且小于第二閾值時(shí),則該插件的穩(wěn)定 級(jí)別為比較穩(wěn)定;當(dāng)異常次數(shù)除以使用次數(shù)得到的值小于第三閾值時(shí),則該插 件的穩(wěn)定級(jí)別為穩(wěn)定。
步驟405:將使用次數(shù)與異常次數(shù)復(fù)位,即將記錄的使用次數(shù)與異常次數(shù) 清零,重新開(kāi)始下一個(gè)調(diào)整周期內(nèi)的計(jì)數(shù)。
在本申請(qǐng)實(shí)施例中,插件的穩(wěn)定級(jí)別可以劃分為多種,那么客戶(hù)端在運(yùn)行插件的過(guò)程中,可以使用多個(gè)共享的加載器進(jìn)程,例如,穩(wěn)定級(jí)別分為穩(wěn)定、
比較穩(wěn)定、普通、不穩(wěn)定,那么,可以將所有穩(wěn)定級(jí)別為穩(wěn)定的插件放入一個(gè) 共享的加載器進(jìn)程中運(yùn)行,將所有穩(wěn)定級(jí)別為比較穩(wěn)定的插件放入另一個(gè)共享 的加載器進(jìn)程中運(yùn)行。則,客戶(hù)端上保存的穩(wěn)定級(jí)別與插件運(yùn)行模式的對(duì)應(yīng)關(guān)
系包括
當(dāng)獲取的穩(wěn)定級(jí)別為穩(wěn)定時(shí),插件運(yùn)行模式為放入第一共享的加載器進(jìn)程 中運(yùn)行插件;當(dāng)獲取的穩(wěn)定級(jí)別為比較穩(wěn)定時(shí),插件運(yùn)行模式為放入第二共享 的加載器進(jìn)程中運(yùn)行插件;當(dāng)獲取的穩(wěn)定級(jí)別為普通時(shí),插件運(yùn)行模式為啟動(dòng) 獨(dú)立的加載器進(jìn)程運(yùn)行插件;當(dāng)獲取的穩(wěn)定級(jí)別為不穩(wěn)定時(shí),插件運(yùn)行模式為 放棄運(yùn)行插件。
根據(jù)本申請(qǐng)實(shí)施例上述方法可以構(gòu)建一種插件運(yùn)行的客戶(hù)端,參見(jiàn)圖5, 包括第一獲取單元510、存儲(chǔ)單元520、第一確定單元530以及運(yùn)行單元540。 其中,
第一獲取單元510,用于獲取待運(yùn)行插件的穩(wěn)定級(jí)別。 存儲(chǔ)單元520,用于保存穩(wěn)定級(jí)別與運(yùn)行模式的對(duì)應(yīng)關(guān)系。 第一確定單元530,用于根據(jù)存儲(chǔ)單元520保存的穩(wěn)定級(jí)別與運(yùn)行模式的 對(duì)應(yīng)關(guān)系,確定獲取的穩(wěn)定級(jí)別對(duì)應(yīng)的插件運(yùn)行模式。
運(yùn)行單元540,用于根據(jù)確定的插件運(yùn)行^t式運(yùn)行所述待運(yùn)行插件。 上述各個(gè)單元既可以是客戶(hù)端中獨(dú)立的程序,也可以由核心業(yè)務(wù)程序來(lái)執(zhí)
行第一獲取單元510、存儲(chǔ)單元520和第一確定單元530的功能,加載器進(jìn)程 來(lái)執(zhí)行運(yùn)行單元540的功能。
進(jìn)一步,客戶(hù)端還包括第二獲取單元,用于獲取插件運(yùn)行的異常信息,其 中,所述異常信息包括異常原因,以及所述插件的插件信息。貝'J,
存儲(chǔ)單元520,還用于存儲(chǔ)所述異常信息。
這樣,當(dāng)設(shè)定時(shí)間觸發(fā)后,客戶(hù)端根據(jù)存儲(chǔ)單元保存的異常信息,確定插 件在設(shè)定時(shí)間內(nèi)出現(xiàn)的異常次數(shù),并根據(jù)所述異常次數(shù)調(diào)整所述插件的穩(wěn)定級(jí)別。具體可以為獲取所述設(shè)定時(shí)間內(nèi)使用次數(shù)超過(guò)閾值的插件的插件信息,根 據(jù)保存的異常信息,f角定獲取的插件信息在設(shè)定時(shí)間內(nèi)出現(xiàn)的異常次數(shù),根據(jù) 所述異常次數(shù)調(diào)整所述插件的穩(wěn)定級(jí)別,并將所述異常次數(shù)以及使用次數(shù)進(jìn)行 復(fù)位。
當(dāng)然,客戶(hù)端還可以包括發(fā)送單元,用于發(fā)送第二獲取單元獲取的異常信
自
本申請(qǐng)實(shí)施例中,可以從服務(wù)器保存的插件的穩(wěn)定級(jí)別中,獲取待運(yùn)行插
件的穩(wěn)定級(jí)別,因此,可以構(gòu)建一種插件運(yùn)行的系統(tǒng),包括參見(jiàn)圖6,包括客 戶(hù)端100和服務(wù)器200。
客戶(hù)端100,用于從服務(wù)器200保存的插件的穩(wěn)定級(jí)別中,獲取待運(yùn)行插 件的穩(wěn)定級(jí)別,才艮據(jù)保存的穩(wěn)定級(jí)別與運(yùn)行^^莫式的對(duì)應(yīng)關(guān)系,確定獲取的穩(wěn)定 級(jí)別對(duì)應(yīng)的插件運(yùn)行才莫式,根據(jù)確定的插件運(yùn)行沖莫式運(yùn)行所述待運(yùn)行插件。
服務(wù)器200,用于保存插件的穩(wěn)定級(jí)別。
因此,客戶(hù)端100包括第一獲取單元110、存儲(chǔ)單元120、第一確定單
元130以及運(yùn)行單元140。其中,
第一獲取單元110,用于獲取待運(yùn)行插件的穩(wěn)定級(jí)別。 存儲(chǔ)單元120,用于保存穩(wěn)定級(jí)別與運(yùn)行模式的對(duì)應(yīng)關(guān)系。 第一確定單元130,用于根據(jù)存儲(chǔ)單元120保存的穩(wěn)定級(jí)別與運(yùn)行模式的
對(duì)應(yīng)關(guān)系,確定獲取的穩(wěn)定級(jí)別對(duì)應(yīng)的插件運(yùn)行^^莫式。
運(yùn)行單元140,用于根據(jù)確定的插件運(yùn)行模式運(yùn)行所述待運(yùn)行插件。 還包括第二獲取單元150,用于獲取插件運(yùn)行的異常信息;則,存儲(chǔ)單元
120,還用于存儲(chǔ)所述異常信息。
當(dāng)客戶(hù)端IOO運(yùn)行插件出現(xiàn)異常時(shí),客戶(hù)端IOO還包括發(fā)送單元160,用
于獲取該插件的異常信息,將異常信息發(fā)送給服務(wù)器200,其中,異常信息包
括異常原因,以及所述插件的插件信息。
進(jìn)一步,服務(wù)器200包括存儲(chǔ)單元210,不僅用于保存插件的穩(wěn)定級(jí)別,還用于接收并保存異常信息。
服務(wù)200還包括調(diào)整單元220,用于當(dāng)設(shè)定時(shí)間觸發(fā)后,根據(jù)存儲(chǔ)單元210 保存的異常信息,確定插件在設(shè)定時(shí)間內(nèi)出現(xiàn)異常的數(shù)量,根據(jù)所述數(shù)量調(diào)整 所述插件的穩(wěn)定級(jí)別。
為了描述的方便,以上所述客戶(hù)端和服務(wù)器的各部分以功能分為各種單元 分別描述。當(dāng)然,在實(shí)施本申請(qǐng)時(shí)可以把各單元的功能在同一個(gè)或多個(gè)軟件或 硬件中實(shí)現(xiàn)。
綜上所述,本申請(qǐng)實(shí)施例中,獲取待運(yùn)行插件的穩(wěn)定級(jí)別,根據(jù)保存的穩(wěn) 定級(jí)別與運(yùn)行模式的對(duì)應(yīng)關(guān)系,確定獲取的穩(wěn)定級(jí)別對(duì)應(yīng)的插件運(yùn)行模式,根 據(jù)確定的插件運(yùn)行模式運(yùn)行所述待運(yùn)行插件,這樣,將不同穩(wěn)定級(jí)別的插件放 入不同的加載器進(jìn)程中運(yùn)行,可以避免由于插件的不穩(wěn)定造成核心業(yè)務(wù)程序出 現(xiàn)故障的狀況,提高了網(wǎng)絡(luò)工具的穩(wěn)定性。將穩(wěn)定性較高的、且屬于同一穩(wěn)定 級(jí)別的插件放入一個(gè)共享的加載器中運(yùn)行,可以節(jié)省客戶(hù)端的系統(tǒng)資源,提高 了客戶(hù)端系統(tǒng)的穩(wěn)定性。并且通過(guò)收集插件的異常信息,動(dòng)態(tài)調(diào)整插件的穩(wěn)定 級(jí)別,可以將不穩(wěn)定的插件淘汰,提高了用戶(hù)的體驗(yàn)。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本申請(qǐng)進(jìn)行各種改動(dòng)和變型而不脫離本申 請(qǐng)的精神和范圍。這樣,倘若本申請(qǐng)的這些修改和變型屬于本申請(qǐng)權(quán)利要求及 其等同技術(shù)的范圍之內(nèi),則本申請(qǐng)也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1、一種插件運(yùn)行的方法,其特征在于,包括獲取待運(yùn)行插件的穩(wěn)定級(jí)別;根據(jù)保存的穩(wěn)定級(jí)別與插件運(yùn)行模式的對(duì)應(yīng)關(guān)系,確定獲取的穩(wěn)定級(jí)別對(duì)應(yīng)的插件運(yùn)行模式;根據(jù)確定的插件運(yùn)行模式運(yùn)行所述待運(yùn)行插件。
2、 如權(quán)利要求1所述的方法,其特征在于,所述獲取待運(yùn)行插件的穩(wěn)定級(jí)別包括從服務(wù)器保存的插件的穩(wěn)定級(jí)別中,獲取待運(yùn)行插件的穩(wěn)定級(jí)別;或,從本地保存的插件的穩(wěn)定級(jí)別中,獲取待運(yùn)行插件的穩(wěn)定級(jí)別。
3、 如權(quán)利要求1所述的方法,其特征在于,所述插件運(yùn)行模式包括針對(duì)插件的不同穩(wěn)定級(jí)別,啟動(dòng)不同的加載器進(jìn)程運(yùn)行所述待運(yùn)行插件。
4、 如權(quán)利要求1或3所述的方法,其特征在于,所述插件運(yùn)行模式包括當(dāng)獲取的穩(wěn)定級(jí)別為穩(wěn)定時(shí),插件運(yùn)行模式為放入共享的加載器進(jìn)程中運(yùn)行插件;當(dāng)獲取的穩(wěn)定級(jí)別為普通時(shí),插件運(yùn)行才莫式為啟動(dòng)獨(dú)立的加載器進(jìn)程運(yùn)行插件。
5、 如權(quán)利要求1所述的方法,其特征在于,該方法還包括當(dāng)插件運(yùn)行異常時(shí),該方法還包括獲取并保存所述插件運(yùn)行的異常信息。
6、 如權(quán)利要求5所述的方法,其特征在于,所述異常信息包括異常原因,以及所述插件的插件信息。
7、 如權(quán)利要求5所述的方法,其特征在于,當(dāng)從服務(wù)器保存的插件的穩(wěn)定級(jí)別中,獲取待運(yùn)行插件的穩(wěn)定級(jí)別時(shí),該方法還包括將所述異常信息發(fā)送給服務(wù)器進(jìn)行保存。
8、 如權(quán)利要求2所述的方法,其特征在于,該方法還包括將所述保存的插件的穩(wěn)定級(jí)別進(jìn)4于定期調(diào)整。
9、 如權(quán)利要求5或7所述的方法,其特征在于,所述定期調(diào)整包括根據(jù)保存的異常信息,確定插件在設(shè)定時(shí)間內(nèi)出現(xiàn)的異常次數(shù);根據(jù)所述異常次數(shù)調(diào)整所述插件的穩(wěn)定級(jí)別。
10、 一種運(yùn)行插件的客戶(hù)端,其特征在于,包括第一獲取單元,用于獲取待運(yùn)行插件的穩(wěn)定級(jí)別;存儲(chǔ)單元,用于保存穩(wěn)定級(jí)別與運(yùn)行模式的對(duì)應(yīng)關(guān)系;第一確定單元,用于根據(jù)存儲(chǔ)單元保存的穩(wěn)定級(jí)別與運(yùn)行模式的對(duì)應(yīng)關(guān)系,確定獲取的穩(wěn)定級(jí)別對(duì)應(yīng)的插件運(yùn)行模式;運(yùn)行單元,用于根據(jù)確定的插件運(yùn)行模式運(yùn)行所述待運(yùn)行插件。
11、 如權(quán)利要求IO所述的客戶(hù)端,其特征在于,所述客戶(hù)端還包括第二獲取單元,用于獲取插件運(yùn)行的異常信息;貝'J,存儲(chǔ)單元,還用于存儲(chǔ)所述異常信息。
12、 如權(quán)利要求11所述的客戶(hù)端,其特征在于,所述客戶(hù)端還包括第二確定單元,用于根據(jù)存儲(chǔ)單元保存的異常信息,確定插件在設(shè)定時(shí)間內(nèi)出現(xiàn)的異常次數(shù);調(diào)整單元,用于根據(jù)所述異常次數(shù)調(diào)整所述插件的穩(wěn)定級(jí)別。
13、 如權(quán)利要求IO所述的客戶(hù)端,其特征在于,所述客戶(hù)端還包括發(fā)送單元,用于發(fā)送所述異常信息。
14、 一種插件運(yùn)行的系統(tǒng),其特征在于,包括客戶(hù)端,用于從服務(wù)器保存的插件的穩(wěn)定級(jí)別中,獲取待運(yùn)行插件的穩(wěn)定級(jí)別,根據(jù)保存的穩(wěn)定級(jí)別與運(yùn)行模式的對(duì)應(yīng)關(guān)系,確定獲取的穩(wěn)定級(jí)別對(duì)應(yīng)的插件運(yùn)行沖莫式,根據(jù)確定的插件運(yùn)行模式運(yùn)行所述待運(yùn)行插件;服務(wù)器,用于保存插件的穩(wěn)定級(jí)別。
15、 如權(quán)利要求14所述的系統(tǒng),其特征在于,所述客戶(hù)端,還用于獲取插件運(yùn)行的異常信息,將所述異常信息發(fā)送給服務(wù)器。
16、如權(quán)利要求15所的系統(tǒng),其特征在于,所述服務(wù)器,還用于接收并保存異常信息,根據(jù)保存的異常信息,確定插件出現(xiàn)的異常次數(shù),根據(jù)所述異常次數(shù)調(diào)整所述插件的穩(wěn)定級(jí)別。
全文摘要
本申請(qǐng)公開(kāi)了一種插件運(yùn)行的方法,用以解決現(xiàn)有技術(shù)中插件運(yùn)行方式帶來(lái)的系統(tǒng)運(yùn)行不穩(wěn)定的問(wèn)題。該方法包括獲取待運(yùn)行插件的穩(wěn)定級(jí)別,根據(jù)保存的穩(wěn)定級(jí)別與插件運(yùn)行模式的對(duì)應(yīng)關(guān)系,確定獲取的穩(wěn)定級(jí)別對(duì)應(yīng)的插件運(yùn)行模式,根據(jù)確定的插件運(yùn)行模式運(yùn)行所述待運(yùn)行插件。本申請(qǐng)還公開(kāi)了一種插件運(yùn)行的客戶(hù)端和一種插件運(yùn)行的系統(tǒng)。
文檔編號(hào)G06F11/36GK101510167SQ20091012918
公開(kāi)日2009年8月19日 申請(qǐng)日期2009年3月31日 優(yōu)先權(quán)日2009年3月31日
發(fā)明者孔勇偉, 張利明, 波 聞 申請(qǐng)人:阿里巴巴集團(tuán)控股有限公司