`

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

 

分享到:
评论

相关推荐

    osgi简介PPt(自制)

    OSGI(Open Service Gateway Initiative)是一个开放的中间件平台,旨在为各种嵌入式设备提供通用的软件运行环境,能够消除设备操作系统和硬件之间的差异。这个平台的核心是它的模块化系统,允许应用程序和服务动态...

    tomcat嵌入OSGI容器

    **OSGI简介:** OSGI的核心是它的模块系统,即Bundle。每个Bundle都是一个独立的Java应用程序单元,有自己的类加载器,可以包含类、资源和元数据。通过这种方式,OSGI允许不同的Bundle之间以安全、隔离的方式进行...

    OSGI原理与最佳实践(扫描版,带目录).pdf

    第1章 OSGi简介 第2章 OSGl框架简介 第3章 基于Spring—DM实现Petstore 第4章 基于Apache CXF实现分布式Petstore 第5章 构建OSGi Bundle Repository 第6章 OSGi规范解读 第7章 Equinox实现分析 第8章 Felix...

    OSGi™ Component Programming

    OSGi简介 OSGi的核心概念是模块化,它通过将应用程序分解为独立的组件来实现。这些组件被称为服务,它们可以单独安装、更新和卸载,而不会影响到系统的其他部分。OSGi通过使用包(Bundle)来封装组件,每个包都...

    Tomcat-Osgi

    1. **OSGi简介**:OSGi是一种动态模块系统,它允许开发者创建可插拔的组件,并在运行时安装、卸载和更新这些组件,无需停止应用程序。它的核心是OSGi框架,负责管理组件的生命周期、解决依赖关系和提供服务注册表。 ...

    很久之前的osgi整理

    1. **OSGi简介**: OSGi的核心是其模块系统,它提供了一种动态的运行时环境,使得模块可以在生命周期内被安装、启动、停止、更新和卸载。这种灵活性极大地提高了软件的可维护性和可扩展性。 2. **模块化概念**: ...

    Equinox开发OSGi应用程序

    ##### OSGi简介 OSGi是动态模块系统的一个工业标准,支持模块化、面向服务和面向组件的应用程序开发。OSGi规范由OSGi联盟负责维护和更新,最新版本已经发展到了R4阶段。通过OSGi,开发者可以轻松地管理和控制应用...

    基于 OSGI 的 RCP 测试 2 Standard

    **OSGi简介** OSGi的核心是其模块系统,它通过将代码划分为可独立加载和卸载的模块(称为“bundles”),解决了Java类加载器的问题。每个bundle都有自己的命名空间,可以声明依赖其他bundle,并且只有当所有依赖满足...

    spring-osgi-1.2.0-rc1-with-dependencies.zip

    1. **OSGi简介** OSGi的核心是其模块化系统,它将Java应用分解为独立的、可重用的模块,每个模块称为一个bundle。这些bundle之间通过服务进行交互,具有动态加载和卸载的特性,极大地增强了软件的灵活性和可维护性...

    OSGi core

    #### 一、OSGi简介 OSGi(Open Service Gateway Initiative)是一个模块化系统和能力框架,最初是为服务网关设备设计的,但后来扩展到其他领域,如企业应用服务器、富客户端系统以及运行在嵌入式设备中的Java平台。...

    To embed OSGi in servlet container

    1. **OSGi简介**:解释OSGi的基本概念,包括其模块系统(称为bundle)、类加载器机制以及服务注册和查找的原理。 2. **Servlet容器与OSGi的结合**:介绍为什么要在Servlet容器中使用OSGi,以及这种结合能解决哪些...

    osgi 实战 pdf

    ### OSGi简介 OSGi(Open Service Gateway Initiative)是一个模块化平台,用于构建和管理复杂的软件系统,尤其是Java应用。它提供了一种标准的方法来封装和部署代码,允许动态加载、卸载和更新模块,而无需重启整个...

    OSGi原理与最佳实践pdf下载(完整版)

    OSGI原理与最佳实践的完整版,共12...第1 章OSGi 简介 第2 章OSGi 框架简介 第3 章基于Spring-DM 实现Petstore 第4 章基于Apache CXF 实现分布式Petstore 第5 章构建OSGI Bundle Repositor'y 第6 章OSGi 规范解读 ……

    OSGI学习手册及实践

    OSGI简介与背景 - **OSGI**(Open Service Gateway Initiative)是一种用于构建模块化应用程序和服务的框架,旨在提高软件系统的灵活性、可扩展性和可维护性。它最初是为了创建智能家庭网关设备而设计的,但后来...

    osgi in action 2011

    1. **OSGi简介**:OSGi的核心理念是将应用程序分解为独立的模块,这些模块称为服务。每个服务都有明确的接口定义,能够互相依赖,但又相互隔离,这极大地提高了代码的可重用性和可维护性。 2. **模块系统**:OSGi的...

    Java Application Architecture Modularity Patterns with Examples Using OSGi Part1

    第13章 OSGi简介 13.1 一点历史 13.2 OSGi所能带来的收益 13.2.1 模块化开发 13.2.2 管理依赖 13.2.3 模块平台 13.2.4 版本化的bundle 13.2.5 动态(重)部署 13.2.6 环境相关的控制 13.3 深入理解OSGi 13.4 OSGi ...

Global site tag (gtag.js) - Google Analytics