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环境中的service。framework可能在不同的硬件环境上运行,但是一致的接口确保软件组可以运行在一致的服务接口上。
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可以随时启动或停止。
starting:bundle 正在启动中…
stopping:bundle正在关闭中……
active:bundle 已经启动并在运行。
unistalled:bundle 已经被卸载。
eclipse使用OSGi就是为了实现它的完美动态加载。
项目名 |
说明 |
Manifest-Version |
Jar包的Manifest文件指定了版本号,通常是1.0 |
Bundle-ManifestVersion |
Bundle的Manifest文件指定了版本,通常是2 |
Bundle-Name |
Bundle的名称 |
Bundle-SymbolicName |
Bundle的Synbo名称,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(Open Service Gateway Initiative)是一个开放的中间件平台,旨在为各种嵌入式设备提供通用的软件运行环境,能够消除设备操作系统和硬件之间的差异。这个平台的核心是它的模块化系统,允许应用程序和服务动态...
**OSGI简介:** OSGI的核心是它的模块系统,即Bundle。每个Bundle都是一个独立的Java应用程序单元,有自己的类加载器,可以包含类、资源和元数据。通过这种方式,OSGI允许不同的Bundle之间以安全、隔离的方式进行...
第1章 OSGi简介 第2章 OSGl框架简介 第3章 基于Spring—DM实现Petstore 第4章 基于Apache CXF实现分布式Petstore 第5章 构建OSGi Bundle Repository 第6章 OSGi规范解读 第7章 Equinox实现分析 第8章 Felix...
OSGi简介 OSGi的核心概念是模块化,它通过将应用程序分解为独立的组件来实现。这些组件被称为服务,它们可以单独安装、更新和卸载,而不会影响到系统的其他部分。OSGi通过使用包(Bundle)来封装组件,每个包都...
1. **OSGi简介**:OSGi是一种动态模块系统,它允许开发者创建可插拔的组件,并在运行时安装、卸载和更新这些组件,无需停止应用程序。它的核心是OSGi框架,负责管理组件的生命周期、解决依赖关系和提供服务注册表。 ...
1. **OSGi简介**: OSGi的核心是其模块系统,它提供了一种动态的运行时环境,使得模块可以在生命周期内被安装、启动、停止、更新和卸载。这种灵活性极大地提高了软件的可维护性和可扩展性。 2. **模块化概念**: ...
##### OSGi简介 OSGi是动态模块系统的一个工业标准,支持模块化、面向服务和面向组件的应用程序开发。OSGi规范由OSGi联盟负责维护和更新,最新版本已经发展到了R4阶段。通过OSGi,开发者可以轻松地管理和控制应用...
**OSGi简介** OSGi的核心是其模块系统,它通过将代码划分为可独立加载和卸载的模块(称为“bundles”),解决了Java类加载器的问题。每个bundle都有自己的命名空间,可以声明依赖其他bundle,并且只有当所有依赖满足...
1. **OSGi简介** OSGi的核心是其模块化系统,它将Java应用分解为独立的、可重用的模块,每个模块称为一个bundle。这些bundle之间通过服务进行交互,具有动态加载和卸载的特性,极大地增强了软件的灵活性和可维护性...
#### 一、OSGi简介 OSGi(Open Service Gateway Initiative)是一个模块化系统和能力框架,最初是为服务网关设备设计的,但后来扩展到其他领域,如企业应用服务器、富客户端系统以及运行在嵌入式设备中的Java平台。...
1. **OSGi简介**:解释OSGi的基本概念,包括其模块系统(称为bundle)、类加载器机制以及服务注册和查找的原理。 2. **Servlet容器与OSGi的结合**:介绍为什么要在Servlet容器中使用OSGi,以及这种结合能解决哪些...
### OSGi简介 OSGi(Open Service Gateway Initiative)是一个模块化平台,用于构建和管理复杂的软件系统,尤其是Java应用。它提供了一种标准的方法来封装和部署代码,允许动态加载、卸载和更新模块,而无需重启整个...
OSGI原理与最佳实践的完整版,共12...第1 章OSGi 简介 第2 章OSGi 框架简介 第3 章基于Spring-DM 实现Petstore 第4 章基于Apache CXF 实现分布式Petstore 第5 章构建OSGI Bundle Repositor'y 第6 章OSGi 规范解读 ……
OSGI简介与背景 - **OSGI**(Open Service Gateway Initiative)是一种用于构建模块化应用程序和服务的框架,旨在提高软件系统的灵活性、可扩展性和可维护性。它最初是为了创建智能家庭网关设备而设计的,但后来...
1. **OSGi简介**:OSGi的核心理念是将应用程序分解为独立的模块,这些模块称为服务。每个服务都有明确的接口定义,能够互相依赖,但又相互隔离,这极大地提高了代码的可重用性和可维护性。 2. **模块系统**:OSGi的...
第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 ...