据我所知,云计算可能是软件架构的一次演变,它将取代当前的一些架构,例如客户端-服务器。
这两种架构对我来说似乎有相似之处(我对两者知之甚少),但我不知道它们之间的区别。与客户端-服务器架构相比,云计算有哪些优缺点?
非常感谢。
最佳答案
客户端-服务器
在广阔的计算世界中只有两种应用程序,
- 独立应用程序,以及
- 客户端-服务器应用程序
独立仅仅意味着用户界面、业务逻辑、数据存储以及任何和所有资源都完全包含在单个执行环境(最终用户的计算机)中。
相比之下,客户端-服务器意味着这些组件、服务和资源存在某种逻辑隔离。通常,我们在本地执行[又名“客户端”]中看到用户界面,在远程执行[又名“服务器”]中看到业务和数据存储以及其他资源。一些例子,
- 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/