技术开发 频道

浅谈面向构件的SOA架构


      根据服务的使用对象,服务可分为可编程Web服务和交互Web服务。前者通过接口封装业务功能单元,并提供给其他服务或商业逻辑调用;后者通过人机交互,采集用户输入来完成服务处理过程。 

      1. 可编程Web服务 

      可编程Web服务封装一个可编程的业务流程,并通过外部接口暴露应用程序和构件的商业逻辑功能。这些接口可以由不同编程语言编写,包括Java/EJB、VisualBasic或者C++。外部应用或服务通过WSDL中描述的可编程接口调用这些Web服务。一个可编程服务的 典型实例是一个库存管理系统的库存查询功能,一个“库存检查”Web服务可以被一个“订单创建”服务调用,而“订单创建”服务本身是一个用户在使用订单系统的“创建购买订单”服务时调用的。 

      2. 交互Web服务 

      交互Web服务提供人机交互界面,可以直接面向用户提供服务。交互Web服务装配器可以集成多个Web服务,并实现特定的交互流程,并将集成后的服务提供给用户。 


      显然,以上两种类型的Web服务可以组合后发布。因此,一个业务系统往往既包含可编程Web服务又包含交互Web服务。 

      此外,根据服务请求处理方式的不同,我们可以将Web服务分为两类:同步服务和异步服务。 

      同步服务 

      同步服务的客户端把调用方法和参数作为请求消息,返回消息中包含了方法返回值。这意味着一个客户端在发送请求消息之后,一直要等相应消息返回后才能继续计算。这种类型的双向通讯服务和客户端之间的紧耦合,一般用于具有如下特征的应用程序中使用:客户端发出服务请求后立刻需要返回消息、客户端和服务之间的通讯是一来一回的对话形式、 服务是面向数据的。 

      典型的同步服务包括查询特定股票的价格,查询特定地点的天气,或者查询合同伙伴的信用情况等。 

      异步服务 

      异步服务是消息驱动的服务。当一个客户调用消息类型的服务时,客户端一般发出一个完整的消息,例如订货单而不是一系列参数。服务接受整个消息后进行处理,可能返回结果消息或者不返回。一个调用异步服务的客户不需要一直等到接受返回消息后再进行余下的操作。服务的返回消息,可能在之后的任意时间点到达。异步服务提供了客户和服务提供者之间的松耦合,前提是客户和服务提供者之间不需要严格的请求/响应耦合关系。异步服务一般在有如下特征的应用程序中使用:客户端不需要立刻得到返回消息、 服务是面向流程的。 

      典型的异步服务包括处理一个订单;对某个客户的报价请求进行响应。在这些例子中,客户端发出一个完整的消息给Web服务,例如一个订货单,Web服务对请求进行某种形式的处理,而客户端并不要求一个立刻的回答。
0
相关文章