) 基于OSGI的框架开发小结(转)
2013-08-01 16:16
183 查看
研究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应用程序
更多请关注:http://www.osgi.com.cn/
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应用程序
更多请关注:http://www.osgi.com.cn/
相关文章推荐
- 基于BootStrap Metronic开发框架经验小结【一】框架总览及菜单模块的处理
- 基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
- 基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
- 基于OSGi的企业级开发框架实践——运行开发框架
- 基于WebOSGi的Web组件化开发3——WebOSGi框架的提出
- 基于BootStrap Metronic开发框架经验小结【八】框架功能总体界面介绍
- 基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理
- 基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
- 基于 OSGi的企业级开发框架实践——开发框架的创建
- 基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
- 基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
- 基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
- 基于BootStrap Metronic开发框架经验小结【一】框架总览及菜单模块的处理
- 基于BootStrap Metronic开发框架经验小结【四】Bootstrap图标的提取和利用
- 基于python的web开发框架-CherryPy
- RestExpress 一个基于Netty的轻量级Rest服务开发框架
- 基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用
- 一个专为移动端开发的原创即时通讯框架,超轻量级、高度提炼,完全基于UDP协议,支持iOS、Android、标准Java平台。
- 【day 17】python编程:从入门到实践学习笔记-基于Django框架的Web开发-设计样式和部署(一)