目录
定义
设计原则
关键技术(四种)
UDDI(Universal DescriptionDiscovery and Integration,统一描述、发现和集成)
WSDL(Web ServiceDescription Language, Web 服务描述语言)
SOAP(Simple ObjectAccess Protocol,简单对象访问协议)
REST(RepresentationalState Transfer,表述性状态转移)
实现方法(三种)
Web Service
企业服务总线(ESB)
服务注册表(service registry)
定义
在这种架构中,所有功能都定义为独立的服务,这些服务带有定义明确的可调用接口,能够以定义好的顺序调用这些服务来形成业务流程。服务之间通过交互和协调完成业务的整体逻辑。所有服务通过服务总线或流程管理器来链接。
设计原则
- 明确定义的接口。服务定义必须长时间稳定,一旦发布,不能随便更改;服务的定义应尽可能明确,减少请求者的不适当使用。
- 自包含和模块化。实现服务的功能实体是完全独立自主的,独立进行部署、版本控制、自我管理和恢复。
- 粗粒度。服务数量不应该太多,依靠消息交互而不是远程过程调用,通常消息量比较大,但是服务之间的交互频度较低。
- 松耦合。只有服务接口是请求者可见,其位置、实现技术、当前状态和私有数据等对请求者是不可见。
- 互操作性、兼容和策略声明。
关键技术(四种)
UDDI(Universal DescriptionDiscovery and Integration,统一描述、发现和集成)
特点:提供一种服务发布、查找和定位的方法,是服务的信息注册规范,以便被需要该服务的用户发现和使用它。
包含以下三个部分内容:
- 数据模型:用户描述业务组织和服务的XML Schema。
- API:用于查找或发布UDDI数据的方法,API基于SOAP。
- 注册服务:是SOA中的一种基础设施,对应于服务注册中心的角色。
WSDL(Web ServiceDescription Language, Web 服务描述语言)
特点:是对服务进行描述的语言,有一套基于XML的语法定义。WSDL描述的重点是服务,包含服务实现定义和服务接口定义。
服务实现定义:描述了给定服务提供者如何实现特定的服务接口。
服务接口定义:是一种抽象的、可重用的定义;行业标准组织可以使用这种抽象的定义来规定一些标准的服务类型,服务实现者可以根据这些标准定义来实现具体服务。
SOAP(Simple ObjectAccess Protocol,简单对象访问协议)
特点:定义了服务者和服务提供者之间的消息传输规范,用XML来格式化消息,用HTTP来承载消息。
SOAP整体包含以下四个部分内容:
- 封装:定义了一个整体框架,用来表示消息中包含什么内容,谁来处理这些内容,以及这些内容是可选的还是必需的。
- 编码规则:定义了一种序列号的机制,用于交换系统所定义的数据类型的实例。
- RPC表示:定义了一个用来表示远程过程调用和应答的协议。
- 绑定:定义了一个使用底层传输协议来完成在节点之间交换SOAP封装的约定。
SOAP消息包括以下三个部分:
- 封装(信封):Envelope,SOAP消息中的顶层元素。
- SOAP头:Header,提供了向SOAP消息中添加关于这条SOAP消息的某些要素机制。在SOAP消息中可能出现,也可能不出现。
- SOAP体:Body,包含消息的最终接收者想要的信息的容器。
REST(RepresentationalState Transfer,表述性状态转移)
特点:一种只使用HTTP和XML进行基于web通信的技术,可以降低开发的复杂性,提高系统的可伸缩性。REST 从根本上来说只支持几个操
作( POST、 GET、 PUT 和 DELETE),这些操作适用于所有的消息。
设计概念和准则:
- 网络上的所有事物都被抽象为资源。
- 每个资源对应一个唯一的资源标识。
- 通过通用的连接件接口对资源进行操作。
- 对资源的各种操作不会改变资源标识。
- 所有操作都是无状态的。
实现方法(三种)
Web Service
包含以下三种角色:
- 服务提供者:服务的所有者,负责定义并实现服务。
- 服务请求者:服务的使用者,是查找、绑定并调用服务,或与服务进行交互的应用程序。
- 服务注册中心:是连接服务提供者和服务请求者的纽带。
操作包括:发布、查找、绑定
层次包括:底层传输层、服务通信协议层、服务描述层、服务层、业务流程层和服务注册层。
企业服务总线(ESB)
特点:是一种为进行连接服务的标准化的通信基础结构,基于开放的标准,为应用提供一个可靠的、可度量的和高度安全的环境,帮助企业对每个业务流程实施控制和跟踪、分析并改造流程和性能。
.优点:扩展的、基于标准的连接。
服务注册表(service registry)
特点:提供一个策略执行点,使服务可以在SOA中注册,从而被发现和使用。
支持包括:服务注册、服务位置、服务绑定功能。