请公平些看待OSGi

OSGi越来越风行了,得到的关注越来越多,这本来是好事,但听到的越来越多的声音都是认为OSGi对于B/S、企业应用支持的太不够,怎么说呢,这些声音挺好,至少说明发出这些声音的人肯定是想过将OSGi应用到自己的项目/产品中去,虽然这是好的,但我觉得更多的原因还是很多的人都习惯的以一种框架的观点去看OSGi,这对于OSGi而言或多或少有些不公平,为什么这么说呢?
还得从OSGi的历史讲起,OSGi的建立并不是为了企业应用这种类型,而是嵌入式的应用领域,更为准确的说是为了网络设备的管理,正是这个原因,在OSGi的规范中并没有体现出为企业应用的充分考虑,OSGi联盟的人在软件设计的观点上和Java企业应用的设计者观点非常的不同,就像OSGi联盟的主席Peter看Spring and OSGi的设计,就认为过于复杂了,OSGi的设计者们强调设计的简单(不是简陋)、以最小的代码量去实现、尽量缩小最后应用的大小,同时由于它是为了支持部署在网络设备上的软件的管理,特别的强调模块化以及动态的管理,这也就造就了OSGi在这两方面具备了充足的优势,而在支持嵌入式领域的应用自然也不必说了。
OSGi在模块化和动态管理上的优势被它带有一点关系的Eclipse组织注意到了,于是引入到了Eclipse中,随着Eclipse的引入,OSGi开始得到Java企业应用开发者的注意,但是直到今年才真正的比较广泛了,这里面当然有各大厂商的原因,这也说明了OSGi确实是得到了各大厂商的认可,在JSR 291的投票上google、sun投出的反对票仍然没有阻碍OSGi进军Java SE领域,这也算是挽回了当年JSR 277上OSGi失败的场面。
从这些发展过程中,我们可以看到,OSGi到目前受到Java企业应用界的关注阶段为止,一直以来都尚未涉足企业应用界,就连OSGi的主席Peter都承认自己对于Spring只是了解而已,可想而知,那么我们凭什么在现在的这个阶段就以企业应用级别的框架去评价OSGi的好坏呢,更不要仅仅以OSGi现阶段对企业应用支持的不够就断定OSGi在Java企业应用界一无是处,那是不是很不公平呢?
当然,现在OSGi要进入企业应用界,大家以这样的观点去看待它没什么太大的问题,至少大家评价的OSGi的不好也是对OSGi进入企业应用的一种促动的建议,只是希望大家不要纯粹以一种新的Java企业应用的框架(象Spring等)的观点去评价它,毕竟那不是OSGi的目标,OSGi并不希望成为一个新的Java企业应用的框架,在现阶段,对于大家来说,也许去学习OSGi优势的地方和不同的设计思想是我们最值得做的,相信大家也不希望等哪天OSGi成为了JDK中的一部分后再去学习吧,如果愿意尝试将OSGi应用到你现在的项目/产品中,那就更好了,我相信将以目前Equinox(OSGi R4的实现)的表现来说,将你的新的应用基于它而搭建不会碰到什么太多的问题,如果你的新的应用是基于Equinox而搭建,非常欢迎与我进行交流,以后我也会在blog中更多的贴出一些关于基于Equinox搭建企业应用的实践的文章(以前考虑到关注这些东西的人太少,就没去写了)。
OSGi现在在企业应用方面的努力工作大家有目共睹,相信在各大厂商(IBM、Oracle、BEA等)和各大开源组织(Spring、Apache)的支撑下,OSGi对于企业应用的支持会越来越好。

posted on 2006-09-20 21:14 BlueDavy 阅读(4167) 评论(22)  编辑  收藏 所属分类: OSGi、SOA、SCA

评论

# re: 请公平些看待OSGi 2006-09-21 08:18 Josh

期待关于基于Equinox搭建企业应用的实践的文章出炉。  回复  更多评论   

# re: 请公平些看待OSGi 2006-09-21 09:27 SimonLei

严重同意!
我们公司从去年就采用OSGi做为核心来开发B/S应用,
并且效果相当不错,在整个的可扩展性,灵活性和开发
效率方面,都有不少的提升。 :D

虽然关注规范关注的不多,主要是使用eclipse的OSGi实现,
但是从这方面的使用来看,已经是受益匪浅。  回复  更多评论   

# re: 请公平些看待OSGi 2006-09-21 09:33 蚂蚱

基于Equinox搭建企业应用时应注意坚持“简单”的原则,不要脱离“OSGi的设计者们强调设计的简单”的初衷。  回复  更多评论   

# re: 请公平些看待OSGi 2006-09-21 11:00 BlueDavy

@SimonLei
哦?终于又有一个实践人员,多交流实践的经验...

@蚂蚱
对,非常非常同意这句话,而这也是EEG的基本原则之一,相信OSGi的设计者们会给EE界的设计人员带来不同的设计视角。
  回复  更多评论   

# re: 请公平些看待OSGi 2006-09-21 12:40 XiangDF

本人现在也很关注这个方面的问题。现在正在研究OSGi的规范,有人把它翻译出来了吗?还有关于一些术语的翻译比如Bundle怎么译,是束,还是别的什么?  回复  更多评论   

# re: 请公平些看待OSGi 2006-09-21 14:22 dennis

Bundle这个词,我建议还是直接用英文,不翻译的好.JAVA开发人员关注OSGI把他当成一个新的如spring,webwork之类框架来看,当然会很失望.我在读opendoc时还是小小激动了一把,模块化和动态管理的设计思想很有趣.现在工作中没做这方面的开发,一直跟踪关注.  回复  更多评论   

# re: 请公平些看待OSGi 2006-09-21 14:49 BlueDavy

@XiangDF
基本上在做翻译的时候都不会去翻译象Bundle这种术语的东西...
OSGi的规范确实准备找些人来翻译一把,不过目前我觉得还不是很急,建议可以先看Opendoc,等看了后再想怎么样去翻译原版的规范....  回复  更多评论   

# re: 请公平些看待OSGi 2006-09-21 20:56 XiangDF

@BlueDavy
先生的大作已经读过了。
我现在想作一个C/S结构的应用,数据持久层使用Hibernate,通信层使用JbossRemoting,你认为怎么样?你认为如果在Equinox中使用他们?有现成的类似这两个项目的Bundle吗?
我对先生关于一站式系统的设想也很感兴趣。感觉现在有人重提Thin Client概念与我们所想的比较相近。不知先生有什么看法?
感谢你关于上一个问题的回复,Thanks  回复  更多评论   

# re: 请公平些看待OSGi 2006-09-21 22:36 BlueDavy

@XiangDF
...叫先生太客气了....
在Equinox中使用这两个东西并不会有什么问题,网上目前没有此方面直接使用的Bundle,要使用Hibernate只需要在你的Bundle中直接加入Hibernate相关的lib就好了,其他使用的方法和普通的java工程没什么区别,JBossRemoting我没用过,不是非常确定,不过我相信没什么问题。
嗯,关于一站式系统,可以多交流,一直很感兴趣也很想做,我现在的商业产品有部分是类似的思想。  回复  更多评论   

# re: 请公平些看待OSGi 2006-09-28 11:31 Jerrygod

研究OSGI,发现的确从企业级直接去分析这个事物实在是有些超前。
首先从OSGI的初衷来看,很明显不是为了解决横向问题(事务、分布、AOP等等都是)而提出的,而企业级大都关注与横向问题;其次,作为基础性体系的东西,OSGI不应该在横向问题上走太远,相反与横向解决方案合作,共同走向企业级领域才是比较适合的道路,很高兴现在正在这条路上发展了。

OSGI带来的东西太美好了,无须去预测其发展,享用、适用才是王道。  回复  更多评论   

# re: 请公平些看待OSGi 2006-09-28 12:48 guitarpoet

@BlueDavy

恰恰相反,Equinox的HttpService的源代码我看过了。那么简单的设计根本就不可能处理大型的应用。

就它目前的状态来看,基于Equinox来开发应用,还不如直接去用Rails开发。

Java EE的标准在短时间内是不可能被替换的,无论是从对现有投资的方面考虑还是从各大公司技术支持的方面(还有技术接受程度和技术人员培训的方面)考虑。

除非,Java EE应用服务器全部放弃JMX而使用OSGI或者至少有至少两种以上的成熟的OSGI的应用服务器出现。否则,我还是认为与Spring结合才是OSGI进入企业级应用开发的最好道路。  回复  更多评论   

# re: 请公平些看待OSGi 2006-09-28 16:16 BlueDavy

@guitarpoet
IBM Websphere全面采用OSGi就是一个铁证...

而你所说的什么基于Equinox来开发应用,还不如直接去用Rails开发的理由具体是什么,至少我公司的商业产品目前就是基于Equinox的,也没什么问题呀..
在B/S结构中,最薄的一层就可以是controller那层,所以我不认为采用HttpService会有什么问题..
现在OSGi要应用到企业应用中缺少的不是这些东西,缺少的是在企业应用的横向面,象事务等等....

Java EE的标准短时间内是不可能被替换,但OSGi对于JAVA EE的影响是有目共睹的,成为JSR 291就是很明显的地方,OSGi的目标也不是把现在的JAVA EE干掉,成为大杂烩。  回复  更多评论   

# re: 请公平些看待OSGi 2006-09-28 17:40 guitarpoet

@BlueDavy

controller可以薄,但是薄到用一个Hashtable来注册Sevlet,太儿戏了吧?整个应用连一个基本的Servlet对象缓存池都没有,怎么实现高可靠性和高可用性?集群支持怎么实现?更不用提复杂的Session处理了。目前的情况,做一个简单的客户端还可以,复杂的应用肯定吃不住。

我承认,Equinox的Http项目还是一个新的东西,还会有一条路要走。但是,现在就贸然使用,肯定是不明智的。至少,如果IBM的WebSphere是全面采用OSGI技术的话,用WebSphere的Http Bundle可能还会有一些价值。

我没说OSGI不好,我说的是就目前的Equinox的Http项目的现状,根本不适合拿它开发企业应用。只能适用于比较小的应用,或者Demo之类的。

Ruby确实有慢的问题,但是Rails对服务端的处理也不是那么草率的。目前为止,Rails是公认的进行小型Web开发的最好工具。如果真是开发需要RCP的小应用,不妨试试Rails + WebService + RCP的方式。那样,开发效率也是很高的。

说不定,以后真有可能会出现OSGI Server。这也是一个产品线啊。

值得继续关注。
  回复  更多评论   

# re: 请公平些看待OSGi 2006-09-28 19:09 BlueDavy

@guitarpoet
呵呵,没错,你说的这个我同意,OSGi由于制定的目标是嵌入式领域,相对于复杂的企业应用而言确实还有很多的不足,相信EEG的努力以及Spring and OSGi会补充OSGi的这些不足。
所以我的观点是现在以企业应用的观点去评判OSGi是不公的,毕竟它的优势不在这些地方,就象我之前一篇Blog所说的,至少目前学习OSGi对于大家是很有帮助的,至于是否选用则要根据你的项目/产品的重点特性而决定。
我目前的产品的重点确实不在B/S结构这块,这块的压力较小,所以没有发现你所说的集群等的问题,多谢你在这块的提醒.....
多交流。  回复  更多评论   

# re: 请公平些看待OSGi 2006-11-08 16:08 生与夏花

写的非常的不错,现在正在尝试如何把原有的平台移植到OSGI上来,准备用的RI就是equniox,希望以后能够多进行交流  回复  更多评论   

# re: 请公平些看待OSGi 2006-11-08 16:35 生与夏花

B/S方面,OSGI方面支持的是不太够,但是EEG,Eclispe的RSP都在做相应的工作。
对于web容器的集成,一般只会存在2种可能性一种是Embedding,还有一种就是Bridge,按照软件开发的一贯思想,不能重复轮子,所以各人觉得还是bridge比较好,Embedding最好也是以现有的容器为基础做集成.
如果以Bridge的形式做集成,集群的问题就应该解决了,对于企业集应用方面一些现有的成形的WebFrameWork也可以使用.
比如strust,jsf,springMVC,WebWork等等,我们可以借助于Equniox的扩展点的概念加以实现,以Struts来说可以通过Equnixo提供的http.registry bundler进行扩展实现,这样每一个web模块,我们都可以作为一个模块来发布,而他是共用一个web context的基础之上的,充分体现的OSGI的设计思想.
OSGI在企业级应用上是很薄弱的,至少现在我还没有想到如何和J2EE服务器进行集成,还需要很多人共同的努力,希望我们共同撑起国内OSGI应用的这片天.
个人邮箱:hx9111@gmail.com   回复  更多评论   

# re: 请公平些看待OSGi 2006-11-09 12:42 duxu

我想问一下,我是一个OSGI的初哥。它的组件化设计思想我觉得非常适用于轻量化web容器。但是我始终没想明白,如果在web应用中使用OSGI,那么资源的路径该怎么处理?如:图片、flash、声音、视频等等。而且web路径的问题怎么解决?有高手能指点一下吗?  回复  更多评论   

# re: 请公平些看待OSGi 2006-11-09 15:24 生与夏花

@duxu
在web容器中嵌入OSGi,通过equniox的http.bridge bundler可以把你以前的servlet应用桥接过来,这样你就可以使用以前的web开发框架,还可以通过equniox的扩展点进行组件化开发,对于web中一些resource的引用你可以设计一个独立的bundle进行存放,这样还便于管理和维护,对于有多种theme的web应用更是方便多了,随便stop bundler1 -> install bundler2 -> start bundler2 就可以了,动态的切换的自己在自行设计.
rosource的引用,我记得equnox的http.registry中有一个面向与resource的扩展点,可以快速的进行资源扩展.
如果想要知道具体怎么在web应用中集成OSGi可以看这个地址:
http://www.infonoia.com/en/content.jsp?d=inf.05.09  回复  更多评论   

# re: 请公平些看待OSGi 2006-11-10 17:49 duxu

@生与夏花
你给我看得那篇文章要使用Eclipse的RSP项目,这个项目目前还没发布可用的程序包。
对于桥接的方式,有什么参考资料吗?  回复  更多评论   

# re: 请公平些看待OSGi 2006-11-10 18:00 BlueDavy

@duxu
桥接方式请看:
http://www.eclipse.org/equinox/server/http_in_container.php  回复  更多评论   

# re: 请公平些看待OSGi 2007-05-16 11:14 Ethan

主要还是人才啊  回复  更多评论   

# re: 请公平些看待OSGi[未登录] 2016-07-20 18:02 Java Fans

OSGi企业应用的开源开发平台JXADF,相当不错,值得推荐,详细参见:http://osgia.com  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

公告

 









feedsky
抓虾
google reader
鲜果

导航

<2016年7月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

统计

随笔分类

随笔档案

文章档案

Blogger's

搜索

最新评论

阅读排行榜

评论排行榜