写点什么

《OSGi 原理与最佳实践》书评

2009 年 10 月 19 日

这不是一本传授 OSGi 高级技巧的书,但绝对是一本让人读完之后能对 OSGi 获得全面认识的书。不同于前两篇 opensource 文档,作者在这本书里面试图给读者一个全方位的 OSGi 介绍。

在第一章“OSGi 简介”里面,作者解释了 OSGi 解决的问题以及其中涉及的一些基本概念。Java 里面并没有提供模块的概念,也不存在通用的插件体系结构。在这种情况下,OSGi 应运而生,其主要职责就是:

让开发者能够构建动态化、模块化的 Java 系统,使用 OSGi 后,应用就可以像搭积木一样的来完成搭建

为了便于后面章节的介绍,作者在这一章里面对 OSGi 的基本概念和名词做了一番简单地解释。

接下来的几章(从第二章到第十章),作者主要从如下几个部分进行阐述:

  • OSGi 框架应用示例
  • OSGi 规范解读
  • OSGi 框架实现分析

在“OSGi 框架应用示例”部分,作者结合 eclipse,对如何使用各种不同的 OSGi 框架一一做了细致入微的说明,花了不少篇幅讲解 OSGi 框架的设计思想。如何才能使用 OSGi 框架提供的模块化和动态性,在设计系统的时候就需要考虑如下几点:

  • 模块化的设计
  • 面向服务的组件模型的设计
  • 动态化的设计
  • 可扩张的设计

为了说明这些设计思想,作者使用 Spring-DM 实现了经典的 JEE 示例项目——petstore,并按数据库设计-> 模块分析 -> 模块设计的过程展现了一个使用 OSGi 构建新系统的完整过程。

在第四章,考虑到分布式应用系统的需求,作者对 Distribute OSGi 也做了一番介绍,并通过几个例子解释了 DOSGi 的推荐实现 Apache CXF。

Apache CXF 通过 Web service 的方式实现了分布式 OSGi 的请求调用,并且是通过 WSDL 对外暴露了 Web Service。

第五章介绍了 OBR 的使用背景,作者就 Apache Felix 提供的 OBR 实现进行了介绍。

在“OSGi 规范解读”部分,作者回顾了 OSGi 规范的发展历程,就最新的 V4.1 规范详细地探讨了细节问题:

OSGi 规范从 4.0 以后明确的分为 Core 和 Service 两部分组成,其中 Core 是保证 OSGi 能够做到模块化、动态化的规范,也是 OSGi 框架必须实现的,而 Service 则是可选的,其用于扩展提供一些常用的功能,以方便开发人员进行使用,例如 Http Service、Log Service

在讨论过程中,作者详尽解释了 classloader 的继承体系结构。

在接下来的“OSGi 框架实现分析”部分,作者针对已有的 OSGi 框架——Equinox、Felix、Spring-DM 和 CXF,分别按照下面的思路做了解释:

  • 模块化
    • 加载并解析 Jar 为 Bundle
    • Bundle 类共享以及类加载机制
  • 动态化

在介绍这些理论实践的同时,作者在第十一章和第十二章对 OSGi 的近况和前景也做了分析,介绍了 OSGi V4.2 草案激动人心的特性,以及 OSGi 的改进前景。

随着这几年 OSGi 的迅猛发展,国内开发人员对 OSGi 的热情也是与日俱增,但与此相背离的却是现实中还没有出版一本介绍 OSGi 的书籍,遑论全面讲解 OSGi 原理和实践的书了。这本书很好地填补了这个空缺。

InfoQ 中文站亦推出了《OSGi 原理与最佳实践》的精选版,欢迎大家免费下载

2009 年 10 月 19 日 03:181604
用户头像

发布了 76 篇内容, 共 18.2 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

(28DW-S8-Day4) 区块链里面2个核心问题

mtfelix

28天写作

效率工具分享-Quicker

十天、

效率 效率工具 工具 工具软件

设计模式之代理模式

Geek_7cf491

Java 设计模式 代理模式

圈子创业

张老蔫

28天写作

索引失效的场景

new life

MySQL 索引性能

2021MWC上海召开丨5G与千行百业“和合共生”

浪潮云

云计算

第十三周命题作业

cc

用例画成流程图 - 第四章,第三讲总结

mas

以AI之名 | 给千万级合同管理安上“AI”,华为商务经理工作量大解放!

华为云开发者社区

人工智能 华为 合同 商务 合同管理

设计模式【2.2】-- 工厂模式怎么演变成抽象工厂模式?

秦怀杂货店

设计模式 工厂模式 23种设计模式 工厂方法模式

Python入门-位运算

123568

Python 入门 位运算

得不到的永远在骚动——蔡格尼克效应

Justin

心理学 习惯养成 28天写作 游戏设计

jupyter在加载pkl文件时报错ModuleNotFoundError: No module named 'pandas.core.internals.managers'; '的解决方法

无极限

Python Jupyter Notebook jupyter

日记 2021年2月24日(周三)

Changing Lin

2月春节不断更

浅谈Python中遇到extend和append,该怎么区别使用

莫陌默

Python 列表 函数

程序员的职业生涯与赛道选择

刘旭东

职业规划 码农 职业生涯

电商平台:收货地址

worry

电商平台

孩子应该什么时候上什么兴趣班

Ian哥

28天写作

第十三周学习心得

cc

工作中当你感觉焦虑的时候,该怎么办?

一笑

28天写作

修改OpenCV一行代码,提升14%图像匹配效果

Smile

机器学习 OpenCV Python Turtle 图像处理

windows10+python3.8.0(anaconda)+MeCab安装总结

lauqasim

Python Mecab 日文分词

容器 & 服务:Docker应用的Jenkins构建

程序员架构进阶

Docker 容器化 七日更 28天写作 2月春节不断更

华云·云场景应用详解|安超DCM给数据中心“做主”

华云数据

Elasticsearch入门,这一篇就够了

知南茶温暖

现在与以前的你相遇在此刻,让二种不同的风格,创造未来你自己的手艺吧。

叶小鍵

几个小实践带你快速上手MindSpore

华为云开发者社区

华为 AI mindspore 智慧终端 端边云

关于MVCC,我之前写错了,这次我改好了!

艾小仙

Java MySQL 数据库 面试 MVCC

Kafka.06 - 数据持久化介绍

insight

kafka 2月春节不断更

保持前进

Nydia

将上周写的用例画成流程图-第四章,第三讲

mas

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

《OSGi原理与最佳实践》书评-InfoQ