写点什么

我们为什么需要分布式 OSGi

2009 年 4 月 27 日

随着分布式 OSGi 项目即将抵达重大里程碑,现在应当是一个恰当的时机来回顾一下我们已经完成了哪些工作、还有哪些需要做的,并谈一谈我们为什么要进行这项工作。

为迎接即将发布的 OSGi 规范 4.2 版,我们在 11 月对设计文档初稿(按 OSGi 术语叫 Requests for Comment,或简称 RFCs)做了更新。这个月,我们在 Apache CXF 发布了该版本中一个重要的新设计——即 RFC 119,分布式 OSGi——的参考实现源码

由于当前版本的OSGi 规范已经在嵌入式领域取得成功,因此分布式OSGi(Distributed OSGi)项目被计划纳入OSGi 的下个版本,并开始为企业级应用所采纳。比如,Eclipse 插件就采用了OSGi 框架;另外,所有应用服务器厂商以及众多ESB 厂商也都接纳了OSGi。

OSGi 联盟于 2006 年 9 月召开过一个公开研讨会,深入探讨了对企业版(若可能的话)的需求(Peter Kriens 写了一篇非常好的描述此背景的文章)。当前版本的OSGi 规范已经通过 JSR 291 成为了 Java SE 的一部分,对于我们参加了该研讨会的人来说,所面临的问题是,OSGi 规范是否也应成为 Java EE 的替代方案,以及假如是的话那么需要满足哪些需求。众多关键需求中的一条是,OSGi 服务能够调用运行于其他 JVM 之上的服务,并支持企业应用拓扑,从而提高可用率、可靠性及可伸缩性。(当前的 OSGi 规范只定义了在单个 JVM 里的服务调用行为。Peter 的那篇研讨会总结文章里可以看到更多信息。)

2007 年 1 月召开了首次企业专家组会议,工作由此正式开始。分布式OSGi 始终是该议程里级别最高的需求之一。起初,我们常被批评为“重复已有工作”或“制造另一个CORBA”,不过这些都是由误解造成的。设计文档初稿(RFC 119)和参考实现代码将有助于解释清楚我们并非如此。我们只是扩展OSGi 框架来配置现有的分布式计算软件系统。我们在RFC 119 里采用“distribution software”(或简称DSW)这一术语来泛指任何能够进行远程服务调用的协议与数据格式系统。远程指的是另一个JVM 或地址空间。

有人建议我们选择一种具体的DSW(distribution software),并将其标准化。此做法的一个好处是,我们可以利用针对特定协议的功能(比如可执行代码的序列化),不过这会缩小选择范围,并可能导致产生依赖。我们并没有那样做,而是定义了一个可用于任何分布式计算软件系统的通用配置机制。我们也试图不妨碍使用像“序列化可执行代码”这样的功能——也就是说,如果你愿意的话,仍然可以那样做,只不过那不是标准化的做法,因为它是针对单一类型的DSW(distribution software)的。

除了Apache CXF 的参考实现,Eclipse ECF 项目以及Paremus 的Infinflow 产品也有意实现分布式OSGi 的设计,而且我们已经听说Eclipse Riena 项目也在作此考虑。因此,但愿我们的分布式OSGi 正走在正确的路线上。不过我们仍希望大家提供反馈,而且现在也还有时间来更改规范里的内容。分布式OSGi 的设计还包括了发现服务(discovery service)以及用于配置多分布式软件系统组件的SCA 元数据扩展。这两样东西目前尚未公开,不过应该快了。

为了说明我们目前处于什么阶段,对OSGi 联盟的运作方式做一些了解是大有裨益的。OSGi 的流程跟JCP(Java Community Process)颇为相似。实际上,OSGi 规范刚开始就是以JSR 8 出现的,而且它也基本反映了那个最初JSR 工作的进展。 OSGi 流程是从请求提案文档(Request for Proposal,简称 RFP)开始的,该文档对需求进行了详细描述。RFP 得到批准后,一个或多个满足需求的请求评论文档(Requests for Comment,RFCs)将被创建起来。当一个 RFC 得到批准后,有关规范就会进行更新,以涵盖该项设计。RFP 和 RFC 都是专家组的工作成果,尽管它们往往处于组里个别人或小部分人的带领下。

不过,OSGi 联盟在规范方面的流程是独一无二的,因为文书写作都是交由 Peter Kriens 完成的。这点好极了,因为 Peter Kriens 从一开始就跟随 OSGi 的工作,他可以确保规范的质量与一致性。而且,这也消除了其他标准化组织在把文档书写工作交给其成员(通常代表与其他成员竞争的厂商)时经常碰到的政治问题。

当前版本的参考实现是为了验证 RFC 119 的设计,并使得该份 RFC 得以通过专家组投票。在规范阶段,我们期望在把该项设计整合进规范的过程中对它做进一步讨论,这也许会引起对参考实现的进一步变动。

OSGi 专家组现在正着手于同 Peter Kriens 一起为 R4.2 版而努力,预计可于三月或四月发布初步版本,并在六月发布最终版本。关于即将发布的 R4.2 版的更多信息可以在 OSGi Dev Con 上得知。该技术大会将于 3 月 23 至 26 日在 Santa Clara 同 EclipseCon 联合召开。

R4.2 版里的另一个主要部分是对核心框架的各种扩展,比如源自 Spring 的 Blueprint Service 服务模型(用于开发 OSGi 服务)以及各种映射到 OSGi bundles 的 Java EE 部件(JTA、JDBA、JPA、JNDI、JMX、JAAS 和 Web Apps)。Java EE 映射并不如对核心的增强(如 Spring/Blueprint 或分布式 OSGi)那么成熟,它们只是一个将随 R4.2 最终版一同发布的预览。

在过去的两年里,我们已经用初稿记录了分布式 OSGi 的需求与设计,并用参考实现代码进行了演示。OSGi 规范 R4.2 企业版预计于 2009 年中发布,这是其中的一项重要特性。伴随着对 OSGi 核心框架的扩展、源于 Spring 的 Blueprint 服务组件模型以及关键 Java EE 技术的映射,即将发布 R4.2 版对 OSGi 规范和 OSGi 社区而言意味着前进中的重要一步。

阅读英文原文 Why Do We Need Distributed OSGi?


给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家加入到 InfoQ 中文站用户讨论组中与我们的编辑和其他读者朋友交流。

2009 年 4 月 27 日 00:057530
用户头像

发布了 63 篇内容, 共 22.2 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
  • Jim Marino 与 Meeraj Kunnumpurath 专访:关于 SCA 和 Fabric3

    BEA发布了在WebLogic 10.3中支持的SCA技术预览版,它是以开源的Fabric3运行时为基础构建的。InfoQ对Jim Marino和Meeraj Kunnumpurath进行了专访,前者是BEA Systems的技术主管,后者是VocaLink的首席技术人员。我们就他们对SOA和SCA的看法,VocaLink实施SOA的方法和这个技术的关键优势进行了讨论。

  • Spring Dynamic Modules for OSGi:简化 OSGi 应用的开发

    Spring Dynamic Modules for OSGi(也就是从前的Spring-OSGi)今天发布了1.0版本。InfoQ就这个版本的发布以及它能为Spring社区提供什么采访了 SpringSource的CTO——Adrian Colyer和Spring Dynamic Modules项目的领导人——Costin Leau。

  • Apollo 分布式部署指南

    2018 年 6 月 6 日

  • 敏捷与结构性模块化(二)

    在上一篇文章中,介绍了结构性模块化与敏捷之间的关系,在这个系列的第二篇文章中,我们将会研讨OSGi™,在实现JavaTM的结构性模块化方面,OSGi扮演了核心的角色;OSGi与流行的敏捷方法论之间存在着自然的联系。

  • Kafka 版本:你知道如何挑选 Kafka 吗?

    清晰地了解Kafka的发展脉络和生态圈现状,对于指导我们选择合适的Kafka版本大有裨益。

    2020 年 1 月 7 日

  • OSGi 原理与最佳实践(精选版)

    这不是一本传授OSGi高级技巧的书,但绝对是一本让人读完之后能对OSGi获得全面认识的书。作者在这本书里面试图给读者一个全方位的OSGi介绍。本精选版节选了其中的两章。InfoQ中文站就这次出版邀请BlueDavy对OSGi的近况、在具体项目上应用OSGi应该注意的问题和解决方法,以及如何在OSGi开发过程中结合使用敏捷实践的问题进行了一番访谈。

  • Dubbo 应用实践,演进以及未来规划

    演讲嘉宾曹胜利,阿里巴巴 中间件技术部 技术专家内容介绍Dubbo作为国内使用人数最多,影响力最大的RPC框架,经历了中间的几年停更之后,在2017年下半年开始逐渐恢复更新和维护,2018年投入更大精力去发展。我们的愿景是让国内有自己的合适的RPC解决方案。2018年下半年发布2.7之后,很多好的特性我们想通过这个平台告诉大家;同时我们期望给大家提供一些比较好的实践。当然,我们会把这接近一年时间的思考,一些经验,一些摸索的过程和大家分享。期望其他RPC框架开发者和使用者,都能够了解一些RPC的技术和内在。我们还从当前的一些总结出发,结合国外的技术方向,做一些未来的设想和规划。让更多人关注国内技术同时,关注国外的技术,以及这些技术的落地。内容大纲 Dubbo在(考拉,工商银行,挖财等)场景中的实践:包括遇到的问题,怎么分析,怎么解决,如何回馈给社区; 思考:针对用户的业务场景,社区遇到的问题,我们整体上怎么考虑的,又是怎么安排开源推进的; 最佳实践:针对现有的版本,我们期望的最佳实践方案; Dubbo最新的进展和规划:包括Dubbo 3.0的进展,和最新的Service Mesh的集成方案等。

    2019 年 1 月 2 日

  • 第 22 讲 | 国内区块链项目技术一览

    我们已经一起看过了很多国外区块链项目的技术逻辑。实际上,国内的优质区块链项目其实也不少,并且势头很足,不容小觑。

    2018 年 5 月 14 日

  • Hudson 以新版本编号 2.0.0 重新登场

    这是自Hudson/Jenkins分道扬镳以来Hudson的一次重要发布,它使用的是与OSGi/Sematic一致的版本编号。另外,此版本中包括JSR330依赖注入模型,所以它能更方便地运行在OSGi运行时中并且不再依赖于特定的Hudson标注。

  • OSGi 适合作为 Java 中间件的基础么?

    MuleSource的创始人Ross Mason对OSGi感到很无奈:“OSGi对中间件厂商来说是个很棒的规范,但对最终用户来说却很糟糕。”他认为OSGi还不具备供开发人员使用的条件,因为很难对开发人员隐藏全部的OSGi细节。

  • Eric Newcomer 谈 OSGi 的未来

    Eric Newcomer,OSGi企业工作组的联合主席,讲述了OSGi的变革以及它和SOA、ESB之间的关系。他谈到他是怎么认为OSGi在未来几年会成为主流,以及Sun是否会采用OSGi作为一个供选择的容器模型。

  • 专访 Richard Nicholson:Paremus Service Fabric 与 OSGi

    在全球甲骨文用户组领袖峰会上,InfoQ中文站对OSGi联盟董事会董事兼Paremus公司CEO Richard Nicholson进行了专访, 就Paremus公司的旗舰产品Service Fabric以及OSGi等话题做了深入的交流。

  • 62|Apache Hive 集成

    2020 年 11 月 12 日

  • 产品图鉴:哪些分布式数据库值得看?

    今天这一讲,我会把视角切换到产品方向,为你做一次整体介绍。所以,你也可以将这一讲当作一个产品版的课程索引。

    2020 年 10 月 16 日

发现更多内容

谈反应式编程在服务端中的应用,数据库操作优化,从20秒到0.5秒

newbe36524

C# Reactive netcore

Facebook缓存技术演进:从单集群到多区域

伴鱼技术团队

架构 系统架构 分布式系统 缓存穿透 cache

ReentrantLock 公平锁和非公平锁源码分析

张sir

Java 多线程 Java 25 周年

架构师训练营第一周学习总结

不谈

TOGAF认证自学宝典

涛哥

架构 企业架构

区块链如何打通征信行业的“任督二脉”?

CECBC区块链专委会

CECBC 区块链技术 征信 数据共享

食堂打卡系统架构设计文档

Frank Zeng

食堂就餐卡系统架构设计

Cloud.

第一周架构师总结

不在调上

架构师训练营-开营

zcj

极客大学架构师训练营

架构师训练营-第一周学习总结

zcj

极客大学架构师训练营

架构师训练营-第一周作业

zcj

极客大学架构师训练营

FPGA

Kevin Z

作业1 餐卡系统设计

Geek_2e7dd7

平台化服务的基石:隔离与交互策略模型

孤岛旭日

企业架构 用户权限 权限系统

【架构师训练营】第一个周课程总结

Mr.hou

极客大学架构师训练营

架构师训练营第一周课堂学习总结

Frank Zeng

译-面向前端开发人员的Docker入门指南

费马

Docker Linux 容器 运维 前端

架构师必备技能(灵魂拷问篇)

王鹏飞

架构师

食堂就餐卡系统设计

王鹏飞

架构设计

第一周总结

芒夏

极客大学架构师训练营

提高 TCP 性能的方法,你知多少?

小林coding

TCP 性能优化 高并发 网络

数据结构与算法之基础入门

shirley

数据结构 算法

系统梳理主流定时器算法实现的差异以及应用

奈学教育

定时器

系统梳理主流定时器算法实现的差异以及应用

古月木易

定时器

架构师训练营第1周作业——食堂就餐卡系统设计

在野

极客大学架构师训练营

UML练习1-食堂就餐卡系统设计

一剑

作为一个架构师,我是不是应该有很多职责?

架构师修行之路

程序员 架构 架构师

架构师训练营-第1课总结-202006-架构设计

👑👑merlan

架构设计 UML #总结#

架构师训练营第一周学习总结

jiangnanage

架构设计

学习总结

Geek_2e7dd7

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

我们为什么需要分布式OSGi-InfoQ