SOA Service-Oriented Architecture 面向服务的架构
1 引言
分布式系统中的服务层和面向服务有很大关系。根据面向服务的规范设计出来的架构就叫做面向服务的架构SOA。
SOA最有价值的地方是它增进了松散的耦合,进行业务流程建模的时候以服务为基础。SOA通过开放的标准实现相互通信和整合。在SOA中,方案由不同语言编写的服务组成,还可能宿主在不同的平台之上,可以支持不同的绑定模式。
SOA不是一个服务,SOA是服务的设计原则,包括服务层中的服务。
2 SOA的原则
在一个SOA应用中,构建的块是服务而不是组件。服务应该遵循面向对象的基本原则,例如:封装和多态,还包括下面的原则:
- 边界明确
- 服务自治
- 使用协议,而不是类
- 兼容性
这些原则应该反映到你设计的服务中。但是要记住每个组织都有自己的需求和希望。对于企业来说,很难找到两个相似的SOA。
2.1 边界明确
一个SOA服务暴露清晰和明确的协议。任何与服务的交互都通过公共的接口来实现。实现接口的方法是进入服务体系的入口。方法签名中的数据以消息的形式被服务使用和理解。
设计服务的时候,作为开发者,你因该使得接口(协议)越简单越好,保留将来的升级空间。这意味着服务的操纵的输入消息和输出消息都要设计好。输入和输出消息应该是容易序列化的类,没有循环引用和依赖,只是一个普通的数据容器。
2.2 服务是自治的
每一个服务都是独立的,可以和系统的其他部分完全分离。
从本质来说独立的服务才是松散耦合的服务。他的设计和部署都是独立于其他服务的,但是又可以使用在策略制定的协议基础之上的消息,和其他服务进行通信。
服务协议被设计为静态的,在部署之后不应该被修改。
2.3 使用