architecture - 客户端-服务器云计算 : differences, 的缺点和优点?

标签 architecture client-server cloud

据我所知,云计算可能是软件架构的一次演变,它将取代当前的一些架构,例如客户端-服务器。

这两种架构对我来说似乎有相似之处(我对两者知之甚少),但我不知道它们之间的区别。与客户端-服务器架构相比,云计算有哪些优缺点?

非常感谢。

最佳答案

客户端-服务器

在广阔的计算世界中只有两种应用程序,

  1. 独立应用程序,以及
  2. 客户端-服务器应用程序

独立仅仅意味着用户界面、业务逻辑、数据存储以及任何和所有资源都完全包含在单个执行环境(最终用户的计算机)中。

相比之下,客户端-服务器意味着这些组件、服务和资源存在某种逻辑隔离。通常,我们在本地执行[又名“客户端”]中看到用户界面,在远程执行[又名“服务器”]中看到业务和数据存储以及其他资源。一些例子,

  • MSN Messenger [包含我们在本地计算机上运行的应用程序,而后端服务则促进远程位置的通信]
  • Facebook [包含一个瘦应用程序 - 我们的网络浏览器 - 和一个远程服务 - 他们的服务器]
  • StackOverflow [同 Facebook]

有了这些,我们来看看云计算。

云计算

云计算是传统服务器托管解决方案的抽象。我现在不再自己购买 10 台服务器在自己的运营数据中心运行和管理,而是从供应商那里租用 X 服务器,其中 X 是我随时决定的可变数字。

利用云有一个明显的优势。如果我购买了 10 台服务器,即使它们未得到充分利用,我也必须管理和维护这 10 台服务器(假设只有 1 台服务器在 90% 的时间内使用,而所有 10 台服务器在高峰时段有 10% 的时间被固定)。这意味着我在 90% 的时间里支付了太多的维护费用,而当我需要增加剩余 10% 的时间时却缺乏灵 active 。

云计算的优势在于“其他人”为我们管理服务器群,并愿意根据需要向我们出租数量不等的机器。因此,在上面的场景中,我可以在下类时间的 90% 时间里租用一台机器,并在剩余 10% 的时间里扩展到 10 台或更多机器。

Microsoft 通过 Windows Azure 将这一抽象更进一步。他们租用的不是通用服务器,而是应用程序域。这是云实现具有实际设计含义的一个示例 - 但它是基于弹性托管的相同前提。

关系

在大多数情况下,由于客户端-服务器是一种软件范例,而云计算是一种托管抽象,因此它们是独立的概念。然而,热衷于云计算的人会意识到,云计算意味着业务、数据存储和其他资源都是远程托管的,这使得在“云”中运行的任何应用程序都必须成为客户端-服务器应用程序的一部分。 p>

关于architecture - 客户端-服务器云计算 : differences, 的缺点和优点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2600454/

相关文章:

architecture - 对项目的架构做出决定;你的决策过程是怎样的?

java - 如何让服务器在连接时向客户端发送消息?

php - mysql版本5.5.31加载数据infile语法错误

C# 在 System.Sockets 中接收数据包示例

java - 使用 Java 访问 IoT 中心 Azure 中的数据

amazon-ec2 - 保护Amazon EC2 + EBS的步骤

c++ - C++中的相互类引用

python - 如何在我的代码中组织帮助函数

architecture - 是什么让我的代码 DDD(领域驱动设计)合格?

java - Windows 中的 Netty 零复制