OSGI笔记(一)

1、Core Framework

    Core Framework是OSGI规范中的核心部分,它为基于OSGI的应用系统提供了标准的运行环境,从本质上保证了基于OSGI规范化的开发和部署动态性的系统。

    OSGI框架由四层组成:L0:运行环境

                        L1:模块

                        L2:生命周期管理

                        L3:服务注册

    L0运行环境是指标准的Java环境。只要具备Java2的构造和轮廓的都是被认可的运行环境。OSGI同时也定义了一个可运行的Bundles的最小环境的标准。

    L1模块层定义了所采用的类加载器机制。OSGI是一个强大、严格、规范的类加载模型,基于Java但增加了模块化。在Java中,通常都是有一个Classloader来加载所有的类和资源文件。在OSGI模块层中则为模块提供各自的ClassLoader,同时为模块的关联提供控制。

    L2生命周期管理层则为Bundles动态安装、启动、停止、更新和卸载提供了支持。基于L1提供的模块类加载机制的基础上,增加了一个对于Bundle的管理的API。

    L3增加了服务注册。服务注册为Bundles提供了一个动态的协作模型。本来Bundles可通过传统的class共享方式来实现协作,但在动态的安装和卸载代码的环境下这种方法是不适用的。服务注册为Bundles间共享Objects提供了一种可用的模型,OSGI提供了一堆的事件来通知服务的使用者关于服务的注册和卸载,服务其实就是简单的Java objects。

    在OSGI Framework中还包括一个安全层次(Security Layer),OSGI的安全层次基于Java的安全机制进行了扩展,增加了一些新的约束以及填补了Java安全机制中的遗漏。


  1.1Module Layer

     在OSGI规范中,将Module命名为Bundle,所以在OSGI框架中采用Bundle的方式来组织和部署系统。Bundle和普通Java工程唯一的不同就是在MANIFEST.MF中编写Bundle的元数据信息。其中元数据信息描述为:

属性属性描述
Bundle-ActivatorBundle的Activator类名。示例:Bundle-Activator:org.riawork.demo.Activator
Bundle-CategoryBundle的分类属性描述。示例:Bundle-Category:Opendoc,OSGI
Bundle-ClasspathBundle的Classpath。示例:Bundle-Classpath:/bin,/lib/log4j.jar
Bundle-ContactAddress提供Bundle的开发商的联系地址。示例:Bundle-ContactAddress:Shanghai
Bundle-Copyright Bundle的版权
Bundle-DescriptionBundle的描述信息。
Bundle-DocURLBundle的文档URL地址
Bundle-LocalizationBundle的国际化文件
Bundle-ManifestVersion定义Bundle所遵循的规范的版本,OSGI R3对应的版本值为1,R4对应的值为2
Bundle-NameBundle的有意义的名称
Bundle-NativeCodeBundle所引用的NativaCode地址
Bundle-RequiredExecutionEnvironmentBundle 运行所需要的环境
Bundle-SymbolicNameBundle 的唯一标识名,可采用类似 java package 名机制来保证唯一性。
Bundle-UpdateLocationBundle 更新时连接的 URL 地址
DynamicImport-PackageBundle 动态引用的 package。
Export-PackageBundle 对外暴露的 package
Fragment-HostFragment 类型 Bundle 所属的 Bundle 名
Import-PackageBundle 引用的 package。
Require-BundleBundle 所需要引用的其他的 Bundle
Bundle-VendorBundle 的开发商
Bundle-VersionBundle 的版本。

对于之上的Bundle的元数据属性的值,都支持增加附加过滤属性的方式。如Import-Package可以使这样的格式:

 Import-Package:org.riawork.opendoc.osig;version="[1.0,2.0)";resolution:=mandatory,org.riawork.opendoc.riawork;Company=RIAWork



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值