OSGi简介

OSGi简介

OSGi(open service gateway initiative )是一个组织,旨在建立一个开放的服务规范,通过网络向设备提供服务建立开放的标准。OSGi技术提供一种面向服务的架构,它能使这些组件无需重启就能动态地发现对方。又作为一种技术是面向Java的动态模型系统,允许应用程序使用精炼、可重用和可协作的组件构建的标准化原语。这些组件能够组装进一个应用和部署中。

 

OSGi规范的核心组件是OSGi框架。这个框架为应用程序(被叫做组件(bundle))提供了一个标准环境。整个框架可以划分为一些层次

L0:运行环--Java环境

  L1:模块---模块层定义类的装载策略

  L2:生命周期管理 --能够被动态安装、开启、关闭、更新和卸载bundles

  L3:服务注册--提供了一个在bundles间分享对象的完整模型

  安全机制—L0~L4都存在

 

OSGI规范包括了构建开放的可交付网络服务的各方面,它又包括了许多子规范:

l  Framework规范(OSGi的核心),提供一个安全的可管理的java framework 来部署可扩展的java服务。通过framework 可以支持bundle这种service application 的部署和扩展。OSGi兼容设备可以下载并安装OSGi bundles ,当不用时也可删除,bundles 安装后会注册一定数量的services ,这些services 可以被其他的bundles 使用。也即,OSGi动态的管理bundles,同时也管理bundles services 之间的依赖关系。这种动态的加载功能使得开发者可以部署大规模的services。另外,这个framework 还为bundles的开发者提供了简明一致的编程模型,简化了开发部署的复杂性。这个编程模型运行开发者将子架的接口规范绑定到OSGi环境中的serviceframework可能在不同的硬件环境上运行,但是一致的接口确保软件组可以运行在一致的服务接口上。

l  package admin service 规范。来管理不同的bundle之间的引用关系,当bundle更新或是卸载时,判断是否有其他的服务正在使用当前得bundle

l  start level 规范。它定义了启动和停止一个OSGi service platform 时,不同的bundles的启动或通知的先后顺序。

l  permission admin service 规范,权限管理。bundle是否许可执行另外的bundle的代码。

l  URL handlers service 规范,怎样注册URL schema,如何将java.io.inputstream 对象转换为特定的java对象。

l  其它,n多子规范……

 

bundle 对象:

对每一个安装在OSGi service platform 上的bundle 都有一个与之关联的bundle 对象,这个对象来管理bundle lifecycle ,管理bundle management Agent 完成。

 

bundle state 状态

installed bundle被安装。

resolved:说明bundle所需要的java class 文件都可用了,这个bundle可以随时启动或停止。

startingbundle 正在启动中

stoppingbundle正在关闭中……

activebundle 已经启动并在运行。

unistalledbundle 已经被卸载。

 

eclipse使用OSGi就是为了实现它的完美动态加载。

项目名  

说明

Manifest-Version

Jar包的Manifest文件指定了版本号,通常是1.0

Bundle-ManifestVersion

BundleManifest文件指定了版本,通常是2

Bundle-Name

Bundle的名称

Bundle-SymbolicName

BundleSynbo名称,OSGi中以这个名称注册

Bundle-Version

Bundle的版本。在OSGi中有可能多个不同版本的同一Bundle共存

Bundle-Activator

管理Bundle生命周期的类名

Bundle-Vendor

定义了制作Bundle的组织名称

Bundle-ActivationPolicy

指定了Bundle启动的策略。

Import-Package

指定了Bundle引用的包

Export-Package

指定了Bundle向起他Bundle公开的包

Required-Bundle

指定了Bundle引用的Bundle

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值