1.SOA定义
SOA面向服务的架构是一种计算机环境设计、开发、部署和管理离散模型的方法,SOA中所有的功能都被定义成立独立的服务,所有的服务通过总线(ESB)或者流程管理连接。这种松耦合的结构使得服务器在交互的过程中无需考虑双方内部细节,以最小的代价整合已经存在的各种异结构。主要有3种抽象级别:操作、服务和业务流程
操作:通常会导致读、写、修改一个或多个持久性数据
服务:代表了操作的逻辑分组
业务流程:为了实行特定业务目标而执行的一组长期运行的动作或活动
2.SOA的特征
松耦合:松耦合旨在使用者和提供者在服务实现和用户如何使用服务方面隔离,基于服务接口的信息,信息接口能兼容更多中传输方式,基于消息可以采用同步和异步的传输。
粗粒度:选择正确的有效的粗粒度服务,有助于组合出新的业务流程和应用程序。
服务粒度:指的是服务所公开功能的范围,一般分为粗粒度和细粒度
粗粒度:能够提供高层业务逻辑的可用性服务
细粒度:能够提供少量的业务流程可用性的服务
标准化接口:SOA通过服务接口的标准化描述,使得该服务可以在任何异构平台和任何用户接口中使用。包括:传输协议、消息格式等。
3.服务构件和传统构件得区别:
(1).服务构件往往是粗粒度的,传统构件往往是细粒度居多
(2).服务构(SCA)件主要是使用标准化的接口描述语言接口,传统构件主要是具体的API形式
(3).服务构件的实现与具体的语言无关,传统构件需要绑定某种特殊的语言
4.SOA设计原则
- 明确定义接口
- 粗粒度
- 松耦合
- 自包含和模块化:服务封装了在业务层稳定,重复出现的活动和构件,实现服务的功能实体完全独立
- 互操行,兼容性,策略声明mian
5.面向服务的分析与设计SOAD
SOAD分为三层:
①基础设计层:采用了OOAD的思想,主要目标是能够进性快速而有效的设计、开发以及执行灵活且可扩展的底层服务构件
②体系结构层:采用EA的理论框架,以表示业务服务的逻辑构件为中心,并且集中于定义服务之间的接口和服务级协定
③业务层:采用了BPM规范
6.SOA关键技术
1.发现服务层:帮助客户端应用程序解析远程服务位置,UDDI规范描述了服务的概念提供标准接口,企业可以发布自己的服务提供其他企业查询和调用,也可以查询特定服务描述信息“一次注册到处服务”
2.描述服务层:为客户端应用程序提供正确地与远程服务交互的描述信息,WSDL为服务提供者提供以xml格式描述服务请求的标准格式,将网络服务描述为能够进行消息交换的通信端点集合。
3.编码格式层:为客户端和服务器之间提供一个标准的,独立与平台交换编码风格XML实现
4.传输协议层:提供网络通信协议(http,smip)
5.消息格式层:保证客户端应用程序和服务器端在格式设置上保持一致,通过SOAP实现,SOAP定义了服务请求者和提供者之间的消息传输规范
7.SOA实现方法
1.Web Service
服务提供者:
服务请求者:
服务注册中心:
2.服务注册表
3.企业服务总线ESB