技术开发 频道

SOA建模之服务合成

    Productions 服务提供者提供 Scheduling 服务,决定产品在哪里被生产,以及如何何时被生产。这一信息能够被用来创建运送时间表,这个表在处理定购单时使用。

    图3显示了 Shipper 服务提供者。

    
    图 3. Shipper 服务提供者
 
    Shipper 服务提供者提供 ShippingService 服务,将产品运送到消费者来完成定购。该服务需要 ScheduleProcessing 接口来请求消费者处理完成的时间表。
    
    服务合成

    现在,服务已全部由一些提供者提供,我们已经准备好将这些提供者集合起来使用,实现最初的业务需求。这种集合根据业务需求来合成和设计服务,为 Purchasing 服务提供一种方法。我们将创建一个 OrderProcessor 合成要素,为处理定购单提供一个购买服务。这个服务提供者要求服务被 InvoicingService、Scheduling 和 ShippingService 服务规范定义。我们将创建一个 OrderProcessing 合成要素,它集合了 Invoicer、Productions 和 Shipper 合成要素的实例,以及 OrderProcessor 合成要素,从而执行处理定购单的操作。

    Order Processor 服务提供者

    定购单处理服务由 Purchasing 服务规范指定(请参见图4),该规范包括如下功能(或者操作):

    + processPurchaseOrder (customerInfor : Customer, purchaseOrder : PurchaseOrder) : Invoice

    这一服务将由 OrderProcessor 服务提供者提供。OrderProcessor 是一个合成要素,它通过将其他服务提供者(根据需求契约设计的)连接在一起来提供一个服务。也就是说被提供的服务方法的某些方面被设计用来以某种方式使用其他服务提供者。这一合成要素通过它的购买服务端口提供 Purchasing 接口。所有的消费者接口都是通过这个端口的,从而将消费者客户端从同合成要素同其他服务消费者或者提供者的相互作用中分割出来。这样做限制了模型中的耦合性,随着市场和服务消费者和提供者的变化能够更容易的做出改变。

    图 4. Purchasing 服务规范
     


    OrderProcessor 合成要素的组织展现在图5中所示的 Project Explorer 视图中。

    图 5. 定购管理业务功能区域(包)
     

    OrderProcessor 服务提供者包含在 org::ordermanagement 包中,它用于组织同定购管理相关的服务。定购管理包也包含相关的服务接口、服务消费者和服务提供者。

    图6中显示的 OrderProcessor 图表提供了 OrderProcessor 服务者及其提供的和要求的服务的一个外部视图。(要求的服务有时被称作请求,以便同功能需要相区分。)外部的或者叫做“黑盒”视图是呈现给服务提供者的消费者查看的。稍后将显示的合成要素的内部结构提供了一个支持合成要素的执行设计结构的一个内部的或者叫做“白盒”的视图。

    图 6. OrderProcessor 服务提供者
     

0
相关文章