`
killko
  • 浏览: 102370 次
  • 性别: Icon_minigender_1
  • 来自: 广州
博客专栏
Group-logo
Servicemix&Fu...
浏览量:0
社区版块
存档分类
最新评论

OSGI化你的应用的一个推荐方式

阅读更多
    我个人感觉OSGI表面是为了模块化,但其本质是为了软件设计的永恒主题--复用。

    从过程式软件设计,到结构化软件设计,再到面向对象的软件设计,再进一步则是面向组件的软件设计。而java在JDK层面上已经提供了很好的面向对象的软件设计基础,但在面向组件的软件设计方面,则需要在更高的应用层面去实现,而没有基础性的实现方式。也就是说,你用java开发,可以基于组件,也可以不基于组件,这全看你的需求和远见,而且即使是实现面向组件的设计,在jdk层面也没有提供统一的方式。(反之,在面向对象方面,jdk则提供了诸如类、private、public、protected、static等等相关的元素)。

    所以OSGI的出现,其实就是弥补了JDK在这方面的缺失。虽然OSGI不在JDK范畴内,但对于实际的应用中,OSGI规范却是介于JDK和基于OSGI的应用之间的,所以,基本上如果你需要将应用建立在OSGI规范之上的话,你的应用所依赖的其他组件也“不得不”迁移到OSGI上来,再加上OSGI独特的ClassLoader设计,使bundle间的类互相访问受到一定的约束,这就导致OSGI的入门门槛较高。

    很幸运的是,OSGI经过多年的发展,也已出现了很多类似J2EE相关的各种框架实现,逐步将OSGI的应用门槛降低下来。从结构上说,在JVM之上最底层的就是OSGI的framework,例如:equinox、felix等等,很多osgi的初学者都直接在这些framework上开始,但这会造成很多麻烦,由于这些framework只是提供最基础osgi运行时环境,对于初学者来说,常会遇上要解决诸如log、配置、bundle的启动优先级等等问题。在此,我推荐karaf,karaf不是osgi framework,它是在osgi framework的基础上,整合了log、配置、console等等基础功能的osgi运行时环境,它相当于在equinox(或felix或其它OSGI framework)上包装了一下,令你的osgi应用可以免除集成那些基础功能的麻烦。如果初学者直接基于karaf来运行自己的应用,入门会轻松很多。

    再进一步,我推荐servicemix,servicemix其实是个ESB,而karaf就是作为servicemix的内核,并独立出来的一个apache开源项目。在servicemix4开始,已经是osgi化了,同时Servicemix还集成了ActiveMQ、Camel等开源项目。Camel强大的组件化服务功能,使servicemix在SOA方面更加得心应手,如果有空的话,我想我会再跟大家交流一下Servicemix。
4
2
分享到:
评论
5 楼 zyz251314 2013-01-31  
K  开始在iteye发帖子了  顶了
4 楼 killko 2013-01-29  
tsmoon 写道
我想请问下.你是否将osgi应用于生产环境过?

是的
3 楼 huangmao_qinwei 2013-01-29  
希望可以很楼主交流一下。
我们现在做的项目就是基于 apache fielx 的。而且是实际运行在生产环境的。
2 楼 lzfying 2013-01-29  
顶下,K   希望更多的像你这样的人推动osgi的发展。
1 楼 tsmoon 2013-01-29  
我想请问下.你是否将osgi应用于生产环境过?

相关推荐

    《Java应用架构设计 模块化模式与OSGi》PDF版本下载.txt

    《Java应用架构设计 模块化模式与OSGi》PDF版本下载

    Java应用架构设计模块化模式与OSGi

    Java应用架构设计模块化模式与OSGi

    Java应用架构设计 模块化模式与OSGi.zip

    Java应用架构设计 模块化模式与OSGi

    OSGi与Equinox 创建高度模块化的Java系统

    第二部分采用非正式教程的方式教给读者如何从零开始构建真实的Toast应用,针对每一个步骤都提供了完整的在线示例代码;第三部分由原型构建转向实际的产品开发,主要介绍了OSGi和Equinox中用来构建成熟的OSGi应用必不...

    使用OSGi构建模块化云应用

    应对变更是构建应用程序要解决的基本问题之一。这并不一定很难,因为处理软件并不受什么物理...变更是一个架构层面的问题,但不幸的是这一点经常被忽视。某种程度上这是符合逻辑的,因为多数时候你看不到问题将要出现

    OSGI原理与最佳实践

    资源名称:OSGI原理与最佳实践内容简介:国内第一本...其后进入OSGi实战,结合实例讲解如何基于OSGi框架编写模块化、动态化的各种Java应用;最后对OSGi知 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    OSGi.NET框架 Documentation

    OSGi.NET框架是一个参照了OSGi规范的模块化管理框架。框架为应用程序(组件(bundle))提供了一个标准环境。整个框架可以划分为一些层次: 1.运行环境 2.模块(Bundle) 3.生命周期管理 4.服务注册 5.扩展点...

    Java应用架构设计 模块化模式与OSGi

    Java应用架构设计、 如何进行模块化模式、与OSGi有什么联系?

    OSGI原理最佳实践(包含源代码)

    是一本适合新接触OSGI开发学习的一本很好的书,本书介绍了Equinox, Spring-DM和Felix这三个常用的OSGi容器的使用、开发、以及WebApplication的开发部署;介绍了OSGi的规范和Core Framework和Layer。包含书中的用例源...

    OSGi原理与最佳实践

    其后进入OSGi实战,结合实例讲解如何基于OSGi框架编写模块化、动态化的各种Java应用;最后对OSGi知识进行深入讲解,通过对OSGi规范和实现框架(Equinox、Felix、Spring-DM和Apache CXF)的分析,以及最佳实践的介绍...

    spring osgi 规范 中文版

    OSGi提供了一个动态应用程序的执行环境,在这个环境中组件(bundles)可以在运行中被安装、更新、删除。它同时也可以很好地支持模块化及版本化。 Spring’OSGi的目标是使得写基于Spring的应用程序尽可能的容易,这些...

    Java应用架构设计 模块化模式与OSGi,同时也包含了ArcGISAPIforJavascript开发教程的开发教程

    Java应用架构设计 模块化模式与OSGi,同时也包含了ArcGISAPIforJavascript开发教程的开发教程

    深入理解OSGi Equinox原理、应用与最佳实践

    osgi模块化思想还是蛮值得学习的,热插拔的想法也挺好。

    OSGI原理与最佳实践(扫描版,带目录).pdf

    其后进入OSGi实战,结合实例讲解如何基于OSGi框架编写模块化、动态化的各种Java应用;最后对0SGi知识进行深入讲解,通过对0SGi规范和实现框架(Equinox、Felix、Spring—DM和Apache CXF)的分析,以及最佳实践的介绍,...

    OSGI框架实战

    应用OSGI.........84 8.1. 模块化设计...84 8.2. 面向服务的组件模型设计....85 8.3. 动态性设计...85 8.4. 面向接口的开发..85 九. OSGI资源..87 十. OSGI框架前瞻..88 十一. OSGI带来的遐想..89 十二. 参考文献....

    OSGi.NET插件框架

    开放工厂向您提供了规范化的OSGi.NET插件框架和可复用的插件仓库,通过插件仓库来解决应用系统的持续集成、远程管理、自动更新、敏捷发布,无缝实现开发/QA/运维间无缝协作,并允许您将自定义的插件共享。...

    OSGi and Equinox:Creating Highly Modular Java Systems

    阅读本书,首先你很快就会使用Eclipse bundle工具创建第一个基于OSGi的系统,进而转向复杂的产品开发。接下来,你将掌握一些用于创建具有特殊模块化、高效性和可维护性系统的最佳实践和技巧。你将了解所有的OSGi声明...

    Introduce.OSGi.ppt

    这些组件能够组装进一个应用和部署中。 OSGi服务平台提供在多种网络设备上无需重启的动态改变构造的功能。为了最小化耦合度和促使这些耦合度可管理,OSGi技术提供一种面向服务的架构,它能使这些组件动态地发现对方...

    基于OSGi和Spring开发Web应用.doc

    dm Server 是一个完全模块化部署的,基于OSGi的Java服务器,为运行企业Java应用和Spring应用提供更加强大的灵活性和可靠性。SpringSource应用平台是构建在Spring、OSGi和Apache Tomcat之上的应用服务器,这个新的...

    OSGi.in.action.ppt

    这些组件能够组装进一个应用和部署中。 OSGi服务平台提供在多种网络设备上无需重启的动态改变构造的功能。为了最小化耦合度和促使这些耦合度可管理,OSGi技术提供一种面向服务的架构,它能使这些组件动态地发现对方...

Global site tag (gtag.js) - Google Analytics