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以其独特的优势越来越受到企业的重视,它可以根据需求通过网络 ...
随机推荐
- ionic3打包打包安卓apk详细过程以及遇到的问题
1.jdk和sdk的安装以及环境变量配置参考打包详解 上述连接已经从下载安装jdk以及sdk的环境变量配置到打包的流程以及很详细了.但是在我自己安装打包的过程中遇到了这篇文章中没有遇到的问题,下面图文 ...
- Python取时间,日期的总结
import datetime from datetime import timedelta now = datetime.datetime.now() #今天 today = now #昨天 yes ...
- PL/SQL 游标
本随笔不是原创,只是学习笔记,用于加深记忆,原创地址PL/SQL --> 游标 一.游标的相关概念和特性 1.定义: 映射到结果集中的某一行的特定位置,类似与C语言中的指针.即通过游标方式定位到 ...
- ETL 工具下载全集 包括 Informatica Datastage Cognos( 持续更新)
Datastage 8.0 BT种子下载:http://files.cnblogs.com/taven/Datastage_8.0.rar Informatica PowerCenter 8.6.0 ...
- java.utils.UUID类介绍
1 UUID介绍 UUID (Universally Unique Identifier)缩写,即通用唯一识别码,也是被开源软件基金会 (Open Software Foundation, OSF) ...
- android中The connection to adb is down,问题和解决
android中The connection to adb is down,问题和解决 自己总结的在android中常会出现的不好解决的问题和方法(其中第三个方法经过了四天的折磨.....哎) 1 ...
- 九度oj 1031 xxx定律 2009年浙江大学计算机及软件工程研究生机试真题
题目1031:xxx定律 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5153 解决:3298 题目描述: 对于一个数n,如果是偶数,就把n砍掉一半:如果是奇数,把n变成 3*n ...
- 翻屏类 h5 适配方案:解决宽高自适应难题
表格 图片等 宽度自适应 :width:100%; box-sizing: border-box; 基于淘宝适配方案flexible + 翻屏h5 适配方案adaptive flexible解读及 ...
- windows 下配置ndk环境,无需cygwin
时隔好久要用ndk编译jni库,本以为配制安装cygwin环境,便按部就班的下载安装,但是公司的网速真的不给力,三天安装了三四次都没有安装成功(我选择的是在线安装),于是我便开始查ndk的官网看看,发 ...
- Orchard源码分析 - 缓存管理
ICacheManager & ICacheHolder Orchard缓存管理主要通过 ICacheManager 接口对外提供缓存服务. 其实现类D ...