50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

OSGi 4.2 发布了

  • 2009-10-02
  • 本文字数:1859 字

    阅读完需:约 6 分钟

近日 OSGi 联盟发布了 OSGi 4.2 规范。虽然早期草案已经发布了,但此次则为最终版。

某些引擎如 Equinox Felix 分别在其 3.5 版和 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 中哪些地方最值得关注呢?

查看英文原文: OSGi 4.2 released

2009-10-02 06:133302
用户头像

发布了 88 篇内容, 共 272.6 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

Linux安装tensorflow

Geek_7ubdnf

Linux

对话 BitSail Contributor | 姚泽宇:新生火焰,未来亦可燎原

字节跳动数据平台

大数据 开源 字节跳动 数据引擎

如何管理项目干系人?

敏捷开发

项目管理 项目干系人

软件测试/测试开发 | Jenkins 持续集成体系介绍

测试人

软件测试 持续集成 jenkins 自动化测试 测试开发

从TMMI角度谈谈质量度量

老张

软件测试 质量度量

【碎碎念】下雪了

Firshare

年终总结

EMQ & IoTDB 联合 Meetup 回顾 | 数据基础设施软件的应用实践分享

Apache IoTDB

软件测试/测试开发 | 做到这几点,你也能成为 BAT 的抢手人!

测试人

软件测试 自动化测试 测试开发 测试工程师

【HA小知识】DRBD数据不一致怎么办?怎么处理?

行云管家

高可用 ha 高可用软件

跨域:后端工程师最熟悉的陌生“人”

华为云开发者联盟

后端 华为云 跨域 企业号 1 月 PK 榜

​Apache IoTDB UDF 「Sample」的案例与最佳实践

Apache IoTDB

年中盘点 | 2022年,PaaS 再升级

亚马逊云科技 (Amazon Web Services)

PaaS 亚马逊云科技 Builder 专栏

等保堡垒机选择哪个厂家好?咨询电话多少?

行云管家

等保 堡垒机 等级保护

中冶赛迪*IoTDB | 多项目全流程以IoTDB为时序数据处理方案,预计写入查询效率提升一倍

Apache IoTDB

长安汽车*IoTDB | 构建1.5亿时间序列车况数据处理方案,查询稳定实现毫秒级返回

Apache IoTDB

不写代码就实现了自动化测试,面试官都惊呆了!Apipost的自动化测试功能强烈推荐

徐天

自动化测试 apipost

软件测试/测试开发 | Jenkins job 机制该如何使用?

测试人

软件测试 jenkins 自动化测试 测试开发

Apache IoTDB 中的时间精度 | 铁头乔分享

Apache IoTDB

站酷基于服务网格 ASM 的生产实践

阿里巴巴中间件

阿里云 云原生 服务网格

redis.conf 7.0 生产配置详解,全网最全

码哥字节

NoSQL 数据库 redis 底层原理 Redis 7

Linux常用命令

Geek_7ubdnf

Linux

NFTScan 与 AlienSwap 达成战略合作伙伴,双方在 NFT 数据层面展开合作

NFT Research

NFT

屡获殊荣|旺链科技亮相2022中国双链年会并喜获佳绩

旺链科技

区块链 区块链技术 双链年会

亚马逊云科技启示录:创新作帆,云计算的征途是汪洋大海

亚马逊云科技 (Amazon Web Services)

云计算 亚马逊云科技 Builder 专栏

Apache IoTDB & SeaTunnel 联合 Meetup | 10月15日 线上直播预约开启!

Apache IoTDB

pip安装时 fatal error C1083 无法打开包括文件 “io.h” No such file or directory

Geek_7ubdnf

Python

易观:2022年中国产业数字化发展成熟度指数报告

易观分析

数字化 产业 报告

软件测试/测试开发丨Java or Python?测试开发工程师如何选择合适的编程语言?

测试人

Java Python 软件测试 自动化测试 测试开发

算力攻坚,视频云背后的「硬」核玩家

云布道师

阿里云 视频云

性能再升级,XMeter Cloud专业版正式上线

EMQ映云科技

物联网 IoT 云服务 mqtt 企业号 1 月 PK 榜

新一代 IT 服务管理平台 DOSM,助力企业数字化转型

云智慧AIOps社区

数字化转型 运维自动化 智能运维 云智慧 IT管理

OSGi 4.2发布了_Java_Alex Blewitt_InfoQ精选文章