写点什么

编配和编排的定义之争

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

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

关注

评论

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

阿拉德之怒手游超详细图文架设教程

echeverra

游戏开发

正则表达式提取 git 提交记录中的新增代码行

OpenHacker

JavaScript 正则表达式

开源之夏 2022 与您相约!

RadonDB

数据库 开源 开源之夏

云端守望者(下):十八般武艺

天翼云开发者社区

云计算 云存储

上海理工大学:巧用数字技术打响智慧抗疫信息战

华为云开发者联盟

低代码 welink 防疫 AppCube 核酸检测

【直播预告】凡泰讲堂第一期:洞见云原生,Kubernetes技术详解与实践

FinClip

Kubernetes

网络协议之:Domain name service DNS详解

程序那些事

Java Netty 程序那些事 4月月更

DPDK技术系统学习一(接收,发送,arp,icmp功能测试)

Linux服务器开发

虚拟化 网络协议栈 Linux服务器开发 DPDK C++后台开发

图数据库|基于 Nebula Graph 的 Betweenness Centrality 算法

NebulaGraph

数据库 算法 图数据库

SimpleDateFormat类的安全问题,这6个方案总有一个适合你

华为云开发者联盟

Java 高并发 线程池 线程安全 SimpleDateFormat类

持续进击,STI上演极致通缩模型

西柚子

linux运维是做什么工作的?有哪些岗位?

行云管家

运维 网络运维 IT运维

Go Runtime 设计:计算资源调度

张旭海

Go runtime goroutine scheduler

云端守望者(上):十二道难关

天翼云开发者社区

云主机 云安全

Tapdata 与阿里云 PolarDB 开源数据库社区联合共建开放数据技术生态

tapdata

数据库

synchronized有几种用法?

王磊

Java java面试

Ranger对HDFS权限管理探索与实践

移动云大数据

hdfs Ranger

为什么说Aquqnee有望成为GameFi板块天花板

西柚子

天翼云CDN+云主机护航,全天候支撑云上战“疫”

天翼云开发者社区

Groovy踩坑记之方法调用八层认识

FunTester

为什么说Aquqnee有望成为GameFi板块天花板

小哈区块

企业为什么要实施知识管理?

小炮

知识管理 企业知识管理 企业知识管理工具

千万张医疗影像,都去了哪里?

天翼云开发者社区

云主机 云存储

软件测试很简单么?

chenkl

测试

架构实战营总结

刘洋

#架构实战营 「架构实战营」

ETL批量作业调度TASKCTL桌面应用端安装步骤

敏捷调度TASKCTL

kettle 批量任务 ETL 自动化运维 调度任务

Tech Talk 活动预告丨使用 Amazon IoT Core 构建安全合规的智能产品

亚马逊云科技 (Amazon Web Services)

Amazon IoT Core

资产跟踪管理系统解决方案

低代码小观

资产管理 企业管理系统 #资产追踪 CRM系统 客户关系管理系统

什么是低代码开发?

源字节1号

软件开发 低代码开发

Telnet是什么意思?与SSH有啥区别?

行云管家

运维 SSH IT运维

了解云桌面,看这一篇文章就够了!

天翼云开发者社区

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