编排、配置服务与EDA

来源:百度文库 编辑:神马文学网 时间:2024/06/06 05:46:46
我们可以通过组合现有的服务来设计更高层的服务和流程。这个方法叫“配置”:
l 有一个中央控制者来协调流程的所有活动
l 可以应用组合模式,整个组合本身又可以被当做服务使用
这也不是设计或执行流程的唯一方法。另一个常用的方法是在不同的部分之间协作,美国各部分负责一个或多个步骤。这种方法叫“编排”。这种类型的流程设计避免了集中控制,所以它能更好的伸缩。缺点是,找出流程的状态或流程行为异常的原因很困难。
SOA与编排
在Web Service中,有处理编排的标准。一个具备编排特性的典型方法是,实现“业务”流程链。业务从调用一个执行某些任务的服务开始,然后最后去执行另一个任务。后者再去触发另一个服务去执行第3个任务。
EDA(事件驱动的架构)
在面向服务的体系结构 (SOA) 领域,一个比较重要的概念是事件驱动的体系结构 (EDA)。与事件机制类似,例如在 JavaScript 或 4GL 环境中,可以将触发器(可执行程序代码段)与按压按钮、更改域值或者提交查询等事件相挂钩,而 EDA 指定“服务”与“业务事件”的挂钩方式。
大多数业务事件(从下订单、请求报价到聘用新员工或提供某部分设备)触发企业内多个响应。如果进行更近一步的细化,过程步骤内的事件(例如调用服务失败、超过预定义阈值或者到达指定目标)可能还会引起过程自身之外的相关方的兴趣。
EDA 允许您将创建或遇到事件的过程中的所有这些事件发布到一个中央事件处理主干上,从而使所有感兴趣的相关方可以从此处找到它们。产生事件的过程或服务本身无需考虑这些外部各方,否则,会给该特定过程的执行带来压力,系统之间交织过密,造成维护困难。
EDA产生的流程模型可能和SOA的流程模型不同。不是把基本服务组合成组合服务或者流程服务,而是得到一种可以被称为“业务流程链”或“流程链”。这和编排类似:没有一个中央控制,相反,整个流程链是事件触发的一个(平行的)处理程序。有点事没必要搞一个称为瓶颈的中央控制组件,不足之处是更难理解、更难文档化和监控整个流程的各个实例。