`

[转]了解Apache Felix OSGi容器

阅读更多
http://felix.apache.org/site/index.html
OSGi正在被越来越多的项目所采用。OSGi规范为以模块化形式编写和部署应用到本地或远程计算机提供了一个公共模型。与创建一个单一的不可分应用(monolithic app)不同,该规范允许众多小组件相互协作。这篇新闻为你展现了为什么有像OSGi这样一个规范是至关重要的,它真正包含了哪些内容,以及未来发展方向。 Felix是一个OSGi版本4规范的Apache实现,而Equinox项目是Eclipse开源组织的OSGi R4版本规范核心框架的实现。OSGi是一个基于Java的服务平台规范,其目标是被需要长时间运行、动态更新、对运行环境破坏最小化的系统所使用。有许多公司(包括Eclipse IDE,它是第一个采用OSGi技术的重要项目)已经使用OSGi去创建其微内核和插件架构,以允许在运行时刻获得好的模块化和动态组装特性。几个其他项目如Apache Directory、Geronimo、Jackrabbit、Spring以及JOnAS也都正在转向采用OSGi。
Richard Hall是该项目的提交者之一,他上个月在ApacheCon对Apache Felix项目作了介绍。他的介绍是从OSGi架构概览及其框架层开始的。他说任何应用,不论是嵌入式系统、客户端或服务器应用,都可以从在其使用OSGi实现过程中获取模块化和扩展性等益处。在介绍中,Richard还示范了在一个简单的基于Swing的绘图程序中使用Felix组件的例子。

InfoQ就Felix项目目标、当前状态、以及该框架怎样适合其他Apache项目等问题采访了Richard,尤其是那些在SOA栈中的项目,因为Felix也把提供面向服务组件模型作为目标。

Richard说Felix项目是志愿者社区努力的结果。该项目的目标是使该框架易于嵌入其他项目中去。他说目前发布的1.0.1版本大部分符合了OSGi的R4规范,并且已经进行过OSGi TCK(Test Compatibility Kit)测试。TCK测试套件测试结果发布在Felix 网站上。按照R4规范要求,目前主要缺少的一块是支持bundle fragment,这将在下一个版本中完成。Fragment是附属于主要应用bundle上的bundle。关于fragment一个比较好的例子是为不同地区翻译文件。Felix 1.0.2版预计很快就会发布。

针对Felix怎样适合Apache SOA项目(如ServiceMix和CXF)这一问题,他回答说,ServiceMix和CXF社区对OSGi技术都很有兴趣,而且OSGi平台为部署和管理那些使用了这些技术实现的服务提供了一个很好的环境。

企业SOA项目中依赖和版本管理及治理都在达成SOA利益过程中扮演着至关重要的角色,Felix能在企业级SOA实施中扮演什么样的角色呢?

至少,它给它们提供了一个平台。其中,它们可以以模块化的形式打包、部署、以及执行应用,以帮助它们进行依赖和版本管理。事实上,OSGi技术正是Java平台所缺少的模块化层。另外,OSGi平台还提供面向服务的应用模型,除了模块化之外,它还允许基于OSGi的应用按照面向服务原则来构建。

最新版Eclipse——Europa,是作为OSGi模块来打包的。有计划将Apache其他产品(例如Tomcat)也打包成OSGi模块吗?

Eclipse使用OSGi作为其插件的模块化机制。我们Felix的目标是让其它Apache项目将其产品打包成OSGi bundle。在Felix内部,我们已经开始为各种常用开源包的JAR文件创建bundle包装器,以帮助启动这一过程。很多情况下,这一工作简单到只需在已有JAR文件manifest中增加一些元数据即可,但是还有一些情况下,将已有项目与OSGi技术集成需要付出更多的努力。我们也正在与Maven社区一起工作,试图给每个Maven所创建的JAR文件中增加一些OSGi元数据,这将是一个好的开始。

Felix的下一个重要版本将是1.2版本,它将会支持bundle fragment。有了对fragment的支持,Richard认为这个Felix将基本上符合R4规范要求,这将使其进一步符合R4.1规范过程更加容易。

今年初,Felix从Apache孵化器毕业,成为一个顶级项目;该项目团队在十月份发布了1.0.1版本。上个月,一个针对服务组件运行时(Service Component Runtime ——SCR)描述符的Maven插件发布了。该插件可以用来基于注解产生OSGi服务描述符。Felix也有了Eclipse集成支持,开发者可以在Eclipse IDE里运行Felix。Felix组件按照Apache软件许可证2.0(Apache Software License Version 2.0)来发布许可。


可以在http://infoq.com/osgi上看到更多的OSGi相关新闻和视频。
分享到:
评论

相关推荐

    OSGi and Apache Felix 3.0 Beginner's Guide 代码和书

    2. **Apache Felix框架**:学习Apache Felix的安装、配置和使用,包括如何启动和停止OSGi容器,以及如何通过命令行接口或图形用户界面管理bundle。 3. **Bundle生命周期**:理解bundle的安装、启动、更新和卸载过程...

    Felix_OSGi实作

    Felix是OSGi容器的一个实现,是Java开发者在进行模块化开发时的常用工具。 在开发使用Felix的OSGi应用时,首先需要准备开发环境,这通常涉及到JDK、Maven和Felix这三个主要部分。JDK是Java Development Kit,是Java...

    apache-felix-demo

    Apache Felix 是一个基于 Java 的开源框架,它是 OSGi(Open Service Gateway Initiative)规范的实现。OSGi 是一套用于管理 Java 应用程序模块化、动态部署和版本控制的框架。Apache Felix 演示(apache-felix-demo...

    org.apache.felix.main-6.0.3.rar

    这表明我们可以期待深入理解Felix框架如何启动和管理OSGi容器的核心部分。 标签 "felix osgi" 明确指出我们要讨论的是关于Apache Felix和OSGi的相关知识。Apache Felix是OSGi服务运行时的一个实现,它提供了一个...

    WEB容器托管OSGi容器(轻量级集成方式)

    1. **OSGi框架**:如Apache Felix、Equinox(Eclipse项目的一部分),它们提供了模块化的运行时环境,支持服务的发布、查找和绑定,以及对模块的生命周期管理。 2. **Web容器集成**:将OSGi容器集成到Web服务器中,...

    example-spring-boot-embedded-felix:测试如何将Apache Felix嵌入到Spring Boot应用程序中

    运行嵌入式Apache Felix OSGI容器的示例Spring Boot Web应用程序 这个想法是能够: 加载运行嵌入式Felix Framework的基本Spring Boot App。 使用标准的注解(例如Spring Web控制器和ServletFilter等),使用普通...

    tomcat嵌入OSGI容器

    标题中的“tomcat嵌入OSGI容器”是指在Apache Tomcat服务器中集成OSGI(Open Service Gateway Initiative)框架,使得Tomcat能够支持模块化的应用程序部署和管理。OSGI是一种Java平台上的服务导向架构,它允许动态地...

    osgi 在web容器中部署

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

    org.apache.felix.main.distribution-5.0.1

    Apache Felix 提供了丰富的命令行界面(CLI)、图形用户界面(GUI)以及 RESTful API,方便开发者进行 OSGi 容器的管理和监控。此外,Felix 社区还开发了一系列的附加组件,如配置管理器、服务跟踪器等,以支持更...

    利用felix和struts2实现osgi web

    - 结构原理:Web容器注册Struts OSGi监听器,监听器控制Apache Felix Host,Felix Host启动和管理Felix Framework,而Struts OSGi Plugin监听bundle的变化,当检测到Struts bundle时,加载相应的Struts配置。...

    osgi在web容器中部署的例子

    Pax Web是一个用于在各种Java应用服务器上运行OSGi的HTTP服务,而Apache Tomcat Mod OSGi则是一个Tomcat的模块,允许在Tomcat内部运行OSGi容器,如Equinox或Felix。 在本例子中,我们看到几个关键文件: 1. `...

    org.apache.felix.inventory-1.0.2.zip

    "inventory"可能是指Felix的库存或管理组件,用来监控和管理OSGi容器中的服务和组件。 描述中的"gradle-jcpp-plugin.zip"表明这是一个基于Gradle的插件,专门用于C预处理器(jcpp)。Gradle是一个流行的构建自动化...

    Struts2 Felix1.4搭建OSGI web infrastructure Source

    Felix是Apache软件基金会开发的一个实现OSGI(开放服务网关倡议)规范的开源容器,它允许动态模块化地管理和部署Java应用程序。本项目结合了Struts2和Felix1.4,构建了一个基于OSGI的Web基础设施,提供了灵活和可...

    springDM+felix

    通过Spring DM,你可以轻松地在OSGi容器中管理服务的生命周期,配置和依赖关系。 **Apache Felix** Apache Felix是基于OSGi R4规范的开源实现。OSGi是一种模块化系统,它定义了一种标准的方式来打包、部署和管理...

    osgi spring实例

    1. **配置OSGi环境**:设置OSGi容器,如Apache Felix或Eclipse Equinox,并确保其包含了Spring相关的bundle。 2. **打包Spring应用为OSGi bundle**:将Spring应用的类和依赖打包成遵循OSGi规范的bundle,每个bundle...

    OSGi崁入Servlet的配置步驟

    OSGi容器通常提供了一个HTTP服务实现,如Apache Felix HTTP Service或Jetty。你需要在Bundle的清单文件(MANIFEST.MF)中声明对这些服务的依赖,如`Import-Package: org.osgi.service.http;version="[1.2,2.0)"`。 ...

    osgi基础demo-搭建servlet

    1. **选择OSGi容器**:有多种OSGi容器可供选择,如Apache Felix、Equinox(由Eclipse提供)或Karaf等。这些容器提供了运行和管理OSGi Bundle的基础。 2. **配置容器**:安装并配置选定的OSGi容器,设置相应的配置...

    spring osgi相关资源

    4. 依赖库:包括了对Apache Felix或Equinox等OSGi容器的适配器,以及一些基础库,如log4j、commons-lang等。 综上所述,Spring OSGi结合了Spring的便利性和OSGi的模块化优势,为Java企业级应用提供了一种高效、灵活...

    pax-runner-platform-felix-1.8.6

    Pax Runner 支持多种 OSGi 容器,其中 Felix 是 Apache 软件基金会开发的一个流行的 OSGi 实现。 ** Pax Runner 平台 ** Pax Runner 平台的核心目标是简化 OSGi 应用程序的开发、部署和测试过程。它允许开发者在一...

    osgi 插件开发

    OSGi容器(例如Knopflerfish、Equinox和Apache Felix等)的出现极大地简化了复杂应用的开发过程。 #### OSGi的核心特性 1. **动态性**:OSGi允许开发者在不停止整个系统的情况下安装、卸载、启动和停止单个模块。 ...

Global site tag (gtag.js) - Google Analytics