什么是SOA(面向服务的架构)?

 

目录

定义

设计原则

关键技术(四种)

UDDI(Universal DescriptionDiscovery and Integration,统一描述、发现和集成)

WSDL(Web ServiceDescription Language, Web 服务描述语言)

SOAP(Simple ObjectAccess Protocol,简单对象访问协议)

REST(RepresentationalState Transfer,表述性状态转移)

实现方法(三种)

Web Service

企业服务总线(ESB)

服务注册表(service registry)


定义

在这种架构中,所有功能都定义为独立的服务,这些服务带有定义明确的可调用接口,能够以定义好的顺序调用这些服务来形成业务流程。服务之间通过交互和协调完成业务的整体逻辑。所有服务通过服务总线或流程管理器来链接。

什么是SOA(面向服务的架构)?_第1张图片

设计原则

  1. 明确定义的接口。服务定义必须长时间稳定,一旦发布,不能随便更改;服务的定义应尽可能明确,减少请求者的不适当使用。
  2. 自包含和模块化。实现服务的功能实体是完全独立自主的,独立进行部署、版本控制、自我管理和恢复。
  3. 粗粒度。服务数量不应该太多,依靠消息交互而不是远程过程调用,通常消息量比较大,但是服务之间的交互频度较低。
  4. 松耦合。只有服务接口是请求者可见,其位置、实现技术、当前状态和私有数据等对请求者是不可见。
  5. 互操作性、兼容和策略声明

关键技术(四种)

  • UDDIUniversal DescriptionDiscovery and Integration统一描述、发现和集成)

特点:提供一种服务发布、查找和定位的方法,是服务的信息注册规范,以便被需要该服务的用户发现和使用它。

包含以下三个部分内容:

  1. 数据模型:用户描述业务组织和服务的XML Schema。
  2. API:用于查找或发布UDDI数据的方法,API基于SOAP。
  3. 注册服务:是SOA中的一种基础设施,对应于服务注册中心的角色。

 

  • WSDLWeb ServiceDescription LanguageWeb 服务描述语言)

特点:是对服务进行描述的语言,有一套基于XML的语法定义。WSDL描述的重点是服务,包含服务实现定义和服务接口定义。

什么是SOA(面向服务的架构)?_第2张图片

服务实现定义:描述了给定服务提供者如何实现特定的服务接口。

服务接口定义:是一种抽象的、可重用的定义;行业标准组织可以使用这种抽象的定义来规定一些标准的服务类型,服务实现者可以根据这些标准定义来实现具体服务。

 

  • SOAPSimple ObjectAccess Protocol,简单对象访问协议)

特点:定义了服务者和服务提供者之间的消息传输规范,用XML来格式化消息,用HTTP来承载消息。

SOAP整体包含以下四个部分内容

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

SOAP消息包括以下三个部分:

  1. 封装(信封):Envelope,SOAP消息中的顶层元素。
  2. SOAP头:Header,提供了向SOAP消息中添加关于这条SOAP消息的某些要素机制。在SOAP消息中可能出现,也可能不出现。
  3. SOAP体:Body,包含消息的最终接收者想要的信息的容器。

 

  • RESTRepresentationalState Transfer,表述性状态转移

特点:一种只使用HTTP和XML进行基于web通信的技术,可以降低开发的复杂性,提高系统的可伸缩性。REST 从根本上来说只支持几个操
作(
POSTGETPUT DELETE),这些操作适用于所有的消息。

设计概念和准则:

  1. 网络上的所有事物都被抽象为资源。
  2. 每个资源对应一个唯一的资源标识。
  3. 通过通用的连接件接口对资源进行操作。
  4. 对资源的各种操作不会改变资源标识。
  5. 所有操作都是无状态的。

 

实现方法(三种)

  • Web Service

包含以下三种角色

  1. 服务提供者:服务的所有者,负责定义并实现服务。
  2. 服务请求者:服务的使用者,是查找、绑定并调用服务,或与服务进行交互的应用程序。
  3. 服务注册中心:是连接服务提供者和服务请求者的纽带。

什么是SOA(面向服务的架构)?_第3张图片

操作包括:发布、查找、绑定

层次包括:底层传输层、服务通信协议层、服务描述层、服务层、业务流程层和服务注册层。

 

  • 企业服务总线(ESB)

特点:是一种为进行连接服务的标准化的通信基础结构,基于开放的标准,为应用提供一个可靠的、可度量的和高度安全的环境,帮助企业对每个业务流程实施控制和跟踪、分析并改造流程和性能。

.优点:扩展的、基于标准的连接。

 

  • 服务注册表(service registry)

特点:提供一个策略执行点,使服务可以在SOA中注册,从而被发现和使用。

支持包括:服务注册、服务位置、服务绑定功能。

你可能感兴趣的:(架构,java)