`
helloworld
  • 浏览: 16940 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

读:分布式系统的角度看REST

阅读更多
原帖: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工作者,以尚悟的方式去接触新技术,不要被某种思想或技术所毒害。(我常常称有些人被面向对象给毒害了)
    
分享到:
评论

相关推荐

    SOA实践者说:分布式环境下的系统集成实例源码ch2

    《SOA实践者说:分布式环境下的系统集成实例源码》是关于企业服务总线(Service-Oriented Architecture,简称SOA)在分布式系统中的应用和实现的深度探讨。SOA是一种架构风格,旨在通过独立的服务组件来构建可重用、...

    分布式系统 概念与设计 习题答案(完整版).

    1. 分布式系统架构:分布式系统通常由客户端、服务器、中间件和通信协议组成。客户端发起请求,服务器处理请求,中间件协调通信并提供服务透明性,通信协议确保节点间的有效交互。 2. 分布式计算模型:如MapReduce...

    Distributed-Systems:分布式系统-Web应用-UDLAP

    在这个“Distributed-Systems:分布式系统-Web应用-UDLAP”项目中,我们很可能会探讨如何利用Java语言来构建高效、可扩展的分布式应用程序,特别是与Web服务相关的应用。 在分布式系统中,核心目标是提高系统的可用...

    PracticasSistemasDistribuidos145901:分布式系统课程对应的实践

    9. **监控与日志**:分布式系统的监控非常重要,如Prometheus和Grafana用于度量收集和可视化,ELK(Elasticsearch, Logstash, Kibana)堆栈用于日志管理和分析。 10. **微服务架构**:现代分布式系统常常采用微服务...

    distsystems:分布式系统分配

    11. **故障检测与恢复**:分布式系统需要能够检测和应对节点故障。心跳检测、Zookeeper等工具可以帮助监控系统的健康状况,并在出现问题时进行恢复。 在"distystems-master"这个压缩包文件中,可能包含了一个关于...

    DistributedSystems:分布式系统家庭作业中使用的代码的存储库

    在这个“DistributedSystems:分布式系统家庭作业中使用的代码的存储库”中,我们可以推测学生们,如伊曼纽尔·桑帕约、卡洛斯·阿尔弗雷多和爱德华多·塞帕,正在学习并实践分布式系统的概念,通过编写Python代码来...

    追踪微服务的每一步:Spring Cloud分布式追踪的深度解析

    Spring Cloud 是建立在 Spring Boot 基础上,用于简化分布式系统开发的工具集合。它整合了多种服务治理框架,提供了微服务...8. **Sleuth**:分布式追踪系统,与 Zipkin 集成提供服务跟踪解决方案 。 9. **Alibaba Clo

    一种基于JSON的分布式系统架构.pdf

    它的出现,特别是与REST软件架构和Ajax技术结合,为分布式系统中的数据交换提供了新的解决方案。 四、JSON与XML的对比 JSON作为一种数据交换格式,与XML相比,具有以下优点: 1. 体积小,网络传输效率更高; 2. ...

    REST 基础(二):Web 服务编程,REST 与 SOAP

    这两种技术都是用于构建分布式系统,尤其是互联网应用程序的重要工具。我们将分析它们的核心概念、优缺点以及适用场景。 首先,REST是一种基于HTTP协议的设计风格,它强调资源的表示和状态转移。在RESTful服务中,...

    东北大学《分布式组件与Web服务》18年期末真题.pdf

    - **定义与特性**:分布式系统是由多台通过网络连接的计算机组成的系统,它们共同完成一个或多个任务。其主要特性包括并发性、故障容忍性和透明性。 - **分布式系统的分类**:包括客户端/服务器模型、对等模型(P2P...

    分布式系统ppt第11章

    Web服务是商业应用的分布式解决方案,通过标准的接口(如SOAP、REST等)使不同系统之间能够互相调用服务,实现跨平台的互操作性。这种模式特别适合构建分布式企业级应用,促进业务流程自动化。 在P2P系统中,覆盖网...

    client:分布式嵌入式系统的客户端代码

    本文将深入探讨“client:分布式嵌入式系统的客户端代码”这一主题,主要关注Java语言在实现客户端代码时的关键技术和最佳实践。 1. **Java在分布式系统中的应用** Java因其跨平台能力和丰富的库支持,成为分布式...

    445:分布式软件系统的分配

    分布式软件系统的分配是现代软件开发中的一个重要概念,尤其是在大规模、高并发的应用场景中。这个主题主要涉及如何在多个计算节点之间有效地分发任务,优化资源利用,并确保系统的高可用性和可扩展性。C#作为微软...

    分布式开发教程.docx

    **定义**:分布式系统是一种计算系统,其中的组件分布在多台独立的计算机节点上,这些节点通过网络进行通信和协作,共同实现一个或多个目标。与集中式系统不同的是,资源和计算任务在分布式系统中被分散在各个节点上...

    云计算分布式块存储系统总体技术要求标准解读.pdf

    云计算分布式块存储系统的总体技术要求标准解读主要涉及到以下几个知识点: 一、云计算分布式块存储系统概述: 云计算分布式块存储系统,是指数据存储在多台独立设备上,例如X86存储服务器,这些设备能对任何物理机...

    UserApi:分布式项目原始码-项目

    【UserApi:分布式项目原始码解析】 UserApi 是一个典型的分布式项目,它的开源特性使得开发者可以深入理解并学习到分布式系统的设计与实现。这个项目的核心是提供用户接口服务,通过API来处理用户相关的业务逻辑。...

    WMI-Lasuch-2.0:分布式 Java 应用程序项目。 #Java #Rest #JSM?

    【标题】"WMI-Lasuch-2.0:分布式 Java 应用程序项目" 提到了一个基于 Java 的软件开发项目,重点在于分布式系统和可能的 RESTful API 的实现。项目名称暗示它可能是一个搜索或监测工具,而 "WMI" 可能是指 Windows ...

    activiti-common-rest-5.21.0-API文档-中英对照版.zip

    Maven坐标:org.activiti:activiti-common-rest:5.21.0; 标签:activiti、common、rest、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化...

    基于Java的分布式移动信息系统设计.zip

    2. **Java多线程**:分布式系统通常需要处理大量并发请求,因此理解和运用Java的多线程是至关重要的。Java提供了Thread类和ExecutorService接口来管理并发任务,确保系统的高效运行。 3. **Spring框架**:Spring是...

Global site tag (gtag.js) - Google Analytics