OSGi(Open Service Gateway Initiative)学习总结

OSGi(Open Service Gateway Initiative,直译为“开放服务网关”)实际上是一个由OSGi联盟发起的以Java为技术平台的动态模块化规范。OSGi联盟给出的最新OSGi定义是The Dynamic Module System for Java,即面向Java的动态模块化系统。

把开发中经常遇到的需求进行抽象,将它们统一规范起来作为标准件提供,任何设备都通过预定义好的协议和接口来使用这些标准件,那么构造一个大型程序的主要工作很可能就只是根据需求选择合适的模块,然后再写少量的黏合代码而已。个人计算机的硬件已经到达了工业化阶段,软件业还远不如硬件成熟,但是软件工业化是一股不可逆转的潮流,实现这个目标的第一步就是要制定不同功能模块的标准,以及模块间的黏合及交互方式。Java业界内已经有了很多的技术规范,例如EJB、JTA、JDBC、JMS等,欠缺的是一个组织者或扮演黏合剂的角色,直到Java有了OSGi……

OSGi不只是一门技术,更多的是一种做系统架构的工具和方法论。OSGi规范由数十个子规范组成,包含了上千个不同用途的API接口。OSGi规范显得这样庞杂的主要原因是实现“模块化”本身需要解决的问题就非常多。模块化并不仅仅是把系统拆分成不同的块而已—这是JAR包就能做的事情,真正的模块化必须考虑到模块中类的导出、隐藏、依赖、版本管理、生命周期变化和模块间交互等一系列的问题。模块化推动架构师设计出能在一定范围内自治的代码,可以使开发人员只了解当前模块的知识就能高效编码,也有利于代码出现问题时隔断连锁反应。OSGi的依赖描述和约束能力,强制开发人员必须遵循架构约束,这些让开发人员“不自由”的限制,在系统规模变大后会成为开发效率的强大推动力。

转载地址:https://www.cnblogs.com/garfieldcgf/p/6378443.html

猜你喜欢

转载自blog.csdn.net/u013558123/article/details/89508295