Developers and users of computing technologies, over several decades, have come a long way from local computations on isolated machines to the use of local area, regional area, and global area networking and, finally, to the clouds – full virtualization of resources based on the only “window to the world” of computations – a Web browser through which all the cloud resources are available.
The basic idea of cloud computing is as follows: to help the client to avoid any extra installations on his or her computer and to consume a ready-to-use structured set of virtualized computing Web services, both software and data (“the cloud”), via Web browser, without any extra requirements to cloud client computers. Only a computer with an operating system, a Web browser, and access to the Internet are necessary from any client to use the power of cloud computing.
Speaking in more general terms, cloud computing is now a more and more popular innovative approach to virtualization of computing resources, platforms, and infrastructures based on using via the Web a set of powerful computers, and a huge amount of software and databases stored on the computers of the cloud provider’s datacenters.
This approach is really innovative, since it radically changes the viewpoint of the software developer on the use of resources. Instead of the time-consuming and effort-consuming approaches of the past, such as, “I’ll install these and that programs and data on my computer and will solve this task (the installation may require several days, and a serious upgrade or even a replacement of the computer could be required),” we can now use the modern cloud approach: “I’ll subscribe to the cloud services of the XXX company for six months and will solve with the help of cloud resources all my necessary problems, using the cloud when and where it will be comfortable for me, communicating to the cloud from my smartphone or from my laptop.”
Please feel the difference between the above two approaches. Due to the use of the cloud, the user is freed from routine and mundane work and switches to creative activity. When the user becomes the author of useful software cloud applications, he or she will be able to use the cloud for publishing his or her own software.
So the metaphor of the cloud, with cloud computing, now acquires a new sense. Before the cloud era, the center of organizing computations was a client computer or, in some cases, a local area network. The Internet was used just as a source of useful information or useful software applications that should be downloaded from the Internet and installed on the client computer. Now, with cloud computing, the cloud (part of the Internet) becomes itself a powerful tool of organizing and performing computations, and the client computer (via a Web browser) is used as a tool to control the computations and to visualize the results.
The advantages of such approach are obvious: the set of computing resources, referred to as the cloud, can be implemented on powerful server computers located in the datacenters without the clients’ participation, and the only thing the cloud clients should do is to consume cloud services via the Web, using their browsers and any kind of computing devices, from desktop or laptop computers to mobile devices such as smartphones, to solve their everyday tasks using the cloud. No installations on client computers and no extra client resources are required.
So, looking from the client side, cloud computing provides just unlimited opportunities. Any client, a specialist in any problem domain (e.g., a doctor, a scientist, or a teacher), can use the cloud in his or her everyday activity, due to the cloud’s Web interface being available for use either from a mobile device or from a laptop computer – this is all that is needed from the client. So the following prospective picture of the near future can be imagined: all computing resources are structured and available from the clouds, and everybody is using the appropriate cloud in their everyday activity.
This approach to computing is radically different from the previous ones used in the history of IT: no need to carry a computing center with you every day, no need to learn and perform subtle networking settings typical of client operating systems – just a smartphone and access to the cloud are enough to get all necessary computing resources.
Thus, two very important principles are being implemented, due to cloud computing: pervasive use of computers in everyday activity and user-centric computing. The latter principle means that a comfortable working environment is implemented for any user to work in the cloud, the same working environment, irrespective of the kind of computing device the client is using. More traditional approaches to computing actually require the user to be part of the existing computer system he or she uses and perform specific settings to be able to work under proper conditions. Speaking in a straightforward manner, cloud computing enables the principle of computer for the user, rather than the user for the computer.