OSGi 理论: 一些认知

简介: 什么是 OSGi 开放式服务网关工作小组 Open Service Gateway Initiative Java动态模块 Enabled greater dynamic modularity in Java 为我们带来的帮助 建立面向服务(SOA in VM)模块化的

什么是 OSGi

开放式服务网关工作小组

Open Service Gateway Initiative

Java动态模块

Enabled greater dynamic modularity in Java

为我们带来的帮助

  • 建立面向服务(SOA in VM)模块化的 Java 应用
  • 帮助我们分离接口和实现
  • 更好的使用基于接口的开发模式,创建模块和管理应用
  • 将要软件要处理的每个具体问题放入分离的逻辑单元
  • 每个逻辑单元具有自已的逻辑边界
  • 逻辑单元保持简单和可维护性(Unix Slang: do one thing well!)

我们以前的几个主要问题

Java 模块化是建立在面向对象的类文件上
  • 并不支持更粗粒度的模块化
  • 其代码级是访问修饰符在于完成很细粒度的面向对象封装,而不是逻辑单元
Java 通过包( package ) 划分代码单元
  • 进行跨包访问Java的类需要将被访问类申明为 public (或protected, 如果是通过类继承的方式)
  • 这样会暴露实现细节破坏封装,会让客户端程序员误用我们的非公共 API
Java VM 通过 Class Path 加载类
  • 缺少代码的版本,类依赖,和一致性的约束 (Returns the first version it finds)
  • 我们无法部署指定版本的依赖和无法演进已部署的组件

OSGi 帮助我们解决了

  • 通过依赖检查,避免在运行期出现 ClassNotFoundException
  • 通过指定版本的依赖,避免在运行期出现错误的类依赖
  • 避免出现由于层次类装载体系出现的 bar instanceof Bar == false
  • 分逻辑单元打包部署 Jar 文件
  • 对包申明访问控制,更好的隐藏实现保护封装
  • 为应用提供强大扩展机制,包括运行期扩展

后续导读

OSGi 理论: 分层
OSGi 理论: 模块元数据 (Bundle's manifest file)
OSGi 实践: 包装 OSGi bundle

目录
相关文章
|
6月前
|
开发者
拥抱不确定性:从混沌理论到高效编程
【4月更文挑战第29天】 在技术领域,我们经常追求确定性与控制。然而,现实是充满不确定性的,而混沌理论提供了一个新的视角来理解并应对这种不确定性。本文探讨了混沌理论在软件开发中的应用,并提出如何通过灵活、适应性强的编程方法来提高效率和质量。通过案例分析,我们将看到如何在看似混乱的开发过程中找到秩序,实现持续改进和创新。
|
Oracle JavaScript Cloud Native
【JVM深层系列】「云原生时代的Java虚拟机」针对于GraalVM的技术知识脉络的重塑和探究
【JVM深层系列】「云原生时代的Java虚拟机」针对于GraalVM的技术知识脉络的重塑和探究
353 1
【JVM深层系列】「云原生时代的Java虚拟机」针对于GraalVM的技术知识脉络的重塑和探究
|
人工智能 算法 机器人
新数学框架“终极算法”理论提出,或让机器诞生意识
台湾中正大学的退休教授Daniel j.Buehrer,最近发表的一篇论文提出一种新的数学框架,如果他的理论是正确的,那么他的数学理论将会创造出一种无所不包的全学习算法。
1579 0
|
新零售 NoSQL Java
概括几种项目类型使用的技术路线
主流架构SSM(Spring+SpringMVC+myBatis--->或SpringBoot+myBatis)统称SSM Struct2:基本没有人使用,除非老项目维护,Struct2以前也是SSM或SSH的一部分,现在早已过时SSH(过去:stru...
3179 0
《面向对象分析与设计》一1.5面向对象方法的发展史及现状简介
本节书摘来自华章出版社《面向对象分析与设计》一书中的第1章,第1.5节,作者 麻志毅,更多章节内容可以访问云栖社区“华章计算机”公众号查看
2118 0
下一篇
无影云桌面