OSGi
(
Open Service Gateway Initiative
)有双重含义。一方面它指
OSGi Alliance
组织;另一方面指该组织制定的一个基于
Java
语言的服务(业务)规范——
OSGi
服务平台(
Service Platform
)。
OSGi Alliance
是一个由
Sun Microsystems
、
IBM
、爱立信等于
1999
年
3
月成立的开放的标准化组织,最初名为
Connected Alliance
。该组织及其标准原本主要目的在于使服务提供商通过住宅网关,为各种家庭智能设备提供各种服务。目前该平台逐渐成为一个为室内、交通工具、移动电话和其他环境下的所有类型的网络设备的应用程序和服务进行传递和远程管理的开放式服务平台。
该规范和核心部分是一个框架
,其中定义了应用程序的生命周期模式和服务注册。基于这个框架定义了大量的
OSGi
服务:
日志、配置管理、偏好,
HTTP
(运行
servlet
)、
XML
分析、设备访问、软件包管理、许可管理、星级、用户管理、
IO
连接、连线管理、
Jini
和
UPnP
。
这个框架实现了一个优雅、完整和动态的组件模型。应用程序(称为
bundle
)无需重新引导可以被远程安装、启动、升级和卸载(其中
Java
包/类的管理被详细定义)。
API
中还定义了运行远程下载管理政策的生命周期管理。服务注册允许
bundles
去检测新服务和取消的服务,然后相应配合。
OSGi
原先关注于服务网关,其实可用于多个方面。现在
OSGi
规范已经用于从移动电话到开源的
Eclipse
(其中包括了与
IBM
的
OSGi
框架
SMF
兼容的开源版本)。
OSGi
服务平台的应用包括:服务网关、
汽车、移动电话、
工业自动化、建筑物自动化、
PDA
网格计算、娱乐(如
iPronto
)、和
IDE
。
分享到:
相关推荐
2. **模块化**:OSGi定义了一个模块化系统,称为Bundle。一个Bundle就是一个Java包加上清单文件(Manifest),清单文件描述了Bundle的元数据,包括依赖关系、公开的API等。 3. **服务化**:OSGi中的服务是一种轻量...
OSGi定义了模块化编程的概念,它将程序分为若干个Bundle(通常是jar包),这些Bundle可以独立地被安装、启动、升级和卸载。OSGi中的模块化是通过为jar包添加元数据(metadata)来定义的,其中最为关键的是MANIFEST....
OSGi定义了一个HttpService,用于支持Web应用。Web Application Bundle (WAB) 是一种特殊的OSGi Bundle,它可以作为一个Web应用运行。WAB包含传统的Web项目元素,如Web-INF目录和web.xml,同时还包含OSGi元数据,如...
OSGi定义了一套完整的Bundle生命周期模型,每个Bundle都会经历一定的生命周期状态,比如INSTALLED、RESOLVED、STARTING、ACTIVE和UNINSTALLED。开发者可以通过OSGi框架提供的API来管理Bundle的生命周期。 服务层...
2. **服务框架**:OSGi定义了一个服务框架,允许组件之间以服务的形式进行交互,从而实现了动态的依赖管理和插件式的架构。 3. **生命周期管理**:通过提供一个生命周期管理模型,OSGi使得组件可以在运行时动态安装...
6. **生命周期管理**:OSGI定义了服务单元的完整生命周期,包括未安装、安装、解决、启动、暂停、停止和卸载等状态。这些状态转换由OSGI框架统一管理,确保了组件间的协调一致。 在学习OSGI的过程中,通常会参考如...
3. **服务注册和查找**:OSGi定义了一种服务注册机制,允许Bundle通过Service Registry来发布和查找服务。这种机制促进了松耦合的组件设计,增强了系统的可维护性和可扩展性。 4. **版本控制和依赖管理**:OSGi引入...
OSGi定义了bundle的四个生命周期状态:未安装(Uninstalled)、已安装(Installed)、启动中(Resolving)、启动(Active)。bundle的生命周期可以通过框架API进行控制,提供了灵活的应用部署和更新能力。 6. **...
1. **Bundle生命周期**:OSGI定义了四个主要状态:INSTALLED、RESOLVED、STARTING、ACTIVE。通过调用start()和stop()方法,开发者可以控制bundle的启动和停止,从而实现动态加载和卸载。 2. **服务注册与发现**:...
服务监听器通过实现OSGI定义的`ServiceListener`接口来接收这些事件,并在接收到事件后执行相应的操作。 例如,一个组件可能声明它依赖于某种特定类型的服务,当这个服务可用时,DS会自动注入服务实例到组件中。...
1. **Bundle生命周期**:OSGI定义了bundle的四种状态——未安装、安装、启动和暂停。开发者可以通过API控制这些状态,以实现灵活的部署和更新。 2. **类加载器**:OSGI使用独特的类加载机制,每个bundle有自己的类...
OSGi定义了一套标准,允许开发者将应用程序分解为独立的模块,这些模块被称为bundles。每个bundle都可以独立部署、启动、停止、更新和卸载,而不影响其他模块的运行状态。这种模块化方法提高了系统的灵活性和可扩展...
3. 服务生命周期管理:OSGI定义了一套服务生命周期管理机制,通过服务注册表来管理各个Bundle提供的服务。当Bundle被加载时,它可以注册服务;当Bundle被卸载时,它所注册的服务也会自动注销。 4. 依赖管理:OSGI...
5. **生命周期管理**:OSGi 定义了 bundle 的生命周期,包括未安装、安装、解析、启动、停止、更新和卸载等状态,提供了对这些状态转换的控制。 6. **依赖管理**:在部署阶段,OSGi 会解析 bundle 之间的依赖关系,...
OSGi定义了模块的生命周期,包括安装、启动、停止、更新和卸载。开发者可以控制这些操作,实现更灵活的系统管理。 **7. 模块配置** OSGi允许通过配置文件来定制模块的行为。这些配置可以指定模块的依赖、服务注册...
4. **生命周期管理**:OSGI定义了Bundle的启动、停止、暂停、恢复和卸载等生命周期状态,方便管理和控制模块的行为。 二、OSGI的优势 1. **动态性**:OSGI环境允许在运行时安装、卸载和更新模块,无需重启系统,极...
OSGi定义了一种模块化的系统架构,它允许应用程序被拆分成多个独立的模块(称为Bundles),每个Bundle可以独立部署、启动和停止。这种模块化的设计极大地提高了系统的灵活性和可维护性。 ##### 2. 动态部署 OSGi...
2. **服务注册与查找**:OSGi 定义了一个服务注册机制,允许bundle注册服务,并通过服务跟踪器来查找和使用其他bundle提供的服务。这大大简化了组件之间的依赖管理,提高了系统的灵活性。 3. **版本管理和依赖管理...