写点什么

OSGi 为业务所带来的好处

  • 2010-12-13
  • 本文字数:1061 字

    阅读完需:约 3 分钟

近日, Paremus 发表博文谈到了 OSGi 为业务所带来的好处,博文就模块化将成为大型代码基管理与维护的未来方向这一观点进行了讨论。报告还就如何迁移到 OSGi 上给出了建议:首先通过自动化构建生成 OSGi 元数据,然后将应用分别迁移到 OSGi 框架上。

很多人认为迁移到 OSGi 上的代价非常大,但通常这里面包含了模块化本身的代价。无论使用的是 OSGi、Jigsaw 还是其他的模块化架构,要想对大型、复杂、纵横交错的库进行模块化都要付出代价,而这种模块化对于维护者来说并没有立竿见影的好处。然而如果不这么做,系统就会随着时间的推移变得更加复杂、更加的纵横交错,维护代价也会增加。这就好像我们要经常对车进行保养来保持良好的车况一样;如果长年不保养,那么发动机大修的费用就会比所有的保养费还要高,甚至会缩短车的使用寿命。

Paremus 给出了如下的迁移计划:

  1. 清除
  2. 成立由模块化专家所构成的小团队,确保得到管理层的支持
  3. 分析现有项目之间的依赖关系,去除不必要或不合适的依赖
  4. 工具与元数据
  5. 评估并使用支持 OSGi 元数据的工具与仓库
  6. 为所有项目生成 OSGi 元数据,以此作为构建过程的一部分(即便没有转向 OSGi)
  7. 运行时
  8. 根据敏捷与重用性为迁移选择候选者
  9. 使用现有库(以此作为粒度级别)创建工作运行时 Bundle
  10. 在 OSGi 与非 OSGi 运行时下进行并发测试
  11. 迭代
  12. 一旦迁移到 OSGi,那么可能还有更多的候选者来对现有库进行模块化
  13. 就共享模块进行报告
  14. 单独迁移随后的应用

成功案例

虽然有博文报道说 MuleSoft 没有成功迁移到 OSGi ,但几个评论家已经证明了 OSGi 无论对应用服务器还是中间件都是很棒的选择。

就像其他很多框架一样,使用 OSGi 并不意味着一定就会成功,它还经常需要在使用上与代码上进行一些变化以便进行迁移。事实上, OSGi 并非万灵丹——但我们不能仅仅因为它不适合于一个项目就说它也不适合于其他项目。人们可能不会使用 OSGi 实现解析 CSV 并将其加载到数据库中这样的单一用途应用,但他也不可能使用 Spring 或其他框架完成这件事(有些人可能会说这种情况下最好使用 Python 或 Perl 而不是 Java)。

OSGi 还是模块化领域中的一个工具,可用于模块化并在模块之间强制施加边界。随着项目规模的不断扩大,强有力的模块化系统所带来的价值已经超越了实现模块化的代价。

查看英文原文: Business Benefits of OSGi

2010-12-13 11:153834
用户头像

发布了 88 篇内容, 共 272.9 次阅读, 收获喜欢 9 次。

关注

评论

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

读书笔记之:如何有效阅读

甜甜的白桃

读书笔记 读书 笔记 6月月更

市场冷空气来袭,SeekTiger如何逆流而上?

股市老人

A16Z : Web3生态全景概览

Dream

Web3.0

读书笔记之:你当象鸟飞往你的山

甜甜的白桃

读书笔记 读书 笔记 6月月更

JVM调优简要思想及简单案例-对象的回收与保留

zarmnosaj

6月月更

Apipost=Postman+Swagger+Mock+流程测试?

Xd

Java 后端 接口测试

【Spring 学习笔记(十三)】Spring AOP 五大通知类型

倔强的牛角

Java spring spring aop 6月月更

如何为 SAP 电商云每个不同的 JavaScript Storefront 分别配置 API endpoint

汪子熙

SAP Hybris commerce 电商云 6月月更

Java Core 「11」AQS-AbstractQueuedSynchronizer

Samson

学习笔记 Java core 6月月更

作为神经搜索生态的开创者,Jina AI 在做什么?

Jina AI

Python 深度学习 开源 云原生 搜索

如何利用 RPA 实现自动化获客?

程序员泥瓦匠

RPA

有爱无碍,科技为他们点亮漫天星光

脑极体

C#入门系列(十九) -- 作用域、生命期和析构函数

陈言必行

C# 6月月更

流数据操作

Damon

6月月更

连续居家办公68天后——我的2022居家办公所感所想| 社区征文

No Silver Bullet

居家办公 6月月更 初夏征文 心得体会

spring4.1.8扩展实战之八:Import注解

程序员欣宸

Java spring Spring Framework 6月月更

字节Pico走“小”路

科技新知

InfoQ 极客传媒 15 周年庆征文|Vim 常用快捷键

耳东@Erdong

vim 运维 快捷键 6月月更 InfoQ极客传媒15周年庆

BOM

Jason199

js BOM 6月月更

☕️Java11 中基于嵌套关系的访问控制优化

看山

Java Java11

leetcode 64. Minimum Path Sum 最小路径和(中等)

okokabcd

LeetCode 动态规划 数据结构与算法

linux常用命令

乌龟哥哥

6月月更

硬核干货:6000字 30张图,带你彻底搞懂BGP动态路由!

wljslmz

BGP 网络技术 动态路由 6月月更

力扣每日一练之数组上篇Day1

京与旧铺

6月月更

学生管理系统的考试试卷存储方案

爱晒太阳的大白

Docker 实用技巧三

Nick

Docker 容器 实用技巧 6月月更 实操

Linux开发_网络编程基础(1)

DS小龙哥

6月月更

DOM核心——Document类型

大熊G

JavaScript 前端 6月月更

微服务稳定性保障

阿泽🧸

微服务 6月月更

【Python技能树共建】with...as... 实战

梦想橡皮擦

Python 6月月更

周末来学集合论

坚果

6月月更

OSGi为业务所带来的好处_Java_Alex Blewitt_InfoQ精选文章