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


当前回答

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

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

编制显示每个服务的完整行为,而编排则组合每个服务的接口行为描述。

一篇区分编排、接口行为、提供者行为和编排的优秀科学文章如下: 杜马。面向服务的设计:一个多视角的方法。国际合作信息系统杂志,2004,13,337-368

其他回答

因为线程已经很老了,但仍然在为那些像我一样在这里跌跌撞撞地寻找这个问题的人写信。在面向服务的体系结构(SOA)中,这是一个备受争议的问题,初学者需要更清晰的解释。

业务流程:可执行过程

Used in private business processes A central process (which can be another Web service) takes control of the involved Web services and coordinates the execution of different operations on the Web services involved in the operation The involved Web services do not "know" (and do not need to know) that they are involved in a composition process and that they are taking part in a higher-level business process. Only the central coordinator of the orchestration is aware of this goal, so the orchestration is centralized with explicit definitions of operations and the order of invocation of Web services.

编排:多方合作

相反,编排不依赖于中央协调器。 相反,编排中涉及的每个Web服务都确切地知道 何时执行其操作以及与谁进行交互。 编舞是一种专注于交流的协作 公共业务流程中的消息。 编排的所有参与者都需要了解业务 流程、要执行的操作、要交换的消息和定时 信息交换。

编排与编排

从组合Web服务以执行业务的角度来看 流程、编排是一种更灵活的范式,并且具有 与编舞相比,以下优点: 组件过程的协调由一个 已知的协调员。 Web服务可以在它们不知道的情况下被合并 正在参与一个更大的业务流程。 在出现故障时,可以设置备用场景。

In orchestration, there is a conductor and there are instrument players. Players play according to how conductor conducts. If conductor is replaced, the harmonic expression will be different i.e. it is still the same play (service) but with a different outcome. For example, to provide a financial arrangement proposal, the orchestration service will conduct by asking (invoking) each player (entity or utility service, e.g. credit check) to play (return results or adjust/update its playing) according to conductor's template (business rules). In choreography, there is a choreographer and there are groups of dancers. Choreography is a direction, but each group of dancers is autonomous in how to realize that direction.

另一种看待服务编排与编排的方法:

—服务编排:围绕业务域。 —服务编排:在多个业务域之间。

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

编排通常遵循分布式系统中著名的中间件。IT行业中一些很好的工具例子可以是Juju, Zapier IFTTT。您可以对所使用的服务进行集中控制、听觉、修改和故障排除。

Choreography is more decentralized than orchestration in the sense that it accepts more autonomous collaborators. For example bitcoin network is a collection of service providers called nodes which collectively provide a Defi service namely distributed ledger functionality to its service end-consumers. But this does not have any centralized authority in charge, and there is no total-view over whole network. There is just a consensus machanism that if respected candidate service provider joins the network and participate in end-consumer service provision. Anywhere you need to attack trusted third party and its side effects such as corruption, an orchestration would not suffice.

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

我还可以补充一点,命名暗示了两者与舞台表演的相似之处。在管弦乐队中,如果每个乐器演奏者都跟随指挥,他/她就能与其他成员和谐相处。另一方面,类似于编舞中的舞台舞蹈,没有指挥,每个舞台舞者只与他/她的搭档协调(最好是作为同伴),没有单一的协调领导。但两者仍然向观众呈现和谐。

基本技术(如XML、SOAP、WSDL)提供了将服务作为实体来描述、定位和调用的方法。然而,这些技术并没有提供关于服务在更复杂的协作中的角色的丰富行为细节。此协作包括一系列活动和活动之间的关系,这些活动和关系构建业务流程。有两种方法构建此流程:服务编制和服务编排。

服务编制

服务编制表示一个集中的可执行业务流程(编配器),用于协调不同服务之间的交互。协调器负责调用和组合服务。

所有参与服务之间的关系由单个端点(即组合服务)描述。编制包括管理各个服务之间的事务。业务流程为服务组合采用集中式方法。

服务编排

服务编排是参与服务的全局描述,由两个或多个端点之间的消息交换、交互规则和协议定义。编排为服务组合使用了分散的方法。

编排描述了多个服务之间的交互,其中编排表示从一方的角度进行控制。这意味着编排与编排在控制所涉及服务之间交互的逻辑应该驻留的位置上有所不同。