关于这个话题,我有几个问题.例如,我发现了许多论文,如"迈向语义Web服务的动态编排","复合Web服务的分散编排"等等......但在实践中,我只发现了与Bitztalk或ESB链接的编排(I意味着大软件程序员).
是否有可能自己开发和编配语言?开发编排引擎的最佳方法是什么?
inq*_*ive 29
也许关于编排目的和应用的最佳信息来源是您引用的论文本身.
我们在Firefox上浏览网页,在Microsoft Office上键入文档.这些是集中式应用程序 这些类型的软件可以在一个地方工作.它们可以在您的计算机上运行,它们可以在我的计
你去超市买一件物品并从众多现金柜台之一退房.每个办公桌的每个职员都有自己的条形码扫描仪和他自己的刷卡读卡器.这些柜台上的每个收银机都链接到某个后台房间的一台服务器.在此设置中,计费软件分布在职员的柜台上,但整个应用程序仍然是集中的.服务器管理库存并记录销售.这是中心的的集中.
然后你写一封电子邮件并发送.假设您将Gmail帐户中的电子邮件发送到我的Hotmail帐户.有Gmail的服务器,还有Hotmail的服务器.有两个中心,而不是一个.现在事情不再集中 - 我们有一个分布式系统.在这里,一个中心的失败不会削弱整个系统.如果Hotmail发生故障,Gmail仍然存在.
而不是从当地超市购买,从网上商店购买东西.说eBay或亚马逊.在这个例子中,有eBay的服务器,还有eBay的供应商.供应商在自己的服务器上管理自己的库存,而不是在eBay的服务器上.还有一家快递公司将包裹带给买家.买家也有自己的服务器.买方的在线支付是通过万事达卡,另一个单独的服务器.现在我们谈论的是一个非常大的分布式系统.
既然您正在进行在线购买,那么很多事情都会发生,这需要的不仅仅是一堆服务器.必须有一个主要的木偶操纵者同步这些服务器之间的活动.必须扣除一个帐户.必须发送电子邮件.必须通知仓库.需要安排快递员.谁控制这种错综复杂的舞蹈?这是你的协调者.
大多数情况下,有许多不同的独立服务器,每个服务器由不同的实体拥有.然而,当所有这些实体需要共同创建业务流程,"用户交互会话"时,我们需要编排.
通过master-puppeteer服务器实现一组服务器之间的活动的编排.实际上,协调器本身就是一组服务器.因此,一组服务器指向另一组服务器.这些第二组服务器是实际工作的地方.正在发送电子邮件.图像正在被压缩.正在对地址进行排序,依此类推.第一组服务器(orchestrator)确保事情按照需要发生的顺序发生.
一个答案:排队.开始这整个故事的一项活动是尝试进行在线购买.从那里,您所做的点击,您发送的命令,都在这些业务流程服务器中排队.像purchase-this-item
或make-a-payment
然后的命令payment-received
都排队,然后一个接一个地处理.
业务流程系统在一个线程上接受这些命令,并且在不同的线程上,业务流程服务器异步地将它们分派到相应的工作服务器.因此,purchase-this-item
命令被发送到eBay的服务器,同时make-a-payment
命令被分派到MasterCard的服务器.
工作服务器可能会生成更多命令.验证您的卡号后,万事达卡服务器可能会决定向您发送短信.所以它send-sms
向队列添加一个命令.该命令被发送到Vodaphone服务器.
这种排队和调度逻辑称为"编排引擎".从那里,事情可能会变得复杂.Vodaphone服务器可能处于脱机状态.万事达卡可能拒绝该卡.仓库服务器可能会返回out-of-stock
响应.然后,该响应将需要路由到eBay的服务器,该服务器可以将purchase
命令重新排队到某个不同的仓库.有服务器崩溃.磁盘故障.停电等.
编排是为了确保这么多不同的组件,在地理上分布,在不同的时间点,一些是并行的,一些是有缺陷的,一些是慢的,一些是恶意的,一些是非法的,...所有的共同努力让你该死的你通过互联网购买的耳机.
归档时间: |
|
查看次数: |
6243 次 |
最近记录: |