客户端-服务器上的云计算:差异、缺点和优点? [英] Cloud computing over Client-server: differences, cons and pros?

查看:30
本文介绍了客户端-服务器上的云计算:差异、缺点和优点?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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

非常感谢.

解决方案

Client-Server

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

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

独立只是意味着用户界面、业务逻辑和数据存储以及任何和所有资源都完全独立于单个执行环境 - 最终用户的机器.

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

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

掌握了这一点,让我们来看看云计算.

云计算

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

利用云有明显的优势.如果我购买了 10 台服务器,我必须管理和维护这 10 台服务器,即使它们未得到充分利用[假设只有 1 台服务器在 90% 的时间被使用,而所有 10 台服务器在高峰时段有 10% 的时间都被固定].这意味着我在 90% 的时间里付出了太多的维护费用,而当我需要增加剩余的 10% 时,我又不灵活.

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

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

关系

在大多数情况下,因为客户端-服务器是一种软件范式,而云计算是一种托管抽象,所以它们是独立的概念.然而,Keeners 会意识到云计算意味着业务、数据存储和其他资源是远程托管的,这需要在云"中运行的任何应用都是客户端-服务器应用程序的一部分.>

As far as I know, Cloud computing might be a evolution in software architect, and it will replace some current architectures, such as client-server.

These two architecture seem to share similarities for me (I know very little about both), but I don't know the differences between them. What are the cons and pros of cloud computing over client-server architecture?

Thank you so much.

解决方案

Client-Server

In the great-wide world of computing there are only two kinds of applications,

  1. standalone application, and
  2. client-server application

Standalone simply means the user-interface and the business logic and the datastore and any and all resources are completely self contained within a single execution environment - the end-user's machine.

In contrast, client-server means there is some logical segregation of these components, services, and resources. Typically we see user-interfaces in a local execution [aka "client"] and business and data store and other resources in a remote execution [aka "server"]. Some examples,

  • MSN Messenger [contains an application we run on our local machine, while a back-end service facilitates communication at a remote location]
  • Facebook [contains a thin application - our web browser - and a remote service - their servers]
  • StackOverflow [same Facebook]

With this in hand, let's look at cloud computing.

Cloud Computing

Cloud computing is an abstraction of traditional server hosting solutions. Instead of buying 10 servers myself to run and manage in my own operations datacentre, I now lease X servers from a vendor where X is a variable number decided by me whenever I want.

There is a distinct advantage to leveraging a cloud. If I bought 10 servers, I must manage and maintain these 10 servers even if they are underutilized [say only 1 server is used 90% of the time, while all 10 are pinned 10% of the time at peak hours]. That means I am paying way too much in maintenance for 90% of the time, while being inflexible when I need to grow the remaining 10%.

The advantage of cloud computing is that "someone else" is managing the server farm for us, and is willing to lease out a variable number of machines to us on demand. So in our scenario above, I could lease 1 machine for 90% of the time in off-hours, and scale up to 10 or more machines the remaining 10% of the time.

Microsoft takes this abstraction one step further with Windows Azure. They do not lease generalized servers, but application domains. This is the one example [to mind] where a cloud implementation has actual design implications - but it is predicated on the same premise of elastic hosting.

Relation

For the most part, because client-server is a software paradigm and cloud computing is a hosting abstraction, they are independent concepts. Keeners, however will realize that cloud computing implies business, data stores, and other resources are remotely hosted, which necessitates that any application running within a "cloud" is part of a client-server application.

这篇关于客户端-服务器上的云计算:差异、缺点和优点?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆