基于服务的体系结构

SOA的概念


W3C:SOA是一种应用程序体系结构,在这种体系结构中,所有功能都定义为独立的服务,这些服务带有定义明确的可调用接口,能够以定义好的顺序调用这些服务来形成业务流程。

Service-architecture.com:服务是精确定义、封装完整、独立于其它服务所处环境和状态的函数。SOA本质上是服务的集合,服务之间彼此通信,这种通信可能是简单的数据传送,也可能是两个或更多的服务协调进行某些活动。服务之间需要某些方法进行连接。

Gartner:SOA是一种C/S体系结构的软件设计方法,应用由服务和服务使用者组成,SOA与大多数通用的C/S体系结构模型不同之处,在于它着重强调构件的松散耦合,并使用独立的标准接口。

SOA的概念 – SOA模型示例

基于服务的体系结构

SOA的概念 – SOA的特征

松散耦合
粗粒度服务
标准化接口


SOA的概念 – 服务构件与传统构件

服务构件体系结构(SCA)是基于SOA的思想描述服务之间组合和协作的规范,它描述用于使用SOA构建应用程序和系统的模型。它可简化使用 SOA 进行的应用程序开发和实现工作。SCA 提供了构建粗粒度构件的机制,这些粗粒度构件由细粒度构件组装而成。SCA将传统中间件编程从业务逻辑分离出来,从而使程序员免受其复杂性的困扰。它允许开发人员集中精力编写业务逻辑,而不必将大量的时间花费在更为底层的技术实现上。
SCA服务构件与传统构件的主要区别在于,服务构件往往是粗粒度的,而传统构件以细粒度居多;服务构件的接口是标准的,主要是服务描述语言接口,而传统构件常以具体API形式出现;服务构件的实现与语言是无关的,而传统构件常绑定某种特定的语言;服务构件可以通过构件容器提供QoS的服务,而传统构件完全由程序代码直接控制。


SOA的概念 – SOA的设计原则

明确定义的接口
自包含和模块化
粗粒度
松耦合
互操作性、兼容和策略声明


SOA的关键技术

发现服务层

UDDIDISCO

描述服务层

WSDLXML Schema

消息格式层

SOAPREST

编码格式层

XML

传输协议层

HTTPTCP/IPSMTP



WSDL – 基本服务描述

基于服务的体系结构

UDDI – 概述

UDDI数据模型。一个用于描述企业和服务的XML Schema
UDDI API。一组用于查找或发布UDDI数据的方法,基于SOAP
UDDI注册服务。一种基础设施,对应着服务注册中心的角色

SOAP – 概述

SOAP封装。定义一个整体框架,用来表示消息中包含什么内容,谁来处理这些内容,以及这些内容是可选的或是必需的
SOAP编码规则。定义了一种序列化的机制,用于交换系统所定义的数据类型的实例
SOAP RPC表示。定义一个用来表示远程过程调用和应答的协议
SOAP绑定。定义一个使用底层传输协议来完成在节点间交换SOAP信封的约定