[发明专利]基于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.vipzhuanli.com/pat/books/201310026972.3/2.html,转载请声明来源钻瓜专利网。