原创作者: erylee   阅读:8142次   评论:8条   更新时间:2011-06-01    
<!-- @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } -->

尽管我在一年前曾预测OSGi最终将部署在60%的Java虚拟机上,但OSGi的发展速度还是超出了我们的想象。一直认为OSGi规范是Java领域被埋没的一颗明珠,它优美的组件体系结构正是Java平台不可或缺的部分,应该直接纳入到JDK中。

众所周知,Java平台有庞大的开源框架、类库支持,但我们却一直停留在类与API层次的复用,一个较大的Java项目往往有大量的Jar包混乱的堆积在classpath下。所以Java领域迫切需要一个实现组件级复用的解决方案,将所有这些混乱不堪的类库与API以组件的形式发布,在统一的容器内组装协作,OSGi规范无疑是目前最为出色的候选者。

OSGi的规范已经提出5、6年的时间,到现在被业界广泛认可,其发展过程很有趣。OSGi规范最初定位于嵌入式系统,如家电、汽车、手机、家庭网关,满足单一Java虚拟机上启动多个Java应用程序和动态从网络安装卸载应用程序的需求。但那时嵌入式Java虚拟机还不成熟,更不用提OSGi的应用,尽管有宝马等知名公司的应用,但一直没有在Java嵌入式领域获得广泛的应用。

随后的发展一定超出了OSGi委员会(www.osgi.org)的想象,OSGi居然被Eclipse应用到了客户端。 Eclipse原本插件体系结构是一个基于XML的静态扩展结构,即扩展(Extension)与(Extension Point),不知道当初基于什么样的考虑,Eclipse组织在3.0版本选择OSGi作为插件体系的内核,这样由OSGi负责插件体系架构中ClassLoading机制,由扩展与扩展点负责业务层面的扩展架构,这是一个很完美的结合。但我认为这实际上并不是OSGi的最佳实践,Eclipse原本的静态扩展架构限制了OSGi的动态性,也没有应用OSGi的服务层模型,而是大量基于单例(Singleton) Plugin调用协作,开发RCP客户端时,你会发现很少需要注册OSGi的服务,往往一个Plugin的入口类提供很多静态方法。当然,这也可能与Eclipse的延迟加载(Lazy load)机制有关。

尽管Eclipse不是OSGi的一个最佳实践,但随着Eclipse的成功,OSGi迅速普及与成熟,最终将OSGi推向它最擅长但一直被忽略的领域:企业级应用软件的服务端,纯插件体系架构的服务端!目前,大量的服务端开源架构与商业产品向OSGi迁移,2007年将是OSGi服务端应用的开始。

随着OSGi在胖客户端(RCP)、服务端(Server Side)与嵌入式Java虚拟机上的广泛应用,相信未来几年内,60%的Java虚拟机上部署OSGi的目标并不是遥不可及。

评论 共 8 条 请登录后发表评论
8 楼 http_url 2010-03-17 19:49
  • 引用
7 楼 hanjiangit 2009-09-08 15:49
公司里就有个类似的框架,可以再上面发布桌面,web程序可以共享一个日期管理器组件等classloader之类的功能
6 楼 love_seam 2009-08-12 10:15
原创作者: erylee   阅读:1794次   评论:4条   更新时间:2006-12-29
................
尽管我在一年前曾预测OSGi最终将部署在60%的Java虚拟机上,
~~~~~~~~~~~【将】是否指一万年以后???我回你的帖子,都已经快3年啦!


但OSGi的发展速度还是超出了我们的想象。
~~~~~~~~~~~的确,速度慢的惊人!!!

呵呵。连SUN都会被收购,更别提这种小的框架了。
5 楼 love_seam 2009-08-12 10:13
都搞了N年了,好多组织都在搞,结果都成了疲软的货。
4 楼 xingguo822 2009-07-22 14:29
正在火的过程中
3 楼 love_seam 2009-07-16 19:04
现在也没有火起来呀。吹的时候,大家都吹...
2 楼 xo_tobacoo 2009-05-23 21:28
嗯!技术是靠企业应用推动的!
1 楼 daquan198163 2009-05-08 10:36
这玩意在企业应用领域有什么优势么?

发表评论

您还没有登录,请您登录后再发表评论

文章信息

Global site tag (gtag.js) - Google Analytics