SOA架构概述
1. SOA概述
SOA(Service-Oriented Architecture,⾯向服务的架构)是⼀种在计算机环境中设计、开发、部署和管理离散模型的⽅法。SOA不是⼀种新鲜事物,它是在企业内部IT系统重复构建以及效率低下的背景下提出的。在SOA模型中,所有的功能都被定义成了独⽴的服务,所有的服务通过服务总线(ESB)或流程管理器来连接。这种松散耦合的结构使得能够以最⼩的代价整合已经存在的各种异构系统,当然,由于需要实现对各种异构系统的适配(通常使⽤ESB来完成不同系统之间的协议转换及数据格式转换),因此,其本⾝也会引⼊更多的复杂性。
⼀个典型的SOA结构如下图所⽰:
其中,对于其中的单个服务⽽⾔,其内部结构⼀般如下:
2. SOA设计原则:
SOA的设计原则包括:
soa
明确的接⼝定义:接⼝需满⾜稳定、明确、封装性等要求。
⾃包含与模块化:实现服务的功能实体是完全独⽴⾃主的,独⽴进⾏部署、版本控制、⾃我管理和恢复。
粗粒度:服务数量不应太多,依靠消息交互⽽不是远程过程调⽤。
松耦合:减少各个服务间的相互依赖和影响,各个服务的位置、实现技术、当前状态以及私有数据,对服务请求者不可见。
互操作性、兼容性和策略声明。
3. SOA实现⽅法
SOA作为⼀种架构设计的概念和思想,需要借助具体的技术和⽅法来实现。⽬前SOA的主流实现⽅法包括:Web Service、服务注册表和企业服务总线。
3.1 Web Service
3.2 服务注册表
服务注册表(Service registry)提供⼀个策略执⾏点,在这个点上,服务可以在SOA中注册,从⽽可以被发现和使⽤。⼤多数商⽤服务注册产品⽀持服务注册、服务位置和服务绑定功能。
3.3 企业服务总线ESB
ESB(Enterprise Service Bus)将企业中各个不同的服务连接在⼀起。因为各个服务是异构的,没有统⼀的标准,各个异构系统对外提供的接⼝是各式各样的,SOA使⽤ESB来屏蔽异构系统对外提供的不同接⼝,以此来达到服务间⾼效的互联互通。
4. SOA关键技术
与SOA紧密相关的技术主要有UDDI、WSDL、SOAP和REST等,这些技术都是以XML为基础发展⽽来的。
4.1 UDDI
UDDI(Universal Description Discovery and Integration,统⼀描述、发现和集成)提供了⼀种服务发布、查和定位的⽅法,是服务的信息注册规范,以便该服务被发现和使⽤,同时它也定义了⼀种编程接⼝。该技术规范主要包括数据模型、API和注册服务三部分。
4.2 WSDL
WSDL(Web Service Description Language,Web服务发现语⾔)是基于XML语法对服务进⾏描述的语⾔,包括服务实现定义和服务接⼝定义。服务实现定义描述服务提供者如何实现特定的服务接⼝,包含服务和端⼝描述。服务接⼝定义是⼀种抽象的、可重⽤的定义,⾏业标准组织可以使⽤这种抽象的定义来规定⼀些标准的服务类型,服务实现者可以根据这些标准定义来实现具体的服务。
4.3 SOAP
SOAP(Simple Object Acess Protocol,简单对象访问协议)定义了服务请求者和服务提供者之间的消息传输规范,该协议通过HTTP 承载XML格式化的消息。通过SOAP,应⽤程序可以在⽹络中进⾏数据交换和远程过程调⽤(RPC)。SOAP主要包括封装、编码规则、RPC表⽰和绑定四个部分。
4.4 REST
REST(Representational State Transfer,表达性状态转移)是⼀种针对Web服务的设计和开发⽅式,通常使⽤HTTP、XML、URI和HTML等流⾏协议或标准,可以有效降低开发的复杂性,提⾼系统的可伸缩性。REST对信息的操作基本只⽀持POST、GET、PUT和DELETE,这些操作基于如下的设计理念:
⽹络上的所有事物都被抽象为资源;
每个资源对应⼀个唯⼀的资源标识;
通过通⽤的连接件接⼝对资源进⾏操作;
对资源的各种操作不会改变资源标识;
所有操作都是⽆状态的。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。