`
bugyun
  • 浏览: 559144 次
社区版块
存档分类
最新评论

Web服务实现方案(REST+SOAP+XML-RPC)简述及比较(转)

 
阅读更多

 

参考:http://hi.baidu.com/ripen/item/2eb66b460f632b33fa896007

 

目前知道的三种主流的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服务与复杂的SOAPXML-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服务协议时需要考虑的因素,以及如何根据具体需求做出最佳...

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

    在本篇博客“REST基础(二):Web服务编程,REST与SOAP”中,我们将深入探讨两种主要的Web服务编程模型:Representational State Transfer (REST) 和 Simple Object Access Protocol (SOAP)。这两种技术都是用于构建...

    Asp.net core Web API + Autofac + EFCore + Element-UI + SqlServer2008R2

    Account:net core Web API类型,为前端提供Rest服务 Account.Common:公共工程,与具体业务无关,目前里边仅仅有两个类,自定义业务异常类及错误码枚举类 Account.Entity:这个不要问我 Account.Repository....

    xmlrpc-am5-ws

    XMLRPC-AM5-WS 是一个基于XML-RPC(Remote Procedure Call)协议的Web服务解决方案。这个压缩包包含了几个关键的库文件,用于构建和实现XML-RPC客户端和服务器的功能。接下来,我们将深入探讨这些库文件及其在IT领域...

    Boomerang - SOAP & REST Client-7.7.6.zip

    您是否正在寻找可以帮助您访问和使用REST和SOAPWeb服务的出色应用程序? 您想通过一个新的、有用的SOAP客户端将您的体验提升到一个新的水平,并以前所未有的方式改进您的REST服务吗? Boomerang在这里为您提供。 ...

    基于Django+Django -Rest-Framework+Python的在线考试系统后端(源码).zip

    4、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于Django+Django -Rest-Framework+Python的在线考试系统后端(源码).zip 基于Django+Django -Rest-Framework+Python...

    apache-xmlrpc

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

    django3.0+rest framework + Vue 生鲜超市项目-后端

    在本项目中,我们探索的是一个基于Django 3.0、Django Rest Framework和Vue.js构建的生鲜超市电子商务平台的后端实现。这个项目旨在提供一个完整的开发环境,供学习者深入理解如何将这些技术整合在一起,创建一个...

    java rest api入门实例

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

    rest+spring+webservice交互xml文件

    而Web服务,尤其是基于SOAP的Web服务,是另一种常见的跨平台通信方式。然而,本文将探讨的是如何在Spring框架中整合REST服务,并通过XML数据格式进行交互。 首先,整合REST和Spring的关键在于引入相应的依赖库。在...

    dubbo rest rpc相关jar包

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

    基于微服务结局方案 SpringBoot+Dubbo+Zookeeper-MicroService-MyShop.zip

    Dubbo支持多种协议,如RPC、REST、Hessian等,增强了服务间的交互能力。 **Zookeeper**是Apache的一个分布式协调服务,它为分布式应用提供了诸如配置管理、命名服务、集群同步、组服务等基础功能。在微服务架构中,...

    Finn之 SpringCloud2.0教程全集(三)- 服务消费者(rest + ribbon)

    通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。Spring Cloud Ribbon虽然只是一个工具类框架,它不像服务注册中心、配置中心、API网关那样需要独立部署,...

    soap_to_rest_node:将SOAP转换为REST请求的项目

    【标题】"soap_to_rest_node:将SOAP转换为REST请求的项目"是一个旨在帮助开发者将传统的SOAP(简单对象访问协议)服务转换为更现代、更易于使用的REST(表述性状态转移)API的开源项目。该项目主要使用JavaScript...

    SOAP:XML跨平台Web Service开发技术

    根据提供的信息,我们可以推断出这部分内容与算盘的工作原理及其使用方法有关,并非直接讨论SOAP(简单对象访问协议)及XML跨平台Web服务开发技术。然而,由于明确要求生成的知识点应围绕标题和描述中的内容,即SOAP...

    Rest-Web-Service-Client_v3.6.0.crx.zip

    RESTful Web服务客户端是开发者用来与REST API进行交互的重要工具,它简化了与远程服务器的通信,使得数据的获取和发送变得更加便捷。本文将深入探讨"Rest-Web-Service-Client_v3.6.0.crx"这一特定版本的客户端,...

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

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

    dubbo-rpc-rest-2.8.4.jar

    java运行依赖jar包

Global site tag (gtag.js) - Google Analytics