写点什么

Mule 奠基人:JBI 偏离了靶子

  • 2008-05-12
  • 本文字数:1488 字

    阅读完需:约 5 分钟

Mule 宣告发布2.0 版本几周后, Mule (“一个轻量级和高可伸缩性 ESB”)的奠基人 Ross Mason 将 Java 业务集成(JBI)和 Mule 架构进行了比较

Ross 说,使他决心实现自己的架构而不是 JBI 架构的原因是,在 JBI 1.0 规范中缺失了某些东西。在他的观点中,过于依赖 XML,缺乏可重用性的 JBI 部件(绑定组件,服务引擎),重型 API 最引人注目。

Ross Mason 认为 JBI 目标范围太广是降低 JBI 部件可重用性的原因之一:

按他们的天性,厂商为了竞争会使他们彼此不同。因为 JBI 试图定义每件事情应该工作的方式,厂商就不得不内置规范之外的特性和替代方法来使他们的服务容器各具特色。这就破坏了可重用性。因为,一个可在某个容器正常工作的 JBI 绑定组件并不一定能在另一个容器中以同样方式工作。

JBI 社区中的厂商试图使自己产品与竞争对手有所不同,厂商总是这么干,但是每个厂商的实现部件都会在性能、可靠性和工业范围标准的支持级别上下工夫。JBI 1.0 是第一个试图为集成需求提供答案的规范,不免有些缺点,它们有望在 JBI 2.0 中得到解决。

同样,Ross 一再表示 JBI 的 API 过重,开发者如果想要开发 JBI 部件的话,需要了解的 JBI 规范知识比他们本应需要了解的要多:

要实现服务,你需要实现相当多的 API。这意味着书写服务的伙计对 JBI 的理解比必须的要多。Mule 总是认为服务可以是任何东西,如一个 POJO、EJB 会话 Bean 或另一个组件的代理……

埃森哲的高级顾问 James Lorenzen ,这样回答 Ross 的关于 JBI 的重型 API 的观点:

我不同意 JBI 使用者必须了解的 JBI 知识比必须的要多,不过话说回来,扮演那样的人对我来说很难,因为我也是一个组件开发者……

以及

另外,我不会花太多时间给非 JBI 使用者讲 JBI。但是我会忽略规范,直接向他示范可以如何使用 JBI。

Ross 的博客中另一个重要观点就是,规范化消息路由器(Normalized Message Router,NMR)的以 XML 为中心的天性:

XML 消息被用来四处移动数据。这适合某些系统,但是对于大多数遗留系统则不然。构建它们的时候 XML 还不存在。它们使用不同的消息类型,如 Cobol CopyBook、CSV、二进制记录、自定义扁平文件等。

James Lorenzen 解释了 NMR 如何受益于这个以 XML 为中心的天性:

由于任何事物都被转换成 XML 在 NMR 上传送,唯一需要的转换就是 XML。那么你说的是对的,但是对于 JBI 使用者,我认为它不是问题。另一方面,我认为,如果 NMR 允许其他消息类型,那么我想你会需要更多转换器,但是我猜这些转换器就是绑定组件。

绑定组件应该能以一种大家熟知的和格式良好的方式与 NMR 进行简单地交互,这样才有可能为每个绑定组件提供被其他组件注入到 NMR 中的消息。否则,在绑定组件间进行持续通信会非常难。

对于使开源成功的问题领域,Ross Mason 认为是“厂商观点”:

这个世界的“厂商观点”是开源取得如此好的成绩的一个主要原因。一般说来,由开发人员书写的开源软件更接近要解决的问题。这些开发人员可以运用他们的领域知识、经验和某些方面的改进需求提交更好的解决问题的方式。这就是 Mule 的终极目标。假设项目成功了,我认为这个目标是通过告诫事情可以被不断改进来实现的(我们一直都这么做)。

有人可能会说规范是由来自不同厂商的社区领导开发出的,为了开发一个每个厂商都将实现的新标准加入到定义标准的行列中。通常“专家组”成员来自开发者社区,因此在 JSR 要解决的问题域和一个非标准开源产品之间不应该有很大的分歧。

Ross Mason 和 James Lorenzen 都认为,当遇到流内容进入 NMR 时,JBI 规范有缺点,尤其是任何进入 NMR 的事物都必须比转换成 XML,这是个资源消耗过程。

查看英文原文: Mule Founder: JBI Missing the Mark

2008-05-12 11:021743
用户头像

发布了 255 篇内容, 共 67.4 次阅读, 收获喜欢 10 次。

关注

评论

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

Swagger 中的 x-nullable 是什么意思?

数据追梦人

吉利汽车采用 EMQX 与AutoMQ联合方案构建公私有云一体化的车联网核心架构

AutoMQ

云计算 大数据 混合云架构 AutoMQ 吉利汽车

新版 Midjourney V7 支持语音生图;语音 AI 平台 Phonic 融资 400 万美元,构建自主端到端模型丨日报

声网

企业网络优化:如何通过SD-WAN实现办公应用加速

Ogcloud

SD-WAN SD-WAN组网 SD-WAN厂商 sd-wan专线 SD-WAN厂家

博睿数据全面接入DeepSeek:运用AI 铺就大模型可观测性进阶之路

博睿数据

博睿数据 DeepSeek v3

腾讯云服务器怎么对接高防

网络安全服务

CDN DDoS 腾讯云服务器 高防IP DDoS 攻击

初识华为RazorAttention

zjun

征文大赛 |「码」上数据库—— KWDB 2025 创作者计划启动

KaiwuDB

征文大赛 征文活动 征文投稿 数据库、 KaiwuDB 分布式多模数据库

什么是鱼骨图,怎么用AI制作鱼骨图?4个鱼骨图生成工具盘点!

职场工具箱

人工智能 效率工具 AI软件 AIGC 鱼骨图

极氪汽车云原生架构落地实践

阿里巴巴云原生

阿里云 微服务 云原生

【2025年最全电商数据API清单】商品/订单/物流一键搞掂!程序员&运营速藏

代码忍者

API 接口

API安全与管理(上海)技术沙龙,火热报名中!

云智慧AIOps社区

API 策略

DApp开发必看!全球合规白皮书:DAO治理+跨链技术落地策略

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

zk源码—数据节点与Watcher机制及权限

不在线第一只蜗牛

源码 架构 zk

Kube Scheduler 可观测性最佳实践

观测云

Kubernetes

《Operating System Concepts》阅读笔记:p586-p586

codists

操作系统

2025链游开发爆款攻略:AI+跨链技术实战指南

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

过剩与稀缺:现代社会的思考与启示

TechLead Studio

个人成长

​​JNPF快速开发平台的八大核心职能

伤感汤姆布利柏

共探 AI 硬件未来图景,火山引擎“智变浪潮”技术沙龙圆满落幕

火山引擎边缘云

AIOT AI 大底座 AI 数据基础设施

低代码平台的技术演进与优化分析

JeeLowCode低代码平台

低代码 低代码开发 低代码选择

zk基础—Curator的使用与剖析

量贩潮汐·WholesaleTide

架构

企业多分支机构组网有哪些难点?怎么解决?

Ogcloud

SD-WAN 企业组网 SD-WAN组网 异地组网 分支组网

抓住AI时代机遇,从伙伴与华为共筑行业解决方案开始

脑极体

AI

XEOS 与 AutoMQ 推出联合方案,共筑云原生 Kafka 新生态

AutoMQ

云计算 大数据 云原生 XSKY AutoMQ

十个很实用的前端工具库,快来看看吧!

伤感汤姆布利柏

科技向善|智源联合南开大学HLT Lab开源两大中文语音数据集,填补老幼人群语音研究空白

智源研究院

条件锁存在的意义:用生活中的例子秒懂线程间的"暗号系统"

不在线第一只蜗牛

Java

什么是BTC铭文?什么是MSKE马斯克铭文?

MSKE铭文

区块链 数字货币 MSKE铭文 马斯克铭文 比特币铭文

三级等保测评的企业需要做什么准备?

黑龙江陆陆信息测评部

国产替代势不可挡:大型企业ERP国产替代的挑战与机遇

用友BIP

ERP 国产替代 用友BIP 数智底座

Mule奠基人:JBI偏离了靶子_Java_Masoud Kalali_InfoQ精选文章