编排与编排

时间:2010-11-08 19:26:09

标签: soa composition service-composition

从组织内部的角度来看,服务编排和服务编排之间有什么区别。

9 个答案:

答案 0 :(得分:25)

服务编排:您通过固定逻辑组合了多个服务。这个逻辑在一个地方描述。您可以想象一个团队的人与经理进行微观管理。经理准确地说明了什么,何时以及应该做什么。团队成员不关心工作的整个目标,经理将输出结合到一个可交付成果中。 一个实际的例子是BPEL流程。 BPEL流程包含逻辑,可以调用多个服务并将其响应组合到单个服务响应中。

服务编排:决策逻辑是分布式的,没有集中点。你可以想象一个家,每个人都以共同利益为目标,并在没有微观管理的情况下积极主动地工作。或者你可以想象一个人体,不同的成员是相互依存的,为共同的目标而努力。 一个实际的例子是事件驱动的处理,其中代理由事件激活并完成其工作。所有代理商都在一起制作一个系统。没有集中逻辑。 编排的可能性可能远远超出了编排,因为它更符合现实世界。

我的观点是因为我们需要关注业务逻辑,所以我们不需要在这两者之间区分很多。如果单点逻辑完成工作,我们就会进行编排。如果集中逻辑无法解决问题,我们无论如何都被迫编排。这就是为什么我们经常在IT中进行编排,而编舞仍然是一个学术概念和研究课题。而且我们经常在没有实际知识的情况下进行编舞,就像现实世界一样。

答案 1 :(得分:21)

服务可以区分原子服务和由其他服务组成的服务。这种组合物称为“编排”。有时工作流,有时是业务流程。例如,BPEL是一种编排语言,但它自称为“业务流程执行语言”。

不要求服务需要按层次结构组成。这意味着,两个服务可以相互通信。它们之间运行的协议称为“编排”。它可能是两种服务,但通常涉及两种以上的服务。编排中的每项服务都可以被视为合作伙伴服务的协调者。参与编排的每个服务都可以实现为编排/工作流程/过程。

业务流程显示每个服务的完整行为,而编排结合了每个服务的接口行为描述。

区分编排,界面行为,提供者行为和编排的一篇好的科学文章如下: Dijkman, R. & Dumas, M. Service-oriented Design: A Multi-viewpoint Approach International Journal of Cooperative Information Systems, 2004, 13, 337-368

答案 2 :(得分:13)

由于线程已经陈旧,但仍在为那些在我这里偶然发现这个问题的人写信。这是Service-oriented architecture(SOA)中备受争议的问题,需要为初学者提供更清晰的解释。

协调:可执行流程

  • 用于私人业务流程
  • 中央进程(可以是另一个Web服务)控制 涉及的Web服务和协调不同的执行 对操作中涉及的Web服务的操作
  • 所涉及的Web服务并不知道" (而且不需要知道) 他们参与了一个组合过程,他们是 参与更高层次的业务流程。
  • 只有业务流程的中央协调员知道这一点 目标,因此业务流程集中显式定义 操作和Web服务调用的顺序。

enter image description here

编排:多方协作

  • 相反,编排不依赖于中央协调员。 相反,编排中涉及的每个Web服务都准确地知道 何时执行其操作以及与谁进行交互。 编舞是一项专注于交流的合作努力 公共业务流程中的消息。

  • 编舞的所有参与者都需要了解业务 进程,执行操作,交换消息和时间 消息交换。

enter image description here

编排与编排

  • 从组成Web服务的角度来执行业务 流程,编排是一种更灵活的范例,并具有 以下优于编舞的优点:

  • 组件流程的协调由a集中管理 已知的协调员。

  • 可以在不了解Web服务的情况下合并它们 正在参与更大的业务流程。

  • 如果发生故障,可以采用其他方案。

答案 3 :(得分:5)

当您控制流程中的所有参与者时,

编排非常有用 - 当他们都在一个控制域中时,您可以指定活动流程。当然,这通常是在您指定将在您可以控制的一个组织内部制定的业务流程时。

编排是一种指定两方或多方的方式 - 其中任何一方都无法控制其他方的流程,或者可能是对这些流程的任何可见性 - 可以协调其活动和流程分享信息和价值。当需要跨控制/可见性域协调时,请使用编排。在简单的场景中,您可以将编排想象为网络协议。它规定了各方之间可接受的请求和响应模式。

答案 4 :(得分:5)

Andrei和其他人在解释什么是编排以及什么是编排方面做得很好。对于软件架构师在这两种选择之间进行选择,将它们与不同质量进行比较也很重要。

编排加剧编排

  • 可靠性:业务流程平台内置了对错误处理和事务管理(补偿事务)的支持。在编排中,定制开发的工作流程和错误处理往往更容易出错。
  • 可修改性:在业务流程平台中的可视化BPM工具中,更轻松地创建和更改流程工作流程和复杂的服务组合。

编排超越编排

  • 性能:由于工作流脚本解释和业务流程平台本身的附加层,业务流程会产生性能开销。

  • 成本:编排不需要额外的中间件或语言,这些中间件或语言具有相关的学习曲线和治理负担。

答案 5 :(得分:4)

我认为舞蹈编排非常适合高度分散的组织。您不需要中央业务流程执行程序。这有利于每个组织子单元的独立增长和发展。

(我订阅了编排与编舞问题的这种解释: http://geekexplains.blogspot.com/2008/07/ways-of-combining-web-services.html

答案 6 :(得分:3)

查看Service Orchestration vs. Choreography的另一种方法:

- 服务协调:围绕业务领域 - 服务编排:在多个业务领域中。

答案 7 :(得分:1)

在编排中,有指挥,还有乐器演奏者。玩家根据导体的传导方式进行游戏。如果更换导体,则谐波表达将是不同的,即它仍然是相同的游戏(服务)但具有不同的结果。例如,为了提供财务安排提议,业务流程服务将根据指挥的模板(业务)要求(调用)每个玩家(实体或公用事业服务,例如信用检查)进行播放(返回结果或调整/更新其播放)。规则)。 在舞蹈编排方面,有一位舞蹈指导,还有一群舞者。舞蹈编排是一个方向,但每组舞者在如何实现这个方向上都是自主的。

答案 8 :(得分:0)

编排和编排都是大规模的流程形式主义的两种哲学,即协作空间。协作空间是行业的正式代表,例如健康行业,食品行业,汽车行业或...。因此,在决定编排它们或使用编排提供一些对最终用户有意义的需求之前,您应该让一些小规模的服务提供商能够使用某种交流语言。

业务流程通常遵循分布式系统中著名的中间件。 IT行业中一些不错的工具示例可以是JujuZapier IFTTT。您可以对所使用的服务进行集中控制,听觉,修改和故障排除。

从接受更多自主协作者的意义上讲,编排比编排更分散。例如,比特币网络是称为节点的服务提供商的集合,这些节点共同提供Defi服务,即向其服务最终消费者提供分布式分类帐功能。但是,它没有任何集中的主管机构,并且没有整个网络的全景。 consensus machanism只有受尊敬的候选服务提供商才能加入网络并参与最终消费者服务的提供。在您需要攻击trusted third party及其副作用(例如腐败)的任何地方,编排都是不够的。

再次,任何行业中的参与者之间的任何协作都可能受到编排或编排的影响,因此,我希望仅将示例限制在IT行业中不会造成误导。

我也可以补充一点,命名暗示了两者与舞台表演之间的类比。在管弦乐队中,每个乐器演奏者只要跟随单个指挥家,就可以与其他团队成员保持和谐。另一方面,类似于编舞中的舞台舞,没有指挥者,每个舞台舞者只能与自己的伴侣(如果是同伴说话,则可以使自己)和谐起来,而没有统一的领导力。但仍然两者都可以使观众保持一致。