OSGi是什么
OSGi亦称做Java语言的动态模块系统,它为模块化应用的开发定义了一个基础架构。OSGi容器已有多家开源实现,比如Knoflerfish、Equinox和Apache的Felix。您可以通过这些容器,把您的应用程序劈分为多个模块单元,这样,您就可以更容易地管理这些模块单元之间的交叉依赖关系。
OSGi规范和Servlet规范及EJB规范类似,该规范定义了两种对象,一是容器对外提供的服务对象,另一个是容器和您的应用程序之间必须遵守的契约,其中,服务对象是容器要实现的。您如果想要在OSGi平台上进行开发,首先,您必须要使用OSGi API来创建您的应用,然后将之部署到OSGi容器中。从开发者的角度看,OSGi具有以下优点:
a) 您可以在不重启容器的情况下,动态地安装、卸载、启动和停止您的应用程序中的不同模块;
b) 对于您应用程序中的某一特定模块,容器可以同时运行该模块的多个版本;
c) OSGi为开发嵌入式应用、移动应用、富互联网应用(RIA)提供了非常优秀的基础架构
如果说您使用Servlet容器开发您的网络应用,使用EJB容器开发交易式应用,您可能会问,为什么我们还需要另外的容器呢?对这个问题的简短回答是,OSIG容器是专门为开发复杂的Java应用准备的,在这些应用的开发过程中,您非常需要将这些应用分割为一个个的模块。在本系列以后的文章中,我将针对这个问题进行展开并深入回答。
1. OSGi在企业开发中的应用
OSGi联盟(OSGiAlliance)于1999年3月开始着手制定OSGi规范,其主要目的就是要制定一套开放式标准,以便向局域网及其中的设备提供可管理的服务;其基本思路是,一旦您在网络设备(如服务器和嵌入式设备)上使用了OSGi服务平台,您就可以在网络上的任何地方管理这些设备上运行的软件组件的生命周期,可以在后台对这些组件进行安装、升级或卸载,但不需要打断该设备的正常运行。
近年来,OSGi技术在嵌入式系统及网络设备市场得到广泛应用。现在,由于Eclipse的成功,OSGi在企业开发中逐渐成为切实可行的、较有价值的一种技术。
1.1. 业界对OSGi的支持逐渐上升
2003年,Eclipse开发团队开始想办法提高Eclipse工具集的模块化,以便让它成为更加动态的富客户端平台。Eclipse团队最终选中OSGi框架作为其组件的运行时模型,2004年6月发布的Eclipse3.0就是第一个基于OSGi平台的版本。现在几乎所有的企业应用服务器都支持OSGi,Spring也通过一个叫“OSGi服务平台上的Spring动态模型(亦称之为OSGiSpring)”的项目来支持OSGi。该项目提供OSGi基础架构,以便我们在Spring的企业开发中更容易使用OSGi。
2. 开放源码的OSGi容器
从企业开发者的角度看,OSGi容器的要求很低,您可以很容易地把它嵌入到企业应用中,比如我们在开发Web应用时,我们可以把这个Web应用分为多个模块,一个模块负责视图层,另一个模块负责DAO层,第三个模块负责数据访问层,如果我们使用OSGi容器来管理这些模块之间的交叉依赖,我们就可以在不用重启该Web应用的前提下,将DAO层从速度较慢的升级到速度较快的DAO。
只要您的应用和OSGi规范兼容,您的应用就应该可以运行在任何OSGi容器中,现在比较流行的开放源码的OSGi容器有以下三种:
a) Equinox容器是参照OSGi规范第4版实现的,它构成了Eclipse IDE的核心—模块化的Java运行时;它实现了OSGi规范4中规定的必须强制实现的功能,同时,它也实现了OSGi规范中大部分的可选功能;
b) Knoflerfish是OSGi规范第3版和第4版的开源实现,它实现了OSGi规范规定的必须实现的功能及部分可选功能;
c) Apache的Felix是Apache软件基金会实现的OSGi开源容器,该容器和OSGi规范完全兼容。
3.类加载器
osgi只所以能够动态,是使用了java的类加载器,而不是所谓的进程。
现在基本上所有的java应用服务器都(或计划)构建于osgi上。
包括weblogic。
osgi现在可用的地方就是osgi,构建于osgi微内核上的程序将启动更快、热插拨
分享到:
相关推荐
pro_spring_dynamic_modules_for_osgi_service_platforms, OSGi In Action, Enterprise OSGi in Action, Instant OSGi Starter
osgi eclipse 最小开发环境
介绍了OGSI 规范, 包括GWDSL 、服务数据、网格服务句柄、网格服务引用、服务生命周期管理、通告和服务群等重要概念或特性, 并结合一个例子说明这些概念和特性。还尝试把网格服务和Web Service 及分布式对象系统作...
结合OSGi规范,对OSGi技术原理阐述,及OSGi技术实践的心得体会
ogsi in acion
WSRF产生的原因 WSRF, Web Service, OGSI and OGSA的关系 WSRF的特性和原理
开放网格服务基础结构OGSI(OpenGridServicesInfrastrstructure)把Web服务工作流引入到网格任务描述中,给出了几种Web服务与网格技术相融合机制,但并没有界定如何进行网格服务组合。而BPEL4WS(BusinessProcess ...
#JBehave OGSi JBehave OGSi 的创建是为了能够在任何 OSGi 环境中执行 JBehave BDD 之类的故事。 您可以使用它来测试需要在 OSGi 容器内作为 Eclipse RCP/SWT 应用程序、OSGi 服务等执行的任何类型的 OSGi 应用程序...
在web服务器中开发网格应用,李必锴,,在今天,Web Service已经和网格实现了统一,WSRF结构已经逐渐取代以前的OGSI,并融合在Web服务中,给予Web服务以新的描述和定义。而在WSRF中
研究了RFID固定阅读器的软硬件实现。...本文研究了RFID固定阅读器实现方案,软件部分采用动态联接库实现,能够提供二次开发,为阅读器融合到OGSi框架中提供了方便。描述了实现过程,分析了实验结果。
这个小型网格原型系统是基于OGSA(开放网格服务架构)体系结构和Web 服务架构而构建的网格服务的基础平台,按照OGSI网格服务规范标准,用GT3(Globus Toolkit 3.0)网格开发工具包开发实现。程序设计符合通常的分布式...
jBPM User Guide jBPM 用户指南 目录 目录 第一章 概述 6 1.1 什么是jBPM? 6 1.2 概览 7 1.3 核心引擎 9 1.4 Eclipse编辑器 9 1.5 基于Web的设计器 10 ...6.1 Business Process Model and Notation...18.2 OGSi 113
目录 第一章 概述 1 1.1 什么是jBPM? 1 1.2 概览 2 1.3 核心引擎 3 1.4 Eclipse编辑器 4 1.5 基于Web的设计器 5 1.6 jBPM控制台 5 1.7 文档结构 6 第二章 获得开始 7 ...6.1 Business Process Model and ...18.2 OGSi 107
第一章 概述 1 1.1 什么是jBPM? 1 1.2 概览 2 1.3 核心引擎 3 1.4 Eclipse编辑器 4 1.5 基于Web的设计器 5 1.6 jBPM控制台 5 1.7 文档结构 6 第二章 获得开始 7 2.1 下载 7 ...6.1 Business Process ...18.2 OGSi 107
开放式网格服务体系结构及实现的研究,王宝凤,李冠宇,网格体系结构是网格的骨架和灵魂,是网格最核心的技术,只有建立合理的网格体系结构,才能够设计和建造好网格系统,才能够使网格