服务协调
一个特定服务的存在是因为至少有一个服务消费者发出了这项服务的请求。然而,在一些情况下,一个服务不得不调用许多其它服务来满足服务消费者的原始请求。简单的情况导致一个特定服务扩展原始请求到一个或者更多其它服务上。然而,复杂的情况可以导致大量服务的递归调用,在一些极端的例子里,一些服务的内部依赖调用—可以导致死循环。
这里有一个例子。当一张机票被出售时,下面的服务需要被执行:
取得消费者
取得日程表
检查可用信息
提供费用
接受支付
构建协调能力使得每一服务在如此复杂情况下都能顺利执行
如图7所示。

图7.服务协调挑战
这些综合服务如何被协调?
商业过程管理方法
这种方法使独立的服务更简单:这些服务没有能力来协调其它为了满足请求而调用的服务。
替代性的,这种能力被放置于商业过程层。商业过程负责调用每一个子服务,这样来提供组合服务来满足消费者的原始请求。商业过程就成为一个组成服务的专业例子。

图8说明了这张机票购买的商业过程,包括每一个独立执行的逻辑步骤。这个商业过程通过一个简单的访问来查找服务,然后按顺序协调为适当步骤。
服务发送
挑战
SOA还要提供对消费者的地域透明性:服务消费者必须能够在任意服务范围内发送任意服务的请求。同时,在调用一个服务前访问服务库是一个减少时间的步骤。这些架构在保证可接受的系统性能水平的同时,如何提供地域透明性?
方法
我们能够用两种方法解决服务发送挑战。