组装 OrderProcessing 子系统
在我们的 SOA 解决方案中,最后要做的就是创建一个 OrderProcessing 子系统,它使用我们一直执行的服务提供者将各部分装配到一个可配置的解决方案之中。
这个子系统如图12所示,它反映了一个将 OrderProcessor 服务提供者同其他提供其需求服务的服务提供者连接起来的可配置的合成要素。这个子系统是提供所有配置和运行 OrderProcessor 服务的必要信息的合成要素的一个集合。
图 12: 将各部分组装到一个可配置的子系统之中

OrderProcessing 子系统包括 OrderProcessor、Invoicer、Productions 和 Shipper 服务提供者合成要素的实例。销售者合成要素的货品计价服务同 Invoicer 合成要素的货品计价服务相连接。这是一个有效的连接,因为 OrderProcessor 合成要素的货品计价服务的服务规范,正是 Invoicer 提供者的货品计价服务的变形。OrderProcessor 合成要素要求 Invoicing 接口,它是由 Invoicer 服务提供者所提供的。它还为 Invoicer 提供了 InvoiceProcessing 接口,接收更新的货品计价。
连接服务(服务规范的实例)意味着参与者同意根据服务规范相互作用连接器。也就是说,它们同意遵守被要求的协议。服务规范定义了协议中被连接的参与者所扮演的角色。orderProcessor 消费者的货品计价端口和货品计价提供者的货品计价端口之间的服务信道连接器拥有一个契约(行为),这个行为是 InvoicingService 服务规范的 InvoicingService 行为。连接器的名称根据约定被设置为其契约的名称。任何经过这个连接器的交互作用都被要求遵守契约或者协议。这些连接器将服务架构中的使用依赖形式化了。
请注意,生产者和销售者部分之间的连接器没有契约。这是因为在 Scheduling 服务接口中没有协议,所以该连接器不需要契约。
其他消费者和提供者以相似的方式被连接起来。连接的服务能够提供不同的绑定风格。服务相互作用点之间的服务信道能够指定实际使用的绑定风格。
OrderProcessing 子系统现在已经完成,并且做好被配置的准备。它已经指定了服务提供者完全执行 processPurchaseOrder 服务所必须的所有被需要的实例。在它被配置以后,其他服务消费者能够绑定到销售者 OrderProcessor 合成要素的购买服务,并且调用该服务操作。