I want to know the difference between cloud computing and client server architecture. I mean how is cloud computing different from a website that provides me some services. And what is the meaning of elasticity in terms of cloud computing.
Cloud is one of those over-used terms that mean different things to different people. However, since you mentioned elasticity, what that means is the ability to scale resources depending on requirements.
Assume for a moment that there is one VM with 64MB of RAM serving a website. There are only a few people using it. Then suddenly, there is a spike in usage (due to the slashdot effect) and that one VM and 64MB of RAM obviously will not cut it.
At this point, there are different strategies to handle this.
One possibility is to dynamically increase the RAM in the VM. Some services provide a burst-able RAM configuration to do this. Another possibility is to dynamically spawn new VMs that are clones of the existing VM and balance the load over them. This is a form of elastic computing.
The advantage of having this elasticity is resource consumption. There is no need to run a VM with a 4GB of RAM all the time if all it needs is 64MB usually. The resources can be re-allocated as and when necessary. New machines can be spawned and shutdown when needed.
In some ways, there is little difference. I see cloud computing as very much a subset of client/server architecture; the only difference is the where and how of the server side of things - it doesn't matter if the server is in my data centre or Amazon's "cloud", it's still client/server architecture.
think cloud as it floats...yep the services also floats in cloud computing, u can use it when you want it and release it after ur work ends, by this user doesn't need any additional resource available with him to use the service, all resources were provided by the cloud. Main advantage of this uses can get things done from anywhere, with any device.
Client server is the big picture, we can also say cloud computing is a derivative of client server architecture.
Well, neither of Amazon S3's architecture nor its implementation has yet been made public. As such, it is not available for extension in order to develop the capability of creating private clouds of any size.
There are a few papers on cloud storage architecture topics. You might find them useful. Here is a paper: CACSS: Towards a Generic Cloud Storage Service
The method by which different technologies can be combined to provide a single excellent performance, highly scalable and reliable cloud storage system is also detailed. This research serves as a knowledge source for inexperienced cloud providers, giving them the capability of swiftly setting up their own cloud storage services.
If I may attempt at defining cloud from a pseudo-technical perspective:
"A massively scalable computing system providing computing power, networking and storage facilities mostly using consolidated virtual computing and storage methodologies to provide on-demand services, resource pooling and fast provisioning (elasticity)."
Having said that it is obvious that such a system incorporates (actually any serious system must do so) both clusters and client-server services. But also note that the above definitions does not mean that a "cloud" is something super big. Actually a single server with (two) Virtual Machines is a cloud. It is scalable - you can add systems and VM's ad nauseum. it pools resources and has on-demand capabilities. The rest, clusterizing, parallelizing etc etc - are entirely optional which extend capabilities.