OpenDoc Series’
OSGi 进阶
V 1.0
作者:BlueDavy
So many open source projects. Why not Open your Documents? ☺
文档说明 OSGi 进阶--模式与最佳实践
文档说明
参与人员:
作者
Blog
联络
BlueDavy
http://www.blogjava.net/bluedavy BlueDavy@gmail.com
本文中例子的代码请从以下地址下载:
http://www.osgi.org.cn/opendoc/osgiopendoc2-source.zip
本文中例子的可运行版本请从以下地址下载:
http://www.osgi.org.cn/opendoc/osgiopendoc2-dist.zip
发布记录
版本 日期 作者 说明
0.8 2007-08-02
至
2007-09-29
BlueDavy
国庆预览版,完成 Opendoc 的主体内容的编
写;
1.0 2007-10-14 BlueDavy
文笔润色;
增加了一些过程描述的图例;
补充设计模式和最佳实践章节内容;
根据预览版收集的反馈意见进行修改完善。
OpenDoc 版权说明
本文档版权归原作者所有。
在免费、且无任何附加条件的前提下,可在网络媒体中自由传播。
如需部分或者全文引用,请事先征求作者意见。
如果本文对您有些许帮助,表达谢意的最好方式,是将您发现的问题和文档改进意见及时反馈给
作者。当然,倘若有时间和能力,能为技术群体无偿贡献自己的所学为最好的回馈。
Open Doc Series 目前包括以下几份文档:
Spring 开发指南
Hibernate 开发指南
ibatis2 开发指南
Webwork2 开发指南
持续集成实践之 CruiseControl
OSGi 实战
OSWorkflow 中文手册
请订阅
http://groups.google.com/group/redsaga-notify ,以获得新版本及其他Opendoc的release通
知,或从
http://www.redsaga.com获取最新更新信息。
(C) www.osgi.org.cn 2007 致力于 OSGi 的推广和发展
OSGi 进阶 目录
目录
1. 序 ..............................................................................................................................................5
1.1. 读者对象...................................................................................................................5
1.2. 编写目的...................................................................................................................5
1.3. 导读...........................................................................................................................8
1.4. 致谢...........................................................................................................................9
2. 基于OSGi的留言板................................................................................................................10
2.1. 需求.........................................................................................................................10
2.2. 基于OSGi的留言板的设计.....................................................................................10
2.2.1. OSGi框架的基础功能和设计思想 ...............................................................10
2.2.2. 留言板的设计.................................................................................................13
2.3. 基于OSGi的留言板的实现.....................................................................................20
2.3.1. 环境准备.........................................................................................................20
2.3.2. 简单的MVC框架模块 ...................................................................................21
2.3.3. 留言列表模块.................................................................................................22
2.3.4. 新增留言模块.................................................................................................28
2.3.5. 管理员登录模块.............................................................................................28
2.3.6. 删除留言模块.................................................................................................28
2.4. 小结.........................................................................................................................29
3. 与流行的Java B/S体系架构进行集成...................................................................................31
3.1. 解决和Hibernate的集成.......................................................................................32
3.2. 解决和Spring的集成.............................................................................................37
3.2.1. 搭建开发环境.................................................................................................38
3.2.2. 在Spring bean xml中发布和引用OSGi Service..........................................40
3.2.3. 重构留言板列表模块.....................................................................................41
3.2.4. 小结.................................................................................................................44
3.3. 解决和Webwork的集成...........................................................................................45
3.4. 小结.........................................................................................................................55
3.4.1. 开发环境的搭建.............................................................................................55
3.4.2. 开发方式.........................................................................................................56
3.4.3. 部署方式.........................................................................................................57
4. 基于OSGi搭建分布式系统....................................................................................................59
4.1. 实例需求.................................................................................................................59
4.2. 搭建基于OSGi的分布式系统的脚手架.................................................................59
4.3. 实例的实现.............................................................................................................61
4.4. 小结.........................................................................................................................63
5. 将原系统重构为基于OSGi的系统........................................................................................64
5.1. 重构.........................................................................................................................65
5.2. 小结.........................................................................................................................69
6. OSGi的设计模式....................................................................................................................72
6.1. 树状设计模式.........................................................................................................72
6.2. 面向服务设计模式.................................................................................................73
7. OSGi最佳实践 .......................................................................................................................74
(C) www.osgi.org.cn 2007 致力于 OSGi 的推广和发展 第 3页 共 78 页
OSGi 进阶 目录
7.1. 接口和实现分离为不同的Bundle.........................................................................74
7.2. 保持系统动态性.....................................................................................................75
7.3. 搭建公司级的Bundle Respository.....................................................................76
7.4. 创建共享library Bundle.....................................................................................77
7.5. 最小化依赖(Minimize Dependencies)...........................................................77
7.6. 避免启动顺序依赖(Avoid Start Ordering Dependencies) .......................78
(C) www.osgi.org.cn 2007 致力于 OSGi 的推广和发展 第 4页 共 78 页
OSGi 进阶 序
1. 序
1.1. 读者对象
此篇文档适合具备OSGi基础概念或已阅读《OSGi实战》的读者
1
阅读,尤其是希望将
OSGi应用至实际的商业项目/产品的读者。
阅读此篇 Opendoc 的读者应具备以下知识:
如何在 Eclipse 中搭建 OSGi 应用开发环境;
如何部署 OSGi 应用;
对于 OSGi 应用开发有大致的了解(如 DS 怎么使用)。
1.2. 编写目的
《OSGi 实战》Opendoc 发布已有一年多了,《OSGi 实战》Opendoc 作为一篇 OSGi 入
门级的 Opendoc,主要是起到介绍 OSGi 的作用,从而吸引更多的人认识 OSGi 和对
OSGi 产生兴趣,很高兴《OSGi 实战》在过去的一年中得到了很多朋友的关注,更值
得高兴的是短短的一年来 OSGi 取得了很大的进步,几乎可以称得上是 OSGi 发展历
史上具备里程碑意义的一年。
OSGi 目前的现状格局从下图中可以管窥一二:
1
如尚未阅读《OSGi实战》Opendoc,可从此处下载:
http://www.osgi.org.cn/opendoc/OSGI_Opendoc.rar
(C) www.osgi.org.cn 2007 致力于 OSGi 的推广和发展 第 5页 共 78 页