[發明專利]基于OSGI的類加載隔離系統和方法有效
| 申請號: | 201310026972.3 | 申請日: | 2013-01-21 |
| 公開(公告)號: | CN103116510A | 公開(公告)日: | 2013-05-22 |
| 發明(設計)人: | 于洋 | 申請(專利權)人: | 北京東方通科技股份有限公司 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445 |
| 代理公司: | 北京路浩知識產權代理有限公司 11002 | 代理人: | 王瑩 |
| 地址: | 100080 北京市*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 osgi 加載 隔離 系統 方法 | ||
技術領域
本發明涉及網絡及計算機技術領域,特別涉及一種基于OSGI的類加載隔離系統和方法。
背景技術
隨著計算機網絡技術的飛速發展,對于應用服務器,如何設計類加載結構來滿足應用服務器內類的時而隔離、時而共享的問題日益突兀。
傳統應用服務器實現的類加載器都是鏈式結構,類加載器鏈的鏈尾通常都負責加載應用下的私有類,越靠近鏈的前端,負責加載的類越貼近系統級公共類。因此傳統應用服務器的作法就是將需要共享的類放在類加載器鏈前端能加載到的位置,例如系統lib目錄,或者通用類common目錄下,然后配置應用的類加載采用雙親委托方式,即,web應用中的類由父類加載器優先加載。當需要隔離時,就將要隔離的類放在類加載器鏈尾負責加載的私有類位置,例如web應用的WEB-INF/lib目錄下,然后配置web應用的類加載機制為子優先,即web應用中的類由應用的類加載器優先加載。比較典型的,像EAR(Enterprise?Archive?File)應用中的多個web應用就可以使用這種方式來控制彼此間的隔離或共享性。
但是這種實現方式不夠靈活,而且粒度太粗。例如無法實現獨立web應用A中的類對獨立web應用B是隔離的,但是應用A中的類對獨立web應用C共享。而且只能控制到jar包這個級別的隔離性,假如對于某個jar包,有些package的類想被共享,有些package的類想被隔離,那么也是無法做到的。另外,傳統隔離性的控制是在部署就決定的,運行時無法實施變更。
隨著OSGi(Open?Service?Gateway?Initiative)技術的日益發展,很多應用服務器廠商都基于OSGi框架做了新的版本。利用OSGi框架獨特的兩級網狀類加載結構,可以做出完全不同于傳統應用服務器的類隔離設計。其中一種典型的設計方式就是為每個應用分配一個單獨的OSGi運行時,這樣每個應用所在的OSGi運行時具有天然隔離性,也就保證了應用彼此間的類隔離性。但是這種設計也存在一個明顯缺陷,那就是應用不能夠解除隔離性。
發明內容
(一)解決的技術問題
本發明解決的技術問題是提出一種基于OSGI的類加載隔離系統和方法,以解決目前類加載隔離系統靈活性低、粗粒度的問題。
(二)技術方案
本發明提出了一種基于OSGI的類加載隔離系統,其特征在于,所述系統包括:
轉換器,用于將web應用轉換為標準wab;
處理器,用于為所述web應用創建虛擬組件集合;
過濾器,用于為所述虛擬組件集合設置隔離關系。
優選地,所述web應用為bundle形式或war形式。
優選地,所述虛擬組件集合運行在同一個OSGI運行時內。
優選地,所述虛擬組件集合由應用組件bundles和過濾器組成。
優選地,所述過濾器包括:bundle可見列表、package可見列表或service可見列表。
本發明還提出了一種基于OSGI的類加載隔離方法,其特征在于,所述方法包括:
S1:將web應用轉換成標準wab,并為所述web應用創建虛擬組件集合;
S2:為所述虛擬組件集合創建過濾器;
S3:根據所述過濾器中的可見性列表,為所述虛擬組件集合設置隔離關系。
優選地,所述web應用為bundle形式或war形式。
優選地,所述虛擬組件集合運行在同一OSGI運行時內。
優選地,在步驟S2之后還包括:設置所述過濾器的可見性列表。
優選地,步驟S3之后還包括:將所述web應用安裝在所述虛擬組件集合中,并啟動所述web應用。
(三)有益效果
本發明通過提出一種基于OSGI的類加載隔離系統和方法,是面向JavaEE平臺下的web應用,根據具體需求細粒度的控制應用間類隔離性和服務的隔離性,且配置更加靈活。
附圖說明
圖1為本發明提出的系統結構圖;
圖2為本發明提出的虛擬組件集合結構圖;
圖3為本發明提出的過濾器結構圖;
圖4為本發明提出的方法流程圖;
圖5為本發明提出的方法流程示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述。
本發明提出了一種基于OSGI的類加載隔離系統,如圖1所示,所述系統包括:
轉換器,用于將web應用轉換為標準wab;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京東方通科技股份有限公司,未經北京東方通科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310026972.3/2.html,轉載請聲明來源鉆瓜專利網。





