插件体系结构的经典-osgi

        相信每个软件开发者都有着这样相同的经历:从最初的凌乱编码到函数过程的组织复用,再到现在以类、包、模块的封装,对抽象和复用使用得越来越成熟有效。对软件关注的层次也从单个算法逻辑的实现到整个系统架构的搭建。本人也是一样,工作学习之余常常思考软件设计、实现如何才能行之有效,这些年来虽然没有大的进步,也比以前有所提高。对出来的新思想、新技术从来不敢怠慢,肯定谈不上部精通,只能说有所了解,做技术的从这点上看确实比较辛苦,呵呵。新东西实在是太快、太多了。

      说了大半天,有点跑题了。osgi是最近才接触的。简单点说就是一个非常优秀的插件体系结构。eclipse3.1开始就采用了它。下面是网上搜罗来的介绍资料:

      OSGi 规范简介

OSGi 联盟建立于 1999 年,是一个非赢利机构,旨在建立一个开放的服务规范。OSGi 规范为网络服务定义了一个标准的、面向组件的计算环境,它最初的目的就是为各种嵌入式设备提供通用的软件运行平台,屏蔽设备操作系统与硬件区别的中间件平台,通过这个平台,可以对不同软件商提供的应用(OSGi 中称为 Bundle)进行组件的生命周期管理的能力,如应用组件可以从运行中被安装、升级或者移除而不需要中断设备的操作,应用组件可以动态的发现和使用其他库或者应用程序。由于 OSGi 技术具有服务组件模块化、动态加载应用等优点,正被越来越多的领域关注,如嵌入设备制造业、汽车制造业、企业应用等。目前,OSGi 联盟发布的最新的 OSGi 服务规范为 4.0,读者可以查阅参考资料了解详细信息。

       OSGi 体系结构

OSGi 的体系架构是基于插件式的软件结构,包括一个 OSGi 框架和一系列插件,在 OSGi中,插件称为 Bundle,其中,OSGi 框架规范是 OSGi 规范的核心部分,它提供了一个通用的、安全可管理的 Java 框架,通过这个框架,可以支持 Bundle 服务应用的部署和扩展。Bundle 之间可以通过 Import Package 和 Require-Bundle 来共享 Java 类,在 OSGi 服务平台中,用户通过开发 Bundle 来提供需要的功能,这些 Bundle 可以动态加载和卸载,或者根据需要远程下载和升级。OSGi 体系结构图如图 1 所示:


图示1 OSGi 体系结构
图示1 OSGi 体系结构

使用过eclipse3.1和以前版本的肯定感觉3.1启动快多了,这就是因为采用了osgi的架构。记得以前以前用delphi写c/s程序的时候也画轮子似的开发过一个插件应用平台,所有的模块、子系统可以用dll的形式实现,然后通过配置挂到系统上去,呵呵,不过实现的很牵强,效果也不理想。现在的公司新开发的j2ee平台也是采用了插件思想,所有的功能都封装成组件,以插件的形式存在。不过个人感觉也不太理想,当中存在不少问题,以后有时间再慢慢讨论。关于osgi的应用,相信大家都有所了解了,著名的机顶盒和消费电子设备的客户应用和中间件领先提供商Espial好像采用的就是osgi的技术,在osgi的官方网站还有它的链接。eclipse基金会已经做了一个基于osgi的开发框架平台equinox,从eclipse3.2开始可以开发equinox的应用。网友BlueDavy编写了一个osgi开源文档,挺详细的,大家可以下载下来看看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值