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

日期: 2008-05-28 作者:chaocai 来源:TechTarget中国

  OSGi技术本身融入和很多SOA的思想,并且OSGi技术在SOA的实现中发挥着越来越多作用,用于很多ESB及SCA实现当中,并且也得以SOA基础设施广泛支持。近期做了几个使用OSGi开发的应用,发现使用过细粒度的Bundle不会给项目带来任何好处,而很多设计人员实际都会在使用OSGi平台时陷入这个陷阱。


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


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


  良好的动态特性


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


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


  DS提供的IoC支持


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


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


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


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


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


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


  原文出处:http://gocom.primeton.com/blog9820_3229.htm

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

作者

chaocai
chaocai

相关推荐

  • 事件驱动框架和SOA在空军的应用

    空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。

  • 揭秘New Relic APM技术细节

    New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响

  • 仅凭SOA和云无法解决业务数据管理风险问题

    SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。

  • 总线技术究竟该不该用?

    曾几何时企业服务总线(ESB)被视为企业IT的核心。今天,不仅ESB受到了比被废弃还要糟糕的攻击,若干开发趋势似乎对更简单的消息总线也发起了质疑。