0%

WebAPI、Web Service、REST及其他相关概念

SOA:面向服务的架构。一种架构思想,核心是低耦合、标准服务接口、屏蔽底层接口、通讯的实现等。

SOAP:简单对象访问协议。一种接口设计的标准。具体约定了应用实现过程中对外提供服务(数据)的实现标准,有明确的语法规则。是Web Service三要素之一。

REST:表述性状态转移。是一种架构思想。核心是显示的使用HTTP方法、无状态、公开目录式的URI、基于XML或Json的数据传输格式。
由于其简洁性,REST在一定程度上有取代SOAP实现的趋势。

Web Service:一种软件开发框架。是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。适用该框架的情况:跨越防火墙;应用程序集成;B2B集成;软件重用。

Web API:单纯的一个接口设计规范,可以认为是SOAP的替代,是REST思想的具体实现之一。最典型的是.Net框架下的 ASP.Net Web API。

MVC:模型-视图-控制器。一种软件(程序代码组织)架构。将应用的(包括桌面应用和Web应用)设计分层,降低开发过程的耦合性、提高代码重用性,并简化软件开发管理过程。

WCF:Windows通讯开发平台。由微软开发的一系列支持数据通信的应用程序框架。它包含了:网络服务的协议、业务服务的协议、数据类型的声明、传输安全性的定义。

【个人总结】

  1. SOA和REST都是软件架构设计的思想(注意,是“思想”,抽象的概念,而不是“思路”,),主要目的是解决应用程序之间及应用程序内部的耦合度、可重用性等问题。
  2. SOAP和WebAPI都是对上述两种架构思想的具体实现。
  3. SOA、Web API及微服务的区别。微服务是对SOA更进一步的抽象,微服务面向具体的业务场景,每一个服务是可以单独运行的应用,而SOA更偏向于应用内部的服务封装。
  4. Web Service是系统对外提供接口的一种形式,它借助SOAP、WSDL、UDDI、RPC或消息队列等技术实现对外提供服务。
  5. 不论哪种技术,都是随着软件工程、企业应用的发展及服务器、终端设备的不断升级带来的改变,目标都是基于成本节约、适应(快速)变化的面向未来思想、框架、模式。具体如何使用,还要看需求本身、应用场景及企业(用户)现状。

参考资料:

  1. WCF、WebAPI、WCFREST、WebService之间的区别 (英文原文在这里)
  2. SOA和微服务架构的区别?
  3. 微服务、SOA 和 API:是敌是友?
  4. Web API 强势入门指南