一个编排引擎是如何工作的

3
我对这个主题有几个问题。例如,我找到了很多像“面向语义Web服务的动态编排”、“复合Web服务的分散式编排”等论文...但在实践中,我只发现编排与Bitztalk或ESB(我指大型软件程序员)相关联。
是否可能自己开发编排语言?开发编排引擎的最佳方法是什么?

1
最佳的开发编排引擎的方式是什么?您需要编排引擎做什么?这是为了学术目的吗?您只是想学习编排,掌握它吗?还是您手头有一个任务,您认为需要编排?看,家庭用户很少需要它,因此没有自己开发的解决方案。但是,可以根据您想要实现的内容从头编写一个解决方案。如果您想学习,我们可以帮助您编写一个。如果您需要工作中使用的编排引擎,我们可以帮助您设置一个。您必须更加具体,请告诉我们。 - inquisitive
好问题: Q1:编排引擎的主要目的是什么? Q2:如果我需要编写一个,那么需要哪些基本步骤? - JonhSithm123190832
1个回答

33

关于编排的用途和应用程序,最好的信息来源是您引用的论文本身。

背景

我们在Firefox上浏览网页,在Microsoft Office中键入文档。这些是“集中式”应用程序。此类软件坐落在一个地方并从那里工作。它们在您的计算机上工作,也在我的计算机上工作。

你去超市,拿起一件商品,在“众多”收银台之一结账。每个工作台的职员都有自己的条形码扫描仪和自己的刷卡读卡器。这些柜台上的每个收银机都连接到后面的一个服务器。在这个设置中,结帐软件分布在店员的柜台上,但整个应用程序仍然是集中式的。服务器管理库存并记录销售情况。这是“集中化”的“中心”。

然后你写一封电子邮件并发送它。假设你从Gmail帐户向我的Hotmail帐户发送电子邮件。有Gmail的服务器和Hotmail的服务器。现在有了“两个中心”,而不仅仅是一个。现在事情不再是集中式的了 - 我们有一个“分布式”系统。在这里,一个中心的失败不会瘫痪整个系统。如果Hotmail崩溃,Gmail仍然存在。

与从本地超市购买不同,从在线商店购买某些东西。比如eBay或者亚马逊。在这个例子中,有eBay的服务器,还有供应商提供给eBay的商品。供应商在自己的服务器上管理自己的库存,而不是在eBay的服务器上。还有将包裹送到买家的快递公司。买家也有自己的服务器。买家所做的在线支付是通过MasterCard另一个独立的服务器进行的。现在我们正在谈论一个真正大的分布式系统。

用途

现在您正在进行在线购买,需要处理许多事情,这需要不止一堆服务器。必须有一个主要的操纵者来协调这些服务器之间的活动。账户必须扣除款项。必须发送电子邮件。必须通知仓库。必须安排快递。谁掌控这个复杂的舞蹈?这就是您的 orchestrator。

应用

大多数时候,有许多不同的独立服务器,每个服务器由不同的实体拥有。然而,当所有这些实体需要共同合作创建业务流程、"用户交互会话"时,我们需要 orchestration。

通过一个主要的操纵服务器来协调一组服务器中的活动,即编排。实际上,orchestrator 本身就是一组服务器。因此,一个服务器集合指导另一个服务器集合。第二组服务器是实际工作正在进行的地方。例如,正在发送电子邮件、压缩图像、排序地址等等。第一组服务器(orchestrator)确保按照需要发生的顺序发生。

实现

其中一个答案:队列。启动整个故事的活动是尝试进行在线购买。从那里开始,你所做的点击、所发送的命令都排队在这些 orchestration 服务器上。命令,例如 purchase-this-itemmake-a-payment然后 payment-received都是排队并依次处理的。

编排系统在一个线程上接受这些命令,而在另一个线程上异步地将这些命令分发到各个工作服务器上。因此,purchase-this-item命令被分派给 eBay 的服务器,而 make-a-payment命令被分派给 MasterCard 的服务器。

工作服务器可能会产生更多的命令。MasterCard 服务器在验证您的卡号后,可能决定向您发送短信。因此,它向队列中添加了一个 send-sms 命令。该命令被分派到 Vodaphone 的服务器上。

这种排队和调度逻辑被称为“编排引擎”。从那里开始,事情可能会变得复杂。Vodaphone服务器可能离线。MasterCard可能会拒绝使用该卡。仓库服务器可能会返回一个“out-of-stock”响应。那么该响应将需要被路由到 eBay 的服务器,该服务器可以重新将“购买”命令排队到不同的仓库。还有服务器崩溃、磁盘故障、停电等问题。

最后

编排旨在确保许多不同的组件,在不同的时间点、地理位置分布、一些并行、一些故障、一些缓慢、一些恶意、一些非法等各种情况下协同工作,以便让你通过互联网购买到该死的耳机。


...而且你想要一个普通的编排器... 哈哈 - inquisitive
1
你应该得到一枚勋章。 - omkar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接