深入理解OSGi:前言

随着软件规模的日益增大,程序按模块拆分、按模块开发和按模块部署等需求变得越来越迫切,“模块化”成为了Java社区中最热门的话题之一。而OSGi技术—Java业界事实上的模块化标准,也被越来越多的中间件、第三方类库和各类应用程序所认可和采用。


深入理解OSGI:第一章 Java模块化之路

Java可能是近20年来最成功的开发技术,因其具备通用性、高效性、平台移植性和安全性而成为不同硬件平台理想的开发工具。从笔记本电脑到数据中心,从游戏控制台到科学超级计算机,从手机到互联网,Java技术无处不在。


深入理解<mark>OSGI</mark>:第二章 模块层规范与原理(1)

在OSGi系统中,同一个名称的Package可能存在多个不同版本。假设Bundle C开发时引入了Spring 2.0版的Package,并且使用了某些只在这个版本私有的特征,而Bundle D开发时使用的是Spring 3.0版的Package,那么从这个系统中导出Spring的Bundle就必须明确指明Spring的版本号,以便导入时区分。


深入理解OSGI:第三章 生命周期层规范与原理(1)

OSGi规范把模块化“静态”的一面,比如如何描述元数据、如何加载模块中的类和资源等内容定义于模块层规范之中;而把模块化“动态”的一面,比如模块从安装到解析、启动、停止、更新、卸载的过程,以及在这些过程中的事件监听和上下文支持环境等定义于生命周期层(Life Cycle Layer)之中。在第2章介绍了模块层相关知识后,这里再从OSGi运行时的角度去看一下模块化“动态”的相关知识。


深入理解OSGI:第三章 生命周期层规范与原理(2)

开发人员可以使用代码来启动、停止某些Bundle,用户也可以在Equinox控制台中完成这项工作。但是从OSGi系统整体来看,各个模块的启动和停止顺序不应当由代码或人工完成,尤其是在Bundle数量很多时,OSGi框架提供一种全局的控制Bundle启动、停止的方案就显得更有必要了。


深入理解OSGI:第二章 模块层规范与原理(2)

OSGi的类加载架构并未遵循Java所推荐的双亲委派模型(Parents Delegation Model),它的类加载器通过严谨定义的规则从Bundle的一个子集中加载类。除了Fragment Bundle外,每一个被正确解析的Bundle都有一个独立的类加载器支持,这些类加载器之间互相协作形成了一个类加载的代理网络架构,


《<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的由来和初衷,这一章是非常好的学习资料!


最受欢迎的文章

最新评论