QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

编配和编排的定义之争

  • 2008-09-05
  • 本文字数:1770 字

    阅读完需:约 6 分钟

随着 SOA 所受关注渐增,标准化(给予精确的含义)所用术语显得尤为重要。一场有趣的讨论更是阐明的了这点。这场讨论的起因是Michale Poulin 抛出了这样一个问题,“orchestration(编配)”和“choreography(编排)”之间的区别何在,并寻求指引能将这一区别“清楚阐述”的解答。他的问题引来了一窝蜂的回复,而不是简单的答案,每个人根据自己不同的理解,给出的含义也略有差异……

Anne Thomas Manes 从引用 Merriam-Webster(韦氏大词典)上这些词汇的传统含义来展开她的解释:

编排(Choreography):一种象征性地表达舞蹈的艺术:

  • 对舞蹈的组合以及安排,特别是芭蕾
  • 这一活动所产生的作品

编配(Orchestration):针对乐队表演对音乐作品进行的调整;又:对音乐作品的乐队演奏

尽管这一定义并不能真正从 IT 的角度帮助澄清编配(orchestration)与编排(choreography)之间的差异,但许多讨论的参与者都间接地用到了它。Anne 接着又通过引用在现有的 WS-* 规范,即业务流程执行语言(BPEL)与 Web 服务编排定义语言(WS-CDL)中的定义,继续进行了阐释:

编配(Orchestration)指的是自动执行一个工作流,即,你用一种执行语言如 BPELP 定义好工作流,同时你让编配引擎在运行时执行这一工作流。一个编配好的工作流一般暴露为一个可以通过 API 调用的服务。它并不描述两三个参与方之间一系列协调交互。

编排(Choreography)指的是对两者或两者以上参与方之间协调交互的描述。例如,你请求投标,我给出报价,你下采购单,我向你发货。

John Evdemon 表达了另一种略为不同的观点,基于其可见性对这两个术语进行了分类:

编配描述了一个宏观流程表现出来是如何完成工作的,而没有明确说明其如何实现。

我将编排视为一种点对点形式的交互,因为不存在所谓的“指挥”。编排是一种交互的议定(agreed-upon)模型,这个交互可能由一系列编配组成。

从 B2B 的视角而言,编配是组织内的,而编排是组织间的。更简洁一点,一个组织谈不上对另一组织进行编配。

Steve Johns 更进一步细化了这一定义:

编配是“固定”的,其主要是步骤和决策的描述集合。而编排,应该是更具目标导向性,是关于通向那个目标的各资源之间的相互协调。

Alan Dean 根据整个架构中是否含有一个“集中式控制者”来区分这两个术语:

对我而言,编配 / 协调有一个中心的指挥者 / 协调者,而编排却没有…… - 编配是专制的

  • 编排是自治的

来自 Metamaxim 的 Ashley McNeile 将编排追溯到 RosettaNet 的“合作伙伴接口流程(Partner Interface Processes)”标准,并将其认为是对参与方之间特定的(交互)行为模式的一种描述。他认为这一争端:

……并非是在于“编排”和“编配”在概念上到底有多大区别,而是在于需要一种语言在独立于编配之外来描述 / 捕获编排。

Rob Eamon 站在 Ashley 这方,谈到:

就架构定义或是设计而言,编排和编配的区别又有什么影响呢?在一个架构或设计中使用其中一个术语而不加以更多解释就够了吗?对我而言,这是在一特定上下文假设某种特定含义将会导致无法沟通的又一例证。明智的做法是保证各参与方对所用的术语有共同的理解,而不管术语是如何定义的。

这一观点与 Gregg Wonderly 不谋而合:

通常的情况是,计算机科学家选用了业已存在的词汇,并试图将其运用到某种特定的上下文中。而在不同的上下文了解和使用这些词汇人们,积累的偏颇与经验使其在领会这些用途时不免有错有对(二元逻辑, “有时候”是很难作为一个合理解释在绝对逻辑的世界里使用的)。因此,我们之所以要有这么多讨论是想要使大家都形成一种一致的观点,而不管这论点是如何被扭曲了……

我只希望 SOA 的众生能够学会对使用所有这些具有“限定性”意义的词汇与术语感到满意,而不是试图强塞一些愚笨的词汇进去。

Steve Jones 对这一争论做出了很好的总结:

基本上我认为编排,编配,协调,流程管理以及诸等词汇都定义得极为不妥。要是哪个供应商声称一个 BPEL 引擎是某种编排产品,我也不会感到奇怪了。编排并没有流行起来的一个原因(在我的眼中)就是其现实社会的等价物(舞蹈)可真不是什么 IT 所专长的。

总体而言,这种情况在 SOA 和 IT 中越来越普遍了,这个讨论只是其中一例而已。人们使用相同词汇而实际上指的是不同事物,并总因为使用不同词汇而争论,尽管实际上他们说的是一回事。

查看英文原文: Orchestration vs. Choreography: Debate Over Definitions

2008-09-05 03:323992
用户头像

发布了 133 篇内容, 共 37.9 次阅读, 收获喜欢 1 次。

关注

评论

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

高考成绩都出来了,你的秒杀系统如何了?

冰河

并发编程 多线程 高并发 协程 秒杀系统

TiDB 升级利器(参数对比)——TiDBA

TiDB 社区干货传送门

7.x 实践

迄今为止最完整的DDD实践

阿里技术

架构 DDD

干货|三个维度详解 Taier 本地调试原理和实践

袋鼠云数栈

开源 前端

无类教育完善内训体系,开启校企合作新篇章

Geek_2d6073

资源池化:多租户与数据库整合解决方案

TiDB 社区干货传送门

新版本/特性解读 数据库架构设计

微服务架构的重要性:现代应用开发的关键趋势

2756

微服务架构 微服务、

IPQ9574 IPQ9554 what's the difference?|WIFI7 Solution|Wallys

wallyslilly

ipq9554 ipq9574

TICDC 数据同步至 MySQL初体验

TiDB 社区干货传送门

迁移

【TiDB v7.1.0】资源管控调研及评测

TiDB 社区干货传送门

7.x 实践

探索To-D,落地好大夫效能平台

方勇(gopher)

DevOps SRE 效能平台

来了,kubesphere轻松搭建redis

夜栩

后端 docker image KubeSphere

在找稳定的企业级数据云平台?奇点云DataSimbaR4.9 LTS发布

Geek_2d6073

记一次Native memory leak排查过程 | 京东云技术团队

京东科技开发者

native 企业号 6 月 PK 榜 memory leak

OpenResty 安装

流火

如何用smardaten90天快速开发并上线智慧空间loT物联平台?

热爱编程的小白白

带你了解爆火的AI框架-LangChain

派大星

慧博云通加入飞桨技术伙伴计划,共同推动企业 AI 应用创新

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

远程desk工具利用总结

快乐非自愿限量之名

远程 ToDesk

边缘云特点、应用实践和发展趋势浅析

天翼云开发者社区

边缘云

关于 3.0 和 2.0 的数据文件差异以及性能优化思路

爱倒腾的程序员

发送Tidb告警信息到企业微信群实践

TiDB 社区干货传送门

监控

TiDB 多租户方案和原理

TiDB 社区干货传送门

TiDB 底层架构 新版本/特性解读 7.x 实践

基于驱动因素的全面预算管理方式

智达方通

智达方通 全面预算管理 业财驱动 驱动因素

零样本视频生成无压力,基于飞桨框架实现Text2Video-Zero核心代码及依赖库

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

数字先锋|云上医院长什么样?宁夏固原中医医院带你一探究竟!

天翼云开发者社区

云计算

TIDB v7.1 reource control资源管控特性体验贴

TiDB 社区干货传送门

版本测评 7.x 实践

券商网络信息安全启动三年计划圈重点

原点安全

从零开始初识机器学习 | 京东云技术团队

京东科技开发者

人工智能 机器学习 企业号 6 月 PK 榜

微服务之道:8个原则,打造高效的微服务体系

不在线第一只蜗牛

微服务 微服务架构

编配和编排的定义之争_SOA_Boris Lublinsky_InfoQ精选文章