2010-12-04 45 views
2

我不确定这是否合适,但在我的企业中,我们有两种类型的服务:聚合服务&基本服务。SOA服务中的聚合模式

聚合服务从它们的接口被标识,其中输入是请求对象列表,并且类似地,响应是列表。该服务应该以相互排斥的方式处理请求列表,即如果处理一个请求对象,服务仍然必须继续处理下一个请求对象。提供的通常原因是提高性能 - 而不是循环中的消费者调用服务,它只创建Request对象和Call服务的列表一次。另一个所谓的好处是您可以将不相关的请求分组为一个请求。

有没有人也使用类似的聚合服务?如果是这样,你能否提供更多的信息/或这种方法的好处。

回答

5

这是服务设计中的一种常见做法,想法是,无论何时穿过服务边界,您都会付出代价。请记住,SOA是关于在服务之间传递消息,而不是引用对象,这种脱离善的价格跨越边界。

所以,当你穿过一个边界时,你应该尽量挤出尽可能多的东西。

在上面的场景中,由于性能方面的原因,您似乎在以并发方式处理项目,只要确保使用任何事务资源,您的锁定策略符合您的并发处理方法。

以下是一些关于其他SOA服务设计思想的良好资源的链接。

我建议您阅读Thomas Erl和Roger Sessions的文章,这将使您很好地掌握SOA的内容。

Building a SOA

SOA Design Pattern

Achieving integrity in a SOA

Why your SOA should be like a VW Beetle

SOA explained for your boss

WCF Service Performance