`
jslfl
  • 浏览: 316083 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

OSGi介绍

    博客分类:
  • osgi
阅读更多

什么是OSGI

OSGi(Open Service Gateway Initiative)有双重含义。一方面它指OSGi Alliance组织;另一方面指该组织制定的一个基于Java语言的服务(业务)规范——OSGi服务平台(Service Platform)。

OSGi Alliance是一个由Sun MicrosystemsIBM爱立信等于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

OSGi规范是由成员通过公开的程序开发,对公众免费而且没有许可证限制。但是OSGi Alliance的兼容性程序只对成员开放,目前有12个兼容的实现

2003年Eclipse选择OSGi作为其插件的底层运行时架构。Equinox project对该理念进行了实验,2004年6月在Eclipse3 R3中发布。ProSyst是面向OSGi开发者的Eclipse插件。

2003年10月, 诺基亚摩托罗拉ProSyst 和其他OSGi成员组建了Mobile Expert Group (MEG)为下一代智能手机规范业务平台,做为对MIDP 和CDC的补充。

OSGi(Open Service Gateway Initiative)技术是面向Java的动态模型系统。OSGi服务平台向Java提供服务,这些服务使Java成为软件集成和软件开发的首选环境。 Java提供在多个平台支持产品的可移植性。OSGi技术提供允许应用程序使用精炼、可重用和可协作的组件构建的标准化原语。这些组件能够组装进一个应用 和部署中。

OSGi亦称做Java语言的动态模块系统,它为模块化应用的开发定义了一个基础架构。OSGi容器已有多家开源实现,比如 Knoflerfish、Equinox和Apache的Felix。您可以通过这些容器,把您的应用程序劈分为多个模块单元,这样,您就可以更容易地管 理这些模块单元之间的交叉依赖关系。

OSGi的主要职责就是为了让开发者能够建动态化、模块化的Java系统。

传统的开发和部署的局限性

1、java讲求的是面向接口编程,比如接口A有两个实现类B和C,当在运行时需要将B转换成C的时候,就需要重新启动服务,否则是无法实现的,也就是说J2EE本身是不提供这种支持的。

2、JAR文件规范粒度太粗,没有足够的约束力。运行期,如果这些第三方Jar包不存在,或者命名存在差异,或者提供了不同JAR包版本,则会出现各种不同结果。Java SE/Java EE平台没有细化这方面的任何内容。

3、由于Java EE平台规范没有针对Java package引入版本支持,这使得在同一企业应用中几乎不可能启用同一JAR包的不同版本。与此同时,现有的Java EE技术体系难以动态升级、替换生产环境,实际的做法是,每次部署新版应用时,都需要重启应用或Java EE容器,进而影响到在线用户。

4、维护成本较高。因为企业应用的模块化程度不高,即Java EE的模块化更多地是停留在逻辑概念层面。通常,我们会将企业应用以单个WAR包形式存在,其中内置了当前应用所有的内容,包括.class、.jsp、.js等资源。很显然,这给维护工作带来挑战,毕竟升级或修改WAR包中的任何内容都可能会波及到整个WAR包。这就要求,每次升级生产环境之前,都必须对整个WAR包的各个方面进行完整的回归测试,进而增加了不必要的维护成本,包括人力和物力成本。

5、开发不具备模块化的特性,一般企业中项目往往是放到一个工程中,这样造成的后果是模块化能力不强,难于维护,越大越不容易维护。

OSGI的优缺点

a) 您可以在不重启容器的情况下,动态地安装、卸载、启动和停止您的应用程序中的不同模块;

b) 对于您应用程序中的某一特定模块,容器可以同时运行该模块的多个版本;

c) OSGi为开发嵌入式应用、移动应用、富互联网应用(RIA)提供了非常优秀的基础架构

OSGI的分类

主要分成以下三个部分:

1、OSGi服务平台Core规范及服务集合。这类似于Java SE平台。

2、OSGi服务平台Residential规范。这类似于Java ME平台。

3、OSGi服务平台Enterprise规范。这类似于Java EE平台。

使用OSGI实现SOA

模块化设计是软件设计的一个基本思想,同时作为SOA应用,一个很重要的需求就是要方便用户扩展,利用扩展向SOA应用添加新功能,并能够很方便地和应用 本身做无缝集成。这就要求SOA应用中的模块提供可接入的扩展实现,还可以提供进一步扩展的能力。OSGi具备构造满足这样特点的SOA应用模块的能力。 OSGi提供了一个微内核的机制,实现了模块的可插拔,并为模块定义了一个清晰的物理格式,保证了模块开发与复用的一致性。

详细的内容可以参考

http://book.51cto.com/art/200912/173733.htm

本文转自:http://www.cnblogs.com/skyme/archive/2012/07/09/2580613.html

分享到:
评论
2 楼 Vcb 2015-05-26  
http://osgi.jxtech.net 是一个完全基于OSGi的开发平台,有在线演示,免费插件可供下载。

http://search.jxtech.net/search.html还提供Google 搜索引擎,验证可用。
1 楼 Vcb 2015-05-26  
是一个完全基于OSGi的开发平台,有在线演示,免费插件可供下载。

还提供Google 搜索引擎,验证可用。

相关推荐

    osgi介绍osgi介绍

    OSGi(Open Services Gateway Initiative)是一种Java模块化系统,它为开发人员提供了一种动态、模块化的运行时环境。在OSGi中,应用程序被分解为称为“bundle”的独立单元,这些bundle可以相互依赖并独立地加载、...

    经典OSGI学习资料

    在这个压缩包中,我们可以找到一个名为"OSGI介绍"的文件,它可能包含了OSGI的基本概念、核心特性以及如何开始学习OSGI的相关知识。 首先,OSGI的核心概念是模块系统。在OSGI框架中,每个模块被称为服务单元或bundle...

    介绍OSGI的PPT

    NULL 博文链接:https://chinasxhz.iteye.com/blog/256689

    OSGi 分布式通讯组件 R-OSGi

    ### R-OSGi介绍 R-OSGi是OSGi在分布式环境中的扩展,它将OSGi服务的概念应用于网络环境,允许服务跨越不同网络节点进行通信。R-OSGi的核心特性包括: 1. **透明性**:R-OSGi提供了透明的远程服务调用,意味着...

    很久之前的osgi整理

    通过阅读《Introduce.ppt》这个文件,我们可能会获得更深入的OSGi介绍,包括它的核心概念、优势、使用示例,以及如何在实践中应用这些概念。遗憾的是,由于没有实际文件内容,我们无法提供具体的细节。但通过上述...

    osgi框架开发介绍

    提供的"osgi框架介绍"可能包含基础的PDF教程,它们通常会涵盖以下几个方面: - OSGi的基本概念和架构 - Bundle的创建和配置 - 依赖管理和版本控制 - 服务注册、发现及事件处理 - 示例项目和实战演练 通过深入学习...

    osgi,林昊写的osgi实战和进阶

    7. **调试与监控**:介绍如何在OSGI环境中进行调试和性能监控,以优化应用程序。 在《OSGI进阶》中,林昊可能进一步探讨以下高级主题: 1. **复杂系统的集成**:如何将OSGI与其他技术,如Spring、EJB或RESTful服务...

    OSGI原理与最佳实践

    资源名称:OSGI原理与最佳实践内容简介:国内第一本OSGi图书OSGi国内推广者林昊多年经验的结晶涵盖OSGi从入门到深入的知识体系引领OSGi国内研究和普及本书基于作者多年使用OSGi的经验而...,介绍OSGi的作用及基本概念...

    OSGi原理与最佳实践(完整版)&OSGi_in_action

    1. **OSGi基础**:介绍OSGi的核心概念,如模块系统(称为"bundle"),服务注册和发现机制,以及如何将Java应用程序划分为独立的模块。 2. **模块化开发**:讲解如何使用OSGi模块化你的代码,减少依赖冲突,提高代码...

    OSGI技术介绍

    OSGI技术介绍,自己公司的培训文档,非常全面的描述了OSGI

    osgi重要文档--osgi核心规范文档,osgi服务文档,osgi-最佳原理与实践(王昊编著,共79页)

    下面将详细介绍这些文档所涵盖的关键知识点。 首先,"OSGi R4核心规范文档"是理解OSGI机制的基础,R4代表了OSGI的第四代版本。该规范定义了OSGI框架的基础架构,包括模块系统、生命周期管理、服务注册与发现等核心...

    利用R-OSGi实现分布式OSGi应用

    本文通过介绍传统 OSGi 应用程序及 R-OSGi 的实现方式入手,阐述了 R-OSGi 对于 OSGi 规范的实现方式。然后通过一个简单的功能实现由浅入深地讲述传统 OSGi 和 R-OSGi 上的两种不同实现,让您对实际操作加深印象。...

    osgi资料

    - Spring与OSGi的整合:介绍如何在OSGi环境中使用Spring,如使用Declarative Services或Blueprint API。 - 微服务架构:讨论如何利用OSGi的模块化特性构建微服务,实现松耦合和独立部署。 - AOP在OSGi中的应用:...

    OSGi原理与最佳实践

    本书基于作者多年使用OSGi的经验而编写,涵盖了OSGi从入门到深入的知识体系,从OSGi的简介开题,介绍OSGi的作用及基本概念;其后进入OSGi实战,结合实例讲解如何基于OSGi框架编写模块化、动态化的各种Java应用;最后...

    OSGI + Webservice 例子

    下面将详细介绍这个例子中可能涉及的知识点: 1. **OSGI模块创建**:首先,你需要了解如何创建一个OSGI模块,这通常涉及到编写MANIFEST.MF文件,声明模块的依赖和导出的包。例如,OSGI.Api可能是提供公共接口的模块...

    《OSGi实战》完整中文版

    《 OSGi实战》是学习OSGi的全面指导,利用与架构和开发人员相关...《OSGi实战》面向OSGi规范的使用者,系统、全面、深入地阐述OSGi的重要特性及其使用方法,还介绍了某些技术的低层实现细节,引领读者畅游OSGi的世界。

    OSGI常用通信实例

    下面将详细介绍这个主题中的关键知识点。 1. OSGI框架: OSGI的核心是它的模块系统,它允许应用程序被分解为独立的、可重用的单元,称为"bundle"。每个bundle都有自己的类路径,并且可以独立加载、启动、停止和...

    OSGI原理最佳实践(包含源代码)

    是一本适合新接触OSGI开发学习的一本很好的书,本书介绍了Equinox, Spring-DM和Felix这三个常用的OSGi容器的使用、开发、以及WebApplication的开发部署;介绍了OSGi的规范和Core Framework和Layer。包含书中的用例源...

    osgi 在web容器中部署

    本文将详细介绍如何使用桥接技术(如Apache Felix的WebConsole或Pax Web)在Tomcat中部署OSGi程序。 首先,理解OSGi的核心概念是关键。OSGi基于服务导向架构,其中每个模块(称为bundle)都有自己的类加载器,并...

    OSGi-lib.rar

    "程序,用于向开发者介绍如何在OSGi环境中创建和部署一个基本的bundle。这个项目通常会包含必要的源代码、配置文件以及构建脚本,帮助初学者理解OSGi的工作原理。而另一个文件"OSGi"可能是一个更复杂的库,包含了...

Global site tag (gtag.js) - Google Analytics