InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

JSR277和OSGi会结合吗?

作者 Alex Blewitt 译者 张龙 发布于 2008年5月21日

领域
架构 & 设计,
语言 & 开发
主题
语言 ,
Java ,
技术
标签
OSGi ,
JSR 277 ,
JSR 294 ,
JSR 291

上个月的一篇新闻谈及了JSR277和OSGi(即JSR291)的状况,这在JSR277专家组邮件列表引发了一场激烈的争论,这场争论是今年以来最为激烈的一场。这之后的主要推动者之一就是Bryan Atsatt,他是JSR277(模块)和JSR294(超级包)的专家组成员。他说JSR277可以胜过OSGi

初始规范实际上包含两个独立的部分:一个api/框架,一个带有新的分发格式的实现。不幸的是,人们总是不加区别地介绍他们。更遭的是,新的分发格式(“.jam”文件)经常占据上风。
那么JSR 277如何胜过OSGi呢?通过向SE环境提供紧密的集成。其优势主要体现在以下四个方面:
  • 正则存储模型
  • 编译期依赖的决定
  • 跨模块实现的类/资源共享
  • 通过命令行的执行
对于现存的OSGi包来说这些都可行。还能更好点吗,哼?也许还有希望。

事实上,Bryan已经在JSR277专家组中发表了大量的评论;他提出规范应该与实现相分离,因为在专家组的草案介绍中它们已经混淆在一起了;另外他又提出Peter Kriens应该加入进来

专家组已经深陷泥潭了,我们需要重新步入正轨。我提出以下具体步骤:

  1. 让Peter Kriens加入到专家组中。Peter在这个领域具有丰富的经验,我相信他很快就会成为一个有价值并且活跃的贡献者。
  2. 将设计/讨论/调查的互动过程搬出Sun的办公室,搬到专家组中。
  3. 给予专家组更多一手信息(或者至少一个快照)。

当然,看起来很多讨论和实现的决定都是在Sun公司里闭门造车,在决定制订出来后,只是把专家组看作是证明该决定的读者。事实上,以上这两点正是导致Peter Kriens不想加入的罪魁祸首

然而,JSR 277现在包含两个好的(资源库和语言模块)和一个坏的(JAM)部分。就在JavaOne 2008之前,Stanley发布了一个简短的OSGi互操作性文档。这个文档不仅在细节上非常简略,而且还提到了尚未公布的早期草稿#2(EDR2)的很多地方。我问了专家组成员BJ Hargrave [Equinox - ed]和Richard Hall [Felix - ed]是否他们看到了这个草稿,然而他们也并未看到。最近我在JSR 277邮件列表中抱怨缺乏讨论,看起来工作都在暗地里进行。

在Alex和Stanley介绍JSR 277的过程中,我清楚地认识到幕后已经做了很多工作了;而这一切并未在邮件列表上进行过任何交流。对于在座的各位并不知道几乎所有的东西都没有经过专家组的讨论。如果唯一的选择就是同意Sun在幕后所做的工作的话,那我加入专家组还有什么意义呢?如果在JavaOne演示的尚未发布的EDR2成为JSR 277最终的结果时,有多少东西需要改变?当大部分工作已经完成时,我还需要加入专家组吗?在这种情况下,你能完成多少基本的改变?

我们现在处在一个关键时期。尽管我很想参加关于Java语言模块和仓库的讨论,但是我不能对Java中的模块系统负责,因为它毫无道理地搞出这么多复杂的东西出来。我真心希望Sun能抓住这救命稻草,放弃JAM,采取更为简单的方式在整个系统中使用OSGi元数据。这是我在过去的几个月中得出的结论!

同时,Sun的不断创新也意味着OSGi的交互正在不断进步。Alex Buckley已经加入了277专家组(负责上述的JSR294的简化工作,这真是可喜可贺啊);同时Mandy Chung已被赋予OSGi互操作性方面的工作

看起来Sun已经在关注了,还算及时。在今年的JavaOne上,我们报道了基于OSGi的Spring Source应用平台运行在OSGi上的GlassfishOSGi最佳实践展示(PDF)激起了人们的兴趣,自从JavaOne后,在论坛和博客上关于包(bundles)的讨论就在持续增长。我们希望JSR277 EDR 2会牢记这些建议并且将OSGi和JSR 277更紧密地结合在一起。

查看英文原文:Are JSR277 and OSGi coming together?

译者 张龙 热衷于编程,乐于分享,对新技术有强烈的探索欲,对Java轻量级框架有一定研究。

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。