




























早期,人们认为似乎SOAP协议将成为访问Web服务的最终方式。SOAP功能强大并且比较全面。然而,SOAP比较复杂,难以应用,而REST可以简单地实现Web服务。
| REST风格 | SOAP | |
| 针对市场 | 从小规模到大规模IT系统建设,大市场 | 重大IT系统建设,大公司 |
| 程序员 | 专业开发者 | |
| 性能 | 90% | 100% |
| 成本 | 10% | 100% |
| 时间 | 10% | 100% |
| 风险 | 风险低 | 风险高 |
基于REST风格的Web服务和SOAP的Web服务比较
2002年,亚马逊公司发布了其电子商务的网络服务,由于意识到了“REST与SOAP各自的优缺点”(表1.1),亚马逊为其网络服务提供了SOAP和REST的接口。两年后,这个平台吸引了逾5万开发者的关注,但其中大多数开发者倾向于使用REST方法。事实上,百分之八十的请求是以亚马逊的REST Web服务为基础的,只有百分之二十是基于SOAP Web服务。这就表明,开发者更喜欢使用简单的REST。
REST类型的Web服务的吸引力在哪里?就是在于其使用极其简单。REST类型的Web服务要求很少的编码工作量,能够减少很多不必要的工作。
例如,假设用户需要从ArcGIS Server地图服务器生成空间范围在185.33度以西,-59.53度以东,74.08度以北,15.20度以南地区,JPG格式的800×500像素的地图,就可以访问:
http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/。
ArcGIS Server提供基于SOAP和REST接口介面,用户可以任意选择其一。使用基于SOAP接口,用户首先需要从WSDL中产生一系列的SOAP工具包:(http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/?WSDL)。随之,用户还需要研究SOAP接口的使用方法。最后,用户还需要利用某种编程语言编写代码,例如以下代码(以C#代码为例):
可以看到,使用SOAP是非常不方便的。使用基于浏览器端编程语言的SOAP 类型Web服务,如JavaScript,通常比使用REST类型的Web服务更加困难。
如果使用REST类型的Web服务,完成上述任务将变的非常容易。用户不需要SOAP工具包。用户所有需要做的工作只是建立一个如下所示的网址:
这个链接的响应就是返回用户想要的地图图片。重要的是,用户可以在各种计算机编程语言——如.NET,Java,JavaScript,Flex代码中嵌入这个网址来生成所需要的影像地图,而且只需在Web浏览器中运行该段代码,就能看到所需要的地图。就这么简单!
REST技术具有很多优点:
1.无需建立庞大的XML消息。只需建立一个网址字符串来访问REST服务。
2.可以轻易地在任何编程语言中实现,尤其是在JavaScript中。使用SOAP与JavaScript的Web服务非常繁琐,但使用REST与JavaScript的Web服务就非常简单。
3. REST有利于促进JavaScript和XML(AJAX)异步mashup和Web 2.0热潮的进一步发展。Mashup能够耦合来自不同网站的资源结果。因为容易被调用、易于使用,REST服务就是实现mashup的最优方法。
REST类型的Web服务简单而且有效,直观,用户界面友好。在许多情况下,简单和有效地使用REST技术远比使用复杂的基于SOAP的Web服务具有更高的鲁棒性。利用REST对许多方面都非常有利:
摘自《ALL FOR GIS》
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。