SOA模式短文推荐
<!-- the_excerpt(); -->强烈推荐SOA爱好者下载收藏《SOA Pattern 》一文,又有精品全文《SOA Design Pattern 》推荐下载
作者将模式分为三类:(1)基本服务模式,是最小粒度的服务模式,已经无法再次拆分,可以认为是模式原语,多用在服务层面使用。(2)架构模式,通用的SOA系统设计要素,多用在系统设计时,做为架构风格的一个元素。(3)复合模式,基本服务模式的组合,用来定义系统的衔接特征,多用在应用系统整合场景。下面按照自己的理解和使用经验,简单说明一下,具体的介绍还请研究原文。
基本模式说明:
- Aggregator:将多个独立的消息体通过该计算组件组合为一个消息体。
- Service Bus:将多个独立的系统(已有系统、新系统)通过统一机制整合起来。
- Dynamic Routing:与规则库配合,实现一个消息体的路由,实现上常采用基于消息头路由、基于内容路由2中情况。
- Event-Driven Consumer:常用在资源有限的场景,解决资源竞争的问题,例如,网络接入时,系统所能接收到socket有受限的,此时即可通过该模式解决。
- Filter:消息内容的过滤,例如,关键字过滤,也可用在信息补全场景。
- Router:将消息发送到不同的应用,与Dynamic Routing的区别在于,此时规则是固定的,常常有2中使用方式,单播、多播。
- Translator or Transformer:用在消息格式的转换场景。
架构模式说明:
- Asynchronous Processing:异步事件风格解决服务之间的交互,例如,ATM到银行账务系统,多用该模式。在实践中,也鼓励使用这种风格,实现SOA,以弱化一致性、事务性,缓解资源受限等场景,该模式需要业务配合才能完全发挥。
- Bridge:常用在2中体系之间的交互,把一种协议转换为另一种协议。它与Translator的区别在,Translator是针对消息的,它针对链路。
- Cross-Service Operation:把多个服务封装为一个服务来使用,以确保一致性、事务性,可以把该风格弱化为分布式事务风格。
- Event-Driven Dispatching:基于事件的派发,常用在pub/sub场景。
- Process Aggregation:把多个过程聚合在一起,按照一定顺序进行消息处理,此时不要求一致性,每个过程都是独立的,用BPM技术更容易理解该场景。
- Routing and Filtering:实现一个消息的多种渠道应用,例如,一个业务通知,通过Mail,IM、SMS、语言、甚至特殊应用传达给用户的场景,一个产品为多个渠道提到内容的场景。
- Replicator:实现一份消息,服务处理的时候,同时往数据库复制一份,例如,数据备份容灾、数据采集、数据审计等。
复合模式说明:
- Centralized Schema:解决跨应用边界的数据共享问题。
- Concurrent Contracts:解决一个服务多个消费者时,每个消费者接口不同的问题。
- Decomponse Capability:??
- Enterprise Service Bus:通过一个消息总线,解决应用整合的问题,化解复杂的网状链接。
- Fault-Tolerant Service Provider:通过负责均衡解决服务高可靠性的问题。
- Wrapper:解决传统应用服务化的问题。