SOA 是一种在计算环境中设计、开发、部署和管理离散逻辑单元(服务)模型的方法。 虽然 SOA 是基于对象的,但是作为一个整体,它却不是面向对象的。
服务之间通过交互和协调完成业务的整体逻辑。所有的服务通过服务总线或流程管理器来连接。
单个服务的内部结构
服务构件与传统构件 服务构件架构(Service Component Architecture, SCA)是基于 SOA 的思想描述服务之间组合和协作的规范,它描述用于使用 SOA 构建应用程序和系统的模型。它可简化使用SOA 进行的应用程序开发和实现工作。
SCA 服务构件与传统构件的主要区别在于,服务构件往往是粗粒度的,而传统构件以细粒度居多;服务构件的接口是标准的,主要是服务描述语言接口,而传统构件常以具体 API形式出现;服务构件的实现与语言是无关的,而传统构件常绑定某种特定的语言;服务构件可以通过构件容器提供 QoS 的服务,而传统构件完全由程序代码直接控制。
SOA 的关键技术
SOA 紧密相关的技术主要有 UDDI、 WSDL、 SOAP 和 REST 等
-
UDDI UDDI(Universal DescriptionDiscovery and Integration,统一描述、发现和集成)提供了一种服务发布、查找和定位的方法,是服务的信息注册规范,以便被需要该服务的用户发现和使用它。
UDDI 技术规范中,主要包含以下三个部分的内容: (1)数据模型。 UDDI 数据模型是一个用于描述业务组织和服务的 XML Schema。 (2) API。 UDDI API 是一组用于查找或发布 UDDI 数据的方法, UDDI API 基于 SOAP。 (3)注册服务。 UDDI 注册服务是 SOA 中的一种基础设施,对应着服务注册中心的角色。
2.WSDL WSDL(Web ServiceDescription Language, Web 服务描述语言)是对服务进行描述的语言,它有一套基于 XML 的语法定义。 WSDL 描述的重点是服务,它包含服务实现定义和服务接口定义。
3.SOAP SOAP(Simple ObjectAccess Protocol,简单对象访问协议)定义了服务请求者和服务提供者之间的消息传输规范。SOAP 用 XML 来格式化消息,用 HTTP 来承载消息。
SOAP主要包括以下四个部分:
(1)封装。 SOAP 封装定义了一个整体框架,用来表示消息中包含什么内容,谁来处理这些内容,以及这些内容是可选的还是必需的。 (2)编码规则。 SOAP 编码规则定义了一种序列化的机制,用于交换系统所定义的数据类型的实例。 (3) RPC 表示。 SOAP RPC 表示定义了一个用来表示远程过程调用和应答的协议。 (4)绑定。 SOAP 绑定定义了一个使用底层传输协议来完成在节点之间交换 SOAP 封装的约定。
4.REST
REST(RepresentationalState Transfer,表述性状态转移)是一种只使用 HTTP 和 XML 进行基于 Web 通信的技术,可以降低开发的复杂性,提高系统的可伸缩性。
REST 从根本上来说只支持几个操作(POST、 GET、 PUT 和 DELETE),
REST 提出了如下一些设计概念和准则:
(1) 网络上的所有事物都被抽象为资源。
(2)每个资源对应一个唯一的资源标识。
(3)通过通用的连接件接口对资源进行操作。
(4)对资源的各种操作不会改变资源标识。
(5)所有的操作都是无状态的