为什么学习OSGi

最近有好几个人都问了我这个问题,问的挺好的,在软件业界新技术层出不穷,做技术的人每天都要不断的学习新技术,在学习每样技术之前,自然是要知道为什么要学习它,说白点,就是得给自己一个理由,对于一个对OSGi完全陌生的人而言,学习OSGi能带给什么呢,给大家几个可选的理由:
1、想提升系统设计能力
      OSGi提供了系统级别的软件设计的指导,在传统的设计中对于系统大多数设计师都是采用分模块形成业务架构、进而模块详细设计的步骤,遵循OSGi也是类似如此,只是它能够更加规范的让设计师们去完成这些过程,而不是象现在百花齐放,每个设计师都有自己的一套设计的方式,这就象UML带来的好处,大家以后在设计的交流上是不是就更加容易了呢,当然,这是从大方向来看的,具体的细节方面那是另一回事,基于OSGi的系统基本都采用分Bundle、对Bundle基于Service-Oriented Component Model思想的详细设计,而OSGi对于Bundle各建classloader的机制则是更加容易同时也是强迫的让设计师们很容易就去做到模块解耦的设计,即使你不用OSGi,那也没关系,OSGi的思想难道不值得学习吗,学习了OSGi的这些优秀的思想你也可以在自己的项目/产品中采取类似的设计来提升系统的设计。
2、想实现动态的可管理的系统(即插即用)
      N多人都已经知道了,基于OSGi的系统具备充足的动态性,而这其实也是我们在做Java开发时一直想实现的,现在有这么一个现成的已经被证明可实现动态性的规范给你使用和学习,何不使用试试或者学习学习它的设计,然后自己做个动态的系统玩玩呢?
      其实很多时候我们是因为在用Java时养成的习惯思维,看OSGi可以让你稍微突破突破java带给你的常规思维习惯,去做到按版本的动态的加载类等一些功能,这是很好的。
3、想建立规范的开发方式和培训体系以及形成积累
      对于公司而言,规范的开发方式是一直以来都所期望的,而基于OSGi呢,很容易就可以让公司做到这点,基于OSGi公司所有的项目都可以按照统一的基础架构、开发方式、部署方式来完成,自然公司在开发知识方面的培训体系就能很容易的形成了。
      至于形成积累方面,更是公司都所期望的,就像我上篇blog所说的一样,基于OSGi的话可以将公司所做过的项目的模块都放入OBR中,当做新项目的时候就只需要去OBR中下相应的Bundle就可以搭出个脚手架,甚至是差不多的系统了。

上面只是简单的列了三点,OSGi带给业界的影响绝对是远超过IoC这种纯粹解决专一问题的设计思想的,给自己一个理由,或者是没事的时候抽空找个OSGi的应用试试吧,体验体验,也许你就会上OSGi的

ps:最近有个想法,既然每家公司都要养人做自己的开发平台,那么不如各家公司联合起来做开发平台,进而把开发平台开源出来,这样每家公司就可以大概只要养一两个人了做开发平台了,毕竟大部分的公司都不是依靠卖开发平台来赚钱的,而这样多家公司联合做的好处在于可以聚集各家公司的强人,呵呵,其质量、进度等必然会高过一家公司去做,当然,这种方法中最为重要的就是首先要树立一致的目标,毕竟每家公司对于其开发平台的功能还是有所轻重区别的,希望有共同想法的朋友们响应下......

posted on 2006-08-28 23:12 BlueDavy 阅读(5902) 评论(18)  编辑  收藏 所属分类: OSGi、SOA、SCA

评论

# re: 为什么学习OSGi 2006-08-29 08:39 jelly->


最近有个想法,既然每家公司都要养人做自己的开发平台,那么不如各家公司联合起来做开发平台,进而把开发平台开源出来,这样每家公司就可以大概只要养一两个人了做开发平台了

这不是自断后路? 呵呵.

看了兄台的osgi的pdf, 感觉osgi正是我长期以来想做的,而又做不到的. 如果公基于osgi来建构基础平台的话,相信确实是意义深远.  回复  更多评论   

# re: 为什么学习OSGi 2006-08-29 08:49 布衣郎

osgi 是不错,我只是简单的了解了一下r4的规范,eclipse就是osgi的一个很好应用。尤其是不同的classloader机制,更加解决了模块之间的耦合性。如果说ioc只是基于类的,那么osgi则是基于整个软件模块。  回复  更多评论   

# re: 为什么学习OSGi 2006-08-29 11:37 BlueDavy

@jelly->
自断后路?不明白.......
各家公司都不是靠卖开发平台来赚钱的,业务平台仍然是各自公司自己开发呀...  回复  更多评论   

# re: 为什么学习OSGi 2006-08-29 13:54 jelly->

呵呵, 只是开个玩笑

感觉osgi在web应用上还是很不方便. 不知道以后会有什么样的改善.  回复  更多评论   

# re: 为什么学习OSGi 2006-08-29 14:19 BlueDavy

OSGi成立的EEG就是为了让OSGi更加适合应用于server side app和企业应用的,而且目前OSGi在web应用上也没什么太不方便的,至少我现在的B/S结构的商业产品用OSGi就没碰到什么太多的问题。  回复  更多评论   

# re: 为什么学习OSGi 2006-08-29 16:33 jelly->

呵呵, 可能是因为我还不是很了解的原因吧.  回复  更多评论   

# re: 为什么学习OSGi 2006-08-30 08:43 dennis

通过LZ的文档开始对OSGI初步了解,关注您的blog  回复  更多评论   

# re: 为什么学习OSGi 2006-09-01 09:55 guitarpoet

OSGI的规范目前在SOA领域还不够完整,虽然OSGI能够解决工程依赖和版本控制黑洞,但是由于规范出发点不同,至少在两点上我认为还需要加强。

其一、标准里没有组件服务分布式调用
其二、标准里面的服务定义和发现功能太弱

所以,至少在目前的标准下,它不可能成为象SCA这种标准的SOA架构标准。

另外还有,它虽然有自己统一部署构件格式和相应的Repository,但是没有象Maven那样的透明化获取依赖的构件的标准。

说实话,我非常看好OSGI,它以一个非常完美的方式实现了模块化部署和构建的想法,如果能够在下一个版本里面把上述的缺陷处理掉的话,在SOA的重要性越来越强的背景下,有IBM和Eclipse的支持,它的前景是很令人乐观的。

目前来说,上述问题已经有人觉察到了,也分别实现了一些解决方案,但是,别忘了,它们都不是标准,在标准出台之前,要充分考虑这方面的投资。

至于怎么整合进现有的应用,我也正在考虑方案,可以讨论一下,呵呵。  回复  更多评论   

# re: 为什么学习OSGi 2006-09-01 14:13 BlueDavy

@guitarpoet
为什么要OSGi去解决组件服务分布式调用呢?OSGi+SOA不就行了....不过随着EEG的成立和OSGi对于server side app和企业应用的关注,这些自然是会解决的,EEG其中的职责之一就是完成分布式部署的问题。
标准里面的服务定义和发现功能太弱,这个我非常不同意,请问弱在哪里?

”没有象Maven那样的透明化获取依赖的构件的标准“我更是不同意,详见OBR那篇blog。

整合现有应用目前来说,确实还是有点麻烦的,但对于新的应用来说是毫无问题的,而如果spring and osgi推出的话那就更好办了...  回复  更多评论   

# re: 为什么学习OSGi 2006-09-04 08:27 guitarpoet

你并没有仔细的看我的评论。

在目前的OSGI R4标准里面,我提的几点问题好像并没有规范。

OSGi + Web Service确实是解决方案,但它不是标准。你也看过SCA的规范吧?它也使用Web Service,但是它把使用Web Service整合到规范中去了。规范本身是可以整合任何技术的。OSGI不是不支持远程Service调用,但是,说实话,我没在规范中看到具体的实现方式。

我可以负责任的说:在OSGI R4中“没有象Maven那样的透明化获取依赖的构件的‘标准’”(并不是说没有实现,而是说没有具体的标准)。

“标准里面的服务定义和发现功能太弱”不是我说的,是Eclipse的人说的。所以Eclipse才需要发明出自己的plugin.xml格式。Equinox也有自己的服务定义和发现方式。

OSGi作为一种技术确实是非常具有开创性的,正是这一点才如此吸引我。

但是,作为标准,尤其是实现SOA的架构的标准的话,尤其是跟SCA比,它还是有缺陷的。

我为什么要这么比?因为我觉得OSGI在基础上要比SCA扎实,你不觉得SCA的xml太多了吗?SCA还是静态部署的,而且对于依赖版本控制也束手无策。

我期待的是,OSGI的下一个版本能够成为一个比较完整的SOA标准,而不仅仅是一种动态加载的技术,呵呵。

在OSGI技术的使用上,我应该算是新手。所以,我希望能够跟你探讨在当前标准的基础上,怎么去在具体的工作中去使用它,获得它的优点,减少开发和维护的难度。呵呵。
  回复  更多评论   

# re: 为什么学习OSGi 2006-09-04 14:16 BlueDavy

@guitarpoet
没错,现在象远程等等这方面都不是OSGi R4中的标准,但到了R5的时候就难说了,你可以去关注下现在的EEG,EEG的目标就是让OSGi更好的支持服务器端应用和企业应用。
至于"标准里面的服务定义和发现功能太弱"这个我不知道Eclipse的人什么时候说的,Equinox有自己的服务定义和发现方式我更是不知道怎么说,因为在OSGi R4中的DS支持的更好的服务定义和发现的方式已经得到了认可,在R4之前确实这块比较弱。
从目前业界的发展来说,OSGi在规范方面必然会进展的更好。
就像你所说的,去讨论期望OSGi将来的标准支持什么没有太大的意义,对我们来说最重要的确实是如何在现有的基础尚做应用,而这些光讨论也是没用的,要实战才有效,至少我现在公司的商业产品基于OSGi做还是挺不错的。  回复  更多评论   

# re: 为什么学习OSGi 2006-09-08 09:53 Alex

感觉不错,关注一下  回复  更多评论   

# re: 为什么学习OSGi 2006-09-09 03:35 dennis

HI,老大,TSS上一则新闻不知道您注意到没

EasyBeans, the Objectweb EJB3 container takes benefit of OSGi
This is the first EJB 3.0 Container implementation completely available as standard OSGi bundles.
地址
http://www.theserverside.com/news/thread.tss?m=c.reply&thread_id=42120#217550  回复  更多评论   

# re: 为什么学习OSGi 2006-09-09 10:04 BlueDavy

@dennis
嗯,好东西,呵呵,现在已经很多东西都基于OSGi了,看起来就像OSGi是一夜风行一样...  回复  更多评论   

# re: 为什么学习OSGi[未登录] 2007-11-22 10:43 paul

能不能把r4规范翻译一下啊  回复  更多评论   

# re: 为什么学习OSGi 2008-01-17 19:35 美美

我:看不懂,无聊,幼稚。
妈妈:好东西!我要学习。
爸爸:OSGI好棒。  回复  更多评论   

# re: 为什么学习OSGi 2008-07-31 08:32 linker

@paul
同问

牛人能翻译一下就好了,面对几百页的E文规范,对于E文超弱的我实在是太挑战了。。。。  回复  更多评论   

# re: 为什么学习OSGi[未登录] 2008-09-25 21:25 lt

最近比较关注OSGI,正在思考把现有的几个系统如何重构成基于OSGI框架的,如果是java开发的,我看OSGI进阶中有关于此的介绍,那如果是C或其它语言开发的呢?如果想转到OSGI方面,应该如何来做呢  回复  更多评论   


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


网站导航:
 

公告

 









feedsky
抓虾
google reader
鲜果

导航

<2006年9月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

统计

随笔分类

随笔档案

文章档案

Blogger's

搜索

最新评论

阅读排行榜

评论排行榜