`
mochow
  • 浏览: 286072 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

OSGi笔记(2)

阅读更多
最近很忙,虽然也不知道忙些啥,但总也抽不出时间来看OSGi,但看过的总还要总结总结才有收获啊。

最近主要是大致了解了OSGi的动态和安全。

所谓动态,说白了就是所有的更改都是在保证JVM不重起的情况下进行的。这其中涉及到对应用程序和组件的生命周期管理,先说说管理的对象吧。大而言之就是应用程序和组件,具体到OSGi的概念体系中,称为bundle,bundle从物理上来讲,就是java语言里的jar包,它完全和普通的zip文件兼容。

具体而言对bundle生命周期的处理包括了如下几种:
  1. <!----> <!---->安装bundleBundle必须是那些准备好的,不同的安装在OSGi框架中的组件,以便可以被执行。
  2. <!----> <!---->起停bundle。安装在OSGi框架中的bundle可以被启动和停止。启动一个bundle可以获取特定的资源,停止bundle则清理特定的资源。在一个OSGi服务平台中,所有的应用都在同一个JVM里运行,因此也共享存储内存,资源和CPU周期。<o:p></o:p>
  3. <!----> <!---->更新bundleOSGi框架先停止已经存在的应用程序,在这之后,资源被清理了。代码被卸载,并被新的代码所代替。代码更新后,重起bundle,这些都不需要重起JVM<o:p></o:p>
  4. <!----> <!---->卸载bundle。在bundle生命结束之时,从系统里删除掉代码和相应的资源。<o:p></o:p>

OSGi提供了一个比普通java程序更安全的系统。
一般的java程序有三层安全防御措施:
  1. JVM自己的安全机制
  2. java语言的安全特性
  3. 基于安全的java2代码,这个就是指java代码的package路径访问(这条可选)
OSGi框架则在这三条的基础之上,又多了一层安全防御措施:
         OSGi框架将各个bundle严格的分离开来,在OSGi服务平台上,bundle需要允许还能与其他的bundle取得联系。

而OSGi实现动态安全的关键就是classloader的管理,java由于对代码进行了package路径的管理,使得代码更好维护了。OSGi则从更基本的classloader入手,利用classloader实现动态和安全的目的,并有效的对classloader进行了组织和管理。

下一步的重点就是了解OSGi中的classloader是怎样的。
分享到:
评论

相关推荐

    osgi学习笔记(一)

    OSGi(Open Services Gateway Initiative)学习笔记(一) 在IT领域,OSGi是一种模块化系统和Java服务平台,它提供了一种动态管理软件组件的能力。本文将深入探讨OSGi的基本概念、架构以及如何使用它来构建可扩展和...

    osgi学习笔记(二)

    在本篇“osgi学习笔记(二)”中,我们将深入探讨OSGi(Open Services Gateway Initiative)框架的核心概念、工作原理以及如何在实际项目中应用它。OSGi是一种Java模块化系统,它允许开发人员创建可独立更新和依赖...

    OSGI学习笔记.doc

    2. **服务注册**:OSGI提供了一个服务注册表(Service Registry),允许bundle将服务发布并供其他bundle使用。服务注册表基于接口,允许bundle按需查找和使用服务,实现服务的动态发现和依赖注入。 3. **模型管理**...

    osgi学习笔记(三)

    在本篇OSGi学习笔记中,我们将深入探讨OSGi(Open Service Gateway Initiative)这一模块化系统,特别是关于服务方面的知识。OSGi是一个Java平台上的动态模块化系统,它允许开发者创建可热部署、互相依赖的模块,...

    Linux下OSGi框架实现笔记

    ### Linux 下 OSGi 框架实现笔记 #### 一、Linux 环境配置与准备 在开始实现 Linux 下的 OSGi 框架之前,首先需要确保已经正确配置了 Linux 的开发环境。 ##### 1. Linux 开发环境配置 **定义**:Linux 是一个...

    osgi实战读书笔记

    ### OSGi实战读书笔记知识点总结 #### 一、Bundle的类型及特点 - **RequireBundles**: 使用了`Require-Bundle`头字段的Bundle能够访问该依赖Bundle中所有的资源文件和导出的包。这意味着如果一个Bundle声明了对另...

    OSGi原理与最佳实践 学习笔记 一

    OSGi(Open Service Gateway Initiative)是一个基于Java语言的服务规范,旨在提供一个开放的服务平台,它允许多种设备通过网关来提供各种服务。OSGi Alliance是一个开放标准化组织,由多家公司共同创立,目的是为...

    SpringDM笔记28-Spring And OSGi:Layers of Integration

    2. **Spring与OSGi的关系**:Spring框架如何适应OSGi环境,可能讲解了Spring的模块化设计如何与OSGi的模块化理念相吻合。 3. **SpringDM(Spring Dynamic Modules)**:SpringDM是Spring框架与OSGi集成的早期解决...

    『原创』OSGI研究笔记1 - Equinox ServletBridge模式下调用Datasource

    标题中的“OSGI研究笔记1 - Equinox ServletBridge模式下调用Datasource”表明了这篇文章将探讨如何在OSGI(Open Service Gateway Initiative)环境下,利用Equinox的ServletBridge模块来访问和使用DataSource。OSGI...

    OSGi入门笔记

    2. **协作机制**:J2EE应用之间的协作主要通过接口和API实现,而OSGi允许bundle之间通过共享Java包、发布或引用服务进行交互。这意味着OSGi提供了更灵活的组件间通信方式。 3. **部署模型**:J2EE支持将多个WAR文件...

    osgi karaf笔记

    在深入探讨OSGi Karaf的知识点之前,我们先简要了解一下Karaf与OSGi的基本概念。OSGi(Open Service Gateway Initiative)是一种Java平台上的模块化系统和应用编程框架,用于构建可动态部署、管理和更新的模块化应用...

    SpringDM笔记31-Testing with OSGi and SpringDM

    2. **SpringDM原理**:SpringDM是Spring Framework的一个扩展,它允许开发者在OSGi环境中使用熟悉的Spring配置方式来管理和配置服务。它提供了基于XML或注解的配置模型,使得开发者可以在OSGi容器中声明依赖关系和...

    读书笔记:OSGI 实战 整合Maven 测试代码 .zip

    读书笔记:OSGI 实战 整合Maven 测试代码

    SpringDM笔记13-OSGi服务注册与引用

    本篇笔记将探讨如何在OSGi环境中注册服务以及如何引用这些服务,同时会涉及到源码分析和工具的使用。 首先,OSGi服务是一个在OSGi容器中注册的可发现和可使用的对象。服务注册的过程通常包括以下步骤: 1. **实现...

    读书笔记:《Java应用架构设计模块化模式与OSGi》源代码.zip

    读书笔记:《Java应用架构设计模块化模式与OSGi》源代码

    OSGI-Felix:OSGI费利克斯

    它还展示了OSGi框架和核心服务的精妙之处:构建时依赖项(jar文件)的总大小约为3兆字节,额外的运行时包数为10个OSGi捆绑包(也为jar文件),代表着大约2兆字节,包括所有运行时功能,例如OSGi Web控制台,交互式...

    很久之前的osgi整理

    标题中的“很久之前的osgi整理”表明这是一份关于OSGi技术的历史回顾或者早期学习笔记。OSGi(Open Service Gateway Initiative)是一个Java模块化系统,它允许开发人员将应用程序分解为独立的模块或服务,这些模块...

    osgi-swagger-connector:OSGi - Swagger 连接器

    笔记仅在主要从 Eclipse 运行的基于 Equinox 的 OSGi 环境中对其进行了测试(Felix 和 Virgo 也可以运行)。安装一旦我完成了项目的 Tycho 构建,我将提供一个包含所有必需包的 p2 更新站点。 在此之前,您必须编译...

Global site tag (gtag.js) - Google Analytics