发布网友 发布时间:2022-04-23 22:09
共1个回答
热心网友 时间:2023-10-11 14:42
与REST的相关的词汇也出现了好几个,RESTful Service和ROA (Resources Oriented Architecture)就是典型的代表。甚至有许多人认为ROA会替代SOA。事实上是这样的吗? 认为ROA胜过SOA的人一般指的是RESTful Service胜过SOAP,这种观点产生的原因是RESTful Service简单、扩展性高、高性能(缓存机制);而大多数SOAP缺省基于RPC方式(注:SOAP并不*一定使用RPC), 这种机制需要在客户端建立一个代理才模拟服务短的接口,进而调用服务端的服务。相对而言,SOAP的客户端和服务端的耦合要紧密一些,这*了分布式应用的扩展。另外,RESTFul Service推荐的消息传输格式是JSON,它比SOAP要求的数据格式SOAP信封要简单许多,这也是RESTful Service胜出的另一方面。 我认为要回答这个问题,首先需要看看企业级应用的特点以及两种架构风格的适用性。由于遗留原因,目前企业内的大多数应用并非基于Web,应用系统间的交互大多基于RPC方式,ROA很难在这种环境下开枝散叶。 此外,企业应用间互相访问的功能多数是基于过程而非基于资源交互,例如“核准保单”,虽然可以通过REST实现这种场景,但毕竟没有RPC使用起来那么直观。可喜的是,近年来Web应用越来越多地在企业内使用,这为ROA提供了有利的土壤,使得ROA在企业架构中的应用变得多起来。从两种架构风格的适用性角度看,一方面,SOA适合于企业级应用自不必说,这么多年来SOA一直在企业范围内应用;另一方面,到目前为止,ROA则更多地应用于基于Web的前端应用的数据聚合,所以ROA在企业内的适用性要窄一些。 基于以上考虑,我认为ROA可适用于企业内的Web应用之间的整合和协作。ROA通过RESTful Service的形式暴露服务,这些服务可通过SOA架构进一步与企业的其他非Web应用进行整合;SOA则是更高层次的企业级架构风格,RESTful Service可作为描述服务的开放、标准的形式之一,但不是唯一形式。随着企业级应用越来越Web化,遗留系统正逐步淘汰,ROA可能会成为未来企业级解决方案的重要组成部分。 简言之,SOA不会被替代,ROA的地位会越来越高;二者并非排他关系,而是相辅相成,共荣共赢的关系。 【凡属支点网原创内容,版权所有,未经授权谢绝转载。】