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架构简单解析的更多相关文章

  1. 软件架构的演进,了解单体架构,垂直架构,SOA架构和微服务架构的变化历程

    软件架构演进 软件架构的发展经历了从单体结构.垂直架构.SOA架构到微服务架构的过程,博客里写到了这四种架它们的特点以及优缺点分析,个人学习之用,仅供参考! 1.1.1      单体架构 特点: 1 ...

  2. 微服务架构 vs. SOA架构

    面向服务架构(SOA)已经存在有些年头了,这是一种用于设计软件的伟大原则.在SOA中,所有组件都是独立自主的,并能为其他组件提供服务.要替换掉系统中的某些部分而不对整个系统造成较大的影响本是个难题,然 ...

  3. 微服务理论之五:微服务架构 vs. SOA架构

    一.面向服务的架构SOA 面向服务的架构是一种软件体系结构,应用程序的不同组件通过网络上的通信协议向其他组件提供服务.通信可以是简单的数据传递,也可以是两个或多个服务彼此协调连接.这些独特的服务执行一 ...

  4. SpringCloud微服务架构和SOA架构

    1,传统的三层架构 在传统的架构中,SSH,SSM,主要分为web 控制层,业务逻辑层,数据库访问层,单点项目,项目没有拆分,所有的开发任务全部写在一个项目中,耦合度比价高,如果程序中的一个功能出现了 ...

  5. 单体架构、SOA架构、微服务架构

  6. 企业SOA架构设计理论

    SOA简介 SOA(Service-Oriented Architecture,面向服务架构)是一种将信息系统模块化为服务的架构风格.拥有了服务之后,我们就可以迅速地将这些服务按不同方式重新组合,从而 ...

  7. 搭建一个BS 的简单SOA 架构(直接通过jquery 调用后台的 wcf 服务的架构)(第一天)

    亲们!还在用传统的三层架构吗?你还在对SOA架构 不了解吗? 那就赶快来学习下一个 比较简单的SOA的架构吧!我会手把手的 教会你们怎么搭建这个 简单的SOA的架构. 其中用的技术点保证  WCF,a ...

  8. 大型互联网架构概述 关于架构的架构目标 典型实现 DNS CDN LB WEB APP SOA MQ CACHE STORAGE

    大型互联网架构概述 目录 架构目标 典型实现 DNS CDN LB WEB APP SOA MQ CACHE STORAGE 本文旨在简单介绍大型互联网的架构和核心组件实现原理. 理论上讲,从安装配置 ...

  9. 论SOA架构的几种主要开发方式

    转: http://blog.csdn.net/chenleixing/article/details/44926955  面向服务架构soa以其独特的优势越来越受到企业的重视,它可以根据需求通过网络 ...

随机推荐

  1. 《C++ Primer(第五版)》知识巩固

    运行平台:ubuntu 12.04/GCC 4.8.0 第二章:基本内置类型 1.decltype类型指示符 当我们从表达式的类型来推断要定义的类型时,可以使用decltype()来解析:declty ...

  2. 使用express、react、webpack打包、socket.io、mongodb、ant.design、less、es6实现聊天室

    拿到一个项目,我们应该如何去完成这个项目呢. 是直接上手? 还是先进行分析,然后再去解决呢?毫无疑问,如果直接上手解决,那么可能会因为知道目标所在,而导致出现各种问题. 所以,我们应该系统的分析这个项 ...

  3. Starting vsftpd for vsftpd: [FAILED]问题的解决

    问题描述 [root@bigdatamaster etc]# rpm -qa| grep vsftpd vsftpd--.el6.x86_64 [root@bigdatamaster etc]# [r ...

  4. Orcale 之子查询

    子查询和连接查询一样,都提供了使用单个查询访问多个表中的数据的方法.子查询在其他查询的基础上,提供一种进一步有效的方式来访问数据. IN 关键字 使用 IN 关键字可以将原表中特定的的值与子查询中返回 ...

  5. WPF的窗体设置WindowStyle=none时,如何移动窗体

    1. 在WPF中当将主窗体的WindowStyle设置为none时,使用鼠标移动不了窗体 2. 解决方法: 2.1. 在Windows的Load方法中增加一下代码: private void Wind ...

  6. CCF 201409-4 最优配餐

    问题描述 试题编号: 201409-4 试题名称: 最优配餐 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 栋栋最近开了一家餐饮连锁店,提供外卖服务.随着连锁店越来越多,怎么 ...

  7. 远程连接postgresql和redis设置

    1. 让Postgresql服务器被远程访问 1.1 编辑 pg_hba.conf,配置用户的访问权限 vi /etc/postgresql/8.4/main/pg_hba.conf 增加设置项 ho ...

  8. [java源码解析]对HashMap源码的分析(二)

    上文我们讲了HashMap那骚骚的逻辑结构,这一篇我们来吹吹它的实现思想,也就是算法层面.有兴趣看下或者回顾上一篇HashMap逻辑层面的,可以看下HashMap源码解析(一).使用了哈希表得“拉链法 ...

  9. [转]Supporting OData Query Options in ASP.NET Web API 2

    本文转自:https://docs.microsoft.com/en-us/aspnet/web-api/overview/odata-support-in-aspnet-web-api/suppor ...

  10. MVVMLight - IOC Containers and MVVM

    在面向对象编程的早期,开发者要面对在应用程序或者类库中创建或检索类的实例的问题.针对这个问题有很多的解决方案.在过去几年中,依赖注入(DI)和控制反转(IoC)在开发者中很流行,并且取代了老的方案,比 ...