Web Services SOA和罗阿之间的区别是什么

hl0ma9xz  于 2023-02-13  发布在  其他
关注(0)|答案(5)|浏览(248)

正如我所知,SOA(面向服务的体系结构)是基于离散软件模块的集合,称为服务。这些服务可以与网络范围内的任何其他服务交换信息,而无需人工交互。SOA使用SOAP或REST协议在各种服务之间传输XML或JSON文档。
但是我对罗阿(面向资源的体系结构)感到困惑,也不知道这两种体系结构有什么区别。
任何帮助都将不胜感激,如果我错了请纠正我。

mzsu5hc0

mzsu5hc01#

正如这些术语所暗示的那样,面向服务的体系结构是面向服务的,而面向资源的体系结构是面向资源的。一般来说,A和B之间的区别通常最好通过定义A和B的本质来解释。因此,这就归结为一个问题,什么是“服务”,什么是“资源”?
我将主要留给读者,因为大多数开发人员可能都知道这两者是什么,尽管实际上并不那么容易,因为一件事可以同时被视为服务和资源(类似于经典的Wave-Particle duality of light in physics)。例如,Flickr是一项为您提供照片、但也可以被看作是照片的资源。但基本上资源是更静态的数据(如照片),服务是更多的处理(例如,交付照片,或调整照片大小,以便他们可以显示一个缩略图)。
通过查看应用程序实现其“功能”的方式,我可以最好地理解其中的区别:

  • 使用面向服务的体系结构构建的应用程序更像是一个“Facade”,例如,它根据其“在屏幕后面”使用的服务中的功能组合或组成其传出功能例如其核心处理包括调用外部服务,向它们提供参数,并将结果与可能的一些额外处理或算法结合用于用户。
  • 使用面向资源的体系结构构建的应用程序在内部进行更多的处理(例如,与调用外部组件相反),但使用外部资源作为输入。例如,其核心处理包括检索静态资源,然后在内部进行更多的计算。
nwo49xxi

nwo49xxi2#

我会先纠正:)
为了回答这个问题,我们可以说REST是一种组织资源和对资源执行的操作的方法。
SOA使用SOAP或REST协议在各种服务之间传输XML或JSON文档。
绝对不是。REST不是协议。SOAP是协议,这是真的。它经常用于SOA架构中,特别是用于实现HTTP上的SOAP或JMS上的SOAP。然而,SOA并不意味着SOAP。您可以使用任何其他协议。XML和JSON也是如此。您可以使用任何其他语言或方言。
现在解释一下。SOA是面向服务的架构。因此,整个系统是由服务组成的,这些服务通常执行一些操作。架构就是基于此。想象一个服务器云,其中每个服务器至少拥有一个服务,例如天气预报器、外汇计算器等。
与此相对的是面向资源的体系结构,罗阿,系统由资源组成。想象一下一个服务器云,每个服务器代表一个或多个资源,例如天气,欧元,美元,...
罗阿通常用于大型开放系统,因为它带来的优势。在ROA架构中,你通常会发现RESTfull服务。RESTfull服务现在通常只使用HTTP上的JSON或HTTP上的XML来实现。
SOA几乎无处不在,在SOA中你通常可以找到HTTP上的SOAP,JMS上的SOAP等等。
但是有一天您可能会遇到一个RESTfull Web服务,由于某种奇怪的原因使用SOAP(也许开发人员出于某种不明确的原因需要将消息嵌入到SOAP信封中)。我认为您在真实的生活中找不到这个示例,而只是向您表明SOA或罗阿并不暗示要使用的协议,在本例中是SOAP。
希望这个有用。

liwlm1x9

liwlm1x93#

根据我的经验,我的理解如下:
罗阿是数据模型上的API Package 器,SOA是功能模块上的API。
罗阿用于提供CRUD操作,SOA用于在运行时链接模块。
罗阿使API使用者不受数据模型变化的影响,SOA允许直接替换模块,简化部署和定制。

06odsfpq

06odsfpq4#

分布式系统的两种主要类型是:

  • 请求/响应类型系统
  • REST -面向资源
  • 与HTTP资源通信
  • 通过HTTP GET、PUT、POST等方式涉及资源生命周期的操作。
  • 可以缓存资源数据
  • SOAP -面向服务
  • 涉及与特定应用程序服务的通信
  • 不涉及服务生命周期管理的生命周期操作
  • 所有消息都发送到服务端点
  • 端点决定如何处理请求
  • EJB-面向对象
  • 与对象通信
  • 涉及编组对象的解组
  • 有状态的
  • 消息传递类型系统.消息队列

您应该能够从这里区分SOA和罗阿之间的区别。

p3rjfoxz

p3rjfoxz5#

ROA(Resource Oriented Architecture)和SOA(Service Oriented Architecture)是构建分布式系统的两种不同的体系结构风格。
在ROA中,重点是被访问的资源,客户端和服务器之间的交互也围绕这些资源进行。换句话说,ROA是一种主要关注数据或资源以及访问和操作这些资源的方式的体系结构。
与此相反,SOA侧重于服务,这些服务是自包含的模块化组件,可以在不同的应用程序之间重用。SOA旨在通过使不同的应用程序和系统之间共享服务成为可能来促进它们的集成。
以下是ROA和SOA之间的一些关键区别:
关注点:ROA关注资源以及客户端和服务器之间以这些资源为中心的交互,而SOA关注服务以及这些服务在不同应用程序之间共享的方式。
粒度:ROA通常比SOA更细粒度。对资源的关注意味着与系统的交互往往更具体和更有针对性。另一方面,SOA通常更粗粒度,服务被设计为在许多不同的应用程序中重用。
可重复使用性:SOA旨在最大化跨不同应用程序的服务重用,而ROA主要关注资源的访问和操作。
互操作性:SOA通常被用作促进不同应用程序和系统集成的一种方式,而ROA则更侧重于提供一种一致可靠的方式来访问和操纵资源。
总的来说,ROA和SOA都是可以用于构建分布式系统的有效体系结构样式,在它们之间进行选择将取决于所构建系统的特定需求。

相关问题