写书评,赢好书《OSGi实战》

<p><code>OSGi中文社区</code>携手<code>图灵教育</code>给粉丝们送福利来啦!OSGi经典好书《OSGi实战》电子版放送给大家啦~</p> <p>只要你: 关注<a href="http://e.weibo.com/osgicn">“OSGi中文社区”</a> 和 <a href="http://e.weibo.com/turingbooks">“图灵教育”</a> 的微博;试读《OSGi实战》前三章,并且在此页面留言写下书评或者读后感。 就有机会获得价值49.99元的《OSGi实战》一本。机会难得,速速来抢吧~</p>


《<mark>OSGI</mark>实战》:第2章 精通模块化(一)

第二章来袭!前一章走马观花地浏览了OSGi的全貌。我们注意到标准Java在模块化方面有许多不完善的地方,并举例说明了OSGi的用途。还介绍了一些OSGi概念,包括OSGi框架的核心层次:模块层、生命周期层和服务层。本章将专门介绍模块层,因为大多数Java开发者最初是被模块层的功能吸引才使用OSGi的。本章分两部分发布,第二部分敬请关注!


《OSGI实战》:序言与前言

《OSGi实战》作者既来自开发一线,又参与了OSGi规范的制定,这就保障了全书内容的权威性。《OSGi实战》全书历时两年多方才完成,凝聚了作者们多年来的宝贵经验和辛勤汗水。内容分三部分,涵盖OSGi核心规范解读、OSGi规范的实际应用及相关高级主题,系统、全面、深入地阐述OSGi的重要特性,揭示了大量鲜为人知的技术细节。先来看看序言和前言吧,后续几章我们将会陆续发布,敬请期待!


《OSGI实战》:第二章 精通模块化( 二)

本节将阐述OSGi如何解析bundle的包依赖,确保bundle间的包一致性。学习完本节,你会清楚地了解OSGi框架是如何使用bundle模块化元数据的。本节涵盖了一些更复杂的OSGi规范的细节。但如果了解了OSGi规范背后的实现细节。对定义bundle元数据是很有帮助的。此外,当你调试基于OSGi的应用程序,这些信息是十分有用的。让我们开始吧。


《OSGI实战》:第一章 揭开OSGi的面纱

《OSGI实战》第一章来了!这一章将讲述Java对模块化的内置支持, 介绍OSGi技术及其如何增强Java的模块化,阐述 与其他技术相比OSGi的定位。 在Java的成功之下,除了支持普通的面向对象的数据封装之外,却并没有明确地支持构建模块化系统。理解OSGi的由来和初衷,这一章是非常好的学习资料!


《OSGI实战》:第三章 生命周期(一)

在接下来的章节中,我们将更进一步地了解什么是生命周期管理以及为何要关注它,随后介绍OSGi bundle生命周期的定义。在后续几节里你将学到管理bundle生命周期的API。本章将借助一个简单的OSGi shell示例以及一个拥有生命周期的绘图程序版本,帮助读者掌握所有知识。


《OSGI实战》:第三章 生命周期(二)

到目前为止,我们并没有为shell实现太多的功能——只是创建了激活器并执行了关闭和启动操作。在本节中,我们将向读者展示如何实现更多的功能。通过一个简单的命令模式提供可执行的操作,你可以交互式地安装、启动、停止、更新以及卸载bundle。我们甚至还将为shell增加永久的历史记录,记录过去执行的命令。


《OSGI实战》:第三章 生命周期(三)

在OSGi中,生命周期层与模块层之间存在一种双向关系。生命周期层会对安装到框架之中的bundle进行管理,显然这会影响到模块层对bundle依赖的解析。模块层使用bundle元数据,确保bundle在被使用前它的所有所依赖都已满足。使用bundle时,模块层与生命周期层之间的这种共生关系,会产生一种类似先有鸡还是先有蛋的情景。


OSGI进阶:序

此篇文档适合具备OSGi基础概念或已阅读《OSGi实战》的读者 阅读,尤其是希望将 OSGi应用至实际的商业项目/产品的读者。 阅读此篇 Opendoc 的读者应具备以下知识: 如何在 Eclipse 中搭建 OSGi 应用开发环境; 如何部署 OSGi 应用; 对于 OSGi 应用开发有大致的了解(如 DS 怎么使用)。


OSGI进阶:第二章 基于 OSGi 的留言板

此留言板主要为展示基于 OSGi 的 B/S 系统的通用设计和实现方法,因此功能方面只是一些基础功能的需求: 分页浏览留言 进入留言板的首页时,以每页 20 条的列表的方式列出系统中所有的留言,并提供下一页、上一页、首页和末页的链接导航; 留言列表按留言时间顺序显示,新的留言显示在前; 每条留言显示的内容分别为:留言内容、留言人和留言时间。


OSGI进阶:第三章 与流行的 Java B/S 体系架构进行集成(一)

在看完了上面的章节后,大家可能会想:OK,OSGi 是还不错,也大概知道了怎么样基于它去设计实际的项目,但对于 Java B/S 系统而言,OSGi 怎么和目前流行的体系架构集成呢,这恐怕是大部分读者为关注的问题。如果能解决这个问题的话,我想大部分人都会考虑在新的项目/产品中去使用 OSGi,毕竟 OSGi 带来的好处是非常明显的,在 本章节中,将和大家来一起搭建一个基于OSGi的Hibernate+Spring+Webwork的脚手架。


OSGI进阶:第三章 与流行的 Java B/S 体系架构进行集成(二)

要集成 Webwork,要解决的问题和与 Hibernate 的集成基本类似,集中在如下三个方面: Webwork 要求所有的 Action 配置文件都需要在其统一的 xwork.xml 做 include 配置,而基于 OSGi 后需要达到的目标是:各模块维护自己的 xwork.xml,以某种方式绑定到 webwork 上去


OSGI进阶:第四章 基于OSGi搭建分布式系统

OSGi 规范是基于同一 VM 而设计的,因此并无对于分布式通讯的支持,分布式的通讯有很多种实现方法,如采用 RMI、基于 MQ、SOA 等方式,SOA 无疑是目前分布式领域中为流行的架构体系,在本章节中就以一个实例来分析基于 OSGi 如何搭建一个实现像 SOA 这样的脚手架。


OSGI进阶:第五章 将原系统重构为基于OSGi的系统

在看完以上的章节后,希望能让大家在新的项目/产品无所顾忌的使用 OSGi,但对于已存在的项目/产品而言,怎么办呢,因为像产品而言的话,通常都是经历过一段很长时间的发展的,不可能抛弃以前所有的努力,因此还得有将原系统重构为基于 OSGi 的系统的方法。 在这个章节中将把一个传统的基于hibernate+spring+webwork搭建的留言板系统重构为可部署至OSGi框架中的系统,重构时的原则是尽量不去修改原代码,基于BND(Bundle Tool) 直接创建符合OSGi规范的Bundle进行部署,从而实现重构。


OSGI进阶:第六章 OSGi的设计模式

所谓树状设计模式就是以树的方式来设计整个系统,由于 OSGi 在模块的规范化、动态性、扩展性上的良好的支持,使得以树的方式来设计整个系统变得可行。 在设计留言板系统时我们已经展示了如何以树状的方式来进行设计,树状设计模式强调系统像树一样慢慢的长大,在设计时涉及的元素主要是根、枝、叶三要素。</br> 面向服务本身已经是如今为红火的名词之一,而由于 OSGi 本身重要的设计思想就是面向服务的组件模型,因此基于 OSGi 而构建的系统自然就应该是面向服务式的。


OSGI进阶:第七章 OSGi 最佳实践

当接口和实现均处于同一个 Bundle 时,容易出现的问题就是如果要切换提供的 OSGi 服务的实现的话,就有些麻烦了,只能在调用该 OSGi 服务的组件中指定引用的服务的 target 来实现了,但如果接口和实现分离为不同的 Bundle 的话,对于提供的单一的 OSGi 服务(就是系统中只存在一个对于此 OSGi 服务的实现的组件)的切换就很方便了,对于存在多个实现同一 OSGi 服务的组件的情况也一样,在那种情况下尽管引用该 OSGi 服务的组件基本都会通过 target 过滤来获取自己想要的服务,但如果接口和 实现在同一个 Bundle 的话,就必须保证新的实现的 Bundle 中的 OSGi 服务的 target 属性必须采用不同的值,而不能使用同一个值。


OSGi大牛作客社区,敬请关注~

OSGi中文社区邀请 Tim Ward 和 Jeff Liu 作客北大,将于2014年4月25日晚为大家带来精彩演讲,参与的童鞋们将会有机会与 OSGi 顶级专家进行深入交流,把握住这次绝佳的机遇,把准备好的问题抛给他们吧,让我们共同期待大牛们的精彩解答吧!