深入浅出SOA思想

  1. SOA (service-OrientedArchitecture), 面向服务架构,是一种架构,不是具体开发技术,SOA理念:本质上是一种业务和技术完全分离、业务又能和技术自由组合的思想。

SOA是为软件集成而服务的、实现了技术和架构的完全分离,消除了软件服务集成的所有障碍

  1. web service和SOA的区别

SOA是在web service的基础上发展起来的

webservice 实现了松耦合和粗粒度的服务

  1. 微服务、SOA和API对比

3.1 微服务架构、SOA架构

​ API(应用程序编程接口)

3.2 简单定义

​ 微服务架构是一种构造应用程序的替代性方法,应用程序被分解为更小、完全独立的组件,这使它们拥有更高的敏捷性、可伸缩性、可用性

​ SOA将应用程序的功能公开为更容易访问的服务接口,使得下一代应用程序中使用它们的数据和逻辑变得更容易

3.3 API与SOA公开的服务的对比

​ API通常代表低级编程代码接口,用表示通过HTTP提供的简单接口。通常等同于rest接口,这些接口使用json数据格式(有时为xml)来提供数据,使用http动词put、get、post、delete来提供描述创建、读取、更新、删除操作

​ 与早期SOA中更流行的基于SOAP的web服务标准对比,这些协议和数据格式在使用上更加简单

​ 但是SOA web服务与api之间的区别不是由协议和数据结构来定义的。因为二者没有一致的使用它们。区别在于api和soa服务背后的意图,一个关键区别是它们的经济学原理

  • 在soa程序中,公开服务旨在公开每个业务功能,以便服务可得到尽可能多的重用。SOA旨在节约成本,而不是创造新收入
  • API拥有不同的出发点,它假设集成已被简化。API是为可能使用它们的上下文而设计的,例如它们非常适合提供一种特定类型的移动应用程序所需的数据。API的关注点不是SOA所关注的重用和成本节约。它关注的是可使用性以及参与API经济中的竞争

如今 ,API这个词通常用于指代任何通过rest(http/json)或web服务(soap/http)公开的接口

3.4 微服务:一种替代性架构

提供了更好的方法来解耦应用程序边界内的组件

应用程序的边界保持相同,在内部被分解为不同的微服务组件,但从外部看,应用程序仍是相同的,表示内部组中的程度,而不是公开的要心的粒度

4.web service (传统web service是基于soap协议看,也有rest风格的)

​ ①基于SOAP协议,数据格式是XML

​ ②只支持HTTP协议

​ ③只能部署在IIS上

​ ④任何平台都可以使用web service

​ ⑤不受防火墙影响(基于SOAP)

SOAP是以xml形式提供简单、轻量、用于分布式环境中交换结构化和类型信息的机制。SOAP通过http协议传递xml数据,是一个基于xml的协议

工作原理

客户端—>阅该WSDL文档(依文档生成soap请求)—>发送到web服务器—>交给web service请求处理器(ISAPI Extension)—>处理soap请求—>调用Webservice —>生产soap应答—>web服务器通过http方式交给客户端

5 web api (这里特指asp.net的webapi )

SignalR一起同为构建Service的框架。Web API负责构建http常规服务,而SingalR主要负责的是构建实时服务,例如股票,聊天室,在线游戏等实时性要求比较高的服务。

web API的主要功能

  1. 支持基于Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操作

通过不同的http动作表达不同的含义,这样就不需要暴露多个API来支持这些基本操作。

  1. 请求的回复通过Http状态码表达不同含义,并且客户端可以通过Accept header来与服务器协商希望服务器 返回JSON格式还是XML格式。
  2. 请求的回复格式支持 JSON,XML,并且可以扩展添加其他格式。
  3. 支持大多数MVC功能,例如Routing/Controller/Action Result/Filter/Model Builder/IOC Container/Dependency Injection。

Web API 和MVC

webApi和MVC区别

①MVC主要用来构建网站,既关心数据,也关心页面

​ web api只关注数据

weiapi 内建于system.web.http命名空间下

MVC位于 system. web. mvc命名空间下