[SOA]REST与SOA两种架构的异同比较

REST的特性

它基于HTTP协议,是一种明确构建在客户端/服务端体系结构上的一种风格。特征如下:

1、网络上的资源都被抽象为资源,这些资源都具有唯一的统一资源标识符(URI:Uniform Resource Identiter),这些资源都是自我们描述的。这些资源使用HTTP内容标头类型指定。如:XML、JSON、HTML、PNG等。

2、服务的使用者通过HTTP协议的标准动作(Get、Put、Post、Delete)通过统一的接口对资源进行操作。

3、对资源进行的操作不会改变它的URI。

4、客户端、服务端之间的交互是没有状态的。由于这种无状态行,服务端不需要为每个客户端维护Context

SOA的特征

1、通过网络终结点对外提供服务。

2、粗粒度的服务接口。

REST与SOA的共同点

REST与SOA两者,虽有不同点,但是他们都作为服务的不同架构风格,具有服务的一般属性。具体如下:

1、统一的服务契约接口与服务接口

2、松散的耦合。

3、只要有权限都可以进行访问

REST与SOA的不同点

1、REST风格下的,只有一种协议,那就是HTTP。而SOA下的WCF就和多种协议了。如:TCP、HTTP、MSMQ等多种协议

2、使用方式上的不同。REST只要客户端能够模拟HTTP请求,通过标准的HTTP动作,都可以进行访问。它使用的是HTTPChannel管道,而SOA使用的管道有HTTPChannel、TcpChannel、RPC等多种。

3、REST寄宿时,虽然可以选择多种寄宿方式,但必须有应用服务器的支持。

http://blog.sina.com.cn/s/blog_62b0363101012l2z.html

原文地址:https://www.cnblogs.com/feng9exe/p/8232693.html

时间: 2024-11-08 11:38:31

[SOA]REST与SOA两种架构的异同比较的相关文章

REST与SOA两种架构的异同

REST的特性 它基于HTTP协议,是一种明确构建在客户端/服务端体系结构上的一种风格.特征如下: 1.网络上的资源都被抽象为资源,这些资源都具有唯一的统一资源标识符(URI:Uniform Resource Identiter),这些资源都是自我们描述的.这些资源使用HTTP内容标头类型指定.如:XML.JSON.HTML.PNG等. 2.服务的使用者通过HTTP协议的标准动作(Get.Put.Post.Delete)通过统一的接口对资源进行操作. 3.对资源进行的操作不会改变它的URI. 4

C/S和B/S两种架构的概念、区别和联系

这篇文章主要介绍了C/S和B/S两种架构的概念.区别和联系,本位还同时讲解了主流的Web程序应用平台.Web工作原理等内容,需要的朋友可以参考下2006_photo12 C/S和B/S,是再普通不过的两种软件架构方式,都可以进行同样的业务处理,甚至也可以用相同的方式实现共同的逻辑.既然如此,为何还要区分彼此呢?那我们就来看看二者的区别和联系. 1 一.C/S 架构 1. 概念 C/S 架构是一种典型的两层架构,其全程是Client/Server,即客户端服务器端架构,其客户端包含一个或多个在用户

JavaWeb前置知识 : 动态和静态的区别、两种架构、常见状态码

JavaWeb程序设计(一) : 前置知识 1.动态网页与静态网页的区别: a.不要和是否有"动感"混为一谈. b.是否随着时间.地点.用户操作的改变而改变 (例如 : 在百度上搜索某个城市的房价) c.动态网页需要用到 服务端脚本语言(eg : JSP) 2.架构: 1.B/S (浏览器/服务端) Eg: 网页版的淘宝 2.C/S (客户端/服务端) Eg: 手机端的淘宝.QQ 3.两种架构的利弊: C/S : 优点:响应速度快,客户端界面也较为丰富. 缺点:不便于维护更新 B/S

C/S和B/S两种架构区别与优缺点分析

C/S和B/S,是再普通不过的两种软件架构方式,都可以进行同样的业务处理,甚至也可以用相同的方式实现共同的逻辑.既然如此,为何还要区分彼此呢?那我们就来看看二者的区别和联系. 一.C/S 架构 1. 概念 C/S 架构是一种典型的两层架构,其全程是Client/Server,即客户端服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据:另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序

你知道C/S和B/S两种架构有什么区别吗?

C/S和B/S,是再普通不过的两种软件架构方式,都可以进行同样的业务处理,甚至也可以用相同的方式实现共同的逻辑.既然如此,为何还要区分彼此呢?那我们就来看看二者的区别和联系. 一.C/S 架构         1. 概念 C/S 架构是一种典型的两层架构,其全程是Client/Server,即客户端服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据:另一种是Socket服务器端,服务器端的程序通过Socke

Hadoop MapReduce两种架构

一.MRv1 Master - Slave 模式 主要包含4部分:JobTracker,TaskTracker,Task,Client JobTracker:负责整个MR集群的资源监控和作业调度,集群的Master.它把任务进度 和 资源使用量告诉调度器TaskScheduler,由调度器来计划如何调度,调度器是个可挺拔模块. TaskTracker:负责周期性的向JobTracker汇报每个节点的状况,并执行JobTracker发来的命令.TaskTracker使用slot来等量划分节点上的资

合并两个数组的两种方式的异同

本文讨论合并数组的两种方式:$a+$b , array_merge($a,$b) 操作符+,在前一个数的基础上插入后一个数组,如果有相同的抛弃,而array_merge 是在前一个参数基础上插入后一个参数,如果有相同用的key 用后一个覆盖.实例如下: php > $a = array('a'=>'1','b'=>'2','c'=>'3'); php > $b = array('c'=>3,'d'=>'4','e'=>'5'); php > $c =

iOS程序编译打包的两种方式

这个选项其实是用来设置我们要如何打包我们的代码. Architectures: 项目要编译的目标设备列表, 设置以哪种方式打包我们的代码 第一种方式: 包含两种架构的代码包(32bit, 64bit), 但是这种打包方式只能运行在iOS6以上的系统, 也就是说这种打包方式, 对手机没有要求, 只是对系统有要求. 第二种方式: 只包含一种架构的代码(32bit), 这种打包方式, 对于手机和系统都没什么要求, 但是这样会降低64位系统的手机性能 如果要兼容iOS5以及更低的系统, 只能打32位的包

IOS的两种框架设计思想

不管是任何一门语言,架构设计永远在其中占据着十分重要的作用,一个好的架构思想能够让程序的流程更加清晰,能够让程序工作的更加简单而有效.如果没有架构思想的话,那么所有的程序设计都将沿着一条设计思路走下去,程序设计将完全失去了活力,只剩下了千篇一律的代码编写,修改,调试:有了代码架构,我们将在程序的思想上投入更大的精力,投入更多的时间与精力去创造一些便利程序设计的结构,这将使程序的结构更加多样化,便利化,也会使你在学习工作的过程中事半功倍. 说了这么多,似乎总是没有什么有力的证据来印证这么一些话,我