OSGi原理与最佳实践(国内第一本原创OSGi图书,OSGi之父Peter Kriens鼎力推荐)
编辑推荐
国内第一本OSGi图书.
OSGi国内推广者林昊多年经验的结晶..
涵盖OSGi从入门到深入的知识体系
引领OSGi国内研究和普及...
内容简介
书籍 计算机书籍
本书基于作者多年使用OSGi的经验而编写,涵盖了OSGi从入门到深入的知识体系,从OSGi的简介开始,介绍OSGi的作用及基本概念;其后进入OSGi实战,结合实例讲解如何基于OSGi框架编写模块化、动态化的各种Java应用;最后对OSGi知识进行深入讲解,通过对OSGi规范和实现框架(Equinox、Felix、Spring-DM和Apache CXF)的分析,以及最佳实践的介绍,帮助读者更好地掌握如何使用OSGi。.
本书适合希望了解、深入掌握OSGi,以及编写模块化、动态化Java应用的Java架构师和开发人员阅读。...
目录
第1章 OSGI简介. 1
1.1 梦想中“即插即用”的系统 1
1.2 OSGI,拯救JAVA模块化的规范 1
1.3 厚积薄发的OSGI 2
1.4 OSGI基本概念 3
1.4.1 Bundle 3
1.4.2 Service 4
1.4.3 Service-Oriented Component Model(SOCM) 4
1.4.4 Declarative Service 6
1.4.5 部署 6
第2章 OSGI框架简介 7
2.1 EQUINOX 7
2.1.1 简介 7
2.1.2 环境搭建 7
2.1.3 HelloWorld 10
2.1.4 开发传统类型的应用 17
2.1.5 从外部启动Equinox 35
2.2 FELIX 38
2.2.1 简介 38
2.2.2 环境搭建 38
2.2.3 应用的部署 38
2.2.4 在Eclipse中调试Felix 39
2.3 SPRING-DM 43
2.3.1 简介 43
2.3.2 环境搭建 44
2.3.3 HelloWorld 48
2.3.4 Web版HelloWorld 51
第3章 基于SPRING-DM实现PETSTORE 57
3.1 “即插即用”的PETSTORE 57
3.1.1 Petstore的功能需求 57
3.1.2 OSGi框架的功能和设计思想 58
3.1.3 Petstore的设计 60
3.2 新一代PETSTORE的实现 70
3.2.1 环境准备 70
3.2.2 Utils模块 72
3.2.3 Bootstrap模块 74
3.2.4 ProductDal模块 79
3.2.5 ShoppingCartDal模块 80
3.2.6 ProductList模块 81
3.2.7 ShoppingCart模块 85
3.2.8 ProductManagement模块 85
3.3 部署 85
3.4 PETSTORE的扩展 85
第4章 基于APACHE CXF实现分布式PETSTORE 87
4.1 分布式OSGI 87
4.2 分布式PETSTORE的设计 87
4.3 APACHE CXF简介 90
4.3.1 CXF-DOSGi HelloWorld 90
4.3.2 集成Spring-DM的CXF-DOSGi HelloWorld 95
4.4 分布式PETSTORE的实现 101
4.5 部署 105
第5章 构建OSGI BUNDLE REPOSITORY 107
5.1 OSGI BUNDLE REPOSITORY的使用 107
5.2 APACHE FELIX OBR的使用 110
5.2.1 命令行方式的用法 110
5.2.2 代码方式使用OBR 113
5.3 构建OSGI BUNDLE REPOSITORY 117
第6章 OSGI规范解读 119
6.1 OSGI规范发展历程 119
6.2 CORE规范解读.. 120
6.2.1 Module Layer 120
6.2.2 LifeCycle Layer 129
6.2.3 Service Layer 132
6.3 OSGI SERVICE规范解读 133
6.3.1 Log Service 134
6.3.2 Http Service 137
6.3.3 Configuration Admin Service 139
6.3.4 Declarative Services 142
6.3.5 Event Admin Service 145
第7章 EQUINOX实现分析 149
7.1 模块化 149
7.1.1 加载并解析jar为Bundle 149
7.1.2 Bundle类共享及类加载机制 152
7.2 动态化 159
第8章 FELIX实现分析 173
8.1 模块化 173
8.1.1 加载并解析jar为Bundle 173
8.1.2 Bundle类共享及类加载机制 174
8.2 动态化 177
第9章 SPRING-DM实现分析 189
9.1 SPRING DYNAMIC MODULE概述 189
9.2 BEAN发布为OSGI服务实现分析 190
9.2.1 Extender Bundle启动 190
9.2.2 Bundle中的NamespaceHandler处理 192
9.2.3 ExtenderConfiguration处理 194
9.2.4 ApplicationContext处理 200
9.3 将OSGI SERVICE引入为BEAN 209
9.3.1 osgi:service的处理 209
9.3.2 osgi:set和osgi:list的处理 211
9.4 将BUNDLE部署到WEB服务器 214
9.4.1 WebExtender的启动 214
9.4.2 部署Bundle到Web服务器 215
第10章 CXF实现分析 217
10.1 APACHE CXF-DOSGI实现分析 217
10.2 SINGLEBUNDLE发行包 217
10.2.1 SingleBundle发行包的启动 218
10.3 把BUNDLE暴露为远程服务 221
10.3.1 DSW Bundle启动 221
10.3.2 RegisterDistributionProviderService 222
10.3.3 创建Hook对象及注册Listener 224
10.3.4 处理当前框架中的Bundle 225
10.3.5 发布远程服务 225
10.4 使用远程服务 231
10.4.1 Discovery Bundle启动 231
10.4.2 处理当前框架中的Bundle 232
10.4.3 注册远程服务的本地存根 234
第11章 先睹为快:OSGI R 4.2草稿版 237
11.1 CORE 238
11.1.1 Module Layer 238
11.1.2 Lifecycle Layer 238
11.1.3 Service Layer 242
11.1.4 Framework API 243
11.2 COMPENDIUM 243
11.2.1 Declarative Services Specification 243
11.2.2 Deployment Admin Specification 244
11.2.3 Monitor Admin Service Specification 247
第12章 OSGI展望 251
12.1 JAVA企业应用领域 251
12.2 JAVA标准领域 252
12.3 OSGI R5 253
索引... 255
前言
Java 7的发布日期临近,模块化是Java 7中最重要的特性之一。在Java语言级对模块化提供支持之前,OSGi已经是业界中最知名的Java模块化规范。OSGi联盟成立于1999年,发展到今天已经得到了众多企业、厂商、开源组织的支持,尤其当主流的Java应用服务器(Oracle的Weblogic、IBM的Websphere及Sun的Glassfish等)都采用OSGi时,OSGi作为Java模块化标准已成为事实。掌握OSGi是实现模块化Java应用的必备技能,在将来甚至会成为Java语言中必须学习的技能之一,就像现在Java中的泛型一样,而动态化也是OSGi的另一特性。OSGi对于动态化的支持能够帮助开发者更好地实现“即插即用”、热部署及“即删即无”的系统。.
本书作为一本早于同类技术英文书而编写的OSGi中文书籍,旨在为希望实现模块化、动态化Java系统的架构师和开发工程师提供OSGi入门知识,同时也为希望深入掌握OSGi的架构师、开发工程师提供OSGi知识的深入讲解。本书内容从OSGi的简介开始,到OSGi框架的使用,再到OSGi规范的掌握,最后到OSGi框架的实现分析,阐述了基于OSGi编写模块化、动态化的Java系统须要掌握的知识体系,希望本书能给读者带来一次愉快的OSGi之旅。..
本书第1章为读者揭开了OSGi的面纱,以帮助读者了解OSGi、其发展历程及掌握OSGi的基本概念。
第2章、第3章、第4章、第5章结合简单例子及经典的PetStore例子对OSGi框架(Equinox、Felix及Spring-DM)的使用进行了介绍,同时介绍了OSGi在B/S、分布式等多种典型场景中的使用方法。
第6章、第7章、第8章、第9章及第10章对OSGi规范进行了详细分析,以帮助读者掌握OSGi的本质,对典型OSGi框架的实现进行了详细的分析,并结合作者的经验对OSGi框架的使用提供了一些实践范例,以帮助读者在实际的项目中更加合理地使用OSGi框架,进而编写模块化、动态化的Java应用系统。
第11章和第12章对OSGi的未来做了一些阐述,包括即将发布的OSGi R 4.2规范,以及根据作者的经验对OSGi的未来做了一些大胆的推测。
本书包含了众多的实例,由于篇幅关系,书中仅列出了代码的片断,如需完整代码,请到http://china.osgiusers.org中下载。
由于本书编写有些仓促,有些知识点来不及纳入书中,这些知识点都会在http://www.blogjava. net/bluedavy上进行发布,感兴趣的读者可以移步到此网站进行更多的阅读。...
序言
推荐序1
大约两年前我收到了BlueDavy发来的一封邮件,询问我能否授权他将bnd手册翻译成中文,他解释说中国有很多人在使用bnd,但是却非常缺乏相关的文档。我非常高兴地为他提供了一个网页,用来发布中文版本。翻译出来的内容看起来很奇怪,一大堆不认识的汉字中夹杂着几个熟悉的英文单词,这种感觉就好像在一个遥远陌生的城市中偶然碰到了你的朋友。现在又有了一本中文版的OSGi书籍。.
1998年我们开始从事OSGi规范的制定时,完全没有预料到会有一本中文版的OSGi书籍面世,而且先于英文版本。当英文版本还在编写时,BlueDavy抢先一步完成了中文版,这太棒了。中国是一个新兴的经济大国,相信很多程序员能够从OSGi中获益。OSGi是事实上的模块化标准,现在主要的Java应用服务器都运行在OSGi上。对于这些巨大的软件而言,模块化已经不是可选选项,而是必须的。很多的领域软件都是基于开源产品而构建的,随着开源项目的不断成功,产品的功能也越来越复杂,就像自然界一样,事物总是在不断发展的,在这样的情况下,大家逐渐意识到模块化已经成为生存的必备条件。
OSGi的目标是组件级的复用,这也是自计算机诞生以来我们行业的梦想。作为OSGi规范的作者之一,我首先承认我们目前还没有找到圣杯,但我坚信OSGi会比其他的规范或产品走得更远。达到这个目标,需要大家的帮助。OSGi规范帮助软件行业创造了数千万美元的价值,反过来,我们也希望大家能够反馈意见到中国用户组,支持、参与中国用户组,当然最好能成为OSGi联盟的成员。采用统一的模块化系统对于将Java提升到一个新的水平而言是非常关键的,为此我们需要大家的帮助。
BlueDavy为翻译OSGi Core英文规范做了大量的工作,虽然我在书中找到了许多熟悉的单词,但我的中文水平还不足以让我阅读其余部分。看起来,这本书是一种我没办法看懂的美好事物。
Peter Kriens
2009年7月于英国博利厄市..
【关于Peter Kriens】
Peter Kriens是OSGi联盟的技术负责人,曾在多家知名公司工作,包括Intel、Ericsson、Motorola、Adobe、IBM和Nokia。
他的blog为:http://www.osgi.org/blog及http://www.aqute.biz/Blog/HomePage。
推荐序2
几年前,关注OSGi的人还很少的时候,林昊就和我讨论如何将OSGi应用在实际工作中。程序员在编写大量代码后,也会遇到复用和模块化的问题。相信每位认真的开发者都有过模块化的尝试,几次之后才会发现最大的挑战并非代码实现,而是来自于模块边界的定义。如何界定模块的边界,需要开发者有大量的经验和对体系的深刻理解。比较JavaBean这种JVM级别的编译式复用,OSGi面对的无疑是更大的挑战,它给我的印象是希望达成健壮的、可以热插拔的、较粗粒度的模块化边界定义方案,幸运的是它成功了。针对这种边界方案的各种实现,几年之后,有了最著名的Equinox和Felix。OSGi也已经成为各大应用服务器的一致选择和实现标准,它成了你的代码与世界的接口。
在这次Java进化的过程中,林昊以技术人员的敏锐和韧性始终保持着对OSGi的持续关注,我相信他不止一次地体会到了兴奋和快乐。最难能可贵的是他希望将这种快乐传递给他人,因此,他以BlueDavy的网名编写了《OSGi实战》和《OSGi进阶》两份Opendoc,很长时间内这是仅有的中文OSGi入门资料,他将很多人带入了OSGi的大门,而这本书的出版,也必将为OSGi在国内的研究和普及掀起一次高潮。
本书是林昊多年研究的心血结晶,非常高兴能看到本书最终定稿出版。值得一提的是,满江红组织在审校范里程翻译的《OSGi R4 规范》中文版的过程中,林昊出任过Leader一职,为OSGi核心文档的翻译贡献了心力。
梅花香自苦寒来,向林昊表示由衷的祝贺。
满江红开放技术研究组织 曹晓钢
2009年7月于上海...
媒体评论
1998年我们开始从事OSGi规范的制定时,完全没有预料到会有一本中文版的OSGi书籍面世,而且先于英文版本……这太棒了……作者为翻译OSGi Core英文规范做了大量的工作,虽然我在书中找到了许多熟悉的单词,但我的中文水平还不足以让我阅读其余部分。看起来,这本书是一种我没办法看懂的美好事物。.
——OSGi联盟的技术负责人Peter Kriens
本书作者之一——林昊编写的Opendoc很长时间内是仅有的中文OSGi入门资料,将很多人带入了OSGi的大门,而这本书的出版,也必将为OSGi在国内的研究和普及掀起一次高潮。...
——满江红开放技术研究组织 曹晓钢