原帖:http://www.iteye.com/topic/82227
将REST定义为一种风格,架构的一种风格是合适的。但个人觉得应该有更合适的词语。REST不是一种具体的架构,也不是架构的一种规范,而是一个架构的指导思想或理念。这个思想有两个重要组成:简约和HTTP,前者易用,至于后者则是对Http协议的一个诠释(谁说http只是用来传递网页的),呵呵,好比谁说电话线只能用来打电话。
REST和分布式对象以及分布式个人认为完全不冲突,首先,以前人们考虑分布式时总是一个非常非常沉重的话题,类似的言论还有“电信系统是一个非常严格的系统”等等,这是REST主要要推翻的东西,好比淘宝推翻了“批发价就是大批量购买的价格”之类的东西。REST要革命的是思想,互联网时代开发人员的思想。
在互联网时代,几乎所有的企业都意识到了自己是否互联网企业的重要性,是否互联网企业并不仅仅说有一个主页了事,而是,你的客户,你的供应商,广告商,企业员工等等能否在互联网上很好的协作。呵呵,这是一个更大的分布式应用。对于自己内部的分布应用,我们已经有了很多协议和架构可用,它们是严谨的,安全和差错控制的。对于这个更大的,该怎么办呢。好像没有太多的办法,因为尽管你可以和你的供应商协调接口,但是太多接口了,因此REST作为一种风格出现了:简约+http。
那么,REST和EJB等如何共存呢。即使你是所谓电信的严格应用,到了WEB层面就应该以一种更简单的形式调用——将你的分布式对象wrapper一下,以REST风格发布出来,呵呵。
后话:以前光纤网络没有普及的情况下,网络应用运行在不可靠的连接中,分布式技术是一种重要的解决方案,主要强调可靠性。光纤网普及了,分布式应用很多都改成集中的了,分布式技术转而面向企业EAI,应用服务器从某种程度上来说就是分布式技术的一种转型,作为企业应用的粘合剂。但这是建立在企业内部(或紧密合作伙伴间)。
现在的互联网应用,好比当年的网络应用,连接不可靠,是否也采用当年的思路去解决问题,保证可靠的应用呢?显然,行不同,因为参与者不确定的情况下,很难制定协议。只有一种办法,舍弃。完全背道而驰的思路(所谓革命)。在应用服务器层面粘合,看来也不可能了,那就从浏览器层来粘合。
因此,不能接受REST的人,也是思想比较僵化,不善于开放思想的人;过分崇拜REST的人,是比较盲目的人,一个客观的IT工作者,以尚悟的方式去接触新技术,不要被某种思想或技术所毒害。(我常常称有些人被面向对象给毒害了)
分享到:
相关推荐
Maven坐标:org.activiti:activiti-common-rest:5.21.0; 标签:activiti、common、rest、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化...
:light_bulb: nvv-mano入门先决条件需要以下软件包: clang (包括libclang ) python (> = 3.5,包括virtualenv和setuptools ) net-tools-deprecated (对于mininet, ifconfig等) openvswitch docker :hammer: ...
Maven坐标:org.activiti:activiti-common-rest:5.21.0; 标签:activiti、common、rest、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译...
基于REST的分布式系统中会话与角色管理的研究,程曦,邹华,首先对REST风格的分布式web系统进行了介绍,接着对REST风格和普通的分布式Web系统进行了对比,指出REST风格具有的优势以及在会话管理与
导体 - 分布式 JavaScript 映射Conductor 是一种自托管服务,它允许您简单地执行用 JavaScript 编写的任意分布在使用 Web Worker 的 Web 浏览器集合中。 每个打开网站并添加一行代码的浏览器都会成为一个计算节点。 ...
sistDistribuido:我们将与API REST一起开发分布式数据库系统
Scantron是由两个组件组成的分布式nmap和masscan扫描仪。 第一个是控制台节点,由网络前端组成,用于调度扫描并存储nmap扫描目标和结果。 第二个组件是一个引擎,它从控制台中提取扫描作业并执行实际的nmap扫描。 ...
WMI-Lasuch-2.0 分布式 Java 应用程序项目。 #Java #Rest #JSM?
NULL 博文链接:https://j2ee-zhongqi.iteye.com/blog/865641
NULL 博文链接:https://j2ee-zhongqi.iteye.com/blog/865628
分布式代理发展: 下载Wildfly 9.0.2 设置为目标运行时将根文件夹中的standalone.xml设置为配置文件。 克隆回购文件->导入->现有项目到工作区->浏览->选择“分布式代理” 确保已选择项目2个项目和4个模块(未选中...
Matthiola-TraderGateway 摩根士丹利( Morgan Stanley)和上海交通大学(SJTU SE)指导下的Matthiola项目(一个分布式商品场外电子交易系统)的交易者门户。建筑学与Web客户端通信: HTTP Websocket 与Broker ...
第二课: 服务消费者(rest+ribbon) 第三课: 服务消费者(Feign) 第四课: 断路器(Hystrix) 第五课: 路由网关(zuul) 第六课: 分布式配置中心(Spring Cloud Config) 第七课: 高可用的分布式配置中心(Spring ...
tcc 分布式事务 解决方案 基于rest的分布式事务解决方案
开发工具 1.Eclipse IDE:采用Maven项目管理,模块...服务框架:Dubbo、zookeeper、Rest服务 缓存:Redis、ehcache 消息中间件:ActiveMQ 负载均衡:Nginx 分布式文件:FastDFS 数据库连接池:Alibaba Druid 1.0
深度视频分析 通过 2020年1月更新:我已决定停止对该存储库的公开开发,Archived.md中提供了更多信息。 深度视频分析是一个从视频和图像中索引和...深度视频分析实现了客户端-服务器架构模式,客户端可以通过REST API
赠送jar包:elasticsearch-rest-high-level-client-6.8.3.jar; 赠送原API文档:elasticsearch-rest-high-level-client-6.8.3-javadoc.jar; 赠送源代码:elasticsearch-rest-high-level-client-6.8.3-sources.jar;...
赠送jar包:elasticsearch-rest-client-6.8.3.jar; 赠送原API文档:elasticsearch-rest-client-6.8.3-javadoc.jar; 赠送源代码:elasticsearch-rest-client-6.8.3-sources.jar; 赠送Maven依赖信息文件:elastic...
赠送jar包:elasticsearch-rest-high-level-client-6.8.3.jar; 赠送原API文档:elasticsearch-rest-high-level-client-6.8.3-javadoc.jar; 赠送源代码:elasticsearch-rest-high-level-client-6.8.3-sources.jar;...
分布式日志记录器:分布式日志记录器节点公开了REST API,该日志将接收到的消息记录到Stdout。 在任何给定时间,只有集群领导者才能接受消息。 如果领导节点发生故障,则由新节点接管。 生产者:生产者定期查询...