[發(fā)明專利]Java應(yīng)用中的類加載隔離方法及裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201410469375.2 | 申請(qǐng)日: | 2014-09-15 |
| 公開(kāi)(公告)號(hào): | CN105404524B | 公開(kāi)(公告)日: | 2019-01-15 |
| 發(fā)明(設(shè)計(jì))人: | 倪超 | 申請(qǐng)(專利權(quán))人: | 阿里巴巴集團(tuán)控股有限公司 |
| 主分類號(hào): | G06F9/445 | 分類號(hào): | G06F9/445 |
| 代理公司: | 北京潤(rùn)澤恒知識(shí)產(chǎn)權(quán)代理有限公司 11319 | 代理人: | 蘇培華 |
| 地址: | 英屬開(kāi)曼群島大開(kāi)*** | 國(guó)省代碼: | 開(kāi)曼群島;KY |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 導(dǎo)出 組件包 類加載器 類加載 隔離 加載 第三方應(yīng)用程序 對(duì)應(yīng)組件 隔離容器 啟動(dòng)指令 時(shí)間成本 系統(tǒng)資源 運(yùn)行環(huán)境 組件創(chuàng)建 動(dòng)態(tài)化 模塊化 依賴項(xiàng) 申請(qǐng) 解析 | ||
本申請(qǐng)公開(kāi)了Java應(yīng)用中的類加載隔離方法及裝置,預(yù)先在隔離容器的第一指定目錄下存放有多個(gè)需要隔離加載的組件包,每個(gè)組件包的第二指定目錄中存放有對(duì)應(yīng)組件需導(dǎo)出的類的信息,第三指定目錄中保存有組件內(nèi)各個(gè)類及其依賴項(xiàng)的類代碼;所述方法包括:接收啟動(dòng)指令;解析所述第一指定目錄下的各個(gè)組件包;分別以各個(gè)組件的第三指定目錄為類路徑,為各個(gè)組件創(chuàng)建類加載器;針對(duì)各個(gè)組件,分別用各自對(duì)應(yīng)的類加載器對(duì)組件內(nèi)需要導(dǎo)出的類進(jìn)行加載;將所述需導(dǎo)出的類導(dǎo)出到所述第三方應(yīng)用程序所在的運(yùn)行環(huán)境中。通過(guò)本申請(qǐng),在實(shí)現(xiàn)模塊化的同時(shí),無(wú)需為實(shí)現(xiàn)動(dòng)態(tài)化而耗費(fèi)過(guò)多的系統(tǒng)資源以及人力、時(shí)間成本。
技術(shù)領(lǐng)域
本申請(qǐng)涉及Java應(yīng)用技術(shù)領(lǐng)域,特別是涉及Java應(yīng)用中的類加載隔離方法及裝置。
背景技術(shù)
在Java開(kāi)發(fā)領(lǐng)域,組件是一個(gè)重要的概念。所謂組件,是能夠完成某種功能并且向外提供若干個(gè)使用這個(gè)功能的接口的可重用的代碼集。組件內(nèi)部由多個(gè)類來(lái)協(xié)同實(shí)現(xiàn)指定的功能,同時(shí)組件對(duì)外暴露一個(gè)或多個(gè)接口,供外界調(diào)用。插件、框架等都屬于組件的范疇。
開(kāi)發(fā)人員在進(jìn)行Java應(yīng)用開(kāi)發(fā)時(shí),可能會(huì)用到多個(gè)組件,通過(guò)多個(gè)組件之間的協(xié)同,共同完成應(yīng)用中的某項(xiàng)或多項(xiàng)功能。在傳統(tǒng)的開(kāi)發(fā)過(guò)程中,開(kāi)發(fā)人員直接將各個(gè)組件依賴在應(yīng)用中,但是,由于不同的組件之間可能存在不同版本之間的沖突,以及各自的依賴項(xiàng)的不同版本之間的沖突等原因,給應(yīng)用開(kāi)發(fā)帶來(lái)很多不便。
為此,OSGi(Open Service Gateway Initiative,開(kāi)放服務(wù)網(wǎng)關(guān)協(xié)議)技術(shù)也就應(yīng)運(yùn)而生了。OSGi技術(shù)是面向Java的動(dòng)態(tài)模型系統(tǒng),其主要職責(zé)就是為了讓開(kāi)發(fā)者可以構(gòu)建動(dòng)態(tài)化、模塊化的Java系統(tǒng)。
也就是說(shuō),OSGi平臺(tái)具有兩大方面的特點(diǎn):模塊化以及動(dòng)態(tài)化。其中,所謂的模塊化,就是指可以將一個(gè)大型系統(tǒng)分解為多個(gè)較小的互相協(xié)作的邏輯單元,通過(guò)強(qiáng)制設(shè)定模塊之間的邏輯邊界來(lái)改善系統(tǒng)的維護(hù)性和封裝性。所謂的動(dòng)態(tài)化,就是指可以提供在多種網(wǎng)絡(luò)設(shè)備上無(wú)需重啟的動(dòng)態(tài)改變構(gòu)造的功能。
可見(jiàn),OSGi平臺(tái)的功能可謂非常強(qiáng)大,其提供的模塊化特點(diǎn),尤其是隔離機(jī)制,由于可以避免組件間的沖突等問(wèn)題,在實(shí)際應(yīng)用中得到了普遍的認(rèn)可。但是,在衡量一個(gè)平臺(tái)是否優(yōu)秀時(shí),其標(biāo)準(zhǔn)往往不僅在于功能強(qiáng)大與否,還需要從實(shí)用性等角度進(jìn)行衡量,例如,需要考慮是否易于維護(hù)、實(shí)現(xiàn)復(fù)雜度等因素。目前的OSGi平臺(tái)在實(shí)際的應(yīng)用過(guò)程中就遇到了類似的問(wèn)題,主要體現(xiàn)在:
從實(shí)用性角度來(lái)講,目前的大部分應(yīng)用其實(shí)對(duì)于熱部署、動(dòng)態(tài)替換等并沒(méi)有太強(qiáng)烈的需求,開(kāi)發(fā)人員通常都能夠接受功能更新等導(dǎo)致的應(yīng)用重啟;
從復(fù)雜從復(fù)雜性角度來(lái)講,想要做到平滑熱替換,尤其是對(duì)于那些運(yùn)行期有狀態(tài)的組件而言,實(shí)現(xiàn)動(dòng)態(tài)化相當(dāng)復(fù)雜;
從可行性角度來(lái)講,實(shí)現(xiàn)動(dòng)態(tài)化,需要改變開(kāi)發(fā)人員和運(yùn)維人員的開(kāi)發(fā)與運(yùn)維習(xí)慣,在推廣上面臨極大的挑戰(zhàn)。
以上問(wèn)題都是由于OSGi提供了動(dòng)態(tài)化特點(diǎn)而導(dǎo)致的。但是,對(duì)于開(kāi)發(fā)人員而言,要想利用OSGi平臺(tái)提供的模塊化特點(diǎn),就不得不接受其動(dòng)態(tài)化特點(diǎn),但由此會(huì)帶來(lái)巨大的工作量,需要耗費(fèi)大量的系統(tǒng)資源以及人力、時(shí)間成本來(lái)實(shí)現(xiàn)這種動(dòng)態(tài)化。因此,對(duì)于在使用OSGi平臺(tái)進(jìn)行開(kāi)發(fā)的過(guò)程中,在系統(tǒng)資源以及人力、時(shí)間成本方面都存在著比較大的浪費(fèi)。
總之,如何降低上述的各種浪費(fèi),是迫切需要本領(lǐng)域技術(shù)人員解決的技術(shù)問(wèn)題。
發(fā)明內(nèi)容
本申請(qǐng)?zhí)峁┝薐ava應(yīng)用中的類加載隔離方法及裝置,可以在實(shí)現(xiàn)模塊化的同時(shí),無(wú)需為實(shí)現(xiàn)動(dòng)態(tài)化而耗費(fèi)過(guò)多的系統(tǒng)資源以及人力、時(shí)間成本。
本申請(qǐng)?zhí)峁┝巳缦路桨福?/p>
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于阿里巴巴集團(tuán)控股有限公司,未經(jīng)阿里巴巴集團(tuán)控股有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410469375.2/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。





