OpenDoc Series':OSGI实战(四)

 由  ValRay 发布

四. OSGI 案例

说了这么多 OSGI 的好,吹了这么多的”牛”,来以事实证明下 OSGI 并不是什么实验品,而是已经在业界被证明切实可用的东西。

OSGI 典型的应用案例主要有两个,都非常的著名,分别是 Eclipse 和 BMW 汽车的应用控制系统。

●Eclipse

Eclipse 作为 Java 业界成功的 IDE project,在 3.0 以前的版本它采用的是自己设计的一套插件体系结构,而 Eclipse 的插件体系结构在整个业界都是非常知名的,也是被认为非常成功的一种设计,但 Eclipse 在 3.0 版本时却做了一个重大决度,就是推翻它自己以前的插件体系结构(虽然开始只是做兼容的方式,随着版本的逐渐升高已经开始逐步的替换工作了),而转为直接采用 OSGI 作为其插件体系结构,这到底是为什么呢?

Eclipse 的插件体系结构和 OSGI 的思想非常的耦合,都强调微核+系统插件+应用插件的概念,Eclipse 之所以要抛弃自己那套已经比较成熟的插件体系结构而转而采用 OSGI,就是因为 OSGI 的规范性以及 OSGI 对于插件体系结构更为完整的定义,当然,还有一些官方性质的原因,这些原因在这里暂且不提,Eclipse 采用 OSGI 作为其插件体系结构的成功是很明显的,在 Eclipse 3.1 版本以后大家可以明显的感觉到启动速度的提升,同时也使得可以在运行时对插件进行管理,更明显的提升是插件的开发更加的规范,从而可以使用很多已有的 OSGI 插件。

Eclipse 同时也带给了业界良好的插件系统的体验以及插件系统的开发经验。

●BMW 汽车的应用控制系统

BMW 汽车的应用控制系统采用 OSGI 作为其底层架构,估计这一定程度上颠覆了很多人对于 Java 的认识,很多人都认为基于 java 的系统低效,不可能用于汽车这样的应用控制系统上,在 EclipseCon 2006 会议上 BMW 采用 OSGI 得到了证实,估计是猜想会被很多人怀疑,演讲者在 PPT 上讲了下 BMW 汽车的应用控制系统,这套系统主要用来控制汽车上的音箱、灯光等等设备,总共由 1000 多个 Bundle 构成,但 BMW 汽车的应用控制系统启动时间却只需要 3.5 秒,是不是很令人惊讶呢,这也从很大程度上反应了采用 OSGI 的系统的效率并不会低。

这两个非常成功的案例向大家证明了基于 OSGI 开发系统的可行性,同时这个两个成功案例的足够的知名性以及优秀的使用、技术效果也为 OSGI 的推广铺设了不错的基础,到这篇文档完稿之时,关于 OSGI 被商业领域(例如 IBM P5 服务器系列、Websphere V6.1、Lotus Sametime、Adobe CS2 等)、知名开源软件领域(例如 Apache 等)采用的消息已经是不断的传出,可以看出 OSGI 在服务器端应用、企业应用中已经开始广泛流行了,而这对于 OSGI 更好的发展成为支撑服务器端应用和企业应用的规范会起到很好的推动作用。

查看评论