扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
我们说REST架构风格,从REST具备的内在特征来说,它包括了这些特征: 1、基于HTTP的资源 但是如果我们换一个角度,即分布式应用系统的角度来看,我们会有一些更有意思的结论: 分布式应用系统的架构,经历了好几代的变迁,我们来简单回顾一下: 1、基于CORBA协议的C++中间件时代 2、基于RMI/IIOP协议的EJB时代 不管是Corba,还是EJB,都有一些共同点: 分布式对象架构的缺陷在EJB2时代被充分暴露了出来,乃至于Martin Folwer在《企业应用架构模式》当中强调,分布式调用的第一原则就是不要分布式。更多关于EJB2分布式对象架构的缺陷在Rod Johnson的《J2EE without EJB》当中被剖析的更加清楚。 3、基于SOAP协议的Web Services时代 web services有一些明显不同于Corba和EJB分布式对象架构的特征: web services的优点和缺点都非常突出,这个不是本文的要点,不做具体分析。这里唯一要强调的是SOAP协议并不依赖于HTTP。事实上SOAP协议可以走很多底层协议,例如SMTP协议,Jabber协议等等。 REST也是一种分布式系统的架构风格,那么REST和上面这些分布式架构有哪些明显的区别呢? 通过上面的总结,我们可以做一个直观的对比表格:
REST最大的特点是什么呢?REST是为通过HTTP协议来进行分布式调用量身定造的架构 传统上,我们开发一个非分布式的软件系统,使用OO进行建模和架构,无往而不利。但是分布式对象却显得不那么有效。对于跨进程的调用,也许我们需要探索更好的面向对象的分布式调用架构。 REST是专门为分布式调用设计的架构,在REST里面,分布式是通过对资源的操作来实现的,不是像EJB那样通过对象的方法调用来实现的。资源是一种抽象的概念,资源被映射到相应的一套URL规则上面了。所以资源只和URL相关,而与具体实现无关,因此REST具有更好的解藕性。在RoR的实现当中,你可以把一些资源直接映射到model对象上面去,也可以不映射到model上面,而完全是由业务逻辑组合的抽象资源。 |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者