Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cloud computing over Client-server: differences, cons and pros? [closed]

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.

like image 768
Quan Mai Avatar asked Apr 08 '10 13:04

Quan Mai


People also ask

What are the disadvantages and disadvantages of cloud computing?

The cloud, like any other IT set-up, can experience technical problems such as reboots, network outages and downtime. These events can incapacitate business operations and processes, and can be damaging to business. You should plan for cloud downtime and business continuity.

What is the disadvantage of using cloud over physical server?

The cons of cloud servers include:There is a limit to how much data can be stored in the cloud, which depends on cost and storage availability. You will have no access to any data or information if the internet goes down at your business or at the cloud provider's side.

What are the cons of cloud computing in cloud computing?

One minor drawback to cloud computing is the fact that it's completely reliant on the internet. If your internet connection goes down, you won't have access to data stored in the cloud for the duration of the outage. However, an internet interruption won't destroy or compromise your data stored in the cloud.


2 Answers

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.

like image 58
johnny g Avatar answered Nov 16 '22 02:11

johnny g


Cloud Architectures are designs of software applications that use Internet-accessible on-demand services. Applications built on Cloud Architectures are such that the underlying computing infrastructure is used only when it is needed (for example to process a user request), draw the necessary resources on-demand (like compute servers or storage), perform a specific job, then relinquish the unneeded resources and often dispose themselves after the job is done. While in operation the application scales up or down elastically based on resource needs.

Example: an application that is currently in production using the on-demand infrastructure provided by Amazon Web Services. This application allows a developer to do pattern-matching across millions of web documents. The application brings up hundreds of virtual servers on-demand, runs a parallel computation on them using an open source distributed processing framework called Hadoop, then shuts down all the virtual servers releasing all its resources back to the cloud—all with low programming effort and at a very reasonable cost for the caller.

like image 36
Nandan Avatar answered Nov 16 '22 04:11

Nandan