SOA 与微服务的区别
(1)微服务相比于 SOA 更加精细,微服务更多地以独立的进程的方式存在,互相之间并无影响。
(2)微服务提供的接口方式更加通用化,例如 HTTP RESTful 方式,各种终端都可以调用,
无关语言、平台限制。
(3)微服务更倾向于分布式去中心化的部署方式,在互联网业务场景下更适合。
SOA架构以ESB链接各个子系统,是集中式的技术架构,应用服务间相互依赖导致部署复杂,应用间交互使用远程通信,降低了响应速度。
微服务架构是SOA架构的进一步优化,去除了ESB,是去中心化的分布式架构,降低了微服务之间的耦合程度,不同的微服务采用不同的数据库技术,服务独立,数据源唯一,应用极易扩展和维护,同时降低了系统复杂度。
SOA 主要协议和规范
Web 服务最基本的协议包括 UDDI、WSDL、SOAP。
(1)UDDI 协议:统一描述、发现和集成协议。包含了服务描述与发现的标准规范,它使得商业实体能够彼此发现;定义它们怎样在 Internet 上互相作用,并在一个全球的注册体系架构中共享信息。
(2)Web 服务描述语言(WSDL):WSDL 是一个用来描述 Web 服务和说明如何与 Web 服务通信的 XML 语言。描述了 Web 服务的 3 个基本属性。
1)服务做些什么——服务所提供的操作(方法)。
2)如何访问服务——和服务交互的数据格式以及必要协议。
3)服务位于何处——协议相关的地址,如 URL。
(3)SOAP 协议:SOAP 是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML 的协议。
(4)REST 规范:为了让不同的软件或者应用程序在任何网络环境下都可以进行信息的互相传递。微服务对外就是以 REST API 的形式暴露给调用者。RESTful 即 REST 式的,是对遵循REST 设计思想同时满足设计约束的一类架构设计或应用程序的统称,这一类都可称为 RESTful。
标准
通信协议标准。SOA 服务用消息进行通信,该消息通常使用 XML Schema 来定义(也称作 XML Schema Definition,XSD)。