【Web Service】REST vs SOAP
2015-06-09 09:38
232 查看
http://blog.zfqjava.com.cn/?p=43
REST风格的API是Web服务的一个正确方向,对于部署实施Web服务的企业来说,应该优先考虑,从实施的角度来讲,从编程的风格来 讲,REST风格要远远比实施SOAP容易,我甚至觉得新的Web服务提供商应该只考虑提供REST风格的API,这不仅仅是REST风格的Web服务变 得更流行,更多企业选择,它本身确实有巨大的优势!
至于SOAP是不是僵尸,这很难讲,这篇《“僵尸”SOAP会阻碍企业发展吗?》很有意思,文中的观点基本赞同,不赞同的是不同的架构风格的争论还是有意义的,一种架构能够超越另外一种架构是客户选择的结果,而架构面向的客户就是开发者,他们最了解哪种风格最好。Amazon同时提供了两种风格的API,Amazon的一篇博客《REST
vs SOAP》对于这两者做了比较,文中的观点认为这两种Web服务风格甚至不能作比较,是属于不同类型的概念,而新的SOAP标准还融合了一些REST的思想,作者希望能够提供两种风格。还有一种观点认为REST是基于HTTP协议的,而SOAP可支持多种协议,比如直接通过TCP协议调用。
这 些架构之间的争论其实很有意思,技术的变迁,架构的进化很大程度上是由客户决定的,而不同架构最后胜出的往往都是那些面向客户友好的,给客户带来极大便利 的,这并不是说SOAP没有意义,SOAP的出现拓展了Web服务的空间,得到了厂商的认可,改变了编程方式。在JavaEE企业技术领域,EJB和现在 的POJO的技术流行也展示了相同的变化,现在的JavaEE编程风格是完全的转向了POJO风格。而浏览器领域这个变化更加明显,起初的Java Applet和Flash的争斗,Flash全面胜出,Flash拥有的瘦客户端插件,设计工具,丰富的音频,视频,动画等展示方式无论对最终用户,还是
开发者都是非常友好的,然而风水轮流转,新的HTML5标准在浏览器层面就对于这些功能提供了内生的支持,并提供了多种能够提高用户体验的API,而使用 JavaScript进行编程降低了用户的学习曲线,开发者面向的平台就是浏览器,而浏览器是真正的最广泛的终端。
REST风格的API是Web服务的一个正确方向,对于部署实施Web服务的企业来说,应该优先考虑,从实施的角度来讲,从编程的风格来 讲,REST风格要远远比实施SOAP容易,我甚至觉得新的Web服务提供商应该只考虑提供REST风格的API,这不仅仅是REST风格的Web服务变 得更流行,更多企业选择,它本身确实有巨大的优势!
至于SOAP是不是僵尸,这很难讲,这篇《“僵尸”SOAP会阻碍企业发展吗?》很有意思,文中的观点基本赞同,不赞同的是不同的架构风格的争论还是有意义的,一种架构能够超越另外一种架构是客户选择的结果,而架构面向的客户就是开发者,他们最了解哪种风格最好。Amazon同时提供了两种风格的API,Amazon的一篇博客《REST
vs SOAP》对于这两者做了比较,文中的观点认为这两种Web服务风格甚至不能作比较,是属于不同类型的概念,而新的SOAP标准还融合了一些REST的思想,作者希望能够提供两种风格。还有一种观点认为REST是基于HTTP协议的,而SOAP可支持多种协议,比如直接通过TCP协议调用。
这 些架构之间的争论其实很有意思,技术的变迁,架构的进化很大程度上是由客户决定的,而不同架构最后胜出的往往都是那些面向客户友好的,给客户带来极大便利 的,这并不是说SOAP没有意义,SOAP的出现拓展了Web服务的空间,得到了厂商的认可,改变了编程方式。在JavaEE企业技术领域,EJB和现在 的POJO的技术流行也展示了相同的变化,现在的JavaEE编程风格是完全的转向了POJO风格。而浏览器领域这个变化更加明显,起初的Java Applet和Flash的争斗,Flash全面胜出,Flash拥有的瘦客户端插件,设计工具,丰富的音频,视频,动画等展示方式无论对最终用户,还是
开发者都是非常友好的,然而风水轮流转,新的HTML5标准在浏览器层面就对于这些功能提供了内生的支持,并提供了多种能够提高用户体验的API,而使用 JavaScript进行编程降低了用户的学习曲线,开发者面向的平台就是浏览器,而浏览器是真正的最广泛的终端。
相关文章推荐
- 元数据元素
- osg实例介绍
- 微软发布Windows 10新预览版任务栏弹出问题修复
- PHP 缓存之客户端缓存
- xml文件的解析(libxml2)
- 2.MFC简单的层次结构分析
- 如何在HiWork中进行文件预览
- RS查询报错之递归公用表表达式不包含顶级 UNION ALL运算符
- 怎么样进行轻松高效的代码复读
- Python 学习笔记2
- 深入理解Java:注解(Annotation)--注解处理器
- UltraEdit (Ctrl + F) 查找、(Ctrl + R)替换功能失效
- jQuery Validation Engine 表单验证
- bind和live的区别
- Linux的IPC命令
- centos下 ifconfig的安装
- VISUAL SVN安装 及客户端使用
- hdu 5239 Doom(线段树+数论)
- 沉浸式状态栏调用方法
- C++中的static关键字