何时是使用SOAP或者REST的适当时机? 与其将REST和SOAP进行比较,还不如将REST将和SOA进行比较。REST是一个体系结构类型。而SOAP是一个消息传递协议。REST应用程序可能使用SOAP协议,但是在大多数的情况下,REST应用程序只是简单地使用基于HTTP的XML传递消息。
使用SOAP代替简单的基于HTTP的XML的好处在于,SOAP提供了一种机制,这种机制可以从应用程序的有效负载中清晰地分离出基础功能。HTTP消息传递包括了消息头,该消息头可以用于传递会话和安全信息,但是它从应用程序有效负载中分离基础功能的能力相当有限。SOAP头可以包含任意类型的信息,从而可以使中间件……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
何时是使用SOAP或者REST的适当时机?
与其将REST和SOAP进行比较,还不如将REST将和SOA进行比较。REST是一个体系结构类型。而SOAP是一个消息传递协议。REST应用程序可能使用SOAP协议,但是在大多数的情况下,REST应用程序只是简单地使用基于HTTP的XML传递消息。使用SOAP代替简单的基于HTTP的XML的好处在于,SOAP提供了一种机制,这种机制可以从应用程序的有效负载中清晰地分离出基础功能。HTTP消息传递包括了消息头,该消息头可以用于传递会话和安全信息,但是它从应用程序有效负载中分离基础功能的能力相当有限。SOAP头可以包含任意类型的信息,从而可以使中间件为应用程序进行更多的运行时处理。(这些运行时处理包括了路由,消息传递,安全,审计,延续性,会计,以及很多其它的服务)。
总的来说,REST比起SOA更具有扩展性,所以对于高扩展性要求的应用程序来说,我更倾向于选择REST,但是除了可扩展性以外,还有很多其他的标准需要考虑。如果需要的话,你也可以让SOA具有扩展性。
我认为,当在SOA和REST之间进行选择时,开发者和架构师的主要依据是编程风格和开发者的开发经验。使用SOA的时候,应用程序主要将带有请求操作和提供输入信息的请求信息发送到服务方。服务对输入信息进行处理并返回相应信息。(SOA还可以支持其他消息交换模式以及异步编程)。使用SOA的时候,底层基础设施可以将XML和语言专有对象匹配起来。(如XML到Java)
在使用REST的时候,应用程序会将所有的请求信息编码为URL。(然而你可能不想将敏感信息编码为URL,例如信用卡号码)。应用程序可以使用POST方法提交用于处理的信息,例如订单号码等。在使用REST的时候,应用程序一般直接使用XML。
如果开发者习惯于使用语言对象,并且使用RPC或者RMI类型编程模型,他们会认为SOA更为直观。如果开发者习惯于使用SAX和DOM,并且使用消息传递类型编程模型,他们会认为REST更为直观。
相关推荐
-
API开发与管理大作战
2014将会是API管理方法新旧PK的一年,据Delyn Simons说,她领导了Mashery开发者的外展团队。应用编程接口(API)的主流化和私有化在新的一年也将掀起波澜,她在波士顿“Future Insights Ultimate Developer Event 2013”大会上预测说。
-
公共API外包管理是否值得考虑?
公共API外包管理是指聘请一个专家小组来解决可扩展性问题,同时也提出几套可替代的方案。
-
最适合大数据应用的是SOA还是REST?
跟所有的企业数据一样,大数据唯有通过应用投射给用户才有用。对于设计或重新设计大数据应用的架构师来说,一个关键问题是究竟是用SOA还是RESTful的API?
-
弹性资源对传统的REST架构构成挑战了吗?
组件化应用程序需要机制来将组件传递到下一个工作地。从一开始,人们对连接流程及其实施就有不同的观点。可以证明,SOA阵营是由RPC和SOAP的软件接口发展而形成的。