chaocai

构客网首页  博客  论坛

 
  SOA我有话说
  本文的标签
SCA (收录6148篇)OSGI (收录135篇)SOA我有话说 (收录167篇)SOA服务构造与实现 (收录36篇)
  用户信息
 
帐号:  新手必读
密码: 保存密码
 
  分类列表
全部类别(6 篇)
我的文章(6 篇)
  按月归档
2008年-0月(6 篇)
  SOA2007 - SOA实践
我们何时迈向SOA
——SOA在中国的整体发展现状究竟如何?
我们如何迈向SOA
——中国企业如何迈出实施SOA的第一步?
我们应采用何种技术
——SOA国际标准SCA/SDO的具体内涵?
我们还需要何种技能
——SOA将如何改变系统架构设计以及项目管理过程?

过细粒度的Bundle是成功实现OSGi应用的大敌

发布时间:2007年12月05日 作者:chaocai

阅读次数:888次 类别:我的文章 永久链接 Trackback 1条评论
参加SOA我有话说
OSGi技术本身融入和很多SOA的思想,并且OSGi技术在SOA的实现中发挥着越来越多作用,用于很多ESB及SCA实现当中,并且也得以SOA基础设施广泛支持。近期做了几个使用OSGi开发的应用,发现使用过细粒度的Bundle不会给项目带来任何好处,而很多设计人员实际都会在使用OSGi平台时陷入这个陷阱。

近期做了几个使用OSGi开发的应用,发现使用过细粒度的Bundle不会给项目带来任何好处,而很多设计人员实际都会在使用OSGi平台时陷入这个陷阱。

首先我们分析OSGi的特点及可以给我们应用带来的好处

1 良好的动态特性

2 更细粒度的类装载控制,多个版本组件在同一运行环境中共同运行

3 JVM内部实现SOA(我个人倒是认为OSGi所涉及的仅仅是SOA思想的一小部分)

4 DS提供的IoC支持

请思考你的应用程序真的需要这些吗?

很多设计和开发人员都会在设计和实现时忽略应用的真正需要和OSGi的复杂性,将应用的所有内部细小划分都采用Bundle实现。

而我们除了应该注意采用OSGi开发和调试带来的复杂性;同时也要明白动态特性的支持并不是仅仅采用OSGi平台就可以搞定的,要真正实现动态特性必须注意模块的启动顺序无关性及对其所依赖服务的监听等,这些都会大大增加系统实现和调试的复杂性。

其实我们应该认真分析应用是否需要这些OSGi的特性及这些特性应该在应用的那些部分体现,例如我们可以在扩展方面采用Bundle实现扩展插件,至于其它部分则不必采用过多的Bundles(甚至可以采用一个大的Bundle,而其内部则可以采用如Spring来帮助我们实现模块化)。

同时,不要忘记其他的framework同样提供了很好的组件化的基础架构如SpringPico-Container,在OSGi与其它技术混合时SCA同样是很好的选择。

保持应用的简单性,不要针对特定技术进行设计,而要为设计选择适合的技术。

蔡超
Chaocai2001@yahoo.com.cn

JEE咨询顾问
SCEA(1.2&5)
IBM Certified OOA&D Solution Designer vUML2

本文参加了“SOA中国的关键任务”博客大赢家,评论文章即可参与活动,赢取万元奖金!

 评论 查看全部评论
 
liang_ma 于 2008-08-18
顶!