`
loseone
  • 浏览: 34646 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

基于Equinox开发系统的总结

阅读更多

Equinox,我不想多做介绍,相信很多人都有所了解了,不了解的可具体去www.eclipse.org/equinox看看。
最近基于equinox做了一个系统,还是碰到了一些问题,当然也得到了在插件体系架构下的不少优点,在这里也做个总结。
总体而言,基于equinox做开发对于大多数java开发人员来说应该不会有太多改变的感觉,最多改变的感觉应该是带给设计师,设计师需要有发挥插件体系架构优点以及减少其带来的缺点的能力,^_^
1、部署不是很方便
      equinox默认提供的是一个console端的插件部署管理,部署起来需要通过"install reference:file://"这样的方式来安装插件,不是特别的方便。
      ^_^,由于我当时使用的时候equinox还没提供osgi中httpservice的实现,便使用了oscar中提供的httpservice的实现,基于这个httpservice的实现写了一个web端的插件管理的工具,呵呵,将来整理后会将这个bundle公布出来,到时大家直接下载就可以用了。
      在部署方面还有一个不方便的地方就是不能指定插件的启动顺序,现在equinox是通过config.ini中来实现插件启动顺序的控制的,这个在我的web端的插件管理工具中也提供直接,可直接设定插件的启动顺序。
2、Classpath的问题
      这个问题是我在使用equinox时比较头疼的一个问题,我在bundle中使用了spring IoC container,而由于spring中使用的不是当前类的加载器,导致在加载配置文件的时候会出错,只得直接修改了spring中那些部分的代码,将其改为使用当前类的加载器。
       在集成其他一些自己含有classpath的东西的时候也很容易出现这个问题。
       虽然从原理上来讲这个是可以理解的,因为在插件体系结构中每个插件都拥有独立的插件类加载器,这个确实会对集成的有些东西产生影响,抑或我们应该理解为集成的那些东西在这方面设计有缺陷?
3、有利于面向接口编程的执行
      这个应该说是属于插件体系结构的好处,每个插件可以控制自己对外所暴露的包,这个时候就可以只暴露接口所在的包,^_^,呵呵,面向接口的编程就这么被强制的执行了。
4、插件开发的IDE
      这点是我觉得equinox的天然优势,拥有一个eclipse这么优秀的插件开发的IDE,^_^
      支持了插件的调试...
      我认为的最重要的一点是它解决了插件依赖的问题,通常在出现project依赖的时候我们都需要引用该project或是该project生成的jar,而在插件体系结构中只需要在插件文件中定义所依赖的包即可,这个就解决了去引用project那样方式引起整个项目工程包混乱和开发不便的现象。
5、插件的测试
      这点我想也是大家很关心的,不过大家可以放心,基本没什么不同的,unit test继续使用Mock方式完成所测试的unit的外部依赖的部分,集成测试则需要启动equinox容器,这点应该没什么不能接受的。
6、Bundle和Service的定义
      这个就是插件体系结构带来的一个挑战,如果准确的定义系统中的bundle和service是很关键的一个问题,这对于发挥插件体系结构的bundle级别、service级别的重用性至关重要,同时对于整个项目结构的清晰度也会产生很大的影响,形成bundle的清晰的service依赖结构。
7、面向服务的体系
      我想这也同样是象equinox这样的插件框架引发使用者的思考,系统采用的应该是一种面向服务的体系,服务才是系统的核心,bundle只是一个管理器而已,这个时候怎么样设计出动态、松散耦合的服务体系是很关键的。

equinox一直都在发展之中,它的maillist一直就非常的热闹,而且现在对于osgi中的service它基本都实现了,也已经开始提供对于servlet container集成的支持,^_^,极度支持equinox,虽然它还需要不断的努力.....
可以看得出,经过我上面的总结,大家其实要担心的是引用一种新的体系结构带来的设计层面的变革,而不是开发实现层面,^_^ 



BlueDavy 2006-03-12 21:32 发表评论
分享到:
评论

相关推荐

    基于Equinox开发OSGi应用(一)

    总结来说,基于Equinox的OSGi应用开发是一种强大的模块化开发方式,它提供了高度的灵活性和可扩展性。通过学习和实践,我们可以创建更加健壮、易于维护的Java应用程序。"helloworld"项目是一个很好的起点,它能帮助...

    基于Eclipse的Equinox框架开发OSGi Bundle应用

    总结来说,基于Eclipse的Equinox框架开发OSGi Bundle应用,可以提高软件的模块化程度,增强系统的灵活性和可维护性。通过PDE工具,开发者能够轻松地创建、管理和调试OSGi应用,进一步提升开发效率。深入理解OSGi和...

    equinox-SDK-4.22M1.zip

    Equinox SDK 4.22M1 是 Eclipse ...总结来说,Equinox SDK 4.22M1 是一个用于 OSGi 开发的强大工具集,提供了完整的开发环境、运行时支持以及软件管理功能,使得开发者能够高效地构建模块化的、可维护的 Java 应用。

    equinox-SDK-Mars.2.zip

    总结来说,"equinox-SDK-Mars.2.zip"是一个专为Eclipse Mars.2版本设计的Equinox SDK,包含了运行和开发基于OSGi的Eclipse插件所需的所有组件和元数据。使用时必须注意版本匹配,以避免可能出现的兼容性问题。通过...

    eclipse-equinox-3.4.2.zip

    在Eclipse IDE中,Equinox是默认的运行时环境,它基于OSGi规范,为插件开发提供了一个灵活且模块化的系统。让我们深入探讨Eclipse Equinox 3.4.2版本中的关键知识点。 1. OSGi(Open Service Gateway Initiative)...

    基于Eclipse开发OSGI的简单实例

    **基于Eclipse开发OSGI的简单实例** OSGi(Open Services Gateway Initiative)是一种Java模块化系统,它允许在单个JVM上动态地部署、管理、发现和使用服务。Eclipse是一个广泛使用的开源集成开发环境(IDE),它...

    OSGI.基于ECF的分布式服务开发指南

    ### OSGi与ECF:基于分布式服务的开发实践 #### 一、前言 随着企业应用日益复杂,分布式服务架构成为了许多系统的核心设计模式之一。为了满足这种需求,OSGi(Open Service Gateway Initiative)框架提供了强大的...

    osgi总结文档收藏

    2. IDE插件:Eclipse作为一款基于OSGi的IDE,其插件机制就是基于OSGi实现的,允许开发者开发和安装独立的插件,扩展IDE功能。 3. IoT和嵌入式系统:小型设备和嵌入式系统中,OSGi可以有效地管理资源,降低内存和CPU...

    OSGI学习手册及实践

    - **文档结构**:文档分为多个章节,覆盖了从基础到高级的各个方面,包括体验OSGI、OSGI带来的好处、案例分析、框架介绍、基于Equinox的实战等内容。 - **实战内容**: - **做好准备**:介绍了开始OSGI项目之前所...

    免费Eclipse插件开发学习笔记-源代码1至24章.zip

    24. **最佳实践和案例研究**:总结插件开发的最佳实践,并通过实际案例分析加深理解。 通过学习这个压缩包中的源代码,你可以深入理解Eclipse插件开发的各个方面,从而能够构建自己的定制化开发环境或独立应用程序...

    ctk框架源码,以及ctkData资源

    CTK(Clinical Toolkit)是一个开源的医疗应用开发框架,基于Qt库和OSGi服务架构,旨在提供一个标准化、模块化的平台,帮助开发者快速构建医疗信息系统。本资源包含CTK的源代码和ctkData资源,非常适合对医疗软件...

    Eclipse中文教程

    - **Equinox OSGi**:Eclipse的运行时环境,采用OSGi模块系统,使得插件之间能够动态加载和卸载,提高了系统的可扩展性和灵活性。 - **Modeling Framework (EMF)**:提供了一套模型驱动的开发工具,帮助开发者创建和...

    OSGI

    总结来说,OSGI是一个强大的模块化系统,它提供了一种灵活的方式来组织和管理Java应用程序。通过其服务机制、版本控制和动态性,开发者可以构建更稳定、可维护和可扩展的软件系统。学习和掌握OSGI,对于提升Java应用...

    spring基础教程

    - **Spring框架的优势**:Spring框架之所以受到广泛欢迎,主要是因为它能够有效地解决Java EE开发中常见的复杂问题,如对象的生命周期管理、依赖管理和事务控制等,同时还能极大地提高开发效率和降低系统的耦合度。...

    很久之前的osgi整理

    标题 "很久之前的osgi整理" 暗示了这篇内容主要关于OSGi(OSGi,Open Services Gateway Initiative)技术的早期理解和总结。OSGi是一种Java模块化系统,它为创建、部署和管理动态模块提供了标准框架。在早期,OSGi...

    Introduce.OSGi.ppt

    【OSGi介绍.ppt】 ...总结来说,OSGi是一种强大的模块化框架,它改变了Java应用程序的设计和开发方式,使系统更加灵活、可扩展和易于维护。通过了解和应用OSGi,开发者能够构建出更加健壮和适应变化的软件系统。

    Spring基础教程

    - **Struts和Spring**:为了开发基于Java的Web项目,开发者需要下载所需的JAR包,并搭建好项目目录结构和Ant构建脚本。针对单一的Struts项目,可以利用Struts提供的struts-blank.war文件;对于基于Spring MVC框架的...

    virgo server

    3. **Virgo Server的架构**: Virgo Server基于Apache Felix和Equinox两种主流的OSGi实现,提供了一个稳定的运行时环境。它包含了一个服务管理器,负责处理模块的安装、启动、停止和卸载。此外,还有一套完善的部署...

Global site tag (gtag.js) - Google Analytics