RESTful架构及SOA架构简单解析
1.RESTful架构
本人也是刚接触ASP.NET开发,以下为自己简单的理解,并做了一些记录,表述不当或者错误之处还请指正,在此谢过。
首先,REST(REpresentational State Transfer)翻译为表述性状态转移,它是一种架构风格,而不是一种架构本身,具有这种架构风格的架构就称为RESTful架构。
RESTful架构是面向资源的。网络上的任意一个实体,包括图片、电影、音乐等等都是一种资源,在该架构中,每一个资源都有一个对应的URI来标识。HTTP协议是无状态的,无状态简单而言就是说服务器不会为了下一次连接而保存客户端这一次连接所传输的信息,所以如果客户端想要操作服务器端的状态或资源,就必须通过资源所对应的URI来进行(HTTP的)CURD(Create,Update,Read,Delete)操作,而这些操作中资源是以他们的某种表现形式来传输的,比如Html、JSON、XML等,或者二进制格式等,因而这样就形成了(资源的)表述性状态转移。同时,REST最重要的一个特点就是客户端与服务器之间的请求和交互是无状态的。这一点也得到了解释。
接下来,REST架构风格其实是定义了一系列的约束条件,要符合REST风格,就必须满足如下这几点:
1.Uniform Interface(统一的接口):定义客户端和服务器之间的接口,简化和降低了架构的耦合程度
2.Stateless(无状态):服务器端不保留客户端的状态
3.Client-Server(客户端-服务器模式):假定系统是不相连的,统一的接口才是客户端与服务器之间的链接
4.Cacheable(可缓存):服务器端的响应,比如返回的各种资源,在客户端是要能缓存的
5.Layered System(分层系统):通过限制组件的行为,将架构分解为若干等级的层,将组件对系统的知识限制在单一的层内,为系统的复杂性设置了边界,从而提高了底层的独立性,中间组件还能够通过支持跨多个网络和处理器的负载均衡来改善系统的可伸缩性
6.Code on Demand(按需代码,此条件非必须)
2.SOA架构
SOA(Service-Oriented Architecture),面向服务的体系结构,它是一个组件模型,它将应用程序之间的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。
传统的“单一的应用程序”,它把将各种功能整合到一起的代码与每个单独的功能的实现代码混合在了一起,这样各功能组件之间的耦合度高,一是不方便代码的复用,二是维护起来不方便,一个功能组件的更新都可能要涉及到整个应用程序的大改。
而区别于单一的应用程序,SOA将不同的功能组件视为一种服务,它将每一种服务单独进行封装,我感觉有点类似OOP中类的概念,这样不同的组件之间的耦合程度降低,代码的复用程度也变高,具有很多好处。
SOA架构中的三种不同的角色:
服务提供者:发布服务,并对服务的请求进行响应
服务注册中心:注册已经发布的Web Service,对其进行分类,并提供搜索服务
服务请求者:利用服务中心查找服务,并使用该服务
SOAP:简单对象访问协议,Simple Object Access Protocol
WSDL:Web服务描述语言,Web Services Description Language
UDDI:统一描述、发现和集成,Universal Description Discovery and Integration
WSDL用来描述服务,UDDI用来注册和查找服务,而SOAP作为传输层,用来在消费这和服务者之间传送消息,一个消费者可以在UDDI注册表查找服务,取得服务的WSDL描述,然后通过SOAP来调用该服务。
RESTful架构及SOA架构简单解析的更多相关文章
- 软件架构的演进,了解单体架构,垂直架构,SOA架构和微服务架构的变化历程
软件架构演进 软件架构的发展经历了从单体结构.垂直架构.SOA架构到微服务架构的过程,博客里写到了这四种架它们的特点以及优缺点分析,个人学习之用,仅供参考! 1.1.1 单体架构 特点: 1 ...
- 微服务架构 vs. SOA架构
面向服务架构(SOA)已经存在有些年头了,这是一种用于设计软件的伟大原则.在SOA中,所有组件都是独立自主的,并能为其他组件提供服务.要替换掉系统中的某些部分而不对整个系统造成较大的影响本是个难题,然 ...
- 微服务理论之五:微服务架构 vs. SOA架构
一.面向服务的架构SOA 面向服务的架构是一种软件体系结构,应用程序的不同组件通过网络上的通信协议向其他组件提供服务.通信可以是简单的数据传递,也可以是两个或多个服务彼此协调连接.这些独特的服务执行一 ...
- SpringCloud微服务架构和SOA架构
1,传统的三层架构 在传统的架构中,SSH,SSM,主要分为web 控制层,业务逻辑层,数据库访问层,单点项目,项目没有拆分,所有的开发任务全部写在一个项目中,耦合度比价高,如果程序中的一个功能出现了 ...
- 单体架构、SOA架构、微服务架构
- 企业SOA架构设计理论
SOA简介 SOA(Service-Oriented Architecture,面向服务架构)是一种将信息系统模块化为服务的架构风格.拥有了服务之后,我们就可以迅速地将这些服务按不同方式重新组合,从而 ...
- 搭建一个BS 的简单SOA 架构(直接通过jquery 调用后台的 wcf 服务的架构)(第一天)
亲们!还在用传统的三层架构吗?你还在对SOA架构 不了解吗? 那就赶快来学习下一个 比较简单的SOA的架构吧!我会手把手的 教会你们怎么搭建这个 简单的SOA的架构. 其中用的技术点保证 WCF,a ...
- 大型互联网架构概述 关于架构的架构目标 典型实现 DNS CDN LB WEB APP SOA MQ CACHE STORAGE
大型互联网架构概述 目录 架构目标 典型实现 DNS CDN LB WEB APP SOA MQ CACHE STORAGE 本文旨在简单介绍大型互联网的架构和核心组件实现原理. 理论上讲,从安装配置 ...
- 论SOA架构的几种主要开发方式
转: http://blog.csdn.net/chenleixing/article/details/44926955 面向服务架构soa以其独特的优势越来越受到企业的重视,它可以根据需求通过网络 ...
随机推荐
- eureka 和zookeeper 区别 优势
作为服务注册中心,Eureka比Zookeeper好在哪里 著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性).A(可用性)和P(分区容错性).由于分区容错性在是分布式系统中必须要保证的, ...
- 解决centos被minerd挖矿程序入侵方法
记录一次服务器被入侵的解决方法 一:问题说明 1.我的服务器是使用的阿里云的CentOS,收到的阿里云发来的提示邮件如下 然后我查看了运行的进程情况(top 命令),看到一个名为minerd的进程占用 ...
- line-height详解
line-height详解 要说line-height就必须要知道这几个概念了: 顶线.中线.基线.底线. 这也就是在vertical-align中可能用到的top,middle,baseline和b ...
- Http请求响应模型
主要用到以下四个部分: Client API DB API 场景:登录 1.Client发起请求到API接口层 1.1用户在客户端输入登录信息,点击登录,发送请求 2.API接受用户发起的 ...
- vim实战:插件安装(Vundle,NerdTree)
一:插件管理器Vundle 1.简介 Vundle是vim的一个插件管理器, 同时它本身也是vim的一个插件.插件管理器用于方便.快速的安装.删除.Vim更新插件.vim Vundle插件官方地址:h ...
- execution(* *..BookManager.save(..))的解读
execution(* *..BookManager.save(..))的解读: 第一颗* 代表ret-type-pattern 返回值可任意, *..BookManager 代表任意Pacakge里 ...
- 【Javascript】Javascript原型与继承
一切都是对象! 以下的四种(undefined, number, string, boolean)属于简单的值类型,不是对象.剩下的几种情况——函数.数组.对象.null.new Number(10) ...
- 我java学习时的模样(二)
去掉自己浮躁的心 工作了三年,见识过高山,也见过低估,高山同大神一起共事,低估是几家特别烂的外包公司,现在有了另一种心境.已经开始重视自己,去掉当初浮躁的心. 毕业的一两年内,是人成长特别快的时期,也 ...
- idea maven install 卡住,无报错排查。
今天使用idea打包,执行install,看控制台日志,卡主了(意思是日志不继续在控制台输打印了,卡主了,也看不到错误),也没有报错,然后进行排查. 进入dos命令,进入到项目的根目录,使用 运行 m ...
- Struts2拦截器和标签
一.struts2拦截器 1.struts2是框架,封装了很多的功能,struts2里面封装的功能都是在拦截器里面. 2 struts2里面封装了很多的功能,有很多拦截器,不是每次这些拦截器都执行,每 ...