【问题标题】:SOA vs Client-Server vs Web Service - what is the difference? [closed]SOA vs Client-Server vs Web Service - 有什么区别? [关闭]
【发布时间】:2014-04-17 22:20:10
【问题描述】:

在阅读了一些关于 SOA、Web 服务和客户端-服务器架构主题的文献之后。我真的对这些术语感到困惑,因为看不到它们之间的真正区别。有人可以解释 SOA 和客户端-服务器之间的实际区别是什么吗?我可以使用客户端-服务器来实现 SOA 还是前者是一个不同的概念?现在客户端服务器已经过时了吗? Web 服务的地方在哪里? Web 服务只是客户端-服务器架构吗?

如果有人帮助我澄清所有这些术语以及这些概念之间的区别,我将不胜感激。

【问题讨论】:

标签: web-services rest architecture client-server soa


【解决方案1】:

举个例子。

您已经用任何语言(java、c、c++ 等)编写了一个计算器代码,它执行加、减、乘和除 4 种操作。可以说,我们将此代码部署在服务器上。现在您想在互联网上发布此代码,以便世界上任何连接到互联网的人都可以使用您的代码。现在网络服务将发挥作用。根据您的服务器,您需要遵循一种实现技术将您的代码转换为 Web 服务。例如,您正在使用 Apache 轴服务器,并且您已经使用 jax-ws(用于 xml Web 服务的 java api)实现了您的代码。您的代码将作为 Web 服务发布在 URL 上(例如 http://www.myserver/calculator)。

现在您将如何访问此网络服务?现在客户端将发挥作用。假设您设计了一个网站 www.calculation.com。从那里,您将获取 2 个整数输入,并使用 http://www.myserver/calculator/add 进行加法、http://www.myserver/calculator/subtract 进行减法、http://www.myserver/calculator/multiply 进行乘法和 http://www.myserver/calculator/multiply 进行除法调用您的 Web 服务。

现在您可以看到您的每个 Web 服务操作加法、减法、乘法和除法都作为服务工作,并且将来假设您需要在您的网站上放置方程求解服务,然后您可以重复使用您的加法、减法乘法和除法 Web 服务使用这些链接来创建另一个服务。到这里,您已经实现了面向服务的架构,即 SOA。

【讨论】:

  • 不太正确。您没有提到 SOA 治理,这是 SOA 的主要部分。
  • 因为它没有被问到。他只是对上述说法感到困惑。你想给他一块管理权。
【解决方案2】:

SOA 和客户端-服务器之间的最大区别在于层之间的耦合。在 SOA 中,服务器端非常独立于客户端。许多不同的客户端类型使用相同的服务器。考虑一个 Web 服务器。无论您使用什么浏览器连接它,它都会做同样的事情。以这种方式,SOA 服务是为重用而设计的。 http://en.wikipedia.org/wiki/Service-oriented_architecture

另一方面,客户端-服务器通常更加耦合。服务器为特定客户端而存在,没有计划重用。想想 Microsoft Exchange。它旨在与 Microsoft 电子邮件客户端一起使用。它实际上只是将一个进程分成两部分,在不同的机器上运行它们。话虽如此,从技术上讲,SOA 服务是客户端-服务器,只是有多个客户端。

因此,所有 SOA 服务都是客户端-服务器,但并非所有客户端-服务器进程都是 SOA。

【讨论】:

    猜你喜欢
    • 2017-06-01
    • 1970-01-01
    • 2020-04-29
    • 2011-05-23
    • 2011-09-28
    • 2016-07-21
    • 2012-04-26
    • 2014-07-26
    相关资源
    最近更新 更多