Web services SOA和ROA之间的区别是什么
据我所知,SOA(面向服务的体系结构)基于离散软件模块的集合,称为服务。这些服务可以与网络范围内的任何其他服务交换信息,而无需人工交互。 SOA使用SOAP或REST协议在各种服务之间传输XML或JSON文档 但是我对ROA(面向资源的体系结构)以及这两种体系结构之间的区别感到困惑 任何帮助都将不胜感激,如果我错了,请纠正我。我会先纠正:) 为了回答这个问题,让我们说REST是一种组织资源和对资源执行操作的方法 SOA使用SOAP或REST协议在各种服务之间传输XML或JSON文档 绝对不是。REST不是协议。SOAP是一种协议,这是真的。它经常用于SOA体系结构中,特别是用于通过HTTP实现SOAP或通过JMS实现SOAP。然而,SOA并不意味着SOAP。您可以使用任何其他协议。 这同样适用于XML和JSON。你可以使用任何其他语言或方言 现在解释一下。SOA是面向服务的体系结构。因此,整个系统由通常执行某些操作的服务组成。该体系结构基于此。设想一个服务器云,其中每个服务器至少拥有一项服务,例如WeatherPredictor、ForexCalculator等 与此相反,您有面向资源的体系结构ROA,其中系统由资源组成。设想一个服务器云,其中每个服务器代表一个或多个资源,例如天气、欧元、美元等 由于ROA带来的优势,它通常用于大型开放系统。在ROA架构中,您通常会发现RESTfull服务。如今,RESTfull服务通常只通过HTTP上的JSON或HTTP上的XML来实现 SOA在任何地方都有使用。在SOA中,通常可以找到HTTP上的SOAP、JMS上的SOAP等 但是有一天,您可能会遇到一个RESTfull web服务,出于某种奇怪的原因,它使用SOAP(也许开发人员出于某种模糊的原因需要将消息嵌入SOAP信封)。我认为您在现实生活中找不到这个示例,只是为了向您展示SOA或ROA并不意味着要使用的协议,在本例中是SOAP 希望这有帮助 ROA(面向资源的体系结构)只是使用REST服务的SOA(基于服务的体系结构)的一个别致的名字Web services SOA和ROA之间的区别是什么,web-services,rest,soap,Web Services,Rest,Soap,据我所知,SOA(面向服务的体系结构)基于离散软件模块的集合,称为服务。这些服务可以与网络范围内的任何其他服务交换信息,而无需人工交互。 SOA使用SOAP或REST协议在各种服务之间传输XML或JSON文档 但是我对ROA(面向资源的体系结构)以及这两种体系结构之间的区别感到困惑 任何帮助都将不胜感激,如果我错了,请纠正我。我会先纠正:) 为了回答这个问题,让我们说REST是一种组织资源和对资源执行操作的方法 SOA使用SOAP或REST协议在各种服务之间传输XML或JSON文档 绝对不是。R
- SOA相对于ROA的主要优势在于更成熟的工具支持、XML请求的类型安全性李>
- ROA的主要优点是易于实现、设计的敏捷性和轻量级方法
对于,正如术语所暗示的,面向服务的体系结构面向服务,面向资源的体系结构面向资源。一般来说,通过定义A和B的本质,A和B之间的区别通常得到最好的解释。因此,归根结底,什么是“服务”,什么是“资源” 我将把这主要留给读者,因为大多数开发人员可能都知道这两者是什么。虽然它实际上并不那么容易,因为有一件事既可以看作是服务,也可以看作是资源(类似于经典)。例如,Flickr是一项为您提供照片的服务,但也可以被视为照片的资源。但基本上,资源是更多的静态数据(如照片),而服务是更多的处理(如传送照片,或调整照片大小以便显示照片的缩略图) 通过查看应用程序实现其“功能”的方式,我最能理解这种差异:
- 使用面向服务的体系结构构建的应用程序更像是一个“”,例如,它根据其“幕后”(可能通过网络)使用的服务中的功能组合或组合其传出功能。例如,它的核心处理包括调用外部服务,向它们提供参数,并将结果与用户可能的一些额外处理或算法相结合
- 使用面向资源的体系结构构建的应用程序在内部执行更多的处理(例如,与调用外部组件相反),但使用外部资源作为输入。例如,其核心处理包括检索静态资源,然后在内部进行更多计算
- 请求/响应型系统
- 面向资源的REST
- 与HTTP资源的通信
- 涉及通过HTTP GET、PUT、POST等对资源生命周期的操作
- 可以缓存资源数据
- 面向服务的SOAP
- 涉及与特定应用程序服务的通信
- 不涉及服务生命周期管理的生命周期操作
- 所有消息都被发送到服务端点
- 端点决定如何处理请求
- EJBs-面向对象
- 与对象的通信
- 涉及对象的编组和解编组
- 有状态
- 面向资源的REST
- 消息传递类型系统-消息队列
根据我的经验,我的理解如下: ROA是数据模型上的API包装器,SOA是功能模块上的API ROA用于提供CRUD操作。SOA用于在运行时链接模块
ROA将API使用者与数据模型的更改隔离开来。SOA允许直接替换模块,简化部署和定制。两种主要类型的分布式系统是: