首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编排引擎是如何工作的

编排引擎是如何工作的
EN

Stack Overflow用户
提问于 2013-08-22 11:01:30
回答 1查看 8.7K关注 0票数 3

关于这个话题,我有几个问题。例如,我发现了许多论文,如“语义Web服务的动态编排”、“复合Web服务的分散编排”等。但实际上,我只找到了与Bitztalk或ESB (我指的是大型软件程序员)相关联的编排。

你有可能自己发展和协调语言吗?开发编排引擎的最佳方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2013-08-29 17:06:58

也许关于编曲的目的和应用的最好的信息来源是你引用的论文本身。

背景

我们在Firefox上浏览网页,在Microsoft上键入文档。这些都是集中式应用程序。这些类型的软件只在一个地方工作。他们在你的电脑上工作,他们在我的电脑上工作。

你去一家超市,拿起一件东西,然后从许多现金柜台中的一个退房。每张桌子上的每个职员都有自己的条形码扫描器和自己的刷卡阅读器。这些柜台上的每个收银机都链接到某个后台的一个服务器上。在这个设置中,计费软件分布在职员的柜台上,但是整个应用程序仍然是集中的。服务器管理库存并记录销售情况。它是中央集权的中心。

然后你写一封电子邮件并发送出去。假设你从你的Gmail帐户发送一封电子邮件到我的Hotmail帐户。有Gmail的服务器,还有Hotmail的服务器。这里有两个中心,而不是一个中心。现在事情不再是集中的了--我们有了一个分布式系统。在这里,一个中心的故障并不会破坏整个系统。如果Hotmail倒闭了,Gmail还能活下来。

不要从当地的超市买东西,而是从网上商店买东西。比如eBay或者亚马逊。在这个例子中,有eBay的服务器,还有eBay的供应商。供应商在自己的服务器上管理自己的库存,而不是在eBay的服务器上。还有一家快递公司,把包裹带给买家。买家也有自己的服务器。买家的在线支付是通过MasterCard进行的,这是另一个单独的服务器。现在我们讨论的是一个非常大的分布式系统。

目的

现在你在网上购物,很多事情都会发生,这需要的不仅仅是一堆服务器。必须有一个大师木偶师,他同步这些服务器之间的活动。一个帐户必须扣除。一封电子邮件必须发送。必须通知仓库。需要安排一名信使。谁控制着这复杂的舞蹈?这是你的骑兵。

应用程序

大多数情况下,有许多不同和独立的服务器,每个服务器都由不同的实体拥有。然而,当所有这些实体都需要一起创建一个业务流程,即“用户交互会话”时,我们需要业务流程。

一组服务器之间活动的协调是通过一个主傀儡服务器来实现的。实际上,编排器本身就是一组服务器。因此,一组服务器指向另一组服务器。这些第二组服务器是实际工作正在完成的地方。eMails正在被发送。图像正在压缩。地址正在排序,等等。第一组服务器(编排器)确保事情按需要发生的顺序发生。

实现

一个答案:排队。开始这整个故事的一项活动是尝试在网上购买。在那里,您所做的点击,您发送的命令,都在这些业务流程服务器中排队。像purchase-this-itemmake-a-payment,然后是payment-received这样的命令都被排队,然后一个接一个地处理。

业务流程系统在一个线程上接受这些命令,而在另一个线程上,业务流程服务器异步地将这些命令分发给相应的辅助服务器。因此,purchase-this-item命令被发送到eBay的服务器,而make-a-payment命令被发送到万事达卡的服务器。

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

这种排队和调度逻辑被称为“业务流程引擎”。从那时起,事情就会变得复杂。沃达丰服务器可能离线。MasterCard可能会拒绝这张卡。仓库服务器可能返回一个out-of-stock响应。然后,该响应将需要路由到eBay的服务器,后者可以将purchase命令重新排队到不同的仓库。有服务器崩溃。磁盘故障。停电等等。

最后

编排是为了确保这么多不同的组件分布在不同的地理位置,在不同的时间点上,有些是并行的,有些是错误的,有些是缓慢的,有些是恶意的,有些是非法的。大家一起努力给你买你在网上买的该死的耳机。

票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18378611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档