基于OSGI的框架开发小结(转)

  研究OSGI也有一段时间了,总的感觉网上相关资料还是太少(有参考价值的,因为大部分都是拷贝的同一篇文章),到目前为止对OSGI算是有了一定的了解,我把这段时间来找到的资料和个人体会总结一下和大家分享,为开源尽一点绵薄之力.

1.classic框架: 设计时依赖

    OSGI框架: 运行时依赖

2.OSGI柄承职责单一的原则,面向服务的组件模型设计,强制面向接口编程,支持热插拔.

        OSGI提供一个强大的,严格规范的类加载模型,为每个模块提供各自ClassLoader提供动态协作模型(服务注册),模块隔离,版本加载,属性过滤. 即使Bundle已经stop,其Export的Packages依然可用.

        Bundle ClassLoader:控制模块内业务类加载

        System ClassLoader: 控制Bundle的生命周期

        SOCM: 面向服务组件模型

3.OSGI框架的两个设计方向:

   (1).将WEB容器内嵌到OSGI环境中;

   (2).将OSGI以WAR的方式发布到独立的WEB容器中.

4.Bundle的生命周期(LifeCycle):

   安装,    启动,   更新,     停止,     卸载. (其实一个Bundle就是一个含有元文件的jar)

5.OSGI的两种监听实现方式:

    (1).BundelContext:自已主动监听事件的变化;

    (2).DS(Declarative Service):服务动态变化时主动调用.

     资源不主动调用容器来实现自身生命周期的管理,这是我们所希望的,所以,DS更可取.

6.Bundle生成工具:

    Bnd.jar可以根据传统工程的虚拟路径生成符合R4的bundle,下边是BluyDavy关于该工具的介绍:

    http://www.blogjava.net/BlueDavy/archive/2007/07/27/132809.html

7.Bundle的WEB操作界面:TPF(脚手架)

      当TPF的Bundle启动后,完全接管Equniox控制的其它应用Bundle生命周期,可以监听远程的TPF,它是 一 个基于Eclipse-Equniox的插件框架:

   http://www.blogjava.net/BlueDavy/archive/2006/08/18/64440.html

8.Bundle的默认WEB根目录:MODULE-INF

    如:MODULE-INF/WEB-INF/page/index.jsp

    Spring-OSGI默认配置文件路径:META-INF/spring,默认这个文件夹下的配置文件都会被加载,当然也可以更改路径;

9.Equniox把以java.开头的类包交给parent ClassLoader去加载,意味着没有必要在系统中提供对外export java开头的package.

10.我不想把别人的代码再弄来贴一遍,以下列出我所收集的OSGI参考实例及资料:

     (1).Spring DM server开发实例(日文)

     (2)Spring MVC-OSGI WEB开发实例

     (3)OSGI中国官方网站

     (4)Spring-OSGI 1.0 M3 中文手册

     (5)Spring-OSGI 1.1.2下载

     (6)BlueDavy的技术博客

     (7)闯荡在移动互联网的世界中的博客

     (8)Phrancol's blog

      (9)罗明的博客

     (10)yangbutao - blogJava

     (11)OpenCore:基于OSGi开发纯插件体系结构的WEB应用程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值