OSGi与Equinox:创建高度模块化的Java系统.pdf

OSGi与Equinox:创建高度模块化的Java系统.pdf
 

书籍描述

编辑推荐
特色如下:

结合了详尽的实践教程、每一步骤的在线示例代码,以及深入的技术要领;
涵盖了OSGi编程模型、组件开发、OSGi服务、Eclipse bundle工具、服务器端Equinox和更多内容;
针对模块化系统构建的复杂性提供了理论、向导和最佳实践;
解决了从整合第三方代码库到服务器端编程的各种现实问题;
包含了一个综合的案例,从原型开始,通过不断重构最终交付了一个完全精炼的产品级系统。

无论你的应用、行业或问题属于何种范畴,只要你希望基于OSGi和Equinox技术构建顶级的软件系统,你就会发现本书是必备的精华资源

作者简介
Jeff McAffer Eclipse平台架构师,Eclipse RCP与Equinox OSGI两个项目的联合领导人,EclipseSource.com的联合创始人。除此之外,他还领导着RT PMC,并且还是Eclipse Project PMC、Eclipse架构委员会,以及Eclipse基金会董事会的成员。Jeff对Eclipse组件方面的各种进展都十分关心。除本书外,他还和别人合著了The Eclipse Rich Client Platform一书。

Paul Vanderlei 具有超过25年的软件开发经验,着重于面向对象设计和敏捷实践。在IBM时,与他人共同创建了内嵌式Java技术支持团队,针对汽车行业与医疗行业,提供内嵌式Java应用与用户界面的解决方案。他在商业应用上运用OSGi技术已有10余年的历史。

Simon Archer 具有超过16年的软件工程经验,着重于面向对象设计、敏捷实践和软件质量。2000年在OTI时,Simon开始在远程通信和RFID等领域使用并教授OSGi技术。现在致力于IBM Rational软件的研发,使用OSGi为Jazz Foundation工程构建协同的开发工具。

目录
第一部分简介
第1章OSGi、Equinox和Eclipse
1.1简史
1.2合作
1.3实战的模块性和自由性
1.4平台
1.5生态系统
1.6OSGi的来龙去脉
1.6.1Java的谎言
1.6.2现状核实
1.6.3OSGi的寿命
1.7实践中的OSGi和Equinox
1.8总结
第2章OSGi基本概念
2.1bundle环境
2.2为何选择OSGi
2.3bundle剖析
2.4模块化
2.4.1导出包
2.4.2导入包
2.4.3需要的bundle
2.4.4强化模块化特性
2.5模块化设计概念
2.6生命周期
2.7协作
2.7.1服务
2.7.2扩展和扩展点
2.8OSGi框架
2.9安全性
2.10OSGi框架实现
2.11总结
第二部分OSGi示例
第3章教程介绍
3.1何为Toast
3.2Toast的演变
3.3开发环境安装
3.4示例代码
3.4.1在章与章之间切换
3.4.2比较
3.5目标平台设置
3.5.1预定义的目标
3.5.2定义目标平台
3.6通过示例进行学习
3.7总结
第4章你好,Toast
4.1简单的场景
4.1.1创建工程
4.1.2Gps
4.1.3Airbag和IAirbagListener
4.1.4EmergencyMonitor
4.1.5Main
4.1.6运行
4.1.7检查点
4.2将Toast划分为Bundle
4.2.1GPSbundle
4.2.2安全气囊bundle
4.2.3紧急情况监视器bundle
4.2.4启动
4.3总结
第5章服务
5.1转移到服务
5.2注册GPS服务
5.3注册安全气囊服务
5.4获取服务示例代码
5.5启动
5.6故障排解
5.7总结
第6章动态服务
6.1动态服务简介
6.2使用服务追踪器
6.2.1修改bundle激活器
6.2.2启动
6.2.3服务追踪器小结
6.3使用服务激活器工具包
6.3.1在目标平台上安装SAT
6.3.2修改GPSbundle激活器
6.3.3修改安全气囊bundle激活器
6.3.4修改紧急情况监视器bundle激活器
6.3.5启动
6.3.6SAT小结
6.4使用声明式服务
6.4.1修改GPSbundle
6.4.2修改安全气囊bundle
6.4.3修改紧急情况监视器bundle
6.4.4运行
6.4.5声明式服务总结
6.5总结
第7章客户端/服务器端交互
7.1后台
7.1.1核心bundle
7.1.2后台应急bundle
7.2客户端
7.2.1信道bundle
7.2.2紧急情况监视器bundle
7.3工具类
7.3.1常量
7.3.2属性
7.3.3日志
7.4运行Toast
7.4.1运行后台
7.4.2运行客户端
7.5总结
第8章测试
8.1使Toast具备可测试性
8.2对Toast进行单元测试
8.2.1测试方案
8.2.2编写测试用例
8.2.3运行单元测试
8.3系统测试Toast
8.3.1测试规划
8.3.2创建测试工具
8.3.3编写测试用例
8.3.4运行系统测试
8.4总结
第9章打包
9.1定义Toast产品
9.1.1创建产品配置
9.1.2概述页
9.1.3依赖页
9.1.4配置页
9.1.5启动页
9.1.6运行产品
9.1.7产品化客户端
9.2导出Toast
9.3为其他平台打包
9.4认真考虑组件定义
9.4.1版本和版本范围
9.4.2导出包和友元
9.5总结
第10章插件化服务
10.1分离接口与接口的实现
10.1.1将FakeAirbag与其接口相互分离
10.1.2将模拟GPS与其接口相分离
10.1.3回归测试
10.2设备模拟
10.2.1概念
10.2.2设备模拟器框架
10.3作为插件式服务的模拟设备
10.3.1模拟安全气囊
10.3.2模拟GPS
10.4运行模拟设备
10.5总结
第11章可扩展的用户界面
11.1Crust
11.1.1Crustshell
11.1.2Crust工具
11.2紧急情况处理
11.2.1创建可插拔的用户界面
11.2.2重构紧急情况处理业务逻辑
11.2.3紧急情况处理用户界面
11.2.4运行用户界面
11.3车载气候系统和音响系统
11.3.1车载气候系统与音响设备
11.3.2空调和音响屏幕
11.3.3运行用户界面
11.4OSGi应用模型
11.5导航和地图
11.5.1谷歌地球集成
11.5.2地图支持
11.5.3应用可扩展性和导航支持
11.5.4运行用户界面
11.6总结
第12章动态配置
12.1跟踪场景
12.2安装跟踪代码
12.2.1CoreTrackingBundle
12.2.2后台跟踪bundle
12.2.3客户端跟踪bundle
12.3运行基本的跟踪场景
12.4配置
12.4.1OSGi的管理控制
12.4.2客户端跟踪bundle
12.4.3运行可配置的Toast
12.4.4具备持久化配置的运行
12.5总结
第13章Web门户
13.1门户
13.2PortalServlet
13.3使用服务进行操作查询
13.4声明门户操作
13.5白板模式的利与弊
13.6总结
第14章使用p2进行系统开发
14.1Equinoxp2简介
14.1.1架构
14.1.2p2元数据——可安装的单元
14.1.3组件
14.1.4仓库
14.1.5模式
14.1.6指挥者
14.1.7引擎
14.2细化Toast结构
14.2.1使用特性定义产品
14.2.2后台特性
14.2.3客户端特性
14.2.4重构小结
14.3编写一个配置器
14.3.1配置器
14.3.2配置后台
14.3.3后台小结
14.4增加一个Web部署页面
14.4.1创建动作
14.4.2管理动作
14.4.3安装卸载动作
14.4.4安装配置UI
14.5导出、运行以及配置
14.5.1引入一个p2仓库
14.5.2运行Toast后台
14.5.3创建并配置汽车
14.6客户端动态部署
14.7总结
第三部分进阶篇
第15章声明式服务
15.1声明式服务模型
15.2常见场景
15.2.1最简单的组件
15.2.2引用服务
15.2.3提供服务
15.2.4引用和提供服务
15.2.5立刻激活组件
15.2.6白板模式
15.2.7工厂组件
15.3启动和调试DS应用
15.4PDE工具
15.5总结
第16章扩展
16.1扩展注册
16.2扩展点
16.3扩展
16.4高级扩展主题
16.4.1扩展ID
16.4.2命名扩展和匿名扩展
16.4.3扩展工厂
16.5扩展注册机制的生命周期
16.6动态扩展的应用场景
16.6.1场景一:没有缓存
16.6.2场景二:缓存扩展
16.6.3场景三:缓存对象
16.7服务与扩展
16.8扩展注册的神话
16.9总结
第17章日志
17.1日志服务规范
17.1.1日志级别
17.1.2记录日志
17.1.3读取日志
17.1.4监听日志
17.2在Toast中使用LogService
17.3使用LogReaderService
17.4Toast的LogUtility类
17.5Equinox的LogService实现
17.6总结
第18章HTTP支持
18.1HttpService
18.2注册和注销Servlet
18.3声明式HTTP内容注册
18.4使用Jetty
18.5HTTP上下文和JAAS集成
18.5.1基于HTTP的认证和登录
18.5.2运行具备安全机制的客户端
18.6疑难解答
18.6.1BindException
18.6.2HttpService在监听哪个端口
18.7总结
第19章服务器端
19.1服务器端和OSGi
19.2在Web应用中嵌入Toast后台系统
19.2.1更新产品
19.2.2Web应用的Root文件
19.2.3构建Web应用
19.2.4运行Web应用
19.2.5疑难解答
19.2.6 参数说明
19.3OSGi中的远程服务
19.3.1Eclipse通信框架
19.3.2远程服务
19.3.3分布式Toast
19.3.4远程服务主机
19.3.5远程服务客户端
19.3.6服务发现
19.3.7运行分布式系统
19.4总结
第20章发布工程
20.1什么是PDE构建
20.2build.propertiesbundle
20.2.1控制属性
20.2.2使用自定义构建脚本
20.3创建构建器
20.3.1调整PDE构建的目标
20.3.2build.properties
20.4运行构建器
20.5调整构建
20.5.1自定义构建脚本
20.5.2仓库和附加依赖项
20.5.3从SCM(软件配置管理)系统中提取内容
20.5.4获取map文件
20.5.5自动替换版本号
20.5.6设定版本号
20.5.7定位和放置根目录文件
20.6构建附加特征
20.6.1创建特征构建器
20.6.2build.properties
20.6.3运行特征构建
20.7构建WAR包
20.8总结
……
第四部分参考篇

文摘
版权页:



在运行时系统中,框架会以系统Bundle(SystemBundle)的形式存在。OSGi框架以bundle的方式展现,使得我们可以将整体平台统一视为由一系列相互协作的bundle构成的集合。而系统Bundle比较特殊,它包含一个manifest以及导出包,提供并消费服务,同时与其他bundle—样广播并收听事件。
系统Bundle不同于其他的bundle,无法管理它自身的生命周期。它会随着框架启动而自动启动,除非框架停止,否则它会一直处于激活状态。停止系统Bundle会导致框架也随之停止。同样道理,系统Bundle在运行时也不能被卸载,否则会导致框架停止运行。
OSGi系统中的其他bundle会被安装到框架中,随后按需启动。框架中已经安装的bundle集合会一直被保存——当框架停止或重启时,同样的bundle会在新的框架中启动。由此看来,安装并启动bundle只需要完成一次。
有趣的是,框架规范并未说明框架本身如何启动,或者如何安装初始化的bundle集合。按照常理,应该存在一个外部的代理,由它负责bundle的安装、卸载、启动和停止。这个代理可以是一个中央服务提供者、系统整合者、配置代理或者终端用户。如果采用这种处理方式,则将会产生强大的功能,相当于使框架能够适用于更多场景之中。
框架同样提供一些基础的数据管理功能。每一个bundle都有一个属于自己的数据区域,可以根据具体需要使用。只要bundle安装于框架中,写入该区域的数据将会一直保存。

内容简介
  《OSGi与Equinox:创建高度模块化的Java系统》分为四个部分。第一部分主要介绍了OSGi和Equinox,以及OSGi标准的Eclipse实现;第二部分采用非正式教程的方式教给读者如何从零开始构建真实的Toast应用,针对每一个步骤都提供了完整的在线示例代码;第三部分由原型构建转向实际的产品开发,主要介绍了OSGi和Equinox中用来构建成熟的OSGi应用必不可少的API——服务器端、声明式服务和发布工程,以及如何用它们来解决实践中的一些问题;第四部分呈现了动态性的最佳实践、整合代码库等主题以及一些OSGi和Equinox难题,帮助读者全面理解如何创建高度模块化系统。
  《OSGi与Equinox:创建高度模块化的Java系统》适合有Java编程基础以及对OSGi技术有兴趣的开发人员阅读。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多