`

REST SOAP XML-RPC比较

阅读更多
三种主流的Web服务实现方案:(欢迎拍砖、补充)

REST:表象化状态转变 (软件架构风格)
SOAP:简单对象访问协议
XML-RPC:远程过程调用协议


下面分别作简单介绍:

REST:表征状态转移(Representational State Transfer),采用Web 服务使用标准的 HTTP 方法 (GET/PUT/POST/DELETE) 将所有 Web 系统的服务抽象为资源,REST从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表征。Http协议所抽象的get,post,put,delete就好比数据库中最基本的增删改查,而互联网上的各种资源就好比数据库中的记录(可能这么比喻不是很好),对于各种资源的操作最后总是能抽象成为这四种基本操作,在定义了定位资源的规则以后,对于资源的操作通过标准的Http协议就可以实现,开发者也会受益于这种轻量级的协议。REST是一种软件架构风格而非协议也非规范,是一种针对网络应用的开发方式,可以降低开发的复杂性,提高系统的可伸缩性。



SOAP:简单对象访问协议(Simple Object Access Protocol)是一种标准化的通讯规范,主要用于Web服务(web service)中。用一个简单的例子来说明 SOAP 使用过程,一个 SOAP 消息可以发送到一个具有 Web Service 功能的 Web 站点,例如,一个含有房价信息的数据库,消息的参数中标明这是一个查询消息,此站点将返回一个 XML 格式的信息,其中包含了查询结果(价格,位置,特点,或者其他信息)。由于数据是用一种标准化的可分析的结构来传递的,所以可以直接被第三方站点所利用。


XML-RPC:一个远程过程调用(remote procedure call,RPC)的分布式计算协议,通过XML将调用函数封装,并使用HTTP协议作为传送机制。后来在新的功能不断被引入下,这个标准慢慢演变成为今日的SOAP协定。XML-RPC协定是已登记的专利项目。XML-RPC透过向装置了这个协定的服务器发出HTTP请求。发出请求的用户端一般都是需要向远端系统要求呼叫的软件。



三种方案的简单比较

XML-RPC已慢慢的被SOAP所取代,现在很少采用了,但它还是有版权的,我在此就不作多介绍
成熟度上:SOAP在成熟度上优于REST

效率和易用性上:REST更胜一筹

安全性上:SOAP安全性高于REST,因为REST更关注的是效率和性能问题

总体上,因为REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁,越来越多的web服务开始采用REST风格设计和实现。例如,Amazon.com提供接近REST风格的Web服务进行图书查找;雅虎提供的Web服务也是REST风格的。REST对于资源型服务接口来说很合适,同时特别适合对于效率要求很高,但是对于安全要求不高的场景。而SOAP的成熟性可以给需要提供给多开发语言的,对于安全性要求较高的接口设计带来便利。所以我觉得纯粹说什么设计模式将会占据主导地位没有什么意义,关键还是看应用场景,正是那句老话:适合的才是最好的

同时很重要一点就是不要扭曲了REST现在很多网站都跟风去开发REST风格的接口,其实都是在学其形,不知其心,最后弄得不伦不类,性能上不去,安全又保证不了,徒有一个看似象摸象样的皮囊。
分享到:
评论

相关推荐

    使用 XML-RPC 为 C++ 应用程序启用 Web 服务

    Web 服务协议如 SOAP、REST 和 XML-RPC 提供了将这些遗留应用程序与网络集成的途径。本文主要关注 XML-RPC,这是一种简单且轻量级的消息传递协议,支持基于 XML 的跨平台通信,特别适合 C++ 应用程序。 **为什么要...

    xml-rpc.net.2.1.0.rar

    这种简单的设计使得XML-RPC在不支持复杂Web服务标准(如SOAP或REST)的场景下,成为一个实用的选择。 `xml-rpc.net.2.1.0`库是针对.NET Framework的一个实现,它包含了以下关键组件: 1. **客户端库**:这个库允许...

    programming web services with xml rpc

    - **超越XML-RPC**:探讨了除了XML-RPC之外的其他Web服务技术,如SOAP、REST等,并分析了它们与XML-RPC之间的差异。 - **协议设计选择**:讨论了在选择Web服务协议时需要考虑的因素,以及如何根据具体需求做出最佳...

    xmlrpc-am5-ws

    它特别适合于那些不希望或不能使用复杂的Web服务标准(如SOAP或REST)的项目。 2. **am5-xmlrpc-api.jar**: 这个文件是AM5 XML-RPC API的实现,它提供了用于创建XML-RPC服务器和客户端的接口和类。开发人员可以...

    apache-xmlrpc

    Apache XML-RPC库是实现XML-RPC协议的工具,而Web服务则是一种通过互联网进行通信的标准化方法,通常使用SOAP(Simple Object Access Protocol)或REST(Representational State Transfer)等协议。XML-RPC作为Web...

    dubbo rest rpc相关jar包

    再来看`dubbo-rpc-webservice-2.8.4.jar`,这个组件是Dubbo对Web Services(通常基于SOAP协议)的支持。Web Services是一种标准的跨语言、跨平台的通信方式,通过XML格式传输数据。虽然REST在现代微服务中更受欢迎,...

    Asp.Net及相关技术介绍

    XML-RPC,SOAP,REST, SOA Asp.Net WebForm,WebService, WCF Asp.Net WebAPI, Asp.Net MVC,JSON Asp.Net Routing, MVVM,DOM HttpModule, HttpHandler, Ajax Jquery JS,Knockout JS 内容提纲如下...

    xfire调用webservice

    xfire可以与多种类型的WebService结合使用,如SOAP、REST、XML-RPC等。xfire还提供了一个基于annotation的编程模型,使得开发者可以使用简单的Java代码来开发WebService。 xfire的主要特点包括: 1. 简单易用:...

    java rest api入门实例

    目前在三种主流的Web服务实现方案中,因为REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁,越来越多的web服务开始采用REST风格设计和实现。例如,Amazon.com提供接近REST风格的Web服务进行图书查找...

    REST API 安全设计指南.pdf

    目前在三种主流的Web服务实现方案中,REST模式服务相比复杂的SOAP和XML-RPC对比来讲,更加简 洁,越来越多的web服务开始使用REST设计并实现。但其缺少安全特性,《REST API 安全设计指南》就 是一个REST API安全设计...

    三种主流的WebService实现方案.docx

    本文将深入探讨三种主流的Web服务实现方案:REST、SOAP和XML-RPC,以及它们之间的差异和适用场景。 首先,REST(Representational State Transfer,表征状态转移)是一种基于HTTP协议的轻量级架构风格。REST强调...

    涉及的xfire所有jar包

    xfirejar包含了xfire项目的所有核心组件,使得开发者能够快速地将Java类转化为符合WS-I标准的Web服务,同时也支持了多种协议,如SOAP、REST、XML-RPC等。 一、xfire的核心组件 1. **XFire Core**:这是xfire的基础...

    php webservice

    PHP支持多种方式创建Web Service,包括SOAP、REST(代表性状态转移)和XML-RPC(远程过程调用)。这些技术使得PHP应用程序可以轻松地与其他系统(如Java、.NET等)进行集成。 3. **SOAP(Simple Object Access ...

    resf.pdf a tutorial of rest

    - **灵活性与效率**:与XML-RPC和SOAP相比,REST提供了更高的灵活性和更好的性能。它不依赖于复杂的SOAP消息格式,而是利用轻量级的HTTP协议。 #### 知识点六:REST的实际应用案例 - **实际应用**:许多现代Web...

    SOAP to REST_library_

    SOAP是一种基于XML的协议,用于在Web上交换结构化和类型化的信息,而REST则是一种轻量级的架构风格,通常用于构建Web服务。 描述中提到的"soap to rest powerbuilder"可能是指一个PowerBuilder应用,这是一个用于...

    基于SOAP的Web-Services开发的关键技术_SOAP的Web-Services_Web-Services开发_

    为了优化性能,可以采用压缩、缓存、二进制XML或者SOAP over REST等技术。 10. **持续集成与测试**:在开发过程中,利用自动化工具进行持续集成和测试是非常重要的,例如JUnit、Maven、Selenium等,它们能确保Web...

    SOAP协议规范详细描述

    SOAP(Simple Object Access Protocol)协议是一...然而,随着Web服务技术的发展,SOAP已被更现代的、更轻量级的协议如REST所取代,但在某些场景下,尤其是需要强类型和事务处理的复杂交互时,SOAP仍然有着广泛的应用。

    手把手xfire开发WS入门实例

    除了SOAP外,Web Service还有其他通信方式,如REST(Representational State Transfer)和XML-RPC(XML Remote Procedure Call)。REST通常更为简洁,使用HTTP方法(GET, POST, PUT, DELETE)直接操作资源;XML-RPC...

    API协议设计的十种技术0122.pdf

    除了以上提到的,还有诸如 AMF(Action Message Format)、XML-RPC(XML 远程过程调用)、JSON-RPC 以及 MQTT(轻量级发布/订阅消息协议)等。每种都有其特定的应用场景和优缺点。AMF 主要用于 Adobe Flash 应用程序...

    modern-rpc:RPC,现代方式

    随着技术的发展,RPC已经进化出了多种实现方式,包括REST、SOAP、gRPC和RMI等。让我们深入探讨这些现代RPC技术。 1. REST(Representational State Transfer):REST是一种基于HTTP协议的网络应用程序设计风格和...

Global site tag (gtag.js) - Google Analytics