50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

编配和编排的定义之争

  • 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:324468
用户头像

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

关注

评论

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

微服务不是银弹!这4个设计原则让你少踩90%的坑

左诗右码

YashanDB多活架构设计与实现实操分享

数据库砖家

怎么制作论文开题报告?用这3个AIPPT工具轻松搞定!

职场工具箱

人工智能 效率工具 PPT 论文 AI生成PPT

大数据-72 Kafka 事务Coordinator、日志、2PC 与幂等性的协同机制 端到端Exactly-Once处理详解

武子康

Java 大数据 kafka 分布式 消息队列

定制球形LED屏需要多久?

Dylan

科技 LED LED display LED显示屏 LED屏幕

YashanDB对企业数据治理的影响及实施策略

数据库砖家

基于YOLOv8的智能鼠类目标检测系统 | 室内外老鼠自动识别与追踪【含完整训练源码+部署教程】

申公豹

人工智能

区块链DAPP的开发流程

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

哈尔滨等保测评流程:环环相扣,保障安全

等保测评

区块链 DApp的开发费用

北京木奇移动技术有限公司

dapp开发 区块链开发 软件外包公司

命令行神器 The Fuck,敲错命令的后悔药

Immerse

Linux cli command

YashanDB的性能监控工具:如何实时评估数据库状态?

数据库砖家

YashanDB多场景应用教程:助力企业实现高效数据管理

数据库砖家

YashanDB多节点集群部署及管理技巧

数据库砖家

Ceph 可观测性最佳实践

观测云

Ceph

9月20-21日CSM认证课程 · Jim老师引导团队Agility与企业Agility话题

ShineScrum

敏捷 项目经理 Scrum Master 每日站会 敏捷开发培训

基于TinyMce富文本编辑器的客服自研知识库的技术探索和实践|得物技术

得物技术

大前端 客服 富文本 知识库

AI智能体的开发成本

北京木奇移动技术有限公司

AI智能体 AI技术开发 软件外包公司

YashanDB多版本并发控制机制详解

数据库砖家

基于YOLO的中医舌苔自动识别系统 | 五类舌象精准检测【含完整数据+训练源码】

申公豹

人工智能

30条新Semgrep规则发布:涵盖Ansible、Java、Kotlin和Shell脚本等场景

qife122

静态分析 代码审计 Semgrep

哈尔滨等保测评技术应用:科技赋能,提升效能

等保测评

智能设备操作系统闭源化浪潮下的小程序生态重构与技术创新

xuyinyin

YashanDB多活架构实现企业业务持续运营

数据库砖家

相比于直接消费 MCP 服务,您的企业可能更需要一个专属的 MCP 服务中心

阿里巴巴云原生

阿里云 AI 云原生 MCP

摊位货摊自动识别与监控系统识别系统开箱即用教程 (YOLOv8)| 完整源码与部署教程

申公豹

人工智能

java: 无法访问org.springframework.ldap.core.LdapTemplate

刘大猫

人工智能 算法 智慧城市 智慧交通 LdapTemplate

打破状态机:Web竞态条件的真正潜力

qife122

网络安全 漏洞挖掘 竞态条件

在AI技术快速实现创意的时代,挖掘新需求成为关键——某知名AI图像生成框架需求分析

qife122

强化学习 AI图像生成

RAG-MCP 性能剖析:在 Amazon Bedrock 中多维度测试提示词优化的效果

亚马逊云科技 (Amazon Web Services)

【HarmonyOS】应用设置全屏和安全区域详解

GeorgeGcs

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