第一章 引言
OSGi(Open Service Gateway Initiative)最初的目的就是为各种嵌入式设备提供通用的软件运行平台,即可以屏蔽设备操作系统与硬件区别的中间件平台。PC基本上被 Wintel架构垄断,运行在PC上的应用程序完全可以在另一台PC上运行;但对于其他设备来说就不同,它们的硬件平台可能完全不同,其操作系统也是来自不同厂商,所以任何设备上的应用程序都需要定制,于是就产生了对中间件平台的需求。
OSGi并不是专为家庭网络而制定的,除了住宅网关,像车载电脑等其他移动嵌入式设备也都可以通过OSGi接入Internet,获取不同的应用服务。它为服务供应商、软件供应商、网关开发人员以及设备供应商提供了一个开放、通用的架构,使它们能互动地开发、部署和管理服务。其软件环境基于Sun的 JAVA虚拟机,并不涉及具体的连接协议。对于任何新设备,它都能够灵活地将其纳入现有网络。可以使用OSGi的对象包括各种数字和模拟的机顶盒、服务网关、有线电视电缆调制解调器、消费类电子产品、PC、工业计算机、汽车等。
因为OSGi基于JAVA技术,而JAVA最大的好处就是平台无关性。在不同类型的住宅网关设备上都可以实现OSGi软件。而且OSGi规范可以与各种设备访问标准桥接(如图1所示),比如遵循OSGi的系统可以很好地部署和管理Jini服务,它可以提供Jini设备与服务提供商之间的交互。对于像 HAVi、UPnP等基于非JAVA技术的标准和规范,OSGi也可以提供与它们沟通的桥梁。
第二章 OSGi规范介绍
2.1 OSGi规范的体系结构
在OSGi规范中提供了一个参考的体系架构[1],也基本上体现了OSGi的设计初衷。
OSGi的体系架构是基于这样一个模型的:经营者管理着一个潜在的巨大的服务网络平台。OSGi规范假设这个服务平台是完全被这个经营者控制,并且经营者使用该服务平台去运行来自不同服务提供者提供的服务。然而这只是一个场景,还有其他模型,例如PC机的部署,工业应用(如,移动电话基站是一个管理中心完全控制着各个方面),中间件模型等。OSGi最广泛的应用是在网络化的服务。除了参考模型之外,规范之中还提到了其他的一些模型。请参考OSGi 3.0规范[1]。
2.1.1 OSGi参考体系架构的特点
1. 商业驱动:经营者的观点驱动OSGi的体系架构。
2. 完美:体系架构必须是足够完善和详细的,以致允许开发商生产出健壮的产品。
3. 不受限的:由于经营者所操作的服务平台在性能和网络环境的变化是非常大的。
4. 开放:标准不是为一个具体的系统而设计的,OSGi参考体系架构必须考虑和支持许多不同的场景。
2.1.2 OSGi参考体系架构所涉及到实体
1. 服务平台:一个JAVA虚拟机的实例,一个OSGi框架结构,和运行着的服务包的集合。
2. 服务平台服务器(SPS):驻留一个或多个服务平台的硬件。
3. 运营商:掌控许多服务平台的组织。
4. 服务应用:一套软件包,文档和支撑软件所组合起来的应用,这些应用向终端用户提供服务。
5. 服务用户:获取服务应用服务的用户。
6. 服务提供者:开发服务应用并且通过服务部署管理器部署到服务平台上。
7. 服务部署管理器:部署和部分管理一个或多个服务提供者提供的服务应用。
8. 服务运行支持:支撑软件和硬件,它们并不驻留在服务平台服务器上,但是在运行服务应用时需要它们。
9. 服务集成者:负责确保来自不同服务提供者的服务应用的集成。
10. 服务开发者:开发服务应用。
11. 制造商:制造服务平台服务器
12. 拥有者:服务平台服务器拥有者。
13. 收费提供者:接受帐户信息,并且提供统一的帐单给服务消费者。
14. 网络提供者:提供服务平台的网络链接。
15. 证书授权:管理证书的组织,这些证书被用来鉴别系统,个人和组织。
首先是制造商制造服务平台服务器,拥有者从制造商处购买服务平台服务器,网络提供商提供服务平台服务器和互联网的接入。服务平台的运营商使用网路提供者的接入基础件接入服务平台服务器,同时服务平台经营者控制着一个或多个运行在服务平台服务器的服务平台。另一方面,服务平台经营者许可服务部署管理器去部署服务应用到服务平台上。
其次服务开发者开发服务应用,一个服务应用可能包含多个服务包而这些服务包是真正运行在服务平台上的。服务提供者从服务开发者处得到服务应用并且可能会委托服务运行支撑系统去支撑该服务应用在服务平台上的运行。服务集成者将服务提供者获取的服务应用和支持系统集成起来由服务部署管理器部署到服务平台上。
最后服务消费者订阅服务提供者提供的服务。
更有意思的是这里还有一个服务用户实体,从图中可以看出服务消费者可以包含多个服务用户,服务用户是真正接受服务的实体。也就是说服务消费者是一个虚的实体,多个服务用户可以消费同一个服务消费者订阅的服务。这好比不同的人可以通过同一个电话打电话一样。这无疑提高了OSGi规范灵活性。
分享到:
相关推荐
OSGi规范中文版是一本全面介绍OSGi技术的书籍,它不仅涵盖了OSGi技术的基础知识,还详细介绍了OSGi的内部结构和工作原理,对于想要深入学习和应用OSGi技术的开发者而言,是一本非常有价值的参考书。 ### OSGi规范的...
标题:osgi规范r4 描述与标签:osgi规范 知识点详解: 1. **OSGi Service Platform**:OSGi(Open Services Gateway Initiative)服务平台是用于构建动态、模块化Java应用程序的一种框架。它允许在运行时安装、...
OSGi 中文版 中文 OSGi中文OSGi 中文版 中文 OSGi中文OSGi 中文版 中文 OSGi中文OSGi 中文版 中文 OSGi中文OSGi 中文版 中文 OSGi中文OSGi 中文版 中文 OSGi中文OSGi 中文版 中文 OSGi中文OSGi 中文版 中文 OSGi中文
《OSGi R4服务平台核心规范》详细介绍了OSGi R4版本的核心特性和技术细节,是理解和应用OSGi的关键参考资料。 二、OSGi R4核心规范概览 OSGi R4规范进一步完善了服务定位和模块化管理,强化了动态部署、生命周期...
这个压缩包包含了关于OSGI的重要文档,分别是“OSGi R4核心规范文档”、“OSGi服务文档”以及“OSGi-最佳原理与实践”(王昊编著)。下面将详细介绍这些文档所涵盖的关键知识点。 首先,"OSGi R4核心规范文档"是...
为了弥补OSGi规范在应用指导方面的不足,四位活跃在OSGi开发第一线的技术专家联手打造了《OSGi实战》。《OSGi实战》面向OSGi规范的使用者,系统、全面、深入地阐述OSGi的重要特性及其使用方法。《OSGi实战》还介绍了...
osgi最新规范第四版, eclipse插件结构就是基于此规范编写的
### OSGi企业技术规范详解 #### 一、概述 **OSGi企业版本的技术规范**是OSGi联盟为满足企业级应用的需求而制定的一套详细的技术标准与指导原则。该规范旨在提供一个灵活且可扩展的框架,支持复杂的企业级应用开发...
### OSGi R4规范详解 #### 一、概述 OSGi(Open Service Gateway Initiative)是一种模块化系统和服务组件模型,它为Java平台提供了一种动态部署、管理和执行组件的方式。OSGi最初是为了实现家庭网关设备而设计的...
Spring OSGi规范中文版是将Spring框架与OSGi(Open Service Gateway Initiative)技术相结合的指导文档,旨在帮助Java开发者更好地在OSGi环境下利用Spring框架的优势。OSGi是一种动态模块化系统,允许组件(称为...
4. OSGi规范: - **R4核心规范**:r4.core.pdf和r4.core(OSGi R4核心规范).pdf可能详细介绍了OSGi Release 4的核心特性,包括bundle架构、服务注册、事件和生命周期管理等内容。 - **OSGi最佳实践**:osgi.best....
5. **包解析**:OSGI规范定义了一种机制,使得bundle可以在运行时解析和访问其他bundle提供的类和资源,而无需将所有代码打包到单个大 jar 文件中。 6. **安全模型**:OSGI提供了细粒度的安全控制,允许管理员为每...
OSGi(Open Services Gateway Initiative)是一种Java模块化系统,它为开发人员提供了一种动态、模块化的...这些书籍通常会涵盖OSGi的配置、服务注册与查找、打包规范、安全策略以及如何在实际项目中集成OSGi等内容。
### OSGi规范4.3.0:核心概念与关键知识点 #### 一、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'...第6 章OSGi 规范解读 ……
根据OSGi规范许可证的要求,任何想要实施OSGi R4规范的项目或产品都必须完全遵循规范中的所有接口和功能要求,不能修改、缩减或扩展OSGi命名空间,也不得包含任何未经授权的公共或受保护的包、类、Java接口、字段或...
OSGi(Open Service Gateway Initiative)服务平台规范,简称OSGi规范,是一项开放式的通用架构标准,旨在为包括服务提供商、开发者、软件提供商、网关运营商以及设备提供商在内的各种参与者提供一个统一的服务开发...
标题 "OSGi&Spring 规范" 指向的是两个关键的Java技术领域:OSGi(Open Service Gateway Initiative)和Spring框架。OSGi是一种模块化系统和Java服务平台,它提供了一种标准的方式来创建、部署和管理Java应用程序。...
Apache Celix是一个开源项目,专为使用C和C++编程语言实现OSGi(Open Services ...它不仅实现了OSGi规范,还带来了Java世界中的许多优秀特性,如依赖注入和服务发现,使得C++开发者也能享受到这些现代开发模式的优点。