近日OSGi联盟发布了OSGi 4.2规范。虽然早期草案已经发布了,但此次则为最终版。
某些框架如Equinox 3.5和Felix 2.0已经开始兼容OSGi 4.2了。然而由于4.2版那时还没有发布,这些引擎就不能说兼容于OSGi 4.2。现在4.2版已经发布了,这些团队到底如何来满足规范的要求只是个时间问题了。
此次发布都包含哪些内容呢?InfoQ此前曾报道过关于草案的相关信息,但现在规范最终版已经发布了,下面就是新版的一些内容:
•框架加载(Framework Launching)。虽然我们可以从Java应用中运行嵌入式OSGi引擎(比如Equinox的Servlet桥),但这种方式却将应用与具体的引擎绑定在了一起。借助于包装器(比如Pax Runner)可以通过相对简单的方式将特定于引擎的内容编码到引擎中来启动。现在可以通过一种透明的机制进行加载了,这意味着可以加载一个OSGi运行时而无需担心是哪个运行时。这样我们就可以通过替换启动类路径上的JAR文件在Equinox及Felix下测试应用了。
•远程服务(Remote Service)。过去叫做分布式OSGi及RFC 119,现在称作远程服务的技术是用于连接多个OSGi VM的。远程服务采用了服务的概念(这对于动态OSGi应用来说非常关键)并提供了一种机制以将服务公开给远程使用者(使其可以在本地使用远程服务)。并不像其他方式(比如RMI)那样,远程服务无需实现不同的接口或是抛出受检查的异常。同时它也不会假设万物都会正常工作,而是认为OSGi服务是动态的,无论如何服务都能够在OSGi环境下抛出并处理异常。
•Blueprint服务(Blueprint Service)。对于熟悉Spring IoC与DI的开发者来说会发现Blueprint服务与其有异曲同工之妙。客户端可以根据外部的配置文件来决定连接到哪些服务上,同时还会动态连接这些服务。就像声明式服务那样,你可以约束所用的服务类型(比如强制与否等),但与声明式服务不同的是,在缺少服务的情况下Blueprint服务会提供一个相应的代理。在客户端代码与服务进行交互时,客户端会被阻塞住直到定位到服务之后。最后,凭借Blueprint服务之类的特性,我们可以避免应用中出现特定于容器的代码,这样无论系统运行在OSGi运行时内部还是外部都是大有裨益的。
•Bundle跟踪器(Bundle Tracker)。OSGi早就有了一个服务跟踪器(Service Tracker)用于监控进出的服务,Bundle跟踪器是对服务器跟踪器概念的一个延伸,用于监控bundle的信息。此前服务可以通过BundleListener来动态查看进出的bundle,而BundleTracker也达到了同样的高度,就像ServiceTracker之于ServiceListener一样。我们可以通过这个特性执行动态注册之类的功能,就好象是Blueprint服务或声明式服务读取或处理元数据一样。比如说,Web引擎可能会通过HttpService自动扫描新安装的bundle和自动注册的Servlet。
•服务钩子(Service Hook)。除了判定当前的服务外,我们还可以拦截服务之间的事件并对其进行过滤。这可用来实现基于角色的许可模型或是根据产品的不同而开启不同的功能集。此外还可以通过拦截另一个bundle的事件而提供代理(或是负载平衡)同时又隐藏这些事件,然后用另一种机制进行代理(比如说分布式服务)。监听器钩子可以按需实现这些功能而无需提前注册。
•条件许可(Conditional Permission)。OSGi 4.2中许可的一大变化是增加了DENY访问及允许访问的能力。通过与证书签名的结合,这种方式可以显式指定某个bundle的子集上都允许哪些许可权限。这有助于创建安全的OSGi平台,可以阻止安装那些未授权的bundle。
新的规范还有很多其他变化,比如OSGi bundle具有了自己的MIME类型(application/vnd.osgi.bundle)、指定Bundle-Icon及Bundle-License的能力、声明式服务的变化以允许更少的许可集合(package访问能力而非protected)。DS schema还支持其他的XML元素,这有助于特定于服务的信息的传递。此外,由应用管理员所管理的应用现在可以在完成后获取其返回值了。
Equinox 3.5已经部分支持OSGi 4.2了,Apache Felix在上月初也已经通过了一个测试集(在4.2规范发布前)。我们相信本月底一切都会明朗起来,包括4.2规范的官方定论及测试工具集。
InfoQ就此次新版本的发布请Paremus的创建者与CEO、Paremus Service Fabric OSGi cloud的作者Richard Nicholson谈谈自己的看法:
“在过去几年中,我们一直从事着分布式OSGi系统的构建,非常高兴看到OSGi 4.2规范的发布,此次发布引入了标准的远程服务与Blueprint服务。”
你认为OSGi 4.2中哪些地方最值得关注呢?
转自:http://www.infoq.com/cn/news/2009/10/osgi-4-2-released
分享到:
相关推荐
Felix是一个遵循OSGi规范的轻量级、模块化的Service Oriented Runtime,由Apache软件基金会支持,它允许在运行时动态地安装和卸载OSGi模块。Felix是OSGi容器的一个实现,是Java开发者在进行模块化开发时的常用工具。...
OSGi 4.2版本的发布标志着OSGi框架的成熟和完善。该版本提供了更好的模块化、动态性和灵活性,解决了Java EE开发及部署模型的局限性。 加强企业级特性: OSGi 4.2版本提供了加强的企业级特性,包括: *保护原有...
Felix是OSGi联盟实现OSGi核心规范的一个开源实现,它是Apache软件基金会的一部分。Felix Plugin则是在Felix OSGi环境中使用的插件,用于扩展和增强Felix的功能。 这篇名为“osgi felix plug in”的博文虽然链接不...
Apache Felix是Apache软件基金会开发的一个开源实现,它遵循OSGi(Open Service Gateway Initiative)规范,为Java应用程序提供模块化运行时环境。OSGi框架的核心功能是将Java应用程序分解成独立的、可交互的模块,...
OSGi和Apache Felix 3.0是两种在Java领域内与模块化相关的重要技术。OSGi(Open Services Gateway Initiative)是一种Java编程环境,用于开发和运行模块化软件程序和中间件。Apache Felix是一个开源的OSGi实现,它...
标题 "OSGI Felix BndTools例子(一步一步指导)" 指向的是一个关于使用OSGI框架,特别是Felix实现,并配合BndTools工具进行模块化开发的教程。在这个教程中,作者逐步指导如何构建和管理OSGI服务。下面将详细阐述OSGI...
Apache Felix是Apache软件基金会开发的一个开源实现,它遵循OSGi(Open Service Gateway Initiative)规范,为Java应用程序提供了一个模块化运行时环境。OSGi框架的主要目的是解决Java平台上的类加载问题,促进组件...
【标题】:“利用felix和struts2实现osgi web”的知识详解 【描述】:在Java编程领域,OSGi(Open Service Gateway Initiative)是一种针对动态模块化开发的规范,它提供了一种服务导向、组件化的开发环境,使得...
《OSGi和Apache Felix 3.0初学者指南》是一本深入浅出介绍OSGi技术和Apache Felix实现的书籍。OSGi(Open Service Gateway Initiative)是一个Java模块化系统和标准,它为开发人员提供了构建可升级、可管理和可重用...
《OSGi and Apache Felix 3.0 Beginner's Guide》是一本专为初学者设计的书籍,深入浅出地介绍了OSGi(Open Service Gateway Initiative)框架和Apache Felix这一实现OSGi规范的开源项目。源代码包包含了书中各个...
Felix是Apache软件基金会开发的一个实现OSGI(开放服务网关倡议)规范的开源容器,它允许动态模块化地管理和部署Java应用程序。本项目结合了Struts2和Felix1.4,构建了一个基于OSGI的Web基础设施,提供了灵活和可...
凡人的OSGi 这是我在 NA 2011,EU 2012和EU 2014上的“ OSGi的凡人”演示文稿的代码。 这是使用OSGi Declarative Services从头开始构建的最小的独立RESTful服务器,旨在证明OSGi不仅适用于超人大师。 该示例演示了...
Simplify your OSGi development experience by learning about Felix iPOJO. A relentlessly practical beginner's guide that will walk you through making real-life OSGi applications while showing you the ...
标题"OSGI中Hibernate扩展在felix中的应用"指的是如何在OSGI Felix框架中整合和使用Hibernate。Felix是Apache软件基金会的一个项目,它是OSGI规范的开源实现。将Hibernate引入OSGI环境,可以实现更灵活的部署和管理...
《OSGi与Apache Felix 3.0初学者指南》是一本深入浅出地介绍OSGi框架及其在Apache Felix实现下的应用开发的书籍。OSGi(Open Service Gateway Initiative)是一种Java平台上的模块化系统和动态模块加载环境,它允许...
OSGi原理与最佳实践基于作者多年使用0SGi的经验而编写,涵盖了0SGi从/kfqN深入的知识体系,从OSGi的简介开始,介绍OSGi的作用及基本概念;其后进入OSGi实战,...第11章 先睹为快:OSGi R4.2草稿版 第12章 OSGi展望
随着OSGi 4.2版本的发布,OSGi框架进一步加强了其在企业级应用中的特性,包括但不限于: - **加强企业级特性**:通过增强安全性和稳定性,使OSGi更适合于构建复杂的企业级应用。 - **保护原有JavaEE投资**:OSGi的...
在选择OSGi实现时,通常会考虑Equinox、Apache Felix和Spring DM(现在称为Spring OSGi),这三种流行的实现各有特点和优势。 1. **Equinox**:由Eclipse基金会维护,是OSGi R4规范的核心框架实现。Equinox以其稳定...
Apache Felix 是一个开源项目,属于 Apache 软件基金会,主要致力于实现 OSGi(Open Service Gateway Initiative)规范。OSGi 是一种Java模块化系统,它允许开发人员将应用程序分解为独立的、可管理和可升级的组件。...