写点什么

新版 OSGi 即将发布

  • 2009-07-26
  • 本文字数:1493 字

    阅读完需:约 5 分钟

近日 OSGi 联盟的技术指导 Peter Krien UK OSGi Users Group (由 Paremus 资助,在伦敦的 SkillsMatter 举办)上就即将到来的 OSGi 4.2 发表了一个主题演讲。该活动已经被全程录制下来,同时还有演讲视频

将于今年8 月底发布的OSGi 4.2 具有很多新特性,其中一些特性已经被 Equinox (Eclipse 背后的 OSGi 引擎)实现了。

OSGi 核心的新特性包括:

  • 标准的启动框架,这会简化 OSGi 系统的启动过程而不管底层的实现如何(比如说可以通过变换类路径用 Felix 替换掉 Equinox )。
  • Service Hooks,凭借它 OSGi bundle 能够拦截并过滤去往其他 bundle 的服务(这么做能够进行安全检查,诸如此类)。
  • Bundle tracker,它可以在 bundle 启动和停止时对其进行监控。
  • 增强的安全机制,这样不管是肯定还是否定的许可都可以对授权机制进行定制。
  • 标准的 Bundle-License 头,这样 bundle 就可以定义其协议需求以达到管理的目的。

OSGi 纲要涵盖了可能会出现的其他服务,它规定下一个发布要遵循着核心,但还会包括:

  • 信息初始化,初始化信息可以存储在 bundle 的清单中。
  • 声明式服务,现在 BND 已经支持声明式服务了,同时消除了某些限制。
  • 远程服务,之前发布的 OSGi(即 RFC 119)通过远程技术将不同 VM 之间的 OSGi 服务连接器来。Bundle 的外部配置可以定义服务的连接方式。不像 RMI 那样,这些服务无需 checked exception(很明显,如果发生了通信错误则会抛出 RuntimeException)。这已被 Eclipse 的 ECF Felix CXF 实现了。
  • Blueprint extender提供了一个配置驱动的服务模型(类似于声明式服务)但却基于 Spring 模式。未来,服务可以在启动时实例化并绑定到代理上,之后还可以进行改变。

Enterprise OSGi 服务也不甘寂寞,它将含有一个基于 OSGi 的 Transaction API(基于 JTA),通过 OSGi 服务提供 JDBC 与 JNDI,同时还会借助于 JMX 管理 OSGi 系统。Enterprise OSGi 的一个难题就是 Web 容器,容器应该可以将 WAR 安装到运行着的 OSGi 系统中,正如 Spring DM Server 那样。

还有几个试验性质的服务(并没有定义在规范中),例如创建嵌套框架的能力(OSGi 引擎可以在其上实例化另一个 OSGi 引擎来运行应用)以及 TSL——一种基于 shell 的脚本语言,用于与 OSGi 服务进行交互并支持运行时命令。后者的目标是实现一个标准的 shell 以控制任意的 OSGi 引擎而不是针对特定系统的特定 shell。像 POSH 和 Pax-Shell 这样的系统已经开始使用 TSL 了。

OSGi 中那些试验性服务的试验手段与 JCP 中定义的那些试验性系统是有很大区别的,相对于花费很长时间来定义规范,然后再获得其工作方式的反馈信息,RFC 采取了不同的策略:首先提供临时性的细节描述,然后采取多个实现(Felix、Knopflerfish 及 Equinox 等等)来获得其反馈信息,接下来根据反馈来精华规范直到其稳定为止而不是发布某些不确定的东西(与 Java 的发布形成了鲜明的对比)。在发布最终规范前有机会进行试验并获得反馈信息意味着未来的变化不太可能对最终规范造成严重影响。

该演讲的一些结论与 JSR 294 的结果不谋而合。目前已经合并了很多需求和实现,由于 JavaC 处理元模块系统方式的原因,有人提出改变 Java 中可视化(visibility)的工作方式(包括新引入的模块 keyword)。大家就元模块的含义与 keyword 展开了激烈的讨论。Sun 工程师及 Felix 提交者 Richard Hall 说到:

就我来说,我很理解 Peter 的担忧:我们定义的东西含义太不明晰了,这最终会毁掉 Java 的愿景:“编写一次,到处运行”。定义东西时如果能具体一些就好了。

幸好 JSR 294 还有时间进行完善;最近关于 JSR 294 的众多评论表明大家都希望能有一个解决这些问题的合理方案。

查看英文原文: OSGi: The Next Release

2009-07-26 05:512060
用户头像

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

关注

评论

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

【机器学习入门与实践】合集入门必看系列,含数据挖掘项目实战

汀丶人工智能

人工智能 数据挖掘 机器学习 深度学习

Unity 之 安卓堆栈跟踪和日志工具 (Android Logcat | 符号表解析Bugly捕获)

陈言必行

Unity 三周年连更 日志工具

跨平台应用开发进阶(四十七)APP字体库文件处理方案

No Silver Bullet

App 跨平台应用开发 三周年连更 字体库

CSS架构之BEM设计模式

肥晨

CSS bem 三周年连更 css架构

从零开始学习MySQL调试跟踪(2)

GreatSQL

Ai工具推荐 - Claude(手机端也可使用的媲美ChatGPT的产品)

炜娓道来程序人生

AI 工具 ChatGPT

测试ChatGPT能不能帮助我们傻瓜式的搭建Spring Boot工程

致知Fighting

Java ChatGPT

如何基于 zap 封装一个更好用的日志库

江湖十年

后端 日志 log Go 语言

大模型的三大法宝:Finetune, Prompt Engineering, Reward

Baihai IDP

人工智能 大模型 基础模型 企业号 4 月 PK 榜 RLHF

NFTScan 与 NodeReal 达成战略合作:NFT API 已上架 NodeReal API Marketplace

NFT Research

NFT NFTScan

css水平垂直居中各种方法实现方式

肥晨

三周年连更

使用chatGPT自动回复抖音评论

南城FE

人工智能 AI 前端 后端

支持宽屏格式的音乐播放器:Swinsian mac版

真大的脸盆

Mac Mac 软件 播放器 音乐播放器

学会提示-AI时代职场必修课

京东科技开发者

人工智能 京东云 GPT ChatGPT4 企业号 4 月 PK 榜

Java中「Future」接口详解

Java 架构

CloudQuery 询盾社区版 v1.5.0 正式发布!

BinTools图尔兹

数据库 社区活动 版本发布

【直播回顾】数字化转型成为银行业发展的关键(中)

易观分析

金融 银行

连续信源的熵与RD

timerring

信息论 三周年连更

从ChatGPT看爆火技术概念及医疗领域科技与应用场景

京东科技开发者

人工智能 京东云 企业号 4 月 PK 榜

IDPChat:探索基于LLaMA和Stable Diffusion的「开源」中文多模态AI大模型

Baihai IDP

人工智能 开源 大模型 Stable Diffusion llama

Redis复制(replication)

京茶吉鹿

数据库 nosql redis

C生万物 | 函数的讲解与剖析【内附众多案例详解】

Fire_Shield

C语言 三周年连更

FastAPI 快速开发 Web API 项目: 响应模型与错误处理

宇宙之一粟

Python FastApi 三周年连更

markdown格式基础用法

乌龟哥哥

三周年连更

数据库原理及MySQL应用 | 数据表操作

TiAmo

数据库 MySQL数据库 数据表 三周年连更

分布式实时搜索和分析引擎——Elasticsearch

会踢球的程序源

Java elasticsearch 后端

面对一堆烂代码,重构,还是重新开发?

架构精进之路

程序员 重构 三周年连更

参与开源之夏 x OpenTiny 跨端跨框架 UI 组件库贡献,可以赢取奖金🏆!这份《OpenTiny 开源贡献指南》请收好🎁!

Kagol

开源 Vue 前端 UI组件库

Spring Data开发手册|Java持久化API(JPA)需要了解到什么程度呢?

浅羽技术

Java 框架 jpa ORM 三周年连更

缓存空间优化实践

京东科技开发者

redis 京东云 企业号 4 月 PK 榜

TiDB与MySQL的SQL差异及执行计划简析

京东科技开发者

数据库 开源 TiDB 京东云 企业号 4 月 PK 榜

新版OSGi即将发布_Java_Alex Blewitt_InfoQ精选文章