写点什么

论 SOA 中仲裁的价值

  • 2007-05-29
  • 本文字数:1464 字

    阅读完需:约 5 分钟

Nick Malik 的文章“仲裁在SOA 中的价值”引发了一起有趣的讨论。在关于这个主题的第一篇博客帖子中,他问道:“如果消息不能被仲裁,那它还是面向服务的吗? ”。

Malik 认为仲裁能力是任何 SOA 的关键益处之一,“能够拦截从 A 点到 B 点去的消息,并对那条消息做出反应而不通知那个管道的任意一方”。以他的观点,仲裁以技术中立的方式共同工作,它要求“我可以用一套完全不同的技术系统替换系统 A,并且只要消息是一致的就不影响系统 B”。

按照 Nick Malik 所说,“SOA 是用于企业应用集成的架构”。仲裁通过它的替换原则支持集成。通过比较架构性的仲裁和面向对象设计中的工厂模式,Malik 解释了这一观点,并引用了 Liskov 替换原则

能够增加仲裁,为我带来了一些相当特别的便利。就像在 OO 设计中,工厂给与我 Liskov 替换原则的便利,在消息传递设计中,仲裁为我带来了替换的便利。仲裁能够观察到从一个贸易伙伴传递到另一个贸易伙伴的消息,并基于消息的内容采取行动(假设我已经正确地获取了它)。

Udi Dahan 不同意 Malik 的 EAI 话语,以及他关于通过仲裁编排服务的想法:

尽管我非常同意 Nick 所说的 OO 仲裁依赖注入变种的观点,以及在消息传递方面扩大那些相同的概念是正确的做法,我还是对仲裁领域中的编排有疑问。这些“战术变化”需要在顶层(即业务级服务策略)的上下文中完成。这意味着所有逻辑应归入一个服务。服务间的“网络”只是一个“哑”网络,没有任何业务逻辑,只剩下技术能力,如知道将消息路由到哪个物理服务器去。

JohnCJ Malik 博客帖子的评论中表达了对于仲裁价值的看法,认为仲裁不应该被视为面向服务的通用需求。他认为:

  1. “要求仲裁会鼓励消息携带更多的上下文信息”。
  2. “除了请求 - 响应和发布 - 订阅,仲裁使消息交换模式极大地复杂化了”。
  3. “仲裁要求仲裁系统对于它所拦截的消息的语义至少有些理解”。

再论仲裁的价值中,Nick Malik 就这些观点一一做出了回应。他指出上下文的信息并不会使消息膨胀,而是“为了表示我们在企业EAI 场景中所传递的中立规范的业务文档,从而必须增加单条消息大小的这个做法,只是取得业务敏捷性的小小代价”。关于第二个争论,Malik 给出了一个非常好的类比:Joe 是银行职员,他拿着他的休假申请表去找他的老板并等待批准。他的老板只是这个申请到达最终接收人那儿整个过程中的众多仲裁者之一。Joe 并不知道也不关心这些仲裁中的任何一个。他只关心结果——他的申请是否被批准。批准过程可以在任一步被修改而不改变这一过程的业务语义。因此,Malik 认为“几乎所有有价值的长运行事务都必须能够仲裁,这是为了让它们可以被组合、被再组合,以及被编排”。最后,他认为共享消息的语义需要依赖仲裁功能。在任何情况下,他都把那个点声明为“风险,而不是成本。它是在任何项目中都会出现的风险。在定义良好的SOA 基础设施中,这个风险比起我们试图通过在3 个计算机系统中输入数据来组合一个手工业务过程要低得多”。

Nick Malik 总结说:在他的观点中,仲裁并不是所有服务都必须的,但是“它是被设计交付可组合性(即业务敏捷性)的面向服务架构所必需的”。

查看英文原文 On Intermediation in SOA 。 - - - - - -

译者简介:胡键,自 2000 年西安交通大学硕士毕业后一直从事软件开发。2002 年开始使用 Java,在项目开发中经常采用 OpenSource 工具,如 Ant、Maven、Hibernate、Struts 等,目前正在研究信息集成方面的规范和技术。可以通过 jianhgreat AT hotmail.com 与他联系,或访问博客: http://foxgem.javaeye.com/ 。与 InfoQ 中文站分享内容,请邮件至 china-editorial@infoq.com

2007-05-29 00:441244
用户头像

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

关注

评论

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

一些无人不知的命名规范

小魏写代码

DvD刻录软件DVD Cloner 2024 for Mac,现已支持最新的蓝光电影复制

Rose

mac软件下载 DVD克隆 DVD Cloner 2024下载 DVD Cloner 2024 Mac

基础架构即代码 | 亚马逊如何在现实生活中实践 DevOps

亚马逊云科技 (Amazon Web Services)

DevOps 微服务 架构设计 Amazon Lambda Amazon API Gateway

秒速出图!体验 TensorRT 加速 Stable Diffusion 图像创作

阿里巴巴云原生

阿里云 云原生

推荐收藏 | 【Git实战专题】「必坑宝典」带你深入剖析Git操作指令下的奥秘原理和运作机制

码界西柚

Java git 原理分析 后端处理 2024年第十八篇文章

魔搭×函数计算:一键部署,缩短大模型选型到生产的距离

阿里巴巴云原生

阿里云 云原生

十家传统企业数字化转型的心得体会:10大关键方面、拆解74 小点

天津汇柏科技有限公司

数字化转型

荣耀时刻 | 第七在线荣获艾媒2023中国企业服务年度企业

第七在线

从内核的视角观测容器——SysOM 容器监控

阿里巴巴云原生

阿里云 云原生 容器服务

Linux 中常见目录的作用

emanjusaka

Linux 目录

texifier mac LaTeX编辑工具下载安装(原Texpad)

Rose

Mac软件 LaTeX 编辑器 Texpad Texifier激活码

Spark SQL五大关联策略

京东科技开发者

如何使用 Helm 在 K8s 上集成 Prometheus 和 Grafana|Part 3

SEAL安全

Kubernetes Helm Grafana

云消息队列 Kafka 版阿里云 SAE 2.0 正式商用:极简易用、百毫秒弹性效率,降本 40%生态谈第一期:无代码转储能力介绍

阿里巴巴云原生

阿里云 Serverless 云原生

【2024开年必备】最全面的Macbook/苹果电脑必备实用软件推荐

Rose

苹果软件 装机必备 Mac应用

顺丰科技LaaS实现产品化,数字生态战略提速

新消费日报

恭喜 Nacos 和 Sentinel 荣获 2023 开源创新榜“优秀开源项目”

阿里巴巴云原生

阿里云 云原生

弹性调度助力企业灵活应对业务变化,高效管理云上资源

阿里巴巴云原生

阿里云 云原生 弹性计算

画眉(京东科技设计稿转代码平台)介绍

京东科技开发者

面试官:Redis持久化能关吗?怎么关?

王磊

Java 面试题

XMind 2024思维导图:新增 310 张 AI 原创插画

Rose

XMind 2024思维导图 XMind 2024下载 XMind 2024中文 思维导图下载

可观测实践丨如何利用 AI 算法解决告警配置三大难题?

阿里巴巴云原生

阿里云 云原生 可观测

【Mac&win】datagrip2023安装教程与激活码分享 亲测有效

Rose

ide DataGrip2023激活 DataGrip2023安装

速看,速进。一起学习一起交流。

薛定谔的皮皮虾

文心一言 VS 讯飞星火 VS chatgpt (184)-- 算法导论13.5 1题

福大大架构师每日一题

福大大架构师每日一题

Jira 母公司全面停服 Server 产品,用户如何迁移至极狐GitLab

极狐GitLab

Rainbond v5.17 版本发布,统一管理离线镜像和私有仓库

北京好雨科技有限公司

Kubernetes 云原生 容器云 离线

为什么人工智能与软件测试的结合话题开始火爆

测试人

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

Led显示屏同步和异步控制的原理是什么

Dylan

控制 LED显示屏 全彩LED显示屏 led显示屏厂家

阿里云 ACK One Serverless Argo 助力深势科技构建高效任务平台

阿里巴巴云原生

阿里云 云原生

论SOA中仲裁的价值_SOA_Hartmut Wilms_InfoQ精选文章